zj-plugin-intelligent 1.2.8-beta.2 → 1.2.8-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ZjPluginIntelligent.common.js +318 -104
- package/lib/ZjPluginIntelligent.umd.js +318 -104
- package/lib/ZjPluginIntelligent.umd.min.js +318 -104
- package/package.json +1 -2
- package/lib/ZjPluginIntelligent.css +0 -3982
|
@@ -314,7 +314,7 @@ eval("function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find mod
|
|
|
314
314
|
/*! no static exports found */
|
|
315
315
|
/***/ (function(module, exports, __webpack_require__) {
|
|
316
316
|
|
|
317
|
-
eval("//
|
|
317
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../css-loader/dist/cjs.js??ref--6-oneOf-3-1!../../../postcss-loader/src??ref--6-oneOf-3-2!./tokui.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/@jboltai/tokui/dist/tokui.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"293bd58f\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/@jboltai/tokui/dist/tokui.css?");
|
|
318
318
|
|
|
319
319
|
/***/ }),
|
|
320
320
|
|
|
@@ -330,6 +330,18 @@ eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPAC
|
|
|
330
330
|
|
|
331
331
|
/***/ }),
|
|
332
332
|
|
|
333
|
+
/***/ "./node_modules/@jboltai/tokui/dist/tokui.umd.js":
|
|
334
|
+
/*!*******************************************************!*\
|
|
335
|
+
!*** ./node_modules/@jboltai/tokui/dist/tokui.umd.js ***!
|
|
336
|
+
\*******************************************************/
|
|
337
|
+
/*! no static exports found */
|
|
338
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
339
|
+
|
|
340
|
+
"use strict";
|
|
341
|
+
eval("/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _createForOfIteratorHelper = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper */ \"./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js\").default;\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\").default;\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\").default;\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\").default;\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\").default;\n\nvar _typeof = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\").default;\n\n(function (e, t) {\n true && ( false ? undefined : _typeof(module)) < \"u\" ? t(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (undefined);\n})(this, function (e) {\n Object.defineProperties(e, _defineProperty({\n __esModule: {\n value: !0\n }\n }, Symbol.toStringTag, {\n value: \"Module\"\n }));\n\n var t = Object.create,\n n = Object.defineProperty,\n r = Object.getOwnPropertyDescriptor,\n i = Object.getOwnPropertyNames,\n a = Object.getPrototypeOf,\n o = Object.prototype.hasOwnProperty,\n s = function s(e, t) {\n return function () {\n return t || (e((t = {\n exports: {}\n }).exports, t), e = null), t.exports;\n };\n },\n c = function c(e, t, a, s) {\n if (t && typeof t == \"object\" || typeof t == \"function\") for (var c = i(t), l = 0, u = c.length, d; l < u; l++) {\n d = c[l], !o.call(e, d) && d !== a && n(e, d, {\n get: function (e) {\n return t[e];\n }.bind(null, d),\n enumerable: !(s = r(t, d)) || s.enumerable\n });\n }\n return e;\n },\n l = function l(e, r, i) {\n return i = e == null ? {} : t(a(e)), c(r || !e || !e.__esModule ? n(i, \"default\", {\n value: e,\n enumerable: !0\n }) : i, e);\n },\n u = s(function (e, t) {\n var n = {\n \"zh-CN\": {\n \"common.close\": \"\\u5173\\u95ED\",\n \"common.ok\": \"\\u786E\\u5B9A\",\n \"common.cancel\": \"\\u53D6\\u6D88\",\n \"common.delete\": \"\\u5220\\u9664\",\n \"common.copy\": \"\\u590D\\u5236\",\n \"common.copied\": \"\\u5DF2\\u590D\\u5236\",\n \"common.download\": \"\\u4E0B\\u8F7D\",\n \"common.view\": \"\\u67E5\\u770B\",\n \"common.send\": \"\\u53D1\\u9001\",\n \"common.loading\": \"\\u52A0\\u8F7D\\u4E2D\",\n \"common.renderFailed\": \"\\u6E32\\u67D3\\u5931\\u8D25\",\n \"time.today\": \"\\u4ECA\\u5929\",\n \"time.yesterday\": \"\\u6628\\u5929\",\n \"time.earlier\": \"\\u66F4\\u65E9\",\n \"lightbox.preview\": \"\\u56FE\\u7247\\u9884\\u89C8\",\n \"lightbox.zoomIn\": \"\\u653E\\u5927\",\n \"lightbox.zoomOut\": \"\\u7F29\\u5C0F\",\n \"lightbox.reset\": \"\\u91CD\\u7F6E\",\n \"lightbox.rotateLeft\": \"\\u5DE6\\u65CB90\\xB0\",\n \"lightbox.rotateRight\": \"\\u53F3\\u65CB90\\xB0\",\n \"lightbox.flipH\": \"\\u6C34\\u5E73\\u7FFB\\u8F6C\",\n \"lightbox.flipV\": \"\\u5782\\u76F4\\u7FFB\\u8F6C\",\n \"layout.collapseDefault\": \"\\u5C55\\u5F00\",\n \"layout.gallery\": \"\\u56FE\\u7247\\u753B\\u5ECA\",\n \"layout.carouselPrev\": \"\\u4E0A\\u4E00\\u5F20\",\n \"layout.carouselNext\": \"\\u4E0B\\u4E00\\u5F20\",\n \"layout.carouselIndex\": \"\\u7B2C{n}\\u5F20\",\n \"pagination.aria\": \"\\u5206\\u9875\",\n \"pagination.totalCount\": \"\\u5171{count}\\u6761\",\n \"pagination.totalPages\": \"\\u5171{total}\\u9875\",\n \"menu.defaultTrigger\": \"\\u83DC\\u5355\",\n \"trigger.default\": \"\\u70B9\\u51FB\",\n \"think.title\": \"\\u601D\\u8003\\u8FC7\\u7A0B\",\n \"thinkChain.title\": \"\\u63A8\\u7406\\u8FC7\\u7A0B\",\n \"like.up\": \"\\u70B9\\u8D5E\",\n \"like.down\": \"\\u70B9\\u8E29\",\n \"actions.copy\": \"\\u590D\\u5236\",\n \"actions.regenerate\": \"\\u91CD\\u65B0\\u751F\\u6210\",\n \"actions.like\": \"\\u8D5E\",\n \"actions.dislike\": \"\\u8E29\",\n \"actions.delete\": \"\\u5220\\u9664\",\n \"file.unnamed\": \"\\u672A\\u77E5\\u6587\\u4EF6\",\n \"countdown.ended\": \"\\u5DF2\\u7ED3\\u675F\",\n \"duration.day\": \"\\u5929\",\n \"duration.hour\": \"\\u65F6\",\n \"duration.minute\": \"\\u5206\",\n \"duration.second\": \"\\u79D2\",\n \"popconfirm.trigger\": \"\\u786E\\u8BA4\",\n \"popconfirm.aria\": \"\\u786E\\u8BA4\\u64CD\\u4F5C\",\n \"backToTop.aria\": \"\\u56DE\\u5230\\u9876\\u90E8\",\n \"datepicker.title\": \"{y}\\u5E74{m}\\u6708\",\n \"datepicker.weekday.0\": \"\\u65E5\",\n \"datepicker.weekday.1\": \"\\u4E00\",\n \"datepicker.weekday.2\": \"\\u4E8C\",\n \"datepicker.weekday.3\": \"\\u4E09\",\n \"datepicker.weekday.4\": \"\\u56DB\",\n \"datepicker.weekday.5\": \"\\u4E94\",\n \"datepicker.weekday.6\": \"\\u516D\",\n \"chat.emptySessions\": \"\\u6682\\u65E0\\u4F1A\\u8BDD\",\n \"inputTag.placeholder\": \"\\u8F93\\u5165\\u540E\\u6309\\u56DE\\u8F66\\u6DFB\\u52A0\",\n \"command.placeholder\": \"\\u8F93\\u5165\\u5173\\u952E\\u8BCD\\u641C\\u7D22...\",\n \"command.aria\": \"\\u547D\\u4EE4\\u9762\\u677F\",\n \"command.noResult\": \"\\u6CA1\\u6709\\u627E\\u5230\\u5339\\u914D\\u7ED3\\u679C\",\n \"status.pending\": \"\\u7B49\\u5F85\\u4E2D\",\n \"status.running\": \"\\u8FD0\\u884C\\u4E2D\",\n \"status.done\": \"\\u5B8C\\u6210\",\n \"status.error\": \"\\u51FA\\u9519\",\n \"status.denied\": \"\\u5DF2\\u62D2\\u7EDD\",\n \"status.idle\": \"\\u7A7A\\u95F2\",\n \"status.paused\": \"\\u5DF2\\u6682\\u505C\",\n \"agent.thinking\": \"\\u601D\\u8003\",\n \"agent.generating\": \"\\u751F\\u6210\",\n \"agent.total\": \"\\u603B\\u8BA1\",\n \"picker.noMatch\": \"\\u65E0\\u5339\\u914D\\u9879\",\n \"rate.defaultLabel\": \"\\u8BC4\\u5206\",\n \"select.placeholder\": \"\\u8BF7\\u9009\\u62E9\",\n \"upload.hint\": \"\\u70B9\\u51FB\\u6216\\u62D6\\u62FD\\u6587\\u4EF6\\u81F3\\u6B64\\u5904\\u4E0A\\u4F20\",\n \"upload.browse\": \"\\u6D4F\\u89C8\\u6587\\u4EF6\",\n \"chart.empty\": \"\\u6682\\u65E0\\u6570\\u636E\",\n \"chart.seriesDefault\": \"\\u7CFB\\u5217{n}\",\n \"chart.itemDefault\": \"\\u9879\\u76EE{n}\",\n \"chart.sliceDefault\": \"\\u9879{n}\",\n \"chart.groupDefault\": \"\\u7EC4{n}\",\n \"chart.ringDefault\": \"\\u73AF{n}\",\n \"chart.dimensionDefault\": \"\\u7EF4\\u5EA6{n}\",\n \"chart.stageDefault\": \"\\u9636\\u6BB5{n}\",\n \"chart.taskDefault\": \"\\u4EFB\\u52A1{n}\",\n \"chart.conversion\": \"\\u8F6C\\u5316{pct}%\",\n \"chart.cumulative\": \"\\u7D2F\\u8BA1{n}\",\n \"chart.median\": \"\\u4E2D\\u4F4D\",\n \"chart.monthLabel\": \"{m}\\u6708\",\n \"chart.unsupportedType\": \"\\u4E0D\\u652F\\u6301\\u7684\\u56FE\\u8868\\u7C7B\\u578B: {type}\",\n \"chart.copyFailed\": \"\\u590D\\u5236\\u5931\\u8D25\",\n \"chart.unsupported\": \"\\u4E0D\\u652F\\u6301\",\n \"chart.copyImage\": \"\\u590D\\u5236\\u56FE\\u7247\",\n \"chart.downloadImage\": \"\\u4E0B\\u8F7D\\u56FE\\u7247\",\n \"chart.fullscreen\": \"\\u653E\\u5927\\u67E5\\u770B\",\n \"gauge.statusGood\": \"\\u826F\\u597D\",\n \"gauge.statusWarn\": \"\\u6CE8\\u610F\",\n \"gauge.statusDanger\": \"\\u544A\\u8B66\",\n \"gauge.statusInfo\": \"\\u6B63\\u5E38\",\n \"gauge.currentValue\": \"\\u5F53\\u524D\\u503C\",\n \"gantt.skipped\": \"\\u26A0 \\u8DF3\\u8FC7 {n} \\u6761\\u65E0\\u6548\\u4EFB\\u52A1\",\n \"gantt.noTasks\": \"\\u65E0\\u4EFB\\u52A1\\u6570\\u636E\",\n \"gantt.progress\": \"\\u8FDB\\u5EA6\"\n },\n \"en-US\": {\n \"common.close\": \"Close\",\n \"common.ok\": \"OK\",\n \"common.cancel\": \"Cancel\",\n \"common.delete\": \"Delete\",\n \"common.copy\": \"Copy\",\n \"common.copied\": \"Copied\",\n \"common.download\": \"Download\",\n \"common.view\": \"View\",\n \"common.send\": \"Send\",\n \"common.loading\": \"Loading\",\n \"common.renderFailed\": \"Render failed\",\n \"time.today\": \"Today\",\n \"time.yesterday\": \"Yesterday\",\n \"time.earlier\": \"Earlier\",\n \"lightbox.preview\": \"Image preview\",\n \"lightbox.zoomIn\": \"Zoom in\",\n \"lightbox.zoomOut\": \"Zoom out\",\n \"lightbox.reset\": \"Reset\",\n \"lightbox.rotateLeft\": \"Rotate 90\\xB0 left\",\n \"lightbox.rotateRight\": \"Rotate 90\\xB0 right\",\n \"lightbox.flipH\": \"Flip horizontal\",\n \"lightbox.flipV\": \"Flip vertical\",\n \"layout.collapseDefault\": \"Expand\",\n \"layout.gallery\": \"Image gallery\",\n \"layout.carouselPrev\": \"Previous\",\n \"layout.carouselNext\": \"Next\",\n \"layout.carouselIndex\": \"Image {n}\",\n \"pagination.aria\": \"Pagination\",\n \"pagination.totalCount\": \"{count} items\",\n \"pagination.totalPages\": \"{total} pages\",\n \"menu.defaultTrigger\": \"Menu\",\n \"trigger.default\": \"Click\",\n \"think.title\": \"Reasoning\",\n \"thinkChain.title\": \"Reasoning process\",\n \"like.up\": \"Like\",\n \"like.down\": \"Dislike\",\n \"actions.copy\": \"Copy\",\n \"actions.regenerate\": \"Regenerate\",\n \"actions.like\": \"Like\",\n \"actions.dislike\": \"Dislike\",\n \"actions.delete\": \"Delete\",\n \"file.unnamed\": \"Unnamed file\",\n \"countdown.ended\": \"Ended\",\n \"duration.day\": \"d\",\n \"duration.hour\": \"h\",\n \"duration.minute\": \"m\",\n \"duration.second\": \"s\",\n \"popconfirm.trigger\": \"Confirm\",\n \"popconfirm.aria\": \"Confirm action\",\n \"backToTop.aria\": \"Back to top\",\n \"datepicker.title\": \"{m}/{y}\",\n \"datepicker.weekday.0\": \"Sun\",\n \"datepicker.weekday.1\": \"Mon\",\n \"datepicker.weekday.2\": \"Tue\",\n \"datepicker.weekday.3\": \"Wed\",\n \"datepicker.weekday.4\": \"Thu\",\n \"datepicker.weekday.5\": \"Fri\",\n \"datepicker.weekday.6\": \"Sat\",\n \"chat.emptySessions\": \"No conversations\",\n \"inputTag.placeholder\": \"Press Enter to add\",\n \"command.placeholder\": \"Type to search...\",\n \"command.aria\": \"Command palette\",\n \"command.noResult\": \"No results found\",\n \"status.pending\": \"Pending\",\n \"status.running\": \"Running\",\n \"status.done\": \"Done\",\n \"status.error\": \"Error\",\n \"status.denied\": \"Denied\",\n \"status.idle\": \"Idle\",\n \"status.paused\": \"Paused\",\n \"agent.thinking\": \"Thinking\",\n \"agent.generating\": \"Generating\",\n \"agent.total\": \"Total\",\n \"picker.noMatch\": \"No matches\",\n \"rate.defaultLabel\": \"Rating\",\n \"select.placeholder\": \"Select...\",\n \"upload.hint\": \"Click or drag files here to upload\",\n \"upload.browse\": \"Browse\",\n \"chart.empty\": \"No data\",\n \"chart.seriesDefault\": \"Series {n}\",\n \"chart.itemDefault\": \"Item {n}\",\n \"chart.sliceDefault\": \"Slice {n}\",\n \"chart.groupDefault\": \"Group {n}\",\n \"chart.ringDefault\": \"Ring {n}\",\n \"chart.dimensionDefault\": \"Dim {n}\",\n \"chart.stageDefault\": \"Stage {n}\",\n \"chart.taskDefault\": \"Task {n}\",\n \"chart.conversion\": \"{pct}% conv\",\n \"chart.cumulative\": \"Cumulative {n}\",\n \"chart.median\": \"median\",\n \"chart.monthLabel\": \"{m}-\",\n \"chart.unsupportedType\": \"Unsupported chart type: {type}\",\n \"chart.copyFailed\": \"Copy failed\",\n \"chart.unsupported\": \"Unsupported\",\n \"chart.copyImage\": \"Copy image\",\n \"chart.downloadImage\": \"Download image\",\n \"chart.fullscreen\": \"Fullscreen\",\n \"gauge.statusGood\": \"Good\",\n \"gauge.statusWarn\": \"Warning\",\n \"gauge.statusDanger\": \"Critical\",\n \"gauge.statusInfo\": \"Normal\",\n \"gauge.currentValue\": \"Current\",\n \"gantt.skipped\": \"\\u26A0 Skipped {n} invalid tasks\",\n \"gantt.noTasks\": \"No task data\",\n \"gantt.progress\": \"Progress\"\n }\n },\n r = \"zh-CN\",\n i = r,\n a = n[r];\n\n function o(e) {\n if (typeof e == \"string\" && n[e]) return e;\n\n if (typeof e == \"string\") {\n var t = e.toLowerCase();\n if (n[t]) return t;\n var i = t.split(\"-\")[0];\n if (n[i]) return i;\n if (i === \"zh\") return \"zh-CN\";\n if (i === \"en\") return \"en-US\";\n }\n\n return r;\n }\n\n function s(e, t) {\n return t ? e.replace(/\\{(\\w+)\\}/g, function (e, n) {\n return t[n] == null ? e : String(t[n]);\n }) : e;\n }\n\n function c(e, t) {\n var i = a[e];\n return i === void 0 && (i = n[r][e]), i === void 0 ? e : t ? s(i, t) : i;\n }\n\n function l() {\n try {\n if ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.documentElement && document.documentElement.lang) return document.documentElement.lang;\n } catch (_unused) {}\n\n try {\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) < \"u\" && navigator.language) return navigator.language;\n } catch (_unused2) {}\n\n return r;\n }\n\n var u = {\n init: function init(e) {\n var t = o(e !== null && e !== void 0 ? e : l());\n return i = t, a = n[t] || n[r], t;\n },\n setLocale: function setLocale(e) {\n var t = o(e);\n return i = t, a = n[t] || n[r], t;\n },\n getLocale: function getLocale() {\n return i;\n },\n registerLocale: function registerLocale(e, t) {\n !e || typeof e != \"string\" || !t || typeof t != \"object\" || (n[e] = Object.assign({}, n[e] || {}, t), i === e && (a = n[e]));\n },\n t: c\n };\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.TokUII18n = u, window.TokUI._internal.t = c, window.TokUI.setLocale = u.setLocale, window.TokUI.getLocale = u.getLocale, window.TokUI.registerLocale = u.registerLocale, u.init()), t !== void 0 && t.exports && (t.exports = u);\n }),\n d = s(function (e, t) {\n var n = new Set([\"__proto__\", \"constructor\", \"prototype\"]),\n r = {\n handlers: {},\n registerHandler: function registerHandler(e, t) {\n if (!n.has(e)) {\n if (typeof t != \"function\") throw TypeError(\"TokUI EventBUS: handler must be a function, got \" + _typeof(t));\n this.handlers[e] && console.warn(\"TokUI EventBUS: handler \\\"\" + e + \"\\\" \\u5DF2\\u88AB\\u8986\\u76D6\"), this.handlers[e] = t;\n }\n },\n removeHandler: function removeHandler(e) {\n delete this.handlers[e];\n },\n getHandler: function getHandler(e) {\n return this.handlers[e] || null;\n },\n clearAll: function clearAll() {\n this.handlers = {};\n },\n getHandlerNames: function getHandlerNames() {\n return Object.keys(this.handlers);\n }\n };\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.TokUIEventBus = r, window.TokUI.registerHandler = r.registerHandler.bind(r), window.TokUI.removeHandler = r.removeHandler.bind(r)), t !== void 0 && t.exports && (t.exports = r);\n }),\n f = s(function (e, t) {\n function n(e) {\n return {\n r: parseInt(e.slice(1, 3), 16),\n g: parseInt(e.slice(3, 5), 16),\n b: parseInt(e.slice(5, 7), 16)\n };\n }\n\n function r(e) {\n var t = function t(e) {\n return Math.max(0, Math.min(255, Math.round(e)));\n };\n\n return \"#\" + [t(e.r), t(e.g), t(e.b)].map(function (e) {\n return e.toString(16).padStart(2, \"0\");\n }).join(\"\");\n }\n\n function i(e, t, n) {\n e /= 255, t /= 255, n /= 255;\n var r = Math.max(e, t, n),\n i = r - Math.min(e, t, n),\n a = 0,\n o = r === 0 ? 0 : i / r,\n s = r;\n return i !== 0 && (a = r === e ? ((t - n) / i + (t < n ? 6 : 0)) / 6 : r === t ? ((n - e) / i + 2) / 6 : ((e - t) / i + 4) / 6), {\n h: a * 360,\n s: o,\n v: s\n };\n }\n\n function a(e, t, n) {\n e = (e % 360 + 360) % 360, t = Math.max(0, Math.min(1, t)), n = Math.max(0, Math.min(1, n));\n var r = n * t,\n i = r * (1 - Math.abs(e / 60 % 2 - 1)),\n a = n - r,\n o = 0,\n s = 0,\n c = 0;\n return e < 60 ? (o = r, s = i, c = 0) : e < 120 ? (o = i, s = r, c = 0) : e < 180 ? (o = 0, s = r, c = i) : e < 240 ? (o = 0, s = i, c = r) : e < 300 ? (o = i, s = 0, c = r) : (o = r, s = 0, c = i), {\n r: Math.round((o + a) * 255),\n g: Math.round((s + a) * 255),\n b: Math.round((c + a) * 255)\n };\n }\n\n var o = 2,\n s = .16,\n c = .05,\n l = .05,\n u = .15,\n d = 5,\n f = 4,\n p = [{\n index: 7,\n opacity: .15\n }, {\n index: 6,\n opacity: .25\n }, {\n index: 5,\n opacity: .3\n }, {\n index: 5,\n opacity: .45\n }, {\n index: 5,\n opacity: .65\n }, {\n index: 5,\n opacity: .85\n }, {\n index: 4,\n opacity: .9\n }, {\n index: 3,\n opacity: .95\n }, {\n index: 2,\n opacity: .97\n }, {\n index: 1,\n opacity: .98\n }];\n\n function m(e, t, n) {\n var r = Math.round(e.h) >= 60 && Math.round(e.h) <= 240 ? n ? Math.round(e.h) - o * t : Math.round(e.h) + o * t : n ? Math.round(e.h) + o * t : Math.round(e.h) - o * t;\n return r < 0 ? r += 360 : r >= 360 && (r -= 360), r;\n }\n\n function h(e, t, n) {\n if (e.h === 0 && e.s === 0) return e.s;\n var r = n ? e.s - s * t : t === f ? e.s + s : e.s + c * t;\n return r > 1 && (r = 1), n && t === d && r > .1 && (r = .1), r < .06 && (r = .06), Number(r.toFixed(2));\n }\n\n function g(e, t, n) {\n var r = n ? e.v + l * t : e.v - u * t;\n return r > 1 && (r = 1), Number(r.toFixed(2));\n }\n\n function _(e, t, n) {\n var r = n / 100;\n return {\n r: (t.r - e.r) * r + e.r,\n g: (t.g - e.g) * r + e.g,\n b: (t.b - e.b) * r + e.b\n };\n }\n\n function v(e) {\n for (var t = [], o = n(e), s = i(o.r, o.g, o.b), c = d; c > 0; --c) {\n var l = m(s, c, !0),\n u = h(s, c, !0),\n p = g(s, c, !0);\n t.push(r(a(l, u, p)));\n }\n\n t.push(r(o));\n\n for (var _ = 1; _ <= f; _ += 1) {\n var v = m(s, _, !1),\n y = h(s, _, !1),\n b = g(s, _, !1);\n t.push(r(a(v, y, b)));\n }\n\n return t;\n }\n\n function y(e, t) {\n var i = v(e),\n a = n(t || \"#141414\");\n return p.map(function (e) {\n return r(_(a, n(i[e.index - 1]), e.opacity * 100));\n });\n }\n\n function b(e, t) {\n var n = t || {};\n return n.dark ? y(e, n.backgroundColor) : v(e);\n }\n\n function x(e, t) {\n for (var n = t || {}, r = {}, i = [\"primary\", \"danger\", \"success\", \"warning\"], a = 0; a < i.length; a++) {\n var o = i[a],\n s = e[o];\n if (s) for (var c = b(s, {\n dark: n.dark\n }), l = 0; l < 10; l++) {\n r[\"--tokui-\" + o + \"-\" + (l + 1)] = c[l];\n }\n }\n\n return r;\n }\n\n var S = {\n generatePalette: b,\n generateThemeTokens: x\n };\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.generatePalette = b, window.TokUI._internal.generateThemeTokens = x, window.TokUI._internal.ColorGenerator = S), t !== void 0 && t.exports && (t.exports = S);\n }),\n p = s(function (e, t) {\n var n = {\n container: null,\n currentTheme: \"default\",\n init: function init(e) {\n this.container = typeof e == \"string\" ? document.querySelector(e) : e, this.container ? this.container.setAttribute(\"data-tokui-theme\", this.currentTheme) : e && console.warn(\"TokUI Theme: \\u5BB9\\u5668\\u672A\\u627E\\u5230\\uFF0C\\u4E3B\\u9898\\u4E0D\\u4F1A\\u751F\\u6548\");\n },\n setTheme: function setTheme(e) {\n if (typeof e != \"string\" || !e) {\n console.warn(\"TokUI Theme: themeName \\u5FC5\\u987B\\u4E3A\\u975E\\u7A7A\\u5B57\\u7B26\\u4E32\");\n return;\n }\n\n this.currentTheme = e, this.container && this.container.setAttribute(\"data-tokui-theme\", e);\n },\n getTheme: function getTheme() {\n return this.currentTheme;\n },\n setSeedColor: function setSeedColor(e, t) {\n t || (t = {});\n var n = t._document || ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" ? document : null);\n if (!n) return;\n\n function r(e) {\n return /^#[0-9a-fA-F]{6}$/.test(e);\n }\n\n if (r(e) && !(t.danger && !r(t.danger)) && !(t.success && !r(t.success)) && !(t.warning && !r(t.warning))) {\n var i = true ? f().generateThemeTokens : undefined,\n a = {\n primary: e\n };\n t.danger && (a.danger = t.danger), t.success && (a.success = t.success), t.warning && (a.warning = t.warning);\n\n for (var o = i(a, {\n dark: this.currentTheme === \"dark\"\n }), s = \":root, [data-tokui-theme=\\\"default\\\"], [data-tokui-theme=\\\"dark\\\"] {\\n\", c = Object.keys(o), l = 0; l < c.length; l++) {\n var u = o[c[l]];\n typeof u != \"string\" || /[\\{\\}]/.test(u) || (s += \" \" + c[l] + \": \" + u + \";\\n\");\n }\n\n s += \"}\";\n var d = n.querySelector(\"style[data-tokui-dynamic-palette]\");\n d && d.parentNode.removeChild(d);\n var p = n.createElement(\"style\");\n p.setAttribute(\"data-tokui-dynamic-palette\", \"\"), p.innerHTML = s, n.head.appendChild(p);\n }\n }\n };\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.TokUITheme = n, window.TokUI.setTheme = n.setTheme.bind(n), window.TokUI.getTheme = n.getTheme.bind(n), window.TokUI.initTheme = n.init.bind(n), window.TokUI.setSeedColor = n.setSeedColor.bind(n)), t !== void 0 && t.exports && (t.exports = n);\n }),\n m = s(function (e, t) {\n function n(e) {\n var t = !1;\n\n for (var _n = 0; _n < e.length; _n++) {\n if (e[_n] === \"\\\"\") t = !t;else if (e[_n] === \"]\" && !t) return _n;\n }\n\n return -1;\n }\n\n function r(e) {\n var t = !1,\n n = 0;\n\n for (var _r = 0; _r < e.length; _r++) {\n var _i = e[_r];\n if (_i === \"\\\"\") t = !t;else if (!t) {\n if (_i === \"[\") n++;else if (_i === \"]\") {\n if (n === 0) return _r;\n n--;\n }\n }\n }\n\n return -1;\n }\n\n var i = new Set(\"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.p\".split(\".\"));\n\n function a(e) {\n if (!e || e.type !== \"chart\") return !1;\n var t = e.attrs || {};\n return !!(t.d || t.tasks || t.rows || t.nodes && t.flows || t.v !== void 0 && (t.t === \"gauge\" || t.t === \"progress\"));\n }\n\n function o(e) {\n return e.type !== \"radio\" && e.type !== \"select\" && e.type !== \"checkbox\" ? !1 : !!(e.attrs && e.attrs.opt);\n }\n\n function s(e) {\n return e.type === \"checkbox\" && (e.attrs ? e.attrs.multi : void 0) === void 0 && !o(e);\n }\n\n var c = new Set([\"stat\", \"img\", \"avatar\", \"result\", \"empty\", \"video\", \"audio\", \"file\", \"attach\", \"commit\"]),\n l = /^(stat|img|avatar|result|empty|video|audio|file|attach|commit)\\b/,\n u = new Set([\"a\", \"_text\", \"tag\", \"b\", \"i\", \"code\", \"spin\", \"strong\", \"em\", \"mark\", \"sub\", \"sup\"]),\n d = new Set(\"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\".split(\".\")),\n f = null;\n\n function p(e) {\n f = e;\n }\n\n function m(e) {\n if (f) return f[e];\n\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal) {\n var t = window.TokUI._internal.VARIANTS;\n return t ? t[e] : null;\n }\n\n return null;\n }\n\n var h = new Set(\"t.l.tx.tt.ph.u.s.n.v.w.h.clk.sub.act.mtd.dis.ro.req.chk.id.bg.fc.cap.cols.span.min.max.step.alt.target.src.name.value.pre.pos\".split(\".\"));\n\n function g(e, t) {\n for (var n = [];;) {\n var r = t.match(/^([\\s\\S]*?[^\\x00-\\x7f])([a-zA-Z][a-zA-Z0-9]{0,6}):([\\s\\S]*)$/);\n if (!r) break;\n var i = r[2];\n if (!h.has(i)) break;\n n.push([e, r[1]]), e = i, t = r[3];\n }\n\n return n.push([e, t]), n;\n }\n\n function _(e) {\n if (!e || !e.trim()) return {\n type: \"_text\",\n attrs: {},\n content: \"\",\n children: []\n };\n var t = {\n type: \"\",\n attrs: {},\n content: \"\",\n children: []\n },\n n = [],\n r = e.replace(/\"((?:[^\"\\\\]|\\\\.)*)\"/g, function (e, t) {\n return n.push(t.replace(/\\\\\"/g, \"\\\"\")), \"__QUOTE\".concat(n.length - 1, \"__\");\n }).split(/\\s+/);\n t.type = r[0];\n var i = [];\n\n for (var _e2 = 1; _e2 < r.length; _e2++) {\n var _a = r[_e2],\n _o = _a.indexOf(\":\");\n\n if (_o > 0) {\n var _e3 = _a.slice(0, _o);\n\n if (/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(_e3)) {\n var _r2 = _a.slice(_o + 1);\n\n _r2 = _r2.replace(/__QUOTE(\\d+)__/g, function (e, t) {\n return n[parseInt(t)];\n }), /[^\\x00-\\x7f]/.test(_r2) && _r2.indexOf(\":\") !== -1 ? g(_e3, _r2).forEach(function (e) {\n t.attrs[e[0]] = e[1];\n }) : t.attrs[_e3] = _r2;\n } else {\n var _e4 = _a.replace(/__QUOTE(\\d+)__/g, function (e, t) {\n return \"\\\"\".concat(n[parseInt(t)], \"\\\"\");\n });\n\n i.push(_e4);\n }\n } else {\n var _e5 = _a.replace(/__QUOTE(\\d+)__/g, function (e, t) {\n return n[parseInt(t)];\n });\n\n if (t.attrs.v) {\n var _n2 = m(t.type);\n\n if (_n2 && _n2.has && _n2.has(_e5)) {\n t.attrs.v = t.attrs.v + \",\" + _e5;\n continue;\n }\n }\n\n if (d.has(_e5)) t.attrs[_e5] = !0;else {\n var _e6 = _a.match(/^__QUOTE(\\d+)__$/);\n\n if (_e6) i.push(n[parseInt(_e6[1])]);else {\n var _e7 = _a.replace(/__QUOTE(\\d+)__/g, function (e, t) {\n return \"\\\"\".concat(n[parseInt(t)], \"\\\"\");\n });\n\n i.push(_e7);\n }\n }\n }\n }\n\n t.content = i.join(\" \");\n var a = {\n ol: \"list\",\n ul: \"list\",\n i: \"item\"\n };\n return a[t.type] && ((t.type === \"ol\" || t.type === \"ul\") && (t.attrs.t = t.type), t.type = a[t.type]), t;\n }\n\n var v = /*#__PURE__*/function () {\n function v(e, t) {\n _classCallCheck(this, v);\n\n this.onNode = e || function () {}, this.streaming = t && t.streaming !== !1, this.maxBuffer = t && t.maxBuffer || 1048576, this.maxDepth = t && t.maxDepth || 100, this.buffer = \"\", this.stack = [], this.state = \"TEXT\", this._totalOffset = 0, this._dslText = \"\", this._tagStartPos = -1;\n }\n\n _createClass(v, [{\n key: \"reset\",\n value: function reset() {\n this.buffer = \"\", this.stack = [], this.state = \"TEXT\", this._totalOffset = 0, this._dslText = \"\", this._tagStartPos = -1, this._lastTrPreview = \"\", this._trOpenKey = -2;\n }\n }, {\n key: \"feed\",\n value: function feed(e) {\n if (this.buffer.length + e.length > this.maxBuffer && (console.warn(\"TokUI Parser: buffer \\u8D85\\u8FC7 maxBuffer (\" + this.maxBuffer + \")\\uFF0C\\u622A\\u65AD\\u8F93\\u5165\"), e = e.slice(0, this.maxBuffer - this.buffer.length)), this._dslText += e, this.buffer += e, this._tryParse(), this.streaming && this.state === \"TEXT\" && this.stack.length > 0 && !this._isRawContent() && !this.buffer.startsWith(\"[\")) {\n var _e8 = this.buffer.trim();\n\n if (_e8) {\n var _t = {\n type: \"_text\",\n attrs: {},\n content: _e8,\n children: []\n };\n this.stack[this.stack.length - 1].children.push(_t), this.onNode(_t), this._totalOffset += this.buffer.length, this.buffer = \"\";\n }\n }\n\n if (this.streaming && this.state === \"TEXT\" && this.stack.length > 0 && this._isRawContent()) {\n var _e9 = this.stack[this.stack.length - 1],\n _t2 = \"[/\" + _e9.type + \"]\",\n _n3 = 0,\n _r3 = Math.min(this.buffer.length, _t2.length);\n\n for (var _e10 = _r3; _e10 > 0; _e10--) {\n if (_t2.startsWith(this.buffer.slice(this.buffer.length - _e10))) {\n _n3 = _e10;\n break;\n }\n }\n\n var _i2 = this.buffer.length - _n3,\n _a2 = 0;\n\n for (var _e11 = _i2 - 1; _e11 >= 0 && this.buffer[_e11] === \"\\\\\"; _e11--) {\n _a2++;\n }\n\n var _o2 = _a2 % 2 == 1 ? _i2 - 1 : _i2,\n _s = _e9._rawEmittedLen || 0;\n\n if (_o2 > _s) {\n var _t3 = this._unescapeRaw(this.buffer.slice(_s, _o2));\n\n if (_t3) {\n var _n4 = {\n type: \"_text\",\n attrs: {},\n content: _t3,\n children: []\n };\n _e9.children.push(_n4), this.onNode(_n4);\n }\n\n _e9._rawEmittedLen = _o2;\n }\n }\n\n if (this.streaming && this.state === \"TAG_OPEN\" && /^chart\\s/.test(this.buffer) && /\\b(d|tasks|rows|nodes|flows)\\s*:/.test(this.buffer) && this.buffer !== this._lastChartPreview) {\n var _e12 = this.buffer;\n\n if ((_e12.match(/\"/g) || []).length % 2 == 1 && (/\\b(d|tasks|rows|nodes|flows)\\s*:\\s*\"[^\"]*$/.test(_e12) ? _e12 += \"\\\"\" : _e12 = null), _e12 !== null) {\n this._lastChartPreview = this.buffer;\n\n var _t4 = _(_e12);\n\n _t4.type === \"chart\" && a(_t4) && (_t4._streamPreview = !0, _t4._previewKey = this._tagStartPos, this.onNode(_t4));\n }\n }\n\n if (this.streaming && this.state === \"TAG_OPEN\" && /^(hrow|flow)\\s/.test(this.buffer) && /\\bv\\s*:/.test(this.buffer) && this.buffer !== this._lastKidPreview) {\n var _e13 = this.buffer;\n\n if ((_e13.match(/\"/g) || []).length % 2 == 1 && (/\\bv\\s*:\\s*\"[^\"]*$/.test(_e13) ? _e13 += \"\\\"\" : _e13 = null), _e13 !== null) {\n this._lastKidPreview = this.buffer;\n\n var _t5 = _(_e13);\n\n (_t5.type === \"hrow\" || _t5.type === \"flow\") && (_t5._kidPreview = !0, this.onNode(_t5));\n }\n }\n\n if (this.streaming && this.state === \"TAG_OPEN\" && /^tr\\b/.test(this.buffer) && this.buffer !== this._lastTrPreview) {\n var _e14 = this.buffer;\n\n if ((_e14.match(/\"/g) || []).length % 2 == 1 && (/\"[^\"]*$/.test(_e14) ? _e14 += \"\\\"\" : _e14 = null), _e14 !== null) {\n this._lastTrPreview = this.buffer;\n\n var _t6 = _(_e14);\n\n _t6.type === \"tr\" && (this._trOpenKey !== this._tagStartPos && (this._trOpenKey = this._tagStartPos, this.onNode({\n type: \"tr\",\n _stream: \"open\",\n _trKey: this._tagStartPos,\n attrs: _t6.attrs\n })), _t6._stream = \"preview\", _t6._trKey = this._tagStartPos, this.onNode(_t6));\n }\n }\n\n this.streaming && this.state === \"TAG_OPEN\" && this._skelEmittedKey !== this._tagStartPos && l.test(this.buffer) && this.buffer.length > l.exec(this.buffer)[0].length && (this._skelEmittedKey = this._tagStartPos, this.onNode({\n type: l.exec(this.buffer)[1],\n _stream: \"skeleton-pending\",\n _skelKey: this._tagStartPos,\n attrs: {}\n }));\n }\n }, {\n key: \"parse\",\n value: function parse(e) {\n this.reset(), this._dslText = e, this.buffer = e, this._tryParse(), this._flush();\n }\n }, {\n key: \"_flush\",\n value: function _flush() {\n if (this.buffer.trim() && this._tryParse(), this.buffer.trim()) {\n var _e15;\n\n if (this._isRawContent()) {\n var _t7 = this.stack[this.stack.length - 1],\n _n5 = this.streaming && _t7 && _t7._rawEmittedLen ? _t7._rawEmittedLen : 0;\n\n _e15 = this._unescapeRaw(this.buffer.slice(_n5).trim());\n } else _e15 = this.buffer.trim();\n\n if (_e15) {\n var _t8 = {\n type: \"_text\",\n attrs: {},\n content: _e15,\n children: []\n };\n this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(_t8) : this.onNode(_t8);\n }\n\n this._totalOffset += this.buffer.length, this.buffer = \"\";\n }\n\n for (; this.stack.length;) {\n var _e16 = this.stack.pop();\n\n _e16._dslEnd = this._dslText.length, _e16._dsl = this._dslText.slice(_e16._dslStart), this.streaming && (_e16._stream = \"close\"), this.onNode(_e16);\n }\n }\n }, {\n key: \"_isRawContent\",\n value: function _isRawContent() {\n for (var _t9 = this.stack.length - 1; _t9 >= 0; _t9--) {\n var e = this.stack[_t9].type;\n if (e === \"code\" || e === \"md\" || e === \"diff\" || e === \"terminal\" || e === \"sandbox\" || e === \"artifact-code\") return !0;\n }\n\n return !1;\n }\n }, {\n key: \"_unescapeRaw\",\n value: function _unescapeRaw(e) {\n return typeof e != \"string\" || e.indexOf(\"\\\\\") === -1 ? e : e.replace(/\\\\(.)/g, function (e, t) {\n return t === \"n\" ? \"\\n\" : t === \"t\" ? \"\\t\" : t === \"r\" ? \"\\r\" : t === \"\\\\\" ? \"\\\\\" : \"\\\\\" + t;\n });\n }\n }, {\n key: \"_tryParse\",\n value: function _tryParse() {\n var e = 5e4;\n\n for (; e-- > 0;) {\n if (this.state === \"TEXT\") {\n if (this._isRawContent()) {\n var _e18 = this.stack[this.stack.length - 1],\n _t11 = \"[/\".concat(_e18.type, \"]\"),\n _n6 = this.buffer.indexOf(_t11);\n\n if (_n6 === -1) break;\n\n if (_n6 > 0) {\n var _t12 = this.streaming && _e18._rawEmittedLen ? _e18._rawEmittedLen : 0;\n\n if (_n6 > _t12) {\n var _e19 = this._unescapeRaw(this.buffer.slice(_t12, _n6));\n\n if (_e19) {\n var _t13 = {\n type: \"_text\",\n attrs: {},\n content: _e19,\n children: []\n };\n this.streaming && this.stack.length > 0 ? (this.stack[this.stack.length - 1].children.push(_t13), this.onNode(_t13)) : this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(_t13) : this.onNode(_t13);\n }\n }\n\n this._totalOffset += _n6, this.buffer = this.buffer.slice(_n6);\n continue;\n }\n }\n\n var _e17 = this.stack.length > 0 ? this.stack[this.stack.length - 1] : null;\n\n if (_e17 && _e17._implicitOpen && !this._isRawContent()) {\n var _t14 = this.buffer,\n _r4 = 0;\n _t14[0] === \"\\\"\" && _t14.indexOf(\"]\") !== -1 && (_t14 = _t14.slice(1), _r4 = 1);\n\n var _i3 = n(_t14),\n _a3 = _t14.indexOf(\"[\");\n\n if (_i3 !== -1 && (_a3 === -1 || _i3 < _a3)) {\n if (_i3 > 0) {\n var _n8 = _t14.slice(0, _i3).trim();\n\n if (_n8) {\n var _t15 = {\n type: \"_text\",\n attrs: {},\n content: _n8,\n children: []\n };\n this.streaming ? (_e17.children.push(_t15), this.onNode(_t15)) : _e17.children.push(_t15);\n }\n }\n\n var _n7 = _r4 + _i3,\n _a4 = this._totalOffset + _n7 + 1,\n _o3 = this.stack.pop();\n\n _o3._dslEnd = _a4, _o3._dsl = this._dslText.slice(_o3._dslStart, _a4), this._totalOffset = _a4, this.buffer = this.buffer.slice(_n7 + 1), this.streaming ? (_o3._stream = \"close\", this.onNode(_o3)) : this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(_o3) : this.onNode(_o3);\n continue;\n }\n }\n\n var _t10 = this.buffer.indexOf(\"[\");\n\n if (_t10 === -1) break;\n\n if (this._tagStartPos = this._totalOffset + _t10, _t10 > 0) {\n var _e20 = this.buffer.slice(0, _t10);\n\n if (_e20.trim()) {\n var _t16 = {\n type: \"_text\",\n attrs: {},\n content: _e20,\n children: []\n };\n this.streaming && this.stack.length > 0 ? (this.stack[this.stack.length - 1].children.push(_t16), this.onNode(_t16)) : this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(_t16) : this.onNode(_t16);\n }\n }\n\n this.buffer = this.buffer.slice(_t10 + 1), this._totalOffset = this._tagStartPos + 1, this.state = \"TAG_OPEN\";\n }\n\n if (this.state === \"TAG_OPEN\") {\n if (this.buffer.length === 0) break;\n\n if (this._isRawContent()) {\n var _e22 = this.stack[this.stack.length - 1].type;\n\n if (!this.buffer.startsWith(\"/\" + _e22)) {\n this.buffer = \"[\" + this.buffer, --this._totalOffset, this.state = \"TEXT\";\n continue;\n }\n }\n\n if (this.buffer[0] === \"/\") {\n this.buffer = this.buffer.slice(1), this._totalOffset += 1, this.state = \"TAG_CLOSE\";\n continue;\n }\n\n var _e21 = /^tr\\b/.test(this.buffer) ? r(this.buffer) : n(this.buffer);\n\n if (_e21 === -1) break;\n\n var _t17 = _e21,\n _a5 = !0,\n _o4 = this.buffer.slice(0, _e21),\n _s2 = -1;\n\n {\n var _e23 = !1;\n\n for (var _t18 = 0; _t18 < _o4.length; _t18++) {\n var _n9 = _o4[_t18];\n if (_n9 === \"\\\"\") _e23 = !_e23;else if (_n9 === \"[\" && !_e23) {\n _s2 = _t18;\n break;\n }\n }\n }\n\n if (_s2 > 0 && !this._isRawContent()) {\n var _e24 = _(_o4.slice(0, _s2).trim());\n\n i.has(_e24.type) && (_t17 = _s2, _a5 = !1);\n }\n\n var _c = this.buffer.slice(0, _t17);\n\n this.buffer = this.buffer.slice(_t17 + +!!_a5);\n\n var _l = _(_c);\n\n if (_a5 || (_l._implicitOpen = !0), _l._dslStart = this._tagStartPos, _l._dslEnd = this._totalOffset + _t17 + +!!_a5, _l._dsl = this._dslText.slice(_l._dslStart, _l._dslEnd), this._totalOffset = _l._dslEnd, this.streaming ? this._emitStreaming(_l) : this._emitBuffered(_l), this.state = \"TEXT\", !_a5) continue;\n }\n\n if (this.state === \"TAG_CLOSE\") {\n var _e25 = this.buffer.indexOf(\"]\");\n\n if (_e25 === -1) break;\n\n var _t19 = this.buffer.slice(0, _e25).trim();\n\n this.buffer = this.buffer.slice(_e25 + 1);\n var _n10 = {\n ol: \"list\",\n ul: \"list\",\n i: \"item\"\n };\n _n10[_t19] && (_t19 = _n10[_t19]);\n\n var _r5 = this._totalOffset + _e25 + 1;\n\n if (this._totalOffset = _r5, this.streaming) {\n for (var _e26 = this.stack.length - 1; _e26 >= 0; _e26--) {\n if (this.stack[_e26].type === _t19) {\n for (; this.stack.length > _e26 + 1;) {\n var _e27 = this.stack.pop();\n\n _e27._stream = \"close\", _e27._dslEnd = _r5, _e27._dsl = this._dslText.slice(_e27._dslStart, _r5), this.onNode(_e27);\n }\n\n var _n11 = this.stack.pop();\n\n _n11._dslEnd = _r5, _n11._dsl = this._dslText.slice(_n11._dslStart, _r5), this.onNode({\n type: _t19,\n _stream: \"close\"\n });\n break;\n }\n }\n } else {\n var _e28 = !1;\n\n for (var _n12 = this.stack.length - 1; _n12 >= 0; _n12--) {\n if (this.stack[_n12].type === _t19) {\n var _t20 = [];\n\n for (; this.stack.length > _n12 + 1;) {\n var _e29 = this.stack.pop();\n\n _e29._dslEnd = _r5, _e29._dsl = this._dslText.slice(_e29._dslStart, _r5), _t20.unshift(_e29);\n }\n\n var _i4 = this.stack.pop();\n\n _i4._dslEnd = _r5, _i4._dsl = this._dslText.slice(_i4._dslStart, _r5), _i4.children = _i4.children.concat(_t20), this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(_i4) : this.onNode(_i4), _e28 = !0;\n break;\n }\n }\n\n _e28 || console.warn(\"TokUI Parser: \\u672A\\u5339\\u914D\\u7684\\u95ED\\u5408\\u6807\\u7B7E [/\" + _t19 + \"]\");\n }\n\n this.state = \"TEXT\";\n }\n }\n }\n }, {\n key: \"_emitStreaming\",\n value: function _emitStreaming(e) {\n if (e.type === \"item\") for (; this.stack.length > 0 && this.stack[this.stack.length - 1].type === \"item\";) {\n var _e30 = this.stack.pop();\n\n _e30._stream = \"close\", this.onNode(_e30);\n }\n var t = this.stack.length > 0 && this.stack[this.stack.length - 1].type === \"p\" ? this.stack[this.stack.length - 1] : null;\n\n if (t && t.content && !u.has(e.type)) {\n var _e31 = this.stack.pop();\n\n _e31._stream = \"close\", this.onNode(_e31);\n }\n\n e.type === \"tr\" && this._trOpenKey === e._dslStart && (e._stream = \"finalize\", e._trKey = e._dslStart), c.has(e.type) && this._skelEmittedKey === e._dslStart && (e._stream = \"skeleton-finalize\", e._skelKey = e._dslStart);\n var n = new Set([\"tn\", \"popover\", \"input-tag\", \"watermark\", \"badge-box\"]),\n r = i.has(e.type) && !n.has(e.type) && e.attrs.tx,\n l = e.type === \"tn\" && e.attrs.leaf !== void 0,\n d = e.type === \"input-tag\" && e.attrs.tags,\n f = r || l || d || o(e) || s(e),\n p = e.attrs.cols && e.type !== \"desc\" && e.type !== \"suggestions\" && e.type !== \"chart\",\n m = a(e);\n m && (e._previewKey = e._dslStart), i.has(e.type) && !p && !f && !m ? this.stack.length >= this.maxDepth ? (console.warn(\"TokUI Parser: \\u5D4C\\u5957\\u6DF1\\u5EA6\\u8D85\\u8FC7 maxDepth (\" + this.maxDepth + \")\\uFF0C\\u6309\\u81EA\\u95ED\\u5408\\u5904\\u7406\"), 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));\n }\n }, {\n key: \"_emitBuffered\",\n value: function _emitBuffered(e) {\n if (e.type === \"item\") for (; this.stack.length > 0 && this.stack[this.stack.length - 1].type === \"item\";) {\n var _e32 = this.stack.pop();\n\n this.stack.length > 0 && this.stack[this.stack.length - 1].children.push(_e32);\n }\n var t = this.stack.length > 0 && this.stack[this.stack.length - 1].type === \"p\" ? this.stack[this.stack.length - 1] : null;\n\n if (t && t.content && !u.has(e.type)) {\n var _e33 = this.stack.pop();\n\n this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(_e33) : this.onNode(_e33);\n }\n\n var n = new Set([\"tn\", \"popover\", \"input-tag\", \"watermark\", \"badge-box\"]),\n r = i.has(e.type) && !n.has(e.type) && e.attrs.tx,\n c = e.type === \"tn\" && e.attrs.leaf !== void 0,\n l = e.type === \"input-tag\" && e.attrs.tags,\n d = r || c || l || o(e) || s(e),\n f = e.attrs.cols && e.type !== \"desc\" && e.type !== \"suggestions\" && e.type !== \"chart\",\n p = a(e);\n p && (e._previewKey = e._dslStart), i.has(e.type) && !f && !d && !p ? this.stack.length >= this.maxDepth ? (console.warn(\"TokUI Parser: \\u5D4C\\u5957\\u6DF1\\u5EA6\\u8D85\\u8FC7 maxDepth (\" + this.maxDepth + \")\\uFF0C\\u6309\\u81EA\\u95ED\\u5408\\u5904\\u7406\"), 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);\n }\n }, {\n key: \"startStream\",\n value: function startStream() {\n this.reset();\n }\n }, {\n key: \"endStream\",\n value: function endStream() {\n this._flush();\n }\n }]);\n\n return v;\n }();\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.TokUIParser = v, window.TokUI._internal.parseTag = _, window.TokUI._internal.setVariantHints = p, window.TokUI._internal.CONTAINERS = i), t !== void 0 && t.exports && (t.exports = {\n TokUIParser: v,\n parseTag: _,\n setVariantHints: p,\n CONTAINERS: i\n });\n }),\n h = s(function (e, t) {\n function n(e) {\n var t = e || {},\n n = t.form != null && t.form !== \"\" ? String(t.form) : null;\n return t.print === void 0 ? t.reset === void 0 ? t.sub !== void 0 && t.sub !== !1 && t.sub !== \"\" ? {\n act: \"submit\",\n formId: n,\n handler: t.sub === !0 ? null : String(t.sub),\n target: null,\n trigger: !1\n } : {\n act: null,\n formId: n,\n handler: t.clk ? String(t.clk) : null,\n target: null,\n trigger: !1\n } : {\n act: \"reset\",\n formId: n,\n handler: t.reset === !0 || t.reset === \"\" || t.reset == null ? null : String(t.reset),\n target: null,\n trigger: !1\n } : {\n act: \"print\",\n formId: n,\n handler: null,\n target: t.print === !0 || t.print === \"\" || t.print == null ? \"self\" : String(t.print),\n trigger: !0\n };\n }\n\n function r(e, t) {\n if (!e) return null;\n\n if (t) {\n var n = e.ownerDocument && e.ownerDocument.getElementById ? e.ownerDocument : (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" ? document : null,\n r = n && n.getElementById ? n.getElementById(t) : null;\n if (r && r.tagName === \"FORM\") return r;\n }\n\n return e.closest ? e.closest(\"form\") : null;\n }\n\n function i(e, t) {\n if (!e) return null;\n\n if (t && t !== \"self\") {\n var n = e.ownerDocument && e.ownerDocument.getElementById ? e.ownerDocument : (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" ? document : null;\n return n && n.getElementById ? n.getElementById(t) : null;\n }\n\n return e.closest && (e.closest(\".tokui-print-area\") || e.closest(\".tokui-card\")) || null;\n }\n\n function a(e) {\n if (e && typeof CustomEvent == \"function\" && typeof e.dispatchEvent == \"function\") try {\n e.dispatchEvent(new CustomEvent(\"tokuireset\", {\n bubbles: !0\n }));\n } catch (_unused3) {}\n }\n\n var o = true ? u().t : undefined;\n\n function s(e, t, n) {\n var r = document.createElement(e);\n return t && Object.entries(t).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n e = _ref2[0],\n t = _ref2[1];\n\n if (t != null && !(e.startsWith(\"on\") || e === \"formaction\")) {\n if (e === \"style\") {\n r.style.cssText = String(t);\n return;\n }\n\n t === !0 ? r.setAttribute(e, \"\") : t === !1 || r.setAttribute(e, String(t));\n }\n }), n != null && (r.textContent = n), r;\n }\n\n var c = {\n img: new Set([\"avatar\", \"rounded\", \"bordered\"]),\n card: new Set([\"highlight\", \"flat\", \"bordered\", \"center\", \"right\"]),\n btn: new Set([\"primary\", \"danger\", \"success\", \"warning\", \"ghost\", \"sm\", \"lg\", \"pill\", \"square\", \"block\"]),\n btngroup: new Set([\"vertical\", \"pill\"]),\n table: new Set([\"bordered\", \"compact\"]),\n input: new Set([\"error\", \"success\", \"sm\", \"lg\", \"underline\", \"pill\"]),\n pwd: new Set([\"error\", \"success\", \"sm\", \"lg\", \"underline\", \"pill\"]),\n select: new Set([\"error\", \"success\"]),\n picker: new Set([\"error\", \"success\"]),\n h1: new Set([\"left\", \"center\", \"right\", \"ribbon\", \"underline\", \"badge\", \"pill\"]),\n h2: new Set([\"left\", \"center\", \"right\", \"ribbon\", \"underline\", \"badge\", \"pill\"]),\n h3: new Set([\"left\", \"center\", \"right\", \"ribbon\", \"underline\", \"badge\", \"pill\"]),\n h4: new Set([\"left\", \"center\", \"right\", \"ribbon\", \"underline\", \"badge\", \"pill\"]),\n h5: new Set([\"left\", \"center\", \"right\", \"ribbon\", \"underline\", \"badge\", \"pill\"]),\n h6: new Set([\"left\", \"center\", \"right\", \"ribbon\", \"underline\", \"badge\", \"pill\"]),\n p: new Set([\"left\", \"center\", \"right\", \"muted\", \"bold\", \"sm\", \"lg\"]),\n a: new Set([\"muted\", \"danger\", \"success\", \"underline\"]),\n ft: new Set([\"left\", \"center\", \"right\"]),\n row: new Set([\"left\", \"center\", \"right\", \"inline\"]),\n dv: new Set([\"dashed\", \"dotted\", \"sm\", \"md\", \"lg\", \"vert\", \"plain\"]),\n dot: new Set([\"sm\", \"lg\"]),\n avatar: new Set([\"sm\", \"md\", \"lg\", \"xl\"]),\n tooltip: new Set([\"top\", \"bottom\", \"left\", \"right\"]),\n pagination: new Set([\"sm\", \"lg\"]),\n switch: new Set([\"sm\", \"lg\"]),\n drawer: new Set([\"left\", \"right\", \"top\", \"bottom\"]),\n breadcrumb: new Set([\"arrow\"]),\n slider: new Set([\"sm\", \"lg\"]),\n rate: new Set([\"sm\", \"lg\"]),\n transfer: new Set([\"sm\", \"lg\"]),\n cascader: new Set([\"error\", \"success\"]),\n upload: new Set([\"sm\", \"lg\"]),\n tree: new Set([\"sm\", \"lg\"])\n },\n l = /*#__PURE__*/function () {\n function l(e) {\n _classCallCheck(this, l);\n\n this.registry = {}, this.eventBus = e, this.slotStack = [], this._boundElements = [], this._onError = null;\n }\n\n _createClass(l, [{\n key: \"register\",\n value: function register(e, t) {\n this.registry[e] = t;\n }\n }, {\n key: \"onError\",\n value: function onError(e) {\n this._onError = e;\n }\n }, {\n key: \"render\",\n value: function render(e, t, n) {\n if ((n || 0) > 50) return console.warn(\"TokUI Renderer: \\u6E32\\u67D3\\u6DF1\\u5EA6\\u8D85\\u8FC7 50\\uFF0C\\u53EF\\u80FD\\u5B58\\u5728\\u5FAA\\u73AF\\u5D4C\\u5957\"), document.createTextNode(\"\");\n if (e.type === \"_text\") return document.createTextNode(e.content);\n var r = this.registry[e.type];\n\n if (!r) {\n var _t21 = s(\"div\", {\n class: \"tokui-unknown\",\n \"data-tokui-type\": e.type\n });\n\n return e.content && (_t21.textContent = e.content), _t21;\n }\n\n var i = this,\n a = n || 0;\n\n var c = function c(t) {\n return t.map(function (t) {\n return i.render(t, e.type, a + 1);\n });\n };\n\n var _l2;\n\n try {\n _l2 = r(e, c, t);\n } catch (t) {\n if (console.warn(\"TokUI Renderer: \\u7EC4\\u4EF6\\u6E32\\u67D3\\u5F02\\u5E38\", e.type, t), i._onError) try {\n i._onError(e.type, t, e);\n } catch (_unused4) {}\n var u = s(\"details\", {\n class: \"tokui-error\",\n \"data-tokui-type\": e.type\n }),\n d = s(\"summary\", {\n class: \"tokui-error__summary\"\n });\n d.textContent = \"[\" + e.type + \"] \" + o(\"common.renderFailed\"), u.appendChild(d);\n var f = s(\"div\", {\n class: \"tokui-error__detail\"\n });\n f.textContent = String(t.message || t), u.appendChild(f), _l2 = u;\n }\n\n return this._applyVariants(_l2, e), _l2 && _l2.nodeType === 1 && e.type && e.type !== \"_text\" && _l2.setAttribute(\"data-tokui-tag\", e.type), _l2;\n }\n }, {\n key: \"_applyVariants\",\n value: function _applyVariants(e, t) {\n var n = t.attrs && t.attrs.v;\n\n if (!(!n || !e || e.nodeType !== 1)) {\n var r = c[t.type];\n\n if (r) {\n var i = e._variantTarget || e;\n n.split(\",\").map(function (e) {\n return e.trim();\n }).filter(Boolean).forEach(function (e) {\n r.has(e) && i.classList.add(\"tokui-\" + t.type + \"--\" + e);\n });\n }\n }\n }\n }, {\n key: \"mount\",\n value: function mount(e, t) {\n var n = this.render(e);\n return n.nodeType === 1 && (n.style.animation = \"tokuiFadeIn 0.3s ease\"), t.appendChild(n), this.bindEvents(n), n._streamCloseHook && n._streamCloseHook(), n;\n }\n }, {\n key: \"mountStreaming\",\n value: function mountStreaming(e, t) {\n return e._stream === \"skeleton-pending\" ? this._streamSkeletonPending(e, t) : e._stream === \"skeleton-finalize\" ? this._streamSkeletonFinalize(e, t) : e._streamPreview ? this._streamChartPreview(e, t) : e.type === \"tr\" && e._stream === \"open\" ? this._streamTrOpen(e, t) : e.type === \"tr\" && e._stream === \"preview\" ? this._streamTrPreview(e) : e.type === \"tr\" && e._stream === \"finalize\" ? this._streamTrFinalize(e, t) : e._stream === \"open\" ? this._streamOpen(e, t) : e._stream === \"close\" ? this._streamClose(e) : e.type === \"chart\" && e._previewKey !== void 0 ? this._streamChartFinalize(e, t) : this._streamChild(e, t);\n }\n }, {\n key: \"_streamChartPreview\",\n value: function _streamChartPreview(e, t) {\n this._pendingCharts = this._pendingCharts || {};\n var n = e._previewKey,\n r = this._pendingCharts[n];\n if (r) return r._tokuiChartUpdate && r._tokuiChartUpdate(e.attrs), r;\n var i = this.render(e),\n a = this.slotStack.length > 0 ? this.slotStack[this.slotStack.length - 1] : null,\n o = a ? a.slot : t;\n return i.nodeType === 1 && (i.style.animation = \"tokuiFadeIn 0.3s ease\"), o.appendChild(i), this._pendingCharts[n] = i, i;\n }\n }, {\n key: \"_streamChartFinalize\",\n value: function _streamChartFinalize(e, t) {\n this._pendingCharts = this._pendingCharts || {};\n var n = e._previewKey,\n r = this._pendingCharts[n];\n return r ? (r._tokuiChartUpdate && r._tokuiChartUpdate(e.attrs), delete this._pendingCharts[n], r) : this._streamChild(e, t);\n }\n }, {\n key: \"_streamTrOpen\",\n value: function _streamTrOpen(e, t) {\n var n = this.slotStack.length > 0 ? this.slotStack[this.slotStack.length - 1] : null;\n n && n.el && (e._tbodyEl = n.el);\n var r = this.render(e, n ? n.containerType : void 0);\n return r && r.nodeType === 1 && (r.style.animation = \"tokuiFadeIn 0.3s ease\"), (n ? n.slot : t).appendChild(r), this._trRegistry = this._trRegistry || {}, this._trRegistry[e._trKey] = r, r;\n }\n }, {\n key: \"_streamTrPreview\",\n value: function _streamTrPreview(e) {\n this._trRegistry = this._trRegistry || {};\n var t = this._trRegistry[e._trKey];\n return t && t._tokuiTrReconcile && t._tokuiTrReconcile(e.content || \"\", !1, e.attrs), t;\n }\n }, {\n key: \"_streamTrFinalize\",\n value: function _streamTrFinalize(e, t) {\n this._trRegistry = this._trRegistry || {};\n var n = this._trRegistry[e._trKey];\n return n ? (n._tokuiTrReconcile && n._tokuiTrReconcile(e.content || \"\", !0, e.attrs), delete this._trRegistry[e._trKey], n) : this._streamChild(e, t);\n }\n }, {\n key: \"_streamSkeletonPending\",\n value: function _streamSkeletonPending(e, t) {\n this._pendingSkeletons = this._pendingSkeletons || {};\n\n var n = this.slotStack.length > 0 ? this.slotStack[this.slotStack.length - 1] : null,\n r = n ? n.slot : t,\n i = this._buildSkeleton(e.type);\n\n return i && i.nodeType === 1 && (i.style.animation = \"tokuiFadeIn 0.3s ease\"), r && r.appendChild(i), this._pendingSkeletons[e._skelKey] = i, i;\n }\n }, {\n key: \"_streamSkeletonFinalize\",\n value: function _streamSkeletonFinalize(e, t) {\n this._pendingSkeletons = this._pendingSkeletons || {};\n var n = this._pendingSkeletons[e._skelKey],\n r = this.slotStack.length > 0 ? this.slotStack[this.slotStack.length - 1] : null,\n i = r ? r.containerType : void 0;\n e._stream = void 0;\n var a = this.render(e, i);\n if (n && n.parentNode) n.parentNode.insertBefore(a, n), n.parentNode.removeChild(n);else if (a) {\n var o = r ? r.slot : t;\n o && o.appendChild(a);\n }\n return delete this._pendingSkeletons[e._skelKey], a;\n }\n }, {\n key: \"_buildSkeleton\",\n value: function _buildSkeleton(e) {\n return s(\"div\", {\n class: \"tokui-stream-skeleton tokui-stream-skeleton--\" + e,\n \"aria-label\": o(\"common.loading\"),\n role: \"status\"\n });\n }\n }, {\n key: \"_streamOpen\",\n value: function _streamOpen(e, t) {\n var n = this.slotStack.length > 0 ? this.slotStack[this.slotStack.length - 1] : null,\n r = this.render(e, n ? n.containerType : void 0);\n r && r.nodeType === 1 && (r._tokuiStreamActive = !0), r.nodeType === 1 && !r.classList.contains(\"tokui-hover-card__content-temp\") && (r.style.animation = \"tokuiFadeIn 0.3s ease\");\n var i = this.slotStack.length > 0 ? this.slotStack[this.slotStack.length - 1].slot : t;\n\n if (e.type === \"ft\" && this.slotStack.length > 0) {\n var _e34 = this.slotStack[this.slotStack.length - 1];\n (_e34.containerType === \"card\" || _e34.containerType === \"dialog\" || _e34.containerType === \"drawer\") && (i = _e34.el);\n }\n\n if (e.type === \"tab\" && r._isTab && this.slotStack.length > 0) {\n var _t22 = this.slotStack[this.slotStack.length - 1];\n\n if (_t22.containerType === \"tabs\" && _t22.el._tabId) {\n var _n13 = _t22.el,\n _i5 = _n13._tabId,\n _a6 = _n13._tabCount || 0,\n _o5 = document.createElement(\"input\");\n\n _o5.type = \"radio\", _o5.name = _i5, _o5.className = \"tokui-tabs-input\", _o5.id = _i5 + \"-\" + _a6, _o5.setAttribute(\"data-index\", String(_a6)), _o5.checked = !0, _n13.appendChild(_o5);\n\n var _s3 = document.createElement(\"label\");\n\n return _s3.className = \"tokui-tabs-label\", _s3.setAttribute(\"for\", _i5 + \"-\" + _a6), _s3.setAttribute(\"data-index\", String(_a6)), _s3.setAttribute(\"data-tokui-tag\", \"tab\"), _s3.textContent = r._tabTitle || \"Tab \" + (_a6 + 1), _n13.appendChild(_s3), r.setAttribute(\"data-index\", String(_a6)), _n13.appendChild(r), _n13._tabCount = _a6 + 1, this.slotStack.push({\n slot: r._slot || r,\n el: r,\n containerType: e.type\n }), r;\n }\n }\n\n if (e.type === \"collapse\" && this.slotStack.length > 0 && this.slotStack[this.slotStack.length - 1].containerType === \"accordion\") {\n for (var a = this.slotStack[this.slotStack.length - 1].el.querySelectorAll(\".tokui-collapse\"), o = 0; o < a.length; o++) {\n a[o] !== r && (a[o].removeAttribute(\"open\"), a[o].setAttribute(\"aria-expanded\", \"false\"));\n }\n\n r.setAttribute(\"open\", \"\"), r.setAttribute(\"aria-expanded\", \"true\");\n }\n\n i.appendChild(r);\n var s = r._slot || r;\n return this.slotStack.push({\n slot: s,\n el: r,\n containerType: e.type\n }), r;\n }\n }, {\n key: \"_streamClose\",\n value: function _streamClose(e) {\n for (; this.slotStack.length > 0;) {\n var _t23 = this.slotStack.pop();\n\n if (this.bindEvents(_t23.el), _t23.el._streamCloseHook && _t23.el._streamCloseHook(), _t23.el._tokuiType === e.type || this._getNodeType(_t23.el) === e.type) break;\n }\n\n return null;\n }\n }, {\n key: \"_streamChild\",\n value: function _streamChild(e, t) {\n var n = this.slotStack.length > 0 ? this.slotStack[this.slotStack.length - 1] : null,\n r = n ? n.containerType : void 0,\n i = n ? n.slot : t;\n if (n && n.containerType === \"chart\" && n.el._tokuiChartAppend) return n.el._tokuiChartAppend(e), null;\n\n if (e.type === \"ft\" && n && (n.containerType === \"card\" || n.containerType === \"dialog\" || n.containerType === \"drawer\") && (i = n.el), e.type === \"opt\" && n && n.el._slot && n.el._slot._radioName) {\n var a = n.el._slot._radioName,\n o = this.render(e, \"radio\");\n\n if (a && o.querySelector) {\n var s = o.querySelector(\"input[type=radio]\");\n s && (s.name = a);\n }\n\n return o.nodeType === 1 && (o.style.animation = \"tokuiFadeIn 0.3s ease\"), i.appendChild(o), o;\n }\n\n if (e.type === \"opt\" && n && n.el._slot && n.el._slot._checkboxName) {\n var c = n.el._slot._checkboxName,\n _l3 = this.render(e, \"checkbox\");\n\n if (c && _l3.querySelector) {\n var u = _l3.querySelector(\"input[type=checkbox]\");\n\n u && (u.name = c);\n }\n\n return _l3.nodeType === 1 && (_l3.style.animation = \"tokuiFadeIn 0.3s ease\"), i.appendChild(_l3), _l3;\n }\n\n if (e.type === \"opt\" && n && n.containerType === \"picker\") {\n var d = n.slot,\n f = this.render(e, \"picker\");\n f.nodeType === 1 && (f.style.animation = \"tokuiFadeIn 0.3s ease\");\n var p = d.querySelector(\".tokui-picker-empty\");\n return p ? d.insertBefore(f, p) : d.appendChild(f), f;\n }\n\n if (e.type === \"opt\" && n && n.containerType === \"transfer\" && n.el._tokuiTransferAppend) {\n var m = n.el._tokuiTransferAppend(e);\n\n return m && m.nodeType === 1 && (m.style.animation = \"tokuiFadeIn 0.3s ease\"), null;\n }\n\n var h = this.render(e, r);\n return h.nodeType === 1 && (h.style.animation = \"tokuiFadeIn 0.3s ease\"), i.appendChild(h), n && n.el && n.el._streamAppendHook && n.el._streamAppendHook(e), this.slotStack.length === 0 && this.bindEvents(h), h;\n }\n }, {\n key: \"_collectFormData\",\n value: function _collectFormData(e) {\n var t = {};\n\n var _iterator = _createForOfIteratorHelper(new FormData(e)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n _n14 = _step$value[0],\n _r6 = _step$value[1];\n\n t[_n14] === void 0 ? t[_n14] = _r6 : (Array.isArray(t[_n14]) || (t[_n14] = [t[_n14]]), t[_n14].push(_r6));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return t;\n }\n }, {\n key: \"_getNodeType\",\n value: function _getNodeType(e) {\n if (e._tokuiType) return e._tokuiType;\n var t = e.className && e.className.match && e.className.match(/tokui-(\\w+)/);\n return t ? t[1] : \"\";\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._boundElements.forEach(function (e) {\n e.listeners.forEach(function (t) {\n e.element.removeEventListener(t.type, t.fn);\n }), delete e.element._tokuiBound, delete e.element._tokuiClickBound;\n }), this._boundElements = [], this.slotStack = [];\n }\n }, {\n key: \"resetSlotStack\",\n value: function resetSlotStack() {\n for (; this.slotStack.length > 0;) {\n var _e35 = this.slotStack.pop();\n\n this.bindEvents(_e35.el);\n }\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents(e) {\n if (!this.eventBus || e.nodeType !== 1 || e._tokuiBound) return;\n e._tokuiBound = !0;\n var t = this;\n e.querySelectorAll(\"[data-tokui-clk]\").forEach(function (n) {\n if (n._tokuiBound) return;\n n._tokuiBound = !0;\n var i = n.getAttribute(\"data-tokui-clk\");\n\n if (i) {\n var a = null;\n if (n.getAttribute(\"type\") === \"submit\" && !n.closest(\"form\")) for (var o = n.parentElement; o && o !== e.parentElement;) {\n var s = o.querySelector(\"form[data-tokui-sub]\");\n\n if (s) {\n a = s;\n break;\n }\n\n o = o.parentElement;\n }\n\n var c = function c(e) {\n if (e.preventDefault(), a) {\n var _n15 = a.getAttribute(\"data-tokui-sub\"),\n _r7 = _n15 ? t.eventBus.getHandler(_n15) : null;\n\n _r7 && _r7(t._collectFormData(a), e, a);\n return;\n }\n\n var o = t.eventBus.getHandler(i);\n\n if (o) {\n var _i6 = n.closest(\"form\");\n\n if (!_i6) {\n var _e36 = n.getAttribute(\"data-tokui-form\");\n\n _e36 && (_i6 = r(n, _e36));\n }\n\n o(_i6 ? t._collectFormData(_i6) : null, e, n);\n }\n };\n\n n.addEventListener(\"click\", c), t._boundElements.push({\n element: n,\n listeners: [{\n type: \"click\",\n fn: c\n }]\n });\n }\n });\n var n = [];\n\n if (e.tagName === \"FORM\" && (e.hasAttribute(\"data-tokui-sub\") || e.hasAttribute(\"data-tokui-clk\")) && n.push(e), e.querySelectorAll(\"form[data-tokui-sub], form[data-tokui-clk]\").forEach(function (e) {\n return n.push(e);\n }), n.forEach(function (e) {\n if (e._tokuiFormBound) return;\n e._tokuiFormBound = !0;\n var n = e.getAttribute(\"data-tokui-sub\") || e.getAttribute(\"data-tokui-clk\");\n\n if (n) {\n var r = function r(_r8) {\n _r8.preventDefault();\n\n var i = t.eventBus.getHandler(n);\n i && i(t._collectFormData(e), _r8, e);\n };\n\n e.addEventListener(\"submit\", r), t._boundElements.push({\n element: e,\n listeners: [{\n type: \"submit\",\n fn: r\n }]\n });\n }\n }), e.hasAttribute && e.hasAttribute(\"data-tokui-clk\") && !e._tokuiClickBound) {\n e._tokuiClickBound = !0;\n\n var _n16 = e.getAttribute(\"data-tokui-clk\");\n\n if (_n16) {\n var i = function i(r) {\n r.preventDefault();\n var i = t.eventBus.getHandler(_n16);\n\n if (i) {\n var _n17 = e.closest(\"form\");\n\n i(_n17 ? t._collectFormData(_n17) : null, r, e);\n }\n };\n\n e.addEventListener(\"click\", i), t._boundElements.push({\n element: e,\n listeners: [{\n type: \"click\",\n fn: i\n }]\n });\n }\n }\n\n var a = [];\n e.hasAttribute && e.hasAttribute(\"data-tokui-act\") && a.push(e), e.querySelectorAll(\"[data-tokui-act]\").forEach(function (e) {\n return a.push(e);\n }), a.forEach(function (e) {\n if (e._tokuiActBound) return;\n e._tokuiActBound = !0;\n var n = e.getAttribute(\"data-tokui-act\"),\n r = e.getAttribute(\"data-tokui-form\");\n\n var i = function i(_i7) {\n _i7 && typeof _i7.preventDefault == \"function\" && _i7.preventDefault(), n === \"submit\" ? t._doSubmit(e, r) : n === \"reset\" ? t._doReset(e, r) : n === \"print\" && t._triggerPrint(e);\n };\n\n e.addEventListener(\"click\", i), t._boundElements.push({\n element: e,\n listeners: [{\n type: \"click\",\n fn: i\n }]\n });\n });\n }\n }, {\n key: \"_doSubmit\",\n value: function _doSubmit(e, t) {\n var n = r(e, t);\n\n if (n) {\n var i = e.getAttribute(\"data-tokui-sub\"),\n a = this._collectFormData(n);\n\n if (i) {\n var o = this.eventBus.getHandler(i);\n o && o(a, null, n);\n }\n }\n }\n }, {\n key: \"_doReset\",\n value: function _doReset(e, t) {\n var n = r(e, t);\n\n if (n) {\n if (typeof n.reset == \"function\") try {\n n.reset();\n } catch (_unused5) {}\n a(n), n.querySelectorAll(\"[data-tokui-resettable]\").forEach(function (e) {\n typeof e._tokuiReset == \"function\" && e._tokuiReset();\n });\n var i = e.getAttribute(\"data-tokui-handler\");\n\n if (i) {\n var o = this.eventBus.getHandler(i);\n o && o(null, null, n);\n }\n }\n }\n }, {\n key: \"_triggerPrint\",\n value: function _triggerPrint(e) {\n var t = i(e, e.getAttribute(\"data-tokui-target\") || \"self\");\n\n if (t && !((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) > \"u\" || (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) > \"u\" || !document.body || typeof window.print != \"function\")) {\n t.classList.add(\"tokui-print-target\"), document.body.setAttribute(\"data-tokui-printing\", \"1\");\n\n for (var n = [], r = document.body.children || [], a = 0; a < r.length; a++) {\n var o = r[a];\n o && o.nodeType === 1 && o !== t && !(o.contains && o.contains(t)) && (o.setAttribute(\"data-tokui-print-hidden\", \"1\"), n.push(o));\n }\n\n for (var s = [[\"position\", \"static\"], [\"transform\", \"none\"], [\"perspective\", \"none\"], [\"filter\", \"none\"], [\"backdrop-filter\", \"none\"], [\"will-change\", \"auto\"], [\"contain\", \"none\"]], c = [], _l4 = t.parentNode; _l4 && _l4.nodeType === 1 && _l4 !== document.documentElement;) {\n var u = typeof getComputedStyle == \"function\" ? getComputedStyle(_l4) : null;\n\n if (u) {\n for (var d = null, f = 0; f < s.length; f++) {\n var p = s[f][0],\n m = s[f][1],\n h = u.getPropertyValue(p);\n h && h !== m && h !== \"normal\" && (d || (d = {}), d[p] = {\n v: _l4.style.getPropertyValue(p),\n p: _l4.style.getPropertyPriority(p)\n }, _l4.style.setProperty(p, m, \"important\"));\n }\n\n d && c.push({\n el: _l4,\n saved: d\n });\n }\n\n _l4 = _l4.parentNode;\n }\n\n var g = !1,\n _ = function _() {\n if (!g) {\n g = !0, t.classList.remove(\"tokui-print-target\"), (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.body && document.body.removeAttribute(\"data-tokui-printing\");\n\n for (var e = 0; e < n.length; e++) {\n n[e].removeAttribute(\"data-tokui-print-hidden\");\n }\n\n for (var r = 0; r < c.length; r++) {\n var i = c[r];\n\n for (var a in i.saved) {\n Object.prototype.hasOwnProperty.call(i.saved, a) && i.el.style.setProperty(a, i.saved[a].v, i.saved[a].p);\n }\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && typeof window.removeEventListener == \"function\" && window.removeEventListener(\"afterprint\", _);\n }\n };\n\n typeof window.addEventListener == \"function\" && window.addEventListener(\"afterprint\", _);\n\n try {\n window.print();\n } catch (_unused6) {}\n\n setTimeout(_, 1e3);\n }\n }\n }]);\n\n return l;\n }();\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.el = s, window.TokUI._internal.VARIANTS = c, window.TokUI._internal.TokUIRenderer = l, window.TokUI._internal.resolveButtonAction = n, window.TokUI._internal.resolveTargetForm = r, window.TokUI._internal.resolvePrintScope = i, window.TokUI._internal.broadcastTokuiReset = a), t !== void 0 && t.exports && (t.exports = {\n el: s,\n TokUIRenderer: l,\n VARIANTS: c,\n resolveButtonAction: n,\n resolveTargetForm: r,\n resolvePrintScope: i,\n broadcastTokuiReset: a\n });\n }),\n g = s(function (e, t) {\n var n = true ? u().t : undefined;\n\n function r(e) {\n try {\n var t = e.split(\"?\")[0].split(\"/\"),\n n = t[t.length - 1];\n return n && n.length < 60 ? decodeURIComponent(n) : \"\";\n } catch (_unused7) {\n return \"\";\n }\n }\n\n function i(e) {\n var t = null,\n i = 0,\n a = [],\n o = null,\n s = null,\n c = 1,\n l = 0,\n u = !1,\n d = !1;\n\n function f() {\n c = 1, l = 0, u = !1, d = !1;\n }\n\n function p() {\n var e = t.querySelector(\".tokui-lightbox__img\"),\n n = [];\n n.push(\"scale(\" + c + \")\"), n.push(\"rotate(\" + l + \"deg)\"), u && n.push(\"scaleX(-1)\"), d && n.push(\"scaleY(-1)\"), e.style.transform = n.join(\" \"), e.style.cursor = c > 1 ? \"grab\" : \"\", m();\n }\n\n function m() {\n if (t) {\n var e = t.querySelector(\".tokui-lightbox__scale\");\n e && (e.textContent = Math.round(c * 100) + \"%\");\n }\n }\n\n function h() {\n t = e.createElement(\"div\"), t.className = \"tokui-lightbox\", t.setAttribute(\"role\", \"dialog\"), t.setAttribute(\"aria-modal\", \"true\"), t.setAttribute(\"aria-label\", n(\"lightbox.preview\"));\n var r = e.createElement(\"img\");\n r.className = \"tokui-lightbox__img\", t.appendChild(r);\n var i = e.createElement(\"div\");\n i.className = \"tokui-lightbox__toolbar\";\n var a = e.createElement(\"button\");\n a.className = \"tokui-lightbox__tool\", a.setAttribute(\"aria-label\", n(\"lightbox.zoomIn\")), a.innerHTML = \"+\", a.addEventListener(\"click\", function (e) {\n e.stopPropagation(), g();\n });\n var o = e.createElement(\"span\");\n o.className = \"tokui-lightbox__scale\", o.textContent = \"100%\";\n var s = e.createElement(\"button\");\n s.className = \"tokui-lightbox__tool\", s.setAttribute(\"aria-label\", n(\"lightbox.zoomOut\")), s.innerHTML = \"−\", s.addEventListener(\"click\", function (e) {\n e.stopPropagation(), _();\n });\n var c = e.createElement(\"button\");\n c.className = \"tokui-lightbox__tool\", c.setAttribute(\"aria-label\", n(\"lightbox.reset\")), c.innerHTML = \"↺\", c.addEventListener(\"click\", function (e) {\n e.stopPropagation(), b();\n });\n var l = e.createElement(\"button\");\n l.className = \"tokui-lightbox__tool\", l.setAttribute(\"aria-label\", n(\"lightbox.rotateLeft\")), l.innerHTML = \"↺L\", l.addEventListener(\"click\", function (e) {\n e.stopPropagation(), v(-90);\n });\n var u = e.createElement(\"button\");\n u.className = \"tokui-lightbox__tool\", u.setAttribute(\"aria-label\", n(\"lightbox.rotateRight\")), u.innerHTML = \"↻R\", u.addEventListener(\"click\", function (e) {\n e.stopPropagation(), v(90);\n });\n var d = e.createElement(\"button\");\n d.className = \"tokui-lightbox__tool\", d.setAttribute(\"aria-label\", n(\"lightbox.flipH\")), d.innerHTML = \"↔\", d.addEventListener(\"click\", function (e) {\n e.stopPropagation(), y(\"h\");\n });\n var f = e.createElement(\"button\");\n f.className = \"tokui-lightbox__tool\", f.setAttribute(\"aria-label\", n(\"lightbox.flipV\")), f.innerHTML = \"↕\", f.addEventListener(\"click\", function (e) {\n e.stopPropagation(), y(\"v\");\n });\n var p = e.createElement(\"span\");\n p.className = \"tokui-lightbox__sep\";\n var m = e.createElement(\"span\");\n m.className = \"tokui-lightbox__counter\", i.appendChild(s), i.appendChild(o), i.appendChild(a), i.appendChild(c), i.appendChild(p), i.appendChild(l), i.appendChild(u), i.appendChild(d), i.appendChild(f), i.appendChild(p.cloneNode()), i.appendChild(m), t.appendChild(i);\n var h = e.createElement(\"div\");\n h.className = \"tokui-lightbox__filename\", t.appendChild(h);\n var x = e.createElement(\"button\");\n x.className = \"tokui-lightbox__prev\", x.textContent = \"\\u2039\", x.setAttribute(\"aria-label\", \"Previous\"), t.appendChild(x);\n var C = e.createElement(\"button\");\n C.className = \"tokui-lightbox__next\", C.textContent = \"\\u203A\", C.setAttribute(\"aria-label\", \"Next\"), t.appendChild(C);\n var w = e.createElement(\"button\");\n return w.className = \"tokui-lightbox__close\", w.innerHTML = \"×\", w.setAttribute(\"aria-label\", n(\"common.close\")), w.addEventListener(\"click\", function (e) {\n e.stopPropagation(), T();\n }), t.appendChild(w), t.addEventListener(\"wheel\", function (e) {\n e.preventDefault(), e.deltaY < 0 ? g() : _();\n }), t.addEventListener(\"click\", function (e) {\n e.target === t && T();\n }), x.addEventListener(\"click\", function (e) {\n e.stopPropagation(), S(-1);\n }), C.addEventListener(\"click\", function (e) {\n e.stopPropagation(), S(1);\n }), t;\n }\n\n function g() {\n c = Math.min(c + .25, 5), p();\n }\n\n function _() {\n c = Math.max(c - .25, .25), p();\n }\n\n function v(e) {\n l = (l + e) % 360, p();\n }\n\n function y(e) {\n e === \"h\" ? u = !u : d = !d, p();\n }\n\n function b() {\n f(), p();\n }\n\n function x() {\n var e = t.querySelector(\".tokui-lightbox__img\"),\n n = t.querySelector(\".tokui-lightbox__counter\"),\n o = t.querySelector(\".tokui-lightbox__prev\"),\n s = t.querySelector(\".tokui-lightbox__next\"),\n c = t.querySelector(\".tokui-lightbox__filename\");\n e.src = a[i], n.textContent = a.length > 1 ? i + 1 + \"/\" + a.length : \"\", o.style.display = a.length > 1 ? \"\" : \"none\", s.style.display = a.length > 1 ? \"\" : \"none\";\n var l = r(a[i]);\n c.textContent = l, c.style.display = l ? \"\" : \"none\", f(), e.style.transform = \"\", e.style.cursor = \"\", m();\n }\n\n function S(e) {\n i = (i + e + a.length) % a.length, x();\n }\n\n function C(n) {\n if (n.key === \"Escape\" && T(), n.key === \"ArrowLeft\" && S(-1), n.key === \"ArrowRight\" && S(1), (n.key === \"+\" || n.key === \"=\") && g(), n.key === \"-\" && _(), (n.key === \"r\" || n.key === \"R\") && v(n.shiftKey ? -90 : 90), (n.key === \"h\" || n.key === \"H\") && y(\"h\"), (n.key === \"v\" || n.key === \"V\") && y(\"v\"), n.key === \"0\" && b(), n.key === \"Tab\" && t) {\n var r = t.querySelectorAll(\"button, [tabindex]\");\n if (r.length === 0) return;\n var i = r[0],\n a = r[r.length - 1];\n n.shiftKey && e.activeElement === i ? (n.preventDefault(), a.focus()) : !n.shiftKey && e.activeElement === a && (n.preventDefault(), i.focus());\n }\n }\n\n function w(n, r) {\n s = e.activeElement, a = r || [n], i = a.indexOf(n), i < 0 && (i = 0), t || h(), e.body.appendChild(t), x(), e.addEventListener(\"keydown\", C), o = C;\n var c = t.querySelector(\".tokui-lightbox__close\");\n c && c.focus();\n }\n\n function T() {\n t && t.parentNode && t.parentNode.removeChild(t), o && (o = (e.removeEventListener(\"keydown\", o), null)), s && s.focus && (s.focus(), s = null);\n }\n\n return {\n open: w,\n destroy: T\n };\n }\n\n var a = null;\n\n function o(e) {\n return a || (a = i(e || document)), a;\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.createLightbox = i, window.TokUI._internal.getLightbox = o), t !== void 0 && t.exports && (t.exports = {\n createLightbox: i,\n getLightbox: o\n });\n }),\n _ = s(function (e, t) {\n var n = true ? u().t : undefined,\n r = {},\n i = \"http://www.w3.org/2000/svg\",\n a = [\"#1677ff\", \"#52c41a\", \"#faad14\", \"#f5222d\", \"#722ed1\", \"#13c2c2\", \"#eb2f96\", \"#fa8c16\", \"#2f54eb\", \"#a0d911\"],\n o = 22;\n\n function s(e, t) {\n var n = document.createElementNS(i, e);\n return t && Object.keys(t).forEach(function (e) {\n n.setAttribute(e, String(t[e]));\n }), n;\n }\n\n function c(e) {\n return e ? String(e).split(\",\").map(function (e) {\n return parseFloat(e.trim()) || 0;\n }) : [];\n }\n\n function l(e) {\n return e ? String(e).split(\",\").map(function (e) {\n return e.trim();\n }) : [];\n }\n\n function d(e) {\n return e ? String(e).split(\"|\").map(function (e) {\n return e.split(\",\").map(function (e) {\n return parseFloat(e.trim()) || 0;\n });\n }) : [];\n }\n\n function f(e) {\n return e ? String(e).split(\";\").map(function (e) {\n var t = e.split(\",\").map(function (e) {\n return parseFloat(e.trim()) || 0;\n });\n return {\n x: t[0] || 0,\n y: t[1] || 0\n };\n }) : [];\n }\n\n function p(e) {\n return e ? String(e).split(\",\").map(function (e) {\n return parseFloat(e.trim());\n }).filter(function (e) {\n return !isNaN(e);\n }) : [];\n }\n\n function m(e) {\n return e ? String(e).split(\",\").map(function (e) {\n return e.trim().replace(/^[\"']|[\"']$/g, \"\");\n }).filter(h) : [];\n }\n\n function h(e) {\n return !e || (e = e.trim(), !e) ? !1 : !!(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(e) || /^var\\(--[^)]+\\)$/.test(e) || /^(rgba?|hsla?)\\([^)]*\\)$/i.test(e));\n }\n\n function g(e) {\n if (e.c) {\n var t = String(e.c).split(\",\").map(function (e) {\n return e.trim().replace(/^[\"']|[\"']$/g, \"\");\n }).filter(h);\n if (t.length) return t;\n }\n\n return a;\n }\n\n function _(e) {\n return Math.max.apply(null, e);\n }\n\n function v(e) {\n return Math.min.apply(null, e);\n }\n\n function y(e, t, n) {\n return Math.max(t, Math.min(n, e));\n }\n\n function b(e, t, n, r, i, a, o) {\n if (e[t] !== void 0 && e[t] !== \"\") {\n var s = parseInt(e[t], 10);\n if (!isNaN(s) && s > 0) return s;\n }\n\n return y(Math.round(r + Math.max(0, n) * i), a, o);\n }\n\n function x(e, t, n, r) {\n return e / t > n && (t = Math.round(e / n)), Math.min(t, r);\n }\n\n function S(e, t) {\n var n = 0,\n r = s(\"g\", {\n class: \"tokui-chart-tips-layer\"\n });\n\n function i(e) {\n for (var t = 0, n = 0; n < e.length; n++) {\n t += e.charCodeAt(n) > 127 ? 10 : 5.5;\n }\n\n return t;\n }\n\n return {\n layer: r,\n add: function add(a, o, c, l) {\n var u = String(n++);\n a.setAttribute(\"data-tip-id\", u);\n var d = o.split(\" \"),\n f = 14,\n p = 8,\n m = 4,\n h = 0;\n d.forEach(function (e) {\n h = Math.max(h, i(e));\n });\n\n var g = h + p * 2,\n _ = d.length * f + m * 2,\n v = c - g / 2,\n y = l - _ - 6;\n\n v < 2 && (v = 2), v + g > e - 2 && (v = e - g - 2), y < 2 && (y = l + 10), y + _ > t - 2 && (y = t - _ - 2);\n var b = s(\"g\", {\n class: \"tokui-chart-tip\",\n \"data-tip-id\": u\n });\n b.setAttribute(\"data-tx\", c), b.setAttribute(\"data-ty\", l), b.appendChild(s(\"rect\", {\n x: v,\n y: y,\n width: g,\n height: _,\n rx: 4,\n fill: \"rgba(0,0,0,0.78)\"\n })), d.forEach(function (e, t) {\n var n = s(\"text\", {\n x: v + g / 2,\n y: y + m + (t + .5) * f,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"#fff\",\n \"font-size\": \"10\"\n });\n n.textContent = e, b.appendChild(n);\n }), r.appendChild(b);\n }\n };\n }\n\n function C(e) {\n e.querySelectorAll(\".tokui-chart-tip-group\").forEach(function (t) {\n t.addEventListener(\"mouseenter\", function () {\n var n = t.getAttribute(\"data-tip-id\"),\n r = e.querySelector(\".tokui-chart-tips-layer [data-tip-id=\\\"\" + n + \"\\\"]\");\n r && (r.style.opacity = \"1\");\n }), t.addEventListener(\"mouseleave\", function () {\n var n = t.getAttribute(\"data-tip-id\"),\n r = e.querySelector(\".tokui-chart-tips-layer [data-tip-id=\\\"\" + n + \"\\\"]\");\n r && (r.style.opacity = \"\");\n });\n });\n }\n\n function w(e, t) {\n e.querySelectorAll(\".tokui-chart-tip-group:not([data-tip-bound])\").forEach(function (e) {\n e.setAttribute(\"data-tip-bound\", \"1\"), e.addEventListener(\"mouseenter\", function () {\n var n = e.getAttribute(\"data-tip-id\"),\n r = t.querySelector(\".tokui-chart-tips-layer [data-tip-id=\\\"\" + n + \"\\\"]\");\n r && (r.style.opacity = \"1\");\n }), e.addEventListener(\"mouseleave\", function () {\n var n = e.getAttribute(\"data-tip-id\"),\n r = t.querySelector(\".tokui-chart-tips-layer [data-tip-id=\\\"\" + n + \"\\\"]\");\n r && (r.style.opacity = \"\");\n });\n });\n }\n\n function T(e) {\n for (; e && e.firstChild;) {\n e.removeChild(e.firstChild);\n }\n }\n\n function E(e, t) {\n if (e.createSVGPoint && e.getScreenCTM) try {\n var n = e.createSVGPoint();\n n.x = t, n.y = 0;\n var r = e.getScreenCTM();\n if (r) return n.matrixTransform(r.inverse()).x;\n } catch (_unused8) {}\n var i = e.getBoundingClientRect(),\n a = e.viewBox && e.viewBox.baseVal;\n return !i || !i.width || !a ? t - (i ? i.left : 0) : (t - i.left) / i.width * a.width + a.x;\n }\n\n function D(e, t) {\n if (e.createSVGPoint && e.getScreenCTM) try {\n var n = e.createSVGPoint();\n n.x = 0, n.y = t;\n var r = e.getScreenCTM();\n if (r) return n.matrixTransform(r.inverse()).y;\n } catch (_unused9) {}\n var i = e.getBoundingClientRect(),\n a = e.viewBox && e.viewBox.baseVal;\n return !i || !i.height || !a ? t - (i ? i.top : 0) : (t - i.top) / i.height * a.height + a.y;\n }\n\n function O(e) {\n if ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) > \"u\") return;\n var t = e.svg,\n n = e.padL,\n r = e.padT,\n i = e.cw,\n a = e.ch,\n o = e.n,\n c = e.series,\n l = e.labels,\n u = s(\"g\", {\n class: \"tokui-chart-axis-pointer\"\n });\n e.tipLayer.appendChild(u);\n var d = s(\"line\", {\n y1: r,\n y2: r + a,\n stroke: \"var(--tokui-chart-axis, #bbb)\",\n \"stroke-width\": 1,\n \"stroke-dasharray\": \"4,3\",\n opacity: \"0\",\n \"pointer-events\": \"none\"\n }),\n f = s(\"line\", {\n x1: n,\n x2: n + i,\n stroke: \"var(--tokui-chart-axis, #bbb)\",\n \"stroke-width\": 1,\n \"stroke-dasharray\": \"4,3\",\n opacity: \"0\",\n \"pointer-events\": \"none\"\n });\n u.appendChild(d), u.appendChild(f);\n var p = c.map(function (e) {\n var t = s(\"circle\", {\n r: 5,\n fill: \"var(--tokui-card-bg, #fff)\",\n stroke: e.color,\n \"stroke-width\": 2.5,\n opacity: \"0\",\n \"pointer-events\": \"none\"\n });\n return u.appendChild(t), t;\n }),\n m = s(\"g\", {\n class: \"tokui-chart-tip tokui-chart-tip--axis\",\n opacity: \"0\",\n \"pointer-events\": \"none\",\n style: \"transition:opacity .12s ease;\"\n }),\n h = s(\"rect\", {\n rx: 4,\n fill: \"rgba(0,0,0,0.82)\"\n });\n m.appendChild(h);\n var g = s(\"text\", {\n \"text-anchor\": \"start\",\n fill: \"#fff\",\n \"font-weight\": \"600\"\n });\n m.appendChild(g);\n\n var _ = c.map(function () {\n var e = s(\"g\", {});\n return e.appendChild(s(\"rect\", {\n width: 8,\n height: 8,\n rx: 1\n })), e.appendChild(s(\"text\", {\n \"text-anchor\": \"start\",\n fill: \"#fff\"\n })), m.appendChild(e), e;\n });\n\n u.appendChild(m);\n\n function v() {\n d.setAttribute(\"opacity\", \"0\"), f.setAttribute(\"opacity\", \"0\"), p.forEach(function (e) {\n e.setAttribute(\"opacity\", \"0\");\n }), m.style.opacity = \"0\";\n }\n\n function y(n, r) {\n var i = e.toIdx(n);\n\n if (i < 0 || i >= o || !e.inWindow(i)) {\n v();\n return;\n }\n\n var a = e.toViewX(i);\n d.setAttribute(\"x1\", a), d.setAttribute(\"x2\", a), d.setAttribute(\"opacity\", \"0.9\"), f.setAttribute(\"y1\", r), f.setAttribute(\"y2\", r), f.setAttribute(\"opacity\", \"0.9\");\n var s = t._tokuiBumpedFs || e.bfs || 10,\n u = s + 4,\n y = 7,\n b = String(l[i] == null ? i + 1 : l[i]);\n g.textContent = b, g.setAttribute(\"font-size\", s);\n var x = M(b) * s / 7;\n\n _.forEach(function (t, n) {\n var r = c[n].vals[i],\n o = c[n].markerVals ? c[n].markerVals[i] : r,\n l = (c[n].name ? c[n].name + \": \" : \"\") + (r !== null && r !== void 0 ? r : \"\\u2014\");\n t.querySelector(\"text\").textContent = l, t.querySelector(\"text\").setAttribute(\"font-size\", s), t.querySelector(\"rect\").setAttribute(\"fill\", c[n].color);\n var u = M(l) * s / 7;\n u > x && (x = u), p[n].setAttribute(\"cx\", a), p[n].setAttribute(\"cy\", o == null ? 0 : e.yOf(o)), p[n].setAttribute(\"opacity\", o == null || r == null ? \"0\" : \"1\");\n });\n\n var S = x + 8 + 8 + y * 2,\n C = u * (1 + c.length) + y * 2,\n w = 12,\n T = n + w,\n E = r + w;\n T + S > e.w - 2 && (T = n - S - w), T < 2 && (T = 2), E + C > e.h - 2 && (E = r - C - w), E < 2 && (E = 2), h.setAttribute(\"x\", T), h.setAttribute(\"y\", E), h.setAttribute(\"width\", S), h.setAttribute(\"height\", C), g.setAttribute(\"x\", T + y), g.setAttribute(\"y\", E + y + s * .85), _.forEach(function (e, t) {\n var n = E + y + u * (t + 1) + s * .85;\n e.querySelector(\"rect\").setAttribute(\"x\", T + y), e.querySelector(\"rect\").setAttribute(\"y\", n - s * .7), e.querySelector(\"text\").setAttribute(\"x\", T + y + 8 + 8), e.querySelector(\"text\").setAttribute(\"y\", n);\n }), m.style.opacity = \"1\";\n }\n\n var b = s(\"rect\", {\n x: n,\n y: r,\n width: i,\n height: a,\n fill: \"transparent\",\n style: \"cursor:crosshair;\"\n });\n return t.appendChild(b), b.addEventListener(\"mousemove\", function (e) {\n y(E(t, e.clientX), D(t, e.clientY));\n }), b.addEventListener(\"mouseleave\", v), {\n show: y,\n hide: v,\n overlay: b\n };\n }\n\n function k(e, t) {\n var n = t.padL,\n r = t.cw,\n i = t.n,\n a = t.plotG,\n o = \"tokui-chart-clip-\" + ++P,\n c = s(\"defs\"),\n l = s(\"clipPath\", {\n id: o\n });\n l.appendChild(s(\"rect\", {\n x: n - 1,\n y: t.padT - 1,\n width: r + 2,\n height: t.ch + 2\n })), c.appendChild(l), e.appendChild(c);\n var u = s(\"g\", {\n \"clip-path\": \"url(#\" + o + \")\"\n }),\n d = a.parentNode,\n f = a.nextSibling;\n u.appendChild(a), f ? d.insertBefore(u, f) : d.appendChild(u);\n var p = s(\"g\", {\n class: \"tokui-chart-plot-labels\"\n });\n d.appendChild(p);\n var m = s(\"rect\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n rx: 4,\n fill: \"rgba(0,0,0,0.78)\"\n }),\n h = s(\"text\", {\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"#fff\",\n \"font-size\": \"10\"\n }),\n g = s(\"g\", {\n class: \"tokui-chart-tip tokui-chart-tip--shared\"\n });\n g.appendChild(m), g.appendChild(h), t.tipLayer.appendChild(g);\n var _ = {\n s: 0,\n e: i - 1,\n sx: 1,\n tx: 0\n };\n\n function v(n, r, i) {\n for (var a = e._tokuiBumpedFs || 10, o = a / 10, s = 0, c = 0; c < n.length; c++) {\n s += n.charCodeAt(c) > 127 ? 10 : 5.5;\n }\n\n var l = s * o + 16,\n u = 18 * o,\n d = r - l / 2,\n f = i - u - 6;\n d < 2 && (d = 2), d + l > t.w - 2 && (d = t.w - l - 2), f < 2 && (f = i + 10), m.setAttribute(\"x\", d), m.setAttribute(\"y\", f), m.setAttribute(\"width\", l), m.setAttribute(\"height\", u), h.setAttribute(\"x\", d + l / 2), h.setAttribute(\"y\", f + u / 2 + 1), h.setAttribute(\"font-size\", a), h.textContent = n, g.style.opacity = \"1\";\n }\n\n function b(i, o, s) {\n var c = t.srcLeft(i),\n l = r / (t.srcRight(o) - c),\n u = n - l * c;\n\n if (a.setAttribute(\"transform\", \"matrix(\" + l + \" 0 0 1 \" + u + \" 0)\"), _.s = i, _.e = o, _.sx = l, _.tx = u, T(p), s) {\n t.renderLabels(p, i, o);\n var d = e._tokuiBumpedFs;\n if (d) for (var f = p.querySelectorAll(\"text\"), m = 0; m < f.length; m++) {\n f[m].setAttribute(\"font-size\", d);\n }\n }\n\n t.onZoom && t.onZoom(i, o, l, u);\n }\n\n var x = s(\"g\", {\n class: \"tokui-chart-zoom\"\n });\n d.appendChild(x);\n var S = t.h + 6,\n C = 16,\n w = C - 2,\n D = s(\"rect\", {\n x: n,\n y: S,\n width: r,\n height: C,\n fill: \"var(--tokui-chart-grid, #e8e8e8)\",\n rx: 3,\n class: \"tokui-chart-zoom-track\"\n });\n x.appendChild(D);\n\n for (var O = r / i, k = [], A = 0; A < i; A++) {\n var j = t.overview[A] || 0,\n M = Math.max(1, (j - t.valMin) / t.range * w),\n I = s(\"rect\", {\n x: n + A * O + .5,\n y: S + C - 1 - M,\n width: Math.max(1, O - 1),\n height: M,\n fill: \"var(--tokui-chart-text, #bbb)\",\n opacity: \"0.55\",\n class: \"tokui-chart-zoom-overview\"\n });\n x.appendChild(I), k.push({\n el: I,\n val: j\n });\n }\n\n var R = s(\"rect\", {\n y: S - 1,\n height: C + 2,\n fill: \"rgba(0,120,212,0.12)\",\n stroke: \"var(--tokui-primary-6, #1a73e8)\",\n \"stroke-width\": 1,\n rx: 2,\n class: \"tokui-chart-zoom-window\",\n style: \"cursor:grab;\"\n }),\n z = s(\"rect\", {\n width: 6,\n height: C + 6,\n y: S - 3,\n fill: \"var(--tokui-primary-6, #1a73e8)\",\n rx: 2,\n class: \"tokui-chart-zoom-handle tokui-chart-zoom-handle--l\",\n style: \"cursor:ew-resize;\"\n }),\n B = s(\"rect\", {\n width: 6,\n height: C + 6,\n y: S - 3,\n fill: \"var(--tokui-primary-6, #1a73e8)\",\n rx: 2,\n class: \"tokui-chart-zoom-handle tokui-chart-zoom-handle--r\",\n style: \"cursor:ew-resize;\"\n });\n x.appendChild(R), x.appendChild(z), x.appendChild(B);\n\n function V(n) {\n if (n > 0) {\n var r = L(9, n, N, F);\n e._tokuiBumpedFs = r, h && h.setAttribute(\"font-size\", r);\n var i = Math.min(26, Math.max(16, 14 / n)),\n a = Math.min(24, Math.max(6, 10 / n));\n C = i, w = C - 2, D.setAttribute(\"height\", C), R.setAttribute(\"height\", C + 2), z.setAttribute(\"width\", a), z.setAttribute(\"height\", C + 6), B.setAttribute(\"width\", a), B.setAttribute(\"height\", C + 6);\n\n for (var o = 0; o < k.length; o++) {\n var s = Math.max(1, (k[o].val - t.valMin) / t.range * w);\n k[o].el.setAttribute(\"y\", S + C - 1 - s), k[o].el.setAttribute(\"height\", s);\n }\n }\n }\n\n var H = 0,\n U = 1,\n W = Math.max(2, Math.floor(i * .1)) / (i - 1);\n\n function G(e, t) {\n var i = n + e * r,\n a = n + t * r;\n R.setAttribute(\"x\", i), R.setAttribute(\"width\", Math.max(2, a - i)), z.setAttribute(\"x\", i - 3), B.setAttribute(\"x\", a - 3);\n }\n\n G(H, U);\n var ee = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && typeof window.requestAnimationFrame == \"function\",\n q = !1,\n J = null;\n\n function te(e, t) {\n J = [e, t], !q && (q = !0, ee ? window.requestAnimationFrame(function () {\n q = !1, J && b(J[0], J[1], !1);\n }) : (q = !1, b(e, t, !1)));\n }\n\n function ne(e) {\n G(H, U);\n var t = K(i, H, U);\n e ? te(t.s, t.e) : (J = null, b(t.s, t.e, !0));\n }\n\n function Y(t, i) {\n t.style.touchAction = \"none\", t.style.userSelect = \"none\", t.style.webkitUserDrag = \"none\";\n\n function a(a, o) {\n var s = !0,\n c = a;\n\n function l(e) {\n if (s) {\n var t = y((e - n) / r, 0, 1);\n if (i === \"l\") H = Math.min(t, U - W);else if (i === \"r\") U = Math.max(t, H + W);else {\n var a = U - H,\n o = (e - c) / r;\n H = y(H + o, 0, 1 - a), U = H + a;\n }\n c = e, ne(!0);\n }\n }\n\n function u(t) {\n t.preventDefault(), l(E(e, t.clientX));\n }\n\n function d() {\n s = !1, t.removeEventListener(\"pointermove\", u), t.removeEventListener(\"pointerup\", d);\n\n try {\n t.releasePointerCapture(o);\n } catch (_unused10) {}\n\n ne(!1);\n }\n\n t.addEventListener(\"pointermove\", u), t.addEventListener(\"pointerup\", d);\n }\n\n t.addEventListener(\"pointerdown\", function (n) {\n n.preventDefault(), n.stopPropagation();\n\n try {\n t.setPointerCapture(n.pointerId);\n } catch (_unused11) {}\n\n a(E(e, n.clientX), n.pointerId);\n });\n }\n\n return Y(z, \"l\"), Y(B, \"r\"), Y(R, \"pan\"), b(0, i - 1, !0), e._tokuiZoomRelayout = V, {\n showTip: v,\n winState: _,\n sharedTip: g,\n clipG: u\n };\n }\n\n function A(e, t, n, r, i, a) {\n if (!(!t || !t.length)) {\n i > 0 || (i = 7);\n var o = 8,\n c = 4,\n l = 14,\n u = t.map(function (e) {\n var t = M(e.text) * (i / 7);\n return {\n e: e,\n w: o + c + t\n };\n }),\n d = u.reduce(function (e, t) {\n return e + t.w;\n }, 0),\n f = l;\n\n if (a && u.length > 1) {\n var p = Math.max(0, n - 8 - d) / (u.length - 1);\n f = Math.max(18, Math.min(56, p));\n }\n\n var m = d + f * (u.length - 1),\n h = Math.max(4, (n - m) / 2);\n u.forEach(function (t) {\n e.appendChild(s(\"rect\", {\n x: h,\n y: r + 1,\n width: o,\n height: 8,\n fill: t.e.color,\n rx: 1.5\n }));\n var n = s(\"text\", {\n x: h + o + c,\n y: r + 7,\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": String(i)\n });\n n.textContent = t.e.text, e.appendChild(n), h += t.w + f;\n });\n }\n }\n\n function j(e, t, r) {\n var i = s(\"svg\", {\n viewBox: \"0 0 \" + e + \" \" + t,\n class: \"tokui-chart__svg tokui-chart__svg--empty\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n a = s(\"text\", {\n x: e / 2,\n y: t / 2,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #bbb)\",\n \"font-size\": \"11\"\n });\n return a.textContent = r || n(\"chart.empty\"), i.appendChild(a), i;\n }\n\n function M(e) {\n for (var t = 0, n = 0; n < e.length; n++) {\n t += e.charCodeAt(n) > 127 ? 8 : 4.5;\n }\n\n return t;\n }\n\n var N = 14,\n P = 0,\n F = 16,\n I = 7;\n\n function L(e, t, n, r) {\n if (!(t > 0)) return e;\n var i = e * t;\n return r > 0 && i > r ? r / t : n > 0 && i < n ? n / t : e;\n }\n\n function R(e, t) {\n if (t > 0) {\n var n = L(10, t, N, F) / 10;\n if (!(Math.abs(n - 1) < .005)) for (var r = e.querySelectorAll(\".tokui-chart-tips-layer .tokui-chart-tip:not(.tokui-chart-tip--shared):not(.tokui-chart-tip--axis)\"), i = 0; i < r.length; i++) {\n var a = r[i],\n o = parseFloat(a.getAttribute(\"data-tx\")),\n s = parseFloat(a.getAttribute(\"data-ty\"));\n\n if (!isFinite(o) || !isFinite(s)) {\n var c = a.querySelector(\"rect\");\n c ? (o = parseFloat(c.getAttribute(\"x\")) + parseFloat(c.getAttribute(\"width\")) / 2, s = parseFloat(c.getAttribute(\"y\")) + parseFloat(c.getAttribute(\"height\")) / 2) : (o = 0, s = 0);\n }\n\n a.setAttribute(\"transform\", \"translate(\" + o + \" \" + s + \") scale(\" + Math.round(n * 1e3) / 1e3 + \") translate(\" + -o + \" \" + -s + \")\");\n }\n }\n }\n\n function z(e, t, n, r, i) {\n if (!(e > 0) || !(t >= 0) || !(r >= 0) || !(i > 0)) return 0;\n var a = e - 2 * i * (r - 1);\n return a <= 0 ? 0 : 2 * i * (t + n) / a;\n }\n\n function B(e, t) {\n (!(e > 0) || !isFinite(e)) && (e = 1);\n var n = Math.floor(Math.log10(e)),\n r = e / Math.pow(10, n);\n return (t ? r < 1.5 ? 1 : r < 3 ? 2 : r < 7 ? 5 : 10 : r <= 1 ? 1 : r <= 2 ? 2 : r <= 5 ? 5 : 10) * Math.pow(10, n);\n }\n\n function V(e, t) {\n if (!isFinite(e) || !isFinite(t)) return [0, 1];\n e === t && (--e, t += 1);\n var n = B(B(t - e, !1) / 5, !0) || 1;\n return [Math.floor(e / n) * n, Math.ceil(t / n) * n];\n }\n\n function H(e, t, n, r) {\n if (e[t] !== void 0 && e[t] !== \"\") {\n var i = parseFloat(e[t]);\n if (!isNaN(i)) return i;\n }\n\n return e[n] === void 0 ? r : +e[n];\n }\n\n var U = 38;\n\n function W(e, t, n, r, i) {\n var a = e.length,\n o = n || 30;\n if (!a) return {\n rotate: !1,\n padB: o,\n interval: 1\n };\n\n for (var s = r || t * a, c = 0, l = 0; l < a; l++) {\n if (!(e[l] == null || e[l] === \"\")) {\n var u = M(String(e[l]));\n u > c && (c = u);\n }\n }\n\n var d = F / I * c,\n f = Math.max(U, d * 1.15),\n p = Math.max(U * .72, d * .72),\n m = Math.max(1, Math.floor(s / f)),\n h = Math.max(1, Math.floor(s / p)),\n g = 1,\n _ = !1,\n v = i === void 0 ? \"auto\" : String(i);\n\n if (v === \"0\") g = 1, _ = a > m && (a <= h || a <= 10);else if (v === \"auto\") a <= m ? (g = 1, _ = !1) : a <= 10 || a <= h ? (g = 1, _ = !0) : (g = Math.ceil(a / m), _ = !1);else {\n var y = parseInt(v, 10);\n !isNaN(y) && y > 1 ? (g = y, _ = Math.ceil(a / g) > m && Math.ceil(a / g) <= h) : (g = 1, _ = a > m);\n }\n return _ && (o = Math.max(n || 30, 52)), {\n rotate: _,\n padB: o,\n interval: g\n };\n }\n\n var G = 30;\n\n function ee(e, t) {\n var n = e.zoom;\n if (n === void 0) return !1;\n var r = String(n);\n if (r === \"\" || r === \"auto\" || r === \"on\" || r === \"true\") return t > G;\n if (r === \"off\" || r === \"false\" || r === \"0\") return !1;\n var i = parseInt(r, 10);\n return isNaN(i) ? t > G : t > i;\n }\n\n function K(e, t, n) {\n if (e <= 1) return {\n s: 0,\n e: Math.max(0, e - 1)\n };\n var r = Math.round(t * (e - 1)),\n i = Math.round(n * (e - 1));\n\n if (r < 0 && (r = 0), i > e - 1 && (i = e - 1), r > i) {\n var a = r;\n r = i, i = a;\n }\n\n var o = Math.min(e - 1, Math.max(2, Math.floor(e * .1)));\n return i - r < o && (r + o <= e - 1 ? i = r + o : (i = e - 1, r = Math.max(0, i - o))), {\n s: r,\n e: i\n };\n }\n\n function q(e, t, n, r, i, a, o) {\n var c = (i || 40) * .9,\n l = typeof a == \"boolean\",\n u = o && o > 1 ? o : 1,\n d = t.length - 1;\n t.forEach(function (t, i) {\n if (!(t == null || t === \"\") && !(u > 1 && !(i === 0 || i === d || i % u === 0))) {\n var o = n[i],\n f = l ? a : M(String(t)) > c,\n p = s(\"text\", {\n x: o,\n y: r,\n \"text-anchor\": f ? \"end\" : \"middle\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n });\n f && p.setAttribute(\"transform\", \"rotate(-45 \" + o + \" \" + r + \")\"), p.textContent = t, e.appendChild(p);\n }\n });\n }\n\n function J(e, t, n, r, i) {\n var a = s(\"text\", {\n x: n,\n y: r,\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-chart-text, #666)\",\n \"font-size\": \"9\"\n });\n i && a.setAttribute(\"transform\", \"rotate(-90 \" + n + \" \" + r + \")\"), a.textContent = t, e.appendChild(a);\n }\n\n function te(e, t, n, r) {\n var i = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && typeof window.requestAnimationFrame == \"function\",\n a = i && window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n if (!(n > 0) || !i || a) {\n r(t);\n return;\n }\n\n var o = null;\n\n function s(i) {\n o === null && (o = i);\n var a = Math.min(1, (i - o) / n),\n c = 1 - Math.pow(1 - a, 3);\n r(e + (t - e) * c), a < 1 && window.requestAnimationFrame(s);\n }\n\n window.requestAnimationFrame(s);\n }\n\n function ne(e) {\n return e = String(e).replace(\"#\", \"\"), e.length === 3 && (e = e[0] + e[0] + e[1] + e[1] + e[2] + e[2]), /^[0-9a-fA-F]{6}$/.test(e) ? [parseInt(e.slice(0, 2), 16), parseInt(e.slice(2, 4), 16), parseInt(e.slice(4, 6), 16)] : null;\n }\n\n function Y(e, t, n) {\n var r = ne(e),\n i = ne(t);\n if (!r || !i) return e;\n var a = Math.round(r[0] + (i[0] - r[0]) * n),\n o = Math.round(r[1] + (i[1] - r[1]) * n),\n s = Math.round(r[2] + (i[2] - r[2]) * n);\n return \"rgb(\" + a + \",\" + o + \",\" + s + \")\";\n }\n\n function re(e, t) {\n if (t = y(t, 0, 1), e.length === 1) return e[0];\n var n = t * (e.length - 1),\n r = Math.min(e.length - 2, Math.floor(n));\n return Y(e[r], e[r + 1], n - r);\n }\n\n function ie(e, t, r, i) {\n var a = i.orient === \"h\" || i.orientation === \"h\",\n c = i.stack !== void 0 || i.stacked !== void 0,\n l = d(i.d);\n if (l.length || (l = [e]), l.every(function (e) {\n return !e.length;\n })) return j(parseInt(i.w) || 400, parseInt(i.h) || 200);\n var u = Math.max.apply(null, l.map(function (e) {\n return e.length;\n })),\n f,\n p;\n a ? (f = parseInt(i.w) || 480, p = b(i, \"h\", u, 36, 26, 200, 1200)) : (f = b(i, \"w\", u, 52, 26, 360, 2400), p = x(f, parseInt(i.h) || 200, 4, 560));\n\n var m = l.length > 1,\n h = !a && ee(i, u),\n g = h ? 28 : 0,\n _ = p + (m ? o : 0) + g,\n v = 0,\n D = 0;\n\n if (c) for (var O = 0; O < u; O++) {\n var k = 0,\n M = 0;\n l.forEach(function (e) {\n var t = e[O] || 0;\n t >= 0 ? k += t : M += t;\n }), k > v && (v = k), M < D && (D = M);\n } else l.forEach(function (e) {\n e.forEach(function (e) {\n e > v && (v = e), e < D && (D = e);\n });\n });\n v = H(i, \"ymax\", \"_yMax\", v || 1);\n var N = v - D || 1,\n F = s(\"svg\", {\n viewBox: \"0 0 \" + f + \" \" + _,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n I = S(f, _);\n\n function L(e, t, n) {\n var r = c ? n >= 0 ? R[t] || 0 : z[t] || 0 : 0,\n i = n >= 0 ? r + n : r,\n a = n >= 0 ? r : r + n;\n return c && (n >= 0 ? R[t] = i : z[t] = a), [a, i];\n }\n\n var R = [],\n z = [];\n\n if (a) {\n var B = 70,\n V = i.xl ? 30 : 22,\n U = 14,\n G = i.yl ? 30 : 16,\n te = f - B - G,\n ne = p - U - V,\n Y = ne / u,\n re = Math.max(3, c ? Y * .6 : Y * .6 / l.length);\n\n function _e37(e) {\n return B + te * (e - D) / N;\n }\n\n for (var ie = 0; ie <= 4; ie++) {\n var ae = D + N * ie / 4,\n X = _e37(ae);\n\n F.appendChild(s(\"line\", {\n x1: X,\n y1: U,\n x2: X,\n y2: U + ne,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), F.appendChild(s(\"text\", {\n x: X,\n y: U + ne + 10,\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(ae);\n }\n\n l.forEach(function (a, o) {\n a.forEach(function (a, u) {\n if (a != null) {\n var d = L(o, u, a),\n f = _e37(d[0]),\n p = Math.max(0, _e37(d[1]) - f),\n m = U + u * Y + Y * .2 + (c ? 0 : o * re),\n h = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n\n if (h.appendChild(s(\"rect\", {\n x: f,\n y: m,\n width: p,\n height: re - 1,\n fill: r[o % r.length],\n rx: 2,\n class: \"tokui-chart-bar\"\n })), I.add(h, (t[u] || \"\") + \": \" + a + (l.length > 1 ? \" (\" + n(\"chart.seriesDefault\", {\n n: o + 1\n }) + \")\" : \"\"), f + p / 2, m), F.appendChild(h), i.vals !== void 0) {\n var g = s(\"text\", {\n x: f + p + 3,\n y: m + re / 2 + 2,\n \"text-anchor\": \"start\",\n fill: \"var(--tokui-chart-text, #666)\",\n \"font-size\": \"8\"\n });\n g.textContent = a, F.appendChild(g);\n }\n }\n });\n }), t.slice(0, u).forEach(function (e, t) {\n if (!(e == null || e === \"\")) {\n var n = U + t * Y + Y / 2;\n F.appendChild(s(\"text\", {\n x: B - 6,\n y: n + 3,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = e;\n }\n }), i.xl && J(F, i.xl, B + te / 2, U + ne + 22, !1), i.yl && J(F, i.yl, 12, U + ne / 2, !0);\n } else {\n var Z = i._padL ? +i._padL : i.yl ? 46 : 40,\n oe = 12,\n se = 18,\n Q = f - Z - oe,\n ce = Q / u,\n le = W(t.slice(0, u), ce, i.xl ? 38 : 28, Q, i.interval),\n ue = le.padB,\n de = p - se - ue;\n\n function _e38(e) {\n return se + de * (1 - (e - D) / N);\n }\n\n for (var fe = 0; fe <= 4; fe++) {\n var pe = D + N * fe / 4,\n me = _e38(pe);\n\n F.appendChild(s(\"line\", {\n x1: Z,\n y1: me,\n x2: f - oe,\n y2: me,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), F.appendChild(s(\"text\", {\n x: Z - 4,\n y: me + 4,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(pe);\n }\n\n if (D < 0) {\n var he = _e38(0);\n\n F.appendChild(s(\"line\", {\n x1: Z,\n y1: he,\n x2: f - oe,\n y2: he,\n stroke: \"var(--tokui-chart-axis, #bbb)\",\n \"stroke-width\": 1\n }));\n }\n\n var ge = s(\"g\", {\n class: \"tokui-chart-plot\"\n });\n F.appendChild(ge);\n\n var _e = h && l.length === 1 && !c,\n ve = null,\n ye = null,\n be = null,\n xe = null,\n Se = null,\n Ce = null,\n we = Q / u,\n Te = Math.max(4, we * .6),\n Ee = {\n s: 0,\n e: u - 1,\n sx: 1,\n tx: 0\n };\n\n if (_e) {\n var De = \"tokui-chart-clip-\" + ++P,\n Oe = s(\"defs\"),\n k = s(\"clipPath\", {\n id: De\n });\n k.appendChild(s(\"rect\", {\n x: Z - 1,\n y: se - 1,\n width: Q + 2,\n height: de + 2\n })), Oe.appendChild(k), F.appendChild(Oe);\n var ke = s(\"g\", {\n \"clip-path\": \"url(#\" + De + \")\"\n });\n ge.appendChild(ke), ye = s(\"g\", {\n class: \"tokui-chart-plot-bars\"\n }), ke.appendChild(ye), ve = [];\n\n for (var Ae = l[0], je = 0; je < u; je++) {\n var Me = Ae[je],\n Ne = s(\"rect\", {\n x: Z + je * we + we * .2,\n y: _e38(Me),\n width: Math.max(1, Te - 1),\n height: Math.max(0, Me / N * de),\n rx: 2,\n fill: r[0],\n class: \"tokui-chart-bar\"\n });\n ye.appendChild(Ne), ve.push(Ne);\n }\n\n be = s(\"g\", {\n class: \"tokui-chart-plot-labels\"\n }), ge.appendChild(be), Se = s(\"rect\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n rx: 4,\n fill: \"rgba(0,0,0,0.78)\"\n }), Ce = s(\"text\", {\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"#fff\",\n \"font-size\": \"10\"\n }), xe = s(\"g\", {\n class: \"tokui-chart-tip tokui-chart-tip--shared\"\n }), xe.appendChild(Se), xe.appendChild(Ce), I.layer.appendChild(xe);\n }\n\n function _a7(a, o, d) {\n var f = o - a + 1;\n\n if (_e) {\n var m = u / f,\n g = Z - m * (Z + a * we);\n\n if (ye.setAttribute(\"transform\", \"matrix(\" + m + \" 0 0 1 \" + g + \" 0)\"), Ee.s = a, Ee.e = o, Ee.sx = m, Ee.tx = g, T(be), d) {\n for (var _ = Q / f, v = [], y = 0; y < f; y++) {\n v.push(Z + y * _ + _ / 2);\n }\n\n q(be, t.slice(a, o + 1), v, p - 8, _, le.rotate, le.interval);\n }\n\n return;\n }\n\n var b = Q / f;\n T(ge), d && T(I.layer);\n var x = Math.max(4, c ? b * .6 : b * .6 / l.length),\n S = [],\n C = [];\n l.forEach(function (u, f) {\n for (var p = a; p <= o; p++) {\n var m = u[p];\n\n if (m != null) {\n var h = c ? m >= 0 ? S[p] || 0 : C[p] || 0 : 0,\n g = m >= 0 ? h + m : h,\n _ = m >= 0 ? h : h + m;\n\n c && (m >= 0 ? S[p] = g : C[p] = _);\n\n var v = _e38(g),\n y = Math.max(0, (g - _) / N * de),\n w = Z + (p - a) * b + b * .2 + (c ? 0 : f * x),\n T = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n\n if (T.appendChild(s(\"rect\", {\n x: w,\n y: v,\n width: x - 1,\n height: y,\n fill: r[f % r.length],\n rx: 2,\n class: \"tokui-chart-bar\"\n })), d && I.add(T, (t[p] || \"\") + \": \" + m + (l.length > 1 ? \" (\" + n(\"chart.seriesDefault\", {\n n: f + 1\n }) + \")\" : \"\"), w + (x - 1) / 2, v), ge.appendChild(T), i.vals !== void 0) {\n var E = s(\"text\", {\n x: w + (x - 1) / 2,\n y: v - 3,\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-chart-text, #666)\",\n \"font-size\": \"8\"\n });\n E.textContent = m, ge.appendChild(E);\n }\n }\n }\n });\n\n for (var E = [], D = 0; D < f; D++) {\n E.push(Z + D * b + b / 2);\n }\n\n q(ge, t.slice(a, o + 1), E, p - 8, b, le.rotate, le.interval), d && h && w(ge, F);\n }\n\n if (_a7(0, u - 1, !0), _e) {\n function _n18(e, t, n) {\n for (var r = F._tokuiBumpedFs || 10, i = r / 10, a = 0, o = 0; o < e.length; o++) {\n a += e.charCodeAt(o) > 127 ? 10 : 5.5;\n }\n\n var s = a * i + 16,\n c = 18 * i,\n l = t - s / 2,\n u = n - c - 6;\n l < 2 && (l = 2), l + s > f - 2 && (l = f - s - 2), u < 2 && (u = n + 10), Se.setAttribute(\"x\", l), Se.setAttribute(\"y\", u), Se.setAttribute(\"width\", s), Se.setAttribute(\"height\", c), Ce.setAttribute(\"x\", l + s / 2), Ce.setAttribute(\"y\", u + c / 2 + 1), Ce.setAttribute(\"font-size\", r), Ce.textContent = e, xe.style.opacity = \"1\";\n }\n\n ve.forEach(function (r, i) {\n r.addEventListener(\"mouseenter\", function () {\n var r = l[0][i];\n\n if (r != null) {\n var a = Z + i * we + we * .2 + (Te - 1) / 2,\n o = Ee.sx * a + Ee.tx,\n s = _e38(r);\n\n _n18((t[i] || \"\") + \": \" + r, o, s);\n }\n }), r.addEventListener(\"mouseleave\", function () {\n xe.style.opacity = \"\";\n });\n });\n }\n\n i.xl && J(F, i.xl, Z + Q / 2, p - 8 + (le.rotate ? 26 : 12), !1), i.yl && J(F, i.yl, 12, se + de / 2, !0), h && function () {\n var e = s(\"g\", {\n class: \"tokui-chart-zoom\"\n });\n F.appendChild(e);\n var t = p + 6,\n n = 16,\n r = n - 2;\n e.appendChild(s(\"rect\", {\n x: Z,\n y: t,\n width: Q,\n height: n,\n fill: \"var(--tokui-chart-grid, #e8e8e8)\",\n rx: 3,\n class: \"tokui-chart-zoom-track\"\n }));\n var i = [];\n l.forEach(function (e) {\n for (var t = 0; t < e.length; t++) {\n var n = e[t] || 0;\n c ? i[t] = (i[t] || 0) + n : i[t] = Math.max(i[t] || 0, n);\n }\n });\n\n for (var o = Q / u, d = 0; d < u; d++) {\n var f = Math.max(1, (i[d] - D) / N * r);\n e.appendChild(s(\"rect\", {\n x: Z + d * o + .5,\n y: t + n - 1 - f,\n width: Math.max(1, o - 1),\n height: f,\n fill: \"var(--tokui-chart-text, #bbb)\",\n opacity: \"0.55\",\n class: \"tokui-chart-zoom-overview\"\n }));\n }\n\n var m = s(\"rect\", {\n y: t - 1,\n height: n + 2,\n fill: \"rgba(0,120,212,0.12)\",\n stroke: \"var(--tokui-primary-6, #1a73e8)\",\n \"stroke-width\": 1,\n rx: 2,\n class: \"tokui-chart-zoom-window\",\n style: \"cursor:grab;\"\n }),\n h = s(\"rect\", {\n width: 6,\n height: n + 6,\n y: t - 3,\n fill: \"var(--tokui-primary-6, #1a73e8)\",\n rx: 2,\n class: \"tokui-chart-zoom-handle tokui-chart-zoom-handle--l\",\n style: \"cursor:ew-resize;\"\n }),\n g = s(\"rect\", {\n width: 6,\n height: n + 6,\n y: t - 3,\n fill: \"var(--tokui-primary-6, #1a73e8)\",\n rx: 2,\n class: \"tokui-chart-zoom-handle tokui-chart-zoom-handle--r\",\n style: \"cursor:ew-resize;\"\n });\n e.appendChild(m), e.appendChild(h), e.appendChild(g);\n var _ = 0,\n v = 1,\n b = Math.max(2, Math.floor(u * .1)) / (u - 1);\n\n function x(e, t) {\n var n = Z + e * Q,\n r = Z + t * Q;\n m.setAttribute(\"x\", n), m.setAttribute(\"width\", Math.max(2, r - n)), h.setAttribute(\"x\", n - 3), g.setAttribute(\"x\", r - 3);\n }\n\n x(_, v);\n var S = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && typeof window.requestAnimationFrame == \"function\",\n C = !1,\n w = null;\n\n function T(e, t) {\n w = [e, t], !C && (C = !0, S ? window.requestAnimationFrame(function () {\n C = !1, w && _a7(w[0], w[1], !1);\n }) : (C = !1, _a7(e, t, !1)));\n }\n\n function O(e) {\n x(_, v);\n var t = K(u, _, v);\n e ? T(t.s, t.e) : (w = null, _a7(t.s, t.e, !0));\n }\n\n function k(e, t) {\n e.style.touchAction = \"none\", e.style.userSelect = \"none\", e.style.webkitUserDrag = \"none\";\n\n function n(n, r) {\n var i = !0,\n a = n;\n\n function o(e) {\n if (i) {\n var n = y((e - Z) / Q, 0, 1);\n if (t === \"l\") _ = Math.min(n, v - b);else if (t === \"r\") v = Math.max(n, _ + b);else {\n var r = v - _,\n o = (e - a) / Q;\n _ = y(_ + o, 0, 1 - r), v = _ + r;\n }\n a = e, O(!0);\n }\n }\n\n function s(e) {\n e.preventDefault(), o(E(F, e.clientX));\n }\n\n function c() {\n i = !1, e.removeEventListener(\"pointermove\", s), e.removeEventListener(\"pointerup\", c);\n\n try {\n e.releasePointerCapture(r);\n } catch (_unused12) {}\n\n O(!1);\n }\n\n e.addEventListener(\"pointermove\", s), e.addEventListener(\"pointerup\", c);\n }\n\n e.addEventListener(\"pointerdown\", function (t) {\n t.preventDefault(), t.stopPropagation();\n\n try {\n e.setPointerCapture(t.pointerId);\n } catch (_unused13) {}\n\n n(E(F, t.clientX), t.pointerId);\n });\n }\n\n k(h, \"l\"), k(g, \"r\"), k(m, \"pan\");\n }();\n }\n\n return m && A(F, l.map(function (e, t) {\n return {\n color: r[t % r.length],\n text: n(\"chart.seriesDefault\", {\n n: t + 1\n })\n };\n }), f, p + 6), F.appendChild(I.layer), h || C(F), F;\n }\n\n function ae(e, t, r, i) {\n var a = i.stack !== void 0 || i.stacked !== void 0,\n c = i.smooth !== void 0,\n l = d(i.d);\n if (l.length || (l = [e]), l.every(function (e) {\n return !e.length;\n })) return j(parseInt(i.w) || 400, parseInt(i.h) || 200);\n\n var u = Math.max.apply(null, l.map(function (e) {\n return e.length;\n })),\n f = b(i, \"w\", u, 52, 24, 360, 2400),\n p = x(f, parseInt(i.h) || 200, 4, 560),\n m = l.length > 1,\n h = ee(i, u),\n g = h ? 28 : 0,\n _ = p + (m ? o : 0) + g,\n v = l.map(function (e) {\n return e.slice();\n });\n\n if (a) for (var y = 1; y < v.length; y++) {\n for (var w = 0; w < u; w++) {\n v[y][w] = (v[y][w] || 0) + (v[y - 1][w] || 0);\n }\n }\n var T = 0,\n E = 1 / 0;\n v.forEach(function (e) {\n e.forEach(function (e) {\n e > T && (T = e), e < E && (E = e);\n });\n }), E === 1 / 0 && (E = 0), E > 0 && !a && (E = 0);\n var D = T - E || 1,\n M = 12,\n N = 18,\n P = i._padL ? +i._padL : i.yl ? 46 : 40,\n F = f - P - M,\n I = u > 1 ? F / (u - 1) : F,\n L = W(t.slice(0, u), I, i.xl ? 38 : 28, F, i.interval),\n R = L.padB,\n z = p - N - R,\n B = s(\"svg\", {\n viewBox: \"0 0 \" + f + \" \" + _,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n V = S(f, _);\n\n function H(e) {\n return P + (u > 1 ? e * F / (u - 1) : F / 2);\n }\n\n function U(e) {\n return N + z * (1 - (e - E) / D);\n }\n\n for (var G = 0; G <= 4; G++) {\n var K = E + D * G / 4,\n te = U(K);\n B.appendChild(s(\"line\", {\n x1: P,\n y1: te,\n x2: f - M,\n y2: te,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), B.appendChild(s(\"text\", {\n x: P - 4,\n y: te + 4,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(K * 10) / 10;\n }\n\n function ne(e) {\n if (e.length < 2) return e.length ? \"M\" + e[0].x + \",\" + e[0].y : \"\";\n if (e.length === 2) return \"M\" + e[0].x + \",\" + e[0].y + \" L\" + e[1].x + \",\" + e[1].y;\n\n for (var t = \"M\" + e[0].x + \",\" + e[0].y, n = 0; n < e.length - 1; n++) {\n var r = e[n - 1] || e[n],\n i = e[n],\n a = e[n + 1],\n o = e[n + 2] || a;\n t += \" C\" + (i.x + (a.x - r.x) / 6) + \",\" + (i.y + (a.y - r.y) / 6) + \" \" + (a.x - (o.x - i.x) / 6) + \",\" + (a.y - (o.y - i.y) / 6) + \" \" + a.x + \",\" + a.y;\n }\n\n return t;\n }\n\n var Y = h ? s(\"g\", {\n class: \"tokui-chart-plot\"\n }) : null;\n Y && B.appendChild(Y);\n var re = h ? s(\"g\", {\n class: \"tokui-chart-plot-dots\"\n }) : null;\n re && B.appendChild(re);\n var ie = Y || B,\n ae = [];\n\n if (v.forEach(function (e, t) {\n for (var n = [], o = 0; o < e.length; o++) {\n var u = e[o];\n u != null && n.push({\n x: H(o),\n y: U(u),\n idx: o\n });\n }\n\n if (n.length) {\n if (i.area !== void 0 || a) if (a && t > 0) {\n for (var d = [], f = 0; f < v[t - 1].length; f++) {\n v[t - 1][f] !== void 0 && d.push({\n x: H(f),\n y: U(v[t - 1][f])\n });\n }\n\n var p = \"M\" + n[0].x + \",\" + n[0].y;\n n.forEach(function (e) {\n p += \" L\" + e.x + \",\" + e.y;\n });\n\n for (var m = d.length - 1; m >= 0; m--) {\n p += \" L\" + d[m].x + \",\" + d[m].y;\n }\n\n p += \" Z\", ie.appendChild(s(\"path\", {\n d: p,\n fill: r[t % r.length],\n opacity: \"0.4\"\n }));\n } else {\n var g = U(Math.max(0, E)),\n _ = \"M\" + n[0].x + \",\" + g;\n\n n.forEach(function (e) {\n _ += \" L\" + e.x + \",\" + e.y;\n }), _ += \" L\" + n[n.length - 1].x + \",\" + g + \" Z\", ie.appendChild(s(\"path\", {\n d: _,\n fill: r[t % r.length],\n opacity: \"0.15\"\n }));\n }\n c ? ie.appendChild(s(\"path\", {\n d: ne(n),\n fill: \"none\",\n stroke: r[t % r.length],\n \"stroke-width\": 2,\n \"stroke-linejoin\": \"round\",\n \"stroke-linecap\": \"round\"\n })) : ie.appendChild(s(\"polyline\", {\n points: n.map(function (e) {\n return e.x + \",\" + e.y;\n }).join(\" \"),\n fill: \"none\",\n stroke: r[t % r.length],\n \"stroke-width\": 2,\n \"stroke-linejoin\": \"round\"\n }));\n var y = l[t];\n n.forEach(function (n) {\n var a = h ? re : B,\n o = s(\"circle\", {\n cx: n.x,\n cy: n.y,\n r: 3,\n fill: \"#fff\",\n stroke: r[t % r.length],\n \"stroke-width\": 2,\n class: \"tokui-chart-dot\"\n });\n a.appendChild(o), h && ae.push({\n circle: o,\n idx: n.idx,\n x: n.x,\n si: t\n }), i.vals !== void 0 && (ie.appendChild(s(\"text\", {\n x: n.x,\n y: n.y - 6,\n \"text-anchor\": \"middle\",\n fill: r[t % r.length],\n \"font-size\": \"8\"\n })).textContent = y[n.idx] === void 0 ? e[n.idx] : y[n.idx]);\n });\n }\n }), h) {\n var X = k(B, {\n plotG: Y,\n tipLayer: V.layer,\n padL: P,\n cw: F,\n padT: N,\n ch: z,\n h: p,\n w: f,\n n: u,\n srcLeft: function srcLeft(e) {\n return P + (u > 1 ? e * F / (u - 1) : 0);\n },\n srcRight: function srcRight(e) {\n return P + (u > 1 ? e * F / (u - 1) : F);\n },\n overview: l.reduce(function (e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n] || 0;\n e[n] = Math.max(e[n] || 0, r);\n }\n\n return e;\n }, []),\n valMin: E,\n range: D,\n renderLabels: function renderLabels(e, n, r) {\n for (var i = r - n, a = [], o = n; o <= r; o++) {\n a.push(i > 0 ? P + (o - n) * F / i : P + F / 2);\n }\n\n q(e, t.slice(n, r + 1), a, p - 8, I, L.rotate, L.interval);\n },\n onZoom: function onZoom(e, t, n, r) {\n for (var i = 0; i < ae.length; i++) {\n var a = ae[i];\n a.circle.setAttribute(\"cx\", n * a.x + r);\n }\n }\n });\n X.clipG.appendChild(re), O({\n svg: B,\n padL: P,\n padT: N,\n cw: F,\n ch: z,\n w: f,\n h: p,\n n: u,\n labels: t,\n series: l.map(function (e, t) {\n return {\n color: r[t % r.length],\n name: n(\"chart.seriesDefault\", {\n n: t + 1\n }),\n vals: e,\n markerVals: v[t]\n };\n }),\n valMin: E,\n range: D,\n yOf: U,\n tipLayer: V.layer,\n bfs: 9,\n toViewX: function toViewX(e) {\n return X.winState.sx * H(e) + X.winState.tx;\n },\n toIdx: function toIdx(e) {\n var t = (e - X.winState.tx) / X.winState.sx;\n return Math.round((t - P) * (u - 1) / F);\n },\n inWindow: function inWindow(e) {\n return e >= X.winState.s && e <= X.winState.e;\n }\n });\n } else {\n for (var Z = [], oe = 0; oe < u; oe++) {\n Z.push(H(oe));\n }\n\n q(B, t.slice(0, u), Z, p - 8, I, L.rotate, L.interval), O({\n svg: B,\n padL: P,\n padT: N,\n cw: F,\n ch: z,\n w: f,\n h: p,\n n: u,\n labels: t,\n series: l.map(function (e, t) {\n return {\n color: r[t % r.length],\n name: n(\"chart.seriesDefault\", {\n n: t + 1\n }),\n vals: e,\n markerVals: v[t]\n };\n }),\n valMin: E,\n range: D,\n yOf: U,\n tipLayer: V.layer,\n bfs: 9,\n toViewX: H,\n toIdx: function toIdx(e) {\n return Math.round((e - P) * (u - 1) / F);\n },\n inWindow: function inWindow() {\n return !0;\n }\n });\n }\n\n return i.xl && J(B, i.xl, P + F / 2, p - 8 + (L.rotate ? 26 : 12), !1), i.yl && J(B, i.yl, 12, N + z / 2, !0), m && A(B, l.map(function (e, t) {\n return {\n color: r[t % r.length],\n text: n(\"chart.seriesDefault\", {\n n: t + 1\n })\n };\n }), f, p + 6), B.appendChild(V.layer), h || C(B), B;\n }\n\n function X(e, t, n, r, i) {\n var a = 10,\n s = 12,\n c = 4,\n l = 4;\n r > 0 || (r = 7);\n var u = 0;\n e.forEach(function (e, n) {\n if (t[n]) {\n var r = Math.round(e / i * 100),\n a = M(t[n] + \" \" + e + \"(\" + r + \"%)\");\n a > u && (u = a);\n }\n });\n\n var d = u / I,\n f = a + s + c + l,\n p = f + d * r,\n m = parseInt(n.w) || 280,\n h = parseInt(n.h) || 280,\n g = a + r + l,\n _ = Math.max(8, Math.min(m, h) / 2 - g),\n v = _ + p;\n\n return {\n fs: r,\n leadLen: a,\n tailLen: s,\n gap: c,\n margin: l,\n maxLabelW: u,\n coefB: d,\n fixedA: f,\n labelSpace: p,\n vertPad: g,\n r: _,\n cx: v,\n cy: g + _,\n W: v * 2,\n H: (g + _) * 2,\n totalH: (g + _) * 2 + o\n };\n }\n\n function Z(e, t, r, i) {\n var a = parseInt(i.w) || 280,\n c = parseInt(i.h) || 280;\n if (!e.length) return j(a, c + o);\n var l = e.reduce(function (e, t) {\n return e + t;\n }, 0) || 1,\n u = i._pieFs !== void 0 && i._pieFs !== \"\" ? parseFloat(i._pieFs) : 7;\n (!(u > 0) || !isFinite(u)) && (u = 7);\n var d = X(e, t, i, u, l),\n f = [],\n p = -Math.PI / 2;\n e.forEach(function (e, t) {\n var n = e / l * 2 * Math.PI;\n f.push({\n val: e,\n idx: t,\n start: p,\n end: p + n,\n mid: p + n / 2\n }), p += n;\n });\n\n var m = d.cx,\n h = d.cy,\n g = d.r,\n _ = s(\"svg\", {\n viewBox: \"0 0 \" + d.W + \" \" + d.totalH,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n v = S(d.W, d.totalH);\n\n f.forEach(function (e) {\n var i = e.idx,\n a = e.end - e.start,\n o = Math.round(e.val / l * 100),\n c = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n if (a >= 2 * Math.PI - 1e-9) c.appendChild(s(\"circle\", {\n cx: m,\n cy: h,\n r: g,\n fill: r[i % r.length],\n stroke: \"var(--tokui-chart-slice-stroke, #fff)\",\n \"stroke-width\": 2,\n class: \"tokui-chart-slice\"\n }));else {\n var u = m + g * Math.cos(e.start),\n d = h + g * Math.sin(e.start),\n f = m + g * Math.cos(e.end),\n p = h + g * Math.sin(e.end),\n y = +(a > Math.PI),\n b = \"M\" + m + \",\" + h + \" L\" + u + \",\" + d + \" A\" + g + \",\" + g + \" 0 \" + y + \" 1 \" + f + \",\" + p + \" Z\";\n c.appendChild(s(\"path\", {\n d: b,\n fill: r[i % r.length],\n stroke: \"var(--tokui-chart-slice-stroke, #fff)\",\n \"stroke-width\": 2,\n class: \"tokui-chart-slice\"\n }));\n }\n var x = m + g * .6 * Math.cos(e.mid),\n S = h + g * .6 * Math.sin(e.mid);\n v.add(c, (t[i] || n(\"chart.itemDefault\", {\n n: i + 1\n })) + \": \" + e.val + \" (\" + o + \"%)\", x, S), _.appendChild(c);\n });\n var y = d.leadLen,\n b = d.tailLen,\n x = d.gap;\n return f.forEach(function (e) {\n var n = e.idx;\n\n if (t[n]) {\n var i = e.mid,\n a = Math.round(e.val / l * 100),\n o = Math.cos(i) >= 0,\n c = m + g * Math.cos(i),\n d = h + g * Math.sin(i),\n f = m + (g + y) * Math.cos(i),\n p = h + (g + y) * Math.sin(i),\n v = f + (o ? b : -b);\n\n _.appendChild(s(\"polyline\", {\n points: c + \",\" + d + \" \" + f + \",\" + p + \" \" + v + \",\" + p,\n fill: \"none\",\n stroke: r[n % r.length],\n \"stroke-width\": 1\n }));\n\n var S = v + (o ? x : -x),\n C = o ? \"start\" : \"end\",\n w = s(\"text\", {\n x: S,\n y: p + 1,\n \"text-anchor\": C,\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #666)\",\n \"font-size\": String(u)\n });\n w.textContent = t[n] + \" \" + e.val + \"(\" + a + \"%)\", _.appendChild(w);\n }\n }), A(_, e.map(function (e, i) {\n return {\n color: r[i % r.length],\n text: t[i] || n(\"chart.itemDefault\", {\n n: i + 1\n })\n };\n }), d.W, d.H + 6, d.fs), _.appendChild(v.layer), C(_), _;\n }\n\n function oe(e, t, r, i) {\n var a = parseInt(i.w) || 240,\n c = parseInt(i.h) || 240,\n l = c + o,\n u = a / 2,\n f = c / 2,\n p = d(i.d);\n if (p.length || (p = [e]), p.every(function (e) {\n return !e.length;\n })) return j(a, c + o);\n\n var m = p.length > 1,\n h = Math.min(u, f) - 16,\n g = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + l,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n _ = S(a, l),\n v = m ? h * .82 / p.length : h * .4,\n y = m ? 2.5 : 0;\n\n return p.forEach(function (e, i) {\n var a = h - i * (v + y),\n o = m ? a - v + y : h * .6,\n c = e.reduce(function (e, t) {\n return e + t;\n }, 0) || 1,\n l = -Math.PI / 2;\n e.forEach(function (e, d) {\n var p = e / c * 2 * Math.PI,\n h = l + p / 2,\n v = u + a * Math.cos(l),\n y = f + a * Math.sin(l),\n b = u + a * Math.cos(l + p),\n x = f + a * Math.sin(l + p),\n S = u + o * Math.cos(l + p),\n C = f + o * Math.sin(l + p),\n w = u + o * Math.cos(l),\n T = f + o * Math.sin(l),\n E = +(p > Math.PI),\n D = \"M\" + v + \",\" + y + \" A\" + a + \",\" + a + \" 0 \" + E + \" 1 \" + b + \",\" + x + \" L\" + S + \",\" + C + \" A\" + o + \",\" + o + \" 0 \" + E + \" 0 \" + w + \",\" + T + \" Z\",\n O = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n O.appendChild(s(\"path\", {\n d: D,\n fill: r[d % r.length],\n stroke: \"var(--tokui-chart-slice-stroke, #fff)\",\n \"stroke-width\": 2,\n class: \"tokui-chart-slice\"\n }));\n var k = (a + o) / 2;\n _.add(O, (t[d] || n(\"chart.itemDefault\", {\n n: d + 1\n })) + \": \" + e + (m ? \" (\" + n(\"chart.ringDefault\", {\n n: i + 1\n }) + \")\" : \"\"), u + k * Math.cos(h), f + k * Math.sin(h)), g.appendChild(O), l += p;\n });\n }), !m && i.v !== void 0 && (g.appendChild(s(\"text\", {\n x: u,\n y: f,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-text, #333)\",\n \"font-size\": \"16\",\n \"font-weight\": \"700\",\n class: \"tokui-chart-donut-value\"\n })).textContent = i.v + \"%\"), A(g, p[0].map(function (e, i) {\n return {\n color: r[i % r.length],\n text: (t[i] || n(\"chart.itemDefault\", {\n n: i + 1\n })) + \" \" + e\n };\n }), a, c + 6), g.appendChild(_.layer), C(g), g;\n }\n\n function se(e, t, r, i) {\n var a = e.length,\n o = parseInt(i.w) || 480,\n c = parseInt(i.h) || 320;\n if (!a) return j(o, c);\n var l = 14,\n u = 12,\n d = 14,\n f = c - l - u,\n p = a ? f / a : f,\n m = e[0] || 0,\n h = _(e) || 1,\n g = Math.round(o * .6),\n v = g - d - 6,\n y = d + v / 2,\n b = g + 10,\n x = s(\"svg\", {\n viewBox: \"0 0 \" + o + \" \" + c,\n class: \"tokui-chart__svg tokui-chart__svg--funnel\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n w = S(o, c);\n return e.forEach(function (i, a) {\n var o = l + a * p,\n c = o + p,\n u = (a === 0 ? h : e[a - 1]) / h * v,\n d = i / h * v,\n f = u / 2,\n g = d / 2,\n _ = y - f + \",\" + o + \" \" + (y + f) + \",\" + o + \" \" + (y + g) + \",\" + c + \" \" + (y - g) + \",\" + c,\n S = (o + c) / 2,\n C = m ? Math.round(i / m * 100) : 0,\n T = t[a] || n(\"chart.stageDefault\", {\n n: a + 1\n }),\n E = r[a % r.length],\n D = y + (f + g) / 2,\n O = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n\n if (O.appendChild(s(\"polygon\", {\n points: _,\n fill: E,\n stroke: \"var(--tokui-chart-slice-stroke, #fff)\",\n \"stroke-width\": 2,\n class: \"tokui-chart-funnel\"\n })), d >= 40) {\n var k = s(\"text\", {\n x: y,\n y: S - 2,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"#fff\",\n \"font-size\": \"14\",\n \"font-weight\": \"700\"\n });\n\n if (k.textContent = i, O.appendChild(k), d >= 60) {\n var A = s(\"text\", {\n x: y,\n y: S + 13,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"#fff\",\n \"font-size\": \"11\",\n opacity: \"0.88\"\n });\n A.textContent = C + \"%\", O.appendChild(A);\n }\n }\n\n O.appendChild(s(\"line\", {\n x1: D,\n y1: S,\n x2: b - 4,\n y2: S,\n stroke: E,\n \"stroke-width\": 1.2,\n opacity: \"0.5\"\n }));\n var j = s(\"text\", {\n x: b,\n y: S - 2,\n \"text-anchor\": \"start\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-text, #333)\",\n \"font-size\": \"13\",\n \"font-weight\": \"600\"\n });\n\n if (j.textContent = T, O.appendChild(j), d < 40) {\n var M = s(\"text\", {\n x: b,\n y: S + 12,\n \"text-anchor\": \"start\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"11\"\n });\n M.textContent = i + \" (\" + C + \"%)\", O.appendChild(M);\n }\n\n w.add(O, T + \": \" + i + \" (\" + n(\"chart.conversion\", {\n pct: C\n }) + \")\", y, S), x.appendChild(O);\n }), x.appendChild(w.layer), C(x), x;\n }\n\n function Q(e, t, r, i) {\n var a = parseInt(i.w) || 280,\n o = parseInt(i.h) || 200,\n c = a / 2,\n l = parseInt(i.range, 10);\n (isNaN(l) || l !== 180 && l !== 270 && l !== 360) && (l = 180);\n\n var u = l * Math.PI / 180,\n d = 1.5 * Math.PI,\n f = d - u / 2,\n g = d + u / 2,\n _ = l === 180 ? o - 34 : o / 2,\n v = _,\n b = Math.max(0, Math.sin(f)),\n x = l === 180 ? Math.max(40, Math.min(c - 34, _ - 24)) : Math.max(36, Math.min(c - 30, (o - 28) / (1 + b + .35))),\n w = parseFloat(i.min);\n\n isNaN(w) && (w = 0);\n var T = parseFloat(i.max);\n isNaN(T) && (T = 100);\n var E = T - w || 1,\n D = parseFloat(i.v);\n isNaN(D) && e.length && (D = e[0]), isNaN(D) && (D = 0), D = y(D, w, T);\n var O = i.u === void 0 ? w === 0 && T === 100 ? \"%\" : \"\" : i.u,\n k = parseInt(i.dec, 10);\n isNaN(k) && (k = +(E <= 10));\n var A = {\n success: \"var(--tokui-success, #52c41a)\",\n warning: \"var(--tokui-warning, #faad14)\",\n danger: \"var(--tokui-danger, #f5222d)\",\n info: \"var(--tokui-info, #1677ff)\",\n primary: \"var(--tokui-primary, #1677ff)\"\n },\n j = {\n success: n(\"gauge.statusGood\"),\n warning: n(\"gauge.statusWarn\"),\n danger: n(\"gauge.statusDanger\"),\n info: n(\"gauge.statusInfo\")\n },\n M = p(i.zones).filter(function (e) {\n return e > w && e < T;\n }).sort(function (e, t) {\n return e - t;\n }),\n N = m(i.zc);\n N.length || (N = [\"#52c41a\", \"#faad14\", \"#f5222d\"]);\n var P = [w].concat(M, [T]);\n\n function F(e) {\n for (var t = 0; t < P.length - 1; t++) {\n if (e >= P[t] && e <= P[t + 1]) return N[t % N.length];\n }\n\n return N[0];\n }\n\n var I = M.length ? F(D) : A[i.status] || (h(i.c) ? i.c : null) || r[0] || A.primary;\n\n function L(e, t) {\n return [c + t * Math.cos(e), v + t * Math.sin(e)];\n }\n\n function R(e, t, n) {\n var r = L(e, n),\n i = L(t, n),\n a = +(t - e > Math.PI);\n return \"M\" + r[0] + \",\" + r[1] + \" A\" + n + \",\" + n + \" 0 \" + a + \" 1 \" + i[0] + \",\" + i[1];\n }\n\n function z(e) {\n return f + y((e - w) / E, 0, 1) * (g - f);\n }\n\n function B(e) {\n return k > 0 ? e.toFixed(k) : String(Math.round(e));\n }\n\n var V = 14,\n H = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + o,\n class: \"tokui-chart__svg tokui-chart__svg--gauge\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n U = S(a, o);\n if (M.length) for (var W = 0; W < P.length - 1; W++) {\n H.appendChild(s(\"path\", {\n d: R(z(P[W]), z(P[W + 1]), x),\n fill: \"none\",\n stroke: N[W % N.length],\n \"stroke-width\": V,\n \"stroke-linecap\": \"butt\",\n opacity: \"0.28\",\n class: \"tokui-chart-gauge-track\"\n }));\n } else H.appendChild(s(\"path\", {\n d: R(f, g, x),\n fill: \"none\",\n stroke: \"var(--tokui-chart-grid, #ececec)\",\n \"stroke-width\": V,\n \"stroke-linecap\": \"round\",\n class: \"tokui-chart-gauge-track\"\n }));\n var G = parseInt(i.ticks, 10);\n isNaN(G) && (G = 6);\n var ee = {};\n [w, T].concat(M).forEach(function (e) {\n ee[Math.round(e * 100) / 100] = !0;\n });\n\n for (var K = 0; K <= G; K++) {\n var q = f + K / G * (g - f),\n J = K === 0 || K === G,\n ne = L(q, x - V / 2 - 1),\n Y = L(q, x + V / 2 + 2);\n H.appendChild(s(\"line\", {\n x1: ne[0],\n y1: ne[1],\n x2: Y[0],\n y2: Y[1],\n stroke: \"var(--tokui-chart-text, #bbb)\",\n \"stroke-width\": J ? 1.2 : .6,\n opacity: J ? .8 : .35\n }));\n var re = w + K / G * E,\n ie = Math.round(re * 100) / 100;\n\n if (J || ee[ie]) {\n var ae = L(q, x + V / 2 + 12),\n X = s(\"text\", {\n x: ae[0],\n y: ae[1],\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"8\"\n });\n X.textContent = k > 0 ? re.toFixed(k) : Math.round(re), H.appendChild(X);\n }\n }\n\n var Z = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n }),\n oe = s(\"path\", {\n fill: \"none\",\n stroke: I,\n \"stroke-width\": V,\n \"stroke-linecap\": \"round\",\n class: \"tokui-chart-gauge-arc\"\n });\n Z.appendChild(oe), U.add(Z, (i.l || n(\"gauge.currentValue\")) + \": \" + B(D) + O + \" (\" + Math.round(y((D - w) / E, 0, 1) * 100) + \"%)\", c, v - x), H.appendChild(Z);\n var se = s(\"line\", {\n stroke: I,\n \"stroke-width\": 2.5,\n \"stroke-linecap\": \"round\",\n class: \"tokui-chart-gauge-needle\"\n });\n H.appendChild(se), H.appendChild(s(\"circle\", {\n cx: c,\n cy: v,\n r: 5,\n fill: I,\n stroke: \"#fff\",\n \"stroke-width\": 1.5,\n class: \"tokui-chart-gauge-hub\"\n }));\n var Q = v - x * (l === 180 ? .5 : l === 270 ? .2 : .12),\n ce = s(\"text\", {\n x: c,\n y: Q,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-text, #333)\",\n \"font-size\": \"24\",\n \"font-weight\": \"700\",\n class: \"tokui-chart-gauge-value tokui-chart-gauge-label\"\n });\n H.appendChild(ce);\n var le = Q + 20;\n\n if (i.l) {\n var ue = s(\"text\", {\n x: c,\n y: le,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"10\",\n class: \"tokui-chart-gauge-label\"\n });\n ue.textContent = i.l, H.appendChild(ue), le += 15;\n }\n\n if (i.status && j[i.status]) {\n var de = s(\"text\", {\n x: c,\n y: le,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: A[i.status],\n \"font-size\": \"9\",\n \"font-weight\": \"600\",\n class: \"tokui-chart-gauge-label\"\n });\n de.textContent = j[i.status], H.appendChild(de);\n }\n\n if (i.sub) {\n var fe = s(\"text\", {\n x: c,\n y: l === 180 ? v + 14 : o - 8,\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #aaa)\",\n \"font-size\": \"9\",\n class: \"tokui-chart-gauge-label\"\n });\n fe.textContent = i.sub, H.appendChild(fe);\n }\n\n H.appendChild(U.layer);\n\n function pe(e) {\n var t = z(e);\n oe.setAttribute(\"d\", R(f, t, x));\n var n = L(t, x - V / 2 - 3);\n se.setAttribute(\"x1\", c), se.setAttribute(\"y1\", v), se.setAttribute(\"x2\", n[0]), se.setAttribute(\"y2\", n[1]), ce.textContent = B(e) + O;\n }\n\n return C(H), te(w, D, parseInt(i.anim, 10) || 0, pe), H;\n }\n\n function ce(e, t, r, i) {\n var a = parseInt(i.w) || 240,\n c = parseInt(i.h) || 240,\n l = a / 2,\n u = c / 2,\n f = d(i.d);\n if (f.length || (f = [e]), f.every(function (e) {\n return !e.length;\n })) return j(a, c);\n var p = f.length > 1,\n m = c + (p ? o : 0),\n h = Math.min(l, u) - 30,\n g = Math.max(t.length, f[0].length, 3),\n _ = 0;\n f.forEach(function (e) {\n e.forEach(function (e) {\n e > _ && (_ = e);\n });\n }), _ || (_ = 100);\n\n for (var v = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + m,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }), y = S(a, m), b = 1; b <= 4; b++) {\n for (var x = h * b / 4, w = [], T = 0; T < g; T++) {\n var E = 2 * Math.PI * T / g - Math.PI / 2;\n w.push(l + x * Math.cos(E) + \",\" + (u + x * Math.sin(E)));\n }\n\n v.appendChild(s(\"polygon\", {\n points: w.join(\" \"),\n fill: \"none\",\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n }));\n }\n\n for (var T = 0; T < g; T++) {\n var E = 2 * Math.PI * T / g - Math.PI / 2;\n v.appendChild(s(\"line\", {\n x1: l,\n y1: u,\n x2: l + h * Math.cos(E),\n y2: u + h * Math.sin(E),\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), t[T] && (v.appendChild(s(\"text\", {\n x: l + (h + 14) * Math.cos(E),\n y: u + (h + 14) * Math.sin(E),\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"7\"\n })).textContent = t[T]);\n }\n\n return f.forEach(function (e, i) {\n var a = r[i % r.length],\n o = [];\n e.forEach(function (e, t) {\n var n = 2 * Math.PI * t / g - Math.PI / 2,\n r = e / _ * h;\n o.push({\n x: l + r * Math.cos(n),\n y: u + r * Math.sin(n),\n idx: t\n });\n }), v.appendChild(s(\"polygon\", {\n points: o.map(function (e) {\n return e.x + \",\" + e.y;\n }).join(\" \"),\n fill: a,\n \"fill-opacity\": \"0.2\",\n stroke: a,\n \"stroke-width\": 2\n })), o.forEach(function (r) {\n var o = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n o.appendChild(s(\"circle\", {\n cx: r.x,\n cy: r.y,\n r: 8,\n fill: \"transparent\"\n })), o.appendChild(s(\"circle\", {\n cx: r.x,\n cy: r.y,\n r: 3,\n fill: a,\n class: \"tokui-chart-point\"\n })), y.add(o, (t[r.idx] || n(\"chart.dimensionDefault\", {\n n: r.idx + 1\n })) + \": \" + e[r.idx] + (f.length > 1 ? \" (\" + n(\"chart.seriesDefault\", {\n n: i + 1\n }) + \")\" : \"\"), r.x, r.y), v.appendChild(o);\n });\n }), p && A(v, f.map(function (e, t) {\n return {\n color: r[t % r.length],\n text: n(\"chart.seriesDefault\", {\n n: t + 1\n })\n };\n }), a, c + 6), v.appendChild(y.layer), C(v), v;\n }\n\n function le(e, t, n, r) {\n var i = f(r.d);\n if (!i.length) return j(parseInt(r.w) || 400, parseInt(r.h) || 200);\n\n for (var a = b(r, \"w\", i.length, 50, 22, 360, 2400), o = x(a, parseInt(r.h) || 200, 4, 560), c = o, l = 40, u = 30, d = 18, p = 10, m = a - l - p, h = o - d - u, g = r.xl || \"X\", y = r.yl || \"Y\", w = H(r, \"xmin\", \"_xMin\", v(i.map(function (e) {\n return e.x;\n }))), T = H(r, \"xmax\", \"_xMax\", _(i.map(function (e) {\n return e.x;\n }))), E = H(r, \"ymin\", \"_yMin\", v(i.map(function (e) {\n return e.y;\n }))), D = H(r, \"ymax\", \"_yMax\", _(i.map(function (e) {\n return e.y;\n }))), O = T - w || 1, k = D - E || 1, A = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + c,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }), M = S(a, c), N = 0; N <= 4; N++) {\n var P = d + h * (1 - N / 4);\n A.appendChild(s(\"line\", {\n x1: l,\n y1: P,\n x2: a - p,\n y2: P,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), A.appendChild(s(\"text\", {\n x: l - 4,\n y: P + 4,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(E + k * N / 4);\n }\n\n return i.forEach(function (e, t) {\n var r = l + (e.x - w) / O * m,\n i = d + h * (1 - (e.y - E) / k),\n a = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n a.appendChild(s(\"circle\", {\n cx: r,\n cy: i,\n r: 8,\n fill: \"transparent\",\n stroke: \"none\"\n })), a.appendChild(s(\"circle\", {\n cx: r,\n cy: i,\n r: 5,\n fill: n[t % n.length],\n opacity: \"0.7\",\n class: \"tokui-chart-point\"\n })), M.add(a, g + \": \" + e.x + \" \" + y + \": \" + e.y, r, i), A.appendChild(a);\n var o = s(\"text\", {\n x: r + 6,\n y: i - 4,\n fill: \"var(--tokui-chart-text, #666)\",\n \"font-size\": \"7\"\n });\n o.textContent = e.x + \",\" + e.y, A.appendChild(o);\n }), A.appendChild(M.layer), C(A), A;\n }\n\n function ue(e) {\n return /[-/]/.test(String(e));\n }\n\n function de(e, t) {\n if (e === void 0 || e === \"\") return NaN;\n\n if (t === \"dates\") {\n var n = new Date(e);\n return isNaN(n.getTime()) ? NaN : n.getTime();\n }\n\n var r = parseFloat(e);\n return isNaN(r) ? NaN : r;\n }\n\n function fe(e) {\n return e ? String(e).split(\"|\").map(function (e) {\n return e.split(\",\").map(function (e) {\n return e.trim();\n });\n }) : [];\n }\n\n function pe(e) {\n return e ? String(e).split(\",\").map(function (e) {\n var t = e.trim().split(\"->\");\n return [parseInt(t[0], 10), parseInt(t[1], 10)];\n }).filter(function (e) {\n return !isNaN(e[0]) && !isNaN(e[1]);\n }) : [];\n }\n\n function me(e, t) {\n return e ? String(e).split(\"|\").map(function (e) {\n var n = e.split(\",\").map(function (e) {\n return e.trim();\n });\n return {\n name: n[0] || \"\",\n time: de(n[1], t),\n group: parseInt(n[2], 10) || 0\n };\n }) : [];\n }\n\n function he(e) {\n return e ? String(e).split(\"|\").map(function (e) {\n return e.trim();\n }).filter(function (e) {\n return e !== \"\";\n }) : [];\n }\n\n function ge(e) {\n var t = parseInt(e.w) || 1080,\n r = fe(e.tasks);\n if (!r.length) return {\n empty: !0\n };\n var i = e.mode === \"days\" || e.mode === \"dates\" ? e.mode : ue(r[0][1]) ? \"dates\" : \"days\",\n a = [],\n s = 0;\n if (r.forEach(function (e, t) {\n var r = de(e[1], i),\n o = de(e[2], i);\n\n if (isNaN(r) || isNaN(o)) {\n s++;\n return;\n }\n\n if (o < r) {\n var c = r;\n r = o, o = c;\n }\n\n a.push({\n name: e[0] || n(\"chart.taskDefault\", {\n n: a.length + 1\n }),\n start: r,\n end: o,\n progress: y(parseFloat(e[3]) || 0, 0, 100),\n group: parseInt(e[4], 10) || 0\n });\n }), !a.length) return {\n empty: !0\n };\n var c, l;\n i === \"dates\" ? (c = Math.min.apply(null, a.map(function (e) {\n return e.start;\n })), l = Math.max.apply(null, a.map(function (e) {\n return e.end;\n }))) : (c = 0, l = Math.ceil(Math.max.apply(null, a.map(function (e) {\n return e.end;\n })))), isFinite(l) || (l = 1);\n var u = l - c || 1,\n d = me(e.ms, i).filter(function (e) {\n return !isNaN(e.time);\n }),\n f = he(e.gnames),\n p = {},\n m = {};\n pe(e.deps).forEach(function (e) {\n var t = e[0],\n n = e[1];\n t < 0 || t >= a.length || n < 0 || n >= a.length || ((m[t] = m[t] || []).push(n), (p[n] = p[n] || []).push(t));\n });\n var h = {};\n a.forEach(function (e) {\n h[e.group] = !0;\n }), d.forEach(function (e) {\n h[e.group] = !0;\n });\n\n var g = Object.keys(h).length > 1,\n _ = d.length > 0,\n v = 110,\n b = 28,\n x = 16,\n S = 26,\n C = 14,\n w = 24,\n T = b + (_ ? w : 0) + a.length * S + (g ? o : 6),\n E = t - v - x;\n\n function D(e) {\n return v + (e - c) / u * E;\n }\n\n function O(e) {\n return b + (_ ? w : 0) + e * S + S / 2;\n }\n\n return {\n empty: !1,\n w: t,\n totalH: T,\n mode: i,\n tasks: a,\n ms: d,\n gnames: f,\n prev: p,\n next: m,\n tMin: c,\n tMax: l,\n range: u,\n skipped: s,\n hasLeg: g,\n hasMs: _,\n LABEL_W: v,\n PAD_T: b,\n ROW_H: S,\n BAR_H: C,\n MS_STRIP: w,\n scale: D,\n rowY: O,\n msY: function msY() {\n return b + w / 2;\n }\n };\n }\n\n function _e(e, t) {\n if (t === \"dates\") {\n var n = new Date(e);\n return n.getMonth() + 1 + \"/\" + n.getDate();\n }\n\n return \"D\" + e;\n }\n\n function ve(e) {\n var t = [];\n if (e.mode === \"days\") for (var r = e.tMax <= 10 ? 1 : e.tMax <= 30 ? 5 : 10, i = 0; i <= e.tMax; i += r) {\n t.push({\n label: \"D\" + i,\n t: i\n });\n } else {\n var a = 864e5,\n o = e.range <= 14 * a ? \"day\" : e.range <= 90 * a ? \"week\" : \"month\",\n s = new Date(e.tMin),\n c = new Date(e.tMax);\n if (o === \"day\") for (var l = new Date(s); l <= c; l.setDate(l.getDate() + 1)) {\n t.push({\n label: l.getMonth() + 1 + \"/\" + l.getDate(),\n t: l.getTime()\n });\n } else if (o === \"week\") for (var u = new Date(s); u <= c; u.setDate(u.getDate() + 7)) {\n t.push({\n label: u.getMonth() + 1 + \"/\" + u.getDate(),\n t: u.getTime()\n });\n } else for (var d = new Date(s.getFullYear(), s.getMonth(), 1); d <= c; d.setMonth(d.getMonth() + 1)) {\n t.push({\n label: n(\"chart.monthLabel\", {\n m: d.getMonth() + 1\n }),\n t: d.getTime()\n });\n }\n }\n return t;\n }\n\n function ye(e, t) {\n var n = t.totalH - (t.hasLeg ? o : 6);\n ve(t).forEach(function (r) {\n var i = t.scale(r.t);\n e.appendChild(s(\"line\", {\n x1: i,\n y1: t.PAD_T,\n x2: i,\n y2: n,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n }));\n var a = s(\"text\", {\n x: i,\n y: t.PAD_T - 6,\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\",\n class: \"tokui-chart-axis-time\"\n });\n a.textContent = r.label, e.appendChild(a);\n });\n }\n\n function be(e, t, n) {\n return e + \",\" + (t - n) + \" \" + (e + n) + \",\" + t + \" \" + e + \",\" + (t + n) + \" \" + (e - n) + \",\" + t;\n }\n\n function xe(e, t, n, r) {\n var i = t.ms.map(function (e) {\n return {\n m: e,\n x: t.scale(e.time)\n };\n }).sort(function (e, t) {\n return e.x - t.x;\n }),\n a = -1 / 0,\n o = !1;\n i.forEach(function (i) {\n var c = i.m,\n l = i.x;\n o = l - a < 32 ? !o : !1, a = l;\n var u = n[c.group % n.length],\n d = t.msY(),\n f = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n f.appendChild(s(\"polygon\", {\n points: be(l, d, 6),\n fill: u,\n stroke: \"var(--tokui-chart-slice-stroke, #fff)\",\n \"stroke-width\": 1,\n class: \"tokui-chart-task-ms\"\n })), r.add(f, c.name + \" \" + _e(c.time, t.mode), l, d), e.appendChild(f);\n var p = s(\"text\", {\n x: l,\n y: d + 11 + (o ? 9 : 0),\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-text, #333)\",\n \"font-size\": \"8\"\n });\n p.textContent = c.name, e.appendChild(p);\n });\n }\n\n function Se(e, t, n, r, i) {\n var a = 8;\n\n if (n - 3 > e + a) {\n var o = n - 3,\n s = (e + o) / 2;\n return \"M\" + e + \",\" + t + \" L\" + s + \",\" + t + \" L\" + s + \",\" + r + \" L\" + o + \",\" + r;\n }\n\n var c = r - i / 2;\n return \"M\" + e + \",\" + t + \" L\" + (e + a) + \",\" + t + \" L\" + (e + a) + \",\" + (c - 9) + \" L\" + n + \",\" + (c - 9) + \" L\" + n + \",\" + c;\n }\n\n function Ce(e, t) {\n var n = s(\"defs\"),\n r = s(\"marker\", {\n id: \"gantt-arrow\",\n markerUnits: \"userSpaceOnUse\",\n markerWidth: \"7\",\n markerHeight: \"7\",\n refX: \"6\",\n refY: \"3.5\",\n orient: \"auto\"\n });\n r.appendChild(s(\"path\", {\n d: \"M0,0 L7,3.5 L0,7 Z\",\n fill: \"var(--tokui-chart-task-dep, #bbb)\"\n })), n.appendChild(r), e.appendChild(n), Object.keys(t.next).forEach(function (n) {\n var r = parseInt(n, 10),\n i = t.scale(t.tasks[r].end),\n a = t.rowY(r);\n t.next[n].forEach(function (n) {\n var o = t.scale(t.tasks[n].start),\n c = t.rowY(n);\n e.appendChild(s(\"path\", {\n d: Se(i, a, o, c, t.BAR_H),\n fill: \"none\",\n stroke: \"var(--tokui-chart-task-dep, #bbb)\",\n \"stroke-width\": \"1\",\n \"marker-end\": \"url(#gantt-arrow)\",\n class: \"tokui-chart-task-dep\",\n \"data-dep-from\": r,\n \"data-dep-to\": n\n }));\n });\n });\n }\n\n function we(e, t) {\n var r = Date.now();\n\n if (!(r < t.tMin || r > t.tMax)) {\n var i = t.scale(r),\n a = t.totalH - (t.hasLeg ? o : 6);\n e.appendChild(s(\"line\", {\n x1: i,\n y1: t.PAD_T,\n x2: i,\n y2: a,\n stroke: \"var(--tokui-chart-today-line, #fa541c)\",\n \"stroke-width\": \"1.5\",\n \"stroke-dasharray\": \"4,3\",\n class: \"tokui-chart-today\"\n }));\n var c = s(\"text\", {\n x: i,\n y: t.PAD_T - 14,\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-chart-today-line, #fa541c)\",\n \"font-size\": \"8\"\n });\n c.textContent = n(\"time.today\"), e.appendChild(c);\n }\n }\n\n function Te(e, t) {\n var r = s(\"text\", {\n x: t.w - 6,\n y: 12,\n \"text-anchor\": \"end\",\n fill: \"#faad14\",\n \"font-size\": \"8\"\n });\n r.textContent = n(\"gantt.skipped\", {\n n: t.skipped\n }), e.appendChild(r);\n }\n\n function Ee(e, t) {\n function n(e, t) {\n for (var n = {}, r = [e], i = {}; r.length;) {\n var a = r.shift();\n\n if (!n[a]) {\n n[a] = 1, i[a] = 1;\n var o = t[a];\n o && o.forEach(function (e) {\n n[e] || r.push(e);\n });\n }\n }\n\n return i;\n }\n\n var r = e.querySelectorAll(\".tokui-chart-task-tip-group\"),\n i = null;\n r.forEach(function (r) {\n r.addEventListener(\"click\", function () {\n var a = parseInt(r.getAttribute(\"data-task-idx\"), 10);\n\n if (!isNaN(a)) {\n var o = e.querySelectorAll(\".tokui-chart-task-tip-group\"),\n s = e.querySelectorAll(\".tokui-chart-task-dep\");\n\n if (i === a) {\n e.classList.remove(\"has-active\"), o.forEach(function (e) {\n e.classList.remove(\"is-active\");\n }), s.forEach(function (e) {\n e.classList.remove(\"is-active\");\n }), i = null;\n return;\n }\n\n i = a;\n var c = {};\n c[a] = 1, Object.keys(n(a, t.prev)).forEach(function (e) {\n c[e] = 1;\n }), Object.keys(n(a, t.next)).forEach(function (e) {\n c[e] = 1;\n }), e.classList.add(\"has-active\"), o.forEach(function (e) {\n var t = parseInt(e.getAttribute(\"data-task-idx\"), 10);\n isNaN(t) || (c[t] ? e.classList.add(\"is-active\") : e.classList.remove(\"is-active\"));\n }), s.forEach(function (e) {\n var t = parseInt(e.getAttribute(\"data-dep-from\"), 10),\n n = parseInt(e.getAttribute(\"data-dep-to\"), 10);\n c[t] && c[n] ? e.classList.add(\"is-active\") : e.classList.remove(\"is-active\");\n });\n }\n });\n });\n }\n\n function De(e, t, r, i) {\n t.tasks.forEach(function (a, o) {\n var c = r[a.group % r.length],\n l = t.scale(a.start),\n u = t.scale(a.end),\n d = Math.max(2, u - l),\n f = t.rowY(o) - t.BAR_H / 2,\n p = s(\"g\", {\n class: \"tokui-chart-tip-group tokui-chart-task-tip-group\",\n \"data-task-idx\": o\n });\n p.appendChild(s(\"rect\", {\n x: l,\n y: f,\n width: d,\n height: t.BAR_H,\n rx: 3,\n fill: c,\n opacity: \"0.35\",\n class: \"tokui-chart-task-bar\"\n })), a.progress > 0 && p.appendChild(s(\"rect\", {\n x: l,\n y: f,\n width: Math.max(0, d * a.progress / 100),\n height: t.BAR_H,\n rx: 3,\n fill: c,\n class: \"tokui-chart-task-prog\"\n })), i.add(p, a.name + \" \" + _e(a.start, t.mode) + \"\\u2192\" + _e(a.end, t.mode) + \" \" + n(\"gantt.progress\") + \":\" + a.progress + \"%\", l + d / 2, f), e.appendChild(p);\n var m = s(\"text\", {\n x: t.LABEL_W - 6,\n y: t.rowY(o) + 3,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-text, #333)\",\n \"font-size\": \"9\",\n class: \"tokui-chart-task-name\"\n });\n m.textContent = a.name, e.appendChild(m);\n });\n }\n\n function Oe(e, t, r, i) {\n var a = ge(i),\n c = a.w,\n l = s(\"svg\", {\n viewBox: \"0 0 \" + c + \" \" + a.totalH,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n });\n\n if (a.empty) {\n var u = s(\"text\", {\n x: c / 2,\n y: 20,\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"10\"\n });\n return u.textContent = n(\"gantt.noTasks\"), l.appendChild(u), l;\n }\n\n var d = S(c, a.totalH);\n\n if (ye(l, a), a.hasMs && xe(l, a, r, d), De(l, a, r, d), Ce(l, a), a.mode === \"dates\" && we(l, a), a.skipped > 0 && Te(l, a), l.appendChild(d.layer), C(l), Ee(l, a), a.hasLeg) {\n var f = Object.keys(a.tasks.reduce(function (e, t) {\n return e[t.group] = 1, e;\n }, {})).map(function (e) {\n return parseInt(e, 10);\n });\n f.sort(function (e, t) {\n return e - t;\n }), A(l, f.map(function (e) {\n return {\n color: r[e % r.length],\n text: a.gnames[e] || n(\"chart.groupDefault\", {\n n: e + 1\n })\n };\n }), c, a.totalH - o + 6);\n }\n\n return l;\n }\n\n function ke(e, t, n, r) {\n var i = {};\n return Object.keys(r).forEach(function (e) {\n i[e] = r[e];\n }), i.area = !0, ae(e, t, n, i);\n }\n\n function Ae(e, t, n, r) {\n var i = parseInt(r.w) || 400,\n a = parseInt(r.h) || 80,\n o = parseFloat(r.max);\n isNaN(o) && (o = 100);\n var c = parseFloat(r.min);\n isNaN(c) && (c = 0);\n var l = o - c || 1,\n u = parseFloat(r.v);\n isNaN(u) && e.length && (u = e[0]), isNaN(u) && (u = 0), u = y(u, c, o);\n var d = r.u === void 0 ? c === 0 && o === 100 ? \"%\" : \"\" : r.u,\n f = h(r.c) ? r.c : n[0] || \"var(--tokui-primary, #1677ff)\",\n p = s(\"svg\", {\n viewBox: \"0 0 \" + i + \" \" + a,\n class: \"tokui-chart__svg tokui-chart__svg--progress\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n m = a / 2 - 8,\n g = 16;\n p.appendChild(s(\"rect\", {\n x: 2,\n y: m,\n width: i - 4,\n height: g,\n rx: g / 2,\n fill: \"var(--tokui-chart-grid, #ececec)\",\n class: \"tokui-chart-track\"\n }));\n\n var _ = s(\"rect\", {\n y: m,\n height: g,\n rx: g / 2,\n fill: f,\n class: \"tokui-chart-fill\"\n });\n\n p.appendChild(_);\n var v = r.l || \"\",\n b = s(\"text\", {\n x: i - 8,\n y: a / 2,\n \"text-anchor\": \"end\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-text, #333)\",\n \"font-size\": \"13\",\n \"font-weight\": \"700\"\n });\n p.appendChild(b);\n\n function x(e) {\n var t = y((e - c) / l, 0, 1);\n _.setAttribute(\"x\", 2), _.setAttribute(\"width\", Math.max(0, (i - 4) * t)), b.textContent = (v ? v + \" \" : \"\") + Math.round(t * 100) + d;\n }\n\n return te(c, u, parseInt(r.anim, 10) || 0, x), p;\n }\n\n function je(e) {\n return e ? String(e).split(\";\").map(function (e) {\n var t = e.split(\",\").map(function (e) {\n return parseFloat(e.trim()) || 0;\n });\n return {\n x: t[0] || 0,\n y: t[1] || 0,\n s: t[2] || 0\n };\n }) : [];\n }\n\n function Me(e, t, n, r) {\n var i = je(r.d);\n if (!i.length) return j(parseInt(r.w) || 400, parseInt(r.h) || 200);\n\n for (var a = b(r, \"w\", i.length, 50, 22, 360, 2400), o = x(a, parseInt(r.h) || 200, 4, 560), c = 40, l = 30, u = 18, d = 10, f = a - c - d, p = o - u - l, m = H(r, \"xmin\", \"_xMin\", v(i.map(function (e) {\n return e.x;\n }))), h = H(r, \"xmax\", \"_xMax\", _(i.map(function (e) {\n return e.x;\n }))), g = H(r, \"ymin\", \"_yMin\", v(i.map(function (e) {\n return e.y;\n }))), y = H(r, \"ymax\", \"_yMax\", _(i.map(function (e) {\n return e.y;\n }))), w = r._sMax === void 0 ? _(i.map(function (e) {\n return e.s;\n })) || 1 : +r._sMax, T = h - m || 1, E = y - g || 1, D = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + o,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }), O = S(a, o), k = 0; k <= 4; k++) {\n var A = u + p * (1 - k / 4);\n D.appendChild(s(\"line\", {\n x1: c,\n y1: A,\n x2: a - d,\n y2: A,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), D.appendChild(s(\"text\", {\n x: c - 4,\n y: A + 4,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(g + E * k / 4);\n }\n\n return i.forEach(function (e, t) {\n var i = c + (e.x - m) / T * f,\n a = u + p * (1 - (e.y - g) / E),\n o = 4 + e.s / w * 16,\n l = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n l.appendChild(s(\"circle\", {\n cx: i,\n cy: a,\n r: 8,\n fill: \"transparent\"\n })), l.appendChild(s(\"circle\", {\n cx: i,\n cy: a,\n r: o,\n fill: n[t % n.length],\n opacity: \"0.5\",\n stroke: n[t % n.length],\n \"stroke-width\": 1.5,\n class: \"tokui-chart-point\"\n })), O.add(l, (r.xl || \"X\") + \": \" + e.x + \" \" + (r.yl || \"Y\") + \": \" + e.y + \" \" + (r.sl || \"size\") + \": \" + e.s, i, a), D.appendChild(l);\n }), D.appendChild(O.layer), C(D), D;\n }\n\n function Ne(e) {\n return e ? String(e).split(\"|\").map(function (e) {\n return e.split(\",\").map(function (e) {\n return parseFloat(e.trim());\n }).filter(function (e) {\n return !isNaN(e);\n });\n }) : [];\n }\n\n function Pe(e) {\n if (!e) return null;\n var t = String(e).split(\",\"),\n n = 1 / 0,\n r = -1 / 0,\n i = 0;\n return t.forEach(function (e) {\n var t = String(e).trim().match(/^(-?[\\d.]+)\\s*[-~到至]\\s*(-?[\\d.]+)$/);\n\n if (t) {\n var a = +t[1],\n o = +t[2];\n a < o && isFinite(a) && isFinite(o) && (n = Math.min(n, a), r = Math.max(r, o), i++);\n }\n }), !i || !isFinite(n) || !isFinite(r) || n >= r ? null : {\n lo: n,\n hi: r,\n bins: i\n };\n }\n\n function Fe(e, t) {\n var n = Pe(e.l),\n r = parseInt(e.bins, 10);\n isNaN(r) && (r = n ? n.bins : e._bins === void 0 ? Math.min(20, Math.max(5, Math.ceil(Math.sqrt(t.length)))) : +e._bins);\n var i = H(e, \"min\", \"_lo\", n ? n.lo : v(t)),\n a = H(e, \"max\", \"_hi\", n ? n.hi : _(t));\n i === a && (--i, a += 1);\n\n for (var o = (a - i) / r, s = [], c = 0; c < r; c++) {\n s.push(0);\n }\n\n return t.forEach(function (e) {\n s[Math.max(0, Math.min(r - 1, Math.floor((e - i) / o)))]++;\n }), {\n bins: r,\n lo: i,\n hi: a,\n width: o,\n counts: s\n };\n }\n\n function Ie(e, t, n, r) {\n var i = Ne(r.rows || r.d),\n a = parseInt(r.w) || 400,\n o = parseInt(r.h) || 320,\n c = l(r.cols),\n u = t,\n d = Math.max(c.length, i[0] ? i[0].length : 0),\n f = Math.max(u.length, i.length);\n if (!f || !d) return j(a, o);\n var p = u.length ? 64 : 30,\n h = c.length ? 36 : 16,\n g = 16,\n y = 16,\n b = a - p - g,\n x = o - h - y,\n w = b / d,\n T = x / f,\n E = [];\n i.forEach(function (e) {\n e.forEach(function (e) {\n isNaN(e) || E.push(e);\n });\n });\n\n for (var D = E.length > 0, O = D ? H(r, \"vmin\", \"_vMin\", v(E)) : 0, k = (D ? H(r, \"vmax\", \"_vMax\", _(E)) : 1) - O || 1, A = m(r.c).length ? m(r.c) : [\"#bae0ff\", \"#1677ff\", \"#0958d9\"], M = \"var(--tokui-chart-grid, #f0f0f0)\", N = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + o,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }), P = S(a, o), F = 0; F < f; F++) {\n for (var I = 0; I < d; I++) {\n var L = i[F] ? i[F][I] : void 0,\n R = L !== void 0 && !isNaN(L),\n z = R && D ? (L - O) / k : 0,\n B = R ? re(A, z) : M,\n V = p + I * w,\n U = h + F * T,\n W = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n W.appendChild(s(\"rect\", {\n x: V + 1,\n y: U + 1,\n width: w - 2,\n height: T - 2,\n rx: 2,\n fill: B,\n opacity: R ? \"1\" : \"0.5\",\n class: \"tokui-chart-cell\" + (R ? \"\" : \" tokui-chart-cell--skeleton\")\n })), R && P.add(W, (u[F] || \"R\" + (F + 1)) + \" / \" + (c[I] || \"C\" + (I + 1)) + \": \" + L, V + w / 2, U + T / 2), N.appendChild(W);\n }\n }\n\n return c.forEach(function (e, t) {\n N.appendChild(s(\"text\", {\n x: p + t * w + w / 2,\n y: h - 8,\n \"text-anchor\": \"middle\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = e;\n }), u.forEach(function (e, t) {\n N.appendChild(s(\"text\", {\n x: p - 6,\n y: h + t * T + T / 2 + 3,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = e;\n }), N.appendChild(P.layer), C(N), N;\n }\n\n function Le(e, t, r, i) {\n var a = parseInt(i.w) || 280,\n c = parseInt(i.h) || 280,\n l = c + o;\n if (!e.length) return j(a, l);\n var u = a / 2,\n d = c / 2,\n f = Math.min(u, d) - 24,\n p = _(e) || 1,\n m = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + l,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n h = S(a, l),\n g = -Math.PI / 2,\n v = 2 * Math.PI / e.length;\n return e.forEach(function (e, i) {\n var a = e / p * f,\n o = u + a * Math.cos(g),\n c = d + a * Math.sin(g),\n l = u + a * Math.cos(g + v),\n _ = d + a * Math.sin(g + v),\n y = +(v > Math.PI),\n b = \"M\" + u + \",\" + d + \" L\" + o + \",\" + c + \" A\" + a + \",\" + a + \" 0 \" + y + \" 1 \" + l + \",\" + _ + \" Z\",\n x = Math.round(e / p * 100),\n S = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n\n S.appendChild(s(\"path\", {\n d: b,\n fill: r[i % r.length],\n stroke: \"var(--tokui-chart-slice-stroke, #fff)\",\n \"stroke-width\": 2,\n class: \"tokui-chart-slice\"\n }));\n var C = g + v / 2;\n h.add(S, (t[i] || n(\"chart.sliceDefault\", {\n n: i + 1\n })) + \": \" + e + \" (\" + x + \"%)\", u + a * .6 * Math.cos(C), d + a * .6 * Math.sin(C)), m.appendChild(S), m.appendChild(s(\"text\", {\n x: u + (f + 12) * Math.cos(C),\n y: d + (f + 12) * Math.sin(C),\n \"text-anchor\": \"middle\",\n \"dominant-baseline\": \"central\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"8\"\n })).textContent = t[i] || \"\", g += v;\n }), A(m, e.map(function (e, i) {\n return {\n color: r[i % r.length],\n text: t[i] || n(\"chart.sliceDefault\", {\n n: i + 1\n })\n };\n }), a, c + 6), m.appendChild(h.layer), C(m), m;\n }\n\n function Re(e, t, n, r) {\n var i = parseInt(r.w) || 400,\n a = parseInt(r.h) || 200;\n if (!e.length) return j(i, a);\n\n for (var o = Fe(r, e), s = [], c = 0; c < o.bins; c++) {\n s.push((o.lo + c * o.width).toFixed(1));\n }\n\n var l = {};\n return Object.keys(r).forEach(function (e) {\n l[e] = r[e];\n }), l.d = o.counts.join(\",\"), l.l = s.join(\",\"), l.vals = \"\", delete l.bins, ie(o.counts, s, n, l);\n }\n\n function ze(e, t, r, i) {\n if (!e.length) return j(parseInt(i.w) || 400, parseInt(i.h) || 200);\n var a = b(i, \"w\", e.length, 56, 26, 360, 2400),\n o = x(a, parseInt(i.h) || 200, 4, 560),\n c = 0,\n l = [];\n e.forEach(function (e) {\n var t = c,\n n = c + e;\n l.push({\n base: Math.min(t, n),\n top: Math.max(t, n),\n val: e,\n isPos: e >= 0\n }), c = n;\n });\n\n var u = _(l.map(function (e) {\n return e.top;\n })),\n d = v(l.map(function (e) {\n return e.base;\n }));\n\n d > 0 && (d = 0);\n var f = u - d || 1,\n p = i._padL ? +i._padL : 44,\n m = 18,\n h = 12,\n g = a - p - h,\n y = g / e.length,\n w = Math.max(4, y * .6),\n T = W(t.slice(0, e.length), y, 30, g, i.interval),\n E = T.padB,\n D = o - m - E,\n O = r[0] || \"#52c41a\",\n k = r[1] || \"#f5222d\",\n A = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + o,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n M = S(a, o);\n\n function N(e) {\n return m + D * (1 - (e - d) / f);\n }\n\n for (var P = 0; P <= 4; P++) {\n var F = N(d + f * P / 4);\n A.appendChild(s(\"line\", {\n x1: p,\n y1: F,\n x2: a - h,\n y2: F,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), A.appendChild(s(\"text\", {\n x: p - 4,\n y: F + 4,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(d + f * P / 4);\n }\n\n l.forEach(function (e, r) {\n var i = p + r * y + y * .2,\n a = N(e.top),\n o = Math.max(0, (e.top - e.base) / f * D),\n c = e.isPos ? O : k,\n u = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n u.appendChild(s(\"rect\", {\n x: i,\n y: a,\n width: w - 1,\n height: o,\n fill: c,\n rx: 2,\n class: \"tokui-chart-bar\"\n })), M.add(u, (t[r] || n(\"chart.sliceDefault\", {\n n: r + 1\n })) + \": \" + e.val + \" (\" + n(\"chart.cumulative\", {\n n: Math.round(e.top)\n }) + \")\", i + w / 2, a), A.appendChild(u), r < l.length - 1 && A.appendChild(s(\"line\", {\n x1: i + w - 1,\n y1: a,\n x2: i + y,\n y2: a,\n stroke: c,\n \"stroke-width\": 1,\n \"stroke-dasharray\": \"3,2\",\n opacity: \"0.45\"\n }));\n });\n\n for (var I = [], L = 0; L < e.length; L++) {\n I.push(p + L * y + y / 2);\n }\n\n return q(A, t.slice(0, e.length), I, o - 8, y, T.rotate, T.interval), A.appendChild(M.layer), C(A), A;\n }\n\n function Be(e) {\n return e ? String(e).split(\";\").map(function (e) {\n var t = e.split(\",\").map(function (e) {\n return parseFloat(e.trim()) || 0;\n });\n return {\n min: t[0],\n q1: t[1],\n med: t[2],\n q3: t[3],\n max: t[4]\n };\n }) : [];\n }\n\n function Ve(e, t, r, i) {\n var a = Be(i.d);\n if (!a.length) return j(parseInt(i.w) || 400, parseInt(i.h) || 240);\n var o = b(i, \"w\", a.length, 56, 44, 360, 2400),\n c = x(o, parseInt(i.h) || 240, 4, 560),\n l = [];\n a.forEach(function (e) {\n l.push(e.min, e.max);\n });\n\n var u = v(l),\n d = _(l);\n\n u === d && (--u, d += 1);\n var f = d - u || 1,\n p = i._padL ? +i._padL : 44,\n m = 18,\n h = 12,\n g = o - p - h,\n y = ee(i, a.length),\n w = y ? 28 : 0,\n T = g / a.length,\n E = Math.max(20, T * .5),\n D = W(t.slice(0, a.length), T, 30, g, i.interval),\n O = D.padB,\n A = c - m - O,\n M = s(\"svg\", {\n viewBox: \"0 0 \" + o + \" \" + (c + w),\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n N = S(o, c + w);\n\n function P(e) {\n return m + A * (1 - (e - u) / f);\n }\n\n for (var F = 0; F <= 4; F++) {\n var I = P(u + f * F / 4);\n M.appendChild(s(\"line\", {\n x1: p,\n y1: I,\n x2: o - h,\n y2: I,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), M.appendChild(s(\"text\", {\n x: p - 4,\n y: I + 4,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(u + f * F / 4);\n }\n\n var L = y ? s(\"g\", {\n class: \"tokui-chart-plot\"\n }) : null;\n L && M.appendChild(L);\n var R = L || M,\n z = [];\n\n if (a.forEach(function (e, i) {\n var a = p + i * T + T / 2,\n o = r[i % r.length],\n c = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n c.appendChild(s(\"line\", {\n x1: a,\n y1: P(e.max),\n x2: a,\n y2: P(e.q3),\n stroke: o,\n \"stroke-width\": 1.5,\n class: \"tokui-chart-whisker\"\n })), c.appendChild(s(\"line\", {\n x1: a,\n y1: P(e.q1),\n x2: a,\n y2: P(e.min),\n stroke: o,\n \"stroke-width\": 1.5,\n class: \"tokui-chart-whisker\"\n })), c.appendChild(s(\"line\", {\n x1: a - 6,\n y1: P(e.max),\n x2: a + 6,\n y2: P(e.max),\n stroke: o,\n \"stroke-width\": 1.5\n })), c.appendChild(s(\"line\", {\n x1: a - 6,\n y1: P(e.min),\n x2: a + 6,\n y2: P(e.min),\n stroke: o,\n \"stroke-width\": 1.5\n }));\n var l = P(e.q3),\n u = Math.max(0, P(e.q1) - P(e.q3));\n c.appendChild(s(\"rect\", {\n x: a - E / 2,\n y: l,\n width: E,\n height: u,\n fill: o,\n opacity: \"0.4\",\n stroke: o,\n \"stroke-width\": 1.5,\n class: \"tokui-chart-box\"\n })), c.appendChild(s(\"line\", {\n x1: a - E / 2,\n y1: P(e.med),\n x2: a + E / 2,\n y2: P(e.med),\n stroke: o,\n \"stroke-width\": 2\n }));\n var d = (t[i] || n(\"chart.groupDefault\", {\n n: i + 1\n })) + \" min:\" + e.min + \" Q1:\" + e.q1 + \" \" + n(\"chart.median\") + \":\" + e.med + \" Q3:\" + e.q3 + \" max:\" + e.max;\n y ? z.push({\n grp: c,\n cx: a,\n y: P(e.med),\n text: d\n }) : N.add(c, d, a, P(e.med)), R.appendChild(c);\n }), y) {\n var B = a.length,\n V = k(M, {\n plotG: L,\n tipLayer: N.layer,\n padL: p,\n cw: g,\n padT: m,\n ch: A,\n h: c,\n w: o,\n n: B,\n srcLeft: function srcLeft(e) {\n return p + e * T;\n },\n srcRight: function srcRight(e) {\n return p + (e + 1) * T;\n },\n overview: a.map(function (e) {\n return e.q3;\n }),\n valMin: u,\n range: f,\n renderLabels: function renderLabels(e, n, r) {\n for (var i = g / (r - n + 1), a = [], o = n; o <= r; o++) {\n a.push(p + (o - n) * i + i / 2);\n }\n\n q(e, t.slice(n, r + 1), a, c - 8, i, D.rotate, D.interval);\n }\n });\n z.forEach(function (e) {\n e.grp.addEventListener(\"mouseenter\", function () {\n V.showTip(e.text, V.winState.sx * e.cx + V.winState.tx, e.y);\n }), e.grp.addEventListener(\"mouseleave\", function () {\n V.sharedTip.style.opacity = \"\";\n });\n });\n } else {\n for (var H = [], U = 0; U < a.length; U++) {\n H.push(p + U * T + T / 2);\n }\n\n q(M, t.slice(0, a.length), H, c - 8, T, D.rotate, D.interval);\n }\n\n return M.appendChild(N.layer), y || C(M), M;\n }\n\n function He(e) {\n return e ? String(e).split(\",\").map(function (e) {\n var t = e.split(\":\");\n return {\n name: (t[0] || \"\").trim(),\n value: parseFloat(t[1]) || 0\n };\n }).filter(function (e) {\n return e.value > 0;\n }) : [];\n }\n\n function Ue(e, t, n, r) {\n var i = He(r.d),\n a = parseInt(r.w) || 480,\n o = parseInt(r.h) || 320;\n if (!i.length) return j(a, o);\n i.sort(function (e, t) {\n return t.value - e.value;\n });\n var c = i.reduce(function (e, t) {\n return e + t.value;\n }, 0) || 1,\n l = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + o,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n u = S(a, o),\n d = 2,\n f = 0;\n\n function p(e, t, r, i, a) {\n var o = n[f % n.length];\n f++;\n var p = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n p.appendChild(s(\"rect\", {\n x: t,\n y: r,\n width: Math.max(0, i - d),\n height: Math.max(0, a - d),\n rx: 3,\n fill: o,\n opacity: \"0.85\",\n class: \"tokui-chart-tile\"\n })), i > 44 && a > 26 && (l.appendChild(s(\"text\", {\n x: t + 6,\n y: r + 14,\n fill: \"#fff\",\n \"font-size\": \"11\",\n \"font-weight\": \"600\"\n })).textContent = e.name, l.appendChild(s(\"text\", {\n x: t + 6,\n y: r + 27,\n fill: \"#fff\",\n \"font-size\": \"9\",\n opacity: \"0.85\"\n })).textContent = e.value + \" (\" + Math.round(e.value / c * 100) + \"%)\"), u.add(p, e.name + \": \" + e.value + \" (\" + Math.round(e.value / c * 100) + \"%)\", t + i / 2, r + a / 2), l.appendChild(p);\n }\n\n function m(e, t, n, r, i) {\n if (e.length) {\n if (e.length === 1) {\n p(e[0], t, n, r, i);\n return;\n }\n\n var a = r > i,\n o = e[0].value,\n s = o / (o + (e.slice(1).reduce(function (e, t) {\n return e + t.value;\n }, 0) || 1));\n\n if (a) {\n var c = r * s;\n p(e[0], t, n, c, i), m(e.slice(1), t + c + d, n, r - c - d, i);\n } else {\n var l = i * s;\n p(e[0], t, n, r, l), m(e.slice(1), t, n + l + d, r, i - l - d);\n }\n }\n }\n\n return m(i, 0, 0, a, o), l.appendChild(u.layer), C(l), l;\n }\n\n function We(e, t, n, r) {\n var i = l(r.nodes),\n a = String(r.flows || \"\").split(\",\").map(function (e) {\n var t = e.split(\"->\");\n if (t.length !== 2) return null;\n var n = t[0].trim(),\n r = t[1],\n i = r.lastIndexOf(\":\");\n return {\n source: n,\n target: i > 0 ? r.slice(0, i).trim() : r.trim(),\n value: i > 0 ? parseFloat(r.slice(i + 1)) || 0 : 1\n };\n }).filter(function (e) {\n return e && e.value > 0;\n }),\n o = parseInt(r.w) || 480,\n c = parseInt(r.h) || 320;\n if (!a.length) return j(o, c);\n var u = [],\n d = [];\n a.forEach(function (e) {\n u.indexOf(e.source) < 0 && u.push(e.source), d.indexOf(e.target) < 0 && d.push(e.target);\n }), i.length && !d.length && (u = i);\n var f = a.reduce(function (e, t) {\n return e + t.value;\n }, 0) || 1,\n p = 70,\n m = 70,\n h = 20,\n g = 16,\n _ = 14,\n v = p,\n y = o - m - _,\n b = c - h - g;\n\n function x(e, t) {\n var n = e.indexOf(t);\n return h + (e.length ? b * (n + .5) / e.length : b / 2);\n }\n\n var w = s(\"svg\", {\n viewBox: \"0 0 \" + o + \" \" + c,\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n T = S(o, c);\n return a.forEach(function (e, t) {\n var r = n[t % n.length],\n i = x(u, e.source),\n a = x(d, e.target),\n o = Math.max(1, e.value / f * 44),\n c = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n }),\n l = (v + _ + y) / 2,\n p = \"M\" + (v + _) + \",\" + i + \" C\" + l + \",\" + i + \" \" + l + \",\" + a + \" \" + y + \",\" + a;\n c.appendChild(s(\"path\", {\n d: p,\n fill: \"none\",\n stroke: r,\n \"stroke-width\": o,\n opacity: \"0.4\",\n class: \"tokui-chart-flow\"\n })), T.add(c, e.source + \" \\u2192 \" + e.target + \": \" + e.value, l, (i + a) / 2), w.appendChild(c);\n }), u.forEach(function (e, t) {\n w.appendChild(s(\"rect\", {\n x: v,\n y: x(u, e) - 12,\n width: _,\n height: 24,\n rx: 2,\n fill: n[t % n.length]\n })), w.appendChild(s(\"text\", {\n x: v - 6,\n y: x(u, e) + 3,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #666)\",\n \"font-size\": \"10\"\n })).textContent = e;\n }), d.forEach(function (e, t) {\n w.appendChild(s(\"rect\", {\n x: y,\n y: x(d, e) - 12,\n width: _,\n height: 24,\n rx: 2,\n fill: n[(t + 3) % n.length]\n })), w.appendChild(s(\"text\", {\n x: y + _ + 6,\n y: x(d, e) + 3,\n \"text-anchor\": \"start\",\n fill: \"var(--tokui-chart-text, #666)\",\n \"font-size\": \"10\"\n })).textContent = e;\n }), w.appendChild(T.layer), C(w), w;\n }\n\n function Ge(e) {\n return e ? String(e).split(\";\").map(function (e) {\n var t = e.split(\",\").map(function (e) {\n return parseFloat(e.trim());\n });\n return t.length < 4 || t.some(function (e) {\n return !isFinite(e);\n }) ? null : {\n o: t[0],\n h: t[1],\n l: t[2],\n c: t[3]\n };\n }).filter(Boolean) : [];\n }\n\n function Ke(e, t, n, r) {\n var i = Ge(r.d);\n if (!i.length) return j(parseInt(r.w) || 480, parseInt(r.h) || 280);\n var a = parseInt(r.w) || 800,\n o = parseInt(r.h) || 320,\n c,\n l;\n if (r._yMin !== void 0 && r._yMax !== void 0 && isFinite(+r._yMin)) c = +r._yMin, l = +r._yMax;else {\n var u = [];\n i.forEach(function (e) {\n u.push(e.h, e.l);\n }), c = v(u), l = _(u);\n var d = V(c, l);\n c = d[0], l = d[1];\n }\n c === l && (--c, l += 1);\n var f = l - c || 1,\n p = r._padL ? +r._padL : 44,\n h = 18,\n g = 12,\n y = a - p - g,\n b = ee(r, i.length),\n x = b ? 28 : 0,\n w = y / i.length,\n T = Math.max(3, w * .6),\n E = W(t.slice(0, i.length), w, 30, y, r.interval),\n D = E.padB,\n O = o - h - D,\n A = m(r.c),\n M = A[0] || \"#f5222d\",\n N = A[1] || \"#52c41a\",\n P = s(\"svg\", {\n viewBox: \"0 0 \" + a + \" \" + (o + x),\n class: \"tokui-chart__svg\",\n preserveAspectRatio: \"xMidYMid meet\"\n }),\n F = S(a, o + x);\n\n function I(e) {\n return h + O * (1 - (e - c) / f);\n }\n\n for (var L = 0; L <= 4; L++) {\n var R = I(c + f * L / 4);\n P.appendChild(s(\"line\", {\n x1: p,\n y1: R,\n x2: a - g,\n y2: R,\n stroke: \"var(--tokui-chart-grid, #e8e8e8)\",\n \"stroke-width\": 1\n })), P.appendChild(s(\"text\", {\n x: p - 4,\n y: R + 4,\n \"text-anchor\": \"end\",\n fill: \"var(--tokui-chart-text, #999)\",\n \"font-size\": \"9\"\n })).textContent = Math.round(c + f * L / 4);\n }\n\n var z = b ? s(\"g\", {\n class: \"tokui-chart-plot\"\n }) : null;\n z && P.appendChild(z);\n var B = z || P,\n H = [];\n\n if (i.forEach(function (e, n) {\n var r = p + n * w + w / 2,\n i = e.c >= e.o,\n a = i ? M : N,\n o = s(\"g\", {\n class: \"tokui-chart-tip-group\"\n });\n o.appendChild(s(\"line\", {\n x1: r,\n y1: I(e.h),\n x2: r,\n y2: I(e.l),\n stroke: a,\n \"stroke-width\": 1,\n class: \"tokui-chart-wick\"\n }));\n var c = I(Math.max(e.o, e.c)),\n l = I(Math.min(e.o, e.c));\n o.appendChild(s(\"rect\", {\n x: r - T / 2,\n y: c,\n width: T,\n height: Math.max(1, l - c),\n fill: a,\n class: \"tokui-chart-candle\"\n }));\n var u = (t[n] || \"D\" + (n + 1)) + \" O:\" + e.o + \" H:\" + e.h + \" L:\" + e.l + \" C:\" + e.c + (i ? \" \\u2191\" : \" \\u2193\");\n b ? H.push({\n grp: o,\n cx: r,\n y: c,\n text: u\n }) : F.add(o, u, r, c), B.appendChild(o);\n }), b) {\n var U = i.length,\n G = k(P, {\n plotG: z,\n tipLayer: F.layer,\n padL: p,\n cw: y,\n padT: h,\n ch: O,\n h: o,\n w: a,\n n: U,\n srcLeft: function srcLeft(e) {\n return p + e * w;\n },\n srcRight: function srcRight(e) {\n return p + (e + 1) * w;\n },\n overview: i.map(function (e) {\n return e.c;\n }),\n valMin: c,\n range: f,\n renderLabels: function renderLabels(e, n, r) {\n for (var i = y / (r - n + 1), a = [], s = n; s <= r; s++) {\n a.push(p + (s - n) * i + i / 2);\n }\n\n q(e, t.slice(n, r + 1), a, o - 8, i, E.rotate, E.interval);\n }\n });\n H.forEach(function (e) {\n e.grp.addEventListener(\"mouseenter\", function () {\n G.showTip(e.text, G.winState.sx * e.cx + G.winState.tx, e.y);\n }), e.grp.addEventListener(\"mouseleave\", function () {\n G.sharedTip.style.opacity = \"\";\n });\n });\n } else {\n for (var K = [], J = 0; J < i.length; J++) {\n K.push(p + J * w + w / 2);\n }\n\n q(P, t.slice(0, i.length), K, o - 8, w, E.rotate, E.interval);\n }\n\n return P.appendChild(F.layer), b || C(P), P;\n }\n\n function $(e, t) {\n r[e] = t;\n }\n\n function qe(e) {\n $(\"bar\", ie), $(\"line\", ae), $(\"pie\", Z), $(\"donut\", oe), $(\"radar\", ce), $(\"scatter\", le), $(\"gantt\", Oe), $(\"funnel\", se), $(\"gauge\", Q), $(\"area\", ke), $(\"progress\", Ae), $(\"bubble\", Me), $(\"heatmap\", Ie), $(\"rose\", Le), $(\"histogram\", Re), $(\"waterfall\", ze), $(\"boxplot\", Ve), $(\"treemap\", Ue), $(\"sankey\", We), $(\"candlestick\", Ke);\n\n function t(e, t) {\n var n = e._chartState;\n\n if (!(!n || !t)) {\n var r = t.type,\n i = t.attrs || {};\n if (r === \"pt\") {\n if (n.type === \"scatter\" || n.type === \"bubble\" || n.type === \"treemap\") n.points.push(String(i.v === void 0 ? t.content || \"\" : i.v));else {\n var a = parseFloat(i.v === void 0 ? t.content : i.v);\n isNaN(a) || n.points.push(a);\n }\n } else if (r === \"hrow\") {\n var o = String(i.v === void 0 ? t.content || \"\" : i.v),\n s = n.rows[n.rows.length - 1];\n t._kidPreview ? s && s._p ? s.v = o : n.rows.push({\n v: o,\n _p: !0\n }) : s && s._p ? (s.v = o, s._p = !1) : n.rows.push({\n v: o,\n _p: !1\n });\n } else if (r === \"flow\") {\n var c = String(i.v === void 0 ? t.content || \"\" : i.v),\n l = n.flows[n.flows.length - 1];\n t._kidPreview ? l && l._p ? l.v = c : n.flows.push({\n v: c,\n _p: !0\n }) : l && l._p ? (l.v = c, l._p = !1) : n.flows.push({\n v: c,\n _p: !1\n });\n } else if (r === \"task\") {\n var u = String(t.content || \"\").replace(/^[\"']|[\"']$/g, \"\").split(\",\").map(function (e) {\n return e.trim();\n });\n n.tasks.push(u);\n } else if (r === \"ms\") {\n var d = String(t.content || \"\").replace(/^[\"']|[\"']$/g, \"\").split(\",\").map(function (e) {\n return e.trim();\n });\n n.ms.push(d);\n }\n }\n }\n\n function i(e, t) {\n for (var i = [], a = 0; a < e.childNodes.length; a++) {\n var o = e.childNodes[a];\n (o.tagName || \"\").toLowerCase() === \"svg\" && i.push(o);\n }\n\n i.forEach(function (t) {\n e.removeChild(t);\n });\n var s = t.t || \"bar\",\n d = c(t.d),\n p = l(t.l),\n m = g(t),\n h = r[s];\n\n if (h) {\n if (s === \"candlestick\") {\n var y = Ge(t.d);\n\n if (y.length) {\n var b = [];\n y.forEach(function (e) {\n b.push(e.h, e.l);\n });\n\n var x = v(b),\n S = _(b);\n\n if (isFinite(x) && isFinite(S) && x !== S) {\n var C = V(e._yRange ? Math.min(e._yRange.lo, x) : x, e._yRange ? Math.max(e._yRange.hi, S) : S);\n e._yRange = {\n lo: C[0],\n hi: C[1]\n };\n }\n }\n\n e._yRange && (t._yMin = e._yRange.lo, t._yMax = e._yRange.hi);\n }\n\n if (s === \"scatter\" || s === \"bubble\") {\n var w = s === \"bubble\" ? je(t.d) : f(t.d);\n\n if (w.length) {\n var T = w.map(function (e) {\n return e.x;\n }),\n E = w.map(function (e) {\n return e.y;\n }),\n D = v(T),\n O = _(T),\n k = v(E),\n A = _(E);\n\n if (isFinite(D) && isFinite(O) && D !== O) {\n var j = V(e._xRange ? Math.min(e._xRange.lo, D) : D, e._xRange ? Math.max(e._xRange.hi, O) : O);\n e._xRange = {\n lo: j[0],\n hi: j[1]\n };\n }\n\n if (isFinite(k) && isFinite(A) && k !== A) {\n var M = V(e._yRange ? Math.min(e._yRange.lo, k) : k, e._yRange ? Math.max(e._yRange.hi, A) : A);\n e._yRange = {\n lo: M[0],\n hi: M[1]\n };\n }\n\n if (s === \"bubble\") {\n var N = _(w.map(function (e) {\n return e.s;\n }));\n\n isFinite(N) && (e._sMax = e._sMax ? Math.max(e._sMax, N) : N);\n }\n }\n\n e._xRange && (t._xMin = e._xRange.lo, t._xMax = e._xRange.hi), e._yRange && (t._yMin = e._yRange.lo, t._yMax = e._yRange.hi), e._sMax && (t._sMax = e._sMax);\n }\n\n if (s === \"heatmap\") {\n var P = Ne(t.rows || t.d);\n\n if (P.length) {\n var F = [];\n\n if (P.forEach(function (e) {\n e.forEach(function (e) {\n isNaN(e) || F.push(e);\n });\n }), F.length) {\n var I = v(F),\n L = _(F);\n\n isFinite(I) && isFinite(L) && (e._vRange = {\n lo: e._vRange ? Math.min(e._vRange.lo, I) : I,\n hi: e._vRange ? Math.max(e._vRange.hi, L) : L\n });\n }\n }\n\n e._vRange && (t._vMin = e._vRange.lo, t._vMax = e._vRange.hi);\n }\n\n if (s === \"histogram\") {\n var R = c(t.d),\n z = Pe(t.l);\n if (z) e._hRange = {\n lo: z.lo,\n hi: z.hi\n }, t.bins === void 0 && (e._hBins = z.bins);else if (R.length) {\n e._hBins === void 0 && t.bins === void 0 && (e._hBins = Math.min(20, Math.max(5, Math.ceil(Math.sqrt(R.length)))));\n\n var B = v(R),\n H = _(R);\n\n isFinite(B) && isFinite(H) && (e._hRange = {\n lo: e._hRange ? Math.min(e._hRange.lo, B) : B,\n hi: e._hRange ? Math.max(e._hRange.hi, H) : H\n });\n }\n\n if (e._hBins !== void 0 && (t._bins = e._hBins), e._hRange && (t._lo = e._hRange.lo, t._hi = e._hRange.hi), R.length) {\n var U = _(Fe(t, R).counts) || 1;\n e._yMax = e._yMax ? Math.max(e._yMax, U) : U, t._yMax = e._yMax;\n }\n }\n\n var W = h(d, p, m, t);\n W && W.setAttribute && (W.tagName || \"\").toLowerCase() === \"svg\" && (W.setAttribute(\"data-chart-type\", s), s === \"bar\" && (t.orient === \"h\" || t.orientation === \"h\") && W.setAttribute(\"data-orient\", \"h\")), e.appendChild(W), e._tokuiChartSpec = {\n type: s,\n data: d,\n labels: p,\n colors: m,\n attrs: t\n }, u(e);\n } else {\n var G = document.createElement(\"div\");\n G.className = \"tokui-chart__fallback\", G.textContent = n(\"chart.unsupportedType\", {\n type: s\n }), e.appendChild(G);\n }\n }\n\n function a(e) {\n var t = e._chartState;\n\n if (t) {\n var n = {};\n Object.keys(t.base).forEach(function (e) {\n n[e] = t.base[e];\n });\n var r = t.type;\n if (r === \"gantt\") n.tasks = t.tasks.map(function (e) {\n return e.join(\",\");\n }).join(\"|\"), n.ms = t.ms.map(function (e) {\n return e.join(\",\");\n }).join(\"|\"), n.d = \"\";else if (r === \"heatmap\") t.rows.length && (n.rows = t.rows.map(function (e) {\n return e.v;\n }).join(\"|\"), n.d = \"\");else if (r === \"sankey\") t.flows.length && (n.flows = t.flows.map(function (e) {\n return e.v;\n }).join(\",\"), n.d = \"\");else {\n var a = r === \"scatter\" || r === \"bubble\" ? \";\" : \",\";\n n.d = t.points.join(a);\n }\n i(e, n);\n }\n }\n\n function o(e) {\n e._rafScheduled || (e._rafScheduled = !0, ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.requestAnimationFrame ? function (e) {\n window.requestAnimationFrame(e);\n } : function (e) {\n e();\n })(function () {\n e._rafScheduled = !1, a(e);\n }));\n }\n\n function s(e) {\n if (!((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) > \"u\")) {\n var t = e.querySelector(\"svg.tokui-chart__svg\");\n\n if (t) {\n var n = t.viewBox && t.viewBox.baseVal,\n r = n && n.width || parseFloat(t.getAttribute(\"viewBox\").split(/\\s+/)[2]);\n\n if (r > 0) {\n var a = 0;\n if (typeof t.getBoundingClientRect == \"function\") try {\n a = t.getBoundingClientRect().width;\n } catch (_unused14) {\n a = 0;\n }\n\n if (a > 0) {\n var o = a / r,\n s = t.getAttribute(\"data-chart-type\");\n t._tokuiBumpedFs = L(9, o, N, F), R(t, o);\n var c = e._tokuiChartSpec;\n\n if (s === \"pie\") {\n if (!c || !c.data || !c.data.length || !c.labels || !c.labels.some(function (e) {\n return !!e;\n })) return;\n var l = c.data.reduce(function (e, t) {\n return e + t;\n }, 0) || 1,\n u = X(c.data, c.labels, c.attrs, 7, l),\n d = u.r + u.fs,\n f = z(a, d, u.fixedA, u.coefB, N),\n p = 14,\n m = 1 / 0;\n\n if (u.coefB > 1) {\n var h = a * d - 2 * p * (d + u.fixedA),\n g = a + 2 * p * (u.coefB - 1);\n m = h > 0 && g > 0 ? h / g : 7;\n }\n\n var _ = Math.min(f, m),\n v = e._tokuiFsApplied || 7;\n\n _ > 7.05 && _ > v + .05 && (e._tokuiFsApplied = _, i(e, Object.assign({}, c.attrs, {\n _pieFs: _\n })));\n return;\n }\n\n if ({\n bar: 1,\n line: 1,\n area: 1,\n histogram: 1,\n boxplot: 1,\n candlestick: 1,\n waterfall: 1\n }[s] && typeof t.createSVGPoint == \"function\" && !e._tokuiPadLSet) {\n e._tokuiPadLSet = !0;\n\n for (var y = L(9, o, N, F), b = t.querySelector(\"line\"), x = b ? parseFloat(b.getAttribute(\"x1\")) : 0, S = t.querySelectorAll(\"text[text-anchor=\\\"end\\\"]\"), C = 0, w = 0; w < S.length; w++) {\n var T = S[w];\n\n if (!(parseFloat(T.getAttribute(\"x\")) >= x)) {\n var E = parseFloat(T.getAttribute(\"font-size\")) || 9,\n D = 0;\n\n try {\n D = T.getBBox().width;\n } catch (_unused15) {\n D = 0;\n }\n\n var O = D * y / E;\n O > C && (C = O);\n }\n }\n\n if (C > 0) {\n var k = Math.ceil(C + 12),\n A = c && c.attrs && c.attrs.yl ? 46 : 40;\n\n if ((s === \"boxplot\" || s === \"candlestick\" || s === \"waterfall\") && (A = 44), Math.abs(k - A) > 2) {\n e._tokuiPadL = k, i(e, Object.assign({}, c.attrs, {\n _padL: k\n }));\n return;\n }\n }\n }\n\n if (o > 0) {\n if (t._tokuiZoomRelayout) try {\n t._tokuiZoomRelayout(o);\n } catch (_unused16) {}\n\n for (var j = t.querySelectorAll(\"text[font-size]\"), M = 0; M < j.length; M++) {\n for (var P = j[M], I = P.parentNode; I && I !== t;) {\n if ((I.getAttribute && I.getAttribute(\"class\") || \"\").indexOf(\"tokui-chart-tips-layer\") >= 0) {\n P = null;\n break;\n }\n\n I = I.parentNode;\n }\n\n if (P && !(P.classList.contains(\"tokui-chart-gauge-value\") || P.classList.contains(\"tokui-chart-donut-value\"))) {\n var B = parseFloat(P.getAttribute(\"font-size\"));\n\n if (!(!(B > 0) || B >= 13)) {\n var V = L(B, o, N, F);\n V !== B && P.setAttribute(\"font-size\", String(Math.round(V * 100) / 100));\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n function u(e) {\n if (((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.requestAnimationFrame ? function (e) {\n window.requestAnimationFrame(e);\n } : function (e) {\n e();\n })(function () {\n s(e);\n }), !((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) > \"u\" || window.ResizeObserver === void 0)) {\n if (e._tokuiRO) try {\n e._tokuiRO.disconnect();\n } catch (_unused17) {}\n var t = new window.ResizeObserver(function () {\n e._tokuiAdjRaf || (e._tokuiAdjRaf = !0, (window.requestAnimationFrame ? window.requestAnimationFrame : function (e) {\n e();\n })(function () {\n e._tokuiAdjRaf = !1, s(e);\n }));\n });\n e._tokuiRO = t;\n var n = e.querySelector(\"svg.tokui-chart__svg\") || e;\n\n try {\n t.observe(n);\n } catch (_unused18) {}\n }\n }\n\n function d(e, t, n) {\n if (!e || (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) > \"u\" || (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) > \"u\") {\n n(null);\n return;\n }\n\n for (var r = e.viewBox && e.viewBox.baseVal, i = r && r.width || e.clientWidth || 600, a = r && r.height || e.clientHeight || 300, o = e.cloneNode(!0), s = e.querySelectorAll(\"*\"), c = o.querySelectorAll(\"*\"), l = [\"fill\", \"stroke\", \"color\"], u = 0; u < s.length; u++) {\n var d = null;\n\n try {\n d = getComputedStyle(s[u]);\n } catch (_unused19) {\n d = null;\n }\n\n if (d) for (var f = 0; f < l.length; f++) {\n var p = d.getPropertyValue(l[f]);\n p && c[u].setAttribute(l[f], p);\n }\n }\n\n for (var m = o.querySelectorAll(\".tokui-chart-tips-layer\"), h = m.length - 1; h >= 0; h--) {\n m[h].parentNode && m[h].parentNode.removeChild(m[h]);\n }\n\n o.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\"), o.setAttribute(\"width\", i), o.setAttribute(\"height\", a), o.setAttribute(\"style\", \"background:#fff\");\n var g;\n\n try {\n g = new XMLSerializer().serializeToString(o);\n } catch (_unused20) {\n n(null);\n return;\n }\n\n var _ = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(g),\n v = new Image();\n\n v.onload = function () {\n var e = document.createElement(\"canvas\");\n e.width = Math.round(i * t), e.height = Math.round(a * t);\n var r = e.getContext(\"2d\");\n r.fillStyle = \"#fff\", r.fillRect(0, 0, e.width, e.height), r.drawImage(v, 0, 0, e.width, e.height), e.toBlob ? e.toBlob(function (e) {\n n(e);\n }, \"image/png\") : n(null);\n }, v.onerror = function () {\n n(null);\n }, v.src = _;\n }\n\n function p(e, t) {\n if (e) {\n var n = document.createElement(\"a\"),\n r = URL.createObjectURL(e);\n n.href = r, n.download = t, document.body.appendChild(n), n.click(), n.remove(), setTimeout(function () {\n URL.revokeObjectURL(r);\n }, 2e3);\n }\n }\n\n function m(e, t) {\n e && (navigator.clipboard && navigator.clipboard.write && window.ClipboardItem ? navigator.clipboard.write([new window.ClipboardItem({\n \"image/png\": e\n })]).then(function () {\n h(t, n(\"common.copied\"));\n }).catch(function () {\n h(t, n(\"chart.copyFailed\"));\n }) : h(t, n(\"chart.unsupported\")));\n }\n\n function h(e, t) {\n if (e) {\n var n = document.createElement(\"span\");\n n.className = \"tokui-chart__tip\", n.textContent = t, e.appendChild(n), setTimeout(function () {\n n.parentNode && n.remove();\n }, 1200);\n }\n }\n\n var y = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><rect x=\\\"9\\\" y=\\\"9\\\" width=\\\"13\\\" height=\\\"13\\\" rx=\\\"2\\\"/><path d=\\\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\\\"/></svg>\",\n b = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\\\"/><polyline points=\\\"7 10 12 15 17 10\\\"/><line x1=\\\"12\\\" y1=\\\"15\\\" x2=\\\"12\\\" y2=\\\"3\\\"/></svg>\",\n x = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M15 3h6v6\\\"/><path d=\\\"M9 21H3v-6\\\"/><path d=\\\"M21 3l-7 7\\\"/><path d=\\\"M3 21l7-7\\\"/></svg>\";\n\n function S(e, t) {\n if (!e || (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) > \"u\") return;\n var i = document.querySelector(\".tokui-chart__modal\");\n i && i.remove();\n var a = document.createElement(\"div\");\n a.className = \"tokui-chart__modal\", a.setAttribute(\"role\", \"dialog\"), a.setAttribute(\"aria-modal\", \"true\"), t && a.setAttribute(\"aria-label\", t);\n var o = document.createElement(\"div\");\n o.className = \"tokui-chart__modal-card\";\n var s = document.createElement(\"button\");\n\n if (s.type = \"button\", s.className = \"tokui-chart__modal-close\", s.setAttribute(\"aria-label\", n(\"common.close\")), s.innerHTML = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><line x1=\\\"18\\\" y1=\\\"6\\\" x2=\\\"6\\\" y2=\\\"18\\\"/><line x1=\\\"6\\\" y1=\\\"6\\\" x2=\\\"18\\\" y2=\\\"18\\\"/></svg>\", t) {\n var c = document.createElement(\"div\");\n c.className = \"tokui-chart__modal-title\", c.textContent = t, o.appendChild(c);\n }\n\n var l = document.createElement(\"div\");\n l.className = \"tokui-chart__modal-body\";\n var d = typeof e.closest == \"function\" ? e.closest(\".tokui-chart\") : null,\n f = d && d._tokuiChartSpec,\n p = !!e.querySelector(\".tokui-chart-zoom-window\"),\n m;\n if (p && f && r[f.type]) try {\n m = r[f.type](f.data, f.labels, f.colors, f.attrs), m.setAttribute(\"data-chart-type\", f.type), f.type === \"bar\" && (f.attrs.orient === \"h\" || f.attrs.orientation === \"h\") && m.setAttribute(\"data-orient\", \"h\");\n } catch (_unused21) {\n m = e.cloneNode(!0), C(m);\n } else m = e.cloneNode(!0), C(m);\n m.id && m.removeAttribute(\"id\"), l.appendChild(m), p && f && (l._tokuiChartSpec = f, l._tokuiPadLSet = !0, u(l)), o.appendChild(l), o.appendChild(s), a.appendChild(o);\n var h = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n\n var g = function g(e) {\n e.key === \"Escape\" && v();\n },\n _ = !1;\n\n function v() {\n _ || (_ = !0, a.classList.remove(\"tokui-chart__modal--open\"), document.removeEventListener(\"keydown\", g), document.body.style.overflow = h, setTimeout(function () {\n a.parentNode && a.remove();\n }, 180));\n }\n\n a.addEventListener(\"click\", function (e) {\n e.target === a && v();\n }), s.addEventListener(\"click\", v), document.addEventListener(\"keydown\", g), document.body.appendChild(a), a.offsetWidth, a.classList.add(\"tokui-chart__modal--open\"), ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.requestAnimationFrame ? function (e) {\n window.requestAnimationFrame(e);\n } : function (e) {\n e();\n })(function () {\n var e = 0;\n\n try {\n e = m.getBoundingClientRect().width;\n } catch (_unused22) {\n e = 0;\n }\n\n if (e > 0) {\n var t = m.viewBox && m.viewBox.baseVal,\n n = t && t.width || parseFloat((m.getAttribute(\"viewBox\") || \"\").split(/\\s+/)[2]);\n n > 0 && R(m, e / n);\n }\n });\n }\n\n function w(e) {\n var t = document.createElement(\"div\");\n t.className = \"tokui-chart__toolbar\";\n\n var r = function r(e, t, n) {\n var r = document.createElement(\"button\");\n return r.type = \"button\", r.className = \"tokui-chart__act\", r.setAttribute(\"data-act\", e), r.title = t, r.setAttribute(\"aria-label\", t), r.innerHTML = n, r;\n };\n\n return t.appendChild(r(\"copy\", n(\"chart.copyImage\"), y)), t.appendChild(r(\"download\", n(\"chart.downloadImage\"), b)), t.appendChild(r(\"fullscreen\", n(\"chart.fullscreen\"), x)), t.addEventListener(\"click\", function (t) {\n var n = t.target.closest(\"[data-act]\");\n\n if (n) {\n t.preventDefault();\n var r = e.querySelector(\"svg.tokui-chart__svg\");\n\n if (!(!r || n.disabled)) {\n var i = n.getAttribute(\"data-act\");\n\n if (i === \"fullscreen\") {\n var a = e.querySelector(\".tokui-chart__title\");\n S(r, a ? a.textContent : \"\");\n return;\n }\n\n n.disabled = !0, d(r, i === \"copy\" ? 2 : 3, function (e) {\n n.disabled = !1, e && (i === \"download\" ? p(e, \"tokui-chart.png\") : m(e, n));\n });\n }\n }\n }), t;\n }\n\n e.register(\"chart\", function (e) {\n var n = e.attrs || {},\n r = n.t || \"bar\",\n s = document.createElement(\"div\");\n\n if (s.className = \"tokui-chart\", n.tt) {\n var c = document.createElement(\"div\");\n c.className = \"tokui-chart__title\", c.textContent = n.tt, s.appendChild(c);\n }\n\n s.appendChild(w(s));\n var l = n.t;\n return n.d || n.tasks || n.rows || n.nodes && n.flows || n.v !== void 0 && (l === \"gauge\" || l === \"progress\") ? (i(s, n), s._tokuiChartUpdate = function (e) {\n i(s, e);\n }, s) : (s._chartState = {\n type: r,\n base: n,\n points: [],\n tasks: [],\n ms: [],\n rows: [],\n flows: []\n }, s._tokuiChartAppend = function (e) {\n t(s, e), o(s);\n }, s._streamCloseHook = function () {\n s._rafScheduled && (s._rafScheduled = !1, a(s));\n }, e.children && e.children.length && e.children.forEach(function (e) {\n t(s, e);\n }), a(s), s);\n });\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerChartComponents = qe, window.TokUI._internal.registerChartRenderer = $, window.TokUI._internal.bumpFsUnits = L, window.TokUI._internal.applyTipScale = R, window.TokUI._internal.axisXLayout = W, window.TokUI._internal.zoomBounds = K, window.TokUI._internal.zoomEnabled = ee, window.TokUI._internal.solvePieFs = z, window.TokUI._internal.pieSizing = X, window.TokUI._internal.MIN_CHART_PX = N, window.TokUI._internal.MAX_CHART_PX = F), t !== void 0 && t.exports && (t.exports = {\n registerChartComponents: qe,\n registerChartRenderer: $,\n bumpFsUnits: L,\n solvePieFs: z,\n pieSizing: X,\n MIN_CHART_PX: N,\n MAX_CHART_PX: F,\n applyTipScale: R,\n axisXLayout: W,\n zoomBounds: K,\n zoomEnabled: ee\n });\n }),\n v = s(function (e, t) {\n var n = {\n view: \"<path d=\\\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"3\\\"/>\",\n edit: \"<path d=\\\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\\\"/><path d=\\\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\\\"/>\",\n delete: \"<path d=\\\"M3 6h18\\\"/><path d=\\\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\\\"/><path d=\\\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\\\"/>\",\n add: \"<path d=\\\"M12 5v14\\\"/><path d=\\\"M5 12h14\\\"/>\",\n copy: \"<rect x=\\\"9\\\" y=\\\"9\\\" width=\\\"13\\\" height=\\\"13\\\" rx=\\\"2\\\"/><path d=\\\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\\\"/>\",\n download: \"<path d=\\\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\\\"/><path d=\\\"M7 10l5 5 5-5\\\"/><path d=\\\"M12 15V3\\\"/>\",\n upload: \"<path d=\\\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\\\"/><path d=\\\"M17 8l-5-5-5 5\\\"/><path d=\\\"M12 3v12\\\"/>\",\n refresh: \"<path d=\\\"M23 4v6h-6\\\"/><path d=\\\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\\\"/>\",\n check: \"<path d=\\\"M20 6L9 17l-5-5\\\"/>\",\n close: \"<path d=\\\"M18 6L6 18\\\"/><path d=\\\"M6 6l12 12\\\"/>\",\n search: \"<circle cx=\\\"11\\\" cy=\\\"11\\\" r=\\\"8\\\"/><line x1=\\\"21\\\" y1=\\\"21\\\" x2=\\\"16.65\\\" y2=\\\"16.65\\\"/>\",\n setting: \"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"3\\\"/><path d=\\\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z\\\"/>\",\n warn: \"<path d=\\\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\\\"/><line x1=\\\"12\\\" y1=\\\"9\\\" x2=\\\"12\\\" y2=\\\"13\\\"/><line x1=\\\"12\\\" y1=\\\"17\\\" x2=\\\"12.01\\\" y2=\\\"17\\\"/>\",\n info: \"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"10\\\"/><line x1=\\\"12\\\" y1=\\\"16\\\" x2=\\\"12\\\" y2=\\\"12\\\"/><line x1=\\\"12\\\" y1=\\\"8\\\" x2=\\\"12.01\\\" y2=\\\"8\\\"/>\",\n lock: \"<rect x=\\\"3\\\" y=\\\"11\\\" width=\\\"18\\\" height=\\\"11\\\" rx=\\\"2\\\"/><path d=\\\"M7 11V7a5 5 0 0 1 10 0v4\\\"/>\",\n unlock: \"<rect x=\\\"3\\\" y=\\\"11\\\" width=\\\"18\\\" height=\\\"11\\\" rx=\\\"2\\\"/><path d=\\\"M7 11V7a5 5 0 0 1 9.9-1\\\"/>\",\n more: \"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"1\\\"/><circle cx=\\\"19\\\" cy=\\\"12\\\" r=\\\"1\\\"/><circle cx=\\\"5\\\" cy=\\\"12\\\" r=\\\"1\\\"/>\",\n save: \"<path d=\\\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\\\"/><polyline points=\\\"17 21 17 13 7 13 7 21\\\"/><polyline points=\\\"7 3 7 8 15 8\\\"/>\",\n export: \"<path d=\\\"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7\\\"/><polyline points=\\\"16 6 12 2 8 6\\\"/><line x1=\\\"12\\\" y1=\\\"2\\\" x2=\\\"12\\\" y2=\\\"15\\\"/>\",\n filter: \"<polygon points=\\\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\\\"/>\",\n sort: \"<path d=\\\"M11 5h10\\\"/><path d=\\\"M11 9h7\\\"/><path d=\\\"M11 13h4\\\"/><path d=\\\"m3 17 3 3 3-3\\\"/><path d=\\\"M6 18V4\\\"/>\",\n star: \"<polygon points=\\\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\\\"/>\",\n link: \"<path d=\\\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\\\"/><path d=\\\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\\\"/>\",\n menu: \"<line x1=\\\"3\\\" y1=\\\"12\\\" x2=\\\"21\\\" y2=\\\"12\\\"/><line x1=\\\"3\\\" y1=\\\"6\\\" x2=\\\"21\\\" y2=\\\"6\\\"/><line x1=\\\"3\\\" y1=\\\"18\\\" x2=\\\"21\\\" y2=\\\"18\\\"/>\"\n };\n\n function r(e, t) {\n var r = n[e];\n if (!r) return \"\";\n var i = t || 16;\n return \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"\" + i + \"\\\" height=\\\"\" + i + \"\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"tokui-icon tokui-icon--\" + e + \"\\\">\" + r + \"</svg>\";\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.ICONS = n, window.TokUI._internal.iconSvg = r), t !== void 0 && t.exports && (t.exports = {\n ICONS: n,\n iconSvg: r\n });\n }),\n y = s(function (e, t) {\n var n = [11011001100, 11001101100, 11001100110, 10010011e3, 10010001100, 10001001100, 10011001e3, 10011000100, 10001100100, 11001001e3, 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, 11011011e3, 11011000110, 11000110110, 10100011e3, 10001011e3, 10001000110, 10110001e3, 10001101e3, 10001100010, 11010001e3, 11000101e3, 11000100010, 10110111e3, 10110001110, 10001101110, 10111011e3, 10111000110, 10001110110, 11101110110, 11010001110, 11000101110, 11011101e3, 11011100010, 11011101110, 11101011e3, 11101000110, 11100010110, 11101101e3, 11101100010, 11100011010, 11101111010, 11001000010, 11110001010, 1010011e4, 10100001100, 1001011e4, 10010000110, 10000101100, 10000100110, 1011001e4, 10110000100, 1001101e4, 10011000010, 10000110100, 10000110010, 11000010010, 1100101e4, 11110111010, 11000010100, 10001111010, 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, 11011110110, 11110110110, 10101111e3, 10100011110, 10001011110, 10111101e3, 10111100010, 11110101e3, 11110100010, 10111011110, 10111101110, 11101011110, 11110101110, 11010000100, 1101001e4, 11010011100, 1100011101011],\n r = 104,\n i = 106,\n a = 103;\n\n function o(e) {\n for (var t = [], o = 0; o < String(e || \"\").length; o++) {\n var s = String(e || \"\").charCodeAt(o);\n s >= 32 && s <= 126 && t.push(s);\n }\n\n if (!t.length) return \"\";\n\n for (var c = r, l = 0; l < t.length; l++) {\n c += (l + 1) * (t[l] - 32);\n }\n\n for (var u = c % a, d = String(n[r]), f = 0; f < t.length; f++) {\n d += String(n[t[f] - 32]);\n }\n\n return d += String(n[u]), d += String(n[i]), d;\n }\n\n function s(e, t) {\n for (var n = {\n sm: 1.5,\n md: 2,\n lg: 2.5\n }[t] || 2, r = {\n sm: 36,\n md: 54,\n lg: 72\n }[t] || 54, i = e.length, a = \"\", o = 0; o < i;) {\n if (e[o] === \"1\") {\n for (var s = o; s < i && e[s] === \"1\";) {\n s++;\n }\n\n a += \"<rect x=\\\"\" + (o * n).toFixed(2) + \"\\\" y=\\\"0\\\" width=\\\"\" + ((s - o) * n).toFixed(2) + \"\\\" height=\\\"\" + r + \"\\\"/>\", o = s;\n } else o++;\n }\n\n return \"<svg viewBox=\\\"0 0 \" + (i * n).toFixed(2) + \" \" + r + \"\\\" width=\\\"100%\\\" preserveAspectRatio=\\\"xMidYMid meet\\\" role=\\\"img\\\" class=\\\"tokui-barcode__bars\\\"><g fill=\\\"currentColor\\\">\" + a + \"</g></svg>\";\n }\n\n function c(e) {\n var t = ( true ? h() : undefined).el;\n e.register(\"barcode\", function (e) {\n var n = e.attrs.tx || e.content || \"\",\n r = e.attrs.l || e.attrs.tt || \"\",\n i = String(e.attrs.s || e.attrs.size || \"md\").toLowerCase(),\n a = {\n small: \"sm\",\n medium: \"md\",\n large: \"lg\"\n }[i] || i,\n c = t(\"div\", {\n class: \"tokui-barcode tokui-barcode--\" + a\n });\n r && c.appendChild(t(\"div\", {\n class: \"tokui-barcode__label\"\n }, r));\n var l = o(n);\n\n if (l) {\n var u = t(\"div\", {\n class: \"tokui-barcode__svg\"\n });\n u.innerHTML = s(l, a), c.appendChild(u);\n } else c.appendChild(t(\"div\", {\n class: \"tokui-barcode__empty\"\n }, \"\\u2014\"));\n\n return n && c.appendChild(t(\"div\", {\n class: \"tokui-barcode__text\"\n }, n)), c;\n });\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerBarcode = c, window.TokUI._internal.encode128B = o), t !== void 0 && t.exports && (t.exports = {\n registerBarcode: c,\n encode128B: o\n });\n }),\n b = s(function (e, t) {\n var n = function () {\n var e = function e(_e39, t) {\n var r = 236,\n a = 17,\n p = _e39,\n m = n[t],\n h = null,\n g = 0,\n v = null,\n y = [],\n b = {},\n x = function x(e, t) {\n var _v;\n\n g = p * 4 + 17, h = function (e) {\n for (var t = Array(e), n = 0; n < e; n += 1) {\n t[n] = Array(e);\n\n for (var r = 0; r < e; r += 1) {\n t[n][r] = null;\n }\n }\n\n return t;\n }(g), S(0, 0), S(g - 7, 0), S(0, g - 7), T(), w(), D(e, t), p >= 7 && E(e), (_v = v) !== null && _v !== void 0 ? _v : v = A(p, m, y), O(v, t);\n },\n S = function S(e, t) {\n for (var n = -1; n <= 7; n += 1) {\n if (!(e + n <= -1 || g <= e + n)) for (var r = -1; r <= 7; r += 1) {\n t + r <= -1 || g <= t + r || (0 <= n && n <= 6 && (r == 0 || r == 6) || 0 <= r && r <= 6 && (n == 0 || n == 6) || 2 <= n && n <= 4 && 2 <= r && r <= 4 ? h[e + n][t + r] = !0 : h[e + n][t + r] = !1);\n }\n }\n },\n C = function C() {\n for (var e = 0, t = 0, n = 0; n < 8; n += 1) {\n x(!0, n);\n var r = i.getLostPoint(b);\n (n == 0 || e > r) && (e = r, t = n);\n }\n\n return t;\n },\n w = function w() {\n for (var e = 8; e < g - 8; e += 1) {\n var _h$e$;\n\n (_h$e$ = h[e][6]) !== null && _h$e$ !== void 0 ? _h$e$ : h[e][6] = e % 2 == 0;\n }\n\n for (var t = 8; t < g - 8; t += 1) {\n var _h$6$t;\n\n (_h$6$t = h[6][t]) !== null && _h$6$t !== void 0 ? _h$6$t : h[6][t] = t % 2 == 0;\n }\n },\n T = function T() {\n for (var e = i.getPatternPosition(p), t = 0; t < e.length; t += 1) {\n for (var n = 0; n < e.length; n += 1) {\n var r = e[t],\n a = e[n];\n if (h[r][a] == null) for (var o = -2; o <= 2; o += 1) {\n for (var s = -2; s <= 2; s += 1) {\n o == -2 || o == 2 || s == -2 || s == 2 || o == 0 && s == 0 ? h[r + o][a + s] = !0 : h[r + o][a + s] = !1;\n }\n }\n }\n }\n },\n E = function E(e) {\n for (var t = i.getBCHTypeNumber(p), n = 0; n < 18; n += 1) {\n var r = !e && (t >> n & 1) == 1;\n h[Math.floor(n / 3)][n % 3 + g - 8 - 3] = r;\n }\n\n for (var n = 0; n < 18; n += 1) {\n var r = !e && (t >> n & 1) == 1;\n h[n % 3 + g - 8 - 3][Math.floor(n / 3)] = r;\n }\n },\n D = function D(e, t) {\n for (var n = m << 3 | t, r = i.getBCHTypeInfo(n), a = 0; a < 15; a += 1) {\n var o = !e && (r >> a & 1) == 1;\n a < 6 ? h[a][8] = o : a < 8 ? h[a + 1][8] = o : h[g - 15 + a][8] = o;\n }\n\n for (var a = 0; a < 15; a += 1) {\n var o = !e && (r >> a & 1) == 1;\n a < 8 ? h[8][g - a - 1] = o : a < 9 ? h[8][15 - a - 1 + 1] = o : h[8][15 - a - 1] = o;\n }\n\n h[g - 8][8] = !e;\n },\n O = function O(e, t) {\n for (var n = -1, r = g - 1, a = 7, o = 0, s = i.getMaskFunction(t), c = g - 1; c > 0; c -= 2) {\n for (c == 6 && --c;;) {\n for (var l = 0; l < 2; l += 1) {\n if (h[r][c - l] == null) {\n var u = !1;\n o < e.length && (u = (e[o] >>> a & 1) == 1), s(r, c - l) && (u = !u), h[r][c - l] = u, --a, a == -1 && (o += 1, a = 7);\n }\n }\n\n if (r += n, r < 0 || g <= r) {\n r -= n, n = -n;\n break;\n }\n }\n }\n },\n k = function k(e, t) {\n for (var n = 0, r = 0, a = 0, s = Array(t.length), c = Array(t.length), l = 0; l < t.length; l += 1) {\n var u = t[l].dataCount,\n d = t[l].totalCount - u;\n r = Math.max(r, u), a = Math.max(a, d), s[l] = Array(u);\n\n for (var f = 0; f < s[l].length; f += 1) {\n s[l][f] = 255 & e.getBuffer()[f + n];\n }\n\n n += u;\n var p = i.getErrorCorrectPolynomial(d),\n m = o(s[l], p.getLength() - 1).mod(p);\n c[l] = Array(p.getLength() - 1);\n\n for (var f = 0; f < c[l].length; f += 1) {\n var h = f + m.getLength() - c[l].length;\n c[l][f] = h >= 0 ? m.getAt(h) : 0;\n }\n }\n\n for (var g = 0, f = 0; f < t.length; f += 1) {\n g += t[f].totalCount;\n }\n\n for (var _ = Array(g), v = 0, f = 0; f < r; f += 1) {\n for (var l = 0; l < t.length; l += 1) {\n f < s[l].length && (_[v] = s[l][f], v += 1);\n }\n }\n\n for (var f = 0; f < a; f += 1) {\n for (var l = 0; l < t.length; l += 1) {\n f < c[l].length && (_[v] = c[l][f], v += 1);\n }\n }\n\n return _;\n },\n A = function A(e, t, n) {\n for (var o = s.getRSBlocks(e, t), l = c(), u = 0; u < n.length; u += 1) {\n var d = n[u];\n l.put(d.getMode(), 4), l.put(d.getLength(), i.getLengthInBits(d.getMode(), e)), d.write(l);\n }\n\n for (var f = 0, u = 0; u < o.length; u += 1) {\n f += o[u].dataCount;\n }\n\n if (l.getLengthInBits() > f * 8) throw \"code length overflow. (\" + l.getLengthInBits() + \">\" + f * 8 + \")\";\n\n for (l.getLengthInBits() + 4 <= f * 8 && l.put(0, 4); l.getLengthInBits() % 8 != 0;) {\n l.putBit(!1);\n }\n\n for (; !(l.getLengthInBits() >= f * 8 || (l.put(r, 8), l.getLengthInBits() >= f * 8));) {\n l.put(a, 8);\n }\n\n return k(l, o);\n };\n\n b.addData = function (e, t) {\n t || (t = \"Byte\");\n var n = null;\n\n switch (t) {\n case \"Numeric\":\n n = l(e);\n break;\n\n case \"Alphanumeric\":\n n = u(e);\n break;\n\n case \"Byte\":\n n = d(e);\n break;\n\n case \"Kanji\":\n n = f(e);\n break;\n\n default:\n throw \"mode:\" + t;\n }\n\n y.push(n), v = null;\n }, b.isDark = function (e, t) {\n if (e < 0 || g <= e || t < 0 || g <= t) throw e + \",\" + t;\n return h[e][t];\n }, b.getModuleCount = function () {\n return g;\n }, b.make = function () {\n if (p < 1) {\n for (var e = 1; e < 40; e++) {\n for (var t = s.getRSBlocks(e, m), n = c(), r = 0; r < y.length; r++) {\n var a = y[r];\n n.put(a.getMode(), 4), n.put(a.getLength(), i.getLengthInBits(a.getMode(), e)), a.write(n);\n }\n\n for (var o = 0, r = 0; r < t.length; r++) {\n o += t[r].dataCount;\n }\n\n if (n.getLengthInBits() <= o * 8) break;\n }\n\n p = e;\n }\n\n x(!1, C());\n }, b.createTableTag = function (e, t) {\n e || (e = 2), t = t === void 0 ? e * 4 : t;\n var n = \"\";\n n += \"<table style=\\\"\", n += \" border-width: 0px; border-style: none;\", n += \" border-collapse: collapse;\", n += \" padding: 0px; margin: \" + t + \"px;\", n += \"\\\">\", n += \"<tbody>\";\n\n for (var r = 0; r < b.getModuleCount(); r += 1) {\n n += \"<tr>\";\n\n for (var i = 0; i < b.getModuleCount(); i += 1) {\n n += \"<td style=\\\"\", n += \" border-width: 0px; border-style: none;\", n += \" border-collapse: collapse;\", n += \" padding: 0px; margin: 0px;\", n += \" width: \" + e + \"px;\", n += \" height: \" + e + \"px;\", n += \" background-color: \", n += b.isDark(r, i) ? \"#000000\" : \"#ffffff\", n += \";\", n += \"\\\"/>\";\n }\n\n n += \"</tr>\";\n }\n\n return n += \"</tbody>\", n += \"</table>\", n;\n }, b.createSvgTag = function (e, t, n, r) {\n var i = {};\n typeof arguments[0] == \"object\" && (i = arguments[0], e = i.cellSize, t = i.margin, n = i.alt, r = i.title), e || (e = 2), t = t === void 0 ? e * 4 : t, n = typeof n == \"string\" ? {\n text: n\n } : n || {}, n.text = n.text || null, n.id = n.text ? n.id || \"qrcode-description\" : null, r = typeof r == \"string\" ? {\n text: r\n } : r || {}, r.text = r.text || null, r.id = r.text ? r.id || \"qrcode-title\" : null;\n var a = b.getModuleCount() * e + t * 2,\n o,\n s,\n c,\n l,\n u = \"\",\n d = \"l\" + e + \",0 0,\" + e + \" -\" + e + \",0 0,-\" + e + \"z \";\n\n for (u += \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"\", u += i.scalable ? \"\" : \" width=\\\"\" + a + \"px\\\" height=\\\"\" + a + \"px\\\"\", u += \" viewBox=\\\"0 0 \" + a + \" \" + a + \"\\\" \", u += \" preserveAspectRatio=\\\"xMinYMin meet\\\"\", u += r.text || n.text ? \" role=\\\"img\\\" aria-labelledby=\\\"\" + j([r.id, n.id].join(\" \").trim()) + \"\\\"\" : \"\", u += \">\", u += r.text ? \"<title id=\\\"\" + j(r.id) + \"\\\">\" + j(r.text) + \"</title>\" : \"\", u += n.text ? \"<description id=\\\"\" + j(n.id) + \"\\\">\" + j(n.text) + \"</description>\" : \"\", u += \"<rect width=\\\"100%\\\" height=\\\"100%\\\" fill=\\\"white\\\" cx=\\\"0\\\" cy=\\\"0\\\"/>\", u += \"<path d=\\\"\", c = 0; c < b.getModuleCount(); c += 1) {\n for (l = c * e + t, o = 0; o < b.getModuleCount(); o += 1) {\n b.isDark(c, o) && (s = o * e + t, u += \"M\" + s + \",\" + l + d);\n }\n }\n\n return u += \"\\\" stroke=\\\"transparent\\\" fill=\\\"black\\\"/>\", u += \"</svg>\", u;\n }, b.createDataURL = function (e, t) {\n e || (e = 2), t = t === void 0 ? e * 4 : t;\n var n = b.getModuleCount() * e + t * 2,\n r = t,\n i = n - t;\n return _(n, n, function (t, n) {\n if (r <= t && t < i && r <= n && n < i) {\n var a = Math.floor((t - r) / e),\n o = Math.floor((n - r) / e);\n return +!b.isDark(o, a);\n } else return 1;\n });\n }, b.createImgTag = function (e, t, n) {\n e || (e = 2), t = t === void 0 ? e * 4 : t;\n var r = b.getModuleCount() * e + t * 2,\n i = \"\";\n return i += \"<img\", i += \" src=\\\"\", i += b.createDataURL(e, t), i += \"\\\"\", i += \" width=\\\"\", i += r, i += \"\\\"\", i += \" height=\\\"\", i += r, i += \"\\\"\", n && (i += \" alt=\\\"\", i += j(n), i += \"\\\"\"), i += \"/>\", i;\n };\n\n var j = function j(e) {\n for (var t = \"\", n = 0; n < e.length; n += 1) {\n var r = e.charAt(n);\n\n switch (r) {\n case \"<\":\n t += \"<\";\n break;\n\n case \">\":\n t += \">\";\n break;\n\n case \"&\":\n t += \"&\";\n break;\n\n case \"\\\"\":\n t += \""\";\n break;\n\n default:\n t += r;\n break;\n }\n }\n\n return t;\n },\n M = function M(e) {\n var t = 1;\n e = e === void 0 ? t * 2 : e;\n var n = b.getModuleCount() * t + e * 2,\n r = e,\n i = n - e,\n a,\n o,\n s,\n c,\n l,\n u = {\n \"██\": \"\\u2588\",\n \"█ \": \"\\u2580\",\n \" █\": \"\\u2584\",\n \" \": \" \"\n },\n d = {\n \"██\": \"\\u2580\",\n \"█ \": \"\\u2580\",\n \" █\": \" \",\n \" \": \" \"\n },\n f = \"\";\n\n for (a = 0; a < n; a += 2) {\n for (s = Math.floor((a - r) / t), c = Math.floor((a + 1 - r) / t), o = 0; o < n; o += 1) {\n l = \"\\u2588\", r <= o && o < i && r <= a && a < i && b.isDark(s, Math.floor((o - r) / t)) && (l = \" \"), r <= o && o < i && r <= a + 1 && a + 1 < i && b.isDark(c, Math.floor((o - r) / t)) ? l += \" \" : l += \"\\u2588\", f += e < 1 && a + 1 >= i ? d[l] : u[l];\n }\n\n f += \"\\n\";\n }\n\n return n % 2 && e > 0 ? f.substring(0, f.length - n - 1) + Array(n + 1).join(\"\\u2580\") : f.substring(0, f.length - 1);\n };\n\n return b.createASCII = function (e, t) {\n if (e || (e = 1), e < 2) return M(t);\n --e, t = t === void 0 ? e * 2 : t;\n var n = b.getModuleCount() * e + t * 2,\n r = t,\n i = n - t,\n a,\n o,\n s,\n c,\n l = Array(e + 1).join(\"\\u2588\\u2588\"),\n u = Array(e + 1).join(\" \"),\n d = \"\",\n f = \"\";\n\n for (a = 0; a < n; a += 1) {\n for (s = Math.floor((a - r) / e), f = \"\", o = 0; o < n; o += 1) {\n c = 1, r <= o && o < i && r <= a && a < i && b.isDark(s, Math.floor((o - r) / e)) && (c = 0), f += c ? l : u;\n }\n\n for (s = 0; s < e; s += 1) {\n d += f + \"\\n\";\n }\n }\n\n return d.substring(0, d.length - 1);\n }, b.renderTo2dContext = function (e, t) {\n t || (t = 2);\n\n for (var n = b.getModuleCount(), r = 0; r < n; r++) {\n for (var i = 0; i < n; i++) {\n e.fillStyle = b.isDark(r, i) ? \"black\" : \"white\", e.fillRect(r * t, i * t, t, t);\n }\n }\n }, b;\n };\n\n e.stringToBytesFuncs = {\n default: function _default(e) {\n for (var t = [], n = 0; n < e.length; n += 1) {\n var r = e.charCodeAt(n);\n t.push(r & 255);\n }\n\n return t;\n }\n }, e.stringToBytes = e.stringToBytesFuncs.default, e.createStringToBytes = function (e, t) {\n var n = function () {\n for (var n = h(e), r = function r() {\n var e = n.read();\n if (e == -1) throw \"eof\";\n return e;\n }, i = 0, a = {};;) {\n var o = n.read();\n if (o == -1) break;\n var s = r(),\n c = r(),\n l = r(),\n u = String.fromCharCode(o << 8 | s);\n a[u] = c << 8 | l, i += 1;\n }\n\n if (i != t) throw i + \" != \" + t;\n return a;\n }(),\n r = 63;\n\n return function (e) {\n for (var t = [], i = 0; i < e.length; i += 1) {\n var a = e.charCodeAt(i);\n if (a < 128) t.push(a);else {\n var o = n[e.charAt(i)];\n typeof o == \"number\" ? (o & 255) == o ? t.push(o) : (t.push(o >>> 8), t.push(o & 255)) : t.push(r);\n }\n }\n\n return t;\n };\n };\n\n var t = {\n MODE_NUMBER: 1,\n MODE_ALPHA_NUM: 2,\n MODE_8BIT_BYTE: 4,\n MODE_KANJI: 8\n },\n n = {\n L: 1,\n M: 0,\n Q: 3,\n H: 2\n },\n r = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n },\n i = function () {\n var e = [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],\n n = 1335,\n i = 7973,\n s = 21522,\n c = {},\n l = function l(e) {\n for (var t = 0; e != 0;) {\n t += 1, e >>>= 1;\n }\n\n return t;\n };\n\n return c.getBCHTypeInfo = function (e) {\n for (var t = e << 10; l(t) - l(n) >= 0;) {\n t ^= n << l(t) - l(n);\n }\n\n return (e << 10 | t) ^ s;\n }, c.getBCHTypeNumber = function (e) {\n for (var t = e << 12; l(t) - l(i) >= 0;) {\n t ^= i << l(t) - l(i);\n }\n\n return e << 12 | t;\n }, c.getPatternPosition = function (t) {\n return e[t - 1];\n }, c.getMaskFunction = function (e) {\n switch (e) {\n case r.PATTERN000:\n return function (e, t) {\n return (e + t) % 2 == 0;\n };\n\n case r.PATTERN001:\n return function (e, t) {\n return e % 2 == 0;\n };\n\n case r.PATTERN010:\n return function (e, t) {\n return t % 3 == 0;\n };\n\n case r.PATTERN011:\n return function (e, t) {\n return (e + t) % 3 == 0;\n };\n\n case r.PATTERN100:\n return function (e, t) {\n return (Math.floor(e / 2) + Math.floor(t / 3)) % 2 == 0;\n };\n\n case r.PATTERN101:\n return function (e, t) {\n return e * t % 2 + e * t % 3 == 0;\n };\n\n case r.PATTERN110:\n return function (e, t) {\n return (e * t % 2 + e * t % 3) % 2 == 0;\n };\n\n case r.PATTERN111:\n return function (e, t) {\n return (e * t % 3 + (e + t) % 2) % 2 == 0;\n };\n\n default:\n throw \"bad maskPattern:\" + e;\n }\n }, c.getErrorCorrectPolynomial = function (e) {\n for (var t = o([1], 0), n = 0; n < e; n += 1) {\n t = t.multiply(o([1, a.gexp(n)], 0));\n }\n\n return t;\n }, c.getLengthInBits = function (e, n) {\n if (1 <= n && n < 10) switch (e) {\n case t.MODE_NUMBER:\n return 10;\n\n case t.MODE_ALPHA_NUM:\n return 9;\n\n case t.MODE_8BIT_BYTE:\n return 8;\n\n case t.MODE_KANJI:\n return 8;\n\n default:\n throw \"mode:\" + e;\n } else if (n < 27) switch (e) {\n case t.MODE_NUMBER:\n return 12;\n\n case t.MODE_ALPHA_NUM:\n return 11;\n\n case t.MODE_8BIT_BYTE:\n return 16;\n\n case t.MODE_KANJI:\n return 10;\n\n default:\n throw \"mode:\" + e;\n } else if (n < 41) switch (e) {\n case t.MODE_NUMBER:\n return 14;\n\n case t.MODE_ALPHA_NUM:\n return 13;\n\n case t.MODE_8BIT_BYTE:\n return 16;\n\n case t.MODE_KANJI:\n return 12;\n\n default:\n throw \"mode:\" + e;\n } else throw \"type:\" + n;\n }, c.getLostPoint = function (e) {\n for (var t = e.getModuleCount(), n = 0, r = 0; r < t; r += 1) {\n for (var i = 0; i < t; i += 1) {\n for (var a = 0, o = e.isDark(r, i), s = -1; s <= 1; s += 1) {\n if (!(r + s < 0 || t <= r + s)) for (var c = -1; c <= 1; c += 1) {\n i + c < 0 || t <= i + c || s == 0 && c == 0 || o == e.isDark(r + s, i + c) && (a += 1);\n }\n }\n\n a > 5 && (n += 3 + a - 5);\n }\n }\n\n for (var r = 0; r < t - 1; r += 1) {\n for (var i = 0; i < t - 1; i += 1) {\n var l = 0;\n e.isDark(r, i) && (l += 1), e.isDark(r + 1, i) && (l += 1), e.isDark(r, i + 1) && (l += 1), e.isDark(r + 1, i + 1) && (l += 1), (l == 0 || l == 4) && (n += 3);\n }\n }\n\n for (var r = 0; r < t; r += 1) {\n for (var i = 0; i < t - 6; i += 1) {\n e.isDark(r, i) && !e.isDark(r, i + 1) && e.isDark(r, i + 2) && e.isDark(r, i + 3) && e.isDark(r, i + 4) && !e.isDark(r, i + 5) && e.isDark(r, i + 6) && (n += 40);\n }\n }\n\n for (var i = 0; i < t; i += 1) {\n for (var r = 0; r < t - 6; r += 1) {\n e.isDark(r, i) && !e.isDark(r + 1, i) && e.isDark(r + 2, i) && e.isDark(r + 3, i) && e.isDark(r + 4, i) && !e.isDark(r + 5, i) && e.isDark(r + 6, i) && (n += 40);\n }\n }\n\n for (var u = 0, i = 0; i < t; i += 1) {\n for (var r = 0; r < t; r += 1) {\n e.isDark(r, i) && (u += 1);\n }\n }\n\n var d = Math.abs(100 * u / t / t - 50) / 5;\n return n += d * 10, n;\n }, c;\n }(),\n a = function () {\n for (var e = Array(256), t = Array(256), n = 0; n < 8; n += 1) {\n e[n] = 1 << n;\n }\n\n for (var n = 8; n < 256; n += 1) {\n e[n] = e[n - 4] ^ e[n - 5] ^ e[n - 6] ^ e[n - 8];\n }\n\n for (var n = 0; n < 255; n += 1) {\n t[e[n]] = n;\n }\n\n var r = {};\n return r.glog = function (e) {\n if (e < 1) throw \"glog(\" + e + \")\";\n return t[e];\n }, r.gexp = function (t) {\n for (; t < 0;) {\n t += 255;\n }\n\n for (; t >= 256;) {\n t -= 255;\n }\n\n return e[t];\n }, r;\n }();\n\n function o(e, t) {\n if (e.length === void 0) throw e.length + \"/\" + t;\n\n var n = function () {\n for (var n = 0; n < e.length && e[n] == 0;) {\n n += 1;\n }\n\n for (var r = Array(e.length - n + t), i = 0; i < e.length - n; i += 1) {\n r[i] = e[i + n];\n }\n\n return r;\n }(),\n r = {};\n\n return r.getAt = function (e) {\n return n[e];\n }, r.getLength = function () {\n return n.length;\n }, r.multiply = function (e) {\n for (var t = Array(r.getLength() + e.getLength() - 1), n = 0; n < r.getLength(); n += 1) {\n for (var i = 0; i < e.getLength(); i += 1) {\n t[n + i] ^= a.gexp(a.glog(r.getAt(n)) + a.glog(e.getAt(i)));\n }\n }\n\n return o(t, 0);\n }, r.mod = function (e) {\n if (r.getLength() - e.getLength() < 0) return r;\n\n for (var t = a.glog(r.getAt(0)) - a.glog(e.getAt(0)), n = Array(r.getLength()), i = 0; i < r.getLength(); i += 1) {\n n[i] = r.getAt(i);\n }\n\n for (var i = 0; i < e.getLength(); i += 1) {\n n[i] ^= a.gexp(a.glog(e.getAt(i)) + t);\n }\n\n return o(n, 0).mod(e);\n }, r;\n }\n\n var s = function () {\n var e = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12, 7, 37, 13], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]],\n t = function t(e, _t24) {\n var n = {};\n return n.totalCount = e, n.dataCount = _t24, n;\n },\n r = {},\n i = function i(t, r) {\n switch (r) {\n case n.L:\n return e[(t - 1) * 4 + 0];\n\n case n.M:\n return e[(t - 1) * 4 + 1];\n\n case n.Q:\n return e[(t - 1) * 4 + 2];\n\n case n.H:\n return e[(t - 1) * 4 + 3];\n\n default:\n return;\n }\n };\n\n return r.getRSBlocks = function (e, n) {\n var r = i(e, n);\n if (r === void 0) throw \"bad rs block @ typeNumber:\" + e + \"/errorCorrectionLevel:\" + n;\n\n for (var a = r.length / 3, o = [], s = 0; s < a; s += 1) {\n for (var c = r[s * 3 + 0], l = r[s * 3 + 1], u = r[s * 3 + 2], d = 0; d < c; d += 1) {\n o.push(t(l, u));\n }\n }\n\n return o;\n }, r;\n }(),\n c = function c() {\n var e = [],\n t = 0,\n n = {};\n return n.getBuffer = function () {\n return e;\n }, n.getAt = function (t) {\n return (e[Math.floor(t / 8)] >>> 7 - t % 8 & 1) == 1;\n }, n.put = function (e, t) {\n for (var r = 0; r < t; r += 1) {\n n.putBit((e >>> t - r - 1 & 1) == 1);\n }\n }, n.getLengthInBits = function () {\n return t;\n }, n.putBit = function (n) {\n var r = Math.floor(t / 8);\n e.length <= r && e.push(0), n && (e[r] |= 128 >>> t % 8), t += 1;\n }, n;\n },\n l = function l(e) {\n var n = t.MODE_NUMBER,\n r = e,\n i = {};\n i.getMode = function () {\n return n;\n }, i.getLength = function (e) {\n return r.length;\n }, i.write = function (e) {\n for (var t = r, n = 0; n + 2 < t.length;) {\n e.put(a(t.substring(n, n + 3)), 10), n += 3;\n }\n\n n < t.length && (t.length - n == 1 ? e.put(a(t.substring(n, n + 1)), 4) : t.length - n == 2 && e.put(a(t.substring(n, n + 2)), 7));\n };\n\n var a = function a(e) {\n for (var t = 0, n = 0; n < e.length; n += 1) {\n t = t * 10 + o(e.charAt(n));\n }\n\n return t;\n },\n o = function o(e) {\n if (\"0\" <= e && e <= \"9\") return e.charCodeAt(0) - 48;\n throw \"illegal char :\" + e;\n };\n\n return i;\n },\n u = function u(e) {\n var n = t.MODE_ALPHA_NUM,\n r = e,\n i = {};\n i.getMode = function () {\n return n;\n }, i.getLength = function (e) {\n return r.length;\n }, i.write = function (e) {\n for (var t = r, n = 0; n + 1 < t.length;) {\n e.put(a(t.charAt(n)) * 45 + a(t.charAt(n + 1)), 11), n += 2;\n }\n\n n < t.length && e.put(a(t.charAt(n)), 6);\n };\n\n var a = function a(e) {\n if (\"0\" <= e && e <= \"9\") return e.charCodeAt(0) - 48;\n if (\"A\" <= e && e <= \"Z\") return e.charCodeAt(0) - 65 + 10;\n\n switch (e) {\n case \" \":\n return 36;\n\n case \"$\":\n return 37;\n\n case \"%\":\n return 38;\n\n case \"*\":\n return 39;\n\n case \"+\":\n return 40;\n\n case \"-\":\n return 41;\n\n case \".\":\n return 42;\n\n case \"/\":\n return 43;\n\n case \":\":\n return 44;\n\n default:\n throw \"illegal char :\" + e;\n }\n };\n\n return i;\n },\n d = function d(n) {\n var r = t.MODE_8BIT_BYTE,\n i = e.stringToBytes(n),\n a = {};\n return a.getMode = function () {\n return r;\n }, a.getLength = function (e) {\n return i.length;\n }, a.write = function (e) {\n for (var t = 0; t < i.length; t += 1) {\n e.put(i[t], 8);\n }\n }, a;\n },\n f = function f(n) {\n var r = t.MODE_KANJI,\n i = e.stringToBytesFuncs.SJIS;\n if (!i) throw \"sjis not supported.\";\n\n (function (e, t) {\n var n = i(e);\n if (n.length != 2 || (n[0] << 8 | n[1]) != t) throw \"sjis not supported.\";\n })(\"\\u53CB\", 38726);\n\n var a = i(n),\n o = {};\n return o.getMode = function () {\n return r;\n }, o.getLength = function (e) {\n return ~~(a.length / 2);\n }, o.write = function (e) {\n for (var t = a, n = 0; n + 1 < t.length;) {\n var r = (255 & t[n]) << 8 | 255 & t[n + 1];\n if (33088 <= r && r <= 40956) r -= 33088;else if (57408 <= r && r <= 60351) r -= 49472;else throw \"illegal char at \" + (n + 1) + \"/\" + r;\n r = (r >>> 8 & 255) * 192 + (r & 255), e.put(r, 13), n += 2;\n }\n\n if (n < t.length) throw \"illegal char at \" + (n + 1);\n }, o;\n },\n p = function p() {\n var e = [],\n t = {};\n return t.writeByte = function (t) {\n e.push(t & 255);\n }, t.writeShort = function (e) {\n t.writeByte(e), t.writeByte(e >>> 8);\n }, t.writeBytes = function (e, n, r) {\n n || (n = 0), r || (r = e.length);\n\n for (var i = 0; i < r; i += 1) {\n t.writeByte(e[i + n]);\n }\n }, t.writeString = function (e) {\n for (var n = 0; n < e.length; n += 1) {\n t.writeByte(e.charCodeAt(n));\n }\n }, t.toByteArray = function () {\n return e;\n }, t.toString = function () {\n var t = \"\";\n t += \"[\";\n\n for (var n = 0; n < e.length; n += 1) {\n n > 0 && (t += \",\"), t += e[n];\n }\n\n return t += \"]\", t;\n }, t;\n },\n m = function m() {\n var e = 0,\n t = 0,\n n = 0,\n r = \"\",\n i = {},\n a = function a(e) {\n r += String.fromCharCode(o(e & 63));\n },\n o = function o(e) {\n if (!(e < 0)) {\n if (e < 26) return 65 + e;\n if (e < 52) return 97 + (e - 26);\n if (e < 62) return 48 + (e - 52);\n if (e == 62) return 43;\n if (e == 63) return 47;\n }\n\n throw \"n:\" + e;\n };\n\n return i.writeByte = function (r) {\n for (e = e << 8 | r & 255, t += 8, n += 1; t >= 6;) {\n a(e >>> t - 6), t -= 6;\n }\n }, i.flush = function () {\n if (t > 0 && (a(e << 6 - t), e = 0, t = 0), n % 3 != 0) for (var i = 3 - n % 3, o = 0; o < i; o += 1) {\n r += \"=\";\n }\n }, i.toString = function () {\n return r;\n }, i;\n },\n h = function h(e) {\n var t = e,\n n = 0,\n r = 0,\n i = 0,\n a = {};\n\n a.read = function () {\n for (; i < 8;) {\n if (n >= t.length) {\n if (i == 0) return -1;\n throw \"unexpected end of file./\" + i;\n }\n\n var e = t.charAt(n);\n if (n += 1, e == \"=\") return i = 0, -1;\n e.match(/^\\s$/) || (r = r << 6 | o(e.charCodeAt(0)), i += 6);\n }\n\n var a = r >>> i - 8 & 255;\n return i -= 8, a;\n };\n\n var o = function o(e) {\n if (65 <= e && e <= 90) return e - 65;\n if (97 <= e && e <= 122) return e - 97 + 26;\n if (48 <= e && e <= 57) return e - 48 + 52;\n if (e == 43) return 62;\n if (e == 47) return 63;\n throw \"c:\" + e;\n };\n\n return a;\n },\n g = function g(e, t) {\n var n = e,\n r = t,\n i = Array(e * t),\n a = {};\n a.setPixel = function (e, t, r) {\n i[t * n + e] = r;\n }, a.write = function (e) {\n e.writeString(\"GIF87a\"), e.writeShort(n), e.writeShort(r), e.writeByte(128), e.writeByte(0), e.writeByte(0), e.writeByte(0), e.writeByte(0), e.writeByte(0), e.writeByte(255), e.writeByte(255), e.writeByte(255), e.writeString(\",\"), e.writeShort(0), e.writeShort(0), e.writeShort(n), e.writeShort(r), e.writeByte(0);\n var t = 2,\n i = s(t);\n e.writeByte(t);\n\n for (var a = 0; i.length - a > 255;) {\n e.writeByte(255), e.writeBytes(i, a, 255), a += 255;\n }\n\n e.writeByte(i.length - a), e.writeBytes(i, a, i.length - a), e.writeByte(0), e.writeString(\";\");\n };\n\n var o = function o(e) {\n var t = e,\n n = 0,\n r = 0,\n i = {};\n return i.write = function (e, i) {\n if (e >>> i) throw \"length over\";\n\n for (; n + i >= 8;) {\n t.writeByte(255 & (e << n | r)), i -= 8 - n, e >>>= 8 - n, r = 0, n = 0;\n }\n\n r = e << n | r, n += i;\n }, i.flush = function () {\n n > 0 && t.writeByte(r);\n }, i;\n },\n s = function s(e) {\n for (var t = 1 << e, n = (1 << e) + 1, r = e + 1, a = c(), s = 0; s < t; s += 1) {\n a.add(String.fromCharCode(s));\n }\n\n a.add(String.fromCharCode(t)), a.add(String.fromCharCode(n));\n var l = p(),\n u = o(l);\n u.write(t, r);\n var d = 0,\n f = String.fromCharCode(i[d]);\n\n for (d += 1; d < i.length;) {\n var m = String.fromCharCode(i[d]);\n d += 1, a.contains(f + m) ? f += m : (u.write(a.indexOf(f), r), a.size() < 4095 && (a.size() == 1 << r && (r += 1), a.add(f + m)), f = m);\n }\n\n return u.write(a.indexOf(f), r), u.write(n, r), u.flush(), l.toByteArray();\n },\n c = function c() {\n var e = {},\n t = 0,\n n = {};\n return n.add = function (r) {\n if (n.contains(r)) throw \"dup key:\" + r;\n e[r] = t, t += 1;\n }, n.size = function () {\n return t;\n }, n.indexOf = function (t) {\n return e[t];\n }, n.contains = function (t) {\n return e[t] !== void 0;\n }, n;\n };\n\n return a;\n },\n _ = function _(e, t, n) {\n for (var r = g(e, t), i = 0; i < t; i += 1) {\n for (var a = 0; a < e; a += 1) {\n r.setPixel(a, i, n(a, i));\n }\n }\n\n var o = p();\n r.write(o);\n\n for (var s = m(), c = o.toByteArray(), l = 0; l < c.length; l += 1) {\n s.writeByte(c[l]);\n }\n\n return s.flush(), \"data:image/gif;base64,\" + s;\n };\n\n return e;\n }();\n\n (function () {\n n.stringToBytesFuncs[\"UTF-8\"] = function (e) {\n function t(e) {\n for (var t = [], n = 0; n < e.length; n++) {\n var r = e.charCodeAt(n);\n r < 128 ? t.push(r) : r < 2048 ? t.push(192 | r >> 6, 128 | r & 63) : r < 55296 || r >= 57344 ? t.push(224 | r >> 12, 128 | r >> 6 & 63, 128 | r & 63) : (n++, r = 65536 + ((r & 1023) << 10 | e.charCodeAt(n) & 1023), t.push(240 | r >> 18, 128 | r >> 12 & 63, 128 | r >> 6 & 63, 128 | r & 63));\n }\n\n return t;\n }\n\n return t(e);\n };\n })(), function (n) {\n true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n }(function () {\n return n;\n }), (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal._qrcode = n);\n }),\n x = s(function (e, t) {\n function n() {\n if (true) try {\n return b();\n } catch (_unused23) {\n return null;\n }\n return (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal._qrcode : null;\n }\n\n function r(e, t) {\n for (var n = 4, r = e + n * 2, i = \"\", a = 0; a < e; a++) {\n for (var o = 0; o < e; o++) {\n t(a, o) && (i += \"M\" + (o + n) + \" \" + (a + n) + \"h1v1h-1z\");\n }\n }\n\n return \"<svg viewBox=\\\"0 0 \" + r + \" \" + r + \"\\\" width=\\\"100%\\\" preserveAspectRatio=\\\"xMidYMid meet\\\" role=\\\"img\\\" class=\\\"tokui-qrcode__svg\\\" shape-rendering=\\\"crispEdges\\\"><rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"\" + r + \"\\\" height=\\\"\" + r + \"\\\" fill=\\\"#ffffff\\\"/><path d=\\\"\" + i + \"\\\" fill=\\\"currentColor\\\"/></svg>\";\n }\n\n function i(e) {\n var t = ( true ? h() : undefined).el;\n e.register(\"qrcode\", function (e) {\n var i = e.attrs.tx || e.content || \"\",\n a = e.attrs.l || e.attrs.tt || \"\",\n o = String(e.attrs.s || e.attrs.size || \"md\").toLowerCase(),\n s = {\n small: \"sm\",\n medium: \"md\",\n large: \"lg\"\n }[o] || o,\n c = String(e.attrs.ec || \"M\").toUpperCase(),\n l = [\"L\", \"M\", \"Q\", \"H\"].indexOf(c) >= 0 ? c : \"M\",\n u = t(\"div\", {\n class: \"tokui-qrcode tokui-qrcode--\" + s\n }),\n d = n();\n if (!d || !i) u.appendChild(t(\"div\", {\n class: \"tokui-qrcode__empty\"\n }, i ? \"\\u4E8C\\u7EF4\\u7801\\u5F15\\u64CE\\u672A\\u5C31\\u7EEA\" : \"\\u2014\"));else try {\n d.stringToBytesFuncs && d.stringToBytesFuncs[\"UTF-8\"] && (d.stringToBytes = d.stringToBytesFuncs[\"UTF-8\"]);\n var f = d(0, l);\n f.addData(i), f.make();\n var p = f.getModuleCount(),\n m = t(\"div\", {\n class: \"tokui-qrcode__box\"\n });\n m.innerHTML = r(p, function (e, t) {\n return f.isDark(e, t);\n }), u.appendChild(m);\n } catch (_unused24) {\n u.appendChild(t(\"div\", {\n class: \"tokui-qrcode__empty\"\n }, \"\\u6570\\u636E\\u8FC7\\u957F\"));\n }\n return a && u.appendChild(t(\"div\", {\n class: \"tokui-qrcode__label\"\n }, a)), u;\n });\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerQrcode = i), t !== void 0 && t.exports && (t.exports = {\n registerQrcode: i\n });\n }),\n S = s(function (e, t) {\n var n = true ? u().t : undefined;\n\n function r(e) {\n if (!e) return null;\n var t = {\n primary: \"var(--tokui-primary)\",\n success: \"var(--tokui-success)\",\n warning: \"var(--tokui-warning)\",\n danger: \"var(--tokui-danger)\",\n info: \"var(--tokui-primary)\",\n dark: \"var(--tokui-dark)\",\n light: \"var(--tokui-light)\"\n };\n return t[e] ? t[e] : /^[0-9a-fA-F]{6}$/.test(e) ? \"#\" + e : null;\n }\n\n var i = {\n js: {\n keywords: /\\b(abstract|arguments|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|finally|for|from|function|if|implements|import|in|instanceof|interface|let|new|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/g,\n types: /\\b(Array|Boolean|Date|Error|Function|Infinity|JSON|Map|Math|NaN|Number|Object|Promise|RegExp|Set|String|Symbol|WeakMap|WeakSet|console|document|window|undefined|null|true|false|parseInt|parseFloat|isNaN|isFinite|require|module|exports|process|Buffer)\\b/g\n },\n javascript: null,\n jsx: null,\n ts: {\n keywords: /\\b(abstract|any|as|async|await|bigint|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|if|implements|import|in|instanceof|interface|keyof|let|module|namespace|new|never|null|number|object|of|package|private|protected|public|readonly|require|return|set|static|string|super|switch|symbol|this|throw|try|type|typeof|undefined|unique|unknown|var|void|while|with|yield)\\b/g,\n types: /\\b(Array|Boolean|Date|Error|Function|Map|Number|Object|Promise|Record|RegExp|Set|String|Symbol|console|Partial|Required|Readonly|Pick|Omit|ReturnType|InstanceType)\\b/g\n },\n typescript: null,\n tsx: null,\n python: {\n keywords: /\\b(and|as|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|raise|return|try|while|with|yield)\\b/g,\n types: /\\b(True|False|None|int|float|str|list|dict|tuple|set|bool|bytes|range|len|print|input|type|isinstance|self|super|map|filter|zip|enumerate|sorted|reversed|any|all|min|max|sum|abs|round|open|iter|next|id|hash|callable|hasattr|getattr|setattr|delattr|property|staticmethod|classmethod)\\b/g\n },\n py: null,\n html: {\n keywords: /\\b(html|head|body|div|span|p|a|img|ul|ol|li|h1|h2|h3|h4|h5|h6|table|tr|td|th|thead|tbody|form|input|button|select|option|textarea|label|section|article|header|footer|nav|main|aside|details|summary|video|audio|source|canvas|svg|iframe|link|meta|script|style|title|br|hr|pre|code|blockquote)\\b/g,\n types: /\\b(class|id|style|href|src|alt|type|name|value|placeholder|action|method|target|rel|width|height|disabled|required|checked|selected|readonly|hidden)\\b/g\n },\n css: {\n keywords: /\\b(align-items|align-self|animation|background|background-color|background-image|border|border-color|border-radius|border-style|border-width|bottom|box-shadow|box-sizing|color|content|cursor|display|filter|flex|flex-direction|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-weight|gap|grid|height|justify-content|left|letter-spacing|line-height|margin|max-height|max-width|min-height|min-width|opacity|order|outline|overflow|padding|position|resize|right|text-align|text-decoration|text-overflow|text-transform|top|transform|transition|user-select|vertical-align|visibility|white-space|width|word-break|z-index)\\b/g,\n types: /\\b(inherit|initial|auto|none|block|inline|inline-block|flex|grid|absolute|relative|fixed|sticky|center|left|right|top|bottom|baseline|stretch|column|row|wrap|nowrap|visible|hidden|scroll|solid|dashed|dotted|transparent|bold|normal|italic|uppercase|lowercase|underline|pointer|default|cover|contain|ease|linear|important|var|calc|rgb|rgba|hsl)\\b/g\n },\n json: {\n keywords: /\\b(true|false|null)\\b/g,\n types: /\\b[A-Za-z_]\\w*(?=\\s*:)/g\n },\n sql: {\n keywords: /\\b(SELECT|FROM|WHERE|INSERT|INTO|VALUES|UPDATE|SET|DELETE|CREATE|TABLE|ALTER|DROP|INDEX|VIEW|JOIN|INNER|LEFT|RIGHT|OUTER|ON|AND|OR|NOT|IN|BETWEEN|LIKE|IS|NULL|AS|ORDER|BY|GROUP|HAVING|LIMIT|UNION|ALL|EXISTS|DISTINCT|COUNT|SUM|AVG|MIN|MAX|CASE|WHEN|THEN|ELSE|END|PRIMARY|KEY|FOREIGN|REFERENCES|DEFAULT|CHECK|UNIQUE|IF|DESC|ASC)\\b/gi,\n types: /\\b(INT|INTEGER|BIGINT|FLOAT|DOUBLE|DECIMAL|VARCHAR|CHAR|TEXT|BLOB|DATE|DATETIME|TIMESTAMP|BOOLEAN|ENUM|JSON|SERIAL)\\b/gi\n },\n java: {\n keywords: /\\b(abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while|yield|record|sealed|var)\\b/g,\n types: /\\b(String|Integer|Long|Double|Float|Boolean|Object|Class|Thread|Exception|Error|List|Map|Set|Queue|ArrayList|HashMap|HashSet|TreeMap|TreeSet|Arrays|Collections|Stream|Optional|System|Math|null|true|false)\\b/g\n },\n go: {\n keywords: /\\b(break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go|goto|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/g,\n types: /\\b(bool|byte|error|float32|float64|int|int8|int16|int32|int64|rune|string|uint|uint8|uint16|uint32|uint64|uintptr|true|false|nil|iota|append|cap|close|copy|delete|len|make|new|panic|print|println|recover|fmt|err)\\b/g\n },\n rust: {\n keywords: /\\b(as|async|await|break|const|continue|crate|dyn|else|enum|extern|fn|for|if|impl|in|let|loop|match|mod|move|mut|pub|ref|return|self|Self|static|struct|super|trait|type|unsafe|use|where|while|yield)\\b/g,\n types: /\\b(i8|i16|i32|i64|i128|isize|u8|u16|u32|u64|u128|usize|f32|f64|bool|char|str|String|Vec|Box|Option|Result|Some|None|Ok|Err|true|false|println|format|panic|assert)\\b/g\n },\n bash: {\n keywords: /\\b(if|then|else|elif|fi|case|esac|for|while|until|do|done|in|function|select|return|exit|break|continue|declare|export|local|readonly|unset|source|set|shift|eval|echo|printf|test|true|false|cd|pwd|ls|mkdir|cp|mv|rm|cat|head|tail|grep|sed|awk|find|sort|uniq|wc|cut|xargs|chmod|touch|df|du|ps|kill|nohup|ssh|curl|wget|npm|pip|git|docker)\\b/g,\n types: null\n },\n sh: null,\n shell: null,\n zsh: null\n };\n Object.keys(i).forEach(function (e) {\n if (i[e] === null) {\n var t = {\n javascript: \"js\",\n jsx: \"js\",\n tsx: \"ts\",\n typescript: \"ts\",\n py: \"python\",\n sh: \"bash\",\n shell: \"bash\",\n zsh: \"bash\"\n }[e];\n t && i[t] && (i[e] = i[t]);\n }\n });\n\n function a(e, t) {\n if (!e) return \"\";\n var n = String(e),\n r = i[t];\n if (!r) return n.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n var a = [],\n o = \"\\0PH_\",\n s = \"\\0\",\n c = /\\x00PH_(\\d+)\\x00/g;\n\n function l() {\n return o + String(a.length).padStart(5, \"0\") + s;\n }\n\n function u(e, t) {\n var n = l(),\n r = e.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n return a.push(\"<span class=\\\"tok-\" + t + \"\\\">\" + r + \"</span>\"), n;\n }\n\n function d(e, t) {\n var n = l();\n return a.push(\"<span class=\\\"tok-\" + t + \"\\\">\" + e + \"</span>\"), n;\n }\n\n t === \"json\" && (n = n.replace(/([\"'])(?:(?!\\1|\\\\).|\\\\.)*\\1(?=\\s*:)/g, function (e) {\n return u(e, \"type\");\n })), n = n.replace(/([\"'])(?:(?!\\1|\\\\).|\\\\.)*\\1/g, function (e) {\n return u(e, \"str\");\n }), n = n.replace(/`(?:[^`\\\\]|\\\\.)*`/g, function (e) {\n return u(e, \"str\");\n }), n = n.replace(/\\/\\/.*$/gm, function (e) {\n return u(e, \"cmt\");\n }), t === \"sql\" && (n = n.replace(/--.*$/gm, function (e) {\n return u(e, \"cmt\");\n })), t !== \"css\" && t !== \"html\" && (n = n.replace(/#.*$/gm, function (e) {\n return u(e, \"cmt\");\n })), n = n.replace(/\\/\\*[\\s\\S]*?\\*\\//g, function (e) {\n return e.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").split(\"\\n\").map(function (e) {\n var t = l();\n return a.push(\"<span class=\\\"tok-cmt\\\">\" + e + \"</span>\"), t;\n }).join(\"\\n\");\n });\n var f = n.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n return f = f.replace(/\\b(\\d+\\.?\\d*(?:e[+-]?\\d+)?)\\b/gi, function (e) {\n return d(e, \"num\");\n }), r.keywords && (f = f.replace(r.keywords, function (e) {\n return d(e, \"kw\");\n })), r.types && (f = f.replace(r.types, function (e) {\n return d(e, \"type\");\n })), f = f.replace(/\\b([a-zA-Z_]\\w*)\\s*(?=\\()/g, function (e) {\n return d(e, \"fn\");\n }), f = f.replace(/(&&|\\|\\||===|!==|=>|\\.\\.\\.|\\+\\+|--|[+\\-*/%=!|^~?:]+)/g, function (e) {\n return d(e, \"op\");\n }), f = f.replace(c, function (e, t) {\n return a[parseInt(t)];\n }), f;\n }\n\n function o(e) {\n var _ref3 = true ? h() : undefined,\n t = _ref3.el;\n\n [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(function (n) {\n e.register(n, function (e) {\n var i = t(n, {\n class: \"tokui-\".concat(n)\n }, e.content || e.attrs && e.attrs.tx),\n a = r(e.attrs.bg),\n o = r(e.attrs.fc),\n s = e.attrs.v || \"\";\n return a && (s.includes(\"underline\") ? i.style.setProperty(\"--tokui-title-bg\", a) : i.style.background = a), o && (i.style.color = o), i;\n });\n }), e.register(\"p\", function (e, n) {\n var r = {\n class: \"tokui-p\"\n };\n e.attrs && e.attrs.id && (r.id = e.attrs.id);\n var i = t(\"p\", r),\n a = e.content || e.attrs && e.attrs.tx;\n return a && i.appendChild(document.createTextNode(a)), e.children && e.children.length && n(e.children).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), i;\n }), e.register(\"a\", function (e) {\n var n = e.attrs.dis !== void 0,\n r = e.attrs.u || \"#\";\n /^(https?:\\/\\/|mailto:|\\/|#|tel:)/i.test(r) || (r = \"#\");\n var i = {\n class: \"tokui-link\" + (n ? \" tokui-a--disabled\" : \"\"),\n href: n ? \"javascript:void(0)\" : r,\n target: e.attrs.target || \"_blank\",\n rel: \"noopener noreferrer\"\n };\n e.attrs.tt && (i.title = e.attrs.tt), n && (i.tabindex = \"-1\", i[\"aria-disabled\"] = \"true\");\n var a = t(\"a\", i);\n return a.textContent = e.attrs.tx || e.content || \"\", a;\n }), e.register(\"img\", function (e) {\n var n = {\n class: \"tokui-img\"\n };\n e.attrs.s && (n.src = e.attrs.s), n.alt = e.attrs.alt || \"\", e.attrs.w && (n.width = e.attrs.w), e.attrs.h && (n.height = e.attrs.h), e.attrs.tt && (n.title = e.attrs.tt);\n var r = t(\"img\", n);\n return r.style.cursor = \"pointer\", r.addEventListener(\"click\", function () {\n var _ref4 = true ? g() : undefined,\n e = _ref4.getLightbox;\n\n e((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" ? document : void 0).open(n.src);\n }), r;\n }), e.register(\"hr\", function () {\n return t(\"hr\", {\n class: \"tokui-hr\"\n });\n });\n var o = {\n b: \"strong\",\n strong: \"strong\",\n em: \"em\",\n i_text: \"em\",\n mark: \"mark\",\n del: \"del\",\n sub: \"sub\",\n sup: \"sup\"\n };\n Object.keys(o).forEach(function (n) {\n n !== \"i_text\" && e.register(n, function (e, r) {\n var i = o[n],\n a = t(i, {\n class: \"tokui-\" + n\n }),\n s = e.content || e.attrs && e.attrs.tx || \"\";\n return s && (a.textContent = s), e.children && e.children.length && typeof r == \"function\" && r(e.children).forEach(function (e) {\n e && e.nodeType && a.appendChild(e);\n }), a;\n });\n }), e.register(\"tag\", function (e) {\n var n = e.attrs || {},\n i = n.tx || e.content || \"\",\n a = [\"tokui-tag\"],\n o = n.t || \"\";\n o && o !== \"default\" && a.push(\"tokui-tag--\" + o);\n var s = n.s || \"\";\n s && s !== \"medium\" && a.push(\"tokui-tag--\" + s), n.round !== void 0 && a.push(\"tokui-tag--round\"), n.bordered !== void 0 && a.push(\"tokui-tag--bordered\"), n.dis !== void 0 && a.push(\"tokui-tag--disabled\");\n var c = t(\"span\", {\n class: a.join(\" \")\n }),\n l = r(n.bg),\n u = r(n.fc);\n l && (c.style.background = l), u && (c.style.color = u);\n var d = t(\"span\", {\n class: \"tokui-tag__content\"\n });\n\n if (d.textContent = i, c.appendChild(d), n.closable !== void 0) {\n a.push(\"tokui-tag--closable\"), c.className = a.join(\" \");\n\n var _e40 = t(\"span\", {\n class: \"tokui-tag__close\"\n });\n\n _e40.textContent = \"\\xD7\", _e40.addEventListener(\"click\", function () {\n c.style.display = \"none\";\n }), c.appendChild(_e40);\n }\n\n return c._update = function (e) {\n if (e.tx !== void 0) {\n var t = c.querySelector(\".tokui-tag__content\");\n t && (t.textContent = e.tx);\n }\n\n e.act === \"close\" && (c.style.transition = \"opacity 0.25s, transform 0.25s\", c.style.opacity = \"0\", c.style.transform = \"scale(0.8)\", setTimeout(function () {\n c.style.display = \"none\";\n }, 260));\n }, c;\n }), e.register(\"toggle\", function (e) {\n var n = e.attrs || {},\n r = n.tx || e.content || \"\",\n i = n.chk === !0,\n a = n.s || \"\",\n o = n.dis !== void 0,\n s = [\"tokui-toggle\"];\n i && s.push(\"tokui-toggle--pressed\"), a === \"sm\" ? s.push(\"tokui-toggle--sm\") : a === \"lg\" && s.push(\"tokui-toggle--lg\"), o && s.push(\"tokui-toggle--disabled\");\n var c = {\n class: s.join(\" \"),\n type: \"button\",\n role: \"switch\",\n \"aria-pressed\": String(i)\n };\n o && (c[\"aria-disabled\"] = \"true\"), n.clk && (c[\"data-tokui-clk\"] = n.clk);\n var l = t(\"button\", c);\n return l.textContent = r, l.addEventListener(\"click\", function (e) {\n if (o) return;\n var t = l.closest(\".tokui-toggle-group\");\n if (t && !t.classList.contains(\"tokui-toggle-group--multi\")) return;\n var n = l.getAttribute(\"aria-pressed\") !== \"true\";\n l.setAttribute(\"aria-pressed\", String(n)), l.classList.toggle(\"tokui-toggle--pressed\", n);\n }), o && (l.disabled = !0), l._update = function (e) {\n e.chk === !0 || e.chk === \"true\" ? (l.setAttribute(\"aria-pressed\", \"true\"), l.classList.add(\"tokui-toggle--pressed\")) : (e.chk === !1 || e.chk === \"false\") && (l.setAttribute(\"aria-pressed\", \"false\"), l.classList.remove(\"tokui-toggle--pressed\")), e.dis === !0 || e.dis === \"true\" ? (l.disabled = !0, l.classList.add(\"tokui-toggle--disabled\"), l.setAttribute(\"aria-disabled\", \"true\")) : (e.dis === !1 || e.dis === \"false\") && (l.disabled = !1, l.classList.remove(\"tokui-toggle--disabled\"), l.removeAttribute(\"aria-disabled\"));\n }, l;\n }), e.register(\"toggle-group\", function (e, n) {\n var r = e.attrs || {},\n i = r.multi === !0,\n a = r.s || \"\",\n o = [\"tokui-toggle-group\"];\n i && o.push(\"tokui-toggle-group--multi\"), a === \"sm\" ? o.push(\"tokui-toggle-group--sm\") : a === \"lg\" && o.push(\"tokui-toggle-group--lg\");\n var s = {\n class: o.join(\" \"),\n role: \"group\"\n };\n r.clk && (s[\"data-tokui-clk\"] = r.clk);\n var c = t(\"div\", s);\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && c.appendChild(e);\n }), i || c.addEventListener(\"click\", function (e) {\n var t = e.target.closest(\".tokui-toggle\");\n if (!t || t.disabled || t.getAttribute(\"aria-disabled\") === \"true\") return;\n var n = t.getAttribute(\"aria-pressed\") === \"true\";\n c.querySelectorAll(\".tokui-toggle\").forEach(function (e) {\n e.setAttribute(\"aria-pressed\", \"false\"), e.classList.remove(\"tokui-toggle--pressed\");\n }), n || (t.setAttribute(\"aria-pressed\", \"true\"), t.classList.add(\"tokui-toggle--pressed\"));\n }), c._slot = c, c._tokuiType = \"toggle-group\", c;\n }), e.register(\"dv\", function (e) {\n var n = e.attrs || {},\n i = n.tx || e.content || \"\",\n a = n.vert !== void 0,\n o = a ? \"span\" : \"div\",\n s = [\"tokui-dv\"];\n if (n.v && s.push(\"tokui-dv--\" + n.v), n.size && s.push(\"tokui-dv--\" + n.size), a && s.push(\"tokui-dv--vert\"), n.plain !== void 0 && s.push(\"tokui-dv--plain\"), a) return t(o, {\n class: s.join(\" \")\n });\n\n if (i) {\n s.push(\"tokui-dv--text\");\n\n var _e41 = n.align || \"center\";\n\n _e41 !== \"center\" && s.push(\"tokui-dv--\" + _e41);\n\n var _a8 = t(o, {\n class: s.join(\" \")\n }),\n _c2 = {},\n _l5 = r(n.bg);\n\n _l5 && (_c2.borderColor = _l5), n.th && (_c2.borderWidth = n.th), Object.keys(_c2).length && (_c2.borderColor && (_a8.style.borderColor = _c2.borderColor), _c2.borderWidth && (_a8.style.borderWidth = _c2.borderWidth));\n\n var _u = t(\"span\", {\n class: \"tokui-dv-text\"\n });\n\n return _u.textContent = i, _a8.appendChild(_u), _a8;\n }\n\n var c = t(o, {\n class: s.join(\" \")\n }),\n l = {},\n u = r(n.bg);\n return u && (l.borderColor = u), n.th && (l.borderWidth = n.th), Object.keys(l).length && (l.borderColor && (c.style.borderColor = l.borderColor), l.borderWidth && (c.style.borderWidth = l.borderWidth)), c;\n }), e.register(\"progress\", function (e) {\n var n = e.attrs || {},\n r = Math.min(100, Math.max(0, parseInt(n.v) || 0)),\n i = n.l || \"\",\n a = n.t || \"line\",\n o = n.s || \"\",\n s = n.status || \"\",\n c = n.stripe !== void 0,\n l = \"\";\n s === \"success\" ? l = \" tokui-progress--success\" : s === \"error\" && (l = \" tokui-progress--error\");\n var u = \"\";\n o === \"sm\" || o === \"small\" ? u = \" tokui-progress--sm\" : (o === \"lg\" || o === \"large\") && (u = \" tokui-progress--lg\");\n var d;\n\n if (a === \"circle\") {\n var _e42 = 2 * Math.PI * 42,\n _a9 = _e42 * (1 - r / 100),\n _o6 = {\n class: \"tokui-progress tokui-progress--circle\" + l + u\n };\n\n n.id && (_o6.id = n.id);\n\n var _s4 = t(\"div\", _o6),\n _c3 = t(\"div\", {\n class: \"tokui-progress__circle-wrap\"\n });\n\n if (_c3.innerHTML = \"<svg viewBox=\\\"0 0 100 100\\\" class=\\\"tokui-progress__svg\\\"><circle class=\\\"tokui-progress__circle-bg\\\" cx=\\\"50\\\" cy=\\\"50\\\" r=\\\"42\\\" fill=\\\"none\\\" stroke-width=\\\"6\\\"/><circle class=\\\"tokui-progress__circle-bar\\\" cx=\\\"50\\\" cy=\\\"50\\\" r=\\\"42\\\" fill=\\\"none\\\" stroke-width=\\\"6\\\" stroke-dasharray=\\\"\" + _e42.toFixed(1) + \"\\\" stroke-dashoffset=\\\"\" + _a9.toFixed(1) + \"\\\" stroke-linecap=\\\"round\\\" transform=\\\"rotate(-90 50 50)\\\"/><text class=\\\"tokui-progress__circle-text\\\" x=\\\"50\\\" y=\\\"50\\\" text-anchor=\\\"middle\\\" dominant-baseline=\\\"central\\\">\" + r + \"%</text></svg>\", _s4.appendChild(_c3), i) {\n var _e43 = t(\"div\", {\n class: \"tokui-progress__label tokui-progress__label--center\"\n });\n\n _e43.textContent = i, _s4.appendChild(_e43);\n }\n\n d = _s4;\n } else if (a === \"span\") {\n var _e44 = {\n class: \"tokui-progress tokui-progress--span\" + l\n };\n n.id && (_e44.id = n.id);\n\n var _i8 = t(\"span\", _e44),\n _a10 = t(\"span\", {\n class: \"tokui-progress__mini-bar\"\n }),\n _o7 = t(\"span\", {\n class: \"tokui-progress__mini-fill\"\n });\n\n _o7.style.width = r + \"%\", _a10.appendChild(_o7), _i8.appendChild(_a10);\n\n var _s5 = t(\"span\", {\n class: \"tokui-progress__span-text\"\n });\n\n _s5.textContent = r + \"%\", _i8.appendChild(_s5), d = _i8;\n } else {\n var _e45 = {\n class: \"tokui-progress tokui-progress--line\" + l + u + (c ? \" tokui-progress--stripe\" : \"\")\n };\n n.id && (_e45.id = n.id);\n\n var _a11 = t(\"div\", _e45);\n\n if (i) {\n var _e46 = t(\"div\", {\n class: \"tokui-progress__header\"\n }),\n _n19 = t(\"span\", {\n class: \"tokui-progress__label\"\n });\n\n _n19.textContent = i, _e46.appendChild(_n19);\n\n var _o9 = t(\"span\", {\n class: \"tokui-progress__pct\"\n });\n\n _o9.textContent = r + \"%\", _e46.appendChild(_o9), _a11.appendChild(_e46);\n }\n\n var _o8 = t(\"div\", {\n class: \"tokui-progress__track\"\n }),\n _s6 = t(\"div\", {\n class: \"tokui-progress__bar\"\n });\n\n _s6.style.width = r + \"%\", _o8.appendChild(_s6), _a11.appendChild(_o8), d = _a11;\n }\n\n return d._tokuiType = \"progress\", d._progressVariant = a, d._progressCircumference = 2 * Math.PI * 42, d.setAttribute(\"role\", \"progressbar\"), d.setAttribute(\"aria-valuenow\", String(r)), d.setAttribute(\"aria-valuemin\", \"0\"), d.setAttribute(\"aria-valuemax\", \"100\"), d._update = function (e) {\n if (e.v !== void 0) {\n var t = Math.min(100, Math.max(0, parseInt(e.v) || 0));\n\n if (d.setAttribute(\"aria-valuenow\", String(t)), d._progressVariant === \"circle\") {\n var n = d._progressCircumference * (1 - t / 100),\n r = d.querySelector(\".tokui-progress__circle-bar\"),\n i = d.querySelector(\".tokui-progress__circle-text\");\n r && r.setAttribute(\"stroke-dashoffset\", n.toFixed(1)), i && (i.textContent = t + \"%\");\n } else if (d._progressVariant === \"span\") {\n var a = d.querySelector(\".tokui-progress__mini-fill\"),\n o = d.querySelector(\".tokui-progress__span-text\");\n a && (a.style.width = t + \"%\"), o && (o.textContent = t + \"%\");\n } else {\n var s = d.querySelector(\".tokui-progress__bar\"),\n c = d.querySelector(\".tokui-progress__pct\");\n s && (s.style.width = t + \"%\"), c && (c.textContent = t + \"%\");\n }\n }\n\n e.status !== void 0 && (d.classList.remove(\"tokui-progress--success\", \"tokui-progress--error\"), e.status === \"success\" ? d.classList.add(\"tokui-progress--success\") : e.status === \"error\" && d.classList.add(\"tokui-progress--error\"));\n }, d;\n }), e.register(\"upd\", function (e) {\n var t = e.attrs || {},\n n = t.id;\n\n if (n && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\") {\n for (var r = document.getElementById(n); r && typeof r._update != \"function\";) {\n r = r.parentElement;\n }\n\n r && typeof r._update == \"function\" && r._update(t);\n }\n\n return document.createTextNode(\"\");\n }), e.register(\"md\", function (e) {\n var n = t(\"div\", {\n class: \"tokui-md\"\n }),\n r = \"\";\n return r = e.children && e.children.length > 0 ? e.children.map(function (e) {\n return e.content || \"\";\n }).join(\"\") : e.content || \"\", r && (n.innerHTML = f(r), d(n)), n._streamCloseHook = function () {\n var e = \"\";\n\n for (var _i9 = 0, _Array$from = Array.from(n.childNodes); _i9 < _Array$from.length; _i9++) {\n var _t25 = _Array$from[_i9];\n _t25.nodeType === 3 && (e += _t25.textContent);\n }\n\n e && (n.innerHTML = f(e), d(n));\n }, n._tokuiType = \"md\", n;\n });\n\n function u(e) {\n return String(e).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n }\n\n function p(e) {\n return e.split(\"\\n\").map(function (e) {\n return \"<span class=\\\"code-line\\\">\" + (e || \" \") + \"</span>\";\n }).join(\"\");\n }\n\n e.register(\"code\", function (e) {\n var r = t(\"pre\", {\n class: \"tokui-code\"\n }),\n o = e.attrs.lang || \"text\",\n s = t(\"code\", {\n class: \"language-\".concat(o)\n });\n var c = \"\";\n c = e.children && e.children.length > 0 ? e.children.map(function (e) {\n return e.content || \"\";\n }).join(\"\") : e.content || \"\";\n\n function l() {\n o !== \"text\" && i[o] ? s.innerHTML = p(a(c, o)) : s.innerHTML = p(u(c));\n }\n\n l(), r.appendChild(s), r._slot = s, r._tokuiType = \"code\";\n var d = t(\"button\", {\n class: \"tokui-code__copy\",\n type: \"button\"\n });\n return d.textContent = n(\"common.copy\"), d.addEventListener(\"click\", function () {\n c && navigator.clipboard && navigator.clipboard.writeText(c), d.textContent = n(\"common.copied\"), d.classList.add(\"tokui-code__copy--done\"), setTimeout(function () {\n d.textContent = n(\"common.copy\"), d.classList.remove(\"tokui-code__copy--done\");\n }, 2e3);\n }), r.appendChild(d), r._streamAppendHook = function (e) {\n e && e.type === \"_text\" && e.content && (c += e.content, l());\n }, r._streamCloseHook = l, r;\n }), e.register(\"callout\", function (e, n) {\n var r = e.attrs || {},\n i = r.t || \"info\",\n a = r.tt || \"\",\n o = {\n info: \"\\u2139\",\n success: \"\\u2713\",\n warning: \"\\u26A0\",\n error: \"\\u2715\",\n tip: \"\\uD83D\\uDCA1\"\n },\n s = t(\"div\", {\n class: \"tokui-callout tokui-callout--\" + i,\n role: \"alert\"\n }),\n c = t(\"span\", {\n class: \"tokui-callout__icon\",\n \"aria-hidden\": \"true\"\n });\n c.textContent = o[i] || o.info, s.appendChild(c);\n var l = t(\"div\", {\n class: \"tokui-callout__body\"\n });\n\n if (a) {\n var u = t(\"div\", {\n class: \"tokui-callout__title\"\n });\n u.textContent = a, l.appendChild(u);\n }\n\n var d = t(\"div\", {\n class: \"tokui-callout__content\"\n }),\n f = e.children && e.children.length,\n p = r.tx || e.content || \"\";\n return f ? n(e.children).forEach(function (e) {\n e && e.nodeType && d.appendChild(e);\n }) : p && (d.textContent = p), l.appendChild(d), s.appendChild(l), s._slot = d, s;\n }), e.register(\"think\", function (e, r) {\n var i = e.attrs || {},\n a = i.tt || n(\"think.title\"),\n o = t(\"details\", {\n class: \"tokui-think\"\n });\n i.open !== void 0 && o.setAttribute(\"open\", \"\");\n var s = t(\"summary\", {\n class: \"tokui-think__summary\"\n }),\n c = t(\"span\", {\n class: \"tokui-think__icon\"\n });\n c.textContent = \"\\uD83D\\uDCAD\", s.appendChild(c);\n var l = t(\"span\", {\n class: \"tokui-think__title\"\n });\n l.textContent = a, s.appendChild(l), o.appendChild(s);\n var u = t(\"div\", {\n class: \"tokui-think__body\"\n });\n return e.content && (u.textContent = e.content), r(e.children || []).forEach(function (e) {\n e && e.nodeType && u.appendChild(e);\n }), o.appendChild(u), o._slot = u, o._tokuiType = \"think\", o;\n }), e.register(\"think-chain\", function (e, r) {\n var i = e.attrs || {},\n a = i.tt || n(\"thinkChain.title\"),\n o = i.status || \"\",\n s = [\"tokui-think-chain\"];\n o && s.push(\"tokui-think-chain--\" + o);\n var c = t(\"details\", {\n class: s.join(\" \")\n });\n i.open !== void 0 && c.setAttribute(\"open\", \"\");\n var l = t(\"summary\", {\n class: \"tokui-think-chain__summary\"\n }),\n u = t(\"span\", {\n class: \"tokui-think-chain__icon\"\n });\n u.textContent = \"\\uD83E\\uDDE0\", l.appendChild(u);\n var d = t(\"span\", {\n class: \"tokui-think-chain__title\"\n });\n d.textContent = a, l.appendChild(d), c.appendChild(l);\n var f = t(\"div\", {\n class: \"tokui-think-chain__steps\"\n });\n return r(e.children || []).forEach(function (e) {\n e && e.nodeType && f.appendChild(e);\n }), c.appendChild(f), c._slot = f, c._tokuiType = \"think-chain\", c;\n }), e.register(\"think-step\", function (e, n) {\n var r = e.attrs || {},\n i = r.status || \"pending\",\n a = r.tt || \"\",\n o = r.dur || \"\",\n s = t(\"div\", {\n class: [\"tokui-think-step\", \"tokui-think-step--\" + i].join(\" \")\n }),\n c = t(\"div\", {\n class: \"tokui-think-step__header\"\n });\n\n if (i === \"done\") {\n var l = t(\"span\", {\n class: \"tokui-think-step__icon\"\n });\n l.textContent = \"\\u2713\", c.appendChild(l);\n } else if (i === \"running\") {\n var u = t(\"span\", {\n class: \"tokui-think-step__spinner\"\n });\n c.appendChild(u);\n } else if (i === \"error\") {\n var d = t(\"span\", {\n class: \"tokui-think-step__icon tokui-think-step__icon--error\"\n });\n d.textContent = \"\\u2717\", c.appendChild(d);\n } else {\n var f = t(\"span\", {\n class: \"tokui-think-step__dot\"\n });\n c.appendChild(f);\n }\n\n if (a) {\n var p = t(\"span\", {\n class: \"tokui-think-step__title\"\n });\n p.textContent = a, c.appendChild(p);\n }\n\n if (o) {\n var m = t(\"span\", {\n class: \"tokui-think-step__dur\"\n });\n m.textContent = o, c.appendChild(m);\n }\n\n s.appendChild(c);\n var h = t(\"div\", {\n class: \"tokui-think-step__body\"\n });\n e.content && (h.textContent = e.content), n(e.children || []).forEach(function (e) {\n e && e.nodeType && h.appendChild(e);\n }), s.appendChild(h);\n var g = t(\"div\", {\n class: \"tokui-think-step__line\"\n });\n return s.appendChild(g), s._slot = h, s._tokuiType = \"think-step\", s;\n }), e.register(\"copy\", function (e) {\n var r = e.attrs || {},\n i = r.tx || n(\"common.copy\"),\n a = r.tt || n(\"common.copied\"),\n o = t(\"button\", {\n class: \"tokui-copy\",\n type: \"button\"\n });\n return o.textContent = i, o.addEventListener(\"click\", function () {\n var e = \"\";\n\n if (r.id && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\") {\n var t = document.getElementById(r.id);\n t && (e = t.textContent || \"\");\n }\n\n navigator.clipboard && e && navigator.clipboard.writeText(e), o.textContent = a, o.classList.add(\"tokui-copy--done\"), setTimeout(function () {\n o.textContent = i, o.classList.remove(\"tokui-copy--done\");\n }, 2e3);\n }), o;\n }), e.register(\"spin\", function (e) {\n var n = e.attrs || {},\n r = n.t || \"spinner\",\n i = n.s || \"\",\n a = n.tx || \"\",\n o = [\"tokui-spin\", \"tokui-spin--\" + r];\n i === \"sm\" || i === \"small\" ? o.push(\"tokui-spin--sm\") : (i === \"lg\" || i === \"large\") && o.push(\"tokui-spin--lg\");\n var s = t(\"div\", {\n class: o.join(\" \")\n });\n\n if (r === \"dots\") {\n var c = t(\"span\", {\n class: \"tokui-spin__dots\"\n });\n c.appendChild(t(\"span\", {\n class: \"tokui-spin__dot\"\n })), c.appendChild(t(\"span\", {\n class: \"tokui-spin__dot\"\n })), c.appendChild(t(\"span\", {\n class: \"tokui-spin__dot\"\n })), s.appendChild(c);\n } else r === \"pulse\" ? s.appendChild(t(\"span\", {\n class: \"tokui-spin__pulse\"\n })) : s.appendChild(t(\"span\", {\n class: \"tokui-spin__spinner\"\n }));\n\n if (a) {\n var l = t(\"span\", {\n class: \"tokui-spin__text\"\n });\n l.textContent = a, s.appendChild(l);\n }\n\n return s;\n }), e.register(\"thumb\", function (e) {\n var r = e.attrs || {},\n i = r.t || \"up\",\n a = r.v === \"active\",\n o = r.s || \"\",\n s = \"\";\n o === \"sm\" || o === \"small\" ? s = \" tokui-thumb--sm\" : (o === \"lg\" || o === \"large\") && (s = \" tokui-thumb--lg\");\n var c = t(\"button\", {\n class: \"tokui-thumb tokui-thumb--\" + i + (a ? \" tokui-thumb--active\" : \"\") + s,\n type: \"button\",\n \"aria-label\": n(i === \"up\" ? \"like.up\" : \"like.down\")\n }),\n l = o === \"lg\" || o === \"large\" ? 22 : o === \"sm\" || o === \"small\" ? 14 : 18,\n u = i === \"up\" ? \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"\" + l + \"\\\" height=\\\"\" + l + \"\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\\\"/></svg>\" : \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"\" + l + \"\\\" height=\\\"\" + l + \"\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\\\"/></svg>\",\n d = t(\"span\", {\n class: \"tokui-thumb__icon\"\n });\n return d.innerHTML = u, c.appendChild(d), c.addEventListener(\"click\", function () {\n if (c.classList.toggle(\"tokui-thumb--active\"), r.clk) {\n var e = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n e && typeof e.emit == \"function\" && e.emit(r.clk, {\n direction: i,\n active: c.classList.contains(\"tokui-thumb--active\")\n });\n }\n }), r.clk && c.setAttribute(\"data-tokui-clk\", r.clk), c;\n }), e.register(\"file\", function (e) {\n var r = e.attrs || {},\n i = r.n || n(\"file.unnamed\"),\n a = r.s || \"\",\n o = r.t || \"default\",\n s = r.u || \"\",\n c = r.tt || \"\",\n l = {\n pdf: {\n icon: \"PDF\",\n color: \"#f5222d\"\n },\n word: {\n icon: \"W\",\n color: \"#1677ff\"\n },\n excel: {\n icon: \"XLS\",\n color: \"#52c41a\"\n },\n ppt: {\n icon: \"PPT\",\n color: \"#fa8c16\"\n },\n image: {\n icon: \"IMG\",\n color: \"#eb2f96\"\n },\n zip: {\n icon: \"ZIP\",\n color: \"#722ed1\"\n },\n code: {\n icon: \"</>\",\n color: \"#13c2c2\"\n },\n default: {\n icon: \"FILE\",\n color: \"#8c8c8c\"\n }\n },\n u = l[o] || l.default,\n d = t(\"div\", {\n class: \"tokui-file\"\n }),\n f = t(\"div\", {\n class: \"tokui-file__icon\"\n });\n f.style.background = u.color, f.textContent = u.icon, d.appendChild(f);\n var p = t(\"div\", {\n class: \"tokui-file__info\"\n }),\n m = t(\"div\", {\n class: \"tokui-file__name\"\n });\n\n if (m.textContent = i, s && (m.style.cursor = \"pointer\", m.style.color = \"var(--tokui-primary)\", m.addEventListener(\"click\", function () {\n window.open(s, \"_blank\");\n })), p.appendChild(m), c || a) {\n var h = t(\"div\", {\n class: \"tokui-file__meta\"\n });\n h.textContent = [c, a].filter(Boolean).join(\" \\xB7 \"), p.appendChild(h);\n }\n\n if (d.appendChild(p), s) {\n var g = t(\"a\", {\n class: \"tokui-file__download\",\n href: s,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n download: \"\"\n });\n g.textContent = \"\\u2193\", d.appendChild(g);\n }\n\n return d;\n }), e.register(\"bubble\", function (e, n) {\n var r = e.attrs || {},\n i = r.role || \"ai\",\n a = r.model || \"\",\n o = r.time || \"\",\n s = t(\"div\", {\n class: \"tokui-bubble tokui-bubble--\" + i\n }),\n c = t(\"div\", {\n class: \"tokui-bubble__row\"\n }),\n l = t(\"span\", {\n class: \"tokui-bubble__avatar\"\n });\n l.textContent = i === \"user\" ? \"You\" : \"AI\", c.appendChild(l);\n var u = t(\"div\", {\n class: \"tokui-bubble__content\"\n }),\n d = t(\"div\", {\n class: \"tokui-bubble__header\"\n }),\n f = t(\"span\", {});\n\n if (f.textContent = i === \"user\" ? \"You\" : i === \"system\" ? \"System\" : \"Assistant\", d.appendChild(f), a) {\n var p = t(\"span\", {\n class: \"tokui-badge tokui-badge--info tokui-badge--pill\"\n });\n p.textContent = a, d.appendChild(p);\n }\n\n u.appendChild(d);\n var m = t(\"div\", {\n class: \"tokui-bubble__body\"\n });\n\n if (n(e.children || []).forEach(function (e) {\n e && e.nodeType && m.appendChild(e);\n }), u.appendChild(m), o) {\n var h = t(\"div\", {\n class: \"tokui-bubble__time\"\n });\n h.textContent = o, u.appendChild(h);\n }\n\n return c.appendChild(u), s.appendChild(c), m._slot = m, m._tokuiType = \"bubble\", s._slot = m, s._tokuiType = \"bubble\", s;\n }), e.register(\"toolbar\", function (e, n) {\n var r = e.attrs || {},\n i = r.pos || \"bottom\",\n a = r.align || \"right\",\n o = t(\"div\", {\n class: \"tokui-toolbar tokui-toolbar--\" + i + \" tokui-toolbar--\" + a\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && o.appendChild(e);\n }), o._slot = o, o._tokuiType = \"toolbar\", o;\n }), e.register(\"badge\", function (e) {\n var n = e.attrs || {},\n r = n.t || n.status || \"default\",\n i = n.tx || e.content || \"\",\n a = n.count || \"\",\n o = parseInt(n.overflow, 10) || 99,\n s = n.size || \"\",\n c = n.title || \"\",\n l = [\"tokui-badge\", \"tokui-badge--\" + r];\n\n if (n.pill && l.push(\"tokui-badge--pill\"), s && l.push(\"tokui-badge--\" + s), n.dot) {\n var u = t(\"span\", {\n class: \"tokui-badge tokui-badge--dot\" + (s ? \" tokui-badge--\" + s : \"\")\n });\n return c && u.setAttribute(\"title\", c), u;\n }\n\n var d = t(\"span\", {\n class: l.join(\" \")\n });\n\n if (c && d.setAttribute(\"title\", c), a !== \"\" && !i) {\n var f = parseInt(a, 10);\n (isNaN(f) || f < 0) && (f = 0);\n var p = f > o ? o + \"+\" : String(f),\n m = t(\"span\", {\n class: \"tokui-badge__count\"\n });\n return m.textContent = p, d.appendChild(m), d._update = function (e) {\n if (e.tx !== void 0 && (m.textContent = e.tx), e.count !== void 0) {\n var t = parseInt(e.count, 10);\n (isNaN(t) || t < 0) && (t = 0);\n var n = parseInt(e.overflow, 10) || o;\n m.textContent = t > n ? n + \"+\" : String(t);\n }\n\n e.act === \"hide\" && (d.style.display = \"none\");\n }, d;\n }\n\n var h = t(\"span\", {\n class: \"tokui-badge__text\"\n });\n return h.textContent = i, d.appendChild(h), d._update = function (e) {\n e.tx !== void 0 && (h.textContent = e.tx), e.act === \"hide\" && (d.style.display = \"none\");\n }, d;\n }), e.register(\"badge-box\", function (e, n) {\n var r = e.attrs || {},\n i = t(\"span\", {\n class: \"tokui-badge-box\"\n });\n e.children && e.children.length && n(e.children).forEach(function (e) {\n e && i.appendChild(e);\n });\n var a = r.t || r.status || \"error\",\n o = a === \"primary\" ? \"var(--tokui-primary)\" : a === \"success\" ? \"var(--tokui-success)\" : a === \"warning\" ? \"var(--tokui-warning)\" : a === \"info\" ? \"var(--tokui-info)\" : \"var(--tokui-danger)\",\n s;\n if (r.dot) s = t(\"sup\", {\n class: \"tokui-badge-box__dot\"\n }), s.style.background = o;else if (r.count !== void 0 && r.count !== \"\" && !r.tx) {\n var c = parseInt(r.overflow, 10) || 99,\n l = parseInt(r.count, 10);\n (isNaN(l) || l < 0) && (l = 0);\n var u = l > c ? c + \"+\" : String(l);\n s = t(\"sup\", {\n class: \"tokui-badge-box__count\"\n }), s.textContent = u, s.style.background = o;\n } else (r.tx || r.label) && (s = t(\"sup\", {\n class: \"tokui-badge-box__text\"\n }), s.textContent = r.tx || r.label, a === \"default\" ? (s.style.background = \"var(--tokui-stripe, #f5f5f5)\", s.style.color = \"var(--tokui-text-secondary, #666)\") : s.style.background = o);\n return s && i.appendChild(s), i;\n }), e.register(\"skeleton\", function (e) {\n var n = e.attrs || {},\n r = n.t || \"text\",\n i = parseInt(n.rows, 10) || 3,\n a = n.w || \"\",\n o = n.h || \"\",\n s = t(\"div\", {\n class: [\"tokui-skeleton\", \"tokui-skeleton--\" + r].join(\" \"),\n role: \"status\",\n \"aria-live\": \"polite\"\n });\n if (a && (s.style.width = a), o && (s.style.height = o), r === \"text\") for (var c = 0; c < i; c++) {\n var l = t(\"div\", {\n class: \"tokui-skeleton__row\"\n });\n c === i - 1 && (l.style.width = \"60%\"), s.appendChild(l);\n } else if (r === \"card\") {\n var u = t(\"div\", {\n class: \"tokui-skeleton__circle\"\n });\n s.appendChild(u);\n var d = t(\"div\", {});\n d.style.flex = \"1\", d.style.display = \"flex\", d.style.flexDirection = \"column\", d.style.gap = \"8px\";\n var f = t(\"div\", {\n class: \"tokui-skeleton__row\"\n });\n f.style.width = \"40%\", d.appendChild(f);\n\n for (var p = 0; p < Math.max(1, i - 1); p++) {\n var m = t(\"div\", {\n class: \"tokui-skeleton__row\"\n });\n d.appendChild(m);\n }\n\n s.appendChild(d);\n } else if (r === \"avatar\") {\n var h = t(\"div\", {\n class: \"tokui-skeleton__circle\"\n });\n s.appendChild(h);\n } else if (r === \"image\") {\n var g = t(\"div\", {\n class: \"tokui-skeleton__rect\"\n });\n s.appendChild(g);\n }\n return s;\n }), e.register(\"toast\", function (e) {\n var n = e.attrs || {},\n r = n.id || \"\",\n i = n.t || \"info\",\n a = n.tx || \"\",\n o = parseInt(n.duration, 10) || 2e3,\n s = n.pos || \"top\",\n c = document.querySelector(\".tokui-toast-container\");\n c || (c = t(\"div\", {\n class: \"tokui-toast-container\"\n }), document.body.appendChild(c));\n var l = t(\"div\", {\n class: \"tokui-toast tokui-toast--\" + i + (s === \"bottom\" ? \" tokui-toast--bottom\" : \"\"),\n role: \"alert\",\n \"aria-live\": \"polite\"\n });\n r && l.setAttribute(\"data-toast-id\", r);\n var u = {\n success: \"\\u2713\",\n error: \"\\u2715\",\n warning: \"!\",\n info: \"\\u2139\"\n },\n d = t(\"span\", {\n class: \"tokui-toast__icon\"\n });\n d.textContent = u[i] || u.info, l.appendChild(d);\n var f = t(\"span\");\n return f.textContent = a, l.appendChild(f), l._toastDuration = o, l._toastShown = !1, c.appendChild(l), l.style.display = \"none\", window.TokUI || (window.TokUI = {}), window.TokUI._toastMap || (window.TokUI._toastMap = {}), r && (window.TokUI._toastMap[r] = l), window.TokUI.showToast || (window.TokUI.showToast = function (e, t) {\n var n = (window.TokUI._toastMap || {})[e];\n\n if (n) {\n if (t) {\n var r = n.querySelector(\"span:last-child\");\n r && (r.textContent = t);\n }\n\n n.style.display = \"\", n.classList.remove(\"tokui-toast--hide\"), n._toastShown = !0;\n var i = n._toastDuration || 2e3;\n clearTimeout(n._toastTimer), n._toastTimer = setTimeout(function () {\n n.classList.add(\"tokui-toast--hide\"), setTimeout(function () {\n n.style.display = \"none\", n._toastShown = !1;\n }, 250);\n }, i);\n }\n }), l;\n }), e.register(\"dot\", function (e) {\n var n = e.attrs || {},\n r = n.t || \"default\",\n i = n.tx || \"\",\n a = n.s || \"\",\n o = [\"tokui-dot\", \"tokui-dot--\" + r];\n a === \"sm\" ? o.push(\"tokui-dot--sm\") : a === \"lg\" && o.push(\"tokui-dot--lg\"), n.pulse !== void 0 && o.push(\"tokui-dot--pulse\");\n var s = t(\"span\", {\n class: o.join(\" \")\n }),\n c = t(\"span\", {\n class: \"tokui-dot__circle\"\n });\n\n if (s.appendChild(c), i) {\n var l = t(\"span\", {\n class: \"tokui-dot__text\"\n });\n l.textContent = i, s.appendChild(l);\n }\n\n return s;\n }), e.register(\"avatar\", function (e) {\n var n = e.attrs || {},\n i = n.s || \"\",\n a = n.tx || \"\",\n o = n.size || \"md\",\n s = [\"tokui-avatar\"];\n\n if (i) {\n var c = t(\"img\", {\n class: s.join(\" \"),\n src: i,\n alt: a\n });\n return c.classList.add(\"tokui-avatar--\" + o), c;\n }\n\n s.push(\"tokui-avatar--text\", \"tokui-avatar--\" + o);\n var l = t(\"span\", {\n class: s.join(\" \")\n });\n l.textContent = a.slice(0, 2);\n var u = n.bg;\n\n if (u) {\n var d = r(u);\n d && (l.style.backgroundColor = d);\n } else if (a) {\n for (var f = [\"#1677ff\", \"#52c41a\", \"#faad14\", \"#f5222d\", \"#722ed1\", \"#13c2c2\", \"#eb2f96\", \"#fa8c16\"], p = 0, m = 0; m < a.length; m++) {\n p += a.charCodeAt(m);\n }\n\n l.style.backgroundColor = f[p % f.length];\n }\n\n var h = n.fc;\n\n if (h) {\n var g = r(h);\n g && (l.style.color = g);\n }\n\n return l;\n }), e.register(\"tooltip\", function (e) {\n var n = e.attrs || {},\n r = n.tt || \"\",\n i = n.pos || \"top\",\n a = n.tx || e.content || \"\",\n o = t(\"span\", {\n class: \"tokui-tooltip\",\n tabindex: \"0\",\n role: \"tooltip\"\n });\n o.textContent = a, o.addEventListener(\"mouseenter\", function () {\n if (r) {\n var e = document.createElement(\"div\");\n e.className = \"tokui-tooltip__popup tokui-tooltip__popup--\" + i, e.setAttribute(\"role\", \"tooltip\"), e.textContent = r, document.body.appendChild(e);\n var t = o.getBoundingClientRect(),\n n = e.getBoundingClientRect(),\n a = 8;\n i === \"top\" ? (e.style.left = t.left + t.width / 2 - n.width / 2 + \"px\", e.style.top = t.top - n.height - a + \"px\") : i === \"bottom\" ? (e.style.left = t.left + t.width / 2 - n.width / 2 + \"px\", e.style.top = t.bottom + a + \"px\") : i === \"left\" ? (e.style.left = t.left - n.width - a + \"px\", e.style.top = t.top + t.height / 2 - n.height / 2 + \"px\") : i === \"right\" && (e.style.left = t.right + a + \"px\", e.style.top = t.top + t.height / 2 - n.height / 2 + \"px\");\n var s = e.getBoundingClientRect();\n s.left < 4 && (e.style.left = \"4px\"), s.right > window.innerWidth - 4 && (e.style.left = window.innerWidth - s.width - 4 + \"px\"), s.top < 4 && (e.style.top = t.bottom + a + \"px\"), e.classList.add(\"tokui-tooltip__popup--visible\"), o._tooltipEl = e;\n }\n });\n\n function s() {\n if (o._tooltipEl) {\n o._tooltipEl.classList.remove(\"tokui-tooltip__popup--visible\");\n\n var e = o._tooltipEl;\n setTimeout(function () {\n e.parentNode && e.parentNode.removeChild(e);\n }, 150), o._tooltipEl = null;\n }\n }\n\n return o.addEventListener(\"mouseleave\", s), o.addEventListener(\"blur\", s), o.addEventListener(\"keydown\", function (e) {\n e.key === \"Escape\" && s();\n }), o;\n }), e.register(\"pagination\", function (r) {\n var i = r.attrs || {},\n a = parseInt(i.total, 10) || 1,\n o = i.clk || \"\",\n s = i.s || \"\",\n l = i[\"show-total\"] !== void 0,\n u = i.count || \"\",\n d = parseInt(i.page, 10) || 1,\n f = [\"tokui-pagination\"];\n s === \"sm\" ? f.push(\"tokui-pagination--sm\") : s === \"lg\" && f.push(\"tokui-pagination--lg\");\n var p = t(\"nav\", {\n class: f.join(\" \"),\n role: \"navigation\",\n \"aria-label\": n(\"pagination.aria\")\n });\n\n if (l) {\n var m = t(\"span\", {\n class: \"tokui-pagination__total\"\n });\n m.textContent = u ? n(\"pagination.totalCount\", {\n count: u\n }) : n(\"pagination.totalPages\", {\n total: a\n }), p.appendChild(m);\n }\n\n var h = t(\"div\", {\n class: \"tokui-pagination__pages\"\n });\n p.appendChild(h);\n\n function g(e) {\n h.innerHTML = \"\";\n var n = t(\"button\", {\n class: \"tokui-pagination__btn tokui-pagination__prev\" + (e <= 1 ? \" tokui-pagination__btn--disabled\" : \"\"),\n \"data-page\": String(e - 1),\n disabled: e <= 1\n });\n n.textContent = \"\\u2039\", h.appendChild(n), c(e, a).forEach(function (n) {\n if (n === \"...\") {\n var r = t(\"span\", {\n class: \"tokui-pagination__ellipsis\"\n });\n r.textContent = \"...\", h.appendChild(r);\n } else {\n var i = t(\"button\", {\n class: \"tokui-pagination__item\" + (n === e ? \" tokui-pagination__item--active\" : \"\"),\n \"data-page\": String(n)\n });\n i.textContent = String(n), h.appendChild(i);\n }\n });\n var r = t(\"button\", {\n class: \"tokui-pagination__btn tokui-pagination__next\" + (e >= a ? \" tokui-pagination__btn--disabled\" : \"\"),\n \"data-page\": String(e + 1),\n disabled: e >= a\n });\n r.textContent = \"\\u203A\", h.appendChild(r);\n }\n\n return g(d), p.addEventListener(\"click\", function (t) {\n var n = t.target.closest(\"[data-page]\");\n\n if (!(!n || n.disabled)) {\n var r = parseInt(n.getAttribute(\"data-page\"), 10);\n\n if (!(isNaN(r) || r < 1 || r > a) && (d = r, g(d), o)) {\n var i = e.eventBus && e.eventBus.getHandler(o);\n i && i({\n page: r\n }, t, n);\n }\n }\n }), p;\n }), e.register(\"breadcrumb\", function (n) {\n var r = n.attrs || {},\n i = (r.items || \"\").split(\",\").map(function (e) {\n return e.trim();\n }).filter(Boolean),\n a = r.sep || \"/\",\n o = r.clk || \"\",\n s = r.v && r.v.indexOf(\"arrow\") !== -1,\n c = [\"tokui-breadcrumb\"];\n s && c.push(\"tokui-breadcrumb--arrow\");\n var l = t(\"nav\", {\n class: c.join(\" \"),\n \"aria-label\": \"breadcrumb\"\n });\n return i.forEach(function (n, r) {\n var c = r === i.length - 1,\n u = t(\"span\", {\n class: \"tokui-breadcrumb__item\" + (c ? \" tokui-breadcrumb__item--active\" : \"\"),\n \"data-index\": String(r)\n });\n\n if (u.textContent = n, o && !c && (u.style.cursor = \"pointer\", u.addEventListener(\"click\", function (t) {\n var i = e.eventBus && e.eventBus.getHandler(o);\n i && i({\n index: r,\n text: n\n }, t, u);\n })), l.appendChild(u), !c) {\n var d = t(\"span\", {\n class: \"tokui-breadcrumb__sep\"\n });\n d.textContent = s ? \"\\u203A\" : a, l.appendChild(d);\n }\n }), l;\n }), e.register(\"dropdown\", function (e, r) {\n var i = e.attrs || {},\n a = i.tt || i.tx || n(\"menu.defaultTrigger\"),\n o = i.v || \"\",\n s = t(\"div\", {\n class: \"tokui-dropdown\"\n }),\n c = \"tokui-dropdown__trigger\";\n o && (c += \" tokui-dropdown__trigger--\" + o);\n var u = t(\"button\", {\n class: c\n });\n u.textContent = a, u.setAttribute(\"aria-haspopup\", \"true\"), u.setAttribute(\"aria-expanded\", \"false\"), s.appendChild(u);\n var d = t(\"div\", {\n class: \"tokui-dropdown__panel\"\n });\n return d.setAttribute(\"role\", \"menu\"), (e.children || []).forEach(function (e) {\n r([e]).forEach(function (e) {\n e && e.nodeType && d.appendChild(e);\n });\n }), s.appendChild(d), u.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n var t = d.classList.contains(\"tokui-dropdown__panel--open\");\n\n if (l(), !t) {\n var n = u.getBoundingClientRect();\n d.style.top = n.bottom + 4 + \"px\", d.style.left = n.left + \"px\", d.classList.add(\"tokui-dropdown__panel--open\"), u.setAttribute(\"aria-expanded\", \"true\");\n }\n }), d.addEventListener(\"click\", function (e) {\n var t = e.target.closest(\".tokui-dropdown__item\");\n t && !t.classList.contains(\"tokui-dropdown__item--disabled\") && (d.classList.remove(\"tokui-dropdown__panel--open\"), u.setAttribute(\"aria-expanded\", \"false\"));\n }), s._slot = d, s._tokuiType = \"dropdown\", u.addEventListener(\"keydown\", function (e) {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\") {\n e.preventDefault(), d.classList.contains(\"tokui-dropdown__panel--open\") || (l(), d.classList.add(\"tokui-dropdown__panel--open\"), u.setAttribute(\"aria-expanded\", \"true\"));\n var t = d.querySelectorAll(\".tokui-dropdown__item:not(.tokui-dropdown__item--disabled)\");\n t.length > 0 && t[0].focus();\n }\n\n e.key === \"Escape\" && (d.classList.remove(\"tokui-dropdown__panel--open\"), u.setAttribute(\"aria-expanded\", \"false\"));\n }), d.addEventListener(\"keydown\", function (e) {\n var t = Array.from(d.querySelectorAll(\".tokui-dropdown__item:not(.tokui-dropdown__item--disabled)\")),\n n = t.indexOf(e.target);\n e.key === \"ArrowDown\" && n < t.length - 1 && (e.preventDefault(), t[n + 1].focus()), e.key === \"ArrowUp\" && (e.preventDefault(), n > 0 ? t[n - 1].focus() : u.focus()), e.key === \"Escape\" && (d.classList.remove(\"tokui-dropdown__panel--open\"), u.setAttribute(\"aria-expanded\", \"false\"), u.focus());\n }), s;\n }), e.register(\"empty\", function (e) {\n var n = e.attrs || {},\n r = n.tx || \"\",\n i = n.icon || \"default\",\n a = n.s || \"\",\n o = {\n default: \"<svg viewBox=\\\"0 0 64 41\\\" fill=\\\"none\\\"><g transform=\\\"translate(0 1)\\\" fill-rule=\\\"evenodd\\\"><ellipse fill=\\\"var(--tokui-stripe)\\\" cx=\\\"32\\\" cy=\\\"33\\\" rx=\\\"32\\\" ry=\\\"7\\\"/><g fill-rule=\\\"nonzero\\\" stroke=\\\"var(--tokui-border)\\\"><path d=\\\"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\\\"/><path d=\\\"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\\\" fill=\\\"var(--tokui-stripe)\\\"/></g></g></svg>\",\n box: \"<svg viewBox=\\\"0 0 64 41\\\" fill=\\\"none\\\"><g transform=\\\"translate(0 1)\\\" fill-rule=\\\"evenodd\\\"><ellipse fill=\\\"var(--tokui-stripe)\\\" cx=\\\"32\\\" cy=\\\"33\\\" rx=\\\"32\\\" ry=\\\"7\\\"/><rect x=\\\"13\\\" y=\\\"6\\\" width=\\\"38\\\" height=\\\"24\\\" rx=\\\"3\\\" fill=\\\"var(--tokui-stripe)\\\" stroke=\\\"var(--tokui-border)\\\" stroke-width=\\\"2\\\"/><path d=\\\"M13 14h38\\\" stroke=\\\"var(--tokui-border)\\\" stroke-width=\\\"2\\\"/></g></svg>\",\n folder: \"<svg viewBox=\\\"0 0 64 41\\\" fill=\\\"none\\\"><g transform=\\\"translate(0 1)\\\" fill-rule=\\\"evenodd\\\"><ellipse fill=\\\"var(--tokui-stripe)\\\" cx=\\\"32\\\" cy=\\\"33\\\" rx=\\\"32\\\" ry=\\\"7\\\"/><path d=\\\"M10 12V9a2 2 0 012-2h12l4 5h24a2 2 0 012 2v16a2 2 0 01-2 2H12a2 2 0 01-2-2V12z\\\" fill=\\\"var(--tokui-stripe)\\\" stroke=\\\"var(--tokui-border)\\\" stroke-width=\\\"2\\\"/></g></svg>\",\n search: \"<svg viewBox=\\\"0 0 64 41\\\" fill=\\\"none\\\"><g transform=\\\"translate(0 1)\\\" fill-rule=\\\"evenodd\\\"><ellipse fill=\\\"var(--tokui-stripe)\\\" cx=\\\"32\\\" cy=\\\"33\\\" rx=\\\"32\\\" ry=\\\"7\\\"/><circle cx=\\\"28\\\" cy=\\\"18\\\" r=\\\"10\\\" stroke=\\\"var(--tokui-border)\\\" stroke-width=\\\"2\\\" fill=\\\"var(--tokui-stripe)\\\"/><path d=\\\"M35 25l8 7\\\" stroke=\\\"var(--tokui-border)\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"/></g></svg>\"\n },\n s = t(\"div\", {\n class: \"tokui-empty\"\n });\n\n if (a) {\n var c = t(\"img\", {\n class: \"tokui-empty__img\",\n src: a,\n alt: r\n });\n s.appendChild(c);\n } else {\n var l = t(\"div\", {\n class: \"tokui-empty__icon\"\n });\n l.innerHTML = o[i] || o.default, s.appendChild(l);\n }\n\n if (r) {\n var u = t(\"div\", {\n class: \"tokui-empty__text\"\n });\n u.textContent = r, s.appendChild(u);\n }\n\n return s;\n }), e.register(\"result\", function (e) {\n var n = e.attrs || {},\n r = n.t || \"info\",\n i = n.tt || \"\",\n a = n.tx || \"\",\n o = {\n success: \"<svg viewBox=\\\"0 0 64 64\\\" fill=\\\"none\\\"><circle cx=\\\"32\\\" cy=\\\"32\\\" r=\\\"30\\\" fill=\\\"var(--tokui-success-1, rgba(34,197,94,0.1))\\\" stroke=\\\"var(--tokui-success)\\\" stroke-width=\\\"2\\\"/><path d=\\\"M20 32l8 8 16-16\\\" stroke=\\\"var(--tokui-success)\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/></svg>\",\n error: \"<svg viewBox=\\\"0 0 64 64\\\" fill=\\\"none\\\"><circle cx=\\\"32\\\" cy=\\\"32\\\" r=\\\"30\\\" fill=\\\"var(--tokui-danger-1, rgba(239,68,68,0.1))\\\" stroke=\\\"var(--tokui-danger)\\\" stroke-width=\\\"2\\\"/><path d=\\\"M24 24l16 16M40 24l-16 16\\\" stroke=\\\"var(--tokui-danger)\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"round\\\"/></svg>\",\n warning: \"<svg viewBox=\\\"0 0 64 64\\\" fill=\\\"none\\\"><circle cx=\\\"32\\\" cy=\\\"32\\\" r=\\\"30\\\" fill=\\\"var(--tokui-warning-1, rgba(245,158,11,0.1))\\\" stroke=\\\"var(--tokui-warning)\\\" stroke-width=\\\"2\\\"/><path d=\\\"M32 22v14M32 42v2\\\" stroke=\\\"var(--tokui-warning)\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"round\\\"/></svg>\",\n info: \"<svg viewBox=\\\"0 0 64 64\\\" fill=\\\"none\\\"><circle cx=\\\"32\\\" cy=\\\"32\\\" r=\\\"30\\\" fill=\\\"var(--tokui-primary-1, rgba(79,70,229,0.1))\\\" stroke=\\\"var(--tokui-primary)\\\" stroke-width=\\\"2\\\"/><path d=\\\"M32 22v2M32 30v14\\\" stroke=\\\"var(--tokui-primary)\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"round\\\"/></svg>\"\n },\n s = t(\"div\", {\n class: \"tokui-result tokui-result--\" + r\n }),\n c = t(\"div\", {\n class: \"tokui-result__icon\"\n });\n\n if (c.innerHTML = o[r] || o.info, s.appendChild(c), i) {\n var l = t(\"div\", {\n class: \"tokui-result__title\"\n });\n l.textContent = i, s.appendChild(l);\n }\n\n if (a) {\n var u = t(\"div\", {\n class: \"tokui-result__desc\"\n });\n u.textContent = a, s.appendChild(u);\n }\n\n return s;\n }), e.register(\"stat\", function (e) {\n var n = e.attrs || {},\n r = n.tt || \"\",\n i = n.v || \"0\",\n a = n.pre || \"\",\n o = n.suf || \"\",\n s = n.trend || \"\",\n c = parseInt(n.anim) || 0,\n l = parseInt(n.dec) || 0,\n u = t(\"div\", {\n class: \"tokui-stat\"\n });\n\n if (n.id && (u.id = n.id), r) {\n var d = t(\"div\", {\n class: \"tokui-stat__title\"\n });\n d.textContent = r, u.appendChild(d);\n }\n\n var f = t(\"div\", {\n class: \"tokui-stat__value\"\n });\n\n if (a) {\n var p = t(\"span\", {\n class: \"tokui-stat__prefix\"\n });\n p.textContent = a, f.appendChild(p);\n }\n\n var m = t(\"span\", {\n class: \"tokui-stat__number\"\n });\n\n if (f.appendChild(m), o) {\n var h = t(\"span\", {\n class: \"tokui-stat__suffix\"\n });\n h.textContent = o, f.appendChild(h);\n }\n\n if (s) {\n var g = t(\"span\", {\n class: \"tokui-stat__trend\" + (s === \"up\" ? \" tokui-stat__trend--up\" : \" tokui-stat__trend--down\")\n });\n g.textContent = s === \"up\" ? \"\\u2191\" : \"\\u2193\", f.appendChild(g);\n }\n\n if (c > 0) {\n var _ = i.replace(/[^\\d.\\-]/g, \"\"),\n v = parseFloat(_);\n\n if (!isNaN(v) && v !== 0) {\n var y = i.indexOf(\",\") !== -1;\n m.textContent = \"0\";\n var b = null;\n\n function _e47(t) {\n b || (b = t);\n var n = Math.min((t - b) / c, 1),\n r = v * (n === 1 ? 1 : 1 - Math.pow(2, -10 * n)),\n a = l > 0 ? r.toFixed(l) : Math.round(r);\n y ? a = Number(a).toLocaleString(\"en-US\", {\n minimumFractionDigits: l,\n maximumFractionDigits: l\n }) : l > 0 && (a = r.toFixed(l)), m.textContent = a, n < 1 ? requestAnimationFrame(_e47) : (m.textContent = i.replace(/[^\\d.,\\-]/g, function () {\n return \"\";\n }), m.textContent = i);\n }\n\n requestAnimationFrame(_e47);\n } else m.textContent = i;\n } else m.textContent = i;\n\n return u.appendChild(f), u._update = function (e) {\n if (e.v !== void 0) {\n var t = u.querySelector(\".tokui-stat__number\");\n t && (t.textContent = e.v);\n }\n\n if (e.trend !== void 0) {\n var n = u.querySelector(\".tokui-stat__trend\");\n n && (n.className = \"tokui-stat__trend\" + (e.trend === \"up\" ? \" tokui-stat__trend--up\" : \" tokui-stat__trend--down\"), n.textContent = e.trend === \"up\" ? \"\\u2191\" : \"\\u2193\");\n }\n }, u;\n }), e.register(\"dd-item\", function (e) {\n var n = e.attrs || {},\n r = n.tx || \"\",\n i = [\"tokui-dropdown__item\"];\n n.v && i.push(\"tokui-dropdown__item--\" + n.v), n.dis !== void 0 && i.push(\"tokui-dropdown__item--disabled\");\n var a = {\n class: i.join(\" \"),\n role: \"menuitem\",\n tabindex: \"0\"\n };\n n.clk && (a[\"data-tokui-clk\"] = n.clk), n.dis !== void 0 && (a[\"aria-disabled\"] = \"true\");\n var o = t(\"div\", a);\n return o.textContent = r, o;\n }), e.register(\"popover\", function (e, r) {\n var i = e.attrs || {},\n a = i.tx || n(\"trigger.default\"),\n o = i.pos || \"top\",\n s = i.tt || \"\",\n c = i.w || \"\",\n l = i.trig || \"click\",\n u = t(\"span\", {\n class: \"tokui-popover\"\n }),\n d = t(\"span\", {\n class: \"tokui-popover__trigger\",\n tabindex: \"0\",\n role: \"button\",\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": \"false\"\n });\n d.textContent = a, u.appendChild(d);\n var f = t(\"div\", {\n class: \"tokui-popover__panel tokui-popover__panel--\" + o,\n role: \"dialog\"\n });\n c && (f.style.width = c);\n var p = t(\"div\", {\n class: \"tokui-popover__arrow\"\n });\n\n if (f.appendChild(p), s) {\n var m = t(\"div\", {\n class: \"tokui-popover__title\"\n });\n m.textContent = s, f.appendChild(m);\n }\n\n var h = t(\"div\", {\n class: \"tokui-popover__body\"\n });\n r(e.children || []).forEach(function (e) {\n e && e.nodeType && h.appendChild(e);\n }), f.appendChild(h), u.appendChild(f);\n\n function g() {\n var e = d.getBoundingClientRect(),\n t = f.getBoundingClientRect(),\n n = 10;\n o === \"top\" ? (f.style.left = e.left + e.width / 2 - t.width / 2 + \"px\", f.style.top = e.top - t.height - n + \"px\") : o === \"bottom\" ? (f.style.left = e.left + e.width / 2 - t.width / 2 + \"px\", f.style.top = e.bottom + n + \"px\") : o === \"left\" ? (f.style.left = e.left - t.width - n + \"px\", f.style.top = e.top + e.height / 2 - t.height / 2 + \"px\") : o === \"right\" && (f.style.left = e.right + n + \"px\", f.style.top = e.top + e.height / 2 - t.height / 2 + \"px\");\n var r = f.getBoundingClientRect();\n r.left < 4 && (f.style.left = \"4px\"), r.right > window.innerWidth - 4 && (f.style.left = window.innerWidth - r.width - 4 + \"px\"), r.top < 4 && (f.style.top = e.bottom + n + \"px\");\n }\n\n function _() {\n f.classList.add(\"tokui-popover__panel--visible\"), d.setAttribute(\"aria-expanded\", \"true\"), g();\n }\n\n function v() {\n f.classList.remove(\"tokui-popover__panel--visible\"), d.setAttribute(\"aria-expanded\", \"false\");\n }\n\n function y() {\n f.classList.contains(\"tokui-popover__panel--visible\") ? v() : _();\n }\n\n return l === \"hover\" ? (u.addEventListener(\"mouseenter\", _), u.addEventListener(\"mouseleave\", v)) : (d.addEventListener(\"click\", function (e) {\n e.stopPropagation(), y();\n }), f.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n }), document.addEventListener(\"click\", function (e) {\n u.contains(e.target) || v();\n }), u.addEventListener(\"keydown\", function (e) {\n e.key === \"Escape\" && v();\n })), (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.addEventListener(\"scroll\", v, !0), u._slot = h, u._tokuiType = \"popover\", u;\n }), e.register(\"hover-card\", function (e, n) {\n var r = e.attrs || {},\n i = r.pos || \"bottom\",\n a = r.w || \"\",\n o = parseInt(r.delay) || 300,\n s = t(\"span\", {\n class: \"tokui-hover-card tokui-hover-card--\" + i,\n \"data-delay\": String(o)\n }),\n c = null,\n l = null;\n\n function u() {\n var e = t(\"span\", {\n class: \"tokui-hover-card__content\",\n role: \"dialog\"\n });\n a && (e.style.width = a + \"px\");\n var n = t(\"span\", {\n class: \"tokui-hover-card__arrow tokui-hover-card__arrow--\" + i\n });\n e.appendChild(n);\n var r = t(\"span\", {\n class: \"tokui-hover-card__body\"\n });\n return e.appendChild(r), {\n panel: e,\n body: r\n };\n }\n\n e.children && e.children.length > 0 && e.children.forEach(function (e) {\n if (e.type === \"hover-trigger\") c = t(\"span\", {\n class: \"tokui-hover-card__trigger\"\n }), n([e]).forEach(function (e) {\n if (e && e.nodeType) if (e._tokuiType === \"hover-trigger\") for (; e.firstChild;) {\n c.appendChild(e.firstChild);\n } else c.appendChild(e);\n }), s.appendChild(c);else if (e.type === \"hover-content\") {\n var r = u();\n l = r.panel, n([e]).forEach(function (e) {\n if (e && e.nodeType) if (e._tokuiType === \"hover-content\") for (; e.firstChild;) {\n r.body.appendChild(e.firstChild);\n } else r.body.appendChild(e);\n }), s.appendChild(l);\n } else n([e]).forEach(function (e) {\n e && e.nodeType && s.appendChild(e);\n });\n });\n\n function d(e) {\n var t = s.querySelector(\".tokui-hover-card__trigger\");\n\n if (t) {\n var n = t.getBoundingClientRect(),\n r = e.getBoundingClientRect(),\n a = 8;\n i === \"bottom\" ? (e.style.left = n.left + n.width / 2 - r.width / 2 + \"px\", e.style.top = n.bottom + a + \"px\") : i === \"top\" ? (e.style.left = n.left + n.width / 2 - r.width / 2 + \"px\", e.style.top = n.top - r.height - a + \"px\") : i === \"left\" ? (e.style.left = n.left - r.width - a + \"px\", e.style.top = n.top + n.height / 2 - r.height / 2 + \"px\") : i === \"right\" && (e.style.left = n.right + a + \"px\", e.style.top = n.top + n.height / 2 - r.height / 2 + \"px\");\n var o = e.getBoundingClientRect();\n o.left < 4 && (e.style.left = \"4px\"), o.right > window.innerWidth - 4 && (e.style.left = window.innerWidth - o.width - 4 + \"px\"), o.top < 4 && (e.style.top = n.bottom + a + \"px\");\n }\n }\n\n var f = null,\n p = null;\n\n function m() {\n clearTimeout(p), f = setTimeout(function () {\n var e = s.querySelector(\".tokui-hover-card__content\");\n e && (d(e), e.classList.add(\"tokui-hover-card__content--visible\"));\n }, o);\n }\n\n function h() {\n clearTimeout(f), p = setTimeout(function () {\n var e = s.querySelector(\".tokui-hover-card__content\");\n e && e.classList.remove(\"tokui-hover-card__content--visible\");\n }, 150);\n }\n\n return s.addEventListener(\"mouseenter\", m), s.addEventListener(\"mouseleave\", h), (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.addEventListener && window.addEventListener(\"scroll\", h, !0), s._slot = s, s._tokuiType = \"hover-card\", s._streamCloseHook = function () {\n for (var e = null, n = null, r = [], i = 0; i < s.children.length; i++) {\n var a = s.children[i];\n a._tokuiType === \"hover-trigger\" ? e = a : a._tokuiType === \"hover-content\" ? n = a : r.push(a);\n }\n\n if (!(!e && !n)) {\n for (; s.firstChild;) {\n s.removeChild(s.firstChild);\n }\n\n var o = t(\"span\", {\n class: \"tokui-hover-card__trigger\"\n });\n if (e) for (; e.firstChild;) {\n o.appendChild(e.firstChild);\n }\n s.appendChild(o);\n var c = u();\n if (n) for (; n.firstChild;) {\n c.body.appendChild(n.firstChild);\n }\n s.appendChild(c.panel), r.forEach(function (e) {\n s.appendChild(e);\n });\n }\n }, s;\n }), e.register(\"hover-trigger\", function (e, n) {\n var r = t(\"span\");\n return e.children && e.children.length > 0 && n(e.children).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), e.content && r.appendChild(document.createTextNode(e.content)), r._tokuiType = \"hover-trigger\", r._slot = r, r;\n }), e.register(\"hover-content\", function (e, n) {\n var r = t(\"span\", {\n class: \"tokui-hover-card__content-temp\"\n });\n return e.children && e.children.length > 0 && n(e.children).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), e.content && r.appendChild(document.createTextNode(e.content)), r._tokuiType = \"hover-content\", r._slot = r, r;\n }), e.register(\"input-tag\", function (e, r) {\n var i = e.attrs || {},\n a = i.ph || n(\"inputTag.placeholder\"),\n o = i.n || \"tags\",\n s = i.id || \"\",\n c = parseInt(i.max) || 0,\n l = (i.tags || \"\").split(\",\").map(function (e) {\n return e.trim();\n }).filter(Boolean),\n u = t(\"div\", {\n class: \"tokui-input-tag\",\n role: \"group\"\n });\n s && (u.id = s);\n var d = t(\"div\", {\n class: \"tokui-field\"\n });\n i.l && d.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, i.l));\n var f = t(\"div\", {\n class: \"tokui-input-tag__box\"\n }),\n p = t(\"div\", {\n class: \"tokui-input-tag__list\",\n role: \"list\"\n });\n l.forEach(function (e) {\n p.appendChild(g(e));\n }), f.appendChild(p);\n var m = t(\"input\", {\n class: \"tokui-input-tag__input\",\n type: \"text\",\n placeholder: a\n });\n f.appendChild(m);\n var h = t(\"input\", {\n type: \"hidden\",\n name: o,\n value: l.join(\",\")\n });\n f.appendChild(h), d.appendChild(f), u.appendChild(d);\n\n function g(e) {\n var n = t(\"span\", {\n class: \"tokui-input-tag__tag\",\n role: \"listitem\"\n });\n n.textContent = e;\n var r = t(\"span\", {\n class: \"tokui-input-tag__close\"\n });\n return r.textContent = \"\\xD7\", r.addEventListener(\"click\", function () {\n n.remove(), _();\n }), n.appendChild(r), n;\n }\n\n function _() {\n h.value = Array.from(p.querySelectorAll(\".tokui-input-tag__tag\")).map(function (e) {\n return e.firstChild.textContent;\n }).join(\",\");\n }\n\n return m.addEventListener(\"keydown\", function (e) {\n if (e.key === \"Enter\") {\n e.preventDefault();\n var t = m.value.trim();\n if (!t) return;\n var n = Array.from(p.querySelectorAll(\".tokui-input-tag__tag\")).map(function (e) {\n return e.firstChild.textContent;\n });\n\n if (n.indexOf(t) !== -1) {\n m.value = \"\";\n return;\n }\n\n if (c > 0 && n.length >= c) {\n m.value = \"\";\n return;\n }\n\n p.appendChild(g(t)), m.value = \"\", _();\n }\n\n if (e.key === \"Backspace\" && !m.value) {\n var r = p.querySelectorAll(\".tokui-input-tag__tag\");\n r.length > 0 && (r[r.length - 1].remove(), _());\n }\n }), u._update = function (e) {\n e.dis === !0 || e.dis === \"true\" ? (m.disabled = !0, u.classList.add(\"tokui-input-tag--disabled\")) : (e.dis === !1 || e.dis === \"false\") && (m.disabled = !1, u.classList.remove(\"tokui-input-tag--disabled\"));\n }, u._tokuiType = \"input-tag\", u;\n }), e.register(\"countdown\", function (e) {\n var r = e.attrs || {},\n i = parseInt(r.target) || 0,\n a = parseInt(r.dur) || 0,\n o = r.l || \"\",\n s = r.s || \"\",\n c = r.tx || n(\"countdown.ended\"),\n l = r.id || \"\",\n u = r.fmt || \"dhms\",\n d = r.clk || \"\";\n !i && a > 0 && (i = Date.now() + a * 1e3);\n var f = [\"tokui-countdown\"];\n s === \"sm\" ? f.push(\"tokui-countdown--sm\") : s === \"lg\" && f.push(\"tokui-countdown--lg\");\n var p = {\n class: f.join(\" \"),\n role: \"timer\",\n \"aria-live\": \"polite\"\n };\n l && (p.id = l);\n var m = t(\"div\", p);\n\n if (o) {\n var h = t(\"div\", {\n class: \"tokui-countdown__label\"\n });\n h.textContent = o, m.appendChild(h);\n }\n\n var g = [{\n key: \"d\",\n label: n(\"duration.day\")\n }, {\n key: \"h\",\n label: n(\"duration.hour\")\n }, {\n key: \"m\",\n label: n(\"duration.minute\")\n }, {\n key: \"s\",\n label: n(\"duration.second\")\n }],\n _ = u.split(\"\"),\n v = g.filter(function (e) {\n return _.indexOf(e.key) !== -1;\n }),\n y = t(\"div\", {\n class: \"tokui-countdown__digits\"\n }),\n b = {};\n\n v.forEach(function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-countdown__item\"\n }),\n i = t(\"span\", {\n class: \"tokui-countdown__num\",\n \"data-key\": e.key\n });\n i.textContent = \"00\", b[e.key] = i, r.appendChild(i);\n var a = t(\"span\", {\n class: \"tokui-countdown__unit\"\n });\n\n if (a.textContent = e.label, r.appendChild(a), y.appendChild(r), n < v.length - 1) {\n var o = t(\"span\", {\n class: \"tokui-countdown__sep\"\n });\n o.textContent = \":\", y.appendChild(o);\n }\n }), m.appendChild(y);\n\n function x(e) {\n return e < 10 ? \"0\" + e : String(e);\n }\n\n var S = !1;\n\n function C() {\n var e = Math.max(0, i - Date.now());\n\n if (e <= 0) {\n if (!S) {\n S = !0, Object.keys(b).forEach(function (e) {\n b[e].textContent = \"00\";\n }), m.classList.add(\"tokui-countdown--ended\");\n var n = t(\"div\", {\n class: \"tokui-countdown__ended\"\n });\n\n if (n.textContent = c, y.parentNode.replaceChild(n, y), clearInterval(w), d) {\n var r = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.TokUIEventBus : null;\n\n if (r) {\n var a = r.getHandler(d);\n typeof a == \"function\" && a({\n id: l,\n target: i\n });\n }\n }\n }\n\n return;\n }\n\n var o = Math.floor(e / 1e3),\n s = Math.floor(o / 86400),\n u = Math.floor(o % 86400 / 3600),\n f = Math.floor(o % 3600 / 60),\n p = o % 60;\n b.d && (b.d.textContent = x(s)), b.h && (b.h.textContent = x(u)), b.m && (b.m.textContent = x(f)), b.s && (b.s.textContent = x(p));\n }\n\n C();\n var w = setInterval(C, 1e3);\n return m._countdownTimer = w, m._tokuiType = \"countdown\", m;\n }), e.register(\"popconfirm\", function (e) {\n var r = e.attrs || {},\n i = r.tt || \"\",\n a = r.clk || \"\",\n o = r.t || \"primary\",\n s = r.pos || \"top\",\n c = r[\"ok-text\"] || n(\"common.ok\"),\n l = r[\"cancel-text\"] || n(\"common.cancel\"),\n u = e.content || r.tx || n(\"popconfirm.trigger\"),\n d = t(\"span\", {\n class: \"tokui-popconfirm\"\n }),\n f = t(\"button\", {\n class: \"tokui-popconfirm__trigger\",\n type: \"button\",\n tabindex: \"0\",\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": \"false\"\n });\n f.textContent = u, d.appendChild(f), d._popconfirmPopup = null;\n\n function p() {\n if (d._popconfirmPopup) {\n d._popconfirmPopup.classList.remove(\"tokui-popconfirm__popup--visible\");\n\n var e = d._popconfirmPopup;\n setTimeout(function () {\n e.parentNode && e.parentNode.removeChild(e);\n }, 150), d._popconfirmPopup = null, f.setAttribute(\"aria-expanded\", \"false\");\n }\n }\n\n function m() {\n p();\n var e = t(\"div\", {\n class: \"tokui-popconfirm__popup tokui-popconfirm__popup--\" + s,\n role: \"dialog\",\n \"aria-label\": i || n(\"popconfirm.aria\")\n }),\n r = t(\"div\", {\n class: \"tokui-popconfirm__arrow\"\n });\n\n if (e.appendChild(r), i) {\n var u = t(\"div\", {\n class: \"tokui-popconfirm__message\"\n });\n u.textContent = i, e.appendChild(u);\n }\n\n var m = t(\"div\", {\n class: \"tokui-popconfirm__buttons\"\n }),\n h = t(\"button\", {\n class: \"tokui-popconfirm__btn tokui-popconfirm__btn--cancel\",\n type: \"button\"\n });\n h.textContent = l, h.addEventListener(\"click\", function (e) {\n e.stopPropagation(), p();\n }), m.appendChild(h);\n var g = t(\"button\", {\n class: \"tokui-popconfirm__btn tokui-popconfirm__btn--\" + o,\n type: \"button\"\n });\n a && g.setAttribute(\"data-tokui-clk\", a), g.textContent = c, g.addEventListener(\"click\", function (e) {\n if (e.stopPropagation(), a) {\n var t = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n t && typeof t.emit == \"function\" && t.emit(a, {});\n }\n\n p();\n }), m.appendChild(g), e.appendChild(m), (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.body && document.body.appendChild(e);\n\n function _() {\n if (f.getBoundingClientRect) {\n var t = f.getBoundingClientRect(),\n n = e.getBoundingClientRect(),\n r = 8;\n\n if (s === \"top\" ? (e.style.left = t.left + t.width / 2 - n.width / 2 + \"px\", e.style.top = t.top - n.height - r + \"px\") : s === \"bottom\" ? (e.style.left = t.left + t.width / 2 - n.width / 2 + \"px\", e.style.top = t.bottom + r + \"px\") : s === \"left\" ? (e.style.left = t.left - n.width - r + \"px\", e.style.top = t.top + t.height / 2 - n.height / 2 + \"px\") : s === \"right\" && (e.style.left = t.right + r + \"px\", e.style.top = t.top + t.height / 2 - n.height / 2 + \"px\"), e.getBoundingClientRect) {\n var i = e.getBoundingClientRect();\n i.left < 4 && (e.style.left = \"4px\"), i.right > window.innerWidth - 4 && (e.style.left = window.innerWidth - i.width - 4 + \"px\"), i.top < 4 && (e.style.top = t.bottom + r + \"px\");\n }\n }\n\n e.classList.add(\"tokui-popconfirm__popup--visible\");\n }\n\n typeof requestAnimationFrame == \"function\" ? requestAnimationFrame(_) : _(), d._popconfirmPopup = e, f.setAttribute(\"aria-expanded\", \"true\");\n }\n\n return f.addEventListener(\"click\", function (e) {\n e.stopPropagation(), d._popconfirmPopup ? p() : m();\n }), (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && typeof document.addEventListener == \"function\" && document.addEventListener(\"click\", function (e) {\n d._popconfirmPopup && !d._popconfirmPopup.contains(e.target) && !d.contains(e.target) && p();\n }), d.addEventListener(\"keydown\", function (e) {\n e.key === \"Escape\" && p();\n }), (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && typeof window.addEventListener == \"function\" && window.addEventListener(\"scroll\", p, !0), d._tokuiPopconfirmPos = s, d._tokuiType = \"popconfirm\", d;\n }), e.register(\"watermark\", function (e, n) {\n var r = e.attrs || {},\n i = r.tx || \"TokUI\",\n a = r.font || (r.s === \"sm\" ? \"12\" : r.s === \"lg\" ? \"20\" : \"16\"),\n o = r.gap || \"40\",\n s = r.ro || \"-22\",\n c = r.c || \"rgba(0,0,0,0.2)\",\n l = t(\"div\", {\n class: \"tokui-watermark\"\n });\n l.style.overflow = \"hidden\", l.style.borderRadius = \"8px\";\n var u = document.createElement(\"canvas\"),\n d = u.getContext(\"2d\"),\n f = parseInt(a) || 16,\n p = parseInt(o) || 40;\n d.font = f + \"px sans-serif\";\n var m = d.measureText(i).width + p,\n h = f + p;\n u.width = m, u.height = h, d.font = f + \"px sans-serif\", d.fillStyle = c, d.textAlign = \"center\", d.textBaseline = \"middle\";\n var g = (parseFloat(s) || -22) * Math.PI / 180;\n d.translate(m / 2, h / 2), d.rotate(g), d.fillText(i, 0, 0);\n\n var _ = t(\"div\", {\n class: \"tokui-watermark__content\"\n });\n\n if (_.style.position = \"relative\", _.style.zIndex = \"1\", e.children && e.children.length > 0) {\n var v = n(e.children);\n v && v.forEach && v.forEach(function (e) {\n e && _.appendChild(e);\n });\n }\n\n l.appendChild(_);\n var y = t(\"div\", {\n class: \"tokui-watermark__overlay\"\n });\n return y.style.backgroundImage = \"url(\" + u.toDataURL() + \")\", y.style.backgroundRepeat = \"repeat\", y.style.borderRadius = \"8px\", l.appendChild(y), l._slot = _, l._tokuiType = \"watermark\", l;\n }), e.register(\"backtop\", function (e) {\n var r = e.attrs || {},\n i = parseInt(r.t) || 200,\n a = r.v || \"circle\",\n o = r.tx || \"\\u2191\",\n s = r.s || \"\",\n c = r.bottom || \"40\",\n l = r.right || \"40\",\n u = r.container !== void 0,\n d = [\"tokui-backtop\"];\n a === \"round\" ? d.push(\"tokui-backtop--round\") : a === \"square\" && d.push(\"tokui-backtop--square\"), s === \"sm\" ? d.push(\"tokui-backtop--sm\") : s === \"lg\" && d.push(\"tokui-backtop--lg\"), u && d.push(\"tokui-backtop--container\");\n var f = t(\"div\", {\n class: d.join(\" \"),\n role: \"button\",\n \"aria-label\": n(\"backToTop.aria\"),\n tabindex: \"0\"\n });\n return u ? f.style.bottom = c + \"px\" : (f.style.bottom = c + \"px\", f.style.right = l + \"px\"), f.textContent = o, (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && requestAnimationFrame(function () {\n for (var e = window, t = f.parentElement; t;) {\n var n = getComputedStyle(t);\n\n if ((n.overflowY === \"auto\" || n.overflowY === \"scroll\") && t.scrollHeight > t.clientHeight) {\n e = t;\n break;\n }\n\n t = t.parentElement;\n }\n\n f.addEventListener(\"click\", function () {\n e === window ? window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n }) : e.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n });\n\n var r = function r() {\n (e === window ? window.pageYOffset : e.scrollTop) > i ? f.classList.add(\"tokui-backtop--visible\") : f.classList.remove(\"tokui-backtop--visible\");\n };\n\n e.addEventListener(\"scroll\", r), r(), f._backtopCleanup = function () {\n e.removeEventListener(\"scroll\", r);\n };\n }), f;\n }), e.register(\"calendar\", function (e) {\n var r = e.attrs || {},\n i = r.month || \"\",\n a = new Date(),\n o,\n s;\n\n if (i) {\n var c = i.split(\"-\");\n o = parseInt(c[0]) || a.getFullYear(), s = (parseInt(c[1]) || a.getMonth() + 1) - 1;\n } else o = a.getFullYear(), s = a.getMonth();\n\n var l = r.v || \"\",\n u = r.marks || \"\",\n d = u ? u.split(\",\").map(function (e) {\n return parseInt(e.trim());\n }).filter(function (e) {\n return e > 0;\n }) : [],\n f = String(r.sel == null ? r.selected == null ? \"\" : r.selected : r.sel),\n p = {};\n f.split(\",\").forEach(function (e) {\n var t = parseInt(e.trim(), 10);\n t > 0 && (p[t] = !0);\n });\n\n function m(e) {\n var t = [];\n return String(e || \"\").split(\";\").forEach(function (e) {\n if (e = e.trim(), e) {\n var n = e.split(\"-\");\n\n if (n.length === 2) {\n var r = parseInt(n[0], 10),\n i = parseInt(n[1], 10);\n r > 0 && i > 0 && t.push([Math.min(r, i), Math.max(r, i)]);\n } else {\n var a = parseInt(e, 10);\n a > 0 && t.push([a, a]);\n }\n }\n }), t;\n }\n\n var h = [];\n r.range && (h = h.concat(m(r.range))), r.ranges && (h = h.concat(m(r.ranges)));\n var g = {},\n _ = {},\n v = {};\n h.forEach(function (e) {\n for (var t = e[0]; t <= e[1]; t++) {\n g[t] = !0;\n }\n\n _[e[0]] = !0, v[e[1]] = !0;\n });\n var y = a.getFullYear() === o && a.getMonth() === s ? a.getDate() : -1,\n b = r.tt || n(\"datepicker.title\", {\n y: o,\n m: s + 1\n }),\n x = [\"tokui-calendar\"];\n l === \"card\" ? x.push(\"tokui-calendar--card\") : l === \"mini\" && x.push(\"tokui-calendar--mini\");\n var S = t(\"div\", {\n class: x.join(\" \")\n }),\n C = t(\"div\", {\n class: \"tokui-calendar__header\"\n });\n C.textContent = b, S.appendChild(C);\n var w = t(\"div\", {\n class: \"tokui-calendar__grid\"\n });\n [n(\"datepicker.weekday.0\"), n(\"datepicker.weekday.1\"), n(\"datepicker.weekday.2\"), n(\"datepicker.weekday.3\"), n(\"datepicker.weekday.4\"), n(\"datepicker.weekday.5\"), n(\"datepicker.weekday.6\")].forEach(function (e) {\n var n = t(\"div\", {\n class: \"tokui-calendar__weekday\"\n });\n n.textContent = e, w.appendChild(n);\n });\n\n for (var T = new Date(o, s, 1).getDay(), E = new Date(o, s + 1, 0).getDate(), D = new Date(o, s, 0).getDate(), O = 42, k = T - 1; k >= 0; k--) {\n var A = t(\"div\", {\n class: \"tokui-calendar__day tokui-calendar__day--other\"\n }),\n j = t(\"span\", {\n class: \"tokui-calendar__day__num\"\n });\n j.textContent = D - k, A.appendChild(j), w.appendChild(A);\n }\n\n for (var M = 1; M <= E; M++) {\n var N = [\"tokui-calendar__day\"];\n M === y && N.push(\"tokui-calendar__day--today\"), d.indexOf(M) !== -1 && N.push(\"tokui-calendar__day--marked\"), p[M] && N.push(\"tokui-calendar__day--selected\"), g[M] && (N.push(\"tokui-calendar__day--in-range\"), _[M] && N.push(\"tokui-calendar__day--range-start\"), v[M] && N.push(\"tokui-calendar__day--range-end\"));\n var A = t(\"div\", {\n class: N.join(\" \")\n }),\n j = t(\"span\", {\n class: \"tokui-calendar__day__num\"\n });\n j.textContent = M, A.appendChild(j), w.appendChild(A);\n }\n\n for (var P = O - T - E, F = 1; F <= P; F++) {\n var A = t(\"div\", {\n class: \"tokui-calendar__day tokui-calendar__day--other\"\n }),\n j = t(\"span\", {\n class: \"tokui-calendar__day__num\"\n });\n j.textContent = F, A.appendChild(j), w.appendChild(A);\n }\n\n return S.appendChild(w), S._tokuiType = \"calendar\", S;\n }), e.register(\"notification\", function (e) {\n var r = e.attrs || {},\n i = r.id || \"\",\n a = r.t || \"info\",\n o = r.tt || \"\",\n s = r.tx || \"\",\n c = r.duration === void 0 ? 4500 : parseInt(r.duration);\n isNaN(c) && (c = 4500);\n var l = r.pos || \"top-right\",\n u = r.clk || \"\",\n d = {\n success: \"\\u2713\",\n error: \"\\u2715\",\n warning: \"\\u26A0\",\n info: \"\\u2139\"\n },\n f = t(\"div\", {\n class: \"tokui-notification tokui-notification--\" + a + \" tokui-notification--\" + l,\n role: \"alert\",\n \"aria-live\": \"polite\"\n });\n i && f.setAttribute(\"data-notif-id\", i);\n var p = t(\"div\", {\n class: \"tokui-notification__bar\"\n });\n f.appendChild(p);\n var m = t(\"span\", {\n class: \"tokui-notification__icon\"\n });\n m.textContent = d[a] || d.info, f.appendChild(m);\n var h = t(\"div\", {\n class: \"tokui-notification__content\"\n });\n\n if (o) {\n var g = t(\"div\", {\n class: \"tokui-notification__title\"\n });\n g.textContent = o, h.appendChild(g);\n }\n\n if (s) {\n var _ = t(\"div\", {\n class: \"tokui-notification__desc\"\n });\n\n _.textContent = s, h.appendChild(_);\n }\n\n f.appendChild(h);\n var v = t(\"button\", {\n class: \"tokui-notification__close\",\n type: \"button\",\n \"aria-label\": n(\"common.close\")\n });\n\n if (v.textContent = \"\\xD7\", v.addEventListener(\"click\", function () {\n f.classList.add(\"tokui-notification--hide\"), setTimeout(function () {\n f.parentNode && f.parentNode.removeChild(f);\n }, 300);\n }), f.appendChild(v), u) {\n var y = t(\"button\", {\n class: \"tokui-notification__action\",\n type: \"button\",\n \"data-tokui-clk\": u\n });\n y.textContent = n(\"common.view\"), h.appendChild(y);\n }\n\n function b(e) {\n if ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) > \"u\" || !document.body) return null;\n var n = \"tokui-notification-container--\" + e,\n r = document.querySelector(\".\" + n);\n return r || (r = t(\"div\", {\n class: \"tokui-notification-container \" + n\n }), document.body.appendChild(r)), r;\n }\n\n if ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.body) {\n var x = b(l);\n x && x.appendChild(f), c > 0 && setTimeout(function () {\n f.classList.add(\"tokui-notification--hide\"), setTimeout(function () {\n f.parentNode && f.parentNode.removeChild(f);\n }, 300);\n }, c), (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI || (window.TokUI = {}), window.TokUI._notifMap || (window.TokUI._notifMap = {}), i && (window.TokUI._notifMap[i] = f), window.TokUI.showNotification || (window.TokUI.showNotification = function (e, t) {\n var n = (window.TokUI._notifMap || {})[e];\n\n if (n) {\n if (t) {\n if (t.title) {\n var r = n.querySelector(\".tokui-notification__title\");\n r && (r.textContent = t.title);\n }\n\n if (t.text) {\n var i = n.querySelector(\".tokui-notification__text\");\n i && (i.textContent = t.text);\n }\n }\n\n n.style.display = \"\", n.classList.remove(\"tokui-notification--hide\");\n var a = n._notifDuration || 4500;\n a > 0 && (clearTimeout(n._notifTimer), n._notifTimer = setTimeout(function () {\n n.classList.add(\"tokui-notification--hide\"), setTimeout(function () {\n n.style.display = \"none\";\n }, 300);\n }, a));\n }\n }));\n var S = t(\"div\", {\n style: \"display:none\"\n });\n return S._isNotifPlaceholder = !0, S;\n }\n\n return f._notifDuration = c, f;\n }), e.register(\"chat-input\", function (e, r) {\n var i = e.attrs || {},\n a = i.ph || \"\",\n o = i.clk || \"\",\n s = i.dis !== void 0,\n c = parseInt(i.max) || 0,\n l = i.auto !== void 0,\n u = parseInt(i.rows) || 2,\n d = t(\"div\", {\n class: \"tokui-chat-input\"\n }),\n f = t(\"textarea\", {\n class: \"tokui-chat-input__textarea\",\n rows: String(u),\n placeholder: a\n });\n s && (f.setAttribute(\"disabled\", \"\"), f.classList.add(\"tokui-chat-input__textarea--disabled\")), l && f.classList.add(\"tokui-chat-input__textarea--auto\"), d.appendChild(f);\n var p = t(\"div\", {\n class: \"tokui-chat-input__actions\"\n });\n e.children && e.children.length > 0 && r(e.children).forEach(function (e) {\n e && e.nodeType && p.appendChild(e);\n });\n var m = t(\"button\", {\n class: \"tokui-chat-input__send\",\n type: \"button\",\n \"aria-label\": n(\"common.send\")\n });\n\n if (m.innerHTML = \"<svg viewBox=\\\"0 0 20 20\\\" width=\\\"18\\\" height=\\\"18\\\" fill=\\\"currentColor\\\"><path d=\\\"M10 3a1 1 0 0 1 .7.3l5 5a1 1 0 0 1-1.4 1.4L11 6.4V16a1 1 0 1 1-2 0V6.4l-3.3 3.3a1 1 0 0 1-1.4-1.4l5-5A1 1 0 0 1 10 3z\\\"/></svg>\", s && (m.setAttribute(\"disabled\", \"\"), m.classList.add(\"tokui-chat-input__send--disabled\")), p.appendChild(m), d.appendChild(p), c > 0) {\n var h = t(\"span\", {\n class: \"tokui-chat-input__counter\"\n });\n h.textContent = \"0/\" + c, d.appendChild(h), f.addEventListener(\"input\", function () {\n var e = (f.value || \"\").length;\n h.textContent = e + \"/\" + c, e > c ? h.classList.add(\"tokui-chat-input__counter--over\") : h.classList.remove(\"tokui-chat-input__counter--over\");\n });\n }\n\n l && f.addEventListener(\"input\", function () {\n f.style.height = \"auto\", f.style.height = f.scrollHeight + \"px\";\n });\n\n function g() {\n if (!s) {\n var e = f.value || \"\";\n e.trim() && (o && (d.setAttribute(\"data-tokui-clk\", o), d.setAttribute(\"data-tokui-clk-value\", e)), f.value = \"\", c > 0 && (h.textContent = \"0/\" + c, h.classList.remove(\"tokui-chat-input__counter--over\")), l && (f.style.height = \"auto\"));\n }\n }\n\n return f.addEventListener(\"keydown\", function (e) {\n e.key === \"Enter\" && !e.shiftKey && (e.preventDefault(), g());\n }), m.addEventListener(\"click\", function () {\n g();\n }), o && d.setAttribute(\"data-tokui-clk\", o), d._update = function (e) {\n e.dis !== void 0 && (s = !!e.dis, s ? (f.setAttribute(\"disabled\", \"\"), f.classList.add(\"tokui-chat-input__textarea--disabled\"), m.setAttribute(\"disabled\", \"\"), m.classList.add(\"tokui-chat-input__send--disabled\")) : (f.removeAttribute(\"disabled\"), f.classList.remove(\"tokui-chat-input__textarea--disabled\"), m.removeAttribute(\"disabled\"), m.classList.remove(\"tokui-chat-input__send--disabled\")));\n }, d._slot = f, d._tokuiType = \"chat-input\", d;\n }), e.register(\"msg-actions\", function (e, r) {\n var i = e.attrs || {},\n a = i.clk || \"\",\n o = \"tokui-msg-actions\";\n i.visible && (o += \" tokui-msg-actions--visible\");\n var s = t(\"div\", {\n class: o\n }),\n c = {\n copy: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"15\\\" height=\\\"15\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><rect x=\\\"8\\\" y=\\\"8\\\" width=\\\"13\\\" height=\\\"13\\\" rx=\\\"2\\\"/><path d=\\\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\\\"/></svg>\",\n regenerate: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"15\\\" height=\\\"15\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\\\"/><path d=\\\"M21 3v5h-5\\\"/><path d=\\\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\\\"/><path d=\\\"M3 21v-5h5\\\"/></svg>\",\n like: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"15\\\" height=\\\"15\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M7 10v12\\\"/><path d=\\\"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z\\\"/></svg>\",\n dislike: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"15\\\" height=\\\"15\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M17 14V2\\\"/><path d=\\\"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z\\\"/></svg>\",\n delete: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"15\\\" height=\\\"15\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><polyline points=\\\"3 6 5 6 21 6\\\"/><path d=\\\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\\\"/></svg>\"\n },\n l = [];\n return i.copy !== void 0 && l.push({\n act: \"copy\",\n icon: c.copy,\n label: n(\"actions.copy\")\n }), i.regenerate !== void 0 && l.push({\n act: \"regenerate\",\n icon: c.regenerate,\n label: n(\"actions.regenerate\")\n }), i.like !== void 0 && (l.push({\n act: \"like\",\n icon: c.like,\n label: n(\"actions.like\")\n }), l.push({\n act: \"dislike\",\n icon: c.dislike,\n label: n(\"actions.dislike\")\n })), i.delete !== void 0 && l.push({\n act: \"delete\",\n icon: c.delete,\n label: n(\"actions.delete\")\n }), l.forEach(function (e) {\n var n = t(\"button\", {\n class: \"tokui-msg-actions__btn\",\n type: \"button\",\n \"data-act\": e.act,\n \"aria-label\": e.label,\n title: e.label\n }),\n r = t(\"span\", {\n class: \"tokui-msg-actions__icon\"\n });\n r.innerHTML = e.icon, n.appendChild(r), s.appendChild(n);\n }), e.children && e.children.length > 0 && r(e.children).forEach(function (e) {\n e && e.nodeType && s.appendChild(e);\n }), a && (s.setAttribute(\"data-tokui-clk\", a), s.addEventListener(\"click\", function (e) {\n var t = e.target.closest && e.target.closest(\".tokui-msg-actions__btn\");\n\n if (t) {\n var n = t.getAttribute(\"data-act\");\n n && s.setAttribute(\"data-tokui-clk-act\", n);\n }\n })), s._slot = s, s._tokuiType = \"msg-actions\", s;\n }), e.register(\"tool-call\", function (e, r) {\n var i = e.attrs || {},\n a = i.name || \"tool\",\n o = i.status || \"pending\",\n s = i.duration || \"\",\n c = {\n class: \"tokui-tool-call tokui-tool-call--\" + o\n };\n i.id && (c.id = i.id);\n var l = t(\"div\", c),\n u = t(\"div\", {\n class: \"tokui-tool-call__header\"\n }),\n d = t(\"span\", {\n class: \"tokui-tool-call__status-dot tokui-tool-call__status-dot--\" + o\n });\n u.appendChild(d);\n var f = t(\"span\", {\n class: \"tokui-tool-call__name\"\n });\n f.textContent = a, u.appendChild(f);\n var p = t(\"span\", {\n class: \"tokui-tool-call__status\"\n }),\n m = {\n pending: n(\"status.pending\"),\n running: n(\"status.running\"),\n done: n(\"status.done\"),\n error: n(\"status.error\"),\n denied: n(\"status.denied\")\n };\n\n if (p.textContent = m[o] || o, u.appendChild(p), s) {\n var h = t(\"span\", {\n class: \"tokui-tool-call__duration\"\n });\n h.textContent = s, u.appendChild(h);\n }\n\n l.appendChild(u);\n var g = t(\"div\", {\n class: \"tokui-tool-call__body\"\n });\n\n if (e.content) {\n var _ = t(\"div\", {\n class: \"tokui-tool-call__params\"\n });\n\n _.textContent = e.content, g.appendChild(_);\n }\n\n return r(e.children || []).forEach(function (e) {\n e && e.nodeType && g.appendChild(e);\n }), l.appendChild(g), l._slot = g, l._tokuiType = \"tool-call\", l._update = function (e) {\n if (e.status && (l.className = \"tokui-tool-call tokui-tool-call--\" + e.status, d.className = \"tokui-tool-call__status-dot tokui-tool-call__status-dot--\" + e.status, p.textContent = m[e.status] || e.status), e.duration) {\n var n = l.querySelector(\".tokui-tool-call__duration\");\n n || (n = t(\"span\", {\n class: \"tokui-tool-call__duration\"\n }), u.appendChild(n)), n.textContent = e.duration;\n }\n\n if (e.result) {\n var r = t(\"div\", {\n class: \"tokui-tool-call__result\"\n });\n r.textContent = e.result, g.appendChild(r);\n }\n\n if (e.error) {\n var i = t(\"div\", {\n class: \"tokui-tool-call__error\"\n });\n i.textContent = e.error, g.appendChild(i);\n }\n }, l;\n }), e.register(\"typing\", function (e) {\n for (var n = e.attrs || {}, r = t(\"div\", {\n class: \"tokui-typing\"\n }), i = t(\"span\", {\n class: \"tokui-typing__dots\"\n }), a = 0; a < 3; a++) {\n var o = t(\"span\", {\n class: \"tokui-typing__dot\"\n });\n o.style.animationDelay = a * .15 + \"s\", i.appendChild(o);\n }\n\n if (r.appendChild(i), n.text) {\n var s = t(\"span\", {\n class: \"tokui-typing__text\"\n });\n s.textContent = n.text, r.appendChild(s);\n }\n\n return r;\n }), e.register(\"quick-reply\", function (e, n) {\n var r = e.attrs || {},\n i = t(\"div\", {\n class: \"tokui-quick-reply\"\n }),\n a = t(\"div\", {\n class: \"tokui-quick-reply__items\"\n });\n return r.items && r.items.split(\",\").forEach(function (e) {\n var n = t(\"button\", {\n class: \"tokui-quick-reply__item\",\n type: \"button\"\n });\n n.textContent = e.trim(), a.appendChild(n);\n }), e.children && e.children.length && n(e.children).forEach(function (e) {\n e && e.nodeType && a.appendChild(e);\n }), i.appendChild(a), i._slot = a, i._tokuiType = \"quick-reply\", i;\n }), e.register(\"suggestions\", function (e, n) {\n var r = e.attrs || {},\n i = Math.min(4, Math.max(1, parseInt(r.cols) || 2)),\n a = t(\"div\", {\n class: \"tokui-suggestions\"\n });\n r.clk && a.setAttribute(\"data-tokui-clk\", r.clk), r.id && (a.id = r.id);\n var o = t(\"div\", {\n class: \"tokui-suggestions__grid tokui-suggestions__grid--\" + i\n });\n return o.style.gridTemplateColumns = \"repeat(\" + i + \", 1fr)\", e.children && e.children.length && n(e.children).forEach(function (e) {\n e && e.nodeType && o.appendChild(e);\n }), a.appendChild(o), a._slot = o, a._tokuiType = \"suggestions\", a;\n }), e.register(\"suggestion\", function (e) {\n var n = e.attrs || {},\n r = n.tt || \"\",\n i = n.tx || \"\",\n a = n.icon || \"\",\n o = t(\"div\", {\n class: \"tokui-suggestion\",\n role: \"button\",\n tabindex: \"0\"\n });\n\n if (n.clk && o.setAttribute(\"data-tokui-clk\", n.clk), n.dis !== void 0 && (o.classList.add(\"tokui-suggestion--disabled\"), o.setAttribute(\"aria-disabled\", \"true\")), a) {\n var s = t(\"span\", {\n class: \"tokui-suggestion__icon\"\n });\n s.textContent = a, o.appendChild(s);\n }\n\n var c = t(\"div\", {\n class: \"tokui-suggestion__body\"\n });\n\n if (r) {\n var l = t(\"div\", {\n class: \"tokui-suggestion__title\"\n });\n l.textContent = r, c.appendChild(l);\n }\n\n if (i) {\n var u = t(\"div\", {\n class: \"tokui-suggestion__desc\"\n });\n u.textContent = i, c.appendChild(u);\n }\n\n return o.appendChild(c), o.addEventListener(\"keydown\", function (e) {\n (e.key === \"Enter\" || e.key === \" \") && (e.preventDefault(), o.click());\n }), o;\n }), e.register(\"source\", function (e) {\n var n = e.attrs || {},\n r = n.n || \"1\",\n i = n.tt || \"\",\n a = n.sn || \"\",\n o = n.u || n.url || \"\",\n s = t(\"div\", {\n class: \"tokui-source\"\n }),\n c = t(\"span\", {\n class: \"tokui-source__num\"\n });\n c.textContent = r, s.appendChild(c);\n var l = t(\"div\", {\n class: \"tokui-source__body\"\n });\n\n if (i) {\n var u = o ? t(\"a\", {\n class: \"tokui-source__title\",\n href: o,\n target: \"_blank\"\n }) : t(\"span\", {\n class: \"tokui-source__title\"\n });\n u.textContent = i, l.appendChild(u);\n }\n\n if (a) {\n var d = t(\"div\", {\n class: \"tokui-source__snippet\"\n });\n d.textContent = a, l.appendChild(d);\n }\n\n return s.appendChild(l), s;\n });\n\n function m(e, n) {\n e.innerHTML = \"\";\n var r = n.split(\"\\n\"),\n i = 0,\n a = 0;\n r.forEach(function (n) {\n var r = t(\"div\", {\n class: \"tokui-diff__line\"\n }),\n o = t(\"span\", {\n class: \"tokui-diff__num\"\n }),\n s = t(\"span\", {\n class: \"tokui-diff__code\"\n });\n n.startsWith(\"+\") ? (r.classList.add(\"tokui-diff__line--add\"), a++, o.textContent = a, s.textContent = n) : n.startsWith(\"-\") ? (r.classList.add(\"tokui-diff__line--remove\"), i++, o.textContent = i, s.textContent = n) : (r.classList.add(\"tokui-diff__line--context\"), i++, a++, o.textContent = i, s.textContent = n || \" \"), r.appendChild(o), r.appendChild(s), e.appendChild(r);\n });\n }\n\n e.register(\"diff\", function (e, n) {\n var r = e.attrs || {},\n i = t(\"div\", {\n class: \"tokui-diff\"\n });\n\n if (r.title || r.lang) {\n var a = t(\"div\", {\n class: \"tokui-diff__header\"\n });\n\n if (r.title) {\n var o = t(\"span\", {\n class: \"tokui-diff__title\"\n });\n o.textContent = r.title, a.appendChild(o);\n }\n\n if (r.lang) {\n var s = t(\"span\", {\n class: \"tokui-diff__lang\"\n });\n s.textContent = r.lang, a.appendChild(s);\n }\n\n i.appendChild(a);\n }\n\n var c = t(\"div\", {\n class: \"tokui-diff__content\"\n }),\n l = \"\";\n l = e.children && e.children.length > 0 ? e.children.map(function (e) {\n return e.content || \"\";\n }).join(\"\") : e.content || \"\";\n\n function u() {\n m(c, l);\n }\n\n return u(), i.appendChild(c), i._slot = c, i._tokuiType = \"diff\", i._streamAppendHook = function (e) {\n e && e.type === \"_text\" && e.content && (l += e.content, u());\n }, i._streamCloseHook = u, i;\n }), e.register(\"plan\", function (e, n) {\n var r = e.attrs || {},\n i = t(\"div\", {\n class: \"tokui-plan\"\n });\n\n if (r.tt) {\n var a = t(\"div\", {\n class: \"tokui-plan__title\"\n });\n a.textContent = r.tt, i.appendChild(a);\n }\n\n var o = t(\"div\", {\n class: \"tokui-plan__steps\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && o.appendChild(e);\n }), i.appendChild(o), i._slot = o, i._tokuiType = \"plan\", i;\n }), e.register(\"plan-step\", function (e, n) {\n var r = e.attrs || {},\n i = {\n pending: 1,\n doing: 1,\n done: 1,\n error: 1,\n skipped: 1\n },\n a = {\n running: \"doing\",\n active: \"doing\",\n progress: \"doing\",\n processing: \"doing\",\n \"in-progress\": \"doing\",\n in_progress: \"doing\",\n current: \"doing\",\n complete: \"done\",\n completed: \"done\",\n finish: \"done\",\n finished: \"done\",\n ok: \"done\",\n success: \"done\",\n wait: \"pending\",\n waiting: \"pending\",\n todo: \"pending\",\n queued: \"pending\",\n fail: \"error\",\n failed: \"error\",\n failure: \"error\"\n },\n o = String(r.status || \"pending\").toLowerCase(),\n s = t(\"div\", {\n class: \"tokui-plan-step tokui-plan-step--\" + (a[o] || (i[o] ? o : \"pending\"))\n }),\n c = t(\"span\", {\n class: \"tokui-plan-step__dot\"\n });\n s.appendChild(c);\n var l = t(\"div\", {\n class: \"tokui-plan-step__content\"\n });\n\n if (r.tt) {\n var u = t(\"div\", {\n class: \"tokui-plan-step__title\"\n });\n u.textContent = r.tt, l.appendChild(u);\n }\n\n if (r.desc) {\n var d = t(\"div\", {\n class: \"tokui-plan-step__desc\"\n });\n d.textContent = r.desc, l.appendChild(d);\n }\n\n if (e.content) {\n var f = t(\"div\", {\n class: \"tokui-plan-step__text\"\n });\n f.textContent = e.content, l.appendChild(f);\n }\n\n n(e.children || []).forEach(function (e) {\n e && e.nodeType && l.appendChild(e);\n }), s.appendChild(l);\n var p = t(\"div\", {\n class: \"tokui-plan-step__line\"\n });\n return s.appendChild(p), s;\n }), e.register(\"agent\", function (e, r) {\n var i = e.attrs || {},\n a = i.name || \"Agent\",\n o = i.status || \"idle\",\n s = i.action || \"\",\n c = i.duration || \"\",\n l = {\n class: \"tokui-agent tokui-agent--\" + o\n };\n i.id && (l.id = i.id);\n var u = t(\"div\", l),\n d = t(\"div\", {\n class: \"tokui-agent__header\"\n }),\n f = t(\"span\", {\n class: \"tokui-agent__status-dot tokui-agent__status-dot--\" + o\n });\n d.appendChild(f);\n var p = t(\"span\", {\n class: \"tokui-agent__name\"\n });\n p.textContent = a, d.appendChild(p);\n var m = t(\"span\", {\n class: \"tokui-agent__status\"\n }),\n h = {\n idle: n(\"status.idle\"),\n running: n(\"status.running\"),\n paused: n(\"status.paused\"),\n done: n(\"status.done\"),\n error: n(\"status.error\")\n };\n\n if (m.textContent = h[o] || o, d.appendChild(m), c) {\n var g = t(\"span\", {\n class: \"tokui-agent__duration\"\n });\n g.textContent = c, d.appendChild(g);\n }\n\n if (u.appendChild(d), s) {\n var _ = t(\"div\", {\n class: \"tokui-agent__action\"\n });\n\n _.textContent = s, u.appendChild(_);\n }\n\n if (e.children && e.children.length) {\n var v = t(\"div\", {\n class: \"tokui-agent__body\"\n });\n r(e.children).forEach(function (e) {\n e && e.nodeType && v.appendChild(e);\n }), u.appendChild(v), u._slot = v;\n }\n\n return u._tokuiType = \"agent\", u._update = function (e) {\n e.status && (u.className = \"tokui-agent tokui-agent--\" + e.status, f.className = \"tokui-agent__status-dot tokui-agent__status-dot--\" + e.status, m.textContent = h[e.status] || e.status), e.action && _ && (_.textContent = e.action), e.duration && g && (g.textContent = e.duration);\n }, u;\n }), e.register(\"file-tree\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-file-tree\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"file-tree\", r;\n }), e.register(\"ft-folder\", function (e, n) {\n var r = e.attrs || {},\n i = r.name || \"folder\",\n a = r.open !== void 0,\n o = t(\"div\", {\n class: \"tokui-file-tree__folder\" + (a ? \" tokui-file-tree__folder--open\" : \"\")\n }),\n s = t(\"div\", {\n class: \"tokui-file-tree__folder-name\"\n }),\n c = t(\"span\", {\n class: \"tokui-file-tree__folder-toggle\"\n });\n c.textContent = a ? \"\\u25BE\" : \"\\u25B8\", s.appendChild(c);\n var l = t(\"span\", {\n class: \"tokui-file-tree__folder-icon\"\n });\n l.textContent = \"\\uD83D\\uDCC1\", s.appendChild(l);\n var u = t(\"span\", {\n class: \"tokui-file-tree__name\"\n });\n u.textContent = i, s.appendChild(u), o.appendChild(s);\n var d = t(\"div\", {\n class: \"tokui-file-tree__folder-children\"\n });\n return a || (d.style.display = \"none\"), n(e.children || []).forEach(function (e) {\n e && e.nodeType && d.appendChild(e);\n }), o.appendChild(d), s.addEventListener(\"click\", function () {\n var e = o.classList.toggle(\"tokui-file-tree__folder--open\");\n c.textContent = e ? \"\\u25BE\" : \"\\u25B8\", d.style.display = e ? \"\" : \"none\";\n }), o._slot = d, o._tokuiType = \"ft-folder\", o;\n }), e.register(\"ft-file\", function (e) {\n var n = e.attrs || {},\n r = n.name || \"file\",\n i = n.badge || \"\",\n a = t(\"div\", {\n class: \"tokui-file-tree__file\"\n }),\n o = t(\"span\", {\n class: \"tokui-file-tree__file-icon\"\n });\n o.textContent = \"\\uD83D\\uDCC4\", a.appendChild(o);\n var s = t(\"span\", {\n class: \"tokui-file-tree__name\"\n });\n\n if (s.textContent = r, a.appendChild(s), i) {\n var c = t(\"span\", {\n class: \"tokui-file-tree__file-badge\"\n });\n c.textContent = i, a.appendChild(c);\n }\n\n return a;\n }), e.register(\"terminal\", function (e, n) {\n var r = e.attrs || {},\n i = r.title || \"Terminal\",\n a = r.status || \"\",\n o = t(\"div\", {\n class: \"tokui-terminal\" + (a && a !== \"0\" ? \" tokui-terminal--error\" : \"\")\n }),\n s = t(\"div\", {\n class: \"tokui-terminal__titlebar\"\n }),\n c = t(\"span\", {\n class: \"tokui-terminal__dots\"\n });\n [\"\\uD83D\\uDD34\", \"\\uD83D\\uDFE1\", \"\\uD83D\\uDFE2\"].forEach(function (e) {\n var n = t(\"span\", {\n class: \"tokui-terminal__dot\"\n });\n n.textContent = e, c.appendChild(n);\n }), s.appendChild(c);\n var l = t(\"span\", {\n class: \"tokui-terminal__title\"\n });\n l.textContent = i, s.appendChild(l), o.appendChild(s);\n var u = t(\"div\", {\n class: \"tokui-terminal__content\"\n });\n return e.content && (u.textContent = e.content), n(e.children || []).forEach(function (e) {\n e && e.nodeType && u.appendChild(e);\n }), o.appendChild(u), o._slot = u, o._tokuiType = \"terminal\", o;\n }), e.register(\"shimmer\", function (e) {\n var n = e.attrs || {},\n r = n.t || \"text\",\n i = parseInt(n.rows) || 3,\n a = t(\"div\", {\n class: \"tokui-shimmer tokui-shimmer--\" + r\n });\n\n if (r === \"card\") {\n var o = t(\"div\", {\n class: \"tokui-shimmer__circle\"\n });\n a.appendChild(o);\n\n for (var s = t(\"div\", {\n class: \"tokui-shimmer__lines\"\n }), c = 0; c < i; c++) {\n s.appendChild(t(\"div\", {\n class: \"tokui-shimmer__row\"\n }));\n }\n\n a.appendChild(s);\n } else if (r === \"avatar\") a.appendChild(t(\"div\", {\n class: \"tokui-shimmer__circle\"\n }));else for (var l = 0; l < i; l++) {\n a.appendChild(t(\"div\", {\n class: \"tokui-shimmer__row\"\n }));\n }\n\n return a;\n }), e.register(\"latency\", function (e) {\n var r = e.attrs || {},\n i = r.v || \"\",\n a = r.t || \"\",\n o = t(\"span\", {\n class: \"tokui-latency\" + (a ? \" tokui-latency--\" + a : \"\")\n }),\n s = {\n thinking: \"\\uD83D\\uDCA1\",\n generating: \"\\u26A1\",\n total: \"\\u23F1\"\n };\n\n if (a && s[a]) {\n var c = t(\"span\", {\n class: \"tokui-latency__icon\"\n });\n c.textContent = s[a], o.appendChild(c);\n }\n\n var l = t(\"span\", {\n class: \"tokui-latency__value\"\n });\n\n if (l.textContent = i, o.appendChild(l), a) {\n var u = t(\"span\", {\n class: \"tokui-latency__label\"\n });\n u.textContent = {\n thinking: n(\"agent.thinking\"),\n generating: n(\"agent.generating\"),\n total: n(\"agent.total\")\n }[a] || a, o.appendChild(u);\n }\n\n return o;\n }), e.register(\"video\", function (e) {\n var n = e.attrs || {},\n r = n.s || \"\",\n i = n.poster || \"\",\n a = t(\"div\", {\n class: \"tokui-video\"\n });\n n.w && (a.style.width = /^\\d+$/.test(n.w) ? n.w + \"px\" : n.w);\n var o = t(\"video\", {\n class: \"tokui-video__player\",\n preload: \"metadata\"\n });\n r && o.setAttribute(\"src\", r), i && o.setAttribute(\"poster\", i), o.setAttribute(\"controls\", \"\");\n var s = n.h || n.ratio;\n if (o.style.objectFit = n.fit || (s ? \"cover\" : \"contain\"), n.h) o.style.height = /^\\d+$/.test(n.h) ? n.h + \"px\" : n.h;else if (n.ratio) {\n var c = String(n.ratio).split(\":\");\n c.length === 2 && parseFloat(c[0]) && parseFloat(c[1]) && (o.style.aspectRatio = c[0].trim() + \" / \" + c[1].trim(), o.style.maxHeight = \"none\");\n }\n return a.appendChild(o), a;\n }), e.register(\"audio\", function (e) {\n var n = e.attrs || {},\n r = n.s || \"\",\n i = n.tt || \"\",\n a = n.duration || \"\",\n o = t(\"div\", {\n class: \"tokui-audio\"\n });\n n.w && (o.style.width = /^\\d+$/.test(n.w) ? n.w + \"px\" : n.w);\n var s = t(\"div\", {\n class: \"tokui-audio__info\"\n }),\n c = t(\"span\", {\n class: \"tokui-audio__icon\"\n });\n\n if (c.textContent = \"\\uD83D\\uDD0A\", s.appendChild(c), i) {\n var l = t(\"span\", {\n class: \"tokui-audio__title\"\n });\n l.textContent = i, s.appendChild(l);\n }\n\n if (a) {\n var u = t(\"span\", {\n class: \"tokui-audio__duration\"\n });\n u.textContent = a, s.appendChild(u);\n }\n\n o.appendChild(s);\n var d = t(\"audio\", {\n class: \"tokui-audio__player\",\n preload: \"metadata\"\n });\n return r && d.setAttribute(\"src\", r), d.setAttribute(\"controls\", \"\"), o.appendChild(d), o;\n }), e.register(\"quote\", function (e, n) {\n var r = e.attrs || {},\n i = t(\"div\", {\n class: \"tokui-quote\"\n }),\n a = t(\"div\", {\n class: \"tokui-quote__bar\"\n });\n i.appendChild(a);\n var o = t(\"div\", {\n class: \"tokui-quote__content\"\n });\n\n if (r.role) {\n var s = t(\"span\", {\n class: \"tokui-quote__role\"\n });\n s.textContent = r.role === \"user\" ? \"User\" : \"AI\", o.appendChild(s);\n }\n\n if (r.tx) {\n var c = t(\"div\", {\n class: \"tokui-quote__text\"\n });\n c.textContent = r.tx, o.appendChild(c);\n }\n\n return r.msgid && i.setAttribute(\"data-msgid\", r.msgid), n(e.children || []).forEach(function (e) {\n e && e.nodeType && o.appendChild(e);\n }), i.appendChild(o), i._slot = o, i._tokuiType = \"quote\", i;\n }), e.register(\"sandbox\", function (e, n) {\n var r = e.attrs || {},\n i = r.lang || \"\",\n a = r.title || \"Preview\",\n o = r.height || \"200\",\n s = t(\"div\", {\n class: \"tokui-sandbox\"\n }),\n c = t(\"div\", {\n class: \"tokui-sandbox__header\"\n }),\n l = t(\"span\", {\n class: \"tokui-sandbox__title\"\n });\n\n if (l.textContent = a, c.appendChild(l), i) {\n var u = t(\"span\", {\n class: \"tokui-sandbox__lang\"\n });\n u.textContent = i, c.appendChild(u);\n }\n\n s.appendChild(c);\n var d = t(\"div\", {\n class: \"tokui-sandbox__preview\"\n });\n d.style.height = o + \"px\";\n var f = e.content || \"\";\n\n if (!f && e.children && (f = e.children.filter(function (e) {\n return e.type === \"_text\" && e.content;\n }).map(function (e) {\n return e.content;\n }).join(\"\")), i === \"html\") {\n var p = t(\"iframe\", {\n class: \"tokui-sandbox__iframe\",\n sandbox: \"allow-scripts\",\n frameborder: \"0\"\n });\n f && p.setAttribute(\"srcdoc\", f), d.appendChild(p), s._slot = {\n appendChild: function appendChild(e) {\n var t = e.nodeType === 3 ? e.nodeValue : e.textContent || \"\";\n if (!t) return e;\n var n = p.getAttribute(\"srcdoc\") || \"\";\n return p.setAttribute(\"srcdoc\", n + t), e;\n }\n };\n } else {\n var m = t(\"pre\", {\n class: \"tokui-sandbox__code\"\n });\n f && (m.textContent = f), n((e.children || []).filter(function (e) {\n return e.type !== \"_text\";\n })).forEach(function (e) {\n e && e.nodeType && m.appendChild(e);\n }), d.appendChild(m), s._slot = d;\n }\n\n return s.appendChild(d), s._tokuiType = \"sandbox\", s;\n }), e.register(\"commit\", function (e) {\n var n = e.attrs || {},\n r = t(\"div\", {\n class: \"tokui-commit\"\n }),\n i = n.hash || \"\",\n a = n.msg || \"\",\n o = n.author || \"\",\n s = n.branch || \"\",\n c = n.time || \"\",\n l = n.additions || \"\",\n u = n.deletions || \"\",\n d = t(\"div\", {\n class: \"tokui-commit__row\"\n });\n\n if (i) {\n var f = t(\"span\", {\n class: \"tokui-commit__hash\"\n });\n f.textContent = i.slice(0, 7), d.appendChild(f);\n }\n\n if (a) {\n var p = t(\"span\", {\n class: \"tokui-commit__msg\"\n });\n p.textContent = a, d.appendChild(p);\n }\n\n r.appendChild(d);\n var m = t(\"div\", {\n class: \"tokui-commit__meta\"\n });\n\n if (o) {\n var h = t(\"span\", {\n class: \"tokui-commit__author\"\n });\n h.textContent = o, m.appendChild(h);\n }\n\n if (s) {\n var g = t(\"span\", {\n class: \"tokui-commit__branch\"\n });\n g.textContent = s, m.appendChild(g);\n }\n\n if (c) {\n var _ = t(\"span\", {\n class: \"tokui-commit__time\"\n });\n\n _.textContent = c, m.appendChild(_);\n }\n\n if (r.appendChild(m), l || u) {\n var v = t(\"div\", {\n class: \"tokui-commit__stats\"\n });\n\n if (l) {\n var y = t(\"span\", {\n class: \"tokui-commit__additions\"\n });\n y.textContent = \"+\" + l, v.appendChild(y);\n }\n\n if (u) {\n var b = t(\"span\", {\n class: \"tokui-commit__deletions\"\n });\n b.textContent = \"-\" + u, v.appendChild(b);\n }\n\n r.appendChild(v);\n }\n\n return r;\n }), e.register(\"test-result\", function (e, n) {\n var r = e.attrs || {},\n i = t(\"div\", {\n class: \"tokui-test-result\"\n }),\n a = t(\"div\", {\n class: \"tokui-test-result__summary\"\n });\n\n if ([{\n key: \"pass\",\n cls: \"--pass\",\n icon: \"\\u2713\"\n }, {\n key: \"fail\",\n cls: \"--fail\",\n icon: \"\\u2717\"\n }, {\n key: \"skip\",\n cls: \"--skip\",\n icon: \"\\u25CB\"\n }].forEach(function (e) {\n if (r[e.key]) {\n var n = t(\"span\", {\n class: \"tokui-test-result__count tokui-test-result__count\" + e.cls\n });\n n.textContent = e.icon + \" \" + r[e.key], a.appendChild(n);\n }\n }), r.total) {\n var o = t(\"span\", {\n class: \"tokui-test-result__count tokui-test-result__count--total\"\n });\n o.textContent = \"Total: \" + r.total, a.appendChild(o);\n }\n\n if (r.duration) {\n var s = t(\"span\", {\n class: \"tokui-test-result__duration\"\n });\n s.textContent = r.duration, a.appendChild(s);\n }\n\n i.appendChild(a);\n var c = t(\"div\", {\n class: \"tokui-test-result__cases\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && c.appendChild(e);\n }), i.appendChild(c), i._slot = c, i._tokuiType = \"test-result\", i;\n });\n\n function _(e) {\n var n = e.attrs || {},\n r = n.status || \"pass\",\n i = t(\"div\", {\n class: \"tokui-test-case tokui-test-case--\" + r,\n \"data-tokui-tag\": e.type\n }),\n a = t(\"span\", {\n class: \"tokui-test-case__status\"\n });\n a.textContent = {\n pass: \"\\u2713\",\n fail: \"\\u2717\",\n skip: \"\\u25CB\"\n }[r] || r, i.appendChild(a);\n var o = t(\"span\", {\n class: \"tokui-test-case__name\"\n });\n\n if (o.textContent = n.name || \"test\", i.appendChild(o), n.duration) {\n var s = t(\"span\", {\n class: \"tokui-test-case__duration\"\n });\n s.textContent = n.duration, i.appendChild(s);\n }\n\n if (r === \"fail\" && n.error) {\n var c = t(\"div\", {\n class: \"tokui-test-case__error\"\n });\n c.textContent = n.error, i.appendChild(c);\n }\n\n return i;\n }\n\n e.register(\"test-case\", function (e) {\n return _(e);\n }), e.register(\"case\", function (e) {\n return _(e);\n }), e.register(\"conversations\", function (e, r) {\n var i = e.attrs || {},\n a = i.clk || \"\",\n o = i.act || \"\",\n s = t(\"div\", {\n class: \"tokui-conversations\",\n role: \"list\"\n }),\n c = (e.children || []).filter(function (e) {\n return e.type === \"conv\";\n }),\n l = null;\n if (c.length === 0) return l = t(\"div\", {\n class: \"tokui-conversations__empty\"\n }), l.textContent = n(\"chat.emptySessions\"), s.appendChild(l), s._slot = s, s._tokuiType = \"conversations\", s._convHandlerName = a, s._convActiveAct = o, s._streamCloseHook = function () {\n s.querySelector(\".tokui-conv\") && l && l.parentNode && l.parentNode.removeChild(l);\n }, s;\n var u = y(c);\n return u.forEach(function (e) {\n if (u.length > 1) {\n var n = t(\"div\", {\n class: \"tokui-conversations__group-header\"\n });\n n.textContent = e.label, s.appendChild(n);\n }\n\n e.items.forEach(function (e) {\n var t = b(e, a, o, s);\n s.appendChild(t);\n });\n }), s._slot = s, s._tokuiType = \"conversations\", s;\n }), e.register(\"conv\", function (e) {\n return b(e, \"\", \"\", null);\n });\n\n function v(e) {\n return /^\\d{1,2}:\\d{2}$/.test(e);\n }\n\n function y(e) {\n var t = [],\n r = [],\n i = [];\n e.forEach(function (e) {\n var n = e.attrs && e.attrs.time || \"\";\n v(n) ? t.push(e) : n === \"\\u6628\\u5929\" ? r.push(e) : i.push(e);\n });\n var a = [];\n return t.length && a.push({\n label: n(\"time.today\"),\n items: t\n }), r.length && a.push({\n label: n(\"time.yesterday\"),\n items: r\n }), i.length && a.push({\n label: n(\"time.earlier\"),\n items: i\n }), a.length ? a : [{\n label: n(\"time.today\"),\n items: e\n }];\n }\n\n function b(e, r, i, a) {\n var o = e.attrs || {},\n s = o.tt || \"\",\n c = o.time || \"\",\n l = o.active === !0 || o.active === \"true\";\n !l && i && o.act && o.act === i && (l = !0);\n var u = [\"tokui-conv\"];\n l && u.push(\"tokui-conv--active\");\n var d = t(\"div\", {\n class: u.join(\" \"),\n role: \"listitem\",\n tabindex: \"0\",\n \"data-tokui-tag\": \"conv\"\n }),\n f = t(\"div\", {\n class: \"tokui-conv__title\"\n });\n\n if (f.textContent = s, d.appendChild(f), c) {\n var p = t(\"span\", {\n class: \"tokui-conv__time\"\n });\n p.textContent = c, d.appendChild(p);\n }\n\n var m = t(\"div\", {\n class: \"tokui-conv__actions\"\n }),\n h = t(\"button\", {\n class: \"tokui-conv__delete\",\n type: \"button\",\n \"aria-label\": n(\"common.delete\")\n });\n return h.textContent = \"\\xD7\", m.appendChild(h), d.appendChild(m), d.addEventListener(\"click\", function (e) {\n if (!(e.target.closest && e.target.closest(\".tokui-conv__delete\")) && ((a ? a.querySelectorAll(\".tokui-conv\") : [d]).forEach(function (e) {\n e.classList.remove(\"tokui-conv--active\");\n }), d.classList.add(\"tokui-conv--active\"), r)) {\n var t = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n t && typeof t.emit == \"function\" && t.emit(r, {\n tt: s,\n time: c,\n act: o.act || \"\"\n });\n }\n }), d.addEventListener(\"keydown\", function (e) {\n e.key === \"Enter\" && d.click();\n }), h.addEventListener(\"click\", function (e) {\n e.stopPropagation(), d.parentNode && d.parentNode.removeChild(d);\n }), r && d.setAttribute(\"data-tokui-clk\", r), d;\n }\n\n e.register(\"welcome\", function (e, n) {\n var r = e.attrs || {},\n i = r.tt || \"\",\n a = r.st || \"\",\n o = r.bd ? String(r.bd).split(\",\") : [],\n s = r.hd || \"\",\n c = r.ft || \"\",\n l = t(\"div\", {\n class: \"tokui-welcome\"\n });\n\n if (i || a || o.length) {\n var u = t(\"div\", {\n class: \"tokui-welcome__hero\"\n });\n\n if (i) {\n var d = t(\"div\", {\n class: \"tokui-welcome__title\"\n });\n d.textContent = i, u.appendChild(d);\n }\n\n if (a) {\n var f = t(\"div\", {\n class: \"tokui-welcome__subtitle\"\n });\n f.textContent = a, u.appendChild(f);\n }\n\n if (o.length) {\n var p = t(\"div\", {\n class: \"tokui-welcome__badges\"\n });\n o.forEach(function (e) {\n var n = String(e).trim();\n\n if (n) {\n var r = t(\"span\", {\n class: \"tokui-welcome__badge\"\n });\n r.textContent = n, p.appendChild(r);\n }\n }), u.appendChild(p);\n }\n\n l.appendChild(u);\n }\n\n if (s) {\n var m = t(\"div\", {\n class: \"tokui-welcome__section\"\n });\n m.textContent = s, l.appendChild(m);\n }\n\n var h = t(\"div\", {\n class: \"tokui-welcome__grid\"\n });\n\n if (n(e.children || []).forEach(function (e) {\n e && e.nodeType && h.appendChild(e);\n }), l.appendChild(h), c) {\n var g = t(\"div\", {\n class: \"tokui-welcome__footer\"\n });\n g.textContent = c, l.appendChild(g);\n }\n\n return l._slot = h, l._tokuiType = \"welcome\", l;\n });\n\n function x(e) {\n var n = e.attrs || {},\n r = n.tt || \"\",\n i = n.tx || \"\",\n a = n.i || \"code\",\n o = n.clk || \"\",\n s = {\n 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>\",\n 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>\",\n doc: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\\\"/><polyline points=\\\"14 2 14 8 20 8\\\"/><line x1=\\\"16\\\" y1=\\\"13\\\" x2=\\\"8\\\" y2=\\\"13\\\"/><line x1=\\\"16\\\" y1=\\\"17\\\" x2=\\\"8\\\" y2=\\\"17\\\"/></svg>\",\n dashboard: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"8\\\" height=\\\"10\\\" rx=\\\"1\\\"/><rect x=\\\"13\\\" y=\\\"3\\\" width=\\\"8\\\" height=\\\"6\\\" rx=\\\"1\\\"/><rect x=\\\"13\\\" y=\\\"13\\\" width=\\\"8\\\" height=\\\"8\\\" rx=\\\"1\\\"/><rect x=\\\"3\\\" y=\\\"17\\\" width=\\\"8\\\" height=\\\"4\\\" rx=\\\"1\\\"/></svg>\",\n print: \"<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=\\\"6 9 6 2 18 2 18 9\\\"/><path d=\\\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\\\"/><rect x=\\\"6\\\" y=\\\"14\\\" width=\\\"12\\\" height=\\\"8\\\" rx=\\\"1\\\"/></svg>\",\n chat: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\\\"/></svg>\",\n table: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><rect x=\\\"3\\\" y=\\\"4\\\" width=\\\"18\\\" height=\\\"16\\\" rx=\\\"1\\\"/><line x1=\\\"3\\\" y1=\\\"10\\\" x2=\\\"21\\\" y2=\\\"10\\\"/><line x1=\\\"9\\\" y1=\\\"10\\\" x2=\\\"9\\\" y2=\\\"20\\\"/></svg>\",\n form: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M9 11l3 3L22 4\\\"/><path d=\\\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\\\"/></svg>\"\n },\n c = {\n class: [\"tokui-welcome-feature\", \"tokui-welcome-feature--\" + a].join(\" \"),\n role: \"button\",\n tabindex: \"0\",\n \"data-tokui-tag\": e.type\n };\n o && (c[\"data-tokui-clk\"] = o), Object.keys(n).forEach(function (e) {\n e.indexOf(\"data-\") === 0 && (c[e] = n[e]);\n });\n var l = t(\"div\", c),\n u = t(\"div\", {\n class: \"tokui-welcome-feature__icon\"\n });\n u.innerHTML = s[a] || s.code, l.appendChild(u);\n var d = t(\"div\", {\n class: \"tokui-welcome-feature__body\"\n });\n\n if (r) {\n var f = t(\"div\", {\n class: \"tokui-welcome-feature__title\"\n });\n f.textContent = r, d.appendChild(f);\n }\n\n if (i) {\n var p = t(\"div\", {\n class: \"tokui-welcome-feature__desc\"\n });\n p.textContent = i, d.appendChild(p);\n }\n\n return l.appendChild(d), l._tokuiType = \"welcome-feature\", l;\n }\n\n e.register(\"welcome-feature\", function (e) {\n return x(e);\n }), e.register(\"feature\", function (e) {\n return x(e);\n }), e.register(\"attachments\", function (e, n) {\n var r = (e.attrs || {}).clk || \"\",\n i = t(\"div\", {\n class: \"tokui-attachments\"\n });\n return r && i.setAttribute(\"data-tokui-clk\", r), n(e.children || []).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), i._slot = i, i._tokuiType = \"attachments\", i;\n }), e.register(\"attach\", function (e) {\n var r = e.attrs || {},\n i = r.t || \"default\",\n a = r.s || n(\"file.unnamed\"),\n o = r.u || \"\",\n c = r.size || \"\",\n l = r.clk || \"\",\n u = {\n pdf: \"#f5222d\",\n code: \"#1677ff\",\n excel: \"#52c41a\",\n word: \"#1677ff\",\n ppt: \"#fa8c16\",\n zip: \"#eab308\",\n video: \"#722ed1\",\n audio: \"#13c2c2\",\n image: \"#eb2f96\",\n default: \"#8c8c8c\"\n },\n d = u[i] || u.default,\n f = t(\"div\", {\n class: \"tokui-attach tokui-attach--\" + i\n });\n\n if (l && f.setAttribute(\"data-tokui-clk\", l), i === \"image\" && o) {\n var p = t(\"img\", {\n class: \"tokui-attach__thumb\",\n src: o,\n alt: a\n });\n f.appendChild(p);\n } else {\n var m = t(\"div\", {\n class: \"tokui-attach__icon\"\n });\n m.innerHTML = s(i, d), f.appendChild(m);\n }\n\n var h = t(\"div\", {\n class: \"tokui-attach__info\"\n }),\n g = t(\"div\", {\n class: \"tokui-attach__name\"\n });\n\n if (g.textContent = a, o && (g.style.cursor = \"pointer\", g.addEventListener(\"click\", function () {\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.open(o, \"_blank\");\n })), h.appendChild(g), c) {\n var _ = t(\"div\", {\n class: \"tokui-attach__size\"\n });\n\n _.textContent = c, h.appendChild(_);\n }\n\n f.appendChild(h);\n var v = t(\"div\", {\n class: \"tokui-attach__actions\"\n });\n\n if (o) {\n var y = t(\"a\", {\n class: \"tokui-attach__action\",\n href: o,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n download: \"\"\n });\n y.innerHTML = \"<svg viewBox=\\\"0 0 16 16\\\" width=\\\"14\\\" height=\\\"14\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M8 2v9M4.5 7.5L8 11l3.5-3.5M2 13h12\\\"/></svg>\", y.title = n(\"common.download\"), v.appendChild(y);\n }\n\n var b = t(\"button\", {\n class: \"tokui-attach__action tokui-attach__action--del\",\n type: \"button\"\n });\n return b.innerHTML = \"<svg viewBox=\\\"0 0 16 16\\\" width=\\\"14\\\" height=\\\"14\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M4 4l8 8M12 4l-8 8\\\"/></svg>\", b.title = n(\"common.delete\"), b.addEventListener(\"click\", function (e) {\n if (e.stopPropagation(), l) {\n var t = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n t && typeof t.emit == \"function\" && t.emit(l, {\n name: a,\n url: o,\n type: i\n });\n }\n\n f.parentNode && f.parentNode.removeChild(f);\n }), v.appendChild(b), f.appendChild(v), f._tokuiType = \"attach\", f;\n }), e.register(\"artifact\", function (e, n) {\n var r = e.attrs || {},\n o = r.tt || \"Artifact\",\n s = r.lang || \"text\";\n r.pos, r.w;\n var c = t(\"div\", {\n class: \"tokui-artifact\"\n }),\n l = t(\"div\", {\n class: \"tokui-artifact__header\"\n }),\n d = t(\"span\", {\n class: \"tokui-artifact__title\"\n });\n d.textContent = o, l.appendChild(d);\n var f = t(\"div\", {\n class: \"tokui-artifact__tabs\"\n }),\n m = t(\"button\", {\n class: \"tokui-artifact__tab tokui-artifact__tab--code tokui-artifact__tab--active\",\n type: \"button\"\n });\n m.textContent = \"Code\", f.appendChild(m);\n var h = t(\"button\", {\n class: \"tokui-artifact__tab tokui-artifact__tab--preview\",\n type: \"button\"\n });\n h.textContent = \"Preview\", f.appendChild(h), l.appendChild(f);\n var g = t(\"button\", {\n class: \"tokui-artifact__close\",\n type: \"button\",\n \"aria-label\": \"Close\"\n });\n g.innerHTML = \"×\", l.appendChild(g), c.appendChild(l);\n\n var _ = t(\"div\", {\n class: \"tokui-artifact__code\"\n }),\n v = \"\",\n y = (e.children || []).filter(function (e) {\n return e.type === \"artifact-code\";\n });\n\n y.length > 0 && (v = (y[0].children || []).map(function (e) {\n return e.content || \"\";\n }).join(\"\"));\n var b = t(\"pre\", {\n class: \"tokui-code\"\n }),\n x = t(\"code\", {\n class: \"language-\" + s\n });\n s !== \"text\" && i[s] ? x.innerHTML = p(a(v, s)) : x.innerHTML = p(u(v)), b.appendChild(x), _.appendChild(b);\n var S = t(\"button\", {\n class: \"tokui-artifact__code-copy\",\n type: \"button\"\n });\n S.textContent = \"Copy\", S.addEventListener(\"click\", function () {\n var e = x.textContent || \"\";\n (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) < \"u\" && navigator.clipboard && navigator.clipboard.writeText(e), S.textContent = \"Copied\", S.classList.add(\"tokui-artifact__code-copy--done\"), setTimeout(function () {\n S.textContent = \"Copy\", S.classList.remove(\"tokui-artifact__code-copy--done\");\n }, 2e3);\n }), _.appendChild(S), c.appendChild(_);\n var C = t(\"div\", {\n class: \"tokui-artifact__preview\"\n });\n C.style.display = \"none\";\n var w = t(\"iframe\", {\n class: \"tokui-artifact__iframe\",\n sandbox: \"allow-scripts\",\n frameborder: \"0\"\n }),\n T = \"\";\n T = s === \"html\" ? v : \"<pre style=\\\"margin:0;padding:16px;font-family:monospace;font-size:13px;white-space:pre-wrap;word-break:break-word;\\\">\" + v.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\") + \"</pre>\", w.setAttribute(\"srcdoc\", T), C.appendChild(w), c.appendChild(C);\n var E = t(\"div\", {\n class: \"tokui-artifact__resize\"\n });\n c.appendChild(E), m.addEventListener(\"click\", function () {\n _.style.display = \"\", C.style.display = \"none\", m.classList.add(\"tokui-artifact__tab--active\"), h.classList.remove(\"tokui-artifact__tab--active\");\n }), h.addEventListener(\"click\", function () {\n _.style.display = \"none\", C.style.display = \"\", h.classList.add(\"tokui-artifact__tab--active\"), m.classList.remove(\"tokui-artifact__tab--active\");\n }), g.addEventListener(\"click\", function () {\n var e = new CustomEvent(\"tokui-artifact-close\", {\n bubbles: !0,\n detail: {\n artifact: c\n }\n });\n c.dispatchEvent(e), c.style.display = \"none\";\n });\n var D = !1;\n E.addEventListener(\"mousedown\", function (e) {\n D = !0, e.preventDefault(), document.addEventListener(\"mousemove\", O), document.addEventListener(\"mouseup\", k);\n });\n\n function O(e) {\n if (D) {\n var t = c.getBoundingClientRect();\n\n if (t) {\n var n = t.bottom - e.clientY;\n n = Math.max(120, n), c.style.height = n + \"px\";\n }\n }\n }\n\n function k() {\n D = !1, document.removeEventListener(\"mousemove\", O), document.removeEventListener(\"mouseup\", k);\n }\n\n return c._slot = x, c._tokuiType = \"artifact\", c._artifactCode = v, setTimeout(function () {\n c.querySelectorAll(\".tokui-artifact-preview-standalone\").forEach(function (e) {\n e.parentNode && e.parentNode.removeChild(e);\n });\n }, 0), c._streamCloseHook = function () {\n var t = (e.children || []).find(function (e) {\n return e.type === \"artifact-code\";\n }),\n n;\n if (t) n = (t.children || []).map(function (e) {\n return e.content || \"\";\n }).join(\"\");else {\n n = \"\";\n\n for (var r = c.querySelectorAll(\"pre\"), o = 0; o < r.length; o++) {\n if (r[o]._tokuiType === \"artifact-code\") {\n var l = r[o].querySelector(\"code\");\n\n if (l) {\n n = l.textContent || \"\";\n break;\n }\n }\n }\n\n n || (n = c._artifactCode || \"\");\n }\n s !== \"text\" && i[s] ? x.innerHTML = p(a(n, s)) : x.innerHTML = p(u(n)), c._artifactCode = n;\n var d = \"\";\n d = s === \"html\" ? n : \"<pre style=\\\"margin:0;padding:16px;font-family:monospace;font-size:13px;white-space:pre-wrap;word-break:break-word;\\\">\" + n.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\") + \"</pre>\", w.setAttribute(\"srcdoc\", d);\n var f = c.querySelector(\".tokui-artifact-preview-standalone\");\n f && f.parentNode && f.parentNode.removeChild(f);\n }, c;\n }), e.register(\"artifact-code\", function (e, n) {\n var r = \"\";\n r = e.children && e.children.length > 0 ? e.children.map(function (e) {\n return e.content || \"\";\n }).join(\"\") : e.content || \"\";\n var i = t(\"pre\", {\n class: \"tokui-code\"\n }),\n a = t(\"code\", {});\n return a.textContent = r, i.appendChild(a), i._slot = a, i._tokuiType = \"artifact-code\", i._streamCloseHook = function () {\n for (var e = \"\", t = 0; t < a.childNodes.length; t++) {\n e += a.childNodes[t].textContent || \"\";\n }\n\n a.textContent = e;\n }, i;\n }), e.register(\"artifact-preview\", function (e, n, r) {\n if (r === \"artifact\") {\n var i = t(\"div\", {\n style: \"display:none\"\n });\n return i._tokuiType = \"artifact-preview\", i;\n }\n\n var a = t(\"div\", {\n class: \"tokui-artifact-preview-standalone\"\n }),\n o = t(\"iframe\", {\n class: \"tokui-artifact__iframe\",\n sandbox: \"allow-scripts\",\n frameborder: \"0\"\n }),\n s = \"\";\n return e.children && e.children.length > 0 && (s = e.children.map(function (e) {\n return e.content || \"\";\n }).join(\"\")), s && o.setAttribute(\"srcdoc\", s), a.appendChild(o), a._tokuiType = \"artifact-preview\", a;\n }), e.register(\"command\", function (e, r) {\n var i = e.attrs || {},\n a = i.ph || n(\"command.placeholder\"),\n o = t(\"div\", {\n class: \"tokui-command\"\n });\n i.id && (o.id = i.id), i.clk && o.setAttribute(\"data-tokui-clk\", i.clk);\n var s = t(\"div\", {\n class: \"tokui-command__overlay\"\n });\n o.appendChild(s);\n var c = t(\"div\", {\n class: \"tokui-command__panel\",\n role: \"dialog\",\n \"aria-label\": n(\"command.aria\")\n }),\n l = t(\"div\", {\n class: \"tokui-command__input-wrap\"\n }),\n u = t(\"span\", {\n class: \"tokui-command__search-icon\",\n \"aria-hidden\": \"true\"\n });\n u.innerHTML = \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"18\\\" height=\\\"18\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><circle cx=\\\"11\\\" cy=\\\"11\\\" r=\\\"8\\\"/><path d=\\\"M21 21l-4.35-4.35\\\"/></svg>\", l.appendChild(u);\n var d = t(\"input\", {\n class: \"tokui-command__input\",\n type: \"text\",\n placeholder: a,\n autocomplete: \"off\",\n autofocus: \"true\"\n });\n l.appendChild(d), c.appendChild(l);\n var f = t(\"div\", {\n class: \"tokui-command__list\",\n role: \"listbox\"\n });\n r(e.children || []).forEach(function (e) {\n e && e.nodeType && f.appendChild(e);\n });\n var p = t(\"div\", {\n class: \"tokui-command__empty\"\n });\n p.textContent = n(\"command.noResult\"), p.style.display = \"none\", f.appendChild(p), c.appendChild(f), o.appendChild(c);\n var m = [],\n h = [];\n\n function g() {\n m = Array.from(f.querySelectorAll(\".tokui-command__item\")), h = Array.from(f.querySelectorAll(\".tokui-command__group\"));\n }\n\n g();\n\n function _(e, t) {\n if (!t) return {\n match: !0,\n score: 0\n };\n var n = e.toLowerCase(),\n r = t.toLowerCase();\n if (n.indexOf(r) !== -1) return {\n match: !0,\n score: r.length / n.length\n };\n\n for (var i = 0, a = 0, o = 0; o < n.length && i < r.length; o++) {\n n[o] === r[i] && (i++, a++);\n }\n\n return i === r.length ? {\n match: !0,\n score: a / n.length\n } : {\n match: !1,\n score: 0\n };\n }\n\n function v(e, t) {\n if (!t) return document.createTextNode(e);\n var n = e.toLowerCase(),\n r = t.toLowerCase(),\n i = n.indexOf(r);\n if (i === -1) return document.createTextNode(e);\n var a = document.createDocumentFragment(),\n o = e.slice(0, i),\n s = e.slice(i, i + r.length),\n c = e.slice(i + r.length);\n o && a.appendChild(document.createTextNode(o));\n var l = document.createElement(\"mark\");\n return l.className = \"tokui-command__highlight\", l.textContent = s, a.appendChild(l), c && a.appendChild(document.createTextNode(c)), a;\n }\n\n function y(e) {\n var t = 0;\n m.forEach(function (n) {\n var r = n.getAttribute(\"data-value\") || n.textContent || \"\";\n\n if (_(r, e).match) {\n n.style.display = \"\", t++;\n var i = n.querySelector(\".tokui-command__item-text\");\n i && (i.innerHTML = \"\", i.appendChild(v(r, e)));\n } else n.style.display = \"none\", n.classList.remove(\"tokui-command__item--selected\");\n }), h.forEach(function (e) {\n var t = e.querySelectorAll(\".tokui-command__item:not([style*=\\\"display: none\\\"])\");\n e.style.display = t.length === 0 ? \"none\" : \"\";\n }), p.style.display = t === 0 ? \"\" : \"none\", b = -1, t > 0 && (b = 0, S());\n }\n\n d.addEventListener(\"input\", function () {\n y(d.value.trim());\n });\n var b = -1;\n\n function x() {\n return m.filter(function (e) {\n return e.style.display !== \"none\";\n });\n }\n\n function S() {\n x().forEach(function (e, t) {\n t === b ? (e.classList.add(\"tokui-command__item--selected\"), e.setAttribute(\"aria-selected\", \"true\"), e.scrollIntoView && e.scrollIntoView({\n block: \"nearest\"\n })) : (e.classList.remove(\"tokui-command__item--selected\"), e.setAttribute(\"aria-selected\", \"false\"));\n });\n }\n\n function C(e) {\n if (e) {\n var t = e.getAttribute(\"data-tokui-clk\");\n\n if (t) {\n var n = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n n && typeof n.emit == \"function\" && n.emit(t, {\n value: e.getAttribute(\"data-value\"),\n text: e.textContent\n });\n }\n\n var r = o.getAttribute(\"data-tokui-clk\");\n\n if (r) {\n var i = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n i && typeof i.emit == \"function\" && i.emit(r, {\n value: e.getAttribute(\"data-value\"),\n text: e.textContent,\n clk: t\n });\n }\n\n T();\n }\n }\n\n d.addEventListener(\"keydown\", function (e) {\n var t = x();\n e.key === \"ArrowDown\" ? (e.preventDefault(), t.length > 0 && (b = (b + 1) % t.length, S())) : e.key === \"ArrowUp\" ? (e.preventDefault(), t.length > 0 && (b = b <= 0 ? t.length - 1 : b - 1, S())) : e.key === \"Enter\" ? (e.preventDefault(), b >= 0 && b < t.length && C(t[b])) : e.key === \"Escape\" && (e.preventDefault(), T());\n });\n\n function w() {\n g(), y(d.value || \"\"), o.classList.add(\"tokui-command--open\"), d.focus();\n }\n\n function T() {\n o.classList.remove(\"tokui-command--open\"), d.value = \"\", y(\"\"), b = -1;\n }\n\n s.addEventListener(\"click\", function () {\n T();\n });\n\n function E(e) {\n (e.metaKey || e.ctrlKey) && e.key === \"k\" && (e.preventDefault(), o.classList.contains(\"tokui-command--open\") ? T() : w());\n }\n\n return i.hotkey !== void 0 && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.addEventListener(\"keydown\", E), o._tokuiType = \"command\", o._slot = f, o._openCommand = w, o._closeCommand = T, o._streamCloseHook = function () {\n g(), y(d.value || \"\");\n }, o;\n });\n\n function S(e) {\n var n = e.attrs || {},\n r = n.tx || \"\",\n i = n.v || r,\n a = t(\"div\", {\n class: \"tokui-command__item\",\n role: \"option\",\n tabindex: \"-1\",\n \"data-value\": i,\n \"aria-selected\": \"false\",\n \"data-tokui-tag\": e.type\n });\n n.clk && a.setAttribute(\"data-tokui-clk\", n.clk);\n var o = t(\"span\", {\n class: \"tokui-command__item-text\"\n });\n\n if (o.textContent = r, a.appendChild(o), n.shortcut) {\n var s = t(\"span\", {\n class: \"tokui-command__item-shortcut\"\n });\n s.textContent = n.shortcut, a.appendChild(s);\n }\n\n return a.addEventListener(\"click\", function () {\n var e = a.closest ? a.closest(\".tokui-command\") : null;\n\n if (e && e._closeCommand) {\n var t = a.getAttribute(\"data-tokui-clk\");\n\n if (t) {\n var n = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n n && typeof n.emit == \"function\" && n.emit(t, {\n value: i,\n text: r\n });\n }\n\n var o = e.getAttribute(\"data-tokui-clk\");\n\n if (o) {\n var s = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal.eventBus : null;\n s && typeof s.emit == \"function\" && s.emit(o, {\n value: i,\n text: r,\n clk: t\n });\n }\n\n e._closeCommand();\n }\n }), a.addEventListener(\"mouseenter\", function () {\n var e = a.closest ? a.closest(\".tokui-command__list\") : null;\n e && (Array.from(e.querySelectorAll(\".tokui-command__item:not([style*=\\\"display: none\\\"])\")).forEach(function (e) {\n e.classList.remove(\"tokui-command__item--selected\"), e.setAttribute(\"aria-selected\", \"false\");\n }), a.classList.add(\"tokui-command__item--selected\"), a.setAttribute(\"aria-selected\", \"true\"));\n }), a;\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal && (window.TokUI._internal.buildCommandItem = S), e.register(\"command-group\", function (e, n) {\n var r = (e.attrs || {}).tt || \"\",\n i = t(\"div\", {\n class: \"tokui-command__group\",\n role: \"group\"\n });\n\n if (r) {\n i.setAttribute(\"aria-label\", r);\n var a = t(\"div\", {\n class: \"tokui-command__group-heading\"\n });\n a.textContent = r, i.appendChild(a);\n }\n\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), i._slot = i, i._tokuiType = \"command-group\", i;\n }), e.register(\"command-item\", function (e) {\n return S(e);\n }), e.register(\"canvas\", function (e, n) {\n var r = e.attrs || {},\n i = r.tt || \"Canvas\",\n a = r.pos || \"right\",\n o = parseInt(r.w) || 400,\n s = r.open !== void 0,\n c = r.closable === void 0 || r.closable === !0,\n l = [\"tokui-canvas\", \"tokui-canvas--\" + a];\n s && l.push(\"tokui-canvas--open\");\n var u = t(\"div\", {\n class: l.join(\" \")\n });\n u.style.setProperty(\"--tokui-canvas-w\", o + \"px\");\n var d = t(\"button\", {\n class: \"tokui-canvas__toggle\",\n type: \"button\",\n \"aria-label\": s ? \"Close panel\" : \"Open panel\"\n });\n d.textContent = i, d.addEventListener(\"click\", function () {\n var e = u.classList.contains(\"tokui-canvas--open\");\n u.classList.toggle(\"tokui-canvas--open\"), d.setAttribute(\"aria-label\", e ? \"Open panel\" : \"Close panel\");\n }), u.appendChild(d);\n var f = t(\"div\", {\n class: \"tokui-canvas__panel\"\n });\n f.style.width = o + \"px\";\n var p = t(\"div\", {\n class: \"tokui-canvas__header\"\n }),\n m = t(\"span\", {\n class: \"tokui-canvas__title\"\n });\n\n if (m.textContent = i, p.appendChild(m), c) {\n var h = t(\"button\", {\n class: \"tokui-canvas__close\",\n type: \"button\",\n \"aria-label\": \"Close\"\n });\n h.innerHTML = \"×\", h.addEventListener(\"click\", function () {\n u.classList.remove(\"tokui-canvas--open\"), d.setAttribute(\"aria-label\", \"Open panel\");\n }), p.appendChild(h);\n }\n\n f.appendChild(p);\n var g = t(\"div\", {\n class: \"tokui-canvas__body\"\n });\n return r.tx && (g.textContent = r.tx), n(e.children || []).forEach(function (e) {\n e && e.nodeType && g.appendChild(e);\n }), f.appendChild(g), u.appendChild(f), u._slot = g, u._tokuiType = \"canvas\", u._update = function (e) {\n if (e.tt !== void 0) {\n var t = u.querySelector(\".tokui-canvas__title\");\n t && (t.textContent = e.tt), d.textContent = e.tt;\n }\n\n e.act === \"open\" ? u.classList.add(\"tokui-canvas--open\") : e.act === \"close\" ? u.classList.remove(\"tokui-canvas--open\") : e.act === \"toggle\" && u.classList.toggle(\"tokui-canvas--open\");\n }, u;\n }), e.register(\"canvas-content\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-canvas__content\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"canvas-content\", r;\n });\n }\n\n function s(e, t) {\n var n = \"1.5\",\n r = \"round\",\n i = \"round\",\n a = \"<path d=\\\"M6 2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4a2 2 0 012-2z\\\" fill=\\\"none\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"\" + n + \"\\\" stroke-linecap=\\\"\" + r + \"\\\" stroke-linejoin=\\\"\" + i + \"\\\"/><path d=\\\"M14 2v6h6\\\" fill=\\\"none\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"\" + n + \"\\\" stroke-linecap=\\\"\" + r + \"\\\" stroke-linejoin=\\\"\" + i + \"\\\"/>\",\n o = {\n pdf: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<text x=\\\"12\\\" y=\\\"16.5\\\" text-anchor=\\\"middle\\\" font-size=\\\"5.5\\\" font-weight=\\\"700\\\" font-family=\\\"sans-serif\\\" fill=\\\"\" + t + \"\\\">PDF</text></svg>\",\n word: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<text x=\\\"12\\\" y=\\\"16.5\\\" text-anchor=\\\"middle\\\" font-size=\\\"7\\\" font-weight=\\\"700\\\" font-family=\\\"sans-serif\\\" fill=\\\"\" + t + \"\\\">W</text></svg>\",\n excel: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<path d=\\\"M9 11v6M12 11v6M8 14h4\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/></svg>\",\n ppt: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<circle cx=\\\"12\\\" cy=\\\"14\\\" r=\\\"3\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.5\\\" fill=\\\"none\\\"/></svg>\",\n zip: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<path d=\\\"M10 10h4M10 13h4M10 16h2\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/></svg>\",\n code: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<path d=\\\"M9 12l-2 2 2 2M15 12l2 2-2 2\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/></svg>\",\n video: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<path d=\\\"M10 12.5l4-2.5v5l-4-2.5z\\\" fill=\\\"none\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.5\\\" stroke-linejoin=\\\"round\\\"/></svg>\",\n audio: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<path d=\\\"M10 15v-3M12 13v4M14 11v6\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/></svg>\",\n image: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<circle cx=\\\"10\\\" cy=\\\"11\\\" r=\\\"1.5\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/><path d=\\\"M8 17l3-3 2 2 3-4 3 5H8z\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.2\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/></svg>\",\n default: \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" height=\\\"24\\\" fill=\\\"none\\\">\" + a + \"<path d=\\\"M9 12h6M9 15h4\\\" stroke=\\\"\" + t + \"\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\"/></svg>\"\n };\n return o[e] || o.default;\n }\n\n function c(e, t) {\n if (t <= 7) {\n for (var n = [], r = 1; r <= t; r++) {\n n.push(r);\n }\n\n return n;\n }\n\n var i = [1];\n e > 3 && i.push(\"...\");\n\n for (var a = Math.max(2, e - 1), o = Math.min(t - 1, e + 1), s = a; s <= o; s++) {\n i.push(s);\n }\n\n return e < t - 2 && i.push(\"...\"), i.push(t), i;\n }\n\n function l() {\n (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) > \"u\" || document.querySelectorAll(\".tokui-dropdown__panel--open\").forEach(function (e) {\n e.classList.remove(\"tokui-dropdown__panel--open\"), e.style.top = \"\", e.style.left = \"\";\n var t = e.parentElement.querySelector(\".tokui-dropdown__trigger\");\n t && t.setAttribute(\"aria-expanded\", \"false\");\n });\n }\n\n (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && typeof document.addEventListener == \"function\" && document.addEventListener(\"click\", function () {\n l();\n });\n\n function d(e) {\n var t = e.querySelectorAll(\".tokui-md-img\");\n if (!t.length) return;\n var n = Array.from(t).map(function (e) {\n return e.src;\n });\n t.forEach(function (e, t) {\n e.style.cursor = \"pointer\", e.addEventListener(\"click\", function () {\n var _ref5 = true ? g() : undefined,\n e = _ref5.getLightbox;\n\n e((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" ? document : void 0).open(n[t], n);\n });\n });\n }\n\n function f(e) {\n if (!e) return \"\";\n\n function t(e) {\n return e.trim().replace(/^\\|/, \"\").replace(/\\|$/, \"\").split(\"|\").map(function (e) {\n return e.trim();\n });\n }\n\n function n(e) {\n return e.trim().replace(/^\\|/, \"\").replace(/\\|$/, \"\").split(\"|\").map(function (e) {\n return e = e.trim(), /^:-+:$/.test(e) ? \"center\" : /^-+:$/.test(e) ? \"right\" : (/^:-+$/.test(e), \"left\");\n });\n }\n\n function r(e) {\n return String(e).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/</g, \"<\").replace(/>/g, \">\");\n }\n\n function o(e) {\n return e = e.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\"), e = e.replace(/\\*\\*(.+?)\\*\\*/g, \"<strong>$1</strong>\"), e = e.replace(/\\*(.+?)\\*/g, \"<em>$1</em>\"), e = e.replace(/~~(.+?)~~/g, \"<del>$1</del>\"), e = e.replace(/`([^`]+)`/g, \"<code>$1</code>\"), e = e.replace(/!\\[([^\\]]*)\\]\\(([^)]+)\\)/g, function (e, t, n) {\n return /^https?:\\/\\//i.test(n) ? \"<img src=\\\"\" + r(n) + \"\\\" alt=\\\"\" + r(t) + \"\\\" class=\\\"tokui-md-img\\\" />\" : e;\n }), e = e.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, function (e, t, n) {\n return /^(https?:\\/\\/|mailto:|\\/|#)/i.test(n) || (n = \"#\"), \"<a href=\\\"\" + r(n) + \"\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">\" + t + \"</a>\";\n }), e;\n }\n\n var s = [];\n return e = e.replace(/```(\\w*)\\n([\\s\\S]*?)```/g, function (e, t, n) {\n var r = s.length;\n return s.push({\n lang: t,\n code: n.replace(/\\n$/, \"\")\n }), \"\\x02CODEFENCE\" + r + \"\\x03\";\n }), e = e.replace(/^(?:\\*{3,}|-{3,}|_{3,})\\s*$/gm, \"\\x02TOKUIHR\\x03\"), e.split(/\\n{2,}/).map(function (e) {\n if (e = e.trim(), !e) return \"\";\n var r = e.match(/^\\x02CODEFENCE(\\d+)\\x03$/);\n\n if (r) {\n var c = s[parseInt(r[1])],\n l = c.lang || \"text\",\n u = i[l] ? a(c.code, l) : c.code.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n return \"<pre class=\\\"tokui-code\\\"><code class=\\\"language-\" + l + \"\\\">\" + u + \"</code></pre>\";\n }\n\n e = o(e);\n\n for (var d = e.split(\"\\n\"), f = [], p = !1, m = !1, h = !1, g = !1, _ = -1, v = 0; v < d.length; v++) {\n if (d[v].trim().indexOf(\"|\") === 0) {\n _ = v;\n break;\n }\n }\n\n if (_ !== -1) {\n for (var y = [], b = _, x = _; x < d.length && d[x].trim().indexOf(\"|\") === 0; x++) {\n y.push(d[x]), b = x;\n }\n\n if (y.length >= 2 && /^\\|[\\s\\-:|]+\\|$/.test(y[1].trim())) {\n for (var S = 0; S < _; S++) {\n F(d[S]);\n }\n\n g = !0;\n\n for (var C = n(y[1]), w = \"<table class=\\\"tokui-md-table\\\"><thead><tr>\", T = t(y[0]), E = 0; E < T.length; E++) {\n var D = C[E] || \"left\";\n w += \"<th style=\\\"text-align:\" + D + \"\\\">\" + T[E] + \"</th>\";\n }\n\n w += \"</tr></thead><tbody>\";\n\n for (var O = 2; O < y.length; O++) {\n var k = t(y[O]);\n w += \"<tr>\";\n\n for (var A = 0; A < k.length; A++) {\n var j = C[A] || \"left\";\n w += \"<td style=\\\"text-align:\" + j + \"\\\">\" + k[A] + \"</td>\";\n }\n\n w += \"</tr>\";\n }\n\n w += \"</tbody></table>\", f.push(w);\n\n for (var M = b + 1; M < d.length; M++) {\n F(d[M]);\n }\n\n p && f.push(\"</ul>\"), m && f.push(\"</ol>\"), h && f.push(\"</blockquote>\");\n var N = f.join(\"\");\n return g ? N : \"<p>\" + N + \"</p>\";\n }\n }\n\n for (var P = 0; P < d.length; P++) {\n F(d[P]);\n }\n\n p && f.push(\"</ul>\"), m && f.push(\"</ol>\"), h && f.push(\"</blockquote>\");\n var N = f.join(\"\");\n if (!g) return \"<p>\" + N + \"</p>\";\n return N;\n\n function F(e) {\n if (e.trim() === \"\\x02TOKUIHR\\x03\" || /^(\\*{3,}|-{3,}|_{3,})\\s*$/.test(e.trim())) {\n p && (p = (f.push(\"</ul>\"), !1)), m && (m = (f.push(\"</ol>\"), !1)), h && (h = (f.push(\"</blockquote>\"), !1)), g = !0, f.push(\"<hr class=\\\"tokui-md__hr\\\">\");\n return;\n }\n\n if (e.match(/^>\\s*/)) {\n p && (p = (f.push(\"</ul>\"), !1)), m && (m = (f.push(\"</ol>\"), !1)), h || (h = (f.push(\"<blockquote class=\\\"tokui-md__quote\\\">\"), !0)), g = !0;\n var t = e.replace(/^>\\s*/, \"\");\n f.push(\"<p>\" + t + \"</p>\");\n return;\n }\n\n if (h && !e.match(/^>\\s*/) && (f.push(\"</blockquote>\"), h = !1), e.match(/^### /)) p && (p = (f.push(\"</ul>\"), !1)), m && (m = (f.push(\"</ol>\"), !1)), h && (h = (f.push(\"</blockquote>\"), !1)), g = !0, f.push(e.replace(/^### (.+)$/, \"<h3>$1</h3>\"));else if (e.match(/^## /)) p && (p = (f.push(\"</ul>\"), !1)), m && (m = (f.push(\"</ol>\"), !1)), h && (h = (f.push(\"</blockquote>\"), !1)), g = !0, f.push(e.replace(/^## (.+)$/, \"<h2>$1</h2>\"));else if (e.match(/^# /)) p && (p = (f.push(\"</ul>\"), !1)), m && (m = (f.push(\"</ol>\"), !1)), h && (h = (f.push(\"</blockquote>\"), !1)), g = !0, f.push(e.replace(/^# (.+)$/, \"<h1>$1</h1>\"));else if (e.match(/^- \\[[ xX]\\] /)) {\n m && (m = (f.push(\"</ol>\"), !1)), p || (p = (f.push(\"<ul class=\\\"tokui-md__tasks\\\">\"), !0)), g = !0;\n var n = /^- \\[[xX]\\] /.test(e),\n r = e.replace(/^- \\[[xX ]\\] /, \"\");\n f.push(\"<li class=\\\"tokui-md__task\\\"><input type=\\\"checkbox\\\" disabled\" + (n ? \" checked\" : \"\") + \">\" + r + \"</li>\");\n } else e.match(/^- /) ? (m && (m = (f.push(\"</ol>\"), !1)), p || (p = (f.push(\"<ul>\"), !0)), g = !0, f.push(e.replace(/^- (.+)$/, \"<li>$1</li>\"))) : e.match(/^\\d+\\. /) ? (p && (p = (f.push(\"</ul>\"), !1)), m || (m = (f.push(\"<ol>\"), !0)), g = !0, f.push(e.replace(/^\\d+\\. (.+)$/, \"<li>$1</li>\"))) : (p && (p = (f.push(\"</ul>\"), !1)), m && (m = (f.push(\"</ol>\"), !1)), f.push(e));\n }\n }).join(\"\");\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerBasicComponents = o, window.TokUI._internal.resolveColor = r, window.TokUI._internal.highlightCode = a), t !== void 0 && t.exports && (t.exports = {\n registerBasicComponents: o,\n resolveColor: r,\n highlightCode: a\n });\n }),\n C = s(function (e, t) {\n function n(e, t, n) {\n var r = t(\"div\", {});\n return r.style.display = \"inline-flex\", r.style.gap = \"6px\", r.style.alignItems = \"center\", e.split(\"|\").forEach(function (e) {\n var i = e.trim();\n if (!i) return;\n var a = i.split(/\\s+/),\n o = \"\",\n s = \"\",\n c = \"\",\n l = \"\",\n u = {\n class: \"tokui-tbtn\",\n type: \"button\"\n };\n a.forEach(function (e, t) {\n if (t === 0 && e.startsWith(\"btn:\")) o = e.slice(4);else if (e.startsWith(\"clk:\")) u[\"data-tokui-clk\"] = e.slice(4);else if (e.startsWith(\"v:\")) u.class += \" tokui-tbtn--\" + e.slice(2);else if (e.startsWith(\"icon:\")) s = e.slice(5);else if (e.startsWith(\"i:\")) c = e.slice(2);else if (e.startsWith(\"l:\")) l = e.slice(2);else if (e.includes(\":\")) {\n var _t26 = e.indexOf(\":\"),\n _n20 = e.slice(0, _t26);\n\n u[_n20.startsWith(\"data-\") ? _n20 : \"data-\" + _n20] = e.slice(_t26 + 1);\n }\n });\n var d = s ? n(s, 14) : \"\",\n f = !!(s || c);\n if (!o && !d && !c) return;\n\n if (!o && f) {\n u.class += \" tokui-tbtn--icon-only\";\n\n var _e48 = l || s || \"\";\n\n _e48 && (u[\"aria-label\"] = _e48, u[\"data-tokui-tip\"] = _e48);\n }\n\n var p = t(\"button\", u);\n\n if (s) {\n var _e49 = t(\"span\", {\n class: \"tokui-tbtn__icon\"\n });\n\n _e49.innerHTML = d, p.appendChild(_e49), p.classList.add(\"tokui-tbtn--has-icon\");\n } else c && (p.appendChild(t(\"span\", {\n class: \"tokui-tbtn__icon tokui-tbtn__icon--emoji\"\n }, c)), p.classList.add(\"tokui-tbtn--has-icon\"));\n\n o && p.appendChild(t(\"span\", {\n class: \"tokui-tbtn__text\"\n }, o)), r.appendChild(p);\n }), r;\n }\n\n function r(e) {\n var _ref6 = true ? h() : undefined,\n t = _ref6.el,\n r = true ? m().parseTag : undefined,\n i = true ? v().iconSvg : undefined;\n\n function a(t) {\n var n = t.match(/^\\[([a-zA-Z][\\w-]*)\\b([\\s\\S]*)$/);\n if (!n) return null;\n var i = (n[1] + (n[2] || \"\")).replace(/\\]\\s*$/, \"\").trim();\n if (!i) return null;\n\n try {\n var _t27 = r(i);\n\n if (!_t27 || !_t27.type) return null;\n\n var _n21 = e.render(_t27);\n\n return _n21 && _n21.nodeType ? _n21 : null;\n } catch (_unused25) {\n return null;\n }\n }\n\n var o = {\n chk: {\n label: \"\",\n cls: \"tokui-col-chk\"\n },\n \"#\": {\n label: \"#\",\n cls: \"tokui-col-seq\"\n }\n };\n\n function s(e) {\n var t = w(e),\n n = t.text,\n r = n.indexOf(\":\");\n return {\n name: r > 0 ? n.slice(0, r) : n,\n align: t.align,\n color: t.color\n };\n }\n\n var c = [],\n l = [],\n u = [],\n d = 0,\n f = null;\n\n function p(e) {\n var t = e.querySelector(\".tokui-chk-all\");\n if (!t) return;\n var n = e.querySelectorAll(\".tokui-chk-row\"),\n r = e.querySelectorAll(\".tokui-chk-row:checked\");\n t.checked = n.length > 0 && r.length === n.length, t.indeterminate = r.length > 0 && r.length < n.length;\n }\n\n e.register(\"table\", function (e, n) {\n var r = {\n class: \"tokui-table\",\n role: \"table\"\n };\n e.attrs.id && (r.id = e.attrs.id), e.attrs.stripe !== void 0 && (r.class += \" tokui-table--stripe\");\n var i = t(\"div\", {\n class: \"tokui-table-wrapper\"\n }),\n a = t(\"table\", r);\n return (e.attrs.cap || e.attrs.caption) && a.appendChild(t(\"caption\", {}, e.attrs.cap || e.attrs.caption)), f = a, n(e.children).forEach(function (e) {\n e && e.nodeType && a.appendChild(e);\n }), i.appendChild(a), i._slot = a, i._tokuiType = \"table\", i;\n }), e.register(\"thead\", function (e) {\n var n = t(\"thead\", {\n class: \"tokui-thead\"\n });\n\n if (e.attrs.cols) {\n c = [], l = [], u = [], d = 0;\n\n var _r9 = e.attrs.cols.split(\";\"),\n _i10 = _r9.length - 1,\n _a12 = _r9.map(function (e) {\n return g(e).map(function (e) {\n var t = s(e),\n n = C(t.name);\n return {\n text: n.text,\n align: t.align,\n color: t.color,\n colspan: n.colspan || 1,\n rowspan: n.rowspan || 1\n };\n });\n }),\n _p = _a12.length ? _a12[0].reduce(function (e, t) {\n return e + t.colspan;\n }, 0) : 0;\n\n f && _p > 0 && (f.style.minWidth = \"calc(\" + _p + \" * var(--tokui-table-min-col-w, 96px))\");\n var _m = [];\n\n _a12.forEach(function (e, r) {\n var a = x(e, _m, _p),\n s = t(\"tr\", {\n class: \"tokui-thead-row\"\n });\n a.forEach(function (e) {\n var n = e.cell,\n a = n.align ? \"tokui-col-\" + n.align : \"\",\n d = n.color ? \"tokui-text--\" + n.color : \"\",\n f = {\n scope: \"col\"\n };\n if (e.colspan >= 2 && (f.colspan = String(e.colspan)), e.rowspan >= 2 && (f.rowspan = String(e.rowspan)), r + e.rowspan - 1 >= _i10) for (var p = 0; p < e.colspan; p++) {\n l[e.col + p] = n.align || \"\", c[e.col + p] = o[n.text] ? n.text : null, u[e.col + p] = n.color || \"\";\n }\n\n if (n.text === \"chk\") {\n f.class = \"tokui-col-chk\" + (a ? \" \" + a : \"\") + (d ? \" \" + d : \"\");\n\n var _e50 = t(\"input\", {\n type: \"checkbox\",\n class: \"tokui-chk-all\"\n });\n\n _e50.addEventListener(\"change\", function () {\n var t = _e50.closest(\"table\");\n\n t && (t.querySelectorAll(\".tokui-chk-row\").forEach(function (t) {\n t.checked = _e50.checked;\n }), _e50.indeterminate = !1);\n });\n\n var _n22 = t(\"th\", f);\n\n _n22.appendChild(_e50), s.appendChild(_n22);\n return;\n }\n\n if (n.text === \"#\") {\n f.class = \"tokui-col-seq\" + (a ? \" \" + a : \"\") + (d ? \" \" + d : \"\"), s.appendChild(t(\"th\", f, \"#\"));\n return;\n }\n\n f.class = (a + \" \" + d).trim(), s.appendChild(t(\"th\", f, n.text));\n }), n.appendChild(s);\n });\n } else {\n var _r10 = t(\"tr\", {\n class: \"tokui-thead-row\"\n });\n\n e.children.forEach(function (e) {\n var n = e.attrs && e.attrs.n || \"\";\n\n _r10.appendChild(t(\"th\", {\n scope: \"col\",\n \"data-tokui-tag\": e.type === \"tcol\" ? \"tcol\" : null\n }, n));\n }), n.appendChild(_r10);\n }\n\n return n._slot = n.lastChild || n, n._tokuiType = \"thead\", n;\n }), e.register(\"tbody\", function (e, n) {\n var r = t(\"tbody\", {\n class: \"tokui-tbody\"\n }),\n i = e._colTypes || c,\n a = e._colAligns || l,\n o = e._colColors || u;\n return r._tokuiOccupancy = [], r._tokuiMaxCols = a.length || i.length, e.children.forEach(function (e) {\n e._colTypes = i, e._colAligns = a, e._colColors = o, e._seqNum = ++d, e._tbodyEl = r;\n }), n(e.children).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r.addEventListener(\"mousedown\", function (e) {\n var t = e.target;\n r.__tokuiShift = !!(t && t.classList && t.classList.contains(\"tokui-chk-row\") && e.shiftKey);\n }), r.addEventListener(\"change\", function (e) {\n var t = e.target;\n if (!t || !t.classList || !t.classList.contains(\"tokui-chk-row\")) return;\n var n = r.closest(\"table\");\n if (!n) return;\n var i = Array.prototype.slice.call(n.querySelectorAll(\".tokui-chk-row\")),\n a = i.indexOf(t),\n o = r.__tokuiShift;\n r.__tokuiShift = !1;\n var s = n.__tokuiChkAnchor;\n\n if (o && s != null && s >= 0 && a >= 0 && s !== a) {\n var _e51 = Math.min(s, a),\n _n23 = Math.max(s, a),\n _r11 = t.checked;\n\n for (var _t28 = _e51; _t28 <= _n23; _t28++) {\n i[_t28].checked = _r11;\n }\n } else a >= 0 && (n.__tokuiChkAnchor = a);\n\n p(n);\n }), r._slot = r, r._tokuiType = \"tbody\", r;\n });\n\n function g(e) {\n var t = [],\n n = \"\",\n r = !1;\n\n for (var _i11 = 0; _i11 < e.length; _i11++) {\n var _a13 = e[_i11];\n _a13 === \"\\\"\" ? r = !r : _a13 === \",\" && !r ? (t.push(n), n = \"\") : n += _a13;\n }\n\n return t.push(n), t;\n }\n\n function _(e) {\n return e.length > 1 && e.charAt(0) === \"\\\"\" && e.charAt(e.length - 1) === \"\\\"\" && e.indexOf(\"\\\"\", 1) === e.length - 1 ? e.slice(1, -1) : e;\n }\n\n function y(e) {\n for (var t = [], n = \"\", r = !1, i = 0, a = 0; a < e.length; a++) {\n var o = e[a];\n if (o === \"\\\"\") r = !r;else if (r) n += o;else if (o === \"[\") i++, n += o;else if (o === \"]\") i--, n += o;else if (o === \",\" && i === 0) {\n var s = e[a - 1],\n c = e[a + 1],\n l = e[a + 2],\n u = e[a + 3],\n d = e[a + 4],\n f = /=([cr]\\d+){1,2}$/.test(n),\n p = /[¥¥$€£₩₹]/.test(n);\n !f && p && s >= \"0\" && s <= \"9\" && c >= \"0\" && c <= \"9\" && l >= \"0\" && l <= \"9\" && u >= \"0\" && u <= \"9\" && !(d >= \"0\" && d <= \"9\") ? n += o : (t.push(n), n = \"\");\n } else n += o;\n }\n\n return t.push(n), t;\n }\n\n function b(e, n) {\n var r = {\n class: \"tokui-td tokui-td--skeleton\"\n },\n i = n.colAligns[e];\n i && (r.class += \" tokui-col-\" + i);\n var a = t(\"td\", r);\n return a.appendChild(t(\"span\", {\n class: \"tokui-skeleton\"\n })), a;\n }\n\n function x(e, t, n) {\n for (var r = [], i = 0, a = 0; a < e.length; a++) {\n for (var o = e[a], s = o.colspan || 1, c = o.rowspan || 1; i < n && t[i] > 0;) {\n --t[i], i++;\n }\n\n r.push({\n cell: o,\n col: i,\n colspan: s,\n rowspan: c\n });\n\n for (var l = 0; l < s; l++) {\n t[i + l] = c > 1 ? c - 1 : 0;\n }\n\n i += s;\n }\n\n for (; i < n && t[i] > 0;) {\n --t[i], i++;\n }\n\n return r;\n }\n\n function S(e, t, n) {\n return !t || !n ? null : x(e.map(function (e) {\n var t = C(e);\n return {\n colspan: t.colspan || 1,\n rowspan: t.rowspan || 1\n };\n }), n, t._tokuiMaxCols || e.length).map(function (e) {\n return e.col;\n });\n }\n\n function C(e) {\n e = String(e);\n var t = e.match(/=([cr]\\d+){1,2}$/);\n if (!t) return {\n text: e,\n colspan: 0,\n rowspan: 0\n };\n var n = t[0],\n r = e.slice(0, e.length - n.length),\n i = 0,\n a = 0,\n o = n.match(/c(\\d+)/),\n s = n.match(/r(\\d+)/);\n return o && (i = parseInt(o[1], 10) || 0), s && (a = parseInt(s[1], 10) || 0), {\n text: r,\n colspan: i,\n rowspan: a\n };\n }\n\n function w(e) {\n for (var t = {\n c: \"center\",\n center: \"center\",\n r: \"right\",\n right: \"right\",\n l: \"left\",\n left: \"left\"\n }, n = {\n primary: \"primary\",\n success: \"success\",\n warning: \"warning\",\n danger: \"danger\",\n info: \"info\"\n }, r = \"\", i = \"\", a = 0; a < 2; a++) {\n var o = String(e).match(/\\/([A-Za-z]+)$/);\n if (!o) break;\n var s = o[1].toLowerCase();\n if (t[s] && !r) r = t[s];else if (n[s] && !i) i = n[s];else break;\n e = String(e).slice(0, o.index);\n }\n\n return {\n text: e,\n align: r,\n color: i\n };\n }\n\n function T(e, r, o) {\n var s = o.colTypes,\n c = o.colAligns,\n l = o.seqNum,\n u = o.colspanVal,\n d = o.cellCols && o.cellCols[r] != null ? o.cellCols[r] : r,\n f = {\n class: \"tokui-td\"\n },\n p = w(e),\n m = C(p.text),\n h = m.text.trim(),\n g = p.align || c[d];\n g && (f.class += \" tokui-col-\" + g);\n\n var _ = p.color || o.colColors && o.colColors[d];\n\n if (_ && (f.class += \" tokui-text--\" + _), r === 0 && u >= 2 && (f.colspan = String(u)), r > 0 && r < u) return null;\n\n if (m.colspan >= 2 && (f.colspan = String(m.colspan)), m.rowspan >= 2 && (f.rowspan = String(m.rowspan)), s[d] === \"chk\") {\n f.class += \" tokui-col-chk\";\n var v = t(\"td\", f);\n return v.appendChild(t(\"input\", {\n type: \"checkbox\",\n class: \"tokui-chk-row\"\n })), v;\n }\n\n if (s[d] === \"#\") return f.class += \" tokui-col-seq\", t(\"td\", f, String(l));\n var y = a(h);\n\n if (y) {\n f.class += \" tokui-td--inline\";\n var b = t(\"td\", f);\n return b.appendChild(y), b;\n }\n\n if (h.startsWith(\"btn:\")) {\n f.class += \" tokui-col-action\";\n var x = t(\"td\", f);\n return x.appendChild(n(h, t, i)), x;\n }\n\n if (h.startsWith(\"tag:\")) {\n var S = t(\"td\", f),\n T = h.split(/\\s+/),\n E = \"\",\n D = {\n class: \"tokui-tag\"\n };\n return T.forEach(function (e) {\n e.startsWith(\"tag:\") ? E = e.slice(4) : e.startsWith(\"t:\") && (D.class += \" tokui-tag--\" + e.slice(2));\n }), S.appendChild(t(\"span\", D, E)), S;\n }\n\n if (h.startsWith(\"progress\")) {\n var O = t(\"td\", f),\n k = h.split(/\\s+/),\n A = 0,\n j = \"span\",\n M = \"\";\n\n if (k.forEach(function (e) {\n e.startsWith(\"v:\") ? A = parseInt(e.slice(2)) || 0 : e.startsWith(\"t:\") ? j = e.slice(2) : e.startsWith(\"status:\") && (M = e.slice(7));\n }), j === \"span\") {\n var N = t(\"span\", {\n class: \"tokui-progress tokui-progress--span\"\n }),\n P = t(\"span\", {\n class: \"tokui-progress__mini-bar\"\n }),\n F = \"tokui-progress__mini-fill\";\n M === \"error\" ? F += \" tokui-progress--error\" : A >= 80 && (F += \" tokui-progress--success\");\n var I = t(\"span\", {\n class: F\n });\n I.style.width = A + \"%\", P.appendChild(I), N.appendChild(P);\n var L = t(\"span\", {\n class: \"tokui-progress__span-text\"\n });\n L.textContent = A + \"%\", N.appendChild(L), O.appendChild(N);\n }\n\n return O;\n }\n\n return t(\"td\", f, h);\n }\n\n function E(e, t) {\n e._tokuiCellText = [], e._tokuiCellTds = [];\n var n = \"\\0SKELETON\\0\";\n\n function r(t, n) {\n if (t) {\n for (var r = null, i = n + 1; i < e._tokuiCellTds.length; i++) {\n if (e._tokuiCellTds[i] && e._tokuiCellTds[i].parentNode === e) {\n r = e._tokuiCellTds[i];\n break;\n }\n }\n\n r ? e.insertBefore(t, r) : e.appendChild(t);\n }\n }\n\n return e._tokuiTrReconcile = function (i, a, o) {\n o && o.v && String(o.v).split(\",\").forEach(function (t) {\n t = t.trim(), t && e.classList.add(\"tokui-table-row--\" + t);\n });\n var s = y(_(i || \"\")),\n c = t.tbodyEl && t.tbodyEl._tokuiOccupancy;\n c && (t.cellCols = S(s, t.tbodyEl, a ? c : c.slice()));\n\n for (var l = 0; l < s.length; l++) {\n var u = s[l],\n d = u.trim(),\n f = l === s.length - 1,\n p = /^\\[/.test(d) || /^(btn|tag|progress)\\b/.test(d),\n m = /^btn:/.test(d),\n h = p && f && !a && !m,\n g = h ? n : u;\n\n if (e._tokuiCellText[l] !== g) {\n var v = e._tokuiCellTds[l];\n v && v.parentNode === e && e.removeChild(v);\n var x = h ? b(l, t) : T(u, l, t);\n r(x, l), e._tokuiCellTds[l] = x || null, e._tokuiCellText[l] = g;\n }\n }\n\n for (var C = s.length; C < e._tokuiCellTds.length; C++) {\n var w = e._tokuiCellTds[C];\n w && w.parentNode === e && e.removeChild(w), e._tokuiCellTds[C] = null;\n }\n\n e._tokuiCellTds.length = s.length, e._tokuiCellText.length = s.length;\n }, e;\n }\n\n e.register(\"tr\", function (e) {\n var n = t(\"tr\", {\n class: \"tokui-table-row\",\n role: \"row\"\n });\n e.attrs && e.attrs.v && String(e.attrs.v).split(\",\").forEach(function (e) {\n e = e.trim(), e && n.classList.add(\"tokui-table-row--\" + e);\n });\n var r = e.attrs && e.attrs.cs ? parseInt(e.attrs.cs) : 0;\n var i = e._colTypes || c,\n a = {\n colTypes: i,\n colAligns: e._colAligns || l,\n colColors: e._colColors || u,\n seqNum: e._seqNum || ++d,\n colspanVal: r,\n tbodyEl: e._tbodyEl\n };\n if (e._stream === \"open\") return E(n, a), n;\n\n if (e.content) {\n var o = _(e.content);\n\n var _t29 = y(o);\n\n a.cellCols = S(_t29, a.tbodyEl, a.tbodyEl && a.tbodyEl._tokuiOccupancy);\n\n var s = _t29.some(function (e) {\n return /=([cr]\\d+)/.test(e);\n }),\n f = a.cellCols && a.cellCols.some(function (e, t) {\n return e !== t;\n }),\n p = o.indexOf(\"[tr\") !== -1;\n\n !s && !f && i.length > 0 && _t29.length !== i.length && r < 2 && console.warn(\"TokUI Table: tr \\u5355\\u5143\\u683C\\u6570 \" + _t29.length + \" != \\u5217\\u6570 \" + i.length + \" \\u2192 \\u5217\\u9519\\u4F4D\\u3002\" + (p ? \"\\u26A0\\uFE0F \\u5185\\u5BB9\\u542B [tr \\u6B8B\\u7559\\uFF0C\\u7591\\u4F3C tr \\u672A\\u6B63\\u786E\\u95ED\\u5408\\uFF08\\u5F15\\u53F7\\u672A\\u914D\\u5BF9/\\u542B\\u5B57\\u9762 [ ] \\u672A\\u5F15\\u53F7\\u5305\\uFF09\\u2192 parser \\u6807\\u7B7E\\u65AD\\u88C2\\u3001\\u4E32\\u884C\\u3002\" : _t29.length > i.length ? \"\\u7591\\u4F3C\\u5355\\u5143\\u683C\\u5185\\u542B\\u9017\\u53F7\\u672A\\u7528\\u53CC\\u5F15\\u53F7\\u5305\\u88F9\\uFF08\\u5982 12,800.00\\u3001\\\"a,b,c\\\"\\uFF09\\u3002\" : \"\\u7591\\u4F3C\\u5217\\u6807\\u9898(thead cols)\\u542B\\u9017\\u53F7\\u88AB\\u5207\\u6563\\u3001\\u6216\\u8BE5\\u884C\\u7F3A\\u683C\\u3002\") + \"\\u89C4\\u5219\\uFF1Atr \\u4E0D\\u8981\\u5916\\u5C42\\u5F15\\u53F7\\u3001\\u542B\\u9017\\u53F7\\u5355\\u5143\\u683C\\u76F4\\u5F15\\u53F7\\u5305\\u3002tr \\u539F\\u6587: \" + o), _t29.forEach(function (e, t) {\n var r = T(e, t, a);\n r && n.appendChild(r);\n });\n }\n\n return n;\n }), e.register(\"tcol\", function () {\n return document.createTextNode(\"\");\n });\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _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 = {\n registerTableComponents: r\n });\n }),\n w = s(function (e, t) {\n function n(e) {\n return !e || typeof e != \"string\" ? [] : e.split(\";\").map(function (e) {\n return e.trim();\n }).filter(function (e) {\n return e.length > 0;\n }).map(function (e) {\n var t = e.indexOf(\":\");\n return t === -1 ? {\n v: e,\n tx: e\n } : {\n v: e.substring(0, t).trim(),\n tx: e.substring(t + 1).trim()\n };\n });\n }\n\n function r(e) {\n if (!e || !e.attrs || !e.attrs.opt) return e;\n var t = n(e.attrs.opt).map(function (e) {\n return {\n type: \"opt\",\n attrs: {\n v: e.v,\n tx: e.tx\n }\n };\n });\n return Object.assign({}, e, {\n children: (e.children || []).concat(t)\n });\n }\n\n function i(e) {\n var _ref7 = true ? h() : undefined,\n t = _ref7.el,\n n = _ref7.resolveButtonAction,\n i = true ? S().resolveColor : undefined,\n a = true ? v().iconSvg : undefined,\n o = true ? u().t : undefined;\n\n function s(e) {\n if (!e) return null;\n var t = e.indexOf(\"|\");\n return t === -1 ? {\n text: e,\n variant: null\n } : {\n text: e.substring(0, t),\n variant: e.substring(t + 1)\n };\n }\n\n function c(e) {\n if (!e) return null;\n var t = e.indexOf(\"|\"),\n n = t === -1 ? e : e.substring(0, t),\n r = t === -1 ? null : e.substring(t + 1),\n i = n.indexOf(\":\");\n return i === -1 ? {\n text: n,\n handler: null,\n variant: r\n } : {\n text: n.substring(0, i),\n handler: n.substring(i + 1),\n variant: r\n };\n }\n\n function l(e) {\n var t = e.attrs;\n return !!(t.pre || t.app || t.prebtn || t.appbtn);\n }\n\n function d(e, n) {\n var r = t(\"div\", {\n class: \"tokui-input-group\"\n });\n\n if (e.attrs.pre) {\n var i = s(e.attrs.pre),\n a = i.variant ? \"tokui-input-pre tokui-input-pre--\" + i.variant : \"tokui-input-pre\";\n r.appendChild(t(\"span\", {\n class: a\n }, i.text));\n }\n\n if (e.attrs.prebtn) {\n var i = c(e.attrs.prebtn),\n a = i.variant ? \"tokui-input-prebtn tokui-input-prebtn--\" + i.variant : \"tokui-input-prebtn\",\n o = {\n class: a,\n type: \"button\"\n };\n i.handler && (o[\"data-tokui-clk\"] = i.handler), r.appendChild(t(\"button\", o, i.text));\n }\n\n if (r.appendChild(n), e.attrs.appbtn) {\n var i = c(e.attrs.appbtn),\n a = i.variant ? \"tokui-input-appbtn tokui-input-appbtn--\" + i.variant : \"tokui-input-appbtn\",\n o = {\n class: a,\n type: \"button\"\n };\n i.handler && (o[\"data-tokui-clk\"] = i.handler), r.appendChild(t(\"button\", o, i.text));\n }\n\n if (e.attrs.app) {\n var i = s(e.attrs.app),\n a = i.variant ? \"tokui-input-app tokui-input-app--\" + i.variant : \"tokui-input-app\";\n r.appendChild(t(\"span\", {\n class: a\n }, i.text));\n }\n\n return r;\n }\n\n e.register(\"form\", function (e, n) {\n var r = {\n class: \"tokui-form\"\n };\n\n if (e.attrs.id && (r.id = e.attrs.id), e.attrs.act) {\n var i = e.attrs.act;\n /^javascript:/i.test(i) && (i = \"#\"), r.action = i;\n }\n\n e.attrs.mtd && (r.method = e.attrs.mtd), e.attrs.sub && (r[\"data-tokui-sub\"] = e.attrs.sub), e.attrs.clk && (r[\"data-tokui-clk\"] = e.attrs.clk);\n var a = t(\"form\", r);\n return n(e.children).forEach(function (e) {\n e && e.nodeType && a.appendChild(e);\n }), a._slot = a, a._tokuiType = \"form\", a;\n });\n var f = \"<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>\";\n e.register(\"input\", function (e) {\n var n = e.attrs.v ? e.attrs.v.split(\",\").map(function (e) {\n return e.trim();\n }) : [],\n r = n.indexOf(\"inline\") !== -1,\n i = e.attrs.search !== void 0,\n a = e.attrs.search === \"right\",\n o = t(\"div\", {\n class: r ? \"tokui-field tokui-field--inline\" : \"tokui-field\"\n });\n\n if (e.attrs.l) {\n var s = {\n class: \"tokui-label\"\n };\n e.attrs.id && (s.for = e.attrs.id), o.appendChild(t(\"label\", s, e.attrs.l));\n }\n\n var c = {\n class: \"tokui-input\",\n type: e.attrs.t || \"text\"\n };\n e.attrs.id && (c.id = e.attrs.id), e.attrs.n ? c.name = e.attrs.n : e.attrs.id && (c.name = e.attrs.id), e.attrs.ph && (c.placeholder = e.attrs.ph), e.attrs.ml && (c.maxlength = e.attrs.ml), e.attrs.min !== void 0 && (c.min = e.attrs.min), e.attrs.max !== void 0 && (c.max = e.attrs.max), e.attrs.step !== void 0 && (c.step = e.attrs.step), e.attrs.req !== void 0 && (c.required = \"required\"), e.attrs.dis !== void 0 && (c.disabled = \"disabled\"), e.attrs.ro !== void 0 && (c.readonly = \"readonly\"), e.attrs.req !== void 0 && (c[\"aria-required\"] = \"true\"), e.attrs.val !== void 0 && (c.value = e.attrs.val);\n var u = t(\"input\", c);\n e.attrs.w && (u.style.width = e.attrs.w);\n var p = null;\n\n if (i) {\n p = t(\"div\", {\n class: \"tokui-search-input\"\n }), a && p.classList.add(\"tokui-search-input--right\");\n var m = t(\"span\", {\n class: \"tokui-search-input__icon\"\n });\n m.innerHTML = f, p.appendChild(m), p.appendChild(u);\n }\n\n var h = p || u;\n\n if (l(e)) {\n var g = d(e, h);\n n.indexOf(\"pill\") !== -1 && g.classList.add(\"tokui-input-group--pill\"), o.appendChild(g);\n } else o.appendChild(h);\n\n var _ = null;\n return e.attrs.hint && (_ = t(\"div\", {\n class: \"tokui-field__hint\"\n }, e.attrs.hint), n.indexOf(\"error\") === -1 ? n.indexOf(\"success\") !== -1 && _.classList.add(\"tokui-field__hint--success\") : _.classList.add(\"tokui-field__hint--error\"), o.appendChild(_)), o._update = function (e) {\n e.v !== void 0 && (u.value = e.v), e.dis === !0 || e.dis === \"true\" ? u.disabled = !0 : (e.dis === !1 || e.dis === \"false\") && (u.disabled = !1), e.ph !== void 0 && (u.placeholder = e.ph), e.ro === !0 || e.ro === \"true\" ? u.readOnly = !0 : (e.ro === !1 || e.ro === \"false\") && (u.readOnly = !1), e.hint !== void 0 && _ && (_.textContent = e.hint);\n }, o._variantTarget = u, o;\n }), e.register(\"pwd\", function (e) {\n var n = e.attrs.v ? e.attrs.v.split(\",\").map(function (e) {\n return e.trim();\n }) : [],\n r = t(\"div\", {\n class: n.indexOf(\"inline\") === -1 ? \"tokui-field\" : \"tokui-field tokui-field--inline\"\n });\n\n if (e.attrs.l) {\n var i = {\n class: \"tokui-label\"\n };\n e.attrs.id && (i.for = e.attrs.id), r.appendChild(t(\"label\", i, e.attrs.l));\n }\n\n var a = {\n class: \"tokui-input\",\n type: \"password\"\n };\n e.attrs.id && (a.id = e.attrs.id), e.attrs.n ? a.name = e.attrs.n : e.attrs.id && (a.name = e.attrs.id), e.attrs.ph && (a.placeholder = e.attrs.ph), e.attrs.ml && (a.maxlength = e.attrs.ml), e.attrs.min !== void 0 && (a.min = e.attrs.min), e.attrs.max !== void 0 && (a.max = e.attrs.max), e.attrs.req !== void 0 && (a.required = \"required\"), e.attrs.dis !== void 0 && (a.disabled = \"disabled\"), e.attrs.ro !== void 0 && (a.readonly = \"readonly\"), e.attrs.req !== void 0 && (a[\"aria-required\"] = \"true\"), e.attrs.val !== void 0 && (a.value = e.attrs.val);\n var o = t(\"input\", a);\n e.attrs.w && (o.style.width = e.attrs.w);\n var s = null;\n\n if (e.attrs.toggle !== void 0 && !e.attrs.dis) {\n s = t(\"button\", {\n class: \"tokui-pwd-toggle\",\n type: \"button\",\n tabindex: \"-1\"\n }), s.setAttribute(\"aria-label\", \"Toggle password visibility\");\n var c = \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"18\\\" height=\\\"18\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.8\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"3\\\"/></svg>\",\n u = \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"18\\\" height=\\\"18\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.8\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\\\"/><path d=\\\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\\\"/><line x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"23\\\" y2=\\\"23\\\"/><path d=\\\"M14.12 14.12a3 3 0 1 1-4.24-4.24\\\"/></svg>\";\n s.innerHTML = u, s.addEventListener(\"click\", function () {\n var e = o.type === \"password\";\n o.type = e ? \"text\" : \"password\", s.innerHTML = e ? c : u, s.classList.toggle(\"tokui-pwd-toggle--active\", e);\n });\n }\n\n if (l(e) || s) {\n var f = d(e, o);\n\n if (s) {\n var p = o.nextSibling;\n p ? f.insertBefore(s, p) : f.appendChild(s);\n }\n\n r.appendChild(f);\n } else r.appendChild(o);\n\n var m = null;\n return e.attrs.hint && (m = t(\"div\", {\n class: \"tokui-field__hint\"\n }, e.attrs.hint), n.indexOf(\"error\") === -1 ? n.indexOf(\"success\") !== -1 && m.classList.add(\"tokui-field__hint--success\") : m.classList.add(\"tokui-field__hint--error\"), r.appendChild(m)), r._update = function (e) {\n e.v !== void 0 && (o.value = e.v), e.dis === !0 || e.dis === \"true\" ? o.disabled = !0 : (e.dis === !1 || e.dis === \"false\") && (o.disabled = !1), e.ph !== void 0 && (o.placeholder = e.ph), e.ro === !0 || e.ro === \"true\" ? o.readOnly = !0 : (e.ro === !1 || e.ro === \"false\") && (o.readOnly = !1), e.hint !== void 0 && m && (m.textContent = e.hint);\n }, r._variantTarget = o, r;\n }), e.register(\"textarea\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-field\"\n });\n\n if (e.attrs.l) {\n var _n24 = {\n class: \"tokui-label\"\n };\n e.attrs.id && (_n24.for = e.attrs.id), r.appendChild(t(\"label\", _n24, e.attrs.l));\n }\n\n var i = e.attrs.maxlen ? parseInt(e.attrs.maxlen, 10) : 0,\n a = e.attrs.auto !== void 0,\n o = parseInt(e.attrs.rows, 10) || 4,\n s = e.attrs.maxrows ? parseInt(e.attrs.maxrows, 10) : 0,\n c = i > 0 || a ? t(\"div\", {\n class: \"tokui-textarea-box\"\n }) : null;\n c && r.appendChild(c);\n var l = {\n class: \"tokui-input\",\n rows: String(o)\n };\n e.attrs.id && (l.id = e.attrs.id), e.attrs.n ? l.name = e.attrs.n : e.attrs.id && (l.name = e.attrs.id), e.attrs.ph && (l.placeholder = e.attrs.ph), e.attrs.req !== void 0 && (l.required = \"required\"), e.attrs.dis !== void 0 && (l.disabled = \"disabled\"), e.attrs.ro !== void 0 && (l.readonly = \"readonly\"), e.attrs.req !== void 0 && (l[\"aria-required\"] = \"true\"), i > 0 && (l.maxlength = String(i));\n var u = t(\"textarea\", l),\n d = e.children && e.children.length > 0 ? e.children.map(function (e) {\n return e.content || \"\";\n }).join(\"\") : e.content || e.attrs.tx || \"\";\n\n if (u.textContent = d, a) {\n u.classList.add(\"tokui-textarea--auto\");\n var f = 0,\n p = 0;\n\n function _e52() {\n if (!f) {\n var e = u.getAttribute(\"rows\");\n u.setAttribute(\"rows\", \"1\");\n var t = u.scrollHeight;\n f = t * o, p = s > 0 ? t * s : 0, u.setAttribute(\"rows\", e), u.style.height = \"auto\";\n var n = u.scrollHeight;\n f = Math.max(f, n), u.style.height = f + \"px\";\n }\n\n u.style.height = \"auto\";\n var r = u.scrollHeight;\n r = Math.max(r, f), p > 0 && (r = Math.min(r, p)), u.style.height = r + \"px\", u.style.overflow = p > 0 && u.scrollHeight > p ? \"auto\" : \"hidden\";\n }\n\n u.addEventListener && u.addEventListener(\"input\", _e52), setTimeout(_e52, 0);\n }\n\n if (c) {\n if (c.appendChild(u), i > 0) {\n var _e53 = t(\"span\", {\n class: \"tokui-textarea-counter\"\n });\n\n _e53.textContent = d.length + \"/\" + i, d.length > i && _e53.classList.add(\"tokui-textarea-counter--over\"), c.appendChild(_e53), u.addEventListener(\"input\", function () {\n var t = u.value.length;\n _e53.textContent = t + \"/\" + i, t > i ? _e53.classList.add(\"tokui-textarea-counter--over\") : _e53.classList.remove(\"tokui-textarea-counter--over\");\n });\n }\n } else r.appendChild(u);\n\n return r._update = function (e) {\n e.v !== void 0 && (u.value = e.v), e.dis === !0 || e.dis === \"true\" ? u.disabled = !0 : (e.dis === !1 || e.dis === \"false\") && (u.disabled = !1), e.ro === !0 || e.ro === \"true\" ? u.readOnly = !0 : (e.ro === !1 || e.ro === \"false\") && (u.readOnly = !1);\n }, r._variantTarget = u, r._slot = u, r._tokuiType = \"textarea\", r;\n }), e.register(\"picker\", function (e, n) {\n var r = e.attrs.multi !== void 0,\n i = e.attrs.dis !== void 0,\n a = e.attrs.n || e.attrs.id || \"picker\",\n s = e.attrs.ph || \"\",\n c = t(\"div\", {\n class: (e.attrs.v ? e.attrs.v.split(\",\").map(function (e) {\n return e.trim();\n }) : []).indexOf(\"inline\") === -1 ? \"tokui-field\" : \"tokui-field tokui-field--inline\"\n });\n\n if (e.attrs.l) {\n var _n25 = {\n class: \"tokui-label\"\n };\n e.attrs.id && (_n25.for = e.attrs.id), c.appendChild(t(\"label\", _n25, e.attrs.l));\n }\n\n var l = [\"tokui-picker\"];\n r && l.push(\"tokui-picker--multi\"), i && l.push(\"tokui-picker--disabled\");\n var u = t(\"div\", {\n class: l.join(\" \"),\n \"data-tokui-picker\": e.attrs.id || \"\",\n role: \"listbox\",\n \"aria-expanded\": \"false\"\n });\n var d = \"\",\n f = \"\";\n r || e.children.forEach(function (e) {\n e.attrs && e.attrs.chk !== void 0 && (d = e.attrs.v || \"\", f = e.attrs && e.attrs.tx || d);\n });\n var h = t(\"div\", {\n class: \"tokui-picker-control\"\n });\n r && e.children.forEach(function (e) {\n e.attrs && e.attrs.chk !== void 0 && h.appendChild(m(e, u, a));\n });\n var _ = {\n class: \"tokui-picker-search\",\n type: \"text\",\n autocomplete: \"off\"\n };\n s && !f && (_.placeholder = s), i && (_.disabled = \"disabled\"), f && (_.value = f), h.appendChild(t(\"input\", _)), h.appendChild(t(\"span\", {\n class: \"tokui-picker-arrow\"\n })), u.appendChild(h);\n var v = t(\"ul\", {\n class: \"tokui-picker-dropdown\"\n });\n e.children.forEach(function (e) {\n v.appendChild(p(e));\n });\n var y = t(\"li\", {\n class: \"tokui-picker-empty\"\n }, o(\"picker.noMatch\"));\n return y.style.display = \"none\", v.appendChild(y), u.appendChild(v), r ? e.children.forEach(function (e) {\n e.attrs && e.attrs.chk !== void 0 && u.appendChild(t(\"input\", {\n type: \"hidden\",\n name: a,\n value: e.attrs.v || \"\"\n }));\n }) : u.appendChild(t(\"input\", {\n type: \"hidden\",\n name: a,\n value: d\n })), c.appendChild(u), c._variantTarget = u, c._slot = v, c._tokuiType = \"picker\", c._streamCloseHook = function () {\n var e = v.querySelectorAll(\".tokui-picker-option--selected\");\n\n if (!r && e.length > 0) {\n var n = e[0],\n o = u.querySelector(\".tokui-picker-search\"),\n s = u.querySelector(\"input[type=hidden]\");\n o && !o.value && (o.value = n.getAttribute(\"data-text\")), s && !s.value && (s.value = n.getAttribute(\"data-value\"));\n }\n\n r && e.length > 0 && e.forEach(function (e) {\n var n = e.getAttribute(\"data-text\"),\n r = e.getAttribute(\"data-value\"),\n i = t(\"span\", {\n class: \"tokui-picker-tag\",\n \"data-value\": r\n }, n + \" \"),\n o = t(\"span\", {\n class: \"tokui-picker-tag-close\"\n }, \"\\xD7\");\n i.appendChild(o), h.insertBefore(i, h.querySelector(\".tokui-picker-search\")), u.appendChild(t(\"input\", {\n type: \"hidden\",\n name: a,\n value: r\n }));\n }), !i && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && g(u, {\n multi: r,\n name: a\n });\n }, c.setAttribute(\"data-tokui-resettable\", \"\"), c._tokuiReset = function () {\n var e = u.querySelector(\".tokui-picker-search\"),\n n = u.querySelector(\"input[type=hidden]\"),\n i = v.querySelectorAll(\".tokui-picker-option\");\n r ? (h.querySelectorAll(\".tokui-picker-tag\").forEach(function (e) {\n h.removeChild(e);\n }), u.querySelectorAll(\"input[type=hidden][name=\\\"\" + a + \"\\\"]\").forEach(function (e) {\n u.removeChild(e);\n }), i.forEach(function (n) {\n var r = n.getAttribute(\"data-selected-initial\") === \"1\";\n\n if (n.classList.toggle(\"tokui-picker-option--selected\", r), r) {\n var i = n.getAttribute(\"data-text\"),\n o = n.getAttribute(\"data-value\"),\n s = t(\"span\", {\n class: \"tokui-picker-tag\",\n \"data-value\": o\n }, i + \" \");\n s.appendChild(t(\"span\", {\n class: \"tokui-picker-tag-close\"\n }, \"\\xD7\")), h.insertBefore(s, e), u.appendChild(t(\"input\", {\n type: \"hidden\",\n name: a,\n value: o\n }));\n }\n })) : (e && (e.value = f), n && (n.value = d), i.forEach(function (e) {\n var t = !!d && e.getAttribute(\"data-value\") === d;\n e.classList.toggle(\"tokui-picker-option--selected\", t);\n }));\n }, c;\n });\n\n function p(e) {\n var n = e.attrs && e.attrs.v || \"\",\n r = e.attrs && e.attrs.tx || n || e.content || \"\",\n i = e.attrs && e.attrs.chk !== void 0,\n a = t(\"li\", {\n class: \"tokui-picker-option\",\n \"data-value\": n,\n \"data-text\": r,\n \"data-tokui-tag\": \"opt\",\n role: \"option\",\n \"aria-selected\": String(i)\n }, r);\n return i && a.classList.add(\"tokui-picker-option--selected\"), i && a.setAttribute(\"data-selected-initial\", \"1\"), a;\n }\n\n function m(e, n, r) {\n var i = e.attrs && e.attrs.tx || e.attrs && e.attrs.v || e.content || \"\",\n a = t(\"span\", {\n class: \"tokui-picker-tag\",\n \"data-value\": e.attrs && e.attrs.v || e.content || \"\"\n }, i + \" \"),\n o = t(\"span\", {\n class: \"tokui-picker-tag-close\"\n }, \"\\xD7\");\n return a.appendChild(o), a;\n }\n\n function g(e, n) {\n var r = n.multi,\n i = n.name,\n a = e.querySelector(\".tokui-picker-control\"),\n o = e.querySelector(\".tokui-picker-search\"),\n s = e.querySelector(\".tokui-picker-dropdown\"),\n c = e.querySelector(\".tokui-picker-empty\"),\n l = !1,\n u = -1;\n\n function d() {\n return Array.from(s.querySelectorAll(\".tokui-picker-option\")).filter(function (e) {\n return e.style.display !== \"none\";\n });\n }\n\n function f() {\n if (!l) {\n l = !0, e.classList.add(\"tokui-picker--open\");\n var t = a.getBoundingClientRect();\n s.style.left = t.left + \"px\", s.style.top = t.bottom + 4 + \"px\", s.style.width = t.width + \"px\", o.focus(), u = -1;\n }\n }\n\n function p() {\n l && (l = !1, e.classList.remove(\"tokui-picker--open\"), r && (o.value = \"\"), _(\"\"), h());\n }\n\n function m() {\n l ? p() : f();\n }\n\n function h() {\n d().forEach(function (e) {\n e.classList.remove(\"tokui-picker-option--active\");\n }), u = -1;\n }\n\n function g(e) {\n var t = d();\n h(), !(e < 0 || e >= t.length) && (u = e, t[e].classList.add(\"tokui-picker-option--active\"), t[e].scrollIntoView({\n block: \"nearest\"\n }));\n }\n\n function _(e) {\n var t = e.toLowerCase(),\n n = s.querySelectorAll(\".tokui-picker-option\"),\n r = 0;\n n.forEach(function (e) {\n var n = !t || e.getAttribute(\"data-text\").toLowerCase().indexOf(t) !== -1;\n e.style.display = n ? \"\" : \"none\", n && r++;\n }), c.style.display = r === 0 ? \"\" : \"none\", h();\n }\n\n function v(e) {\n var t = e.getAttribute(\"data-value\"),\n n = e.getAttribute(\"data-text\");\n r ? b(e, t, n) : y(e, t, n);\n }\n\n function y(t, n, r) {\n s.querySelectorAll(\".tokui-picker-option--selected\").forEach(function (e) {\n e.classList.remove(\"tokui-picker-option--selected\");\n }), t.classList.add(\"tokui-picker-option--selected\"), o.value = r;\n var i = e.querySelector(\"input[type=hidden]\");\n i && (i.value = n), p();\n }\n\n function b(e, t, n) {\n e.classList.toggle(\"tokui-picker-option--selected\") ? (x(t, n), C(t)) : (S(t), w(t)), o.value = \"\", o.focus();\n }\n\n function x(e, n) {\n var r = t(\"span\", {\n class: \"tokui-picker-tag\",\n \"data-value\": e\n }, n + \" \"),\n i = t(\"span\", {\n class: \"tokui-picker-tag-close\"\n }, \"\\xD7\");\n i.addEventListener(\"click\", function (t) {\n t.stopPropagation();\n var n = s.querySelector(\".tokui-picker-option[data-value=\\\"\" + e + \"\\\"]\");\n n && n.classList.remove(\"tokui-picker-option--selected\"), S(e), w(e);\n }), r.appendChild(i), a.insertBefore(r, o);\n }\n\n function S(e) {\n var t = a.querySelector(\".tokui-picker-tag[data-value=\\\"\" + e + \"\\\"]\");\n t && a.removeChild(t);\n }\n\n function C(n) {\n e.appendChild(t(\"input\", {\n type: \"hidden\",\n name: i,\n value: n\n }));\n }\n\n function w(t) {\n e.querySelectorAll(\"input[type=hidden][name=\\\"\" + i + \"\\\"]\").forEach(function (n) {\n n.value === t && e.removeChild(n);\n });\n }\n\n a.addEventListener(\"click\", function (e) {\n e.target.classList.contains(\"tokui-picker-tag-close\") || m();\n }), o.addEventListener(\"input\", function () {\n l || f(), _(o.value);\n }), o.addEventListener(\"keydown\", function (e) {\n var t = d();\n if (e.key === \"ArrowDown\") e.preventDefault(), l || f(), g(u < t.length - 1 ? u + 1 : 0);else if (e.key === \"ArrowUp\") e.preventDefault(), l || f(), g(u > 0 ? u - 1 : t.length - 1);else if (e.key === \"Enter\") e.preventDefault(), u >= 0 && u < t.length && v(t[u]);else if (e.key === \"Escape\") p();else if (e.key === \"Backspace\" && r && o.value === \"\") {\n var n = a.querySelectorAll(\".tokui-picker-tag\");\n\n if (n.length > 0) {\n var i = n[n.length - 1].getAttribute(\"data-value\"),\n c = s.querySelector(\".tokui-picker-option[data-value=\\\"\" + i + \"\\\"]\");\n c && c.classList.remove(\"tokui-picker-option--selected\"), S(i), w(i);\n }\n }\n }), s.addEventListener(\"click\", function (e) {\n var t = e.target.closest(\".tokui-picker-option\");\n t && v(t);\n }), document.addEventListener(\"click\", function (t) {\n e.contains(t.target) || p();\n }), a.querySelectorAll(\".tokui-picker-tag-close\").forEach(function (e) {\n e.addEventListener(\"click\", function (t) {\n t.stopPropagation();\n var n = e.parentElement.getAttribute(\"data-value\"),\n r = s.querySelector(\".tokui-picker-option[data-value=\\\"\" + n + \"\\\"]\");\n r && r.classList.remove(\"tokui-picker-option--selected\"), S(n), w(n);\n });\n });\n }\n\n e.register(\"select\", function (e, n) {\n e = r(e);\n var i = e.attrs.multi !== void 0,\n a = t(\"div\", {\n class: (e.attrs.v ? e.attrs.v.split(\",\").map(function (e) {\n return e.trim();\n }) : []).indexOf(\"inline\") === -1 ? \"tokui-field\" : \"tokui-field tokui-field--inline\"\n });\n\n if (e.attrs.l) {\n var _n26 = {\n class: \"tokui-label\"\n };\n e.attrs.id && !i && (_n26.for = e.attrs.id), a.appendChild(t(\"label\", _n26, e.attrs.l));\n }\n\n var o = {\n class: \"tokui-select\"\n };\n i && (o.multiple = !0), e.attrs.id && (o.id = e.attrs.id), e.attrs.n ? o.name = e.attrs.n : e.attrs.id && (o.name = e.attrs.id), e.attrs.req !== void 0 && (o[\"aria-required\"] = \"true\");\n var s = t(\"select\", o);\n\n if (e.attrs.ph) {\n var _n27 = t(\"option\", {\n value: \"\",\n disabled: \"\",\n selected: \"\"\n }, e.attrs.ph);\n\n s.appendChild(_n27);\n }\n\n return n(e.children).forEach(function (e) {\n e && e.nodeType && s.appendChild(e);\n }), a.appendChild(s), a._update = function (e) {\n e.v !== void 0 && (s.value = e.v), e.dis === !0 || e.dis === \"true\" ? s.disabled = !0 : (e.dis === !1 || e.dis === \"false\") && (s.disabled = !1);\n }, a._variantTarget = s, a._slot = s, a._tokuiType = \"select\", a;\n }), e.register(\"radio\", function (e, n) {\n e = r(e);\n var i = e.attrs.v ? e.attrs.v.split(\",\").map(function (e) {\n return e.trim();\n }) : [],\n a = t(\"div\", {\n class: i.indexOf(\"inline\") === -1 ? \"tokui-field\" : \"tokui-field tokui-field--inline\"\n });\n e.attrs.l && a.appendChild(t(\"div\", {\n class: \"tokui-label\"\n }, e.attrs.l));\n var o = t(\"div\", {\n class: \"tokui-radio-group\" + (i.indexOf(\"vertical\") === -1 ? \"\" : \" tokui-radio-group--vertical\"),\n role: \"radiogroup\"\n });\n e.attrs.id && (o.id = e.attrs.id);\n var s = e.attrs.n || e.attrs.id || \"radio\";\n return o._radioName = s, e.children.forEach(function (e) {\n o.appendChild(_(e, s));\n }), a.appendChild(o), a._slot = o, a._tokuiType = \"radio\", a;\n });\n\n function _(e, n) {\n var r = t(\"label\", {\n class: \"tokui-radio-item\"\n });\n r.setAttribute(\"data-tokui-tag\", \"opt\");\n var i = {\n type: \"radio\",\n name: n,\n class: \"tokui-radio-input\"\n };\n e.attrs && e.attrs.v && (i.value = e.attrs.v), e.attrs && e.attrs.chk !== void 0 && (i.checked = \"checked\"), r.appendChild(t(\"input\", i));\n var a = e.attrs && e.attrs.tx || e.attrs && e.attrs.v || e.content || \"\";\n return r.appendChild(t(\"span\", {\n class: \"tokui-radio-text\"\n }, a)), r;\n }\n\n function y(e, n) {\n var r = t(\"label\", {\n class: \"tokui-checkbox-item\"\n });\n r.setAttribute(\"data-tokui-tag\", \"opt\");\n var i = {\n type: \"checkbox\",\n name: n,\n class: \"tokui-checkbox-input\"\n };\n e.attrs && e.attrs.v !== void 0 && (i.value = e.attrs.v), e.attrs && e.attrs.chk !== void 0 && (i.checked = \"checked\"), r.appendChild(t(\"input\", i));\n var a = e.attrs && e.attrs.tx || e.attrs && e.attrs.v || e.content || \"\";\n return r.appendChild(t(\"span\", {\n class: \"tokui-checkbox-text\"\n }, a)), r;\n }\n\n e.register(\"opt\", function (e, n, r) {\n if (r === \"radio\") return _(e, \"\");\n if (r === \"checkbox\") return y(e, \"\");\n if (r === \"picker\") return p(e);\n var i = e.attrs ? e.attrs.v : \"\",\n a = e.attrs && e.attrs.tx || i || e.content || \"\";\n return t(\"option\", {\n value: i\n }, a);\n }), e.register(\"checkbox\", function (e, n) {\n if (e = r(e), !(e.children && e.children.length > 0 || e.attrs.multi !== void 0)) {\n var _n28 = (e.attrs.v ? e.attrs.v.split(\",\").map(function (e) {\n return e.trim();\n }) : []).indexOf(\"inline\") !== -1;\n\n var i = t(\"label\", {\n class: \"tokui-checkbox\" + (_n28 ? \" tokui-checkbox--inline\" : \"\"),\n role: \"checkbox\",\n \"aria-checked\": String(e.attrs.chk !== void 0)\n });\n var _r12 = {\n type: \"checkbox\",\n class: \"tokui-checkbox-input\"\n };\n e.attrs.id && (_r12.id = e.attrs.id), e.attrs.n ? _r12.name = e.attrs.n : e.attrs.id && (_r12.name = e.attrs.id), e.attrs.chk !== void 0 && (_r12.checked = \"checked\");\n\n var _o10 = t(\"input\", _r12);\n\n if (i.appendChild(_o10), i.appendChild(t(\"span\", {\n class: \"tokui-checkbox-text\"\n }, e.attrs.l || \"\")), _o10.addEventListener(\"change\", function () {\n i.setAttribute(\"aria-checked\", String(_o10.checked));\n }), !_n28) {\n var a = t(\"div\", {\n class: \"tokui-field\"\n });\n return a.appendChild(i), a;\n }\n\n return i;\n }\n\n var o = e.attrs.v ? e.attrs.v.split(\",\").map(function (e) {\n return e.trim();\n }) : [],\n s = t(\"div\", {\n class: o.indexOf(\"inline\") === -1 ? \"tokui-field\" : \"tokui-field tokui-field--inline\"\n });\n e.attrs.l && s.appendChild(t(\"div\", {\n class: \"tokui-label\"\n }, e.attrs.l));\n var c = e.attrs.n || e.attrs.id || \"checkbox\",\n l = t(\"div\", {\n class: \"tokui-checkbox-group\" + (o.indexOf(\"vertical\") === -1 ? \"\" : \" tokui-checkbox-group--vertical\"),\n role: \"group\"\n });\n return l._checkboxName = c, e.attrs.id && (l.id = e.attrs.id), e.children && e.children.length && e.children.forEach(function (e) {\n l.appendChild(y(e, c));\n }), s.appendChild(l), s._slot = l, s._tokuiType = \"checkbox\", s;\n }), e.register(\"switch\", function (n) {\n var r = t(\"label\", {\n class: \"tokui-switch\"\n }),\n i = {\n type: \"checkbox\",\n class: \"tokui-switch-input\"\n };\n n.attrs.n ? i.name = n.attrs.n : n.attrs.id && (i.name = n.attrs.id), n.attrs.v && (i.value = n.attrs.v), n.attrs.chk !== void 0 && (i.checked = \"checked\"), n.attrs.dis !== void 0 && (i.disabled = \"disabled\"), r.appendChild(t(\"input\", i));\n var a = t(\"span\", {\n class: \"tokui-switch__track\",\n role: \"switch\",\n \"aria-checked\": String(!!i.checked)\n });\n r.appendChild(a), n.attrs.l && r.appendChild(t(\"span\", {\n class: \"tokui-switch__label\"\n }, n.attrs.l));\n var o = r.querySelector(\".tokui-switch-input\");\n\n if (o.addEventListener(\"change\", function () {\n a.setAttribute(\"aria-checked\", String(o.checked));\n }), n.attrs.clk && e.eventBus) {\n var s = e.eventBus.getHandler(n.attrs.clk);\n s && o.addEventListener(\"change\", function (e) {\n s(null, e, r);\n });\n }\n\n r._update = function (e) {\n e.chk === !0 || e.chk === \"true\" ? (o.checked = !0, a.setAttribute(\"aria-checked\", \"true\")) : (e.chk === !1 || e.chk === \"false\") && (o.checked = !1, a.setAttribute(\"aria-checked\", \"false\")), e.dis === !0 || e.dis === \"true\" ? o.disabled = !0 : (e.dis === !1 || e.dis === \"false\") && (o.disabled = !1);\n }, n.attrs.id && (r.id = n.attrs.id);\n var c = n.attrs.chk !== void 0;\n return r.setAttribute(\"data-tokui-resettable\", \"\"), r._tokuiReset = function () {\n o.checked = c, a.setAttribute(\"aria-checked\", String(c));\n }, r;\n }), e.register(\"slider\", function (e) {\n var n = parseFloat(e.attrs.min) || 0,\n r = parseFloat(e.attrs.max) || 100,\n i = parseFloat(e.attrs.step) || 1,\n a = parseFloat(e.attrs.v) || 0;\n a < n && (a = n), a > r && (a = r);\n var o = t(\"div\", {\n class: \"tokui-field\"\n });\n e.attrs.l && o.appendChild(t(\"label\", {\n class: \"tokui-label\",\n for: e.attrs.id || \"\"\n }, e.attrs.l));\n var s = t(\"div\", {\n class: \"tokui-slider\"\n }),\n c = t(\"div\", {\n class: \"tokui-slider__track\"\n }),\n l = t(\"div\", {\n class: \"tokui-slider__fill\"\n }),\n u = t(\"div\", {\n class: \"tokui-slider__thumb\",\n role: \"slider\",\n \"aria-valuemin\": String(n),\n \"aria-valuemax\": String(r),\n \"aria-valuenow\": String(a),\n \"aria-label\": e.attrs.l || \"Slider\",\n tabindex: \"0\"\n }),\n d = t(\"span\", {\n class: \"tokui-slider__value\"\n }, String(a)),\n f = t(\"input\", {\n type: \"hidden\"\n });\n e.attrs.id && (f.id = e.attrs.id), e.attrs.n ? f.name = e.attrs.n : e.attrs.id && (f.name = e.attrs.id), f.value = a, c.appendChild(l), c.appendChild(u), s.appendChild(c), s.appendChild(d), s.appendChild(f);\n var p = (a - n) / (r - n) * 100;\n if (l.style.width = p + \"%\", u.style.left = p + \"%\", e.attrs.dis !== void 0) s.classList.add(\"tokui-slider--disabled\");else {\n var m = function m(e) {\n e.preventDefault();\n var t = c.getBoundingClientRect(),\n o = ((e.touches ? e.touches[0].clientX : e.clientX) - t.left) / t.width;\n o = Math.max(0, Math.min(1, o));\n var s = n + o * (r - n),\n p = Math.round(s / i) * i;\n p = Math.max(n, Math.min(r, p));\n var m = i < 1 ? Math.pow(10, Math.ceil(-Math.log10(i))) : 1;\n p = Math.round(p * m) / m, a = p;\n var h = (a - n) / (r - n) * 100;\n l.style.width = h + \"%\", u.style.left = h + \"%\", d.textContent = String(a), f.value = a, u.setAttribute(\"aria-valuenow\", String(a));\n },\n h = function h() {\n if (document.removeEventListener(\"mousemove\", m), document.removeEventListener(\"mouseup\", h), document.removeEventListener(\"touchmove\", m), document.removeEventListener(\"touchend\", h), u.classList.remove(\"tokui-slider__thumb--dragging\"), e.attrs.clk) {\n var t = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._eventBus ? window.TokUI._eventBus.getHandler(e.attrs.clk) : null;\n t && t({\n value: a,\n id: e.attrs.id\n });\n }\n },\n g = function g(e) {\n e.preventDefault(), m(e), document.addEventListener(\"mousemove\", m), document.addEventListener(\"mouseup\", h), document.addEventListener(\"touchmove\", m), document.addEventListener(\"touchend\", h), u.classList.add(\"tokui-slider__thumb--dragging\");\n };\n\n s.addEventListener(\"mousedown\", g), s.addEventListener(\"touchstart\", g, {\n passive: !1\n });\n }\n\n o._update = function (e) {\n if (e.v !== void 0) {\n var t = parseFloat(e.v) || 0;\n isNaN(n) || (t = Math.max(n, t)), isNaN(r) || (t = Math.min(r, t)), a = t;\n var i = (a - n) / (r - n) * 100;\n l.style.width = i + \"%\", u.style.left = i + \"%\", d.textContent = String(a), f.value = a, u.setAttribute(\"aria-valuenow\", String(a));\n }\n\n e.dis === !0 || e.dis === \"true\" ? s.classList.add(\"tokui-slider--disabled\") : (e.dis === !1 || e.dis === \"false\") && s.classList.remove(\"tokui-slider--disabled\");\n };\n\n var _ = a;\n return o.setAttribute(\"data-tokui-resettable\", \"\"), o._tokuiReset = function () {\n a = _;\n var e = (a - n) / (r - n) * 100;\n l.style.width = e + \"%\", u.style.left = e + \"%\", d.textContent = String(a), f.value = a, u.setAttribute(\"aria-valuenow\", String(a));\n }, s._variantTarget = s, o.appendChild(s), o;\n }), e.register(\"rate\", function (e) {\n var n = parseInt(e.attrs.max) || 5,\n r = parseInt(e.attrs.v) || 0,\n i = e.attrs.tx || \"\\u2605\",\n a = \"\\u2606\",\n s = t(\"div\", {\n class: \"tokui-field\"\n });\n e.attrs.l && s.appendChild(t(\"label\", {\n class: \"tokui-label\",\n for: e.attrs.id || \"\"\n }, e.attrs.l));\n var c = t(\"div\", {\n class: \"tokui-rate\",\n role: \"radiogroup\",\n \"aria-label\": e.attrs.l || o(\"rate.defaultLabel\"),\n tabindex: \"0\"\n }),\n l = t(\"input\", {\n type: \"hidden\"\n });\n e.attrs.id && (l.id = e.attrs.id), e.attrs.n ? l.name = e.attrs.n : e.attrs.id && (l.name = e.attrs.id), l.value = r;\n\n for (var u = [], d = 0; d < n; d++) {\n var f = t(\"span\", {\n class: \"tokui-rate__star\",\n \"data-index\": String(d + 1),\n role: \"radio\",\n \"aria-checked\": String(d < r)\n });\n f.textContent = d < r ? i : a, d < r && f.classList.add(\"tokui-rate__star--active\"), u.push(f), c.appendChild(f);\n }\n\n var p = t(\"span\", {\n class: \"tokui-rate__text\"\n });\n r > 0 && (p.textContent = r + \"/\" + n), c.appendChild(p), c.appendChild(l), e.attrs.ro === void 0 ? e.attrs.dis === void 0 ? (c.addEventListener(\"mouseover\", function (e) {\n var t = e.target;\n if (t.classList.contains(\"tokui-rate__star\")) for (var n = parseInt(t.getAttribute(\"data-index\")), r = 0; r < u.length; r++) {\n u[r].textContent = r < n ? i : a, u[r].classList.toggle(\"tokui-rate__star--hover\", r < n);\n }\n }), c.addEventListener(\"mouseout\", function () {\n for (var e = 0; e < u.length; e++) {\n u[e].textContent = e < r ? i : a, u[e].classList.remove(\"tokui-rate__star--hover\");\n }\n }), c.addEventListener(\"click\", function (t) {\n var o = t.target;\n\n if (o.classList.contains(\"tokui-rate__star\")) {\n var s = parseInt(o.getAttribute(\"data-index\"));\n r = r === s ? 0 : s, l.value = r, p.textContent = r > 0 ? r + \"/\" + n : \"\";\n\n for (var c = 0; c < u.length; c++) {\n u[c].textContent = c < r ? i : a, u[c].classList.toggle(\"tokui-rate__star--active\", c < r), u[c].setAttribute(\"aria-checked\", String(c < r));\n }\n\n if (e.attrs.clk) {\n var d = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._eventBus ? window.TokUI._eventBus.getHandler(e.attrs.clk) : null;\n d && d({\n value: r,\n max: n,\n id: e.attrs.id\n });\n }\n }\n }), c.addEventListener(\"keydown\", function (e) {\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") e.preventDefault(), r = Math.min(r + 1, n);else if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") e.preventDefault(), r = Math.max(r - 1, 0);else return;\n l.value = r, p.textContent = r > 0 ? r + \"/\" + n : \"\";\n\n for (var t = 0; t < u.length; t++) {\n u[t].textContent = t < r ? i : a, u[t].classList.toggle(\"tokui-rate__star--active\", t < r), u[t].setAttribute(\"aria-checked\", String(t < r));\n }\n })) : c.classList.add(\"tokui-rate--disabled\") : c.classList.add(\"tokui-rate--readonly\"), s._update = function (e) {\n if (e.v !== void 0) {\n r = parseInt(e.v) || 0, r > n && (r = n), r < 0 && (r = 0), l.value = r, p.textContent = r > 0 ? r + \"/\" + n : \"\";\n\n for (var t = 0; t < u.length; t++) {\n u[t].textContent = t < r ? i : a, u[t].classList.toggle(\"tokui-rate__star--active\", t < r), u[t].setAttribute(\"aria-checked\", String(t < r));\n }\n }\n\n e.dis === !0 || e.dis === \"true\" ? c.classList.add(\"tokui-rate--disabled\") : (e.dis === !1 || e.dis === \"false\") && c.classList.remove(\"tokui-rate--disabled\");\n };\n var m = r;\n return s.setAttribute(\"data-tokui-resettable\", \"\"), s._tokuiReset = function () {\n r = m, l.value = r, p.textContent = r > 0 ? r + \"/\" + n : \"\";\n\n for (var e = 0; e < u.length; e++) {\n u[e].textContent = e < r ? i : a, u[e].classList.toggle(\"tokui-rate__star--active\", e < r), u[e].setAttribute(\"aria-checked\", String(e < r));\n }\n }, c._variantTarget = c, s.appendChild(c), s;\n }), e.register(\"transfer\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-field\"\n });\n e.attrs.l && r.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, e.attrs.l));\n var i = t(\"div\", {\n class: \"tokui-transfer\"\n });\n\n function a(e) {\n var n = t(\"div\", {\n class: \"tokui-transfer__panel\",\n role: \"listbox\"\n }),\n r = t(\"div\", {\n class: \"tokui-transfer__header\"\n }),\n i = t(\"input\", {\n type: \"checkbox\",\n class: \"tokui-transfer__check-all\"\n });\n r.appendChild(i), r.appendChild(t(\"span\", {}, e));\n var a = t(\"span\", {\n class: \"tokui-transfer__count\"\n }, \"0/0\");\n r.appendChild(a), n.appendChild(r);\n var o = t(\"div\", {\n class: \"tokui-transfer__body\"\n });\n return n.appendChild(o), n._body = o, n._header = r, n._checkAll = i, n._count = a, n._items = [], i.addEventListener(\"change\", function () {\n var e = i.checked;\n n._items.forEach(function (t) {\n t._cb.checked = e;\n }), _(n);\n }), n;\n }\n\n function o(e, n, r) {\n var i = t(\"label\", {\n class: \"tokui-transfer__item\",\n role: \"option\",\n \"aria-selected\": \"false\"\n });\n i.setAttribute(\"data-tokui-tag\", \"opt\"), r !== void 0 && i.setAttribute(\"data-tokui-idx\", String(r));\n var a = t(\"input\", {\n type: \"checkbox\",\n value: e\n });\n return i.appendChild(a), i.appendChild(t(\"span\", {}, n)), i._cb = a, a.addEventListener(\"change\", function () {\n var e = i.closest(\".tokui-transfer__panel\");\n e && _(e);\n }), i;\n }\n\n var s = e.attrs.tt || \"Source\",\n c = e.attrs.tt2 || \"Target\",\n l = a(s),\n u = a(c);\n\n function d(e) {\n return /^\\d+$/.test(String(e).trim()) ? String(e).trim() + \"px\" : String(e).trim();\n }\n\n [l, u].forEach(function (t) {\n if (e.attrs.h) {\n var n = d(e.attrs.h);\n t.style.height = n, t.style.minHeight = n, t.style.maxHeight = n;\n } else e.attrs.mh && (t.style.maxHeight = d(e.attrs.mh));\n });\n var f = t(\"div\", {\n class: \"tokui-transfer__actions\"\n }),\n p = t(\"button\", {\n class: \"tokui-transfer__btn\",\n type: \"button\"\n }, \"\\u2192\"),\n m = t(\"button\", {\n class: \"tokui-transfer__btn\",\n type: \"button\"\n }, \"\\u2190\");\n f.appendChild(p), f.appendChild(m);\n var h = t(\"input\", {\n type: \"hidden\"\n });\n e.attrs.id && (h.id = e.attrs.id), e.attrs.n ? h.name = e.attrs.n : e.attrs.id && (h.name = e.attrs.id);\n\n function g() {\n h.value = u._items.map(function (e) {\n return e._cb.value;\n }).join(\",\");\n }\n\n function _(e) {\n var t = e._items.filter(function (e) {\n return e._cb.checked;\n }).length;\n\n e._count.textContent = t + \"/\" + e._items.length, e._checkAll.checked = t > 0 && t === e._items.length;\n }\n\n function v(t, n) {\n var r = [];\n\n if (t._items = t._items.filter(function (e) {\n return e._cb.checked ? (e._cb.checked = !1, n._body.appendChild(e), n._items.push(e), r.push(e), !1) : !0;\n }), _(t), _(n), g(), e.attrs.clk && r.length > 0) {\n var i = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._eventBus ? window.TokUI._eventBus.getHandler(e.attrs.clk) : null;\n i && i({\n values: u._items.map(function (e) {\n return e._cb.value;\n }),\n id: e.attrs.id\n });\n }\n }\n\n function y(e) {\n (e || []).forEach(function (e) {\n e.type === \"opt\" && b(e);\n }), _(l), _(u), g();\n }\n\n function b(e) {\n var t = e.attrs && e.attrs.v || \"\",\n n = e.attrs && e.attrs.tx || t,\n i = e.attrs && e.attrs.chk !== void 0,\n a = o(t, n, r._transferOptIdx++);\n return a.setAttribute(\"data-tokui-init-side\", i ? \"right\" : \"left\"), i ? (u._body.appendChild(a), u._items.push(a)) : (l._body.appendChild(a), l._items.push(a)), _(l), _(u), g(), a;\n }\n\n p.addEventListener(\"click\", function () {\n v(l, u);\n }), m.addEventListener(\"click\", function () {\n v(u, l);\n }), r._transferOptIdx = 0;\n var x = t(\"div\", {});\n return x.style.display = \"none\", i.appendChild(l), i.appendChild(f), i.appendChild(u), i.appendChild(h), i.appendChild(x), e.attrs.dis !== void 0 && i.classList.add(\"tokui-transfer--disabled\"), r._tokuiTransferAppend = function (e) {\n return b(e);\n }, e.children && e.children.length && y(e.children), r._streamCloseHook = function () {\n x.innerHTML = \"\";\n }, r._slot = x, r._tokuiType = \"transfer\", i._variantTarget = i, r.setAttribute(\"data-tokui-resettable\", \"\"), r._tokuiReset = function () {\n l._items.concat(u._items).forEach(function (e) {\n var t = (e.getAttribute(\"data-tokui-init-side\") || \"left\") === \"right\" ? u : l,\n n = u._items.indexOf(e) === -1 ? l : u;\n n !== t && (n._items.splice(n._items.indexOf(e), 1), t._body.appendChild(e), t._items.push(e)), e._cb && (e._cb.checked = !1);\n }), _(l), _(u), g();\n }, r.appendChild(i), r;\n }), e.register(\"numinput\", function (e) {\n var n = parseFloat(e.attrs.min),\n r = parseFloat(e.attrs.max),\n i = parseFloat(e.attrs.step) || 1,\n a = parseFloat(e.attrs.v) || 0;\n isNaN(n) || (a = Math.max(n, a)), isNaN(r) || (a = Math.min(r, a));\n var o = e.attrs.dis !== void 0,\n s = t(\"div\", {\n class: \"tokui-field\"\n });\n e.attrs.l && s.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, e.attrs.l));\n var c = t(\"div\", {\n class: \"tokui-numinput\" + (o ? \" tokui-numinput--disabled\" : \"\")\n }),\n l = t(\"button\", {\n class: \"tokui-numinput__btn tokui-numinput__btn--minus\",\n type: \"button\"\n });\n l.textContent = \"\\u2212\", c.appendChild(l);\n var u = {\n class: \"tokui-numinput__input\",\n type: \"text\",\n value: String(a)\n };\n e.attrs.id && (u.id = e.attrs.id), o && (u.disabled = \"disabled\");\n var d = t(\"input\", u);\n c.appendChild(d);\n var f = t(\"button\", {\n class: \"tokui-numinput__btn tokui-numinput__btn--plus\",\n type: \"button\"\n });\n f.textContent = \"+\", c.appendChild(f);\n var p = {\n type: \"hidden\"\n };\n e.attrs.n ? p.name = e.attrs.n : e.attrs.id && (p.name = e.attrs.id), p.value = String(a);\n var m = t(\"input\", p);\n\n if (c.appendChild(m), !o) {\n function _e54(e) {\n return isNaN(n) || (e = Math.max(n, e)), isNaN(r) || (e = Math.min(r, e)), e;\n }\n\n function _t30(t) {\n var n = i < 1 ? Math.pow(10, Math.ceil(-Math.log10(i))) : 1;\n t = Math.round(t * n) / n, t = _e54(t), a = t, d.value = String(a), m.value = a;\n }\n\n l.addEventListener(\"click\", function () {\n _t30(a - i);\n }), f.addEventListener(\"click\", function () {\n _t30(a + i);\n }), d.addEventListener(\"change\", function () {\n var e = parseFloat(d.value);\n isNaN(e) && (e = 0), _t30(e);\n });\n }\n\n s._update = function (e) {\n if (e.v !== void 0) {\n var t = parseFloat(e.v) || 0;\n isNaN(n) || (t = Math.max(n, t)), isNaN(r) || (t = Math.min(r, t)), a = t, d.value = String(a), m.value = a;\n }\n\n e.dis === !0 || e.dis === \"true\" ? (d.disabled = !0, c.classList.add(\"tokui-numinput--disabled\")) : (e.dis === !1 || e.dis === \"false\") && (d.disabled = !1, c.classList.remove(\"tokui-numinput--disabled\"));\n };\n\n var h = a;\n return s.setAttribute(\"data-tokui-resettable\", \"\"), s._tokuiReset = function () {\n a = h, d.value = String(a), d.setAttribute(\"value\", String(a)), m.value = a;\n }, s.appendChild(c), s._variantTarget = c, s;\n });\n var b = new Set([\"primary\", \"danger\", \"success\", \"warning\", \"ghost\", \"sm\", \"lg\", \"pill\", \"square\", \"block\"]);\n e.register(\"btn\", function (e) {\n var r = n(e.attrs);\n var o = r.act === \"submit\" ? \"submit\" : r.act === \"reset\" ? \"reset\" : \"button\",\n s = \"tokui-btn\";\n e.attrs.t && b.has(e.attrs.t) && (s += \" tokui-btn--\" + e.attrs.t), r.act === \"print\" && (s += \" tokui-btn--print\");\n var c = {\n class: s,\n type: o\n };\n r.formId && (c[\"data-tokui-form\"] = r.formId), r.act && (c[\"data-tokui-act\"] = r.act), r.act === \"submit\" && r.handler && (c[\"data-tokui-sub\"] = r.handler), r.act === \"reset\" && r.handler && (c[\"data-tokui-handler\"] = r.handler), r.act === \"print\" && (c[\"data-tokui-target\"] = r.target, c[\"data-tokui-print-trigger\"] = \"\"), !r.act && r.handler && (c[\"data-tokui-clk\"] = r.handler), e.attrs.id && (c.id = e.attrs.id), e.attrs.dis !== void 0 && (c.disabled = \"disabled\"), Object.keys(e.attrs).forEach(function (t) {\n t.startsWith(\"data-\") && (c[t] = e.attrs[t]);\n });\n var l = \"\";\n e.attrs.w && (l += \"width:\" + e.attrs.w + \";\");\n var u = i(e.attrs.bg);\n u && (l += \"background:\" + u + \";\");\n var d = i(e.attrs.fc);\n d && (l += \"color:\" + d + \";\"), e.attrs.radius && (l += \"border-radius:\" + e.attrs.radius + \";\"), l && (c.style = l);\n\n var f = e.attrs.tx || e.content || \"\",\n p = e.attrs.icon,\n m = e.attrs.i,\n h = p ? a(p, 16) : \"\",\n g = !!(p || m),\n _ = t(\"button\", c);\n\n if (_._tokuiType = \"btn\", !f && g) {\n _.classList.add(\"tokui-btn--icon-only\");\n\n var _t31 = e.attrs.l || e.attrs.tt || p || \"\";\n\n _t31 && (_.setAttribute(\"aria-label\", _t31), _.setAttribute(\"data-tokui-tip\", _t31));\n }\n\n if (p) {\n var _e55 = t(\"span\", {\n class: \"tokui-btn__icon\"\n });\n\n _e55.innerHTML = h, _.appendChild(_e55), _.classList.add(\"tokui-btn--has-icon\");\n } else if (m) {\n var _e56 = t(\"span\", {\n class: \"tokui-btn__icon tokui-btn__icon--emoji\"\n }, m);\n\n _.appendChild(_e56), _.classList.add(\"tokui-btn--has-icon\");\n }\n\n var v = null;\n return f && (v = t(\"span\", {\n class: \"tokui-btn__text\"\n }, f), _.appendChild(v)), _._tokuiTextSpan = v, _._update = function (e) {\n e.dis === !0 || e.dis === \"true\" ? _.disabled = !0 : (e.dis === !1 || e.dis === \"false\") && (_.disabled = !1), e.tx !== void 0 && v && (v.textContent = e.tx);\n }, _;\n }), e.register(\"print-area\", function (e, n) {\n var r = {\n class: \"tokui-print-area\"\n };\n e.attrs.id && (r.id = e.attrs.id);\n var i = t(\"div\", r);\n e.attrs.tt && i.appendChild(t(\"div\", {\n class: \"tokui-print-area__title\"\n }, e.attrs.tt));\n var a = t(\"div\", {\n class: \"tokui-print-area__body\"\n });\n return n(e.children).forEach(function (e) {\n e && e.nodeType && a.appendChild(e);\n }), i.appendChild(a), i._slot = a, i._tokuiType = \"print-area\", i;\n }), e.register(\"btngroup\", function (e, n) {\n var r = {\n class: \"tokui-btn-group\"\n };\n e.attrs.id && (r.id = e.attrs.id);\n var i = t(\"div\", r);\n return n(e.children).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), i._slot = i, i._tokuiType = \"btngroup\", i;\n }), e.register(\"cascader\", function (e, n) {\n var r = e.attrs.dis !== void 0,\n i = e.attrs.ph || o(\"select.placeholder\"),\n a = t(\"div\", {\n class: \"tokui-field\"\n });\n e.attrs.l && a.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, e.attrs.l)), e.attrs.id && (a.id = e.attrs.id);\n var s = t(\"div\", {\n class: \"tokui-cascader\" + (r ? \" tokui-cascader--disabled\" : \"\"),\n role: \"combobox\",\n \"aria-expanded\": \"false\"\n }),\n c = t(\"div\", {\n class: \"tokui-cascader-control\"\n }),\n l = t(\"input\", {\n class: \"tokui-cascader-input\",\n type: \"text\",\n readonly: \"readonly\",\n placeholder: i\n }),\n u = t(\"span\", {\n class: \"tokui-cascader-arrow\"\n });\n c.appendChild(l), c.appendChild(u), s.appendChild(c);\n var d = t(\"div\", {\n class: \"tokui-cascader-menus\",\n role: \"listbox\"\n });\n s.appendChild(d);\n var f = t(\"input\", {\n type: \"hidden\"\n });\n e.attrs.n ? f.name = e.attrs.n : e.attrs.id && (f.name = e.attrs.id), s.appendChild(f);\n var p = t(\"div\", {});\n p.style.display = \"none\", s.appendChild(p), a.appendChild(s);\n\n function m(e) {\n var t = {},\n n = [];\n return (e || []).forEach(function (e) {\n if (e.type === \"opt\") {\n var n = e.attrs.v || \"\";\n t[n] = {\n v: n,\n tx: e.attrs.tx || n,\n p: e.attrs.p || \"\",\n children: []\n };\n }\n }), Object.keys(t).forEach(function (e) {\n var r = t[e];\n r.p && t[r.p] ? t[r.p].children.push(r) : n.push(r);\n }), n;\n }\n\n function h(e) {\n var n = t(\"div\", {\n class: \"tokui-cascader-menu\"\n });\n return e.forEach(function (e) {\n var r = t(\"div\", {\n class: \"tokui-cascader-option\" + (e.children.length ? \" tokui-cascader-option--expand\" : \"\"),\n \"data-value\": e.v,\n \"data-text\": e.tx\n });\n r.textContent = e.tx, n.appendChild(r);\n }), n;\n }\n\n function g(e, t) {\n e.querySelectorAll(\".tokui-cascader-option\").forEach(function (e) {\n e.classList.toggle(\"tokui-cascader-option--active\", e.getAttribute(\"data-value\") === t);\n });\n }\n\n function _(e, t) {\n function n(e, r) {\n for (var i = 0; i < e.length; i++) {\n var a = r.concat([{\n v: e[i].v,\n tx: e[i].tx,\n node: e[i]\n }]);\n if (e[i].v === t) return a;\n var o = n(e[i].children, a);\n if (o) return o;\n }\n\n return null;\n }\n\n return n(e, []);\n }\n\n function v(e, t) {\n d.innerHTML = \"\";\n\n for (var n = e, r = 0; r < t.length; r++) {\n var i = h(n);\n g(i, t[r]), d.appendChild(i);\n\n for (var a = !1, o = 0; o < n.length; o++) {\n if (n[o].v === t[r]) {\n n = n[o].children, a = !0;\n break;\n }\n }\n\n if (!a) break;\n }\n\n n && n.length && d.appendChild(h(n));\n }\n\n var y = s._cascaderState = s._cascaderState || {\n isOpen: !1,\n activeValues: [],\n tree: null\n };\n\n function b(e) {\n if (!r) {\n y.isOpen = !0, y.tree = e, s.classList.add(\"tokui-cascader--open\"), s.setAttribute(\"aria-expanded\", \"true\");\n var t = c.getBoundingClientRect();\n d.style.left = t.left + \"px\", d.style.top = t.bottom + 4 + \"px\", d.style.minWidth = t.width + \"px\", v(e, y.activeValues);\n }\n }\n\n function x() {\n y.isOpen = !1, y.activeValues = [], s.classList.remove(\"tokui-cascader--open\"), s.setAttribute(\"aria-expanded\", \"false\");\n }\n\n s._cascaderBindDone || (s._cascaderBindDone = !0, c.addEventListener(\"click\", function (e) {\n e.stopPropagation(), y.isOpen ? x() : y.tree && b(y.tree);\n }), d.addEventListener(\"click\", function (t) {\n t.stopPropagation();\n var n = t.target.closest(\".tokui-cascader-option\");\n\n if (n) {\n var r = n.getAttribute(\"data-value\");\n\n if (n.getAttribute(\"data-text\"), y.tree) {\n var i = _(y.tree, r);\n\n if (i) {\n var a = i[i.length - 1].node,\n o = n.parentElement;\n if (g(o, r), a.children.length > 0) y.activeValues = i.map(function (e) {\n return e.v;\n }), v(y.tree, y.activeValues);else {\n var s = i.map(function (e) {\n return e.tx;\n }).join(\" / \"),\n c = i.map(function (e) {\n return e.v;\n }).join(\"/\");\n\n if (l.value = s, f.value = c, x(), e.attrs.clk) {\n var u = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal && window.TokUI._internal.TokUIEventBus ? window.TokUI._internal.TokUIEventBus.getHandler(e.attrs.clk) : null;\n u && u({\n id: e.attrs.id,\n value: c,\n text: s,\n path: i\n });\n }\n }\n }\n }\n }\n }), (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.addEventListener(\"click\", function () {\n y.isOpen && x();\n }));\n var S = {\n hidden: \"\",\n text: \"\"\n };\n\n function C(t) {\n if (y.tree = t, e.attrs.v) {\n for (var n = String(e.attrs.v).split(\"/\"), r = !0, i = [], a = t, o = 0; o < n.length; o++) {\n for (var s = !1, c = 0; c < a.length; c++) {\n if (a[c].v === n[o]) {\n i.push(a[c].tx), a = a[c].children, s = !0;\n break;\n }\n }\n\n if (!s) {\n r = !1;\n break;\n }\n }\n\n r && i.length === n.length && (l.value = i.join(\" / \"), f.value = e.attrs.v);\n }\n\n S.hidden = f.value, S.text = l.value;\n }\n\n return e.children && e.children.length && C(m(e.children)), a._streamCloseHook = function () {\n p.innerHTML = \"\", C(m(e.children));\n }, a._slot = p, a._tokuiType = \"cascader\", a._variantTarget = s, a.setAttribute(\"data-tokui-resettable\", \"\"), a._tokuiReset = function () {\n f.value = S.hidden, l.value = S.text, y.isOpen && x();\n }, a;\n }), e.register(\"upload\", function (e) {\n var n = e.attrs.dis !== void 0,\n r = e.attrs.multi !== void 0,\n i = parseInt(e.attrs.max) || 0,\n a = e.attrs.ph || o(\"upload.hint\"),\n s = e.attrs.accept || \"\",\n c = t(\"div\", {\n class: \"tokui-field\"\n });\n e.attrs.l && c.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, e.attrs.l)), e.attrs.id && (c.id = e.attrs.id);\n var l = t(\"div\", {\n class: \"tokui-upload\" + (n ? \" tokui-upload--disabled\" : \"\")\n }),\n u = t(\"div\", {\n class: \"tokui-upload-dropzone\",\n role: \"button\",\n \"aria-label\": a,\n tabindex: \"0\"\n }),\n d = t(\"div\", {\n class: \"tokui-upload-icon\"\n });\n d.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(d);\n var f = t(\"div\", {\n class: \"tokui-upload-text\"\n });\n f.textContent = a, u.appendChild(f);\n var p = t(\"button\", {\n class: \"tokui-upload-btn\",\n type: \"button\"\n });\n p.textContent = o(\"upload.browse\"), u.appendChild(p), l.appendChild(u);\n var m = {\n type: \"file\",\n style: \"display:none\"\n };\n s && (m.accept = s), r && (m.multiple = \"multiple\");\n var h = t(\"input\", m);\n l.appendChild(h);\n var g = t(\"div\", {\n class: \"tokui-upload-filelist\"\n });\n l.appendChild(g);\n\n var _ = t(\"input\", {\n type: \"hidden\"\n });\n\n e.attrs.n ? _.name = e.attrs.n : e.attrs.id && (_.name = e.attrs.id), l.appendChild(_);\n\n function v(e) {\n return e < 1024 ? e + \" B\" : e < 1048576 ? (e / 1024).toFixed(1) + \" KB\" : (e / 1048576).toFixed(1) + \" MB\";\n }\n\n var y = [];\n\n function b() {\n g.innerHTML = \"\", y.forEach(function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-upload-file\"\n }),\n i = t(\"span\", {\n class: \"tokui-upload-file-icon\"\n });\n i.textContent = \"\\uD83D\\uDCC4\", r.appendChild(i);\n var a = t(\"span\", {\n class: \"tokui-upload-file-name\"\n });\n a.textContent = e.name, a.title = e.name, r.appendChild(a);\n var o = t(\"span\", {\n class: \"tokui-upload-file-size\"\n });\n o.textContent = v(e.size), r.appendChild(o);\n var s = t(\"span\", {\n class: \"tokui-upload-file-remove\"\n });\n s.textContent = \"\\u2715\", s.setAttribute(\"data-idx\", n), r.appendChild(s), g.appendChild(r);\n }), _.value = y.map(function (e) {\n return e.name;\n }).join(\",\");\n }\n\n function x(t) {\n for (var n = 0; n < t.length && !(i && y.length >= i); n++) {\n y.push({\n name: t[n].name,\n size: t[n].size,\n type: t[n].type\n });\n }\n\n if (b(), e.attrs.clk) {\n var r = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._eventBus ? window.TokUI._eventBus.getHandler(e.attrs.clk) : null;\n r && r({\n id: e.attrs.id,\n files: y\n });\n }\n }\n\n return n || (u.addEventListener(\"click\", function (e) {\n (e.target === p || u.contains(e.target)) && h.click();\n }), p.addEventListener(\"click\", function (e) {\n e.stopPropagation(), h.click();\n }), h.addEventListener(\"change\", function () {\n h.files && h.files.length && (x(h.files), h.value = \"\");\n }), u.addEventListener(\"dragover\", function (e) {\n e.preventDefault(), l.classList.add(\"tokui-upload--dragover\");\n }), u.addEventListener(\"dragleave\", function (e) {\n e.preventDefault(), l.classList.remove(\"tokui-upload--dragover\");\n }), u.addEventListener(\"drop\", function (e) {\n e.preventDefault(), l.classList.remove(\"tokui-upload--dragover\"), e.dataTransfer && e.dataTransfer.files.length && x(e.dataTransfer.files);\n }), g.addEventListener(\"click\", function (e) {\n var t = e.target.closest(\".tokui-upload-file-remove\");\n\n if (t) {\n var n = parseInt(t.getAttribute(\"data-idx\"));\n !isNaN(n) && n >= 0 && n < y.length && (y.splice(n, 1), b());\n }\n })), c.appendChild(l), c._variantTarget = l, c;\n });\n\n function x(e) {\n if (!e) return null;\n var t = e.match(/^(\\d{4})-(\\d{1,2})-(\\d{1,2})/);\n return t ? new Date(parseInt(t[1]), parseInt(t[2]) - 1, parseInt(t[3])) : null;\n }\n\n function C(e) {\n if (!e) return null;\n var t = e.match(/^(\\d{4})-(\\d{1,2})-(\\d{1,2})\\s+(\\d{1,2}):(\\d{1,2})/);\n return t ? new Date(parseInt(t[1]), parseInt(t[2]) - 1, parseInt(t[3]), parseInt(t[4]), parseInt(t[5])) : null;\n }\n\n function w(e, t) {\n var n = e.getFullYear(),\n r = e.getMonth() + 1,\n i = e.getDate(),\n a = e.getHours(),\n o = e.getMinutes(),\n s = e.getSeconds();\n 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));\n }\n\n function T(e, t, n, r) {\n 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));\n }\n\n function E(e, t) {\n var n = e.querySelector(\".tokui-timepicker-column-list\");\n\n if (n) {\n var r = n.querySelectorAll(\".tokui-timepicker-column-item\");\n r.length && (t < 0 && (t = 0), t > r.length - 1 && (t = r.length - 1), r.forEach(function (e, n) {\n e.classList.toggle(\"tokui-timepicker-column-item--selected\", n === t);\n }));\n }\n }\n\n function D(e, t) {\n E(e, t);\n var n = e.querySelector(\".tokui-timepicker-column-list\");\n\n if (n) {\n var r = n.querySelectorAll(\".tokui-timepicker-column-item\");\n\n if (r.length) {\n t < 0 && (t = 0), t > r.length - 1 && (t = r.length - 1);\n var i = r[t],\n a = i.offsetHeight || 32;\n\n if (n.clientHeight && i.offsetTop !== void 0) {\n var o = i.offsetTop + a / 2 - n.clientHeight / 2;\n Math.abs(n.scrollTop - o) > 1 && (n.scrollTop = o);\n }\n }\n }\n }\n\n function O(e) {\n var t = e.querySelector(\".tokui-timepicker-column-list\");\n if (!t) return 0;\n var n = t.querySelectorAll(\".tokui-timepicker-column-item\");\n if (!n.length) return 0;\n\n if (n[0].getBoundingClientRect && t.getBoundingClientRect) {\n for (var r = t.getBoundingClientRect(), i = r.top + r.height / 2, a = 0, o = 1 / 0, s = 0; s < n.length; s++) {\n var c = n[s].getBoundingClientRect(),\n l = Math.abs(c.top + c.height / 2 - i);\n l < o && (o = l, a = s);\n }\n\n return a;\n }\n\n var u = n[0].offsetHeight || 32,\n d = Math.round((t.scrollTop + (t.clientHeight || 192) / 2) / u) - 0;\n return Math.max(0, Math.min(d, n.length - 1));\n }\n\n function k(e, n, r) {\n for (var i = t(\"div\", {\n class: \"tokui-timepicker-column\"\n }), a = t(\"div\", {\n class: \"tokui-timepicker-column-list\"\n }), o = 0; o < n; o++) {\n var s = t(\"div\", {\n class: \"tokui-timepicker-column-item\" + (o === r ? \" tokui-timepicker-column-item--selected\" : \"\"),\n \"data-value\": String(o)\n }, o < 10 ? \"0\" + o : String(o));\n s.addEventListener(\"click\", function (e) {\n e.stopPropagation(), D(i, parseInt(this.getAttribute(\"data-value\"), 10));\n }), a.appendChild(s);\n }\n\n i.appendChild(a);\n var c = 0,\n l = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.requestAnimationFrame ? window.requestAnimationFrame : function (e) {\n setTimeout(e, 16);\n };\n return a.addEventListener(\"scroll\", function () {\n c || (c = 1, l(function () {\n c = 0, E(i, O(i));\n }));\n }), i._label = e, i;\n }\n\n function A(e) {\n var t = O(e);\n E(e, t);\n var n = e.querySelector(\".tokui-timepicker-column-list\").querySelectorAll(\".tokui-timepicker-column-item\");\n return parseInt(n[t].getAttribute(\"data-value\")) || 0;\n }\n\n function j(e, t) {\n D(e, t);\n }\n\n var M = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal ? window.TokUI._internal._datePickers = window.TokUI._internal._datePickers || new Set() : new Set();\n\n function N(e) {\n var t = [];\n M.forEach(function (n) {\n n !== e && t.push(n);\n }), t.forEach(function (e) {\n try {\n e();\n } catch (_unused26) {}\n }), M.add(e);\n }\n\n function P(e) {\n M.delete(e);\n }\n\n function F() {\n var e = [];\n M.forEach(function (t) {\n e.push(t);\n }), M.clear(), e.forEach(function (e) {\n try {\n e();\n } catch (_unused27) {}\n });\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && !window.TokUI._internal._dateScrollBound && (window.addEventListener(\"scroll\", F), window.TokUI._internal._dateScrollBound = !0);\n\n function I() {\n return (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.innerWidth ? window.innerWidth : (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : 1024;\n }\n\n function L(e, n, r, i, a) {\n var s = t(\"div\", {\n class: \"tokui-datepicker-header\"\n }),\n c = t(\"button\", {\n class: \"tokui-datepicker-nav tokui-datepicker-nav--prev\",\n type: \"button\"\n });\n c.innerHTML = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\"><polyline points=\\\"15 18 9 12 15 6\\\"/></svg>\";\n var l = t(\"button\", {\n class: \"tokui-datepicker-nav tokui-datepicker-nav--next\",\n type: \"button\"\n });\n l.innerHTML = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\"><polyline points=\\\"9 18 15 12 9 6\\\"/></svg>\";\n var u = t(\"span\", {\n class: \"tokui-datepicker-title\"\n }, o(\"datepicker.title\", {\n y: e,\n m: n + 1\n }));\n s.appendChild(c), s.appendChild(u), s.appendChild(l), a.appendChild(s);\n var d = [o(\"datepicker.weekday.0\"), o(\"datepicker.weekday.1\"), o(\"datepicker.weekday.2\"), o(\"datepicker.weekday.3\"), o(\"datepicker.weekday.4\"), o(\"datepicker.weekday.5\"), o(\"datepicker.weekday.6\")],\n f = t(\"div\", {\n class: \"tokui-datepicker-weekdays\"\n });\n d.forEach(function (e) {\n f.appendChild(t(\"span\", {\n class: \"tokui-datepicker-weekday\"\n }, e));\n }), a.appendChild(f);\n\n for (var p = t(\"div\", {\n class: \"tokui-datepicker-grid\"\n }), 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--) {\n p.appendChild(t(\"span\", {\n class: \"tokui-datepicker-day tokui-datepicker-day--other\"\n }, String(g - y)));\n }\n\n for (var b = 1; b <= h; b++) {\n var x = [\"tokui-datepicker-day\"];\n v && b === _ && x.push(\"tokui-datepicker-day--today\"), r && r.getFullYear() === e && r.getMonth() === n && r.getDate() === b && x.push(\"tokui-datepicker-day--selected\");\n var S = t(\"span\", {\n class: x.join(\" \"),\n \"data-day\": String(b)\n }, String(b));\n p.appendChild(S);\n }\n\n for (var C = 42 - m - h, w = 1; w <= C; w++) {\n p.appendChild(t(\"span\", {\n class: \"tokui-datepicker-day tokui-datepicker-day--other\"\n }, String(w)));\n }\n\n return a.appendChild(p), {\n prevBtn: c,\n nextBtn: l\n };\n }\n\n e.register(\"datepicker\", function (e) {\n var n = e.attrs || {},\n r = n.dis !== void 0,\n i = n.fmt || \"YYYY-MM-DD\",\n a = n.ph || i,\n o = n.v || \"\",\n s = t(\"div\", {\n class: \"tokui-field\"\n });\n n.l && s.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, n.l));\n var c = [\"tokui-datepicker\"];\n r && c.push(\"tokui-datepicker--disabled\");\n var l = t(\"div\", {\n class: c.join(\" \")\n }),\n u = t(\"div\", {\n class: \"tokui-datepicker-control\"\n }),\n d = {\n class: \"tokui-datepicker-input\",\n type: \"text\",\n readonly: \"readonly\",\n placeholder: a\n };\n n.id && (d.id = n.id), r && (d.disabled = \"disabled\"), o && (d.value = o);\n var f = t(\"input\", d);\n u.appendChild(f);\n var p = t(\"span\", {\n class: \"tokui-datepicker-icon\"\n });\n p.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>\", u.appendChild(p), l.appendChild(u);\n\n var m = t(\"div\", {\n class: \"tokui-datepicker-dropdown\"\n }),\n h = new Date(),\n g,\n _,\n v;\n\n o && (v = x(o), v && (g = v.getFullYear(), _ = v.getMonth())), g || (g = h.getFullYear(), _ = h.getMonth());\n var y = t(\"input\", {\n type: \"hidden\"\n });\n n.n ? y.name = n.n : n.id && (y.name = n.id), y.value = o, l.appendChild(y);\n\n function b(e, t) {\n m.innerHTML = \"\";\n var n = L(e, t, v, h, m);\n n.prevBtn.addEventListener(\"click\", function (e) {\n e.stopPropagation(), _--, _ < 0 && (_ = 11, g--), b(g, _);\n }), n.nextBtn.addEventListener(\"click\", function (e) {\n e.stopPropagation(), _++, _ > 11 && (_ = 0, g++), b(g, _);\n });\n }\n\n b(g, _), m.style.display = \"none\", l.appendChild(m);\n var S = !1;\n\n function C() {\n if (!(r || S)) {\n N(T), S = !0, m.style.display = \"\", l.classList.add(\"tokui-datepicker--open\");\n var e = u.getBoundingClientRect();\n m.style.left = e.left + \"px\", m.style.top = e.bottom + 4 + \"px\", m.style.width = \"auto\";\n var t = I();\n e.left + m.offsetWidth > t - 8 && (m.style.left = Math.max(8, t - m.offsetWidth - 8) + \"px\");\n }\n }\n\n function T() {\n S && (S = !1, m.style.display = \"none\", l.classList.remove(\"tokui-datepicker--open\"), P(T));\n }\n\n return r || (u.addEventListener(\"click\", function (e) {\n e.stopPropagation(), S ? T() : C();\n }), m.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n var t = e.target.closest(\".tokui-datepicker-day\");\n\n if (!(!t || t.classList.contains(\"tokui-datepicker-day--other\"))) {\n var r = parseInt(t.getAttribute(\"data-day\"));\n v = new Date(g, _, r);\n var a = w(v, i);\n\n if (f.value = a, y.value = a, T(), b(g, _), n.clk) {\n var o = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._eventBus ? window.TokUI._eventBus.getHandler(n.clk) : null;\n o && o({\n value: a,\n date: v,\n id: n.id\n });\n }\n }\n }), (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.addEventListener(\"click\", function (e) {\n l.contains(e.target) || T();\n })), s.appendChild(l), s._variantTarget = l, s;\n }), e.register(\"timepicker\", function (e) {\n var n = e.attrs || {},\n r = n.dis !== void 0,\n i = n.fmt || \"HH:mm\",\n a = n.ph || i,\n s = n.v || \"\",\n c = t(\"div\", {\n class: \"tokui-field\"\n });\n n.l && c.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, n.l));\n var l = [\"tokui-timepicker\"];\n r && l.push(\"tokui-timepicker--disabled\");\n var u = t(\"div\", {\n class: l.join(\" \")\n }),\n d = t(\"div\", {\n class: \"tokui-timepicker-control\"\n }),\n f = {\n class: \"tokui-timepicker-input\",\n type: \"text\",\n readonly: \"readonly\",\n placeholder: a\n };\n n.id && (f.id = n.id), r && (f.disabled = \"disabled\"), s && (f.value = s);\n var p = t(\"input\", f);\n d.appendChild(p);\n var m = t(\"span\", {\n class: \"tokui-timepicker-icon\"\n });\n m.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(m), u.appendChild(d);\n var h = 0,\n g = 0,\n _ = 0;\n\n if (s) {\n var v = s.split(\":\");\n h = parseInt(v[0]) || 0, g = parseInt(v[1]) || 0, _ = parseInt(v[2]) || 0;\n }\n\n var y = t(\"div\", {\n class: \"tokui-timepicker-dropdown\"\n }),\n b = i.indexOf(\"ss\") !== -1 || i.indexOf(\"s\") !== -1,\n x = t(\"div\", {\n class: \"tokui-timepicker-columns\"\n }),\n S = k(o(\"duration.hour\"), 24, h),\n C = k(o(\"duration.minute\"), 60, g);\n x.appendChild(S), x.appendChild(C);\n var w = null;\n b && (w = k(o(\"duration.second\"), 60, _), x.appendChild(w)), y.appendChild(x);\n var E = t(\"div\", {\n class: \"tokui-timepicker-footer\"\n }),\n D = t(\"button\", {\n class: \"tokui-timepicker-confirm\",\n type: \"button\"\n }, o(\"common.ok\"));\n E.appendChild(D), y.appendChild(E);\n var O = t(\"input\", {\n type: \"hidden\"\n });\n n.n ? O.name = n.n : n.id && (O.name = n.id), O.value = s, u.appendChild(O), y.style.display = \"none\", u.appendChild(y);\n var M = !1;\n\n function F() {\n if (!(r || M)) {\n N(L), M = !0, y.style.display = \"\", u.classList.add(\"tokui-timepicker--open\");\n var e = d.getBoundingClientRect();\n y.style.left = e.left + \"px\", y.style.top = e.bottom + 4 + \"px\", y.style.width = \"auto\";\n var t = I();\n e.left + y.offsetWidth > t - 8 && (y.style.left = Math.max(8, t - y.offsetWidth - 8) + \"px\"), j(S, h), j(C, g), b && w && j(w, _);\n }\n }\n\n function L() {\n M && (M = !1, y.style.display = \"none\", u.classList.remove(\"tokui-timepicker--open\"), P(L));\n }\n\n return r || (d.addEventListener(\"click\", function (e) {\n e.stopPropagation(), M ? L() : F();\n }), D.addEventListener(\"click\", function (e) {\n e.stopPropagation(), h = A(S), g = A(C), b && w && (_ = A(w));\n var t = T(h, g, _, i);\n\n if (p.value = t, O.value = t, L(), n.clk) {\n var r = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._eventBus ? window.TokUI._eventBus.getHandler(n.clk) : null;\n r && r({\n value: t,\n hour: h,\n minute: g,\n second: _,\n id: n.id\n });\n }\n }), (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.addEventListener(\"click\", function (e) {\n u.contains(e.target) || L();\n })), c.appendChild(u), c._variantTarget = u, c;\n }), e.register(\"datetimepicker\", function (e) {\n var n = e.attrs || {},\n r = n.dis !== void 0,\n i = n.fmt || \"YYYY-MM-DD HH:mm\",\n a = n.ph || i,\n s = n.v || \"\",\n c = t(\"div\", {\n class: \"tokui-field\"\n });\n n.l && c.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, n.l));\n var l = [\"tokui-datetimepicker\"];\n r && l.push(\"tokui-datetimepicker--disabled\");\n var u = t(\"div\", {\n class: l.join(\" \")\n }),\n d = t(\"div\", {\n class: \"tokui-datetimepicker-control\"\n }),\n f = {\n class: \"tokui-datetimepicker-input\",\n type: \"text\",\n readonly: \"readonly\",\n placeholder: a\n };\n n.id && (f.id = n.id), r && (f.disabled = \"disabled\"), s && (f.value = s);\n var p = t(\"input\", f);\n d.appendChild(p);\n var m = t(\"span\", {\n class: \"tokui-datetimepicker-icon\"\n });\n 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);\n\n var h = new Date(),\n g,\n _,\n v,\n y = 0,\n b = 0,\n S = 0;\n\n s && (v = C(s) || x(s), v && (g = v.getFullYear(), _ = v.getMonth(), y = v.getHours(), b = v.getMinutes(), S = v.getSeconds())), g || (g = h.getFullYear(), _ = h.getMonth());\n var T = t(\"input\", {\n type: \"hidden\"\n });\n n.n ? T.name = n.n : n.id && (T.name = n.id), T.value = s, u.appendChild(T);\n var E = t(\"div\", {\n class: \"tokui-datetimepicker-dropdown\"\n }),\n D = t(\"div\", {\n class: \"tokui-datetimepicker-date\"\n }),\n O = i.indexOf(\"ss\") !== -1 || i.indexOf(\"s\") !== -1,\n M = t(\"div\", {\n class: \"tokui-datetimepicker-time\"\n }),\n F = t(\"div\", {\n class: \"tokui-timepicker-columns\"\n }),\n R = k(o(\"duration.hour\"), 24, y),\n z = k(o(\"duration.minute\"), 60, b);\n F.appendChild(R), F.appendChild(z);\n var B = null;\n O && (B = k(o(\"duration.second\"), 60, S), F.appendChild(B)), M.appendChild(F);\n\n function V(e, t) {\n D.innerHTML = \"\";\n var n = L(e, t, v, h, D);\n n.prevBtn.addEventListener(\"click\", function (e) {\n e.stopPropagation(), _--, _ < 0 && (_ = 11, g--), V(g, _);\n }), n.nextBtn.addEventListener(\"click\", function (e) {\n e.stopPropagation(), _++, _ > 11 && (_ = 0, g++), V(g, _);\n });\n }\n\n var H = t(\"div\", {\n class: \"tokui-datetimepicker-footer\"\n }),\n U = t(\"button\", {\n class: \"tokui-timepicker-confirm\",\n type: \"button\"\n }, o(\"common.ok\"));\n H.appendChild(U);\n var W = t(\"div\", {\n class: \"tokui-datetimepicker-body\"\n });\n W.appendChild(D), W.appendChild(M), E.appendChild(W), E.appendChild(H), V(g, _), E.style.display = \"none\", u.appendChild(E);\n var G = !1;\n\n function ee() {\n if (!(r || G)) {\n N(K), G = !0, E.style.display = \"\", u.classList.add(\"tokui-datetimepicker--open\");\n var e = d.getBoundingClientRect();\n E.style.left = e.left + \"px\", E.style.top = e.bottom + 4 + \"px\", E.style.width = \"auto\";\n var t = E.offsetWidth,\n n = I();\n e.left + t > n - 8 && (E.style.left = Math.max(8, n - t - 8) + \"px\"), j(R, y), j(z, b), O && B && j(B, S);\n }\n }\n\n function K() {\n G && (G = !1, E.style.display = \"none\", u.classList.remove(\"tokui-datetimepicker--open\"), P(K));\n }\n\n return r || (d.addEventListener(\"click\", function (e) {\n e.stopPropagation(), G ? K() : ee();\n }), D.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n var t = e.target.closest(\".tokui-datepicker-day\");\n\n if (!(!t || t.classList.contains(\"tokui-datepicker-day--other\"))) {\n var n = parseInt(t.getAttribute(\"data-day\"));\n v = new Date(g, _, n), V(g, _);\n }\n }), U.addEventListener(\"click\", function (e) {\n e.stopPropagation(), v || (v = new Date(g, _, h.getDate())), y = A(R), b = A(z), O && B && (S = A(B)), v.setHours(y, b, S);\n var t = w(v, i);\n\n if (p.value = t, T.value = t, K(), n.clk) {\n var r = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._eventBus ? window.TokUI._eventBus.getHandler(n.clk) : null;\n r && r({\n value: t,\n date: v,\n id: n.id\n });\n }\n }), (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.addEventListener(\"click\", function (e) {\n u.contains(e.target) || K();\n })), c.appendChild(u), c._variantTarget = u, c;\n });\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerFormComponents = i, window.TokUI._internal._parseOptShorthand = n, window.TokUI._internal._expandOptChildren = r), t !== void 0 && t.exports && (t.exports = {\n registerFormComponents: i,\n _parseOptShorthand: n,\n _expandOptChildren: r\n });\n }),\n T = s(function (e, t) {\n var n = true ? u().t : undefined;\n\n function r(e) {\n var _ref8 = true ? h() : undefined,\n t = _ref8.el;\n\n var r = /^(background-color|color|border(-radius|-top|-bottom|-left|-right)?|padding(-top|-bottom|-left|-right)?|margin(-top|-bottom|-left|-right)?|text-align|max-width|min-height|box-shadow|opacity|font-size|font-weight|line-height|border-radius|overflow|cursor|gap|display|flex-wrap|align-items|justify-content|width|height|float|clear|visibility|white-space|word-break|text-overflow|text-decoration|list-style|vertical-align|transition|transform)$/;\n\n function i(e) {\n if (e) return e.split(\";\").filter(function (e) {\n var t = e.split(\":\")[0].trim().toLowerCase();\n return t && r.test(t);\n }).join(\";\") || void 0;\n }\n\n e.register(\"card\", function (e, n) {\n var r = {\n class: \"tokui-card\"\n };\n e.attrs.id && (r.id = e.attrs.id);\n var a = i(e.attrs.style);\n a && (r.style = a);\n var o = t(\"div\", r);\n\n if (e.attrs.w && (o.style.width = /^\\d+$/.test(e.attrs.w) ? e.attrs.w + \"px\" : e.attrs.w), e.attrs.tt) {\n var s = \"tokui-card-header\",\n c = e.attrs.hc || \"\";\n e.attrs.ht && (s += \" tokui-card-header--\" + e.attrs.ht), c && [\"primary\", \"danger\", \"success\", \"warning\", \"info\", \"dark\"].indexOf(c) !== -1 && e.attrs.ht && (s += \" tokui-card-header--\" + e.attrs.ht + \"--\" + c);\n var l = t(\"div\", {\n class: s,\n role: \"heading\",\n \"aria-level\": \"3\"\n }, e.attrs.tt);\n\n if (c && [\"primary\", \"danger\", \"success\", \"warning\", \"info\", \"dark\"].indexOf(c) === -1) {\n var u = e.attrs.ht || \"\";\n u === \"fill\" ? (l.style.background = c, l.style.color = \"#fff\") : u === \"accent\" ? l.style.borderLeftColor = c : u === \"underline\" ? l.style.setProperty(\"--tokui-card-header-underline-color\", c) : u === \"dot\" ? l.style.setProperty(\"--tokui-card-header-dot-color\", c) : u === \"pill\" && (l.style.background = c, l.style.color = \"#fff\");\n }\n\n o.appendChild(l);\n }\n\n var d = [],\n f = [];\n (e.children || []).forEach(function (e) {\n e.type === \"ft\" ? f.push(e) : d.push(e);\n });\n var p = t(\"div\", {\n class: \"tokui-card-body\"\n });\n return e.attrs.tx && (p.textContent = e.attrs.tx), n(d).forEach(function (e) {\n e && e.nodeType && p.appendChild(e);\n }), o.appendChild(p), n(f).forEach(function (e) {\n e && e.nodeType && o.appendChild(e);\n }), o._slot = p, o._tokuiType = \"card\", o._update = function (e) {\n if (e.tt !== void 0) {\n var t = o.querySelector(\".tokui-card-header\");\n t && (t.textContent = e.tt);\n }\n\n if (e.tx !== void 0) {\n var n = o.querySelector(\".tokui-card-body\");\n n && (n.textContent = e.tx);\n }\n }, o._streamCloseHook = function () {}, e._dsl !== void 0 && (o._dslNode = e), o;\n }), e.register(\"ft\", function (e, n) {\n var r = e.attrs.tx || e.content || \"\";\n var i = t(\"div\", {\n class: \"tokui-card-footer\"\n });\n return r && (i.textContent = r), n(e.children || []).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), e._stream !== \"open\" && !i.childNodes.length && !r ? null : (i._slot = i, i._tokuiType = \"ft\", i._streamCloseHook = function () {\n !i.childNodes.length && !r && i.parentNode && i.parentNode.removeChild(i);\n }, i);\n }), e.register(\"row\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-row\"\n });\n return n(e.children).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"row\", r;\n }), e.register(\"col\", function (e, n) {\n var r = e.attrs && (e.attrs.span || e.attrs.cols),\n i = t(\"div\", {\n class: \"tokui-col\"\n });\n\n if (r) {\n var _e57 = parseInt(r),\n _t32 = isNaN(_e57) ? 1 : Math.min(12, Math.max(1, _e57));\n\n i.classList.add(\"tokui-col--\" + _t32), i.style.gridColumn = \"span \".concat(_t32);\n }\n\n return e.content && (i.textContent = e.content), n(e.children).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), i._slot = i, i._tokuiType = \"col\", i;\n }), e.register(\"list\", function (e, n) {\n var r = t(e.attrs && e.attrs.t === \"ol\" ? \"ol\" : \"ul\", {\n class: e.attrs && e.attrs.plain ? \"tokui-list tokui-list--plain\" : \"tokui-list\"\n });\n return n(e.children).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"list\", r;\n });\n\n function a(e, n) {\n var r = e.attrs || {},\n i = parseInt(r.span) || 1,\n a = t(\"div\", {\n class: \"tokui-desc__item\",\n \"data-tokui-tag\": e.type\n });\n\n if (i > 1) {\n var o = n ? Math.min(i, n) : i;\n a.style.gridColumn = \"span \" + o;\n }\n\n var s = t(\"div\", {\n class: \"tokui-desc__label\"\n });\n s.textContent = r.l || \"\", a.appendChild(s);\n var c = t(\"div\", {\n class: \"tokui-desc__value\"\n });\n return c.textContent = r.tx || e.content || \"\", a.appendChild(c), a;\n }\n\n e.register(\"item\", function (e, n, r) {\n var i;\n if (r === \"desc\") i = a(e);else if (r === \"carousel\") i = l(e, n);else if (r === \"command-group\") {\n var o = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal && window.TokUI._internal.buildCommandItem || null;\n o && (i = o(e));\n }\n\n if (!i) {\n i = t(\"li\", {\n class: \"tokui-list-item\"\n });\n var s = e.content || e.attrs && e.attrs.tx || \"\";\n s && (i.textContent = s), n(e.children || []).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), i._slot = i;\n }\n\n return i.nodeType === 1 && (i._tokuiType = \"item\"), i;\n }), e.register(\"tabs\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-tabs\",\n role: \"tablist\"\n }),\n i = \"tokui-tab-\" + Math.random().toString(36).slice(2, 8);\n return r._tabId = i, r._tabCount = 0, (e.children || []).forEach(function (e, t) {\n e.type === \"tab\" && (o(r, e, n, i, t), r._tabCount = t + 1);\n }), r._slot = r, r._tokuiType = \"tabs\", r.addEventListener(\"keydown\", function (e) {\n if (!(e.key !== \"ArrowRight\" && e.key !== \"ArrowLeft\")) {\n var t = Array.from(r.querySelectorAll(\".tokui-tabs-label\")),\n n = t.indexOf(e.target);\n\n if (n !== -1) {\n e.preventDefault();\n var i = e.key === \"ArrowRight\" ? (n + 1) % t.length : (n - 1 + t.length) % t.length,\n a = r.querySelector(\"#\" + t[i].getAttribute(\"for\"));\n a && (a.checked = !0, t[i].focus());\n }\n }\n }), r._update = function (e) {\n if (e.v !== void 0) {\n var t = r.querySelector(\"input[data-index=\\\"\" + e.v + \"\\\"]\");\n t && (t.checked = !0);\n }\n }, r._streamCloseHook = function () {\n if (r._tokuiStreamActive) {\n var e = r.querySelector(\"input[data-index=\\\"0\\\"]\");\n e && (e.checked = !0);\n }\n }, r;\n });\n\n function o(e, n, r, i, a) {\n var o = {\n type: \"radio\",\n name: i,\n class: \"tokui-tabs-input\",\n \"data-index\": String(a)\n };\n a === 0 && (o.checked = \"checked\");\n var s = t(\"input\", o);\n s.id = i + \"-\" + a, e.appendChild(s);\n var c = t(\"label\", {\n class: \"tokui-tabs-label\",\n for: i + \"-\" + a,\n \"data-index\": String(a),\n \"data-tokui-tag\": \"tab\",\n role: \"tab\",\n tabindex: \"0\"\n }, n.attrs.tt || \"Tab \" + (a + 1));\n e.appendChild(c);\n var l = t(\"div\", {\n class: \"tokui-tabs-panel\",\n role: \"tabpanel\",\n \"data-index\": String(a)\n });\n r(n.children || []).forEach(function (e) {\n e && e.nodeType && l.appendChild(e);\n }), e.appendChild(l);\n }\n\n e.register(\"tab\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-tabs-panel\",\n role: \"tabpanel\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"tab\", r._tabTitle = e.attrs && e.attrs.tt || \"\", r._isTab = !0, r;\n }), e.register(\"accordion\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-accordion\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"accordion\", r._streamCloseHook = function () {\n if (r._tokuiStreamActive) for (var e = r.querySelectorAll(\".tokui-collapse\"), t = 0; t < e.length; t++) {\n t === 0 ? (e[t].setAttribute(\"open\", \"\"), e[t].setAttribute(\"aria-expanded\", \"true\")) : (e[t].removeAttribute(\"open\"), e[t].setAttribute(\"aria-expanded\", \"false\"));\n }\n }, r;\n }), e.register(\"collapse\", function (e, r) {\n var i = {\n class: \"tokui-collapse\",\n \"aria-expanded\": e.attrs.open === void 0 ? \"false\" : \"true\"\n };\n e.attrs.id && (i.id = e.attrs.id);\n var a = t(\"details\", i),\n o = t(\"summary\", {\n class: \"tokui-collapse-title\"\n }, e.attrs.tt || n(\"layout.collapseDefault\"));\n a.appendChild(o);\n var s = t(\"div\", {\n class: \"tokui-collapse-body\"\n });\n return r(e.children || []).forEach(function (e) {\n e && e.nodeType && s.appendChild(e);\n }), a.appendChild(s), e.attrs.open !== void 0 && a.setAttribute(\"open\", \"\"), a.addEventListener(\"toggle\", function () {\n a.setAttribute(\"aria-expanded\", String(a.hasAttribute(\"open\")));\n }), a._slot = s, a._tokuiType = \"collapse\", a._update = function (e) {\n if (e.act === \"open\" ? a.setAttribute(\"open\", \"\") : e.act === \"close\" && a.removeAttribute(\"open\"), e.tt !== void 0) {\n var t = a.querySelector(\".tokui-collapse-title\");\n t && (t.textContent = e.tt);\n }\n\n if (e.tx !== void 0) {\n var n = a.querySelector(\".tokui-collapse-body\");\n\n if (n) {\n var r = n.querySelector(\"p\");\n r ? r.textContent = e.tx : n.textContent = e.tx;\n }\n }\n }, a;\n }), e.register(\"dialog\", function (e, r) {\n var i = {\n class: \"tokui-dialog\"\n };\n e.attrs.id && (i.id = e.attrs.id);\n var a = t(\"dialog\", i);\n\n if (e.attrs.tt) {\n var o = t(\"div\", {\n class: \"tokui-dialog-header\"\n }),\n s = t(\"span\", {}, e.attrs.tt);\n o.appendChild(s);\n var c = t(\"button\", {\n class: \"tokui-dialog-close\",\n \"aria-label\": n(\"common.close\")\n }, \"\\u2715\");\n c.addEventListener(\"click\", function () {\n a.close();\n }), o.appendChild(c), a.appendChild(o);\n }\n\n var l = [],\n u = [];\n (e.children || []).forEach(function (e) {\n e.type === \"ft\" ? u.push(e) : l.push(e);\n });\n var d = t(\"div\", {\n class: \"tokui-dialog-body\"\n });\n return r(l).forEach(function (e) {\n e && e.nodeType && d.appendChild(e);\n }), a.appendChild(d), r(u).forEach(function (e) {\n e && e.nodeType && a.appendChild(e);\n }), e.attrs.clk && a.setAttribute(\"data-tokui-clk\", e.attrs.clk), a.addEventListener(\"click\", function (e) {\n e.target === a && a.close();\n }), a._slot = d, a._tokuiType = \"dialog\", a.addEventListener(\"keydown\", function (e) {\n if (e.key === \"Tab\") {\n var t = a.querySelectorAll(\"button, [tabindex], input, select, textarea\");\n\n if (t.length !== 0) {\n var n = t[0],\n r = t[t.length - 1];\n e.shiftKey && document.activeElement === n ? (e.preventDefault(), r.focus()) : !e.shiftKey && document.activeElement === r && (e.preventDefault(), n.focus());\n }\n }\n }), a._update = function (e) {\n if (e.act === \"open\" ? a.showModal() : e.act === \"close\" && a.close(), e.tt !== void 0) {\n var t = a.querySelector(\".tokui-dialog-header span\");\n t && (t.textContent = e.tt);\n }\n }, a;\n }), e.register(\"drawer\", function (e, r) {\n var i = e.attrs.pos || \"right\",\n a = t(\"div\", {\n class: \"tokui-drawer tokui-drawer--\" + i,\n role: \"dialog\",\n \"aria-modal\": \"true\"\n });\n e.attrs.id && (a.id = e.attrs.id), e.attrs.clk && a.setAttribute(\"data-tokui-clk\", e.attrs.clk);\n var o = t(\"div\", {\n class: \"tokui-drawer__overlay\"\n });\n o.addEventListener(\"click\", function () {\n a.classList.remove(\"tokui-drawer--open\");\n }), a.appendChild(o);\n var s = t(\"div\", {\n class: \"tokui-drawer__panel\"\n }),\n c = e.attrs.w || \"360px\",\n l = e.attrs.h || \"300px\";\n\n if (i === \"left\" || i === \"right\" ? (s.style.width = c, s.style.height = \"100%\") : (s.style.height = l, s.style.width = \"100%\"), e.attrs.tt) {\n var u = t(\"div\", {\n class: \"tokui-drawer__header\"\n });\n u.appendChild(t(\"span\", {}, e.attrs.tt));\n var d = t(\"button\", {\n class: \"tokui-drawer__close\",\n \"aria-label\": n(\"common.close\")\n }, \"\\u2715\");\n d.addEventListener(\"click\", function () {\n a.classList.remove(\"tokui-drawer--open\");\n }), u.appendChild(d), s.appendChild(u);\n }\n\n var f = [],\n p = [];\n (e.children || []).forEach(function (e) {\n e.type === \"ft\" ? p.push(e) : f.push(e);\n });\n var m = t(\"div\", {\n class: \"tokui-drawer__body\"\n });\n return r(f).forEach(function (e) {\n e && e.nodeType && m.appendChild(e);\n }), s.appendChild(m), r(p).forEach(function (e) {\n e && e.nodeType && s.appendChild(e);\n }), a.appendChild(s), a._slot = m, a._tokuiType = \"drawer\", a.addEventListener(\"keydown\", function (e) {\n e.key === \"Escape\" && (a.classList.remove(\"tokui-drawer--open\"), e.stopPropagation());\n }), a._update = function (e) {\n if (e.act === \"open\" ? a.classList.add(\"tokui-drawer--open\") : e.act === \"close\" && a.classList.remove(\"tokui-drawer--open\"), e.tt !== void 0) {\n var t = a.querySelector(\".tokui-drawer__header span\");\n t && (t.textContent = e.tt);\n }\n }, a;\n }), e.register(\"imgs\", function (e, r) {\n var i = t(\"div\", {\n class: \"tokui-imgs\",\n role: \"group\",\n \"aria-label\": n(\"layout.gallery\")\n }),\n a = e.children || [];\n e.attrs && e.attrs.s && (a = e.attrs.s.split(\",\").map(function (e) {\n return e.trim();\n }).filter(Boolean).map(function (e) {\n return {\n type: \"img\",\n attrs: {\n s: e\n },\n content: \"\",\n children: []\n };\n }));\n var o = r(a);\n o.forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n });\n var s = o.length;\n s >= 1 && i.classList.add(\"tokui-imgs--\" + Math.min(s, 9)), i._slot = i, i._tokuiType = \"imgs\";\n var c = a.filter(function (e) {\n return e.type === \"img\" && e.attrs && e.attrs.s;\n }).map(function (e) {\n return e.attrs.s;\n });\n i._imgSources = c;\n\n function l(e, t) {\n e.querySelectorAll(\".tokui-img\").forEach(function (e) {\n if (e._lbBound) return;\n e._lbBound = !0;\n var n = e.cloneNode(!0);\n e.parentNode.replaceChild(n, e), n.style.cursor = \"pointer\", n.addEventListener(\"click\", function () {\n var _ref9 = true ? g() : undefined,\n e = _ref9.getLightbox;\n\n e((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" ? document : void 0).open(n.getAttribute(\"src\"), t);\n });\n });\n }\n\n return l(i, c), i._streamCloseHook = function () {\n var e = i.querySelectorAll(\":scope > .tokui-img\").length;\n e >= 1 && i.classList.add(\"tokui-imgs--\" + Math.min(e, 9));\n var t = [];\n i.querySelectorAll(\":scope > .tokui-img\").forEach(function (e) {\n t.push(e.getAttribute(\"src\"));\n }), l(i, t);\n }, i;\n }), e.register(\"timeline\", function (e, n) {\n var r = e.attrs || {},\n i = [\"tokui-timeline\"],\n a = r.v || \"\",\n o = a === \"alternate\" || a === \"alt\";\n (a === \"h\" || a === \"horizontal\") && i.push(\"tokui-timeline--horizontal\"), o && i.push(\"tokui-timeline--alternate\"), a === \"card\" && i.push(\"tokui-timeline--card\");\n var s = t(\"div\", {\n class: i.join(\" \")\n });\n\n if (e.children && e.children.length > 0 && n(e.children).forEach(function (e) {\n return s.appendChild(e);\n }), o) {\n var _e58 = function _e58() {\n s.querySelectorAll(\":scope > .tokui-ti\").forEach(function (e, t) {\n e.classList.toggle(\"tokui-ti--alt-left\", t % 2 == 0), e.classList.toggle(\"tokui-ti--alt-right\", t % 2 == 1);\n });\n };\n\n _e58();\n\n var _t33 = new MutationObserver(function () {\n return _e58();\n });\n\n _t33.observe(s, {\n childList: !0\n }), s._streamCloseHook = function () {\n _e58(), _t33.disconnect();\n };\n }\n\n return s;\n }), e.register(\"ti\", function (e) {\n var n = e.attrs || {},\n r = [\"tokui-ti\"],\n i = n.t || \"\";\n i && r.push(\"tokui-ti--\" + i);\n var a = t(\"div\", {\n class: r.join(\" \")\n }),\n o = t(\"div\", {\n class: \"tokui-ti__dot\"\n });\n a.appendChild(o);\n var s = t(\"div\", {\n class: \"tokui-ti__content\"\n });\n\n if (n.tt) {\n var _e59 = t(\"div\", {\n class: \"tokui-ti__title\"\n });\n\n _e59.textContent = n.tt, s.appendChild(_e59);\n }\n\n var c = t(\"div\", {\n class: \"tokui-ti__body\"\n });\n\n if (c.textContent = e.content || \"\", s.appendChild(c), n.tm) {\n var _e60 = t(\"div\", {\n class: \"tokui-ti__time\"\n });\n\n _e60.textContent = n.tm, s.appendChild(_e60);\n }\n\n return a.appendChild(s), a;\n }), e.register(\"steps\", function (e, n) {\n var r = e.attrs || {},\n i = parseInt(r.v) || 1,\n a = r.s || \"\",\n o = r.vd || \"\",\n s = [\"tokui-steps\"];\n (a === \"sm\" || a === \"small\") && s.push(\"tokui-steps--sm\"), (o === \"vertical\" || o === \"v\") && s.push(\"tokui-steps--vertical\");\n var c = {\n class: s.join(\" \")\n };\n r.id && (c.id = r.id);\n var l = t(\"div\", c);\n (e.children || []).filter(function (e) {\n return e.type === \"step\";\n }).forEach(function (e, n) {\n var r = n + 1,\n a = e.attrs || {},\n o = [\"tokui-step\"];\n a.status === \"error\" || a.status === \"danger\" ? (o.push(\"tokui-step--error\"), r <= i && o.push(\"tokui-step--current\")) : r < i ? o.push(\"tokui-step--done\") : r === i ? o.push(\"tokui-step--active\") : o.push(\"tokui-step--pending\");\n var s = t(\"div\", {\n class: o.join(\" \"),\n \"data-tokui-tag\": \"step\"\n }),\n c = t(\"div\", {\n class: \"tokui-step__circle\"\n });\n a.status === \"error\" || a.status === \"danger\" ? c.textContent = \"\\u2715\" : r < i ? c.textContent = \"\\u2713\" : c.textContent = String(r), s.appendChild(c);\n var u = t(\"div\", {\n class: \"tokui-step__body\"\n });\n\n if (a.tt) {\n var _e61 = t(\"div\", {\n class: \"tokui-step__title\"\n });\n\n _e61.textContent = a.tt, u.appendChild(_e61);\n }\n\n if (e.content) {\n var _n29 = t(\"div\", {\n class: \"tokui-step__desc\"\n });\n\n _n29.textContent = e.content, u.appendChild(_n29);\n }\n\n s.appendChild(u), l.appendChild(s);\n }), l._slot = l, l._tokuiType = \"steps\", l._currentStep = i;\n\n function u(e) {\n var t = l.querySelectorAll(\":scope > .tokui-step\"),\n n = e >= t.length;\n n ? l.classList.add(\"tokui-steps--complete\") : l.classList.remove(\"tokui-steps--complete\"), t.forEach(function (t, r) {\n var i = r + 1,\n a = t.querySelector(\".tokui-step__circle\"),\n o = t.getAttribute(\"data-step-status\") === \"error\";\n t.className = \"tokui-step\", o ? (t.classList.add(\"tokui-step--error\"), i <= e && t.classList.add(\"tokui-step--current\"), a && (a.textContent = \"\\u2715\")) : n || i < e ? (t.classList.add(\"tokui-step--done\"), a && (a.textContent = \"\\u2713\")) : i === e ? (t.classList.add(\"tokui-step--active\"), a && (a.textContent = String(i))) : (t.classList.add(\"tokui-step--pending\"), a && (a.textContent = String(i)));\n });\n }\n\n return l._streamCloseHook = function () {\n u(l._currentStep);\n }, l._update = function (e) {\n if (e.v !== void 0) {\n var t = parseInt(e.v) || 1;\n l._currentStep = t, u(t);\n }\n }, l;\n }), e.register(\"step\", function (e) {\n var n = e.attrs || {},\n r = t(\"div\", {\n class: \"tokui-step tokui-step--pending\"\n });\n (n.status === \"error\" || n.status === \"danger\") && r.setAttribute(\"data-step-status\", \"error\");\n var i = t(\"div\", {\n class: \"tokui-step__circle\"\n });\n i.textContent = \"?\", r.appendChild(i);\n var a = t(\"div\", {\n class: \"tokui-step__body\"\n });\n\n if (n.tt) {\n var _e62 = t(\"div\", {\n class: \"tokui-step__title\"\n });\n\n _e62.textContent = n.tt, a.appendChild(_e62);\n }\n\n if (e.content) {\n var _n30 = t(\"div\", {\n class: \"tokui-step__desc\"\n });\n\n _n30.textContent = e.content, a.appendChild(_n30);\n }\n\n return r.appendChild(a), r;\n });\n\n function s(e) {\n for (var t = e.querySelectorAll(\".tokui-desc__item--last-row\"), n = 0; n < t.length; n++) {\n t[n].classList.remove(\"tokui-desc__item--last-row\");\n }\n\n var r = e.querySelectorAll(\".tokui-desc__item\");\n\n if (r.length) {\n var i = \"\";\n\n try {\n i = (e.style.getPropertyValue(\"--tokui-desc-cols\") || \"\").trim();\n } catch (_unused28) {}\n\n var a = parseInt(i, 10) || 3,\n o = !1,\n s = r[r.length - 1];\n\n if (s.getBoundingClientRect) {\n var c = s.getBoundingClientRect().top;\n\n if (c !== 0) {\n for (var l = r.length - 1; l >= 0 && Math.abs(r[l].getBoundingClientRect().top - c) < 1; l--) {\n r[l].classList.add(\"tokui-desc__item--last-row\");\n }\n\n o = !0;\n }\n }\n\n if (!o) for (var u = (Math.ceil(r.length / a) - 1) * a; u < r.length; u++) {\n r[u].classList.add(\"tokui-desc__item--last-row\");\n }\n }\n }\n\n function c(e) {\n if (s(e), !((typeof MutationObserver === \"undefined\" ? \"undefined\" : _typeof(MutationObserver)) > \"u\")) {\n var t = new MutationObserver(function () {\n if (!e.isConnected) {\n t.disconnect();\n return;\n }\n\n s(e);\n });\n t.observe(e, {\n childList: !0\n }), typeof requestAnimationFrame == \"function\" && requestAnimationFrame(function () {\n e.isConnected && s(e);\n });\n }\n }\n\n e.register(\"desc\", function (e, n) {\n var r = e.attrs || {},\n i = parseInt(r.cols) || 3,\n o = [\"tokui-desc\"];\n r.stripe !== void 0 && o.push(\"tokui-desc--stripe\"), r.bordered !== void 0 && o.push(\"tokui-desc--bordered\"), (r.v === \"horizontal\" || r.v === \"h\") && o.push(\"tokui-desc--horizontal\");\n var s = t(\"div\", {\n class: o.join(\" \")\n });\n s.style.setProperty(\"--tokui-desc-cols\", String(i)), r.lw && s.style.setProperty(\"--tokui-desc-label-w\", r.lw);\n var l = (e.children || []).filter(function (e) {\n return e.type === \"desc-item\" || e.type === \"item\";\n });\n return l.length > 0 && l.forEach(function (e) {\n s.appendChild(a(e, i));\n }), c(s), s._slot = s, s._tokuiType = \"desc\", s;\n }), e.register(\"desc-item\", function (e) {\n return a(e);\n });\n\n function l(e, n) {\n var r = e.attrs || {},\n i = t(\"div\", {\n class: \"tokui-carousel__slide\",\n \"data-tokui-tag\": e.type\n });\n\n if (r.s) {\n var a = t(\"img\", {\n src: r.s,\n alt: r.tt || \"\"\n });\n a.style.width = \"100%\", a.style.display = \"block\", i.appendChild(a);\n }\n\n if (n(e.children || []).forEach(function (e) {\n e && e.nodeType && i.appendChild(e);\n }), r.tt || r.tx) {\n var o = t(\"div\", {\n class: \"tokui-carousel__slide-body\"\n });\n r.tt && o.appendChild(t(\"div\", {\n class: \"tokui-carousel__slide-title\"\n }, r.tt)), r.tx && o.appendChild(t(\"div\", {\n class: \"tokui-carousel__slide-desc\"\n }, r.tx)), i.appendChild(o);\n }\n\n return i;\n }\n\n e.register(\"carousel\", function (e, r) {\n var i = e.attrs || {},\n a = i.thumb !== void 0,\n o = {\n class: \"tokui-carousel\" + (a ? \" tokui-carousel--thumb\" : \"\")\n };\n i.id && (o.id = i.id), o[\"data-carousel\"] = i.id || \"carousel-\" + Math.random().toString(36).slice(2, 8);\n var s = t(\"div\", o),\n c = t(\"div\", {\n class: \"tokui-carousel__viewport\"\n }),\n u = t(\"div\", {\n class: \"tokui-carousel__track\"\n });\n\n function d(e) {\n return e = String(e).trim(), /^\\d+(\\.\\d+)?$/.test(e) ? e + \"px\" : e;\n }\n\n function f(e) {\n var t = String(e).split(\":\");\n\n if (t.length === 2) {\n var n = parseFloat(t[0]),\n r = parseFloat(t[1]);\n return n && r ? n / r : 0;\n }\n\n var i = parseFloat(e);\n return i > 0 ? i : 0;\n }\n\n if (i.w && (s.style.width = d(i.w)), i.h) c.style.height = d(i.h), s.classList.add(\"tokui-carousel--sized\");else if (i.ratio) {\n var p = f(i.ratio);\n p && (c.style.aspectRatio = String(p), s.classList.add(\"tokui-carousel--sized\"));\n }\n var m = (e.children || []).filter(function (e) {\n return e.type === \"carousel-item\" || e.type === \"item\" || e.type === \"img\";\n });\n m.forEach(function (e) {\n if (e.type === \"carousel-item\" || e.type === \"item\") u.appendChild(l(e, r));else if (e.type === \"img\") {\n var n = t(\"div\", {\n class: \"tokui-carousel__slide\"\n });\n r([e]).forEach(function (e) {\n e && e.nodeType && n.appendChild(e);\n }), u.appendChild(n);\n }\n }), c.appendChild(u);\n var h = t(\"button\", {\n class: \"tokui-carousel__arrow tokui-carousel__arrow--prev\",\n \"aria-label\": n(\"layout.carouselPrev\"),\n \"data-dir\": \"prev\"\n });\n h.innerHTML = \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\"><polyline points=\\\"15 18 9 12 15 6\\\"/></svg>\", c.appendChild(h);\n var g = t(\"button\", {\n class: \"tokui-carousel__arrow tokui-carousel__arrow--next\",\n \"aria-label\": n(\"layout.carouselNext\"),\n \"data-dir\": \"next\"\n });\n g.innerHTML = \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\"><polyline points=\\\"9 6 15 12 9 18\\\"/></svg>\", c.appendChild(g), s.appendChild(c);\n var _ = null,\n v = null,\n y = !1;\n\n function b() {\n return Array.prototype.filter.call(u.children, function (e) {\n return e && e.nodeType === 1 && /\\btokui-carousel__slide\\b/.test(e.className || \"\");\n });\n }\n\n function x() {\n if (!y) {\n var e = b();\n e.length && (y = !0, a ? (v = t(\"div\", {\n class: \"tokui-carousel__thumbs\"\n }), e.forEach(function (e, r) {\n var i = e.querySelector(\"img\"),\n a = i ? i.getAttribute(\"src\") : \"\",\n o = e.querySelector(\".tokui-carousel__slide-title\"),\n s = o ? (o.textContent || \"\").trim() : \"\",\n c = t(\"button\", {\n class: \"tokui-carousel__thumb\" + (r === 0 ? \" tokui-carousel__thumb--active\" : \"\"),\n \"aria-label\": n(\"layout.carouselIndex\", {\n n: r + 1\n }),\n \"data-index\": String(r)\n });\n\n if (a) {\n var l = t(\"img\", {\n src: a,\n alt: s\n });\n l.style.width = \"100%\", l.style.height = \"100%\", l.style.objectFit = \"cover\", c.appendChild(l);\n } else c.textContent = String(r + 1);\n\n v.appendChild(c);\n }), s.appendChild(v)) : (_ = t(\"div\", {\n class: \"tokui-carousel__dots\"\n }), e.forEach(function (e, r) {\n var i = t(\"button\", {\n class: \"tokui-carousel__dot\" + (r === 0 ? \" tokui-carousel__dot--active\" : \"\"),\n \"aria-label\": n(\"layout.carouselIndex\", {\n n: r + 1\n }),\n \"data-index\": String(r)\n });\n\n _.appendChild(i);\n }), c.appendChild(_)));\n }\n }\n\n s._slot = u, s._tokuiType = \"carousel\";\n\n function S() {\n x();\n var e = 0,\n t = b(),\n n = _ ? _.querySelectorAll(\".tokui-carousel__dot\") : [],\n r = v ? v.querySelectorAll(\".tokui-carousel__thumb\") : [],\n a = null;\n\n function o() {\n n.forEach && n.forEach(function (t, n) {\n n === e ? t.classList.add(\"tokui-carousel__dot--active\") : t.classList.remove(\"tokui-carousel__dot--active\");\n }), r.forEach && r.forEach(function (t, n) {\n n === e ? (t.classList.add(\"tokui-carousel__thumb--active\"), t.scrollIntoView && t.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\"\n })) : t.classList.remove(\"tokui-carousel__thumb--active\");\n });\n }\n\n function c(n) {\n n < 0 && (n = t.length - 1), n >= t.length && (n = 0), e = n, u.style.transform = \"translateX(-\" + e * 100 + \"%)\", o();\n }\n\n h.addEventListener(\"click\", function () {\n c(e - 1), d();\n }), g.addEventListener(\"click\", function () {\n c(e + 1), d();\n }), _ && _.addEventListener(\"click\", function (e) {\n var t = e.target.closest(\".tokui-carousel__dot\");\n t && (c(parseInt(t.getAttribute(\"data-index\"))), d());\n }), v && v.addEventListener(\"click\", function (e) {\n var t = e.target.closest(\".tokui-carousel__thumb\");\n t && (c(parseInt(t.getAttribute(\"data-index\"))), d());\n });\n\n function l() {\n var t = parseInt(i.auto);\n t && t > 0 && (a = setInterval(function () {\n c(e + 1);\n }, t));\n }\n\n function d() {\n a && clearInterval(a), l();\n }\n\n l(), s.setAttribute(\"tabindex\", \"0\"), s.addEventListener(\"keydown\", function (t) {\n t.key === \"ArrowLeft\" ? (c(e - 1), d()) : t.key === \"ArrowRight\" && (c(e + 1), d());\n });\n var f = 0,\n p = 0,\n m = !1;\n u.addEventListener(\"mousedown\", function (e) {\n m = !0, f = e.clientX, p = 0, u.style.transition = \"none\", d();\n }), u.addEventListener(\"touchstart\", function (e) {\n m = !0, f = e.touches[0].clientX, p = 0, u.style.transition = \"none\", d();\n }, {\n passive: !0\n });\n\n function y(t) {\n if (m) {\n p = t - f;\n var n = -(e * s.offsetWidth) + p;\n u.style.transform = \"translateX(\" + n + \"px)\";\n }\n }\n\n (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.addEventListener && (document.addEventListener(\"mousemove\", function (e) {\n y(e.clientX);\n }), document.addEventListener(\"touchmove\", function (e) {\n y(e.touches[0].clientX);\n }, {\n passive: !0\n }));\n\n function S() {\n if (m) {\n m = !1, u.style.transition = \"\";\n var t = s.offsetWidth * .2;\n p < -t ? c(e + 1) : c(p > t ? e - 1 : e);\n }\n }\n\n (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && document.addEventListener && (document.addEventListener(\"mouseup\", S), document.addEventListener(\"touchend\", S));\n }\n\n return m.length > 0 && S(), s._streamCloseHook = function () {\n S();\n }, s;\n }), e.register(\"carousel-item\", function (e, t) {\n return l(e, t);\n }), e.register(\"tn\", function (e, n) {\n var r = e.attrs.leaf !== void 0,\n i = e.attrs.open !== void 0,\n a = e.attrs.dis !== void 0,\n o = t(\"div\", {\n class: \"tokui-tree-node\" + (r ? \" tokui-tree-node--leaf\" : \"\") + (i ? \" tokui-tree-node--open\" : \"\") + (a ? \" tokui-tree-node--disabled\" : \"\"),\n role: \"treeitem\",\n \"aria-expanded\": r ? void 0 : String(i)\n });\n o.setAttribute(\"data-value\", e.attrs.v || \"\"), o.setAttribute(\"data-text\", e.attrs.tx || e.attrs.v || \"\");\n var s = t(\"div\", {\n class: \"tokui-tree-node-header\",\n tabindex: \"0\"\n }),\n c = t(\"span\", {\n class: \"tokui-tree-arrow\"\n });\n c.textContent = \"\\u25B6\", s.appendChild(c);\n var l = t(\"span\", {\n class: \"tokui-tree-icon\"\n });\n l.textContent = r ? \"\\uD83D\\uDCC4\" : \"\\uD83D\\uDCC1\", s.appendChild(l);\n var u = t(\"span\", {\n class: \"tokui-tree-text\"\n }, e.attrs.tx || e.attrs.v || \"\");\n s.appendChild(u), o.appendChild(s);\n var d = null;\n return r || (d = t(\"div\", {\n class: \"tokui-tree-node-children\"\n }), i || (d.style.display = \"none\"), e.children && e.children.length && n(e.children).forEach(function (e) {\n e && e.nodeType && d.appendChild(e);\n }), o.appendChild(d), o._slot = d), o._tokuiType = \"tn\", o;\n }), e.register(\"tree\", function (e, n) {\n var r = e.attrs.chk !== void 0,\n i = e.attrs.dis !== void 0,\n a = t(\"div\", {\n class: \"tokui-field\"\n });\n e.attrs.l && a.appendChild(t(\"label\", {\n class: \"tokui-label\"\n }, e.attrs.l)), e.attrs.id && (a.id = e.attrs.id);\n var o = t(\"div\", {\n class: \"tokui-tree\" + (r ? \" tokui-tree--checkable\" : \"\") + (i ? \" tokui-tree--disabled\" : \"\"),\n role: \"tree\"\n });\n e.children && e.children.length && n(e.children).forEach(function (e) {\n e && e.nodeType && o.appendChild(e);\n }), a.appendChild(o);\n var s = !1;\n\n function c() {\n i || s || (s = !0, o.addEventListener(\"click\", function (e) {\n var t = e.target.closest(\".tokui-tree-arrow\");\n\n if (t) {\n e.stopPropagation();\n var n = t.closest(\".tokui-tree-node\");\n\n if (!(!n || n.classList.contains(\"tokui-tree-node--leaf\"))) {\n var r = n.querySelector(\":scope > .tokui-tree-node-children\");\n 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 = \"\"));\n }\n }\n }), o.addEventListener(\"click\", function (t) {\n var n = t.target.closest(\".tokui-tree-text\");\n\n if (n) {\n t.stopPropagation();\n var r = n.closest(\".tokui-tree-node\");\n\n if (r && (o.querySelectorAll(\".tokui-tree-node--selected\").forEach(function (e) {\n e.classList.remove(\"tokui-tree-node--selected\");\n }), r.classList.add(\"tokui-tree-node--selected\"), e.attrs.clk)) {\n var i = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal && window.TokUI._internal.TokUIEventBus ? window.TokUI._internal.TokUIEventBus.getHandler(e.attrs.clk) : null;\n i && i({\n id: e.attrs.id,\n value: r.getAttribute(\"data-value\"),\n text: r.getAttribute(\"data-text\")\n });\n }\n }\n }), r && (o.querySelectorAll(\".tokui-tree-node-header\").forEach(function (e) {\n var n = t(\"input\", {\n type: \"checkbox\",\n class: \"tokui-tree-checkbox\"\n }),\n r = e.closest(\".tokui-tree-node\");\n r && r.classList.contains(\"tokui-tree-node--disabled\") && (n.disabled = !0), e.insertBefore(n, e.firstChild);\n }), o.addEventListener(\"change\", function (e) {\n if (e.target.classList.contains(\"tokui-tree-checkbox\")) {\n var t = e.target.closest(\".tokui-tree-node\");\n\n if (t) {\n var n = e.target.checked;\n t.querySelectorAll(\".tokui-tree-checkbox\").forEach(function (t) {\n t !== e.target && (t.checked = n, t.indeterminate = !1);\n }), l(o);\n }\n }\n })), o.addEventListener(\"keydown\", function (e) {\n var t = e.target.closest(\".tokui-tree-node-header\");\n\n if (t) {\n var n = t.closest(\".tokui-tree-node\");\n\n if (n) {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n var r = t.querySelector(\".tokui-tree-arrow\");\n r && !n.classList.contains(\"tokui-tree-node--leaf\") && r.click();\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n var i = Array.from(o.querySelectorAll(\":scope .tokui-tree-node-header\")),\n a = i.indexOf(t);\n e.key === \"ArrowDown\" && a < i.length - 1 ? i[a + 1].focus() : e.key === \"ArrowUp\" && a > 0 && i[a - 1].focus();\n }\n }\n }\n }));\n }\n\n function l(e) {\n e.querySelectorAll(\".tokui-tree-node\").forEach(function (e) {\n var t = e.querySelector(\":scope > .tokui-tree-node-children\");\n\n if (t) {\n var n = t.querySelectorAll(\":scope > .tokui-tree-node > .tokui-tree-node-header > .tokui-tree-checkbox\");\n\n if (n.length !== 0) {\n var r = e.querySelector(\":scope > .tokui-tree-node-header > .tokui-tree-checkbox\");\n\n if (r) {\n var i = n.length,\n a = 0;\n n.forEach(function (e) {\n e.checked && a++;\n }), a === 0 ? (r.checked = !1, r.indeterminate = !1) : a === i ? (r.checked = !0, r.indeterminate = !1) : (r.checked = !1, r.indeterminate = !0);\n }\n }\n }\n });\n }\n\n return e.children && e.children.length && c(), a._streamCloseHook = function () {\n c();\n }, a._slot = o, a._tokuiType = \"tree\", a._variantTarget = o, a;\n }), e.register(\"menu\", function (e, n) {\n var r = e.attrs || {},\n i = r.v || \"vertical\",\n a = [\"tokui-menu\"];\n i === \"horizontal\" || i === \"h\" ? a.push(\"tokui-menu--horizontal\") : i === \"inline\" && a.push(\"tokui-menu--inline\");\n var o = {\n class: a.join(\" \"),\n role: \"menu\"\n };\n r.id && (o.id = r.id);\n var s = t(\"div\", o);\n r.bg && s.style.setProperty(\"--tokui-menu-bg\", r.bg), r.fc && s.style.setProperty(\"--tokui-menu-fc\", r.fc);\n var c = r.act || \"\";\n return (e.children || []).filter(function (e) {\n return e.type === \"menu-item\";\n }).forEach(function (e) {\n var t = u(e, c);\n s.appendChild(t);\n }), s._slot = s, s._tokuiType = \"menu\", s._activeClk = c, s.addEventListener(\"keydown\", function (e) {\n var t = e.target.closest(\".tokui-menu__item\");\n\n if (t) {\n var n = Array.from(s.querySelectorAll(\".tokui-menu__item:not(.tokui-menu__item--disabled)\")),\n r = n.indexOf(t);\n e.key === \"ArrowDown\" && r < n.length - 1 ? (e.preventDefault(), n[r + 1].focus()) : e.key === \"ArrowUp\" && r > 0 ? (e.preventDefault(), n[r - 1].focus()) : (e.key === \"Enter\" || e.key === \" \") && (e.preventDefault(), t.click());\n }\n }), s;\n });\n\n function u(e, n) {\n var r = e.attrs || {},\n i = [\"tokui-menu__item\"];\n r.dis !== void 0 && i.push(\"tokui-menu__item--disabled\"), n && r.clk === n && i.push(\"tokui-menu__item--active\");\n var a = t(\"div\", {\n class: i.join(\" \"),\n role: \"menuitem\",\n tabindex: \"0\"\n });\n\n if (r.i) {\n var o = t(\"span\", {\n class: \"tokui-menu__icon\"\n }, r.i);\n a.appendChild(o);\n }\n\n var s = t(\"span\", {\n class: \"tokui-menu__text\"\n }, r.tx || e.content || \"\");\n return a.appendChild(s), r.clk && r.dis === void 0 && (a.setAttribute(\"data-tokui-clk\", r.clk), a.addEventListener(\"click\", function () {\n var e = a.closest(\".tokui-menu\");\n e && e.querySelectorAll(\".tokui-menu__item--active\").forEach(function (e) {\n e.classList.remove(\"tokui-menu__item--active\");\n }), a.classList.add(\"tokui-menu__item--active\");\n })), a;\n }\n\n e.register(\"menu-item\", function (e) {\n var n = e.attrs || {},\n r = [\"tokui-menu__item\"];\n n.dis !== void 0 && r.push(\"tokui-menu__item--disabled\"), n.act !== void 0 && r.push(\"tokui-menu__item--active\");\n var i = t(\"div\", {\n class: r.join(\" \"),\n role: \"menuitem\",\n tabindex: \"0\"\n });\n return n.i && i.appendChild(t(\"span\", {\n class: \"tokui-menu__icon\"\n }, n.i)), i.appendChild(t(\"span\", {\n class: \"tokui-menu__text\"\n }, n.tx || e.content || \"\")), n.clk && n.dis === void 0 && (i.setAttribute(\"data-tokui-clk\", n.clk), i.addEventListener(\"click\", function () {\n var e = i.closest(\".tokui-menu\");\n e && e.querySelectorAll(\".tokui-menu__item--active\").forEach(function (e) {\n e.classList.remove(\"tokui-menu__item--active\");\n }), i.classList.add(\"tokui-menu__item--active\");\n })), i;\n }), e.register(\"resizable\", function (e, n) {\n var r = e.attrs || {},\n i = r.dir || \"h\",\n a = parseInt(r.min) || 100,\n o = parseInt(r.max) || 800,\n s = parseInt(r.default) || 300,\n c = i !== \"v\",\n l = [\"tokui-resizable\"];\n l.push(c ? \"tokui-resizable--h\" : \"tokui-resizable--v\");\n var u = {\n class: l.join(\" \")\n };\n r.w && (u.style = \"width:\" + r.w);\n var d = t(\"div\", u),\n f = t(\"div\", {\n class: \"tokui-resizable__panel\"\n });\n f.style.flex = \"none\", c ? (f.style.width = s + \"px\", f.style.minWidth = a + \"px\", f.style.maxWidth = o + \"px\") : (f.style.height = s + \"px\", f.style.minHeight = a + \"px\", f.style.maxHeight = o + \"px\", f.style.overflow = \"auto\");\n var p = t(\"div\", {\n class: \"tokui-resizable__handle\",\n role: \"separator\",\n \"aria-orientation\": c ? \"vertical\" : \"horizontal\",\n tabindex: \"0\"\n }),\n m = t(\"div\", {\n class: \"tokui-resizable__panel\"\n });\n c || (m.style.overflow = \"auto\"), d.appendChild(f), d.appendChild(p), d.appendChild(m);\n\n function h(e) {\n e.preventDefault(), g = c ? e.touches ? e.touches[0].clientX : e.clientX : e.touches ? e.touches[0].clientY : e.clientY, _ = c ? f.offsetWidth : f.offsetHeight, document.addEventListener(\"mousemove\", v), document.addEventListener(\"mouseup\", y), document.addEventListener(\"touchmove\", v, {\n passive: !1\n }), document.addEventListener(\"touchend\", y), p.classList.add(\"tokui-resizable__handle--active\");\n }\n\n var g = 0,\n _ = 0;\n\n function v(e) {\n e.preventDefault();\n var t = (c ? e.touches ? e.touches[0].clientX : e.clientX : e.touches ? e.touches[0].clientY : e.clientY) - g,\n n = _ + t;\n n = Math.max(a, Math.min(o, n)), c ? f.style.width = n + \"px\" : f.style.height = n + \"px\";\n }\n\n function y() {\n document.removeEventListener(\"mousemove\", v), document.removeEventListener(\"mouseup\", y), document.removeEventListener(\"touchmove\", v), document.removeEventListener(\"touchend\", y), p.classList.remove(\"tokui-resizable__handle--active\");\n }\n\n p.addEventListener(\"mousedown\", h), p.addEventListener(\"touchstart\", h, {\n passive: !1\n }), p.addEventListener(\"keydown\", function (e) {\n var t = 10,\n n = c ? f.offsetWidth : f.offsetHeight;\n c && e.key === \"ArrowLeft\" ? (e.preventDefault(), f.style.width = Math.max(a, n - t) + \"px\") : c && e.key === \"ArrowRight\" ? (e.preventDefault(), f.style.width = Math.min(o, n + t) + \"px\") : !c && e.key === \"ArrowUp\" ? (e.preventDefault(), f.style.height = Math.max(a, n - t) + \"px\") : !c && e.key === \"ArrowDown\" && (e.preventDefault(), f.style.height = Math.min(o, n + t) + \"px\");\n });\n var b = n(e.children || []),\n x = [];\n b.forEach(function (e) {\n e && e.nodeType && x.push(e);\n }), x[0] && f.appendChild(x[0]);\n\n for (var S = 1; S < x.length; S++) {\n m.appendChild(x[S]);\n }\n\n return d._streamCloseHook = function () {\n for (var e = [], t = 0; t < d.children.length; t++) {\n var n = d.children[t];\n n !== f && n !== p && n !== m && e.push(n);\n }\n\n if (e.length > 0) {\n f.appendChild(e[0]);\n\n for (var r = 1; r < e.length; r++) {\n m.appendChild(e[r]);\n }\n }\n }, d._tokuiType = \"resizable\", d;\n }), e.register(\"scroll-area\", function (e, n) {\n var r = e.attrs || {},\n i = {\n class: \"tokui-scroll-area\"\n };\n r.id && (i.id = r.id);\n var a = t(\"div\", i);\n r.h && (a.style.height = String(r.h).match(/^\\d+$/) ? r.h + \"px\" : r.h), r.w && (a.style.width = r.w);\n var o = t(\"div\", {\n class: \"tokui-scroll-area__viewport\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && o.appendChild(e);\n }), a.appendChild(o), a._slot = o, a._tokuiType = \"scroll-area\", a;\n }), e.register(\"sidebar\", function (e, n) {\n var r = e.attrs || {},\n i = r.w || \"260\",\n a = r.pos || \"left\",\n o = r.collapsible !== void 0,\n s = r.bg || \"\",\n c = r.fc || \"\",\n l = [\"tokui-sidebar\", \"tokui-sidebar--\" + a];\n o && l.push(\"tokui-sidebar--collapsible\");\n var u = {\n class: l.join(\" \")\n };\n r.id && (u.id = r.id);\n var d = t(\"div\", u);\n d.style.setProperty(\"--tokui-sidebar-w\", i + \"px\"), s && d.style.setProperty(\"--tokui-sidebar-bg\", s), c && d.style.setProperty(\"--tokui-sidebar-fc\", c), s && d.style.setProperty(\"--tokui-sidebar-footer-bg\", \"rgba(0,0,0,0.15)\"), s && d.style.setProperty(\"--tokui-sidebar-header-bg\", \"rgba(0,0,0,0.15)\"), s && d.style.setProperty(\"--tokui-sidebar-border\", \"rgba(255,255,255,0.1)\");\n var f = [],\n p = [],\n m = [];\n\n if ((e.children || []).forEach(function (e) {\n e.type === \"sidebar-content\" ? f.push(e) : e.type === \"sidebar-footer\" ? p.push(e) : m.push(e);\n }), r.tt || o) {\n var h = t(\"div\", {\n class: \"tokui-sidebar__header\"\n });\n\n if (r.tt) {\n var g = t(\"div\", {\n class: \"tokui-sidebar__title\"\n }, r.tt);\n h.appendChild(g);\n }\n\n if (o) {\n var _ = t(\"button\", {\n class: \"tokui-sidebar__toggle\",\n \"aria-label\": \"Toggle sidebar\",\n type: \"button\"\n });\n\n _.textContent = \"\\u2630\", _.addEventListener(\"click\", function () {\n d.classList.toggle(\"tokui-sidebar--collapsed\");\n var e = d.classList.contains(\"tokui-sidebar--collapsed\");\n d.setAttribute(\"aria-expanded\", String(!e));\n }), h.appendChild(_);\n }\n\n d.appendChild(h);\n }\n\n d.setAttribute(\"aria-expanded\", \"true\");\n var v = t(\"div\", {\n class: \"tokui-sidebar__content\"\n });\n\n if (f.forEach(function (e) {\n n(e.children || []).forEach(function (e) {\n e && e.nodeType && v.appendChild(e);\n });\n }), n(m).forEach(function (e) {\n e && e.nodeType && v.appendChild(e);\n }), d.appendChild(v), p.length > 0) {\n var y = t(\"div\", {\n class: \"tokui-sidebar__footer\"\n });\n p.forEach(function (e) {\n n(e.children || []).forEach(function (e) {\n e && e.nodeType && y.appendChild(e);\n });\n }), d.appendChild(y);\n }\n\n return d._slot = v, d._tokuiType = \"sidebar\", d._update = function (e) {\n if (e.tt !== void 0) {\n var t = d.querySelector(\".tokui-sidebar__title\");\n t && (t.textContent = e.tt);\n }\n\n e.act === \"collapse\" ? d.classList.add(\"tokui-sidebar--collapsed\") : e.act === \"expand\" ? d.classList.remove(\"tokui-sidebar--collapsed\") : e.act === \"toggle\" && d.classList.toggle(\"tokui-sidebar--collapsed\");\n }, e._dsl !== void 0 && (d._dslNode = e), d;\n }), e.register(\"sidebar-content\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-sidebar__content\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"sidebar-content\", r;\n }), e.register(\"sidebar-footer\", function (e, n) {\n var r = t(\"div\", {\n class: \"tokui-sidebar__footer\"\n });\n return n(e.children || []).forEach(function (e) {\n e && e.nodeType && r.appendChild(e);\n }), r._slot = r, r._tokuiType = \"sidebar-footer\", r;\n });\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerLayoutComponents = r), t !== void 0 && t.exports && (t.exports = {\n registerLayoutComponents: r\n });\n }),\n E = s(function (e, t) {\n var n = !1,\n r,\n i,\n a,\n o,\n s,\n c,\n l;\n\n function u() {\n n || (n = !0, true ? (r = S().registerBasicComponents, i = C().registerTableComponents, a = w().registerFormComponents, o = T().registerLayoutComponents, s = _().registerChartComponents, c = y().registerBarcode, l = x().registerQrcode) : undefined);\n }\n\n function d(e) {\n u(), r && (r(e), i(e), a(e), o(e), s(e), c && c(e), l && l(e));\n }\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerAllComponents = d), t !== void 0 && t.exports && (t.exports = {\n registerAllComponents: d\n });\n }),\n D = s(function (e, t) {\n (function () {\n var e,\n n,\n r,\n i,\n a,\n o,\n s,\n c = !1;\n\n function l() {\n if (!c) if (c = !0, \"function\" == \"function\") {\n e = m().TokUIParser;\n var t = h();\n n = t.TokUIRenderer, r = t.el, i = d(), a = p(), o = u(), s = E().registerAllComponents;\n } else (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && window.TokUI && window.TokUI._internal && (e = window.TokUI._internal.TokUIParser, n = window.TokUI._internal.TokUIRenderer, r = window.TokUI._internal.el, i = window.TokUI._internal.TokUIEventBus, a = window.TokUI._internal.TokUITheme, o = window.TokUI._internal.TokUII18n, s = window.TokUI._internal.registerAllComponents);\n }\n\n var f = /*#__PURE__*/function () {\n function f(e) {\n _classCallCheck(this, f);\n\n l(), this.options = Object.assign({\n container: null,\n theme: \"default\",\n locale: null,\n streaming: !0,\n onEvent: null\n }, e), this.renderer = new n(i), s(this.renderer), this.parser = null, this.container = null, this.streamingContainer = null, this._lastDsl = null, this._lastTarget = null, this.options.locale && o && o.setLocale(this.options.locale), this.options.container && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) < \"u\" && (this.container = typeof this.options.container == \"string\" ? document.querySelector(this.options.container) : this.options.container, a.init(this.container), this.options.theme && a.setTheme(this.options.theme)), (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI._instance = this, window.TokUI._internal.el = r, window.TokUI.registerHandler = i.registerHandler.bind(i), window.TokUI.setTheme = a.setTheme.bind(a), o && (window.TokUI.setLocale = o.setLocale.bind(o), window.TokUI.getLocale = o.getLocale.bind(o), window.TokUI.registerLocale = o.registerLocale.bind(o)), window.TokUI.showNotification || (window.TokUI.showNotification = function () {}));\n }\n\n _createClass(f, [{\n key: \"render\",\n value: function render(t, n) {\n var _this = this;\n\n var r = n || this.container;\n if (!r) throw Error(\"TokUI: no container specified\");\n this._lastDsl = t, this._lastTarget = r, new e(function (e) {\n _this.renderer.mount(e, r);\n }).parse(t);\n }\n }, {\n key: \"rerender\",\n value: function rerender(e) {\n var t = this._lastDsl;\n if (!t) return !1;\n var n = e || this._lastTarget || this.container;\n return n ? (n.innerHTML !== void 0 && (n.innerHTML = \"\"), this.render(t, n), !0) : !1;\n }\n }, {\n key: \"startStream\",\n value: function startStream(t) {\n if (this.streamingContainer = t || this.container, !this.streamingContainer) throw Error(\"TokUI: no container specified\");\n this._lastDsl = \"\", this._lastTarget = this.streamingContainer;\n var n = this,\n r = this.options.streaming !== !1;\n this.parser = new e(function (e) {\n r ? n.renderer.mountStreaming(e, n.streamingContainer) : n.renderer.mount(e, n.streamingContainer);\n }, {\n streaming: r\n }), this.parser.startStream();\n }\n }, {\n key: \"feed\",\n value: function feed(e) {\n this.parser ? (this._lastDsl = (this._lastDsl || \"\") + e, this.parser.feed(e)) : console.warn(\"TokUI: feed() called before startStream()\");\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this._abortController && (this._abortController = (this._abortController.abort(), null)), this.endStream(), this._streamTarget && this._streamTarget.parentNode && this._streamTarget.parentNode.removeChild(this._streamTarget), this._streamTarget = null;\n }\n }, {\n key: \"endStream\",\n value: function endStream() {\n this.parser && (this.parser = (this.parser.endStream(), null)), this.renderer.slotStack.length && this.renderer.resetSlotStack();\n }\n }, {\n key: \"connect\",\n value: function connect(e, t) {\n var _this2 = this;\n\n return this._abortController = new AbortController(), fetch(e, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(t || {}),\n signal: this._abortController.signal\n }).then(function (e) {\n if (!e.ok) throw Error(\"TokUI connect: HTTP \" + e.status);\n if (!e.body) throw Error(\"TokUI connect: response body is null\");\n var t = e.body.getReader(),\n n = new TextDecoder(),\n r = \"\";\n _this2._streamTarget && _this2._streamTarget.parentNode && _this2._streamTarget.parentNode.removeChild(_this2._streamTarget);\n var i = document.createElement(\"div\");\n i.className = \"tokui-stream-target\", _this2._streamTarget = i, _this2.container && _this2.container.appendChild(i), _this2.startStream(i);\n var a = _this2;\n\n var o = function o() {\n t.read().then(function (_ref10) {\n var e = _ref10.done,\n t = _ref10.value;\n\n if (e) {\n a.endStream(), a.options.onEvent && a.options.onEvent(\"streamEnd\", {});\n return;\n }\n\n r += n.decode(t, {\n stream: !0\n });\n var i = r.split(\"\\n\");\n r = i.pop();\n\n var _iterator2 = _createForOfIteratorHelper(i),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _e63 = _step2.value;\n\n if (_e63.startsWith(\"data: \")) {\n var _t34 = _e63.slice(6);\n\n if (_t34 === \"[DONE]\") {\n a.endStream(), a.options.onEvent && a.options.onEvent(\"streamEnd\", {});\n return;\n }\n\n try {\n var _e64 = JSON.parse(_t34);\n\n _e64.tokui && a.feed(_e64.tokui);\n } catch (e) {\n console.warn(\"TokUI: malformed JSON in SSE data\", e.message);\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n o();\n });\n };\n\n o();\n });\n }\n }]);\n\n return f;\n }();\n\n (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && (window.TokUI = window.TokUI || {}, window.TokUI.TokUI = f), t !== void 0 && t.exports && (t.exports = f);\n })();\n }),\n O = l(u()),\n k = l(d()),\n A = l(p());\n\n f(), m();\n var j = h();\n g(), _(), v(), y(), b(), x(), S(), C(), w(), T(), E();\n var M = l(D()),\n N = k.default.registerHandler.bind(k.default),\n P = k.default.removeHandler.bind(k.default),\n F = A.default.setTheme.bind(A.default),\n I = A.default.getTheme.bind(A.default),\n L = O.default.setLocale.bind(O.default),\n R = O.default.getLocale.bind(O.default),\n z = O.default.registerLocale.bind(O.default),\n B = {\n TokUI: M.default,\n registerHandler: N,\n removeHandler: P,\n setTheme: F,\n getTheme: I,\n setLocale: L,\n getLocale: R,\n registerLocale: z,\n el: j.el\n };\n e.TokUI = M.default, e.default = B, e.el = j.el, e.getLocale = R, e.getTheme = I, e.registerHandler = N, e.registerLocale = z, e.removeHandler = P, e.setLocale = L, e.setTheme = F;\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/@jboltai/tokui/dist/tokui.umd.js?");
|
|
342
|
+
|
|
343
|
+
/***/ }),
|
|
344
|
+
|
|
333
345
|
/***/ "./node_modules/@soda/get-current-script/index.js":
|
|
334
346
|
/*!********************************************************!*\
|
|
335
347
|
!*** ./node_modules/@soda/get-current-script/index.js ***!
|
|
@@ -825,7 +837,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
825
837
|
/***/ (function(module, exports, __webpack_require__) {
|
|
826
838
|
|
|
827
839
|
"use strict";
|
|
828
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\n\nvar _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/objectSpread2.js\"));\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper */ \"./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _markdownIt = _interopRequireDefault(__webpack_require__(/*! markdown-it */ \"./node_modules/markdown-it/index.mjs\"));\n\nvar _tokui = __webpack_require__(/*! @jboltai/tokui/dist/tokui.mjs */ \"./node_modules/@jboltai/tokui/dist/tokui.mjs\");\n\n__webpack_require__(/*! @jboltai/tokui/dist/tokui.css */ \"./node_modules/@jboltai/tokui/dist/tokui.css\");\n\nvar _apichat = __webpack_require__(/*! @lib/api/apichat */ \"./src/lib/api/apichat.js\");\n\nvar _index = __webpack_require__(/*! @lib/socket/fileManager/obs/index */ \"./src/lib/socket/fileManager/obs/index.js\");\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @lib/socket/utils/index */ \"./src/lib/socket/utils/index.js\"));\n\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\n\nvar _apiObs = _interopRequireDefault(__webpack_require__(/*! @lib/api/apiObs */ \"./src/lib/api/apiObs.js\"));\n\nvar _html2canvas = _interopRequireDefault(__webpack_require__(/*! html2canvas */ \"./node_modules/html2canvas/dist/html2canvas.esm.js\"));\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar md = new _markdownIt.default({\n breaks: true,\n html: false,\n linkify: true,\n typographer: true\n});\nmd.enable('table');\nvar _default2 = {\n name: 'ChatDetail',\n props: {\n isMobile: {\n type: Boolean,\n default: false\n },\n activeSessionId: {\n type: String,\n default: ''\n },\n currentAgent: {\n type: String,\n default: ''\n },\n agentInfo: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n currentAgentDesc: {\n type: String,\n default: ''\n },\n showSidebar: {\n type: Boolean,\n default: false\n },\n showH5List: {\n type: Boolean,\n default: false\n },\n showAgentSelect: {\n type: Boolean,\n default: false\n },\n agentList: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n messages: [],\n inputText: '',\n sending: false,\n waitTimer: null,\n waitSeconds: 0,\n canceling: false,\n msgPage: 1,\n msgMaxPage: 1,\n msgTotal: 0,\n eventSource: null,\n showToolInfo: false,\n showDownBtn: false,\n lastScrollTop: 0,\n scrollTimer: null,\n contentCache: {},\n loadingSessionMsg: false,\n greeting: '',\n _scrollTimer: null,\n _userScrolledUp: false,\n voiceMode: false,\n isRecording: false,\n recordDuration: 0,\n recordingTimer: null,\n audioContext: null,\n audioStream: null,\n audioProcessor: null,\n audioChunks: [],\n audioSampleRate: 16000,\n isCancelSwipe: false,\n recordStartY: 0,\n _pendingSendText: null\n };\n },\n computed: {\n waitClass: function waitClass() {\n if (this.waitSeconds > 15) return 'wait-15';\n if (this.waitSeconds > 10) return 'wait-10';\n if (this.waitSeconds > 5) return 'wait-5';\n return '';\n },\n currentAgentName: function currentAgentName() {\n var _this = this;\n\n if (!this.currentAgent) return '';\n var a = this.agentList.find(function (x) {\n return x.agentCode === _this.currentAgent;\n });\n return a ? a.agentName || a.agentCode : this.currentAgent;\n }\n },\n watch: {\n contentCache: {\n handler: function handler(val) {// 保持响应性\n },\n immediate: true\n },\n activeSessionId: function activeSessionId(val) {\n var _this2 = this;\n\n if (val && this._pendingSendText) {\n var text = this._pendingSendText;\n this._pendingSendText = null;\n this.$nextTick(function () {\n return _this2._sendMessage(text);\n });\n }\n },\n messages: {\n handler: function handler() {\n var _this3 = this;\n\n this.$nextTick(function () {\n return _this3._renderTokuiMessages();\n });\n },\n deep: true\n }\n },\n mounted: function mounted() {\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', this.onViewportResize, {\n passive: true\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (window.visualViewport) {\n window.visualViewport.removeEventListener('resize', this.onViewportResize);\n }\n\n this.releaseAudio();\n this.contentCache = {};\n clearTimeout(this._scrollTimer);\n\n if (this.eventSource) {\n this.eventSource.onerror = null;\n this.eventSource.close();\n this.eventSource = null;\n }\n\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n\n if (this._typeTimer) {\n clearInterval(this._typeTimer);\n this._typeTimer = null;\n }\n },\n methods: {\n getInitial: function getInitial(name) {\n if (!name) return '?';\n return name.charAt(0);\n },\n formatTime: function formatTime(t) {\n if (!t) return '';\n var d = new Date(t.replace(' ', 'T'));\n var now = new Date();\n var diff = (now - d) / 1000;\n if (diff < 60) return '刚刚';\n if (diff < 3600) return Math.floor(diff / 60) + '分钟前';\n if (diff < 86400) return Math.floor(diff / 3600) + '小时前';\n return d.getMonth() + 1 + '/' + d.getDate();\n },\n escapeHtml: function escapeHtml(text) {\n if (!text) return '';\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n },\n renderMarkdown: function renderMarkdown(text) {\n if (!text) return '';\n\n try {\n return md.render(text);\n } catch (err) {\n return this.escapeHtml(text);\n }\n },\n renderStreaming: function renderStreaming(text, msgKey) {\n if (!text) return '';\n var cache = this.contentCache[msgKey];\n var lines = text.split('\\n');\n var lastLineIdx = lines.length - 1;\n\n if (!cache) {\n try {\n var html = md.render(text);\n this.$set(this.contentCache, msgKey, {\n renderedLines: lastLineIdx,\n html: html,\n fullText: text\n });\n return html;\n } catch (_unused) {\n return this.escapeHtml(text);\n }\n }\n\n if (text === cache.fullText) return cache.html;\n cache.fullText = text; // 行数没变,仅末尾追加字符,直接拼接尾行\n\n if (lastLineIdx === cache.renderedLines) {\n return cache.html + this.escapeHtml(lines[lastLineIdx]);\n } // 场景1:行数变少/文本回退截断,全量重渲染\n\n\n if (lastLineIdx < cache.renderedLines) {\n try {\n var fullLines = lines.slice(0, lastLineIdx);\n var newBaseHtml = '';\n\n if (fullLines.length > 0) {\n newBaseHtml = md.render(fullLines.join('\\n'));\n }\n\n cache.html = newBaseHtml;\n cache.renderedLines = lastLineIdx;\n\n var _lastLine = this.escapeHtml(lines[lastLineIdx]);\n\n return cache.html + (_lastLine || '');\n } catch (_unused2) {\n return this.escapeHtml(text);\n }\n } // 场景2:新增完整行\n\n\n if (cache.renderedLines < lastLineIdx) {\n var allFullLines = lines.slice(0, lastLineIdx);\n var _newBaseHtml = '';\n\n if (allFullLines.length > 0) {\n _newBaseHtml = md.render(allFullLines.join('\\n'));\n }\n\n cache.html = _newBaseHtml;\n cache.renderedLines = lastLineIdx;\n }\n\n var lastLine = this.escapeHtml(lines[lastLineIdx]);\n cache.renderedLines = lastLineIdx;\n return cache.html + (lastLine || '');\n },\n getChatAvatarStyle: function getChatAvatarStyle(agent, avatar) {\n if (avatar) {\n return {\n backgroundImage: \"url(\".concat(avatar, \")\"),\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n }\n\n var _agent = this.agentList.find(function (x) {\n return x.agentCode === agent;\n });\n\n if (_agent && _agent.avatar) {\n return {\n backgroundImage: \"url(\".concat(_agent.avatar, \")\"),\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n } // 没有网络图片时,根据智能体在 agentList 中的索引位置决定颜色\n\n\n var index = this.agentList.findIndex(function (item) {\n return item.agentCode === agent;\n });\n\n if (index !== -1) {\n var colorIndex = index % 4 + 1;\n return {\n background: this.getGradientByColorIndex(colorIndex)\n };\n }\n\n return {\n background: 'linear-gradient(135deg, #1677ff, #4096ff)'\n };\n },\n getGradientByColorIndex: function getGradientByColorIndex(index) {\n var gradients = {\n 1: 'linear-gradient(135deg, #1677ff, #4096ff)',\n 2: 'linear-gradient(135deg, #52c41a, #73d13d)',\n 3: 'linear-gradient(135deg, #fa8c16, #ffa940)',\n 4: 'linear-gradient(135deg, #722ed1, #b37feb)'\n };\n return gradients[index] || gradients[1];\n },\n sendQuickMsg: function sendQuickMsg(message) {\n if (message) {\n this.inputText = message;\n this.sendMessage();\n }\n },\n formatMixText: function formatMixText(str) {\n if (!str) return '';\n var res = str.replace(/([a-zA-Z0-9])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z0-9])/g, '$1 $2');\n res = res.replace(/([a-z])([A-Z])/g, '$1 $2');\n return res;\n },\n // 检测是否滚动到底部,控制向下箭头显示隐藏\n checkScrollBottom: function checkScrollBottom() {\n var forceShowWhenNotBottom = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var el = this.$refs.messagesRef;\n\n if (!el) {\n this.showDownBtn = false;\n return;\n }\n\n var scrollHeight = el.scrollHeight,\n scrollTop = el.scrollTop,\n clientHeight = el.clientHeight;\n var remain = scrollHeight - scrollTop - clientHeight;\n var atBottom = remain <= 80; // 检测用户是否主动向上滚动(远离底部)\n\n if (remain > 80 && scrollTop < this.lastScrollTop) {\n this._userScrolledUp = true;\n }\n\n if (atBottom) {\n this._userScrolledUp = false;\n this.showDownBtn = false;\n } else if (this._userScrolledUp) {\n // 用户已主动上滚,保持显示\"到底部\"按钮,不自动回滚\n this.showDownBtn = true;\n } else if (this.sending && scrollTop >= this.lastScrollTop && !forceShowWhenNotBottom) {\n this.showDownBtn = false;\n } else {\n this.showDownBtn = true;\n }\n\n this.lastScrollTop = scrollTop;\n this.$emit('scroll-bottom-check', {\n showDownBtn: this.showDownBtn,\n lastScrollTop: this.lastScrollTop\n });\n },\n // H5 输入框获取焦点 - 滚动到底部让键盘不遮挡\n onInputFocus: function onInputFocus() {\n if (!this.isMobile) return;\n setTimeout(function () {\n window.scrollTo(0, document.body.scrollHeight);\n }, 300);\n },\n // visualViewport 变化时(如键盘弹出)调整滚动位置\n onViewportResize: function onViewportResize() {\n if (!this.isMobile) return;\n var activeEl = document.activeElement;\n\n if (activeEl && (activeEl.tagName === 'TEXTAREA' || activeEl.tagName === 'INPUT')) {\n window.scrollTo(0, document.body.scrollHeight);\n }\n },\n autoResizeTextarea: function autoResizeTextarea() {\n var _this4 = this;\n\n var ta = this.$refs.taRef;\n if (!ta) return;\n var isMobile = this.isMobile;\n var baseH = isMobile ? 36 : 100;\n var maxH = isMobile ? 100 : 180;\n ta.style.height = \"\".concat(baseH, \"px\");\n var realH = ta.scrollHeight;\n\n if (realH > baseH) {\n ta.style.height = \"\".concat(Math.min(realH, maxH), \"px\");\n }\n\n this.$nextTick(function () {\n _this4.checkScrollBottom(true);\n });\n },\n // Ctrl+Enter换行\n newLine: function newLine(e) {\n var _this5 = this;\n\n e.preventDefault();\n var ta = this.$refs.taRef;\n var start = ta.selectionStart;\n var end = ta.selectionEnd;\n this.inputText = this.inputText.slice(0, start) + '\\n' + this.inputText.slice(end);\n this.$nextTick(function () {\n ta.selectionStart = ta.selectionEnd = start + 1;\n\n _this5.autoResizeTextarea();\n });\n },\n toggleVoiceMode: function toggleVoiceMode() {\n var _this6 = this;\n\n if (this.voiceMode) {\n this.voiceMode = false;\n this.releaseAudio();\n return;\n } // 进入语音模式前提前请求麦克风权限,避免触摸时异步弹窗导致 touchend 丢失\n\n\n this.ensureAudioReady().then(function (ready) {\n if (ready) {\n _this6.voiceMode = true;\n } else {\n _this6.voiceMode = false;\n }\n });\n },\n // 确保音频设备已就绪\n ensureAudioReady: function ensureAudioReady() {\n var _this7 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var stream, audioContext, source, processor;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(_this7.audioContext && _this7.audioStream)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\", true);\n\n case 2:\n if (!(!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia)) {\n _context.next = 5;\n break;\n }\n\n alert('当前环境不支持麦克风访问');\n return _context.abrupt(\"return\", false);\n\n case 5:\n _context.prev = 5;\n _context.next = 8;\n return navigator.mediaDevices.getUserMedia({\n audio: true\n });\n\n case 8:\n stream = _context.sent;\n _this7.audioStream = stream;\n audioContext = new (window.AudioContext || window.webkitAudioContext)(); // iOS 上 AudioContext 默认 suspended,需要手动 resume\n\n if (!(audioContext.state === 'suspended')) {\n _context.next = 14;\n break;\n }\n\n _context.next = 14;\n return audioContext.resume();\n\n case 14:\n _this7.audioContext = audioContext; // 采集实际采样率(iOS 会忽略 sampleRate 参数,使用硬件采样率)\n\n _this7.audioSampleRate = audioContext.sampleRate || 16000;\n source = audioContext.createMediaStreamSource(stream); // 保存 source 引用到实例,防止 iOS Safari 垃圾回收导致音频处理中断\n\n _this7.audioSource = source;\n processor = audioContext.createScriptProcessor(4096, 1, 1);\n _this7.audioProcessor = processor; // iOS 上 onaudioprocess 可能先于 isRecording=true 触发\n // 因此不依赖 isRecording 过滤,由外部控制 audioChunks 的清零时机\n\n processor.onaudioprocess = function (e) {\n var inputData = e.inputBuffer.getChannelData(0);\n\n _this7.audioChunks.push(new Float32Array(inputData));\n };\n\n source.connect(processor);\n processor.connect(audioContext.destination);\n return _context.abrupt(\"return\", true);\n\n case 26:\n _context.prev = 26;\n _context.t0 = _context[\"catch\"](5);\n console.error('麦克风访问失败:', _context.t0);\n alert('麦克风权限被拒绝');\n return _context.abrupt(\"return\", false);\n\n case 31:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[5, 26]]);\n }))();\n },\n // H5语音录制 - 触摸开始\n onRecordTouchStart: function onRecordTouchStart(e) {\n var _this8 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var ready;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!_this8.sending) {\n _context2.next = 2;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 2:\n _context2.next = 4;\n return _this8.ensureAudioReady();\n\n case 4:\n ready = _context2.sent;\n\n if (ready) {\n _context2.next = 7;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 7:\n _this8.isCancelSwipe = false;\n _this8.recordStartY = e.touches[0].clientY;\n _this8.recordDuration = 0;\n _this8.audioChunks = [];\n _this8.isRecording = true;\n _this8.recordingTimer = setInterval(function () {\n _this8.recordDuration++;\n\n if (_this8.recordDuration >= 60) {\n _this8.onRecordTouchEnd();\n }\n }, 1000);\n\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n // H5语音录制 - 触摸移动\n onRecordTouchMove: function onRecordTouchMove(e) {\n if (!this.isRecording) return;\n var touch = e.touches[0];\n var moveY = touch.clientY;\n var cancelThreshold = 60;\n this.isCancelSwipe = this.recordStartY - moveY > cancelThreshold;\n },\n // H5语音录制 - 触摸结束\n onRecordTouchEnd: function onRecordTouchEnd() {\n if (!this.isRecording) return;\n this.isRecording = false;\n\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n\n this.stopAudioCapture(!this.isCancelSwipe);\n },\n // 停止音频采集并输出 WAV\n stopAudioCapture: function stopAudioCapture(shouldSend) {\n this.isRecording = false;\n\n if (shouldSend && this.audioChunks.length > 0) {\n var wavBlob = this.encodePCMToWav(this.audioChunks, this.audioSampleRate || 16000);\n this.sendAudioBlob(wavBlob);\n }\n\n this.audioChunks = [];\n },\n // 取消录音\n cancelRecording: function cancelRecording() {\n this.isRecording = false;\n\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n\n this.recordDuration = 0;\n this.isCancelSwipe = false;\n this.audioChunks = [];\n },\n // 释放音频资源\n releaseAudio: function releaseAudio() {\n this.cancelRecording();\n\n if (this.audioProcessor) {\n this.audioProcessor.disconnect();\n this.audioProcessor = null;\n }\n\n if (this.audioSource) {\n this.audioSource.disconnect();\n this.audioSource = null;\n }\n\n if (this.audioContext) {\n this.audioContext.close().catch(function () {});\n this.audioContext = null;\n }\n\n if (this.audioStream) {\n this.audioStream.getTracks().forEach(function (t) {\n return t.stop();\n });\n this.audioStream = null;\n }\n },\n // 将 Float32 PCM 数据编码为 WAV Blob\n encodePCMToWav: function encodePCMToWav(chunks, sampleRate) {\n var totalLength = 0;\n\n var _iterator = (0, _createForOfIteratorHelper2.default)(chunks),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var chunk = _step.value;\n totalLength += chunk.length;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var pcmData = new Int16Array(totalLength);\n var offset = 0;\n\n var _iterator2 = (0, _createForOfIteratorHelper2.default)(chunks),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _chunk = _step2.value;\n\n for (var i = 0; i < _chunk.length; i++) {\n var s = Math.max(-1, Math.min(1, _chunk[i]));\n pcmData[offset++] = s < 0 ? s * 0x8000 : s * 0x7FFF;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n var numChannels = 1;\n var bitsPerSample = 16;\n var byteRate = sampleRate * numChannels * bitsPerSample / 8;\n var blockAlign = numChannels * bitsPerSample / 8;\n var dataSize = pcmData.length * (bitsPerSample / 8);\n var headerSize = 44;\n var totalSize = headerSize + dataSize;\n var buffer = new ArrayBuffer(totalSize);\n var view = new DataView(buffer);\n\n this._wavWriteString(view, 0, 'RIFF');\n\n view.setUint32(4, totalSize - 8, true);\n\n this._wavWriteString(view, 8, 'WAVE');\n\n this._wavWriteString(view, 12, 'fmt ');\n\n view.setUint32(16, 16, true);\n view.setUint16(20, 1, true);\n view.setUint16(22, numChannels, true);\n view.setUint32(24, sampleRate, true);\n view.setUint32(28, byteRate, true);\n view.setUint16(32, blockAlign, true);\n view.setUint16(34, bitsPerSample, true);\n\n this._wavWriteString(view, 36, 'data');\n\n view.setUint32(40, dataSize, true);\n var pcmView = new Int16Array(buffer, headerSize, pcmData.length);\n pcmView.set(pcmData);\n return new Blob([buffer], {\n type: 'audio/wav'\n });\n },\n _wavWriteString: function _wavWriteString(view, offset, str) {\n for (var i = 0; i < str.length; i++) {\n view.setUint8(offset + i, str.charCodeAt(i));\n }\n },\n // 发送音频\n sendAudioBlob: function sendAudioBlob(blob) {\n var appSeqId = _index2.default.getAppSeqId();\n\n var name = appSeqId + '.wav';\n var file = new File([blob], name, {\n type: 'audio/wav'\n });\n this.sendAudioMessage(file);\n },\n sendAudioMessage: function sendAudioMessage(file) {\n var _this9 = this;\n\n var sttKey = 'stt_' + Date.now();\n var sttMsg = {\n role: 'user',\n content: '转化中...',\n _sttStatus: 'pending',\n _sttKey: sttKey,\n createTime: new Date().toISOString(),\n _key: sttKey\n };\n this.messages.push(sttMsg);\n this.scrollToBottom(true);\n (0, _index.fileUploadToObs)({\n _file: file,\n appSeqId: file.name\n }).then(function (resp) {\n if (resp.CommonMsg.Status === 200) {\n return _apiObs.default.aliAudioToText({\n url: resp.obs_upload_data.obsUrl\n }).then(function (result) {\n if (result.code === '200' && result.data) {\n var idx = _this9.messages.findIndex(function (m) {\n return m._sttKey === sttKey;\n });\n\n if (idx !== -1) {\n _this9.messages.splice(idx, 1);\n }\n\n _this9.sendQuickMsg(result.data);\n } else {\n throw new Error(result.msg || '语音转文字失败');\n }\n });\n } else {\n throw new Error(resp.CommonMsg.Message || '文件上传失败');\n }\n }).catch(function (err) {\n console.error('语音转文字失败:', err);\n\n var idx = _this9.messages.findIndex(function (m) {\n return m._sttKey === sttKey;\n });\n\n if (idx !== -1) {\n _this9.$set(_this9.messages, idx, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _this9.messages[idx]), {}, {\n _sttStatus: 'error',\n content: '语音转文字失败'\n }));\n }\n\n _this9.$message.error('语音转文字失败');\n });\n this.$message.success(\"\\u5F55\\u97F3\\u5B8C\\u6210 (\".concat(this.recordDuration, \"s)\"));\n },\n clearWaitTimer: function clearWaitTimer() {\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n },\n loadMoreMessages: function loadMoreMessages() {\n var _this10 = this;\n\n var nextPage = this.msgPage + 1;\n var maxPage = Math.ceil(this.msgTotal / 10);\n\n if (nextPage > maxPage) {\n this.loadingMore = false;\n return;\n }\n\n (0, _apichat.getSessionMessages)(this.activeSessionId, nextPage, 10).then(function (res) {\n var list = Array.isArray(res) ? res : res.list || [];\n _this10.msgPage = nextPage;\n var asAsc = (list || []).slice().reverse();\n var prepend = asAsc.map(function (m) {\n return {\n role: m.role,\n content: m.content || '',\n thinking: m.thinking || '',\n toolCalls: [],\n agentName: '',\n createTime: m.createTime || null,\n _key: m.createTime ? 'msg_' + m.createTime : 'msg_' + Date.now() + '_' + Math.random(),\n // 历史消息中如果包含 ```tokui 标记或以 TokUI 标签开头,自动启用 TokUI 渲染\n _hasTokui: m.role === 'assistant' && m.content && (/```tokui/.test(m.content) || /^\\s*\\[(card|row|list|table|callout|desc|dv|ft)\\b/.test(m.content.trim()))\n };\n });\n var container = _this10.$refs.messagesRef;\n var oldScrollHeight = container ? container.scrollHeight : 0;\n var oldScrollTop = container ? container.scrollTop : 0;\n _this10.messages = [].concat((0, _toConsumableArray2.default)(prepend), (0, _toConsumableArray2.default)(_this10.messages));\n\n _this10.$nextTick(function () {\n if (container) {\n container.scrollTop = oldScrollTop + (container.scrollHeight - oldScrollHeight);\n }\n\n _this10.loadingMore = false;\n });\n }).catch(function () {\n _this10.loadingMore = false;\n });\n },\n onScrollMessages: function onScrollMessages() {\n var container = this.$refs.messagesRef;\n if (!container || this.loadingMore) return;\n var isAtBottom = container.scrollTop + container.clientHeight >= container.scrollHeight - 100;\n this.checkScrollBottom();\n if (isAtBottom) return;\n\n if (container.scrollTop < 50 && this.msgPage < Math.ceil(this.msgTotal / 10)) {\n this.loadingMore = true;\n this.loadMoreMessages();\n }\n },\n // 检测内容是否为纯 TokUI DSL(无 ```tokui 围栏,直接以 TokUI 标签开头)\n _isPureTokuiDsl: function _isPureTokuiDsl(text) {\n if (!text) return false;\n return /^\\s*\\[(card|row|list|table|callout|desc|dv|ft)\\b/.test(text.trim());\n },\n // 提取 ```tokui 代码块中的 DSL,返回混合内容片段数组\n // 每项: { type: 'md' | 'dsl', content: string }\n _extractTokuiDsl: function _extractTokuiDsl(text) {\n if (!text) return [{\n type: 'md',\n content: ''\n }]; // 纯 TokUI DSL(无 ```tokui 围栏):整个内容作为 DSL 处理\n\n if (this._isPureTokuiDsl(text)) {\n return [{\n type: 'dsl',\n content: text.trim()\n }];\n }\n\n var parts = [];\n var re = /```tokui\\s*\\n?([\\s\\S]*?)```/g;\n var lastIndex = 0;\n var match;\n\n while ((match = re.exec(text)) !== null) {\n if (match.index > lastIndex) {\n parts.push({\n type: 'md',\n content: text.substring(lastIndex, match.index)\n });\n }\n\n var dsl = match[1].trim();\n if (dsl) parts.push({\n type: 'dsl',\n content: dsl\n });\n lastIndex = match.index + match[0].length;\n }\n\n if (lastIndex < text.length) {\n parts.push({\n type: 'md',\n content: text.substring(lastIndex)\n });\n }\n\n return parts;\n },\n // 全文本增量流式 feed TokUI(参考项目方式)\n _streamTokui: function _streamTokui(msg, fullText) {\n if (!msg._tokuiStream) return; // 动态判断当前内容是否为纯 TokUI DSL\n\n var isPureDsl = this._isPureTokuiDsl(fullText); // 如果内容模式发生了变化,重置增量追踪\n\n\n if (msg._tokuiPureDsl !== isPureDsl) {\n msg._tokuiPureDsl = isPureDsl;\n msg._prevMdLen = 0;\n msg._prevDslLen = 0;\n msg._dslBuffer = '';\n }\n\n var dsl = '';\n var md = '';\n\n if (isPureDsl) {\n // 纯 DSL:整个内容为 DSL\n dsl = fullText;\n } else {\n // 混合内容:从 ```tokui 围栏中提取 DSL\n var dslParts = [];\n var re = /```tokui\\s*\\n?([\\s\\S]*?)```/g;\n var match;\n\n while ((match = re.exec(fullText)) !== null) {\n var inner = match[1].trim();\n if (inner) dslParts.push(inner);\n } // 处理末尾未闭合的 ```tokui(流式场景)\n\n\n var lastIdx = re.lastIndex;\n var remaining = fullText.substring(lastIdx);\n var openIdx = remaining.lastIndexOf('```tokui');\n\n if (openIdx >= 0) {\n var dslPart = remaining.substring(openIdx + 8);\n if (dslPart.charCodeAt(0) === 10) dslPart = dslPart.substring(1);\n if (dslPart) dslParts.push(dslPart);\n }\n\n dsl = dslParts.join('\\n'); // 移除所有代码围栏得到纯 Markdown\n\n md = fullText.replace(/```[\\s\\S]*?(```|$)/g, '');\n } // Feed Markdown 增量\n\n\n if (md) {\n var prevMdLen = msg._prevMdLen || 0;\n\n if (md.length > prevMdLen) {\n var newMd = md.substring(prevMdLen);\n msg._prevMdLen = md.length;\n\n if (!msg._mdTagOpen) {\n msg._tokuiStream.feed('[md]\\n');\n\n msg._mdTagOpen = true;\n }\n\n msg._tokuiStream.feed(newMd);\n }\n } // Feed DSL 增量\n\n\n if (dsl) {\n var prevDslLen = msg._prevDslLen || 0;\n\n if (dsl.length > prevDslLen) {\n var newDsl = dsl.substring(prevDslLen);\n msg._prevDslLen = dsl.length;\n\n if (msg._mdTagOpen) {\n msg._tokuiStream.feed('[/md]\\n');\n\n msg._mdTagOpen = false;\n } // 逐行 feed DSL,缓冲未完成行\n\n\n msg._dslBuffer = (msg._dslBuffer || '') + newDsl;\n\n var lines = msg._dslBuffer.split('\\n');\n\n for (var i = 0; i < lines.length - 1; i++) {\n msg._tokuiStream.feed(lines[i] + '\\n');\n }\n\n msg._dslBuffer = lines[lines.length - 1];\n }\n }\n },\n // 渲染历史消息中的 TokUI 内容(仅在 TokUI 可用时执行)\n _renderTokuiMessages: function _renderTokuiMessages() {\n var _this11 = this;\n\n if (typeof _tokui.TokUI === 'undefined') return;\n var container = this.$refs.messagesRef;\n if (!container) return;\n var allRows = container.querySelectorAll('.msg-row');\n allRows.forEach(function (row, idx) {\n var msg = _this11.messages[idx];\n if (!msg || !msg._hasTokui) return; // 已通过流式渲染完成的消息,跳过(防止 endStream 后 watcher 触发重复渲染)\n\n if (msg._tokuiRendered) return;\n if (msg.loading || !msg.content || msg._tokuiStream) return;\n var tokuiDiv = row.querySelector('.tokui-stream');\n if (!tokuiDiv) return; // 清除旧内容和状态(DOM 复用 + 流式残留)\n\n tokuiDiv.innerHTML = '';\n tokuiDiv.classList.remove('tokui-streaming');\n tokuiDiv.style.display = 'block';\n\n try {\n var ui = new _tokui.TokUI({\n container: tokuiDiv\n }); // ── 与 _streamTokui 完全一致的提取逻辑(含未闭合围栏处理) ──\n\n var text = msg.content;\n\n var isPureDsl = _this11._isPureTokuiDsl(text);\n\n var dsl = '';\n var md = '';\n\n if (isPureDsl) {\n dsl = text;\n } else {\n var dslParts = [];\n var re = /```tokui\\s*\\n?([\\s\\S]*?)```/g;\n var match;\n\n while ((match = re.exec(text)) !== null) {\n var inner = match[1].trim();\n if (inner) dslParts.push(inner);\n } // 处理未闭合的 ```tokui(与流式一致)\n\n\n var lastIdx = re.lastIndex;\n var remaining = text.substring(lastIdx);\n var openIdx = remaining.lastIndexOf('```tokui');\n\n if (openIdx >= 0) {\n var dslPart = remaining.substring(openIdx + 8);\n if (dslPart.charCodeAt(0) === 10) dslPart = dslPart.substring(1);\n if (dslPart) dslParts.push(dslPart);\n }\n\n dsl = dslParts.join('\\n');\n md = text.replace(/```[\\s\\S]*?(```|$)/g, '');\n } // ── 与流式完全一致的 feed 顺序和方式 ──\n\n\n ui.startStream(); // Feed Markdown\n\n if (md && md.trim()) {\n ui.feed('[md]\\n');\n ui.feed(md);\n ui.feed('[/md]\\n');\n } // Feed DSL 逐行(与流式 _streamTokui 完全一致)\n\n\n if (dsl) {\n var dslLines = dsl.split('\\n');\n\n for (var i = 0; i < dslLines.length; i++) {\n ui.feed(dslLines[i] + '\\n');\n }\n }\n\n ui.endStream();\n tokuiDiv._tokuiRendered = true;\n\n _this11.$set(msg, '_tokuiRendered', true);\n } catch (e) {\n console.error('[TokUI] render error:', e);\n tokuiDiv.textContent = msg.content;\n }\n });\n },\n sendMessage: function sendMessage() {\n var _this12 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n var text;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n text = _this12.inputText.trim();\n\n if (!(!text || _this12.sending)) {\n _context3.next = 3;\n break;\n }\n\n return _context3.abrupt(\"return\");\n\n case 3:\n if (!(text.length > 300)) {\n _context3.next = 6;\n break;\n }\n\n _this12.$message({\n message: '消息内容不能超过300字',\n type: 'warning',\n duration: 2000\n });\n\n return _context3.abrupt(\"return\");\n\n case 6:\n if (_this12.activeSessionId) {\n _context3.next = 10;\n break;\n }\n\n _this12.$emit('start-session');\n\n _this12._pendingSendText = text;\n return _context3.abrupt(\"return\");\n\n case 10:\n _this12._sendMessage(text);\n\n case 11:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n _sendMessage: function _sendMessage(text) {\n var _this13 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {\n var ta, isMobile, baseH, agentName, msgIdx, thinkingBuffer, finalContent, answerBuffer, thinkDisplayed, typeTimer, streamDone, url, es;\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _this13.inputText = '';\n ta = _this13.$refs.taRef;\n isMobile = _this13.isMobile;\n baseH = isMobile ? 36 : 100;\n\n if (ta) {\n ta.style.height = baseH + 'px';\n }\n\n _this13.showDownBtn = false;\n\n _this13.messages.push({\n role: 'user',\n content: text,\n createTime: new Date().toISOString(),\n _key: 'user_' + Date.now() + '_' + Math.random()\n });\n\n agentName = _this13.currentAgentName;\n msgIdx = _this13.messages.push({\n role: \"assistant\",\n content: \"\",\n thinking: \"\",\n loading: true,\n toolCalls: [],\n agentName: agentName,\n createTime: new Date().toISOString(),\n _key: 'asst_' + Date.now() + '_' + Math.random()\n }) - 1;\n\n _this13.scrollToBottom(true);\n\n _this13.sending = true;\n _this13.waitSeconds = 0;\n if (_this13.waitTimer) clearInterval(_this13.waitTimer);\n _this13.waitTimer = setInterval(function () {\n _this13.waitSeconds++;\n }, 1000);\n thinkingBuffer = '';\n finalContent = '';\n answerBuffer = '';\n thinkDisplayed = 0;\n typeTimer = null;\n streamDone = false;\n typeTimer = setInterval(function () {\n if (!_this13.messages[msgIdx]) return; // Phase 1: 逐字展示思考内容\n\n if (thinkDisplayed < thinkingBuffer.length) {\n thinkDisplayed += 50;\n if (thinkDisplayed > thinkingBuffer.length) thinkDisplayed = thinkingBuffer.length;\n _this13.messages[msgIdx].thinking = thinkingBuffer.substring(0, thinkDisplayed);\n\n _this13.scrollToBottom();\n } // Phase 2: 渲染答案内容\n\n\n var msg = _this13.messages[msgIdx]; // TokUI 活跃期间始终用 answerBuffer(避免 finalContent 带 ```tokui 围栏导致内容跳变)\n\n var target = msg._tokuiStream ? answerBuffer : finalContent || answerBuffer;\n var prevLen = msg._tokuiPrevLen || 0;\n\n if (target.length > prevLen) {\n msg._tokuiPrevLen = target.length; // 检测内容是否包含 TokUI 标记(```tokui 围栏 或 纯 DSL 标签开头)\n\n var hasTokuiMarker = msg._tokuiStream || _this13._isPureTokuiDsl(target) || target.indexOf('```tokui') !== -1;\n\n if (hasTokuiMarker && !msg._hasTokuiFailed) {\n // ── TokUI 路径 ──\n if (!msg._tokuiStream) {\n var container = _this13.$refs.messagesRef;\n\n if (container) {\n var rows = container.querySelectorAll('.msg-row.assistant');\n var lastRow = rows[rows.length - 1];\n var tokuiDiv = lastRow === null || lastRow === void 0 ? void 0 : lastRow.querySelector('.tokui-stream');\n\n if (tokuiDiv && typeof _tokui.TokUI !== 'undefined') {\n try {\n msg._tokuiDiv = tokuiDiv;\n msg._tokuiStream = new _tokui.TokUI({\n container: tokuiDiv\n });\n\n msg._tokuiStream.startStream();\n\n tokuiDiv.classList.add('tokui-streaming');\n msg._tokuiPureDsl = _this13._isPureTokuiDsl(target);\n msg._mdTagOpen = false;\n msg._prevMdLen = 0;\n msg._prevDslLen = 0;\n msg._dslBuffer = '';\n\n _this13.$set(msg, '_hasTokui', true);\n } catch (e) {\n console.error('[TokUI] init error:', e);\n msg._hasTokuiFailed = true;\n msg._tokuiStream = null;\n }\n } else {\n msg._hasTokuiFailed = true;\n }\n }\n }\n\n if (msg._tokuiStream) {\n _this13._streamTokui(msg, target);\n } else if (msg._hasTokuiFailed) {\n // TokUI 初始化失败,回退到普通渲染\n msg.content = target;\n }\n } else {\n // ── 普通渲染路径(保持原有逻辑不变)──\n msg.content = target;\n }\n\n _this13.scrollToBottom();\n\n return;\n } // Phase 3: 流结束 → 收尾\n\n\n if (streamDone) {\n clearInterval(typeTimer);\n typeTimer = null;\n var key = _this13.messages[msgIdx]._key;\n\n if (key) {\n _this13.$delete(_this13.contentCache, key);\n\n _this13.$delete(_this13.contentCache, key + '_t');\n }\n\n if (msg._tokuiStream) {\n // TokUI 路径:关闭 [md] 标签、刷新 DSL 缓冲区、结束流\n try {\n if (msg._mdTagOpen) {\n msg._tokuiStream.feed('[/md]\\n');\n\n msg._mdTagOpen = false;\n }\n\n if (msg._dslBuffer) {\n msg._tokuiStream.feed(msg._dslBuffer + '\\n');\n\n msg._dslBuffer = '';\n }\n\n msg._tokuiStream.endStream();\n } catch (e) {\n console.error('[TokUI] endStream error:', e);\n } // 标记已渲染,防止 _renderTokuiMessages 重复创建实例\n\n\n if (msg._tokuiDiv) {\n msg._tokuiDiv._tokuiRendered = true;\n }\n\n msg._tokuiStream = null; // 使用 $set 确保响应式\n\n _this13.$set(_this13.messages[msgIdx], '_tokuiRendered', true);\n }\n\n _this13.messages[msgIdx].content = finalContent;\n _this13.messages[msgIdx].thinking = thinkingBuffer;\n _this13.messages[msgIdx].loading = false;\n _this13.sending = false;\n\n _this13.clearWaitTimer();\n\n _this13.scrollToBottom();\n\n _this13.$emit('session-refresh');\n\n _this13.$emit('message-sent');\n }\n }, 30);\n url = (0, _apichat.createStreamUrl)(_this13.activeSessionId, text);\n\n if (_this13.eventSource) {\n _this13.eventSource.close();\n }\n\n _this13.eventSource = new EventSource(url);\n es = _this13.eventSource;\n es.addEventListener('reasoning', function (e) {\n if (e.data) {\n var chunk = e.data;\n var cleanChunk = chunk.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2').replace(/\\s+([:,.!?])/g, '$1').replace(/([:,.!?])\\s+/g, '$1 ');\n cleanChunk = cleanChunk.replace(/\\s+/g, ' ');\n var lastChar = thinkingBuffer.slice(-1);\n var firstChar = cleanChunk.slice(0, 1);\n\n var isLetter = function isLetter(c) {\n return /[a-zA-Z]/.test(c);\n };\n\n if (isLetter(lastChar) && isLetter(firstChar)) {\n thinkingBuffer += ' ' + cleanChunk;\n } else {\n thinkingBuffer += cleanChunk;\n }\n }\n });\n es.addEventListener('reasoning_result', function (e) {\n if (e.data) {\n thinkingBuffer = e.data;\n }\n });\n es.addEventListener('answer', function (e) {\n if (e.data) {\n answerBuffer += e.data.replace(/([a-zA-Z]+)([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z]+)/g, '$1 $2').replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2');\n }\n });\n es.addEventListener('tool_result', function (e) {\n if (e.data && _this13.messages[msgIdx]) {\n if (!_this13.messages[msgIdx].toolCalls) _this13.messages[msgIdx].toolCalls = [];\n\n _this13.messages[msgIdx].toolCalls.push(e.data);\n\n _this13.scrollToBottom();\n }\n });\n es.addEventListener('agent_result', function (e) {\n finalContent = e.data || '';\n streamDone = true;\n es.close();\n _this13.eventSource = null;\n });\n\n es.onerror = function (err) {\n console.log('[SSE] onerror', err);\n if (thinkingBuffer.length > 0 && !streamDone) finalContent = thinkingBuffer;\n if (!streamDone) finalContent = '❌ 连接中断';\n streamDone = true;\n es.close();\n _this13.eventSource = null;\n };\n\n case 31:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n stopAgent: function stopAgent() {\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n\n if (this.activeSessionId) {\n (0, _apichat.stopStream)(this.activeSessionId).catch(function () {});\n }\n\n if (this.messages.length > 0) {\n var last = this.messages[this.messages.length - 1];\n\n if (last && last.loading) {\n last.content = last.content || last.thinking || '⏹ 已停止';\n last.loading = false;\n this.$delete(this.contentCache, last._key);\n }\n }\n\n this.sending = false;\n this.clearWaitTimer();\n },\n scrollToTop: function scrollToTop() {\n var el = this.$refs.messagesRef;\n if (el) el.scrollTop = 0;\n },\n scrollToBottom: function scrollToBottom() {\n var _this14 = this;\n\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (this.showDownBtn && !force) return;\n this.$nextTick(function () {\n var el = _this14.$refs.messagesRef;\n\n if (el) {\n el.scrollTop = el.scrollHeight;\n _this14.lastScrollTop = el.scrollTop;\n _this14.showDownBtn = false;\n _this14._userScrolledUp = false;\n }\n });\n },\n scrollToBottomOnce: function scrollToBottomOnce() {\n var _this15 = this;\n\n clearTimeout(this._scrollTimer);\n this.$nextTick(function () {\n var tryScroll = function tryScroll() {\n var el = _this15.$refs.messagesRef;\n\n if (!el) {\n _this15._scrollTimer = setTimeout(tryScroll, 50);\n return;\n }\n\n var originalScrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.scrollTop = el.scrollHeight - el.clientHeight;\n el.style.scrollBehavior = originalScrollBehavior;\n _this15.showDownBtn = false;\n _this15._userScrolledUp = false;\n };\n\n tryScroll();\n });\n },\n copyText: function copyText(content) {\n var _this16 = this;\n\n if (!content) return;\n var text = content.replace(/<[^>]+>/g, ''); // 优先使用 Clipboard API(HTTPS 环境)\n\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(text).then(function () {\n _this16.$message({\n message: '已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(function () {\n _this16._fallbackCopyText(text);\n });\n } else {\n this._fallbackCopyText(text);\n }\n },\n _fallbackCopyText: function _fallbackCopyText(text) {\n try {\n var ta = document.createElement('textarea');\n ta.value = text;\n ta.style.cssText = 'position:fixed;left:-9999px;top:0;opacity:0';\n document.body.appendChild(ta);\n ta.focus();\n ta.select();\n document.execCommand('copy');\n document.body.removeChild(ta);\n this.$message({\n message: '已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n } catch (_unused3) {\n this.$message({\n message: '复制失败',\n type: 'error',\n duration: 2000\n });\n }\n },\n copyAsImage: function copyAsImage(content) {\n var _this17 = this;\n\n if (!content) return;\n var div = document.createElement('div');\n div.className = 'copy-image-render';\n div.style.cssText = 'position:fixed;left:-9999px;top:0;width:600px;padding:20px;background:#fff;font-size:14px;line-height:1.6;color:#333;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;'; // 内联表格样式(因 Vue 作用域样式不覆盖复制用的脱离文档流 div)\n\n div.innerHTML = this.renderMarkdown(content) + '<style>table{border-collapse:collapse;width:100%;margin:6px 0;font-size:14px}' + 'th,td{border:1px solid #e8e8e8;padding:5px 8px;text-align:left}' + 'th{background:#fafafa;font-weight:600}</style>';\n document.body.appendChild(div);\n this.$message({\n message: '正在生成图片...',\n type: 'info',\n duration: 2000\n });\n (0, _html2canvas.default)(div, {\n scale: 2,\n useCORS: true,\n backgroundColor: '#ffffff'\n }).then(function (canvas) {\n var base64 = canvas.toDataURL('image/png'); // 移动端:调用原生方法保存到本地相册\n\n if (_this17.isMobile) {\n if (_this17.$hybrid && typeof _this17.$hybrid.savePic2Library === 'function') {\n _this17.$hybrid.savePic2Library(base64, function () {\n _this17.$message({\n message: '图片已保存到本地相册',\n type: 'success',\n duration: 1500\n });\n });\n } else {\n // fallback:展示图片让用户长按保存\n _this17.previewImage = base64;\n\n _this17.$message({\n message: '长按图片可保存到本地',\n type: 'info',\n duration: 3000\n });\n }\n\n return;\n } // PC端:复制到剪贴板\n\n\n var canCopyImage = typeof ClipboardItem !== 'undefined' && navigator.clipboard && typeof navigator.clipboard.write === 'function';\n\n if (!canCopyImage) {\n _this17.$message({\n message: '当前浏览器不支持复制图片',\n type: 'warning',\n duration: 3000\n });\n\n return;\n }\n\n canvas.toBlob(function (blob) {\n if (!blob) {\n _this17.$message({\n message: '生成图片失败',\n type: 'error',\n duration: 2000\n });\n\n return;\n }\n\n navigator.clipboard.write([new ClipboardItem({\n 'image/png': blob\n })]).then(function () {\n _this17.$message({\n message: '图片已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(function () {\n _this17.$message({\n message: '复制失败,请重试',\n type: 'error',\n duration: 2000\n });\n });\n }, 'image/png');\n }).catch(function () {\n _this17.$message({\n message: '生成图片失败',\n type: 'error',\n duration: 2000\n });\n }).finally(function () {\n document.body.removeChild(div);\n });\n }\n }\n};\nexports.default = _default2;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
840
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\n\nvar _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/objectSpread2.js\"));\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper */ \"./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _markdownIt = _interopRequireDefault(__webpack_require__(/*! markdown-it */ \"./node_modules/markdown-it/index.mjs\"));\n\n__webpack_require__(/*! @jboltai/tokui/dist/tokui.css */ \"./node_modules/@jboltai/tokui/dist/tokui.css\");\n\nvar _apichat = __webpack_require__(/*! @lib/api/apichat */ \"./src/lib/api/apichat.js\");\n\nvar _index = __webpack_require__(/*! @lib/socket/fileManager/obs/index */ \"./src/lib/socket/fileManager/obs/index.js\");\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @lib/socket/utils/index */ \"./src/lib/socket/utils/index.js\"));\n\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\n\nvar _apiObs = _interopRequireDefault(__webpack_require__(/*! @lib/api/apiObs */ \"./src/lib/api/apiObs.js\"));\n\nvar _html2canvas = _interopRequireDefault(__webpack_require__(/*! html2canvas */ \"./node_modules/html2canvas/dist/html2canvas.esm.js\"));\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar resolveTokUIConstructor = function resolveTokUIConstructor() {\n if (typeof window !== 'undefined') {\n var _window$globalThis;\n\n var runtime = window.TokUI || ((_window$globalThis = window.globalThis) === null || _window$globalThis === void 0 ? void 0 : _window$globalThis.TokUI);\n\n if (runtime) {\n var _runtime$default;\n\n return runtime.TokUI || ((_runtime$default = runtime.default) === null || _runtime$default === void 0 ? void 0 : _runtime$default.TokUI) || runtime.default || runtime;\n }\n }\n\n try {\n if (true) {\n var _runtime = __webpack_require__(/*! @jboltai/tokui/dist/tokui.umd.js */ \"./node_modules/@jboltai/tokui/dist/tokui.umd.js\");\n\n if (_runtime) {\n var _runtime$default2;\n\n return _runtime.TokUI || ((_runtime$default2 = _runtime.default) === null || _runtime$default2 === void 0 ? void 0 : _runtime$default2.TokUI) || _runtime.default || _runtime;\n }\n }\n } catch (e) {// ignore and continue to package entry fallback\n }\n\n try {\n if (true) {\n var _runtime2 = __webpack_require__(/*! @jboltai/tokui */ \"./node_modules/@jboltai/tokui/dist/tokui.mjs\");\n\n if (_runtime2) {\n var _runtime2$default;\n\n return _runtime2.TokUI || ((_runtime2$default = _runtime2.default) === null || _runtime2$default === void 0 ? void 0 : _runtime2$default.TokUI) || _runtime2.default || _runtime2;\n }\n }\n } catch (e) {// ignore and leave unresolved\n }\n\n return null;\n};\n\nvar md = new _markdownIt.default({\n breaks: true,\n html: false,\n linkify: true,\n typographer: true\n});\nmd.enable('table');\nvar _default2 = {\n name: 'ChatDetail',\n props: {\n isMobile: {\n type: Boolean,\n default: false\n },\n activeSessionId: {\n type: String,\n default: ''\n },\n currentAgent: {\n type: String,\n default: ''\n },\n agentInfo: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n currentAgentDesc: {\n type: String,\n default: ''\n },\n showSidebar: {\n type: Boolean,\n default: false\n },\n showH5List: {\n type: Boolean,\n default: false\n },\n showAgentSelect: {\n type: Boolean,\n default: false\n },\n agentList: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n messages: [],\n inputText: '',\n sending: false,\n waitTimer: null,\n waitSeconds: 0,\n canceling: false,\n msgPage: 1,\n msgMaxPage: 1,\n msgTotal: 0,\n eventSource: null,\n showToolInfo: false,\n showDownBtn: false,\n lastScrollTop: 0,\n scrollTimer: null,\n contentCache: {},\n loadingSessionMsg: false,\n greeting: '',\n _scrollTimer: null,\n _userScrolledUp: false,\n voiceMode: false,\n isRecording: false,\n recordDuration: 0,\n recordingTimer: null,\n audioContext: null,\n audioStream: null,\n audioProcessor: null,\n audioChunks: [],\n audioSampleRate: 16000,\n isCancelSwipe: false,\n recordStartY: 0,\n _pendingSendText: null\n };\n },\n computed: {\n waitClass: function waitClass() {\n if (this.waitSeconds > 15) return 'wait-15';\n if (this.waitSeconds > 10) return 'wait-10';\n if (this.waitSeconds > 5) return 'wait-5';\n return '';\n },\n currentAgentName: function currentAgentName() {\n var _this = this;\n\n if (!this.currentAgent) return '';\n var a = this.agentList.find(function (x) {\n return x.agentCode === _this.currentAgent;\n });\n return a ? a.agentName || a.agentCode : this.currentAgent;\n }\n },\n watch: {\n contentCache: {\n handler: function handler(val) {// 保持响应性\n },\n immediate: true\n },\n activeSessionId: function activeSessionId(val) {\n var _this2 = this;\n\n if (val && this._pendingSendText) {\n var text = this._pendingSendText;\n this._pendingSendText = null;\n this.$nextTick(function () {\n return _this2._sendMessage(text);\n });\n }\n },\n messages: {\n handler: function handler() {\n var _this3 = this;\n\n this.$nextTick(function () {\n return _this3._renderTokuiMessages();\n });\n },\n deep: true\n }\n },\n mounted: function mounted() {\n var _this4 = this;\n\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', this.onViewportResize, {\n passive: true\n });\n }\n\n this.$nextTick(function () {\n _this4._renderTokuiMessages();\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (window.visualViewport) {\n window.visualViewport.removeEventListener('resize', this.onViewportResize);\n }\n\n this.releaseAudio();\n this.contentCache = {};\n clearTimeout(this._scrollTimer);\n\n if (this.eventSource) {\n this.eventSource.onerror = null;\n this.eventSource.close();\n this.eventSource = null;\n }\n\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n\n if (this._typeTimer) {\n clearInterval(this._typeTimer);\n this._typeTimer = null;\n }\n },\n methods: {\n getInitial: function getInitial(name) {\n if (!name) return '?';\n return name.charAt(0);\n },\n formatTime: function formatTime(t) {\n if (!t) return '';\n var d = new Date(t.replace(' ', 'T'));\n var now = new Date();\n var diff = (now - d) / 1000;\n if (diff < 60) return '刚刚';\n if (diff < 3600) return Math.floor(diff / 60) + '分钟前';\n if (diff < 86400) return Math.floor(diff / 3600) + '小时前';\n return d.getMonth() + 1 + '/' + d.getDate();\n },\n escapeHtml: function escapeHtml(text) {\n if (!text) return '';\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n },\n renderMarkdown: function renderMarkdown(text) {\n if (!text) return '';\n\n try {\n return md.render(text);\n } catch (err) {\n return this.escapeHtml(text);\n }\n },\n renderStreaming: function renderStreaming(text, msgKey) {\n if (!text) return '';\n var cache = this.contentCache[msgKey];\n var lines = text.split('\\n');\n var lastLineIdx = lines.length - 1;\n\n if (!cache) {\n try {\n var html = md.render(text);\n this.$set(this.contentCache, msgKey, {\n renderedLines: lastLineIdx,\n html: html,\n fullText: text\n });\n return html;\n } catch (_unused) {\n return this.escapeHtml(text);\n }\n }\n\n if (text === cache.fullText) return cache.html;\n cache.fullText = text; // 行数没变,仅末尾追加字符,直接拼接尾行\n\n if (lastLineIdx === cache.renderedLines) {\n return cache.html + this.escapeHtml(lines[lastLineIdx]);\n } // 场景1:行数变少/文本回退截断,全量重渲染\n\n\n if (lastLineIdx < cache.renderedLines) {\n try {\n var fullLines = lines.slice(0, lastLineIdx);\n var newBaseHtml = '';\n\n if (fullLines.length > 0) {\n newBaseHtml = md.render(fullLines.join('\\n'));\n }\n\n cache.html = newBaseHtml;\n cache.renderedLines = lastLineIdx;\n\n var _lastLine = this.escapeHtml(lines[lastLineIdx]);\n\n return cache.html + (_lastLine || '');\n } catch (_unused2) {\n return this.escapeHtml(text);\n }\n } // 场景2:新增完整行\n\n\n if (cache.renderedLines < lastLineIdx) {\n var allFullLines = lines.slice(0, lastLineIdx);\n var _newBaseHtml = '';\n\n if (allFullLines.length > 0) {\n _newBaseHtml = md.render(allFullLines.join('\\n'));\n }\n\n cache.html = _newBaseHtml;\n cache.renderedLines = lastLineIdx;\n }\n\n var lastLine = this.escapeHtml(lines[lastLineIdx]);\n cache.renderedLines = lastLineIdx;\n return cache.html + (lastLine || '');\n },\n getChatAvatarStyle: function getChatAvatarStyle(agent, avatar) {\n if (avatar) {\n return {\n backgroundImage: \"url(\".concat(avatar, \")\"),\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n }\n\n var _agent = this.agentList.find(function (x) {\n return x.agentCode === agent;\n });\n\n if (_agent && _agent.avatar) {\n return {\n backgroundImage: \"url(\".concat(_agent.avatar, \")\"),\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat'\n };\n } // 没有网络图片时,根据智能体在 agentList 中的索引位置决定颜色\n\n\n var index = this.agentList.findIndex(function (item) {\n return item.agentCode === agent;\n });\n\n if (index !== -1) {\n var colorIndex = index % 4 + 1;\n return {\n background: this.getGradientByColorIndex(colorIndex)\n };\n }\n\n return {\n background: 'linear-gradient(135deg, #1677ff, #4096ff)'\n };\n },\n getGradientByColorIndex: function getGradientByColorIndex(index) {\n var gradients = {\n 1: 'linear-gradient(135deg, #1677ff, #4096ff)',\n 2: 'linear-gradient(135deg, #52c41a, #73d13d)',\n 3: 'linear-gradient(135deg, #fa8c16, #ffa940)',\n 4: 'linear-gradient(135deg, #722ed1, #b37feb)'\n };\n return gradients[index] || gradients[1];\n },\n sendQuickMsg: function sendQuickMsg(message) {\n if (message) {\n this.inputText = message;\n this.sendMessage();\n }\n },\n formatMixText: function formatMixText(str) {\n if (!str) return '';\n var res = str.replace(/([a-zA-Z0-9])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z0-9])/g, '$1 $2');\n res = res.replace(/([a-z])([A-Z])/g, '$1 $2');\n return res;\n },\n // 检测是否滚动到底部,控制向下箭头显示隐藏\n checkScrollBottom: function checkScrollBottom() {\n var forceShowWhenNotBottom = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var el = this.$refs.messagesRef;\n\n if (!el) {\n this.showDownBtn = false;\n return;\n }\n\n var scrollHeight = el.scrollHeight,\n scrollTop = el.scrollTop,\n clientHeight = el.clientHeight;\n var remain = scrollHeight - scrollTop - clientHeight;\n var atBottom = remain <= 80; // 检测用户是否主动向上滚动(远离底部)\n\n if (remain > 80 && scrollTop < this.lastScrollTop) {\n this._userScrolledUp = true;\n }\n\n if (atBottom) {\n this._userScrolledUp = false;\n this.showDownBtn = false;\n } else if (this._userScrolledUp) {\n // 用户已主动上滚,保持显示\"到底部\"按钮,不自动回滚\n this.showDownBtn = true;\n } else if (this.sending && scrollTop >= this.lastScrollTop && !forceShowWhenNotBottom) {\n this.showDownBtn = false;\n } else {\n this.showDownBtn = true;\n }\n\n this.lastScrollTop = scrollTop;\n this.$emit('scroll-bottom-check', {\n showDownBtn: this.showDownBtn,\n lastScrollTop: this.lastScrollTop\n });\n },\n // H5 输入框获取焦点 - 滚动到底部让键盘不遮挡\n onInputFocus: function onInputFocus() {\n if (!this.isMobile) return;\n setTimeout(function () {\n window.scrollTo(0, document.body.scrollHeight);\n }, 300);\n },\n // visualViewport 变化时(如键盘弹出)调整滚动位置\n onViewportResize: function onViewportResize() {\n if (!this.isMobile) return;\n var activeEl = document.activeElement;\n\n if (activeEl && (activeEl.tagName === 'TEXTAREA' || activeEl.tagName === 'INPUT')) {\n window.scrollTo(0, document.body.scrollHeight);\n }\n },\n autoResizeTextarea: function autoResizeTextarea() {\n var _this5 = this;\n\n var ta = this.$refs.taRef;\n if (!ta) return;\n var isMobile = this.isMobile;\n var baseH = isMobile ? 36 : 100;\n var maxH = isMobile ? 100 : 180;\n ta.style.height = \"\".concat(baseH, \"px\");\n var realH = ta.scrollHeight;\n\n if (realH > baseH) {\n ta.style.height = \"\".concat(Math.min(realH, maxH), \"px\");\n }\n\n this.$nextTick(function () {\n _this5.checkScrollBottom(true);\n });\n },\n // Ctrl+Enter换行\n newLine: function newLine(e) {\n var _this6 = this;\n\n e.preventDefault();\n var ta = this.$refs.taRef;\n var start = ta.selectionStart;\n var end = ta.selectionEnd;\n this.inputText = this.inputText.slice(0, start) + '\\n' + this.inputText.slice(end);\n this.$nextTick(function () {\n ta.selectionStart = ta.selectionEnd = start + 1;\n\n _this6.autoResizeTextarea();\n });\n },\n toggleVoiceMode: function toggleVoiceMode() {\n var _this7 = this;\n\n if (this.voiceMode) {\n this.voiceMode = false;\n this.releaseAudio();\n return;\n } // 进入语音模式前提前请求麦克风权限,避免触摸时异步弹窗导致 touchend 丢失\n\n\n this.ensureAudioReady().then(function (ready) {\n if (ready) {\n _this7.voiceMode = true;\n } else {\n _this7.voiceMode = false;\n }\n });\n },\n // 确保音频设备已就绪\n ensureAudioReady: function ensureAudioReady() {\n var _this8 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var stream, audioContext, source, processor;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(_this8.audioContext && _this8.audioStream)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\", true);\n\n case 2:\n if (!(!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia)) {\n _context.next = 5;\n break;\n }\n\n alert('当前环境不支持麦克风访问');\n return _context.abrupt(\"return\", false);\n\n case 5:\n _context.prev = 5;\n _context.next = 8;\n return navigator.mediaDevices.getUserMedia({\n audio: true\n });\n\n case 8:\n stream = _context.sent;\n _this8.audioStream = stream;\n audioContext = new (window.AudioContext || window.webkitAudioContext)(); // iOS 上 AudioContext 默认 suspended,需要手动 resume\n\n if (!(audioContext.state === 'suspended')) {\n _context.next = 14;\n break;\n }\n\n _context.next = 14;\n return audioContext.resume();\n\n case 14:\n _this8.audioContext = audioContext; // 采集实际采样率(iOS 会忽略 sampleRate 参数,使用硬件采样率)\n\n _this8.audioSampleRate = audioContext.sampleRate || 16000;\n source = audioContext.createMediaStreamSource(stream); // 保存 source 引用到实例,防止 iOS Safari 垃圾回收导致音频处理中断\n\n _this8.audioSource = source;\n processor = audioContext.createScriptProcessor(4096, 1, 1);\n _this8.audioProcessor = processor; // iOS 上 onaudioprocess 可能先于 isRecording=true 触发\n // 因此不依赖 isRecording 过滤,由外部控制 audioChunks 的清零时机\n\n processor.onaudioprocess = function (e) {\n var inputData = e.inputBuffer.getChannelData(0);\n\n _this8.audioChunks.push(new Float32Array(inputData));\n };\n\n source.connect(processor);\n processor.connect(audioContext.destination);\n return _context.abrupt(\"return\", true);\n\n case 26:\n _context.prev = 26;\n _context.t0 = _context[\"catch\"](5);\n console.error('麦克风访问失败:', _context.t0);\n alert('麦克风权限被拒绝');\n return _context.abrupt(\"return\", false);\n\n case 31:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[5, 26]]);\n }))();\n },\n // H5语音录制 - 触摸开始\n onRecordTouchStart: function onRecordTouchStart(e) {\n var _this9 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var ready;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!_this9.sending) {\n _context2.next = 2;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 2:\n _context2.next = 4;\n return _this9.ensureAudioReady();\n\n case 4:\n ready = _context2.sent;\n\n if (ready) {\n _context2.next = 7;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 7:\n _this9.isCancelSwipe = false;\n _this9.recordStartY = e.touches[0].clientY;\n _this9.recordDuration = 0;\n _this9.audioChunks = [];\n _this9.isRecording = true;\n _this9.recordingTimer = setInterval(function () {\n _this9.recordDuration++;\n\n if (_this9.recordDuration >= 60) {\n _this9.onRecordTouchEnd();\n }\n }, 1000);\n\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n // H5语音录制 - 触摸移动\n onRecordTouchMove: function onRecordTouchMove(e) {\n if (!this.isRecording) return;\n var touch = e.touches[0];\n var moveY = touch.clientY;\n var cancelThreshold = 60;\n this.isCancelSwipe = this.recordStartY - moveY > cancelThreshold;\n },\n // H5语音录制 - 触摸结束\n onRecordTouchEnd: function onRecordTouchEnd() {\n if (!this.isRecording) return;\n this.isRecording = false;\n\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n\n this.stopAudioCapture(!this.isCancelSwipe);\n },\n // 停止音频采集并输出 WAV\n stopAudioCapture: function stopAudioCapture(shouldSend) {\n this.isRecording = false;\n\n if (shouldSend && this.audioChunks.length > 0) {\n var wavBlob = this.encodePCMToWav(this.audioChunks, this.audioSampleRate || 16000);\n this.sendAudioBlob(wavBlob);\n }\n\n this.audioChunks = [];\n },\n // 取消录音\n cancelRecording: function cancelRecording() {\n this.isRecording = false;\n\n if (this.recordingTimer) {\n clearInterval(this.recordingTimer);\n this.recordingTimer = null;\n }\n\n this.recordDuration = 0;\n this.isCancelSwipe = false;\n this.audioChunks = [];\n },\n // 释放音频资源\n releaseAudio: function releaseAudio() {\n this.cancelRecording();\n\n if (this.audioProcessor) {\n this.audioProcessor.disconnect();\n this.audioProcessor = null;\n }\n\n if (this.audioSource) {\n this.audioSource.disconnect();\n this.audioSource = null;\n }\n\n if (this.audioContext) {\n this.audioContext.close().catch(function () {});\n this.audioContext = null;\n }\n\n if (this.audioStream) {\n this.audioStream.getTracks().forEach(function (t) {\n return t.stop();\n });\n this.audioStream = null;\n }\n },\n // 将 Float32 PCM 数据编码为 WAV Blob\n encodePCMToWav: function encodePCMToWav(chunks, sampleRate) {\n var totalLength = 0;\n\n var _iterator = (0, _createForOfIteratorHelper2.default)(chunks),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var chunk = _step.value;\n totalLength += chunk.length;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var pcmData = new Int16Array(totalLength);\n var offset = 0;\n\n var _iterator2 = (0, _createForOfIteratorHelper2.default)(chunks),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _chunk = _step2.value;\n\n for (var i = 0; i < _chunk.length; i++) {\n var s = Math.max(-1, Math.min(1, _chunk[i]));\n pcmData[offset++] = s < 0 ? s * 0x8000 : s * 0x7FFF;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n var numChannels = 1;\n var bitsPerSample = 16;\n var byteRate = sampleRate * numChannels * bitsPerSample / 8;\n var blockAlign = numChannels * bitsPerSample / 8;\n var dataSize = pcmData.length * (bitsPerSample / 8);\n var headerSize = 44;\n var totalSize = headerSize + dataSize;\n var buffer = new ArrayBuffer(totalSize);\n var view = new DataView(buffer);\n\n this._wavWriteString(view, 0, 'RIFF');\n\n view.setUint32(4, totalSize - 8, true);\n\n this._wavWriteString(view, 8, 'WAVE');\n\n this._wavWriteString(view, 12, 'fmt ');\n\n view.setUint32(16, 16, true);\n view.setUint16(20, 1, true);\n view.setUint16(22, numChannels, true);\n view.setUint32(24, sampleRate, true);\n view.setUint32(28, byteRate, true);\n view.setUint16(32, blockAlign, true);\n view.setUint16(34, bitsPerSample, true);\n\n this._wavWriteString(view, 36, 'data');\n\n view.setUint32(40, dataSize, true);\n var pcmView = new Int16Array(buffer, headerSize, pcmData.length);\n pcmView.set(pcmData);\n return new Blob([buffer], {\n type: 'audio/wav'\n });\n },\n _wavWriteString: function _wavWriteString(view, offset, str) {\n for (var i = 0; i < str.length; i++) {\n view.setUint8(offset + i, str.charCodeAt(i));\n }\n },\n // 发送音频\n sendAudioBlob: function sendAudioBlob(blob) {\n var appSeqId = _index2.default.getAppSeqId();\n\n var name = appSeqId + '.wav';\n var file = new File([blob], name, {\n type: 'audio/wav'\n });\n this.sendAudioMessage(file);\n },\n sendAudioMessage: function sendAudioMessage(file) {\n var _this10 = this;\n\n var sttKey = 'stt_' + Date.now();\n var sttMsg = {\n role: 'user',\n content: '转化中...',\n _sttStatus: 'pending',\n _sttKey: sttKey,\n createTime: new Date().toISOString(),\n _key: sttKey\n };\n this.messages.push(sttMsg);\n this.scrollToBottom(true);\n (0, _index.fileUploadToObs)({\n _file: file,\n appSeqId: file.name\n }).then(function (resp) {\n if (resp.CommonMsg.Status === 200) {\n return _apiObs.default.aliAudioToText({\n url: resp.obs_upload_data.obsUrl\n }).then(function (result) {\n if (result.code === '200' && result.data) {\n var idx = _this10.messages.findIndex(function (m) {\n return m._sttKey === sttKey;\n });\n\n if (idx !== -1) {\n _this10.messages.splice(idx, 1);\n }\n\n _this10.sendQuickMsg(result.data);\n } else {\n throw new Error(result.msg || '语音转文字失败');\n }\n });\n } else {\n throw new Error(resp.CommonMsg.Message || '文件上传失败');\n }\n }).catch(function (err) {\n console.error('语音转文字失败:', err);\n\n var idx = _this10.messages.findIndex(function (m) {\n return m._sttKey === sttKey;\n });\n\n if (idx !== -1) {\n _this10.$set(_this10.messages, idx, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _this10.messages[idx]), {}, {\n _sttStatus: 'error',\n content: '语音转文字失败'\n }));\n }\n\n _this10.$message.error('语音转文字失败');\n });\n this.$message.success(\"\\u5F55\\u97F3\\u5B8C\\u6210 (\".concat(this.recordDuration, \"s)\"));\n },\n clearWaitTimer: function clearWaitTimer() {\n if (this.waitTimer) {\n clearInterval(this.waitTimer);\n this.waitTimer = null;\n }\n },\n loadMoreMessages: function loadMoreMessages() {\n var _this11 = this;\n\n var nextPage = this.msgPage + 1;\n var maxPage = Math.ceil(this.msgTotal / 10);\n\n if (nextPage > maxPage) {\n this.loadingMore = false;\n return;\n }\n\n (0, _apichat.getSessionMessages)(this.activeSessionId, nextPage, 10).then(function (res) {\n var list = Array.isArray(res) ? res : res.list || [];\n _this11.msgPage = nextPage;\n var asAsc = (list || []).slice().reverse();\n var prepend = asAsc.map(function (m) {\n return {\n role: m.role,\n content: m.content || '',\n thinking: m.thinking || '',\n toolCalls: [],\n agentName: '',\n createTime: m.createTime || null,\n _key: m.createTime ? 'msg_' + m.createTime : 'msg_' + Date.now() + '_' + Math.random(),\n // 历史消息中如果包含 ```tokui 标记或以 TokUI 标签开头,自动启用 TokUI 渲染\n _hasTokui: m.role === 'assistant' && m.content && (/```tokui/.test(m.content) || /^\\s*\\[(card|row|list|table|callout|desc|dv|ft)\\b/.test(m.content.trim()))\n };\n });\n var container = _this11.$refs.messagesRef;\n var oldScrollHeight = container ? container.scrollHeight : 0;\n var oldScrollTop = container ? container.scrollTop : 0;\n _this11.messages = [].concat((0, _toConsumableArray2.default)(prepend), (0, _toConsumableArray2.default)(_this11.messages));\n\n _this11.$nextTick(function () {\n if (container) {\n container.scrollTop = oldScrollTop + (container.scrollHeight - oldScrollHeight);\n }\n\n _this11.loadingMore = false;\n });\n }).catch(function () {\n _this11.loadingMore = false;\n });\n },\n onScrollMessages: function onScrollMessages() {\n var container = this.$refs.messagesRef;\n if (!container || this.loadingMore) return;\n var isAtBottom = container.scrollTop + container.clientHeight >= container.scrollHeight - 100;\n this.checkScrollBottom();\n if (isAtBottom) return;\n\n if (container.scrollTop < 50 && this.msgPage < Math.ceil(this.msgTotal / 10)) {\n this.loadingMore = true;\n this.loadMoreMessages();\n }\n },\n // 检测内容是否为纯 TokUI DSL(无 ```tokui 围栏,直接以 TokUI 标签开头)\n _isPureTokuiDsl: function _isPureTokuiDsl(text) {\n if (!text) return false;\n return /^\\s*\\[(card|row|list|table|callout|desc|dv|ft)\\b/.test(text.trim());\n },\n // 提取 ```tokui 代码块中的 DSL,返回混合内容片段数组\n // 每项: { type: 'md' | 'dsl', content: string }\n _extractTokuiDsl: function _extractTokuiDsl(text) {\n if (!text) return [{\n type: 'md',\n content: ''\n }]; // 纯 TokUI DSL(无 ```tokui 围栏):整个内容作为 DSL 处理\n\n if (this._isPureTokuiDsl(text)) {\n return [{\n type: 'dsl',\n content: text.trim()\n }];\n }\n\n var parts = [];\n var re = /```tokui\\s*\\n?([\\s\\S]*?)```/g;\n var lastIndex = 0;\n var match;\n\n while ((match = re.exec(text)) !== null) {\n if (match.index > lastIndex) {\n parts.push({\n type: 'md',\n content: text.substring(lastIndex, match.index)\n });\n }\n\n var dsl = match[1].trim();\n if (dsl) parts.push({\n type: 'dsl',\n content: dsl\n });\n lastIndex = match.index + match[0].length;\n }\n\n if (lastIndex < text.length) {\n parts.push({\n type: 'md',\n content: text.substring(lastIndex)\n });\n }\n\n return parts;\n },\n // 全文本增量流式 feed TokUI(参考项目方式)\n _streamTokui: function _streamTokui(msg, fullText) {\n if (!msg._tokuiStream) return; // 动态判断当前内容是否为纯 TokUI DSL\n\n var isPureDsl = this._isPureTokuiDsl(fullText); // 如果内容模式发生了变化,重置增量追踪\n\n\n if (msg._tokuiPureDsl !== isPureDsl) {\n msg._tokuiPureDsl = isPureDsl;\n msg._prevMdLen = 0;\n msg._prevDslLen = 0;\n msg._dslBuffer = '';\n }\n\n var dsl = '';\n var md = '';\n\n if (isPureDsl) {\n // 纯 DSL:整个内容为 DSL\n dsl = fullText;\n } else {\n // 混合内容:从 ```tokui 围栏中提取 DSL\n var dslParts = [];\n var re = /```tokui\\s*\\n?([\\s\\S]*?)```/g;\n var match;\n\n while ((match = re.exec(fullText)) !== null) {\n var inner = match[1].trim();\n if (inner) dslParts.push(inner);\n } // 处理末尾未闭合的 ```tokui(流式场景)\n\n\n var lastIdx = re.lastIndex;\n var remaining = fullText.substring(lastIdx);\n var openIdx = remaining.lastIndexOf('```tokui');\n\n if (openIdx >= 0) {\n var dslPart = remaining.substring(openIdx + 8);\n if (dslPart.charCodeAt(0) === 10) dslPart = dslPart.substring(1);\n if (dslPart) dslParts.push(dslPart);\n }\n\n dsl = dslParts.join('\\n'); // 移除所有代码围栏得到纯 Markdown\n\n md = fullText.replace(/```[\\s\\S]*?(```|$)/g, '');\n } // Feed Markdown 增量\n\n\n if (md) {\n var prevMdLen = msg._prevMdLen || 0;\n\n if (md.length > prevMdLen) {\n var newMd = md.substring(prevMdLen);\n msg._prevMdLen = md.length;\n\n if (!msg._mdTagOpen) {\n msg._tokuiStream.feed('[md]\\n');\n\n msg._mdTagOpen = true;\n }\n\n msg._tokuiStream.feed(newMd);\n }\n } // Feed DSL 增量\n\n\n if (dsl) {\n var prevDslLen = msg._prevDslLen || 0;\n\n if (dsl.length > prevDslLen) {\n var newDsl = dsl.substring(prevDslLen);\n msg._prevDslLen = dsl.length;\n\n if (msg._mdTagOpen) {\n msg._tokuiStream.feed('[/md]\\n');\n\n msg._mdTagOpen = false;\n } // 逐行 feed DSL,缓冲未完成行\n\n\n msg._dslBuffer = (msg._dslBuffer || '') + newDsl;\n\n var lines = msg._dslBuffer.split('\\n');\n\n for (var i = 0; i < lines.length - 1; i++) {\n msg._tokuiStream.feed(lines[i] + '\\n');\n }\n\n msg._dslBuffer = lines[lines.length - 1];\n }\n }\n },\n // 渲染历史消息中的 TokUI 内容(仅在 TokUI 可用时执行)\n _renderTokuiMessages: function _renderTokuiMessages() {\n var _this12 = this;\n\n var TokUIConstructor = resolveTokUIConstructor();\n if (!TokUIConstructor) return;\n var container = this.$refs.messagesRef;\n if (!container) return;\n var allRows = container.querySelectorAll('.msg-row');\n allRows.forEach(function (row, idx) {\n var msg = _this12.messages[idx];\n if (!msg || !msg._hasTokui) return; // 已通过流式渲染完成的消息,跳过(防止 endStream 后 watcher 触发重复渲染)\n\n if (msg._tokuiRendered) return;\n if (msg.loading || !msg.content || msg._tokuiStream) return;\n var tokuiDiv = row.querySelector('.tokui-stream');\n if (!tokuiDiv) return; // 清除旧内容和状态(DOM 复用 + 流式残留)\n\n tokuiDiv.innerHTML = '';\n tokuiDiv.classList.remove('tokui-streaming');\n tokuiDiv.style.display = 'block';\n\n try {\n var ui = new TokUIConstructor({\n container: tokuiDiv\n }); // ── 与 _streamTokui 完全一致的提取逻辑(含未闭合围栏处理) ──\n\n var text = msg.content;\n\n var isPureDsl = _this12._isPureTokuiDsl(text);\n\n var dsl = '';\n var md = '';\n\n if (isPureDsl) {\n dsl = text;\n } else {\n var dslParts = [];\n var re = /```tokui\\s*\\n?([\\s\\S]*?)```/g;\n var match;\n\n while ((match = re.exec(text)) !== null) {\n var inner = match[1].trim();\n if (inner) dslParts.push(inner);\n } // 处理未闭合的 ```tokui(与流式一致)\n\n\n var lastIdx = re.lastIndex;\n var remaining = text.substring(lastIdx);\n var openIdx = remaining.lastIndexOf('```tokui');\n\n if (openIdx >= 0) {\n var dslPart = remaining.substring(openIdx + 8);\n if (dslPart.charCodeAt(0) === 10) dslPart = dslPart.substring(1);\n if (dslPart) dslParts.push(dslPart);\n }\n\n dsl = dslParts.join('\\n');\n md = text.replace(/```[\\s\\S]*?(```|$)/g, '');\n } // ── 与流式完全一致的 feed 顺序和方式 ──\n\n\n ui.startStream(); // Feed Markdown\n\n if (md && md.trim()) {\n ui.feed('[md]\\n');\n ui.feed(md);\n ui.feed('[/md]\\n');\n } // Feed DSL 逐行(与流式 _streamTokui 完全一致)\n\n\n if (dsl) {\n var dslLines = dsl.split('\\n');\n\n for (var i = 0; i < dslLines.length; i++) {\n ui.feed(dslLines[i] + '\\n');\n }\n }\n\n ui.endStream();\n tokuiDiv._tokuiRendered = true;\n\n _this12.$set(msg, '_tokuiRendered', true);\n } catch (e) {\n console.error('[TokUI] render error:', e);\n tokuiDiv.textContent = msg.content;\n }\n });\n },\n sendMessage: function sendMessage() {\n var _this13 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n var text;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n text = _this13.inputText.trim();\n\n if (!(!text || _this13.sending)) {\n _context3.next = 3;\n break;\n }\n\n return _context3.abrupt(\"return\");\n\n case 3:\n if (!(text.length > 300)) {\n _context3.next = 6;\n break;\n }\n\n _this13.$message({\n message: '消息内容不能超过300字',\n type: 'warning',\n duration: 2000\n });\n\n return _context3.abrupt(\"return\");\n\n case 6:\n if (_this13.activeSessionId) {\n _context3.next = 10;\n break;\n }\n\n _this13.$emit('start-session');\n\n _this13._pendingSendText = text;\n return _context3.abrupt(\"return\");\n\n case 10:\n _this13._sendMessage(text);\n\n case 11:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n _sendMessage: function _sendMessage(text) {\n var _this14 = this;\n\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {\n var ta, isMobile, baseH, agentName, msgIdx, thinkingBuffer, finalContent, answerBuffer, thinkDisplayed, typeTimer, streamDone, url, es;\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _this14.inputText = '';\n ta = _this14.$refs.taRef;\n isMobile = _this14.isMobile;\n baseH = isMobile ? 36 : 100;\n\n if (ta) {\n ta.style.height = baseH + 'px';\n }\n\n _this14.showDownBtn = false;\n\n _this14.messages.push({\n role: 'user',\n content: text,\n createTime: new Date().toISOString(),\n _key: 'user_' + Date.now() + '_' + Math.random()\n });\n\n agentName = _this14.currentAgentName;\n msgIdx = _this14.messages.push({\n role: \"assistant\",\n content: \"\",\n thinking: \"\",\n loading: true,\n toolCalls: [],\n agentName: agentName,\n createTime: new Date().toISOString(),\n _key: 'asst_' + Date.now() + '_' + Math.random()\n }) - 1;\n\n _this14.scrollToBottom(true);\n\n _this14.sending = true;\n _this14.waitSeconds = 0;\n if (_this14.waitTimer) clearInterval(_this14.waitTimer);\n _this14.waitTimer = setInterval(function () {\n _this14.waitSeconds++;\n }, 1000);\n thinkingBuffer = '';\n finalContent = '';\n answerBuffer = '';\n thinkDisplayed = 0;\n typeTimer = null;\n streamDone = false;\n typeTimer = setInterval(function () {\n if (!_this14.messages[msgIdx]) return; // Phase 1: 逐字展示思考内容\n\n if (thinkDisplayed < thinkingBuffer.length) {\n thinkDisplayed += 50;\n if (thinkDisplayed > thinkingBuffer.length) thinkDisplayed = thinkingBuffer.length;\n _this14.messages[msgIdx].thinking = thinkingBuffer.substring(0, thinkDisplayed);\n\n _this14.scrollToBottom();\n } // Phase 2: 渲染答案内容\n\n\n var msg = _this14.messages[msgIdx]; // TokUI 活跃期间始终用 answerBuffer(避免 finalContent 带 ```tokui 围栏导致内容跳变)\n\n var target = msg._tokuiStream ? answerBuffer : finalContent || answerBuffer;\n var prevLen = msg._tokuiPrevLen || 0;\n\n if (target.length > prevLen) {\n msg._tokuiPrevLen = target.length; // 检测内容是否包含 TokUI 标记(```tokui 围栏 或 纯 DSL 标签开头)\n\n var hasTokuiMarker = msg._tokuiStream || _this14._isPureTokuiDsl(target) || target.indexOf('```tokui') !== -1;\n\n if (hasTokuiMarker && !msg._hasTokuiFailed) {\n // ── TokUI 路径 ──\n if (!msg._tokuiStream) {\n var container = _this14.$refs.messagesRef;\n\n if (container) {\n var rows = container.querySelectorAll('.msg-row.assistant');\n var lastRow = rows[rows.length - 1];\n var tokuiDiv = lastRow === null || lastRow === void 0 ? void 0 : lastRow.querySelector('.tokui-stream');\n var TokUIConstructor = resolveTokUIConstructor();\n\n if (tokuiDiv && TokUIConstructor) {\n try {\n msg._tokuiDiv = tokuiDiv;\n msg._tokuiStream = new TokUIConstructor({\n container: tokuiDiv\n });\n\n msg._tokuiStream.startStream();\n\n tokuiDiv.classList.add('tokui-streaming');\n msg._tokuiPureDsl = _this14._isPureTokuiDsl(target);\n msg._mdTagOpen = false;\n msg._prevMdLen = 0;\n msg._prevDslLen = 0;\n msg._dslBuffer = '';\n\n _this14.$set(msg, '_hasTokui', true);\n } catch (e) {\n console.error('[TokUI] init error:', e);\n msg._hasTokuiFailed = true;\n msg._tokuiStream = null;\n }\n } else {\n msg._hasTokuiFailed = true;\n }\n }\n }\n\n if (msg._tokuiStream) {\n _this14._streamTokui(msg, target);\n } else if (msg._hasTokuiFailed) {\n // TokUI 初始化失败,回退到普通渲染\n msg.content = target;\n }\n } else {\n // ── 普通渲染路径(保持原有逻辑不变)──\n msg.content = target;\n }\n\n _this14.scrollToBottom();\n\n return;\n } // Phase 3: 流结束 → 收尾\n\n\n if (streamDone) {\n clearInterval(typeTimer);\n typeTimer = null;\n var key = _this14.messages[msgIdx]._key;\n\n if (key) {\n _this14.$delete(_this14.contentCache, key);\n\n _this14.$delete(_this14.contentCache, key + '_t');\n }\n\n if (msg._tokuiStream) {\n // TokUI 路径:关闭 [md] 标签、刷新 DSL 缓冲区、结束流\n try {\n if (msg._mdTagOpen) {\n msg._tokuiStream.feed('[/md]\\n');\n\n msg._mdTagOpen = false;\n }\n\n if (msg._dslBuffer) {\n msg._tokuiStream.feed(msg._dslBuffer + '\\n');\n\n msg._dslBuffer = '';\n }\n\n msg._tokuiStream.endStream();\n } catch (e) {\n console.error('[TokUI] endStream error:', e);\n } // 标记已渲染,防止 _renderTokuiMessages 重复创建实例\n\n\n if (msg._tokuiDiv) {\n msg._tokuiDiv._tokuiRendered = true;\n }\n\n msg._tokuiStream = null; // 使用 $set 确保响应式\n\n _this14.$set(_this14.messages[msgIdx], '_tokuiRendered', true);\n }\n\n _this14.messages[msgIdx].content = finalContent;\n _this14.messages[msgIdx].thinking = thinkingBuffer;\n _this14.messages[msgIdx].loading = false;\n _this14.sending = false;\n\n _this14.clearWaitTimer();\n\n _this14.scrollToBottom();\n\n _this14.$emit('session-refresh');\n\n _this14.$emit('message-sent');\n }\n }, 30);\n url = (0, _apichat.createStreamUrl)(_this14.activeSessionId, text);\n\n if (_this14.eventSource) {\n _this14.eventSource.close();\n }\n\n _this14.eventSource = new EventSource(url);\n es = _this14.eventSource;\n es.addEventListener('reasoning', function (e) {\n if (e.data) {\n var chunk = e.data;\n var cleanChunk = chunk.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2').replace(/\\s+([:,.!?])/g, '$1').replace(/([:,.!?])\\s+/g, '$1 ');\n cleanChunk = cleanChunk.replace(/\\s+/g, ' ');\n var lastChar = thinkingBuffer.slice(-1);\n var firstChar = cleanChunk.slice(0, 1);\n\n var isLetter = function isLetter(c) {\n return /[a-zA-Z]/.test(c);\n };\n\n if (isLetter(lastChar) && isLetter(firstChar)) {\n thinkingBuffer += ' ' + cleanChunk;\n } else {\n thinkingBuffer += cleanChunk;\n }\n }\n });\n es.addEventListener('reasoning_result', function (e) {\n if (e.data) {\n thinkingBuffer = e.data;\n }\n });\n es.addEventListener('answer', function (e) {\n if (e.data) {\n answerBuffer += e.data.replace(/([a-zA-Z]+)([\\u4e00-\\u9fff])/g, '$1 $2').replace(/([\\u4e00-\\u9fff])([a-zA-Z]+)/g, '$1 $2').replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2').replace(/([a-zA-Z])(\\d)/g, '$1 $2').replace(/(\\d)([a-zA-Z])/g, '$1 $2');\n }\n });\n es.addEventListener('tool_result', function (e) {\n if (e.data && _this14.messages[msgIdx]) {\n if (!_this14.messages[msgIdx].toolCalls) _this14.messages[msgIdx].toolCalls = [];\n\n _this14.messages[msgIdx].toolCalls.push(e.data);\n\n _this14.scrollToBottom();\n }\n });\n es.addEventListener('agent_result', function (e) {\n finalContent = e.data || '';\n streamDone = true;\n es.close();\n _this14.eventSource = null;\n });\n\n es.onerror = function (err) {\n console.log('[SSE] onerror', err);\n if (thinkingBuffer.length > 0 && !streamDone) finalContent = thinkingBuffer;\n if (!streamDone) finalContent = '❌ 连接中断';\n streamDone = true;\n es.close();\n _this14.eventSource = null;\n };\n\n case 31:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n stopAgent: function stopAgent() {\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n\n if (this.activeSessionId) {\n (0, _apichat.stopStream)(this.activeSessionId).catch(function () {});\n }\n\n if (this.messages.length > 0) {\n var last = this.messages[this.messages.length - 1];\n\n if (last && last.loading) {\n last.content = last.content || last.thinking || '⏹ 已停止';\n last.loading = false;\n this.$delete(this.contentCache, last._key);\n }\n }\n\n this.sending = false;\n this.clearWaitTimer();\n },\n scrollToTop: function scrollToTop() {\n var el = this.$refs.messagesRef;\n if (el) el.scrollTop = 0;\n },\n scrollToBottom: function scrollToBottom() {\n var _this15 = this;\n\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (this.showDownBtn && !force) return;\n this.$nextTick(function () {\n var el = _this15.$refs.messagesRef;\n\n if (el) {\n el.scrollTop = el.scrollHeight;\n _this15.lastScrollTop = el.scrollTop;\n _this15.showDownBtn = false;\n _this15._userScrolledUp = false;\n }\n });\n },\n scrollToBottomOnce: function scrollToBottomOnce() {\n var _this16 = this;\n\n clearTimeout(this._scrollTimer);\n this.$nextTick(function () {\n var tryScroll = function tryScroll() {\n var el = _this16.$refs.messagesRef;\n\n if (!el) {\n _this16._scrollTimer = setTimeout(tryScroll, 50);\n return;\n }\n\n var originalScrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.scrollTop = el.scrollHeight - el.clientHeight;\n el.style.scrollBehavior = originalScrollBehavior;\n _this16.showDownBtn = false;\n _this16._userScrolledUp = false;\n };\n\n tryScroll();\n });\n },\n copyText: function copyText(content) {\n var _this17 = this;\n\n if (!content) return;\n var text = content.replace(/<[^>]+>/g, ''); // 优先使用 Clipboard API(HTTPS 环境)\n\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(text).then(function () {\n _this17.$message({\n message: '已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(function () {\n _this17._fallbackCopyText(text);\n });\n } else {\n this._fallbackCopyText(text);\n }\n },\n _fallbackCopyText: function _fallbackCopyText(text) {\n try {\n var ta = document.createElement('textarea');\n ta.value = text;\n ta.style.cssText = 'position:fixed;left:-9999px;top:0;opacity:0';\n document.body.appendChild(ta);\n ta.focus();\n ta.select();\n document.execCommand('copy');\n document.body.removeChild(ta);\n this.$message({\n message: '已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n } catch (_unused3) {\n this.$message({\n message: '复制失败',\n type: 'error',\n duration: 2000\n });\n }\n },\n copyAsImage: function copyAsImage(content) {\n var _this18 = this;\n\n if (!content) return;\n var div = document.createElement('div');\n div.className = 'copy-image-render';\n div.style.cssText = 'position:fixed;left:-9999px;top:0;width:600px;padding:20px;background:#fff;font-size:14px;line-height:1.6;color:#333;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;'; // 内联表格样式(因 Vue 作用域样式不覆盖复制用的脱离文档流 div)\n\n div.innerHTML = this.renderMarkdown(content) + '<style>table{border-collapse:collapse;width:100%;margin:6px 0;font-size:14px}' + 'th,td{border:1px solid #e8e8e8;padding:5px 8px;text-align:left}' + 'th{background:#fafafa;font-weight:600}</style>';\n document.body.appendChild(div);\n this.$message({\n message: '正在生成图片...',\n type: 'info',\n duration: 2000\n });\n (0, _html2canvas.default)(div, {\n scale: 2,\n useCORS: true,\n backgroundColor: '#ffffff'\n }).then(function (canvas) {\n var base64 = canvas.toDataURL('image/png'); // 移动端:调用原生方法保存到本地相册\n\n if (_this18.isMobile) {\n if (_this18.$hybrid && typeof _this18.$hybrid.savePic2Library === 'function') {\n _this18.$hybrid.savePic2Library(base64, function () {\n _this18.$message({\n message: '图片已保存到本地相册',\n type: 'success',\n duration: 1500\n });\n });\n } else {\n // fallback:展示图片让用户长按保存\n _this18.previewImage = base64;\n\n _this18.$message({\n message: '长按图片可保存到本地',\n type: 'info',\n duration: 3000\n });\n }\n\n return;\n } // PC端:复制到剪贴板\n\n\n var canCopyImage = typeof ClipboardItem !== 'undefined' && navigator.clipboard && typeof navigator.clipboard.write === 'function';\n\n if (!canCopyImage) {\n _this18.$message({\n message: '当前浏览器不支持复制图片',\n type: 'warning',\n duration: 3000\n });\n\n return;\n }\n\n canvas.toBlob(function (blob) {\n if (!blob) {\n _this18.$message({\n message: '生成图片失败',\n type: 'error',\n duration: 2000\n });\n\n return;\n }\n\n navigator.clipboard.write([new ClipboardItem({\n 'image/png': blob\n })]).then(function () {\n _this18.$message({\n message: '图片已复制到剪贴板',\n type: 'success',\n duration: 1500\n });\n }).catch(function () {\n _this18.$message({\n message: '复制失败,请重试',\n type: 'error',\n duration: 2000\n });\n });\n }, 'image/png');\n }).catch(function () {\n _this18.$message({\n message: '生成图片失败',\n type: 'error',\n duration: 2000\n });\n }).finally(function () {\n document.body.removeChild(div);\n });\n }\n }\n};\nexports.default = _default2;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
829
841
|
|
|
830
842
|
/***/ }),
|
|
831
843
|
|
|
@@ -909,7 +921,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
909
921
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
910
922
|
|
|
911
923
|
"use strict";
|
|
912
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"chat-main\" }, [\n _c(\"div\", { staticClass: \"chat-header\" }, [\n _c(\"div\", { staticClass: \"header-left\" }, [\n _vm.isMobile && _vm.activeSessionId\n ? _c(\n \"button\",\n {\n staticClass: \"mobile-back-btn\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"go-back-to-list\")\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M15 18l-6-6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })\n ]\n )\n ]\n )\n : _vm.isMobile\n ? _c(\n \"button\",\n {\n staticClass: \"mobile-menu-btn\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"toggle-sidebar\")\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M3 6h18M3 12h18M3 18h18\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e(),\n _vm.currentAgent && (_vm.activeSessionId || _vm.messages.length > 0)\n ? _c(\"div\", { staticClass: \"agent-info\" }, [\n _c(\"div\", { staticClass: \"chat-agent-avatar-wrapper\" }, [\n _c(\n \"div\",\n {\n staticClass: \"agent-list-avatar session-avatar\",\n class: { \"has-agent-img\": _vm.agentInfo.avatar },\n style: {\n background:\n _vm.agentInfo.color ||\n \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n },\n [\n _vm.agentInfo.avatar\n ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: { src: _vm.agentInfo.avatar, alt: \"\" }\n })\n : [\n _vm._v(\n _vm._s(\n _vm.getInitial(\n _vm.agentInfo.agentName ||\n _vm.agentInfo.agentCode\n )\n )\n )\n ]\n ],\n 2\n )\n ]),\n _c(\"div\", { staticClass: \"agent-text\" }, [\n _c(\"div\", { staticClass: \"agent-name\" }, [\n _vm._v(_vm._s(_vm.currentAgentName))\n ]),\n _c(\"div\", { staticClass: \"agent-desc\" }, [\n _vm._v(_vm._s(_vm.currentAgentDesc))\n ])\n ])\n ])\n : _c(\"div\", { staticClass: \"agent-info\" }, [_vm._m(0)])\n ]),\n _vm.isMobile && !_vm.activeSessionId\n ? _c(\"div\", { staticClass: \"header-actions\" }, [\n _c(\n \"button\",\n {\n staticClass: \"mobile-header-btn\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"agent-jump-click\")\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 3C6.5 3 2 6.58 2 11c0 2.03.95 3.88 2.5 5.3L3 21l4.6-1.7c1.36.45 2.86.7 4.4.7 5.5 0 10-3.58 10-8s-4.5-8-10-8z\"\n }\n }),\n _c(\"circle\", {\n attrs: { cx: \"8\", cy: \"11\", r: \"1.3\", fill: \"#fff\" }\n }),\n _c(\"circle\", {\n attrs: { cx: \"12\", cy: \"11\", r: \"1.3\", fill: \"#fff\" }\n }),\n _c(\"circle\", {\n attrs: { cx: \"16\", cy: \"11\", r: \"1.3\", fill: \"#fff\" }\n })\n ]\n )\n ]\n )\n ])\n : _vm._e()\n ]),\n _c(\n \"div\",\n {\n ref: \"messagesRef\",\n staticClass: \"chat-body\",\n on: { scroll: _vm.onScrollMessages }\n },\n [\n !_vm.activeSessionId\n ? _c(\"div\", { staticClass: \"welcome welcome-default\" }, [\n _c(\"div\", { staticClass: \"welcome-icon\" }, [\n _c(\n \"svg\",\n {\n attrs: { viewBox: \"0 0 48 48\", width: \"64\", height: \"64\" }\n },\n [\n _c(\"path\", {\n attrs: {\n fill: \"#e6f4ff\",\n d:\n \"M40 22c-2.21 0-4 1.79-4 4v10H12c-2.21 0-4-1.79-4-4V14c0-2.21 1.79-4 4-4h24c2.21 0 4 1.79 4 4v8z\"\n }\n }),\n _c(\"path\", {\n attrs: {\n fill: \"#1677ff\",\n d:\n \"M36 8c-2.21 0-4 1.79-4 4v18H8c-2.21 0-4-1.79-4-4V12c0-2.21 1.79-4 4-4h28z\"\n }\n }),\n _c(\"circle\", {\n attrs: { cx: \"20\", cy: \"28\", r: \"3\", fill: \"#fff\" }\n }),\n _c(\"circle\", {\n attrs: { cx: \"28\", cy: \"28\", r: \"3\", fill: \"#fff\" }\n })\n ]\n )\n ]),\n _c(\"div\", { staticClass: \"welcome-title\" }, [\n _vm._v(\"欢迎使用 AI 助手\")\n ]),\n _c(\"div\", { staticClass: \"welcome-text\" }, [\n _vm._v(\"从左侧选择一个会话,或搜索助手开始新的对话\")\n ])\n ])\n : _vm.messages.length === 0 && !_vm.loadingSessionMsg\n ? _c(\"div\", { staticClass: \"chat-empty-welcome\" }, [\n _vm.agentInfo.hasOwnProperty(\"agentCode\")\n ? _c(\"div\", { staticClass: \"welcome-card\" }, [\n _c(\"div\", { staticClass: \"welcome-avatar-box\" }, [\n _c(\n \"div\",\n {\n staticClass: \"welcome-avatar\",\n class: { \"has-chat-agent-img\": _vm.agentInfo.avatar },\n style: _vm.getChatAvatarStyle(\n _vm.currentAgent,\n _vm.agentInfo.avatar\n )\n },\n [\n !_vm.agentInfo.avatar\n ? [\n _vm._v(\n _vm._s(_vm.getInitial(_vm.currentAgentName))\n )\n ]\n : _vm._e()\n ],\n 2\n )\n ]),\n _c(\"div\", { staticClass: \"welcome-text-group\" }, [\n _c(\"div\", { staticClass: \"text-sm\" }, [\n _vm._v(\"您好,我是\" + _vm._s(_vm.currentAgentName))\n ]),\n _c(\"div\", { staticClass: \"text-lg\" }, [\n _vm._v(_vm._s(_vm.greeting))\n ])\n ])\n ])\n : _vm._e(),\n _c(\"div\", { staticClass: \"guess-box\" }, [\n _c(\"div\", { staticClass: \"guess-title\" }, [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"#1677ff\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z\"\n }\n })\n ]\n ),\n _c(\"span\", [_vm._v(\"猜您想问\")])\n ]),\n _c(\n \"div\",\n { staticClass: \"tag-wrap\" },\n _vm._l(_vm.agentInfo.suggestedQuestions, function(tag) {\n return _c(\n \"div\",\n {\n key: tag,\n staticClass: \"quick-tag\",\n on: {\n click: function($event) {\n return _vm.sendQuickMsg(tag)\n }\n }\n },\n [_vm._v(\" \" + _vm._s(tag) + \" \")]\n )\n }),\n 0\n )\n ])\n ])\n : _vm._e(),\n _vm._l(_vm.messages, function(m) {\n return _c(\n \"div\",\n { key: m.id, staticClass: \"msg-row\", class: m.role },\n [\n _c(\"div\", { staticClass: \"msg-main\" }, [\n _c(\"div\", { staticClass: \"msg-content\" }, [\n _c(\"div\", { staticClass: \"bubble\", class: m.role }, [\n m.role === \"user\" && m._sttStatus\n ? _c(\"div\", { staticClass: \"stt-bubble-wrap\" }, [\n m._sttStatus === \"pending\"\n ? _c(\"span\", {\n staticClass: \"stt-spinner stt-outside-icon\"\n })\n : m._sttStatus === \"error\"\n ? _c(\n \"span\",\n {\n staticClass: \"stt-error-icon stt-outside-icon\"\n },\n [_vm._v(\"!\")]\n )\n : _vm._e(),\n _c(\"span\", { staticClass: \"stt-bubble-text\" }, [\n _vm._v(\n _vm._s(\n m._sttStatus === \"pending\"\n ? \"转化中...\"\n : \"语音转文字失败\"\n )\n )\n ])\n ])\n : _vm._e(),\n !m._sttStatus && m.thinking\n ? _c(\n \"details\",\n {\n staticClass: \"thinking-details\",\n attrs: { open: \"\" }\n },\n [\n _c(\"summary\", { staticClass: \"thinking-summary\" }, [\n _vm._v(\"💭 思考过程\")\n ]),\n _c(\"div\", {\n staticClass: \"thinking-body\",\n domProps: {\n innerHTML: _vm._s(_vm.escapeHtml(m.thinking))\n }\n })\n ]\n )\n : _vm._e(),\n m.role === \"assistant\" &&\n !m._sttStatus &&\n m.content &&\n !m._hasTokui &&\n m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(\n _vm.renderStreaming(m.content, m._key)\n )\n }\n })\n : _vm._e(),\n m.role === \"assistant\" &&\n !m._sttStatus &&\n m.content &&\n !m._hasTokui &&\n !m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderMarkdown(m.content))\n }\n })\n : _vm._e(),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n m.role === \"assistant\" &&\n !m._sttStatus &&\n m._hasTokui,\n expression:\n \"m.role === 'assistant' && !m._sttStatus && m._hasTokui\"\n }\n ],\n staticClass: \"final-content\"\n },\n [_c(\"div\", { staticClass: \"tokui-stream\" })]\n ),\n m.role === \"user\" && !m._sttStatus && m.content && m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(\n _vm.renderStreaming(m.content, m._key)\n )\n }\n })\n : _vm._e(),\n m.role === \"user\" &&\n !m._sttStatus &&\n m.content &&\n !m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderMarkdown(m.content))\n }\n })\n : _vm._e(),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !m._sttStatus &&\n _vm.showToolInfo &&\n m.toolCalls &&\n m.toolCalls.length,\n expression:\n \"!m._sttStatus && showToolInfo && m.toolCalls && m.toolCalls.length\"\n }\n ],\n staticClass: \"tool-calls\"\n },\n _vm._l(m.toolCalls, function(tc, ti) {\n return _c(\n \"div\",\n { key: ti, staticClass: \"tool-item\" },\n [\n _c(\"span\", { staticClass: \"tool-badge\" }, [\n _vm._v(\"工具返回\")\n ]),\n _c(\"pre\", [\n _vm._v(\n _vm._s(tc.substring(0, 300)) +\n _vm._s(tc.length > 300 ? \"...\" : \"\")\n )\n ])\n ]\n )\n }),\n 0\n ),\n m.loading\n ? _c(\n \"div\",\n { staticClass: \"typing\", class: _vm.waitClass },\n [\n _c(\"span\", { staticClass: \"phrase\" }, [\n _vm._v(\"思考中\")\n ]),\n _vm._m(1, true)\n ]\n )\n : _vm._e()\n ]),\n m.role === \"assistant\" && m.content && !m.loading\n ? _c(\"div\", { staticClass: \"msg-actions\" }, [\n _c(\n \"span\",\n {\n staticClass: \"action-btn\",\n attrs: { title: \"复制\" },\n on: {\n click: function($event) {\n return _vm.copyText(m.content)\n }\n }\n },\n [_vm._v(\"📋 复制\")]\n ),\n _c(\n \"span\",\n {\n staticClass: \"action-btn\",\n attrs: { title: \"复制为图片\" },\n on: {\n click: function($event) {\n return _vm.copyAsImage(m.content)\n }\n }\n },\n [_vm._v(\"🖼 复制为图片\")]\n ),\n _c(\"span\", { staticClass: \"ai-badge\" }, [\n _vm._v(\"AI 生成(仅供参考)\")\n ])\n ])\n : _vm._e()\n ])\n ])\n ]\n )\n })\n ],\n 2\n ),\n _c(\"div\", { staticClass: \"chat-footer\" }, [\n _c(\n \"div\",\n { staticClass: \"input-area\" },\n [\n !_vm.voiceMode || !_vm.isMobile\n ? [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.inputText,\n expression: \"inputText\"\n }\n ],\n ref: \"taRef\",\n staticClass: \"chat-textarea\",\n attrs: {\n placeholder: \"请输入消息\",\n maxlength: \"300\",\n disabled: _vm.sending\n },\n domProps: { value: _vm.inputText },\n on: {\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.inputText = $event.target.value\n },\n _vm.autoResizeTextarea\n ],\n focus: _vm.onInputFocus,\n keydown: [\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n _vm.isMobile ? _vm.newLine($event) : _vm.sendMessage()\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n if (!$event.ctrlKey) {\n return null\n }\n return _vm.newLine.apply(null, arguments)\n }\n ]\n }\n }),\n !_vm.sending\n ? _c(\n \"button\",\n {\n staticClass: \"send-btn\",\n class: { active: _vm.inputText.trim() },\n attrs: {\n disabled: _vm.sending || !_vm.inputText.trim()\n },\n on: { click: _vm.sendMessage }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"20\",\n height: \"20\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e(),\n _vm.sending\n ? _c(\n \"button\",\n { staticClass: \"stop-btn\", on: { click: _vm.stopAgent } },\n [\n _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e()\n ]\n : [\n _c(\n \"div\",\n {\n staticClass: \"hold-talk-btn\",\n class: { recording: _vm.isRecording },\n on: {\n touchstart: function($event) {\n $event.preventDefault()\n return _vm.onRecordTouchStart($event)\n },\n touchmove: function($event) {\n $event.preventDefault()\n return _vm.onRecordTouchMove($event)\n },\n touchend: function($event) {\n $event.preventDefault()\n return _vm.onRecordTouchEnd.apply(null, arguments)\n }\n }\n },\n [\n !_vm.isRecording\n ? _c(\n \"svg\",\n {\n staticClass: \"hold-talk-icon\",\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 14a3 3 0 003-3V5a3 3 0 00-6 0v6a3 3 0 003 3z\"\n }\n }),\n _c(\"path\", {\n attrs: {\n d: \"M17 11a5 5 0 01-10 0H5a7 7 0 0014 0h-2z\"\n }\n }),\n _c(\"rect\", {\n attrs: {\n x: \"11\",\n y: \"17\",\n width: \"2\",\n height: \"4\",\n rx: \"1\"\n }\n })\n ]\n )\n : _vm._e(),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.isRecording\n ? _vm.isCancelSwipe\n ? \"松开取消\"\n : \"松手发送\"\n : \"按住说话\"\n )\n )\n ])\n ]\n ),\n _vm.sending\n ? _c(\n \"button\",\n { staticClass: \"stop-btn\", on: { click: _vm.stopAgent } },\n [\n _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e()\n ],\n _vm.showDownBtn && _vm.messages.length !== 0\n ? _c(\"div\", { staticClass: \"scroll-bottom-wrap\" }, [\n _c(\n \"div\",\n {\n staticClass: \"scroll-bottom-btn\",\n on: {\n click: function($event) {\n return _vm.scrollToBottom(true)\n }\n }\n },\n [\n _vm.sending\n ? _c(\"div\", { staticClass: \"loading-circle\" })\n : _vm._e(),\n _c(\n \"svg\",\n {\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M6 9l6 6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })\n ]\n )\n ]\n )\n ])\n : _vm._e()\n ],\n 2\n )\n ]),\n _vm.isRecording\n ? _c(\"div\", { staticClass: \"voice-recording-overlay\" }, [\n _c(\"div\", { staticClass: \"voice-recording-card\" }, [\n _vm._m(2),\n _c(\"div\", { staticClass: \"voice-recording-duration\" }, [\n _vm._v(_vm._s(_vm.recordDuration)),\n _c(\"span\", { staticClass: \"unit\" }, [_vm._v(\"s\")])\n ]),\n _c(\n \"div\",\n {\n staticClass: \"voice-recording-hint\",\n class: { cancel: _vm.isCancelSwipe }\n },\n [\n _vm.isCancelSwipe\n ? _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#ff4d4f\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n }\n })\n ]\n )\n : _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#999\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n }\n })\n ]\n ),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.isCancelSwipe ? \"松开取消发送\" : \"手指上滑 取消发送\"\n ) +\n \" \"\n )\n ]\n )\n ])\n ])\n : _vm._e()\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"agent-text\" }, [\n _c(\"div\", { staticClass: \"agent-name\", staticStyle: { color: \"#bbb\" } }, [\n _vm._v(\"请选择助手\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"span\", { staticClass: \"dots\" }, [\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"voice-recording-wave\" }, [\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\")\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%2268609640-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
924
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"chat-main\" }, [\n _c(\"div\", { staticClass: \"chat-header\" }, [\n _c(\"div\", { staticClass: \"header-left\" }, [\n _vm.isMobile && _vm.activeSessionId\n ? _c(\n \"button\",\n {\n staticClass: \"mobile-back-btn\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"go-back-to-list\")\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M15 18l-6-6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })\n ]\n )\n ]\n )\n : _vm.isMobile\n ? _c(\n \"button\",\n {\n staticClass: \"mobile-menu-btn\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"toggle-sidebar\")\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M3 6h18M3 12h18M3 18h18\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e(),\n _vm.currentAgent && (_vm.activeSessionId || _vm.messages.length > 0)\n ? _c(\"div\", { staticClass: \"agent-info\" }, [\n _c(\"div\", { staticClass: \"chat-agent-avatar-wrapper\" }, [\n _c(\n \"div\",\n {\n staticClass: \"agent-list-avatar session-avatar\",\n class: { \"has-agent-img\": _vm.agentInfo.avatar },\n style: {\n background:\n _vm.agentInfo.color ||\n \"linear-gradient(135deg, #1677ff, #4096ff)\"\n }\n },\n [\n _vm.agentInfo.avatar\n ? _c(\"img\", {\n staticClass: \"avatar-pic\",\n attrs: { src: _vm.agentInfo.avatar, alt: \"\" }\n })\n : [\n _vm._v(\n _vm._s(\n _vm.getInitial(\n _vm.agentInfo.agentName ||\n _vm.agentInfo.agentCode\n )\n )\n )\n ]\n ],\n 2\n )\n ]),\n _c(\"div\", { staticClass: \"agent-text\" }, [\n _c(\"div\", { staticClass: \"agent-name\" }, [\n _vm._v(_vm._s(_vm.currentAgentName))\n ]),\n _c(\"div\", { staticClass: \"agent-desc\" }, [\n _vm._v(_vm._s(_vm.currentAgentDesc))\n ])\n ])\n ])\n : _c(\"div\", { staticClass: \"agent-info\" }, [_vm._m(0)])\n ]),\n _vm.isMobile && !_vm.activeSessionId\n ? _c(\"div\", { staticClass: \"header-actions\" }, [\n _c(\n \"button\",\n {\n staticClass: \"mobile-header-btn\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n return _vm.$emit(\"agent-jump-click\")\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 3C6.5 3 2 6.58 2 11c0 2.03.95 3.88 2.5 5.3L3 21l4.6-1.7c1.36.45 2.86.7 4.4.7 5.5 0 10-3.58 10-8s-4.5-8-10-8z\"\n }\n }),\n _c(\"circle\", {\n attrs: { cx: \"8\", cy: \"11\", r: \"1.3\", fill: \"#fff\" }\n }),\n _c(\"circle\", {\n attrs: { cx: \"12\", cy: \"11\", r: \"1.3\", fill: \"#fff\" }\n }),\n _c(\"circle\", {\n attrs: { cx: \"16\", cy: \"11\", r: \"1.3\", fill: \"#fff\" }\n })\n ]\n )\n ]\n )\n ])\n : _vm._e()\n ]),\n _c(\n \"div\",\n {\n ref: \"messagesRef\",\n staticClass: \"chat-body\",\n on: { scroll: _vm.onScrollMessages }\n },\n [\n !_vm.activeSessionId\n ? _c(\"div\", { staticClass: \"welcome welcome-default\" }, [\n _c(\"div\", { staticClass: \"welcome-icon\" }, [\n _c(\n \"svg\",\n {\n attrs: { viewBox: \"0 0 48 48\", width: \"64\", height: \"64\" }\n },\n [\n _c(\"path\", {\n attrs: {\n fill: \"#e6f4ff\",\n d:\n \"M40 22c-2.21 0-4 1.79-4 4v10H12c-2.21 0-4-1.79-4-4V14c0-2.21 1.79-4 4-4h24c2.21 0 4 1.79 4 4v8z\"\n }\n }),\n _c(\"path\", {\n attrs: {\n fill: \"#1677ff\",\n d:\n \"M36 8c-2.21 0-4 1.79-4 4v18H8c-2.21 0-4-1.79-4-4V12c0-2.21 1.79-4 4-4h28z\"\n }\n }),\n _c(\"circle\", {\n attrs: { cx: \"20\", cy: \"28\", r: \"3\", fill: \"#fff\" }\n }),\n _c(\"circle\", {\n attrs: { cx: \"28\", cy: \"28\", r: \"3\", fill: \"#fff\" }\n })\n ]\n )\n ]),\n _c(\"div\", { staticClass: \"welcome-title\" }, [\n _vm._v(\"欢迎使用 AI 助手\")\n ]),\n _c(\"div\", { staticClass: \"welcome-text\" }, [\n _vm._v(\"从左侧选择一个会话,或搜索助手开始新的对话\")\n ])\n ])\n : _vm.messages.length === 0 && !_vm.loadingSessionMsg\n ? _c(\"div\", { staticClass: \"chat-empty-welcome\" }, [\n _vm.agentInfo.hasOwnProperty(\"agentCode\")\n ? _c(\"div\", { staticClass: \"welcome-card\" }, [\n _c(\"div\", { staticClass: \"welcome-avatar-box\" }, [\n _c(\n \"div\",\n {\n staticClass: \"welcome-avatar\",\n class: { \"has-chat-agent-img\": _vm.agentInfo.avatar },\n style: _vm.getChatAvatarStyle(\n _vm.currentAgent,\n _vm.agentInfo.avatar\n )\n },\n [\n !_vm.agentInfo.avatar\n ? [\n _vm._v(\n _vm._s(_vm.getInitial(_vm.currentAgentName))\n )\n ]\n : _vm._e()\n ],\n 2\n )\n ]),\n _c(\"div\", { staticClass: \"welcome-text-group\" }, [\n _c(\"div\", { staticClass: \"text-sm\" }, [\n _vm._v(\"您好,我是\" + _vm._s(_vm.currentAgentName))\n ]),\n _c(\"div\", { staticClass: \"text-lg\" }, [\n _vm._v(_vm._s(_vm.greeting))\n ])\n ])\n ])\n : _vm._e(),\n _c(\"div\", { staticClass: \"guess-box\" }, [\n _c(\"div\", { staticClass: \"guess-title\" }, [\n _c(\n \"svg\",\n {\n attrs: {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"#1677ff\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z\"\n }\n })\n ]\n ),\n _c(\"span\", [_vm._v(\"猜您想问\")])\n ]),\n _c(\n \"div\",\n { staticClass: \"tag-wrap\" },\n _vm._l(_vm.agentInfo.suggestedQuestions, function(tag) {\n return _c(\n \"div\",\n {\n key: tag,\n staticClass: \"quick-tag\",\n on: {\n click: function($event) {\n return _vm.sendQuickMsg(tag)\n }\n }\n },\n [_vm._v(\" \" + _vm._s(tag) + \" \")]\n )\n }),\n 0\n )\n ])\n ])\n : _vm._e(),\n _vm._l(_vm.messages, function(m) {\n return _c(\n \"div\",\n { key: m.id, staticClass: \"msg-row\", class: m.role },\n [\n _c(\"div\", { staticClass: \"msg-main\" }, [\n _c(\"div\", { staticClass: \"msg-content\" }, [\n _c(\"div\", { staticClass: \"bubble\", class: m.role }, [\n m.role === \"user\" && m._sttStatus\n ? _c(\"div\", { staticClass: \"stt-bubble-wrap\" }, [\n m._sttStatus === \"pending\"\n ? _c(\"span\", {\n staticClass: \"stt-spinner stt-outside-icon\"\n })\n : m._sttStatus === \"error\"\n ? _c(\n \"span\",\n {\n staticClass: \"stt-error-icon stt-outside-icon\"\n },\n [_vm._v(\"!\")]\n )\n : _vm._e(),\n _c(\"span\", { staticClass: \"stt-bubble-text\" }, [\n _vm._v(\n _vm._s(\n m._sttStatus === \"pending\"\n ? \"转化中...\"\n : \"语音转文字失败\"\n )\n )\n ])\n ])\n : _vm._e(),\n !m._sttStatus && m.thinking\n ? _c(\n \"details\",\n {\n staticClass: \"thinking-details\",\n attrs: { open: \"\" }\n },\n [\n _c(\"summary\", { staticClass: \"thinking-summary\" }, [\n _vm._v(\"💭 思考过程\")\n ]),\n _c(\"div\", {\n staticClass: \"thinking-body\",\n domProps: {\n innerHTML: _vm._s(_vm.escapeHtml(m.thinking))\n }\n })\n ]\n )\n : _vm._e(),\n m.role === \"assistant\" &&\n !m._sttStatus &&\n m.content &&\n !m._hasTokui &&\n m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(\n _vm.renderStreaming(m.content, m._key)\n )\n }\n })\n : _vm._e(),\n m.role === \"assistant\" &&\n !m._sttStatus &&\n m.content &&\n !m._hasTokui &&\n !m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderMarkdown(m.content))\n }\n })\n : _vm._e(),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n m.role === \"assistant\" &&\n !m._sttStatus &&\n m._hasTokui,\n expression:\n \"m.role === 'assistant' && !m._sttStatus && m._hasTokui\"\n }\n ],\n staticClass: \"final-content tokui-shell\"\n },\n [_c(\"div\", { staticClass: \"tokui-stream\" })]\n ),\n m.role === \"user\" && !m._sttStatus && m.content && m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(\n _vm.renderStreaming(m.content, m._key)\n )\n }\n })\n : _vm._e(),\n m.role === \"user\" &&\n !m._sttStatus &&\n m.content &&\n !m.loading\n ? _c(\"div\", {\n staticClass: \"final-content\",\n domProps: {\n innerHTML: _vm._s(_vm.renderMarkdown(m.content))\n }\n })\n : _vm._e(),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !m._sttStatus &&\n _vm.showToolInfo &&\n m.toolCalls &&\n m.toolCalls.length,\n expression:\n \"!m._sttStatus && showToolInfo && m.toolCalls && m.toolCalls.length\"\n }\n ],\n staticClass: \"tool-calls\"\n },\n _vm._l(m.toolCalls, function(tc, ti) {\n return _c(\n \"div\",\n { key: ti, staticClass: \"tool-item\" },\n [\n _c(\"span\", { staticClass: \"tool-badge\" }, [\n _vm._v(\"工具返回\")\n ]),\n _c(\"pre\", [\n _vm._v(\n _vm._s(tc.substring(0, 300)) +\n _vm._s(tc.length > 300 ? \"...\" : \"\")\n )\n ])\n ]\n )\n }),\n 0\n ),\n m.loading\n ? _c(\n \"div\",\n { staticClass: \"typing\", class: _vm.waitClass },\n [\n _c(\"span\", { staticClass: \"phrase\" }, [\n _vm._v(\"思考中\")\n ]),\n _vm._m(1, true)\n ]\n )\n : _vm._e()\n ]),\n m.role === \"assistant\" && m.content && !m.loading\n ? _c(\"div\", { staticClass: \"msg-actions\" }, [\n _c(\n \"span\",\n {\n staticClass: \"action-btn\",\n attrs: { title: \"复制\" },\n on: {\n click: function($event) {\n return _vm.copyText(m.content)\n }\n }\n },\n [_vm._v(\"📋 复制\")]\n ),\n _c(\n \"span\",\n {\n staticClass: \"action-btn\",\n attrs: { title: \"复制为图片\" },\n on: {\n click: function($event) {\n return _vm.copyAsImage(m.content)\n }\n }\n },\n [_vm._v(\"🖼 复制为图片\")]\n ),\n _c(\"span\", { staticClass: \"ai-badge\" }, [\n _vm._v(\"AI 生成(仅供参考)\")\n ])\n ])\n : _vm._e()\n ])\n ])\n ]\n )\n })\n ],\n 2\n ),\n _c(\"div\", { staticClass: \"chat-footer\" }, [\n _c(\n \"div\",\n { staticClass: \"input-area\" },\n [\n !_vm.voiceMode || !_vm.isMobile\n ? [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.inputText,\n expression: \"inputText\"\n }\n ],\n ref: \"taRef\",\n staticClass: \"chat-textarea\",\n attrs: {\n placeholder: \"请输入消息\",\n maxlength: \"300\",\n disabled: _vm.sending\n },\n domProps: { value: _vm.inputText },\n on: {\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.inputText = $event.target.value\n },\n _vm.autoResizeTextarea\n ],\n focus: _vm.onInputFocus,\n keydown: [\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n _vm.isMobile ? _vm.newLine($event) : _vm.sendMessage()\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n if (!$event.ctrlKey) {\n return null\n }\n return _vm.newLine.apply(null, arguments)\n }\n ]\n }\n }),\n !_vm.sending\n ? _c(\n \"button\",\n {\n staticClass: \"send-btn\",\n class: { active: _vm.inputText.trim() },\n attrs: {\n disabled: _vm.sending || !_vm.inputText.trim()\n },\n on: { click: _vm.sendMessage }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"20\",\n height: \"20\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e(),\n _vm.sending\n ? _c(\n \"button\",\n { staticClass: \"stop-btn\", on: { click: _vm.stopAgent } },\n [\n _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e()\n ]\n : [\n _c(\n \"div\",\n {\n staticClass: \"hold-talk-btn\",\n class: { recording: _vm.isRecording },\n on: {\n touchstart: function($event) {\n $event.preventDefault()\n return _vm.onRecordTouchStart($event)\n },\n touchmove: function($event) {\n $event.preventDefault()\n return _vm.onRecordTouchMove($event)\n },\n touchend: function($event) {\n $event.preventDefault()\n return _vm.onRecordTouchEnd.apply(null, arguments)\n }\n }\n },\n [\n !_vm.isRecording\n ? _c(\n \"svg\",\n {\n staticClass: \"hold-talk-icon\",\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 14a3 3 0 003-3V5a3 3 0 00-6 0v6a3 3 0 003 3z\"\n }\n }),\n _c(\"path\", {\n attrs: {\n d: \"M17 11a5 5 0 01-10 0H5a7 7 0 0014 0h-2z\"\n }\n }),\n _c(\"rect\", {\n attrs: {\n x: \"11\",\n y: \"17\",\n width: \"2\",\n height: \"4\",\n rx: \"1\"\n }\n })\n ]\n )\n : _vm._e(),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.isRecording\n ? _vm.isCancelSwipe\n ? \"松开取消\"\n : \"松手发送\"\n : \"按住说话\"\n )\n )\n ])\n ]\n ),\n _vm.sending\n ? _c(\n \"button\",\n { staticClass: \"stop-btn\", on: { click: _vm.stopAgent } },\n [\n _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"18\",\n height: \"18\",\n fill: \"currentColor\"\n }\n },\n [\n _c(\"rect\", {\n attrs: {\n x: \"6\",\n y: \"6\",\n width: \"12\",\n height: \"12\",\n rx: \"2\"\n }\n })\n ]\n )\n ]\n )\n : _vm._e()\n ],\n _vm.showDownBtn && _vm.messages.length !== 0\n ? _c(\"div\", { staticClass: \"scroll-bottom-wrap\" }, [\n _c(\n \"div\",\n {\n staticClass: \"scroll-bottom-btn\",\n on: {\n click: function($event) {\n return _vm.scrollToBottom(true)\n }\n }\n },\n [\n _vm.sending\n ? _c(\"div\", { staticClass: \"loading-circle\" })\n : _vm._e(),\n _c(\n \"svg\",\n {\n attrs: {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d: \"M6 9l6 6 6-6\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }\n })\n ]\n )\n ]\n )\n ])\n : _vm._e()\n ],\n 2\n )\n ]),\n _vm.isRecording\n ? _c(\"div\", { staticClass: \"voice-recording-overlay\" }, [\n _c(\"div\", { staticClass: \"voice-recording-card\" }, [\n _vm._m(2),\n _c(\"div\", { staticClass: \"voice-recording-duration\" }, [\n _vm._v(_vm._s(_vm.recordDuration)),\n _c(\"span\", { staticClass: \"unit\" }, [_vm._v(\"s\")])\n ]),\n _c(\n \"div\",\n {\n staticClass: \"voice-recording-hint\",\n class: { cancel: _vm.isCancelSwipe }\n },\n [\n _vm.isCancelSwipe\n ? _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#ff4d4f\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n }\n })\n ]\n )\n : _c(\n \"svg\",\n {\n attrs: {\n viewBox: \"0 0 24 24\",\n width: \"16\",\n height: \"16\",\n fill: \"#999\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n }\n })\n ]\n ),\n _vm._v(\n \" \" +\n _vm._s(\n _vm.isCancelSwipe ? \"松开取消发送\" : \"手指上滑 取消发送\"\n ) +\n \" \"\n )\n ]\n )\n ])\n ])\n : _vm._e()\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"agent-text\" }, [\n _c(\"div\", { staticClass: \"agent-name\", staticStyle: { color: \"#bbb\" } }, [\n _vm._v(\"请选择助手\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"span\", { staticClass: \"dots\" }, [\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"voice-recording-wave\" }, [\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\"),\n _c(\"span\")\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%2268609640-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
913
925
|
|
|
914
926
|
/***/ }),
|
|
915
927
|
|
|
@@ -1345,6 +1357,151 @@ eval(";(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.e
|
|
|
1345
1357
|
|
|
1346
1358
|
/***/ }),
|
|
1347
1359
|
|
|
1360
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/@jboltai/tokui/dist/tokui.css":
|
|
1361
|
+
/*!****************************************************************************************************************************************************************!*\
|
|
1362
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2!./node_modules/@jboltai/tokui/dist/tokui.css ***!
|
|
1363
|
+
\****************************************************************************************************************************************************************/
|
|
1364
|
+
/*! no static exports found */
|
|
1365
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1366
|
+
|
|
1367
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \":root,[data-tokui-theme=default]{--tokui-primary-1:#e6f4ff;--tokui-primary-2:#bae0ff;--tokui-primary-3:#91caff;--tokui-primary-4:#69b1ff;--tokui-primary-5:#4096ff;--tokui-primary-6:#1677ff;--tokui-primary-7:#0958d9;--tokui-primary-8:#003eb3;--tokui-primary-9:#002c8c;--tokui-primary-10:#001d66;--tokui-danger-1:#fff1f0;--tokui-danger-2:#ffccc7;--tokui-danger-3:#ffa39e;--tokui-danger-4:#ff7875;--tokui-danger-5:#ff4d4f;--tokui-danger-6:#f5222d;--tokui-danger-7:#cf1322;--tokui-danger-8:#a8071a;--tokui-danger-9:#820014;--tokui-danger-10:#5c0011;--tokui-success-1:#f6ffed;--tokui-success-2:#d9f7be;--tokui-success-3:#b7eb8f;--tokui-success-4:#95de64;--tokui-success-5:#73d13d;--tokui-success-6:#52c41a;--tokui-success-7:#389e0d;--tokui-success-8:#237804;--tokui-success-9:#135200;--tokui-success-10:#092b00;--tokui-warning-1:#fffbe6;--tokui-warning-2:#fff1b8;--tokui-warning-3:#ffe58f;--tokui-warning-4:#ffd666;--tokui-warning-5:#ffc53d;--tokui-warning-6:#faad14;--tokui-warning-7:#d48806;--tokui-warning-8:#ad6800;--tokui-warning-9:#874d00;--tokui-warning-10:#613400;--tokui-primary:var(--tokui-primary-6);--tokui-primary-hover:var(--tokui-primary-5);--tokui-primary-active:var(--tokui-primary-7);--tokui-primary-bg:var(--tokui-primary-1);--tokui-primary-border:var(--tokui-primary-3);--tokui-primary-focus:var(--tokui-primary-2);--tokui-danger:var(--tokui-danger-6);--tokui-danger-hover:var(--tokui-danger-5);--tokui-danger-active:var(--tokui-danger-7);--tokui-danger-bg:var(--tokui-danger-1);--tokui-danger-border:var(--tokui-danger-3);--tokui-success:var(--tokui-success-6);--tokui-success-hover:var(--tokui-success-5);--tokui-success-active:var(--tokui-success-7);--tokui-success-bg:var(--tokui-success-1);--tokui-success-border:var(--tokui-success-3);--tokui-warning:var(--tokui-warning-6);--tokui-warning-hover:var(--tokui-warning-5);--tokui-warning-active:var(--tokui-warning-7);--tokui-warning-bg:var(--tokui-warning-1);--tokui-warning-border:var(--tokui-warning-3);--tokui-info:var(--tokui-primary-6);--tokui-info-hover:var(--tokui-primary-5);--tokui-info-bg:var(--tokui-primary-1);--tokui-info-border:var(--tokui-primary-3);--tokui-text:#000000e0;--tokui-text-secondary:#000000a6;--tokui-text-muted:#00000073;--tokui-text-disabled:#00000040;--tokui-border:#0000000f;--tokui-bg:#fff;--tokui-stripe:#0000000a;--tokui-skeleton-base:#0000000a;--tokui-skeleton-shine:#00000012;--tokui-dark:#000000e0;--tokui-light:#0000000a;--tokui-radius:4px;--tokui-avatar-size:80px;--tokui-code-bg:#f6f8fa;--tokui-code-text:#24292f;--tokui-btn-primary-hover:var(--tokui-primary-7);--tokui-btn-danger-hover:var(--tokui-danger-7);--tokui-btn-success-hover:var(--tokui-success-7);--tokui-btn-warning-hover:var(--tokui-warning-7);--tokui-btn-warning-text:#fff;--tokui-btn-ghost-hover-bg:var(--tokui-primary-hover);--tokui-btn-ghost-hover-text:var(--tokui-primary);--tokui-btn-text-inverse:#fff;--tokui-lightbox-bg:#000000d9;--tokui-lightbox-btn-bg:#fff3;--tokui-lightbox-btn-hover:#fff6;--tokui-lightbox-counter-bg:#00000080;--tokui-lightbox-counter-color:#fff;--tokui-warning-text:#92400e;--tokui-input-error-focus:var(--tokui-danger-2);--tokui-input-success-focus:var(--tokui-success-2);--tokui-tag-bg:var(--tokui-stripe);--tokui-tag-text:var(--tokui-text);--tokui-tag-border:var(--tokui-border);--tokui-tag-close-color:var(--tokui-text-muted);--tokui-tag-close-hover:var(--tokui-text);--tokui-tag-primary-bg:var(--tokui-primary-1);--tokui-tag-primary-text:var(--tokui-primary-6);--tokui-tag-primary-border:var(--tokui-primary-3);--tokui-tag-info-bg:var(--tokui-primary-1);--tokui-tag-info-text:var(--tokui-primary-6);--tokui-tag-info-border:var(--tokui-primary-3);--tokui-tag-success-bg:var(--tokui-success-1);--tokui-tag-success-text:var(--tokui-success-6);--tokui-tag-success-border:var(--tokui-success-3);--tokui-tag-warning-bg:var(--tokui-warning-1);--tokui-tag-warning-text:var(--tokui-warning-6);--tokui-tag-warning-border:var(--tokui-warning-3);--tokui-tag-error-bg:var(--tokui-danger-1);--tokui-tag-error-text:var(--tokui-danger-6);--tokui-tag-error-border:var(--tokui-danger-3);--tokui-callout-info-bg:var(--tokui-primary-1);--tokui-callout-info-border:var(--tokui-primary-6);--tokui-callout-success-bg:var(--tokui-success-1);--tokui-callout-success-border:var(--tokui-success-6);--tokui-callout-warning-bg:var(--tokui-warning-1);--tokui-callout-warning-border:var(--tokui-warning-6);--tokui-callout-error-bg:var(--tokui-danger-1);--tokui-callout-error-border:var(--tokui-danger-6);--tokui-callout-tip-bg:#f9f0ff;--tokui-callout-tip-border:#722ed1;--tokui-think-bg:var(--tokui-stripe);--tokui-think-border:var(--tokui-border);--tokui-chart-grid:#e8e8e8;--tokui-chart-text:#999;--tokui-chart-today-line:#fa541c;--tokui-chart-task-dep:#bbb;--tokui-overlay-shadow:0 4px 16px #0000001a, 0 0 0 1px #0000000a;--tokui-overlay-shadow-lg:0 20px 60px #00000026, 0 0 0 1px #0000000a;--tokui-mask-bg:#00000073;--tokui-tooltip-bg:#1f2024;--tokui-tooltip-text:#fff;--tokui-status-idle:#00000040;--tokui-overlay-bg-muted:#ffffff80}[data-tokui-theme=dark]{--tokui-primary-1:#121e32;--tokui-primary-2:#152d4f;--tokui-primary-3:#213b5b;--tokui-primary-4:#284f7e;--tokui-primary-5:#3169ad;--tokui-primary-6:#3983dc;--tokui-primary-7:#61a1e8;--tokui-primary-8:#8bc1f3;--tokui-primary-9:#b5daf8;--tokui-primary-10:#e2f0fa;--tokui-danger-1:#301416;--tokui-danger-2:#4c181a;--tokui-danger-3:#5b2526;--tokui-danger-4:#7e2e2f;--tokui-danger-5:#ad393a;--tokui-danger-6:#dc4446;--tokui-danger-7:#e86e6b;--tokui-danger-8:#f39c97;--tokui-danger-9:#f8c6c2;--tokui-danger-10:#faedec;--tokui-success-1:#192913;--tokui-success-2:#244016;--tokui-success-3:#314d20;--tokui-success-4:#3f6926;--tokui-success-5:#528f2f;--tokui-success-6:#65b537;--tokui-success-7:#88ca5c;--tokui-success-8:#afe089;--tokui-success-9:#d3f0b9;--tokui-success-10:#f1fae9;--tokui-warning-1:#312512;--tokui-warning-2:#4e3a14;--tokui-warning-3:#5b4920;--tokui-warning-4:#7e6426;--tokui-warning-5:#ad872f;--tokui-warning-6:#dcaa37;--tokui-warning-7:#e8c35e;--tokui-warning-8:#f3db89;--tokui-warning-9:#f8eab3;--tokui-warning-10:#faf6e2;--tokui-primary:var(--tokui-primary-6);--tokui-primary-hover:var(--tokui-primary-5);--tokui-primary-active:var(--tokui-primary-7);--tokui-primary-bg:var(--tokui-primary-1);--tokui-primary-border:var(--tokui-primary-3);--tokui-primary-focus:var(--tokui-primary-2);--tokui-danger:var(--tokui-danger-6);--tokui-danger-hover:var(--tokui-danger-5);--tokui-danger-active:var(--tokui-danger-7);--tokui-danger-bg:var(--tokui-danger-1);--tokui-danger-border:var(--tokui-danger-3);--tokui-success:var(--tokui-success-6);--tokui-success-hover:var(--tokui-success-5);--tokui-success-active:var(--tokui-success-7);--tokui-success-bg:var(--tokui-success-1);--tokui-success-border:var(--tokui-success-3);--tokui-warning:var(--tokui-warning-6);--tokui-warning-hover:var(--tokui-warning-5);--tokui-warning-active:var(--tokui-warning-7);--tokui-warning-bg:var(--tokui-warning-1);--tokui-warning-border:var(--tokui-warning-3);--tokui-info:var(--tokui-primary-6);--tokui-info-hover:var(--tokui-primary-5);--tokui-info-bg:var(--tokui-primary-1);--tokui-info-border:var(--tokui-primary-3);--tokui-text:#ffffffd9;--tokui-text-secondary:#ffffffa6;--tokui-text-muted:#ffffff73;--tokui-text-disabled:#ffffff40;--tokui-border:#ffffff1f;--tokui-bg:#141414;--tokui-stripe:#ffffff0f;--tokui-skeleton-base:#ffffff0d;--tokui-skeleton-shine:#ffffff17;--tokui-dark:#ffffffd9;--tokui-light:#ffffff0f;--tokui-radius:4px;--tokui-avatar-size:80px;--tokui-code-bg:#0f172a;--tokui-code-text:#e2e8f0;--tokui-code-copy-bg:#ffffff14;--tokui-code-copy-border:#ffffff26;--tokui-code-copy-text:#fff9;--tokui-code-copy-hover:#ffffff26;--tokui-btn-primary-hover:var(--tokui-primary-7);--tokui-btn-danger-hover:var(--tokui-danger-7);--tokui-btn-success-hover:var(--tokui-success-7);--tokui-btn-warning-hover:var(--tokui-warning-7);--tokui-btn-warning-text:#1f2937;--tokui-btn-ghost-hover-bg:var(--tokui-primary-hover);--tokui-btn-ghost-hover-text:var(--tokui-primary);--tokui-btn-text-inverse:#fff;--tokui-lightbox-bg:#000000eb;--tokui-lightbox-btn-bg:#ffffff26;--tokui-lightbox-btn-hover:#ffffff4d;--tokui-lightbox-counter-bg:#0009;--tokui-lightbox-counter-color:#ffffffd9;--tokui-warning-text:var(--tokui-warning-10);--tokui-input-error-focus:var(--tokui-danger-2);--tokui-input-success-focus:var(--tokui-success-2);--tokui-tag-bg:var(--tokui-primary-1);--tokui-tag-text:var(--tokui-text);--tokui-tag-border:var(--tokui-border);--tokui-tag-close-color:var(--tokui-text-muted);--tokui-tag-close-hover:var(--tokui-text);--tokui-tag-primary-bg:var(--tokui-primary-1);--tokui-tag-primary-text:var(--tokui-primary-6);--tokui-tag-primary-border:var(--tokui-primary-3);--tokui-tag-info-bg:var(--tokui-primary-1);--tokui-tag-info-text:var(--tokui-primary-6);--tokui-tag-info-border:var(--tokui-primary-3);--tokui-tag-success-bg:var(--tokui-success-1);--tokui-tag-success-text:var(--tokui-success-6);--tokui-tag-success-border:var(--tokui-success-3);--tokui-tag-warning-bg:var(--tokui-warning-1);--tokui-tag-warning-text:var(--tokui-warning-6);--tokui-tag-warning-border:var(--tokui-warning-3);--tokui-tag-error-bg:var(--tokui-danger-1);--tokui-tag-error-text:var(--tokui-danger-6);--tokui-tag-error-border:var(--tokui-danger-3);--tokui-callout-info-bg:var(--tokui-primary-1);--tokui-callout-info-border:var(--tokui-primary-6);--tokui-callout-success-bg:var(--tokui-success-1);--tokui-callout-success-border:var(--tokui-success-6);--tokui-callout-warning-bg:var(--tokui-warning-1);--tokui-callout-warning-border:var(--tokui-warning-6);--tokui-callout-error-bg:var(--tokui-danger-1);--tokui-callout-error-border:var(--tokui-danger-6);--tokui-callout-tip-bg:#2a1654;--tokui-callout-tip-border:#9254de;--tokui-think-bg:#ffffff0a;--tokui-think-border:#ffffff14;--tokui-chart-grid:#ffffff14;--tokui-chart-text:#ffffff73;--tokui-chart-today-line:#ff7a45;--tokui-chart-task-dep:#ffffff59;--tokui-bubble-user-bg:#ffffff1f;--tokui-bubble-user-text:#ffffffd9;--tokui-bubble-user-avatar-bg:#ffffff26;--tokui-bubble-user-avatar-text:#ffffffa6;--tokui-bubble-ai-avatar-bg:#3b3b5c;--tokui-bubble-ai-avatar-text:#d0d0e0;--tokui-overlay-shadow:0 4px 16px #00000080, 0 0 0 1px #ffffff0f;--tokui-overlay-shadow-lg:0 20px 60px #0009, 0 0 0 1px #ffffff0f;--tokui-mask-bg:#0009;--tokui-tooltip-bg:#fafafa;--tokui-tooltip-text:#18181b;--tokui-status-idle:#ffffff40;--tokui-overlay-bg-muted:#ffffff80}[data-tokui-theme=dark] .tokui-input,[data-tokui-theme=dark] .tokui-select{background:var(--tokui-stripe);color:var(--tokui-text)}[data-tokui-theme=dark] .tokui-input::-moz-placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=dark] .tokui-input:-ms-input-placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=dark] .tokui-input::placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=dark] .tokui-btn:not([type=submit]):not(.tokui-btn--primary):not(.tokui-btn--danger):not(.tokui-btn--success):not(.tokui-btn--warning):not(.tokui-btn--ghost){background:var(--tokui-stripe);color:var(--tokui-text)}[data-tokui-theme=dark] .tokui-unknown{background:var(--tokui-warning-bg);border-color:var(--tokui-warning-border);color:var(--tokui-warning-text)}[data-tokui-theme=modern]{--tokui-bg:#fff;--tokui-bg-subtle:#f3f4f6;--tokui-bg-muted:#ededee;--tokui-bg-elevated:#fff;--tokui-surface-secondary:#ebecef;--tokui-border:#e1e1e3;--tokui-border-strong:#d4d4d8;--tokui-separator:#e6e6e8;--tokui-text:#1f2024;--tokui-text-secondary:#3f3f46;--tokui-text-muted:#71727a;--tokui-text-disabled:#a1a1aa;--tokui-stripe:#f3f4f6;--tokui-radius:8px;--tokui-skeleton-base:#0000000b;--tokui-skeleton-shine:#00000013;--tokui-primary-1:#ebf1fe;--tokui-primary-2:#d6e4fd;--tokui-primary-3:#b8d0fb;--tokui-primary-4:#8fb0f7;--tokui-primary-5:#6690f2;--tokui-primary-6:#3b6ff5;--tokui-primary-7:#2f5fe0;--tokui-primary-8:#284fc2;--tokui-primary-9:#1f3e99;--tokui-primary-10:#172e70;--tokui-primary:#3b6ff5;--tokui-primary-hover:#2f5fe0;--tokui-primary-active:#284fc2;--tokui-primary-bg:#ebf1fe;--tokui-primary-border:#b8d0fb;--tokui-primary-focus:#3b6ff566;--tokui-success-1:#e8f8ef;--tokui-success-3:#bbf0d0;--tokui-success-6:#2ebf6a;--tokui-warning-1:#fdf4e0;--tokui-warning-3:#fae2a0;--tokui-warning-6:#e8b339;--tokui-danger-1:#fdecea;--tokui-danger-3:#f9c5bc;--tokui-danger-6:#e54d3f;--tokui-success:#2ebf6a;--tokui-warning:#e8b339;--tokui-danger:#e54d3f;--tokui-danger-bg:var(--tokui-danger-1);--tokui-danger-border:var(--tokui-danger-3);--tokui-success-bg:var(--tokui-success-1);--tokui-success-border:var(--tokui-success-3);--tokui-warning-bg:var(--tokui-warning-1);--tokui-warning-border:var(--tokui-warning-3);--tokui-info:var(--tokui-primary);--tokui-info-hover:var(--tokui-primary-hover);--tokui-info-bg:var(--tokui-primary-1);--tokui-info-border:var(--tokui-primary-3);--tokui-dark:var(--tokui-text);--tokui-light:var(--tokui-stripe);--tokui-code-bg:var(--tokui-bg-muted);--tokui-code-text:var(--tokui-text);--tokui-btn-primary-hover:var(--tokui-primary-hover);--tokui-btn-danger-hover:#d13a2c;--tokui-btn-success-hover:#22a157;--tokui-btn-warning-hover:#d09a26;--tokui-btn-warning-text:#fff;--tokui-btn-ghost-hover-bg:var(--tokui-primary-1);--tokui-btn-ghost-hover-text:var(--tokui-primary);--tokui-btn-text-inverse:#fff;--tokui-input-error-focus:var(--tokui-danger-3);--tokui-input-success-focus:var(--tokui-success-3);--tokui-tag-bg:var(--tokui-stripe);--tokui-tag-text:var(--tokui-text);--tokui-tag-border:var(--tokui-border);--tokui-tag-close-color:var(--tokui-text-muted);--tokui-tag-close-hover:var(--tokui-text);--tokui-tag-primary-bg:var(--tokui-primary-1);--tokui-tag-primary-text:var(--tokui-primary);--tokui-tag-primary-border:var(--tokui-primary-3);--tokui-tag-info-bg:var(--tokui-primary-1);--tokui-tag-info-text:var(--tokui-primary);--tokui-tag-info-border:var(--tokui-primary-3);--tokui-tag-success-bg:var(--tokui-success-1);--tokui-tag-success-text:var(--tokui-success);--tokui-tag-success-border:var(--tokui-success-3);--tokui-tag-warning-bg:var(--tokui-warning-1);--tokui-tag-warning-text:var(--tokui-warning);--tokui-tag-warning-border:var(--tokui-warning-3);--tokui-tag-error-bg:var(--tokui-danger-1);--tokui-tag-error-text:var(--tokui-danger);--tokui-tag-error-border:var(--tokui-danger-3);--tokui-callout-info-bg:var(--tokui-primary-1);--tokui-callout-info-border:var(--tokui-primary);--tokui-callout-success-bg:var(--tokui-success-1);--tokui-callout-success-border:var(--tokui-success);--tokui-callout-warning-bg:var(--tokui-warning-1);--tokui-callout-warning-border:var(--tokui-warning);--tokui-callout-error-bg:var(--tokui-danger-1);--tokui-callout-error-border:var(--tokui-danger);--tokui-callout-tip-bg:#f3edff;--tokui-callout-tip-border:#7c3aed;--tokui-think-bg:var(--tokui-stripe);--tokui-think-border:var(--tokui-border);--tokui-chart-grid:var(--tokui-border);--tokui-chart-text:var(--tokui-text-muted);--tokui-chart-today-line:#f5410c;--tokui-chart-task-dep:var(--tokui-text-disabled);--tokui-warning-text:#92400e;--tokui-shadow-xs:0 1px 2px 0 #09090b0d;--tokui-shadow-sm:0 1px 3px 0 #09090b12, 0 1px 2px -1px #09090b0d;--tokui-shadow-md:0 4px 6px -1px #09090b12, 0 2px 4px -2px #09090b0d;--tokui-shadow-lg:0 10px 15px -3px #09090b14, 0 4px 6px -4px #09090b0d;--tokui-surface-shadow:0 2px 4px 0 #0000000a, 0 1px 2px 0 #0000000f, 0 0 1px 0 #0000000f;--tokui-surface-shadow-hover:0 6px 12px 0 #0000000d, 0 2px 4px 0 #0000000f, 0 0 1px 0 #0000000f;--tokui-overlay-shadow:0 2px 8px #09090b0f, 0 0 0 1px #09090b0d;--tokui-overlay-shadow-hover:0 8px 24px #09090b14, 0 0 0 1px #09090b0f;--tokui-mask-bg:#09090b66;--tokui-tooltip-bg:#18181b;--tokui-tooltip-text:#fafafa;--tokui-switch-track:var(--tokui-bg-muted);--tokui-switch-thumb:#fff;--tokui-switch-ring:#09090b14;--tokui-star:var(--tokui-border-strong);--tokui-star-active:#f5a623;--tokui-star-hover:#f5c34b;--tokui-status-idle:var(--tokui-text-disabled);--tokui-control-radius:12px;--tokui-inset-shadow:inset 0 0 0 1px var(--tokui-border);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}[data-tokui-theme=modern] .tokui-h1,[data-tokui-theme=modern] .tokui-h2,[data-tokui-theme=modern] .tokui-h3,[data-tokui-theme=modern] .tokui-h4{letter-spacing:-.015em;font-weight:600}[data-tokui-theme=modern] .tokui-btn{box-shadow:var(--tokui-surface-shadow);border-radius:8px;padding:8px 16px;font-weight:500;transition:background-color .2s,box-shadow .2s,color .2s,border-color .2s}[data-tokui-theme=modern] .tokui-btn:hover{box-shadow:var(--tokui-surface-shadow-hover);transform:none}[data-tokui-theme=modern] .tokui-btn:not(.tokui-btn--primary):not(.tokui-btn--danger):not(.tokui-btn--success):not(.tokui-btn--warning):not(.tokui-btn--ghost){background:var(--tokui-bg-muted);color:var(--tokui-text);border-color:#0000}[data-tokui-theme=modern] .tokui-btn:not(.tokui-btn--primary):not(.tokui-btn--danger):not(.tokui-btn--success):not(.tokui-btn--warning):not(.tokui-btn--ghost):hover{background:#e4e4e7}[data-tokui-theme=modern] .tokui-btn:focus-visible{box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus);outline:none}[data-tokui-theme=modern] .tokui-btn--ghost{color:var(--tokui-primary);border-color:var(--tokui-primary-4);background:0 0}[data-tokui-theme=modern] .tokui-btn--ghost:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);border-color:var(--tokui-primary-5)}[data-tokui-theme=modern] .tokui-btn--pill{border-radius:999px}[data-tokui-theme=modern] .tokui-btn--square{border-radius:0}[data-tokui-theme=modern] .tokui-btn--sm{padding:5px 12px;font-size:.8rem}[data-tokui-theme=modern] .tokui-btn--lg{padding:11px 24px;font-size:1.05rem}[data-tokui-theme=modern] .tokui-btn--block{width:100%;display:flex}[data-tokui-theme=modern] .tokui-input,[data-tokui-theme=modern] .tokui-select,[data-tokui-theme=modern] .tokui-picker-control,[data-tokui-theme=modern] .tokui-cascader-control,[data-tokui-theme=modern] .tokui-input-tag__box{border:1px solid var(--tokui-border);background:var(--tokui-bg);box-shadow:var(--tokui-shadow-sm);border-radius:12px;transition:border-color .2s,box-shadow .2s,background-color .2s}[data-tokui-theme=modern] .tokui-input:hover,[data-tokui-theme=modern] .tokui-select:hover,[data-tokui-theme=modern] .tokui-picker-control:hover,[data-tokui-theme=modern] .tokui-cascader-control:hover,[data-tokui-theme=modern] .tokui-input-tag__box:hover{border-color:var(--tokui-border-strong);background:var(--tokui-surface-secondary)}[data-tokui-theme=modern] .tokui-input:focus,[data-tokui-theme=modern] .tokui-select:focus,[data-tokui-theme=modern] .tokui-picker-control:focus-within,[data-tokui-theme=modern] .tokui-picker--open .tokui-picker-control,[data-tokui-theme=modern] .tokui-cascader--open .tokui-cascader-control,[data-tokui-theme=modern] .tokui-cascader-control:focus-within,[data-tokui-theme=modern] .tokui-input-tag__box:focus-within{border-color:var(--tokui-primary);background:var(--tokui-bg);box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus);outline:none}[data-tokui-theme=modern] .tokui-input::-moz-placeholder, [data-tokui-theme=modern] .tokui-cascader-input::-moz-placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-input:-ms-input-placeholder, [data-tokui-theme=modern] .tokui-cascader-input:-ms-input-placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-input::placeholder,[data-tokui-theme=modern] .tokui-cascader-input::placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-input:disabled,[data-tokui-theme=modern] .tokui-select:disabled{background:var(--tokui-stripe);border-color:var(--tokui-border);box-shadow:none}[data-tokui-theme=modern] .tokui-input--underline,[data-tokui-theme=modern] .tokui-select--underline{border:none;border-bottom:1px solid var(--tokui-border-strong);box-shadow:none;background:0 0;border-radius:0;padding-left:0;padding-right:0}[data-tokui-theme=modern] .tokui-input--underline:hover,[data-tokui-theme=modern] .tokui-select--underline:hover{border-bottom-color:var(--tokui-text-muted);background:0 0}[data-tokui-theme=modern] .tokui-input--underline:focus,[data-tokui-theme=modern] .tokui-select--underline:focus{border-bottom:2px solid var(--tokui-primary);box-shadow:none;background:0 0;outline:none}[data-tokui-theme=modern] .tokui-input--error,[data-tokui-theme=modern] .tokui-select--error{border-color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-input--error:focus,[data-tokui-theme=modern] .tokui-select--error:focus{border-color:var(--tokui-danger);box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-input-error-focus);outline:none}[data-tokui-theme=modern] .tokui-input--success,[data-tokui-theme=modern] .tokui-select--success{border-color:var(--tokui-success)}[data-tokui-theme=modern] .tokui-input--success:focus,[data-tokui-theme=modern] .tokui-select--success:focus{border-color:var(--tokui-success);box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-input-success-focus);outline:none}[data-tokui-theme=modern] .tokui-slider__track{background:var(--tokui-surface-secondary);border-radius:999px;height:8px}[data-tokui-theme=modern] .tokui-slider__fill{background:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern] .tokui-slider__thumb{background:var(--tokui-primary);border:2px solid var(--tokui-bg);width:16px;height:16px;box-shadow:var(--tokui-shadow-sm);border-radius:50%;transition:transform .12s,box-shadow .15s}[data-tokui-theme=modern] .tokui-slider__thumb:hover{box-shadow:var(--tokui-shadow-md);transform:translate(-50%,-50%)scale(1.12)}[data-tokui-theme=modern] .tokui-slider__thumb--dragging{box-shadow:0 0 0 6px var(--tokui-primary-focus);transform:translate(-50%,-50%)scale(1.15)}[data-tokui-theme=modern] .tokui-slider--sm .tokui-slider__track{border-radius:999px;height:6px}[data-tokui-theme=modern] .tokui-slider--sm .tokui-slider__thumb{width:12px;height:12px}[data-tokui-theme=modern] .tokui-slider--lg .tokui-slider__track{border-radius:999px;height:10px}[data-tokui-theme=modern] .tokui-slider--lg .tokui-slider__thumb{width:20px;height:20px}[data-tokui-theme=modern] .tokui-card{box-shadow:0 0 2px 0 #09090b1a, var(--tokui-surface-shadow);border-color:#0000;border-radius:12px;transition:box-shadow .25s}[data-tokui-theme=modern] .tokui-card:hover{box-shadow:0 0 2px 0 #09090b1f, var(--tokui-surface-shadow-hover)}[data-tokui-theme=modern] .tokui-card-header{padding:14px 20px}[data-tokui-theme=modern] .tokui-card-body{padding:20px}[data-tokui-theme=modern] .tokui-card-footer{border-top:1px solid var(--tokui-border);background:0 0;padding:12px 20px}[data-tokui-theme=modern] .tokui-table-wrapper{background:var(--tokui-bg);box-shadow:var(--tokui-surface-shadow);border-radius:12px;overflow:auto hidden}[data-tokui-theme=modern] .tokui-table th{background:var(--tokui-bg-subtle);color:var(--tokui-text-muted);border-bottom:1px solid var(--tokui-border);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:500}[data-tokui-theme=modern] .tokui-table td{border-bottom:1px solid var(--tokui-border)}[data-tokui-theme=modern] .tokui-table--stripe tr:nth-child(2n) td{background:var(--tokui-bg-subtle)}[data-tokui-theme=modern] .tokui-table tbody tr:hover td{background:var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-tag{border-color:#0000;border-radius:999px;padding:2px 12px;font-weight:500}[data-tokui-theme=modern] .tokui-callout{border-radius:12px}[data-tokui-theme=modern] .tokui-callout--danger{background:var(--tokui-danger-1);border-left-color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-callout--danger .tokui-callout__icon{color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-code{background:var(--tokui-bg-subtle);border:1px solid #0000;border-radius:12px}[data-tokui-theme=modern] .tokui-label{color:var(--tokui-text-secondary);font-weight:500}[data-tokui-theme=modern] .tokui-hr,[data-tokui-theme=modern] .tokui-dv{border-top-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-switch__track{background:var(--tokui-switch-track)}[data-tokui-theme=modern] .tokui-switch__track:before{background:var(--tokui-switch-thumb);box-shadow:0 1px 2px var(--tokui-switch-ring)}[data-tokui-theme=modern] .tokui-switch-input:checked+.tokui-switch__track{background:var(--tokui-primary);border-color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-switch-input:focus-visible+.tokui-switch__track{box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern] .tokui-breadcrumb__item{color:var(--tokui-text-muted);transition:color .15s}[data-tokui-theme=modern] .tokui-breadcrumb__item:hover{color:var(--tokui-primary);opacity:1}[data-tokui-theme=modern] .tokui-breadcrumb__item--active,[data-tokui-theme=modern] .tokui-breadcrumb__item:last-of-type{color:var(--tokui-text);font-weight:500}[data-tokui-theme=modern] .tokui-breadcrumb__sep{color:var(--tokui-text-disabled)}[data-tokui-theme=modern] .tokui-pagination__item,[data-tokui-theme=modern] .tokui-pagination__btn{color:var(--tokui-text-secondary);background:0 0;border-color:#0000;border-radius:999px;transition:color .15s,background-color .15s}[data-tokui-theme=modern] .tokui-pagination__item:hover,[data-tokui-theme=modern] .tokui-pagination__btn:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-color:#0000}[data-tokui-theme=modern] .tokui-pagination__item--active,[data-tokui-theme=modern] .tokui-pagination__item[aria-current=page]{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse);border-color:#0000;font-weight:600}[data-tokui-theme=modern] .tokui-radio-item:before{border-color:var(--tokui-border-strong);background:var(--tokui-bg)}[data-tokui-theme=modern] .tokui-radio-item:hover:before{border-color:var(--tokui-primary-5)}[data-tokui-theme=modern] .tokui-radio-item:has(.tokui-radio-input:focus-visible):before{box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern] .tokui-rate__star{color:var(--tokui-star)}[data-tokui-theme=modern] .tokui-rate__star--active{color:var(--tokui-star-active)}[data-tokui-theme=modern] .tokui-rate__star--hover{color:var(--tokui-star-hover)}[data-tokui-theme=modern] .tokui-numinput{border-radius:var(--tokui-control-radius);background:var(--tokui-bg);box-shadow:var(--tokui-inset-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-numinput__btn{color:var(--tokui-text-secondary);background:0 0}[data-tokui-theme=modern] .tokui-numinput__btn:hover{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern] .tokui-datepicker-control{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg);box-shadow:var(--tokui-shadow-sm);transition:border-color .2s,box-shadow .2s}[data-tokui-theme=modern] .tokui-datepicker-control:hover{border-color:var(--tokui-border-strong)}[data-tokui-theme=modern] .tokui-datepicker--open .tokui-datepicker-control{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern] .tokui-datepicker-dropdown{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-datepicker-day:hover{background:var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-datepicker-day--today{color:var(--tokui-primary);box-shadow:inset 0 0 0 1px var(--tokui-primary)}[data-tokui-theme=modern] .tokui-datepicker-day--selected,[data-tokui-theme=modern] .tokui-datepicker-day--selected:hover{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern] .tokui-datepicker-nav:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-cascader-control{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg);box-shadow:var(--tokui-shadow-sm)}[data-tokui-theme=modern] .tokui-cascader-control:hover{border-color:var(--tokui-border-strong)}[data-tokui-theme=modern] .tokui-cascader--open .tokui-cascader-control{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern] .tokui-cascader-menus{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-cascader-option:hover,[data-tokui-theme=modern] .tokui-cascader-option--active{background:var(--tokui-primary-bg);color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-input-group{border:1px solid var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg);box-shadow:var(--tokui-shadow-sm);transition:border-color .2s,box-shadow .2s;overflow:hidden}[data-tokui-theme=modern] .tokui-input-group:hover{border-color:var(--tokui-border-strong)}[data-tokui-theme=modern] .tokui-input-group:focus-within{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern] .tokui-input-group .tokui-input,[data-tokui-theme=modern] .tokui-input-group .tokui-search-input{box-shadow:none;background:0 0;border:none;border-radius:0}[data-tokui-theme=modern] .tokui-input-group .tokui-input:focus,[data-tokui-theme=modern] .tokui-input-group .tokui-search-input:focus{box-shadow:none}[data-tokui-theme=modern] .tokui-input-group .tokui-input-pre,[data-tokui-theme=modern] .tokui-input-group .tokui-input-app,[data-tokui-theme=modern] .tokui-input-group .tokui-input-prebtn,[data-tokui-theme=modern] .tokui-input-group .tokui-input-appbtn{border:none}[data-tokui-theme=modern] .tokui-input-group .tokui-input-prebtn:hover,[data-tokui-theme=modern] .tokui-input-group .tokui-input-appbtn:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern] .tokui-input-group--pill{border-radius:999px}[data-tokui-theme=modern] .tokui-calendar{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-calendar--card{box-shadow:var(--tokui-surface-shadow)}[data-tokui-theme=modern] .tokui-calendar__header{border-bottom-color:var(--tokui-separator)}[data-tokui-theme=modern] .tokui-calendar__day:hover{background:var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-transfer__panel{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-transfer__header{background:var(--tokui-bg-subtle);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-transfer__item:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern] .tokui-transfer__btn{border-color:var(--tokui-border);border-radius:999px}[data-tokui-theme=modern] .tokui-transfer__btn:hover:not(:disabled){background:var(--tokui-primary);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-tree-node-header{border-radius:999px}[data-tokui-theme=modern] .tokui-tree-node-header:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern] .tokui-tree-node--selected>.tokui-tree-node-header{background:var(--tokui-primary-bg);color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-tabs{border-bottom:1px solid var(--tokui-border);gap:4px}[data-tokui-theme=modern] .tokui-tabs-label{color:var(--tokui-text-muted);font-weight:500}[data-tokui-theme=modern] .tokui-tabs-label:hover{color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-tabs-panel{border-top:none;padding-top:16px}[data-tokui-theme=modern] .tokui-collapse{border-radius:var(--tokui-control-radius);background:var(--tokui-bg);box-shadow:var(--tokui-inset-shadow);border-color:#0000;margin-bottom:8px}[data-tokui-theme=modern] .tokui-collapse-title{background:var(--tokui-bg-subtle)}[data-tokui-theme=modern] .tokui-collapse-title:before{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-collapse-body{color:var(--tokui-text-secondary)}[data-tokui-theme=modern] .tokui-dialog{border-radius:16px}[data-tokui-theme=modern] .tokui-dialog::-webkit-backdrop{background:var(--tokui-mask-bg)}[data-tokui-theme=modern] .tokui-dialog::backdrop{background:var(--tokui-mask-bg)}[data-tokui-theme=modern] .tokui-dialog-header{background:var(--tokui-bg);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-dialog-footer{background:var(--tokui-bg);border-top-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-dialog-close{border-radius:999px}[data-tokui-theme=modern] .tokui-dialog-close:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-drawer--open .tokui-drawer__overlay{background:var(--tokui-mask-bg)}[data-tokui-theme=modern] .tokui-drawer__header{background:var(--tokui-bg);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-drawer__close{border-radius:999px}[data-tokui-theme=modern] .tokui-drawer__close:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-popover__panel,[data-tokui-theme=modern] .tokui-popconfirm__popup,[data-tokui-theme=modern] .tokui-hover-card__content{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-popover__trigger,[data-tokui-theme=modern] .tokui-popconfirm__trigger{border-color:var(--tokui-border);background:var(--tokui-bg);box-shadow:var(--tokui-inset-shadow);border-radius:8px;transition:border-color .2s,box-shadow .2s}[data-tokui-theme=modern] .tokui-popover__trigger:hover,[data-tokui-theme=modern] .tokui-popconfirm__trigger:hover{border-color:var(--tokui-border-strong);color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-popconfirm__btn{border-radius:8px}[data-tokui-theme=modern] .tokui-tooltip__popup{box-shadow:var(--tokui-shadow-sm);border-radius:8px}[data-tokui-theme=modern] .tokui-tooltip{border-bottom-color:var(--tokui-text-disabled)}[data-tokui-theme=modern] .tokui-menu{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow)}[data-tokui-theme=modern] .tokui-menu__item{color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern] .tokui-menu__item:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-menu__item--active{background:var(--tokui-primary-bg);color:var(--tokui-primary);font-weight:600}[data-tokui-theme=modern] .tokui-menu--horizontal .tokui-menu__item--active{border-bottom-color:var(--tokui-primary);color:var(--tokui-primary);background:0 0}[data-tokui-theme=modern] .tokui-dropdown__panel{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-dropdown__item:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern] .tokui-dropdown__item--danger:hover{background:var(--tokui-danger-bg);color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-avatar--text{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern] .tokui-badge{border-radius:999px;font-weight:500}[data-tokui-theme=modern] .tokui-badge--default{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary)}[data-tokui-theme=modern] .tokui-badge--primary{background:var(--tokui-primary-bg);color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-badge--success{background:var(--tokui-success-bg);color:var(--tokui-success)}[data-tokui-theme=modern] .tokui-badge--warning{background:var(--tokui-warning-bg);color:var(--tokui-warning)}[data-tokui-theme=modern] .tokui-badge--error,[data-tokui-theme=modern] .tokui-badge--danger{background:var(--tokui-danger-bg);color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-badge--info{background:var(--tokui-info-bg);color:var(--tokui-info)}[data-tokui-theme=modern] .tokui-badge-box__count{border-radius:999px}[data-tokui-theme=modern] .tokui-progress__track{background:var(--tokui-surface-secondary);border-radius:999px}[data-tokui-theme=modern] .tokui-progress__bar{background:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern] .tokui-progress--success .tokui-progress__bar{background:var(--tokui-success)}[data-tokui-theme=modern] .tokui-progress--error .tokui-progress__bar,[data-tokui-theme=modern] .tokui-progress--danger .tokui-progress__bar{background:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-progress__circle-bg{stroke:var(--tokui-border)}[data-tokui-theme=modern] .tokui-progress__circle-bar{stroke:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-progress--success .tokui-progress__circle-bar{stroke:var(--tokui-success)}[data-tokui-theme=modern] .tokui-progress--error .tokui-progress__circle-bar,[data-tokui-theme=modern] .tokui-progress--danger .tokui-progress__circle-bar{stroke:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-progress__mini-bar{background:var(--tokui-surface-secondary);border-radius:999px}[data-tokui-theme=modern] .tokui-progress__mini-fill{border-radius:999px}[data-tokui-theme=modern] .tokui-spin{color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-spin__spinner{border-color:var(--tokui-border);border-top-color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-spin__dot,[data-tokui-theme=modern] .tokui-spin__pulse{background:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-skeleton{background:linear-gradient(90deg, var(--tokui-skeleton-base) 25%, var(--tokui-skeleton-shine) 50%, var(--tokui-skeleton-base) 75%);border-radius:var(--tokui-control-radius);background-size:800px 100%}[data-tokui-theme=modern] .tokui-skeleton__row,[data-tokui-theme=modern] .tokui-skeleton__rect,[data-tokui-theme=modern] .tokui-skeleton__circle{background:var(--tokui-skeleton-base)}[data-tokui-theme=modern] .tokui-shimmer__row,[data-tokui-theme=modern] .tokui-shimmer__circle{background:linear-gradient(90deg, var(--tokui-skeleton-base) 25%, var(--tokui-skeleton-shine) 37%, var(--tokui-skeleton-base) 63%);background-size:400% 100%}[data-tokui-theme=modern] .tokui-step__circle{background:var(--tokui-bg);border-color:var(--tokui-border-strong);box-shadow:var(--tokui-inset-shadow)}[data-tokui-theme=modern] .tokui-step:hover .tokui-step__circle{box-shadow:0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern] .tokui-step--done:hover .tokui-step__circle{box-shadow:0 0 0 4px var(--tokui-success-bg)}[data-tokui-theme=modern] .tokui-step--error:hover .tokui-step__circle{box-shadow:0 0 0 4px var(--tokui-danger-bg)}[data-tokui-theme=modern] .tokui-timeline:before{background:var(--tokui-border)}[data-tokui-theme=modern] .tokui-ti__dot:after{background:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-ti--success .tokui-ti__dot:after{background:var(--tokui-success);box-shadow:0 0 0 2px var(--tokui-success-bg)}[data-tokui-theme=modern] .tokui-ti--warning .tokui-ti__dot:after{background:var(--tokui-warning);box-shadow:0 0 0 2px var(--tokui-warning-bg)}[data-tokui-theme=modern] .tokui-ti--error .tokui-ti__dot:after,[data-tokui-theme=modern] .tokui-ti--danger .tokui-ti__dot:after{background:var(--tokui-danger);box-shadow:0 0 0 2px var(--tokui-danger-bg)}[data-tokui-theme=modern] .tokui-ti--info .tokui-ti__dot:after{background:var(--tokui-info);box-shadow:0 0 0 2px var(--tokui-info-bg)}[data-tokui-theme=modern] .tokui-notification{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-overlay-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-notification__close{border-radius:999px}[data-tokui-theme=modern] .tokui-notification__close:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-toast{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-overlay-shadow)}[data-tokui-theme=modern] .tokui-empty__text{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-result__title{color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-result__desc{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-stat__value{letter-spacing:-.02em}[data-tokui-theme=modern] .tokui-stat__title{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-stat__trend--up{color:var(--tokui-success)}[data-tokui-theme=modern] .tokui-stat__trend--down{color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-backtop{box-shadow:var(--tokui-surface-shadow), var(--tokui-inset-shadow);border-color:#0000;border-radius:999px}[data-tokui-theme=modern] .tokui-backtop:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-md code{background:var(--tokui-bg-muted);color:var(--tokui-code-text);border-radius:6px;padding:.12em .4em}[data-tokui-theme=modern] .tokui-md__quote{border-left-color:var(--tokui-primary);background:var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-md__hr{border-top-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-md a{color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-md-table th{background:var(--tokui-bg-subtle);border-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-md-table td{border-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-bubble__avatar{border-radius:999px}[data-tokui-theme=modern] .tokui-bubble--user .tokui-bubble__body{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);box-shadow:var(--tokui-surface-shadow);border-radius:16px 16px 4px}[data-tokui-theme=modern] .tokui-bubble--user .tokui-bubble__avatar{background:var(--tokui-primary-bg);color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-bubble--ai .tokui-bubble__avatar{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary)}[data-tokui-theme=modern] .tokui-bubble--system .tokui-bubble__body{background:var(--tokui-bg-muted);color:var(--tokui-text-muted);border-radius:999px}[data-tokui-theme=modern] .tokui-agent{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-agent__status{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern] .tokui-agent--running .tokui-agent__status{color:var(--tokui-primary);background:var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-agent--done .tokui-agent__status{color:var(--tokui-success);background:var(--tokui-success-bg)}[data-tokui-theme=modern] .tokui-agent--error .tokui-agent__status,[data-tokui-theme=modern] .tokui-agent--danger .tokui-agent__status{color:var(--tokui-danger);background:var(--tokui-danger-bg)}[data-tokui-theme=modern] .tokui-tool-call{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-tool-call__header{background:var(--tokui-bg-subtle);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-tool-call__name{color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-tool-call__status{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern] .tokui-tool-call--running .tokui-tool-call__status{color:var(--tokui-primary);background:var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-tool-call--done .tokui-tool-call__status{color:var(--tokui-success);background:var(--tokui-success-bg)}[data-tokui-theme=modern] .tokui-tool-call--error .tokui-tool-call__status,[data-tokui-theme=modern] .tokui-tool-call--danger .tokui-tool-call__status{color:var(--tokui-danger);background:var(--tokui-danger-bg)}[data-tokui-theme=modern] .tokui-tool-call__result{background:var(--tokui-success-bg);border-left-color:var(--tokui-success);color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-tool-call__error{background:var(--tokui-danger-bg);border-left-color:var(--tokui-danger);color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-think,[data-tokui-theme=modern] .tokui-think-chain{background:var(--tokui-bg-subtle);border-left-color:var(--tokui-border-strong);border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern] .tokui-think__summary:before,[data-tokui-theme=modern] .tokui-think-chain__summary:before{color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-think-step__line{background:var(--tokui-border)}[data-tokui-theme=modern] .tokui-think-step--done .tokui-think-step__line{background:var(--tokui-success)}[data-tokui-theme=modern] .tokui-think-step--running .tokui-think-step__line{background:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-think-step__dot{background:var(--tokui-border-strong)}[data-tokui-theme=modern] .tokui-think-step__dur{background:var(--tokui-bg-muted);color:var(--tokui-text-muted);border-radius:999px}[data-tokui-theme=modern] .tokui-chat-input{border-color:var(--tokui-border);background:var(--tokui-bg);box-shadow:var(--tokui-shadow-sm);border-radius:24px}[data-tokui-theme=modern] .tokui-chat-input:focus-within{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern] .tokui-chat-input__send{background:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern] .tokui-chat-input__counter{background:var(--tokui-bg);color:var(--tokui-text-muted)}[data-tokui-theme=modern] .tokui-quick-reply__item{border-color:var(--tokui-border);background:var(--tokui-bg);border-radius:999px}[data-tokui-theme=modern] .tokui-quick-reply__item:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-color:var(--tokui-primary-3)}[data-tokui-theme=modern] .tokui-suggestion{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);box-shadow:var(--tokui-surface-shadow)}[data-tokui-theme=modern] .tokui-suggestion:hover{box-shadow:var(--tokui-surface-shadow-hover);border-left-color:var(--tokui-primary-hover)}[data-tokui-theme=modern] .tokui-suggestion__icon{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern] .tokui-msg-actions__btn{border-radius:999px}[data-tokui-theme=modern] .tokui-msg-actions__btn:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern] .tokui-command__overlay{background:var(--tokui-mask-bg)}[data-tokui-theme=modern] .tokui-command__panel{border-color:var(--tokui-border);border-radius:16px}[data-tokui-theme=modern] .tokui-command__item{border-radius:999px}[data-tokui-theme=modern] .tokui-command__item:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern] .tokui-command__item--selected{background:var(--tokui-primary-bg);color:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-command__shortcut{background:var(--tokui-bg-muted);border-radius:6px}[data-tokui-theme=modern] .tokui-quote{background:var(--tokui-bg-subtle);border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern] .tokui-quote__bar{background:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-quote__role{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern] .tokui-quote__text{color:var(--tokui-text-secondary)}[data-tokui-theme=modern] .tokui-file-tree{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-file-tree__folder-name:hover,[data-tokui-theme=modern] .tokui-file-tree__file:hover{background:var(--tokui-bg-muted);border-radius:6px}[data-tokui-theme=modern] .tokui-file-tree__file-badge{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern] .tokui-carousel{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow)}[data-tokui-theme=modern] .tokui-carousel__arrow{box-shadow:var(--tokui-shadow-sm)}[data-tokui-theme=modern] .tokui-carousel--thumb{background:var(--tokui-bg)}[data-tokui-theme=modern] .tokui-carousel__thumbs{gap:10px;padding:12px}[data-tokui-theme=modern] .tokui-carousel__thumb{width:84px;height:56px;box-shadow:var(--tokui-shadow-sm);opacity:.6;border:none;border-radius:10px}[data-tokui-theme=modern] .tokui-carousel__thumb:hover{opacity:.85}[data-tokui-theme=modern] .tokui-carousel__thumb--active{opacity:1;box-shadow:0 0 0 2px var(--tokui-bg), 0 0 0 4px var(--tokui-primary-focus), var(--tokui-shadow-sm)}[data-tokui-theme=modern] .tokui-artifact,[data-tokui-theme=modern] .tokui-sandbox,[data-tokui-theme=modern] .tokui-diff{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-inset-shadow);border-color:#0000}[data-tokui-theme=modern] .tokui-artifact__header,[data-tokui-theme=modern] .tokui-sandbox__header,[data-tokui-theme=modern] .tokui-diff__header{background:var(--tokui-bg-subtle);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern] .tokui-artifact__tab--active{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern] .tokui-sandbox__lang,[data-tokui-theme=modern] .tokui-diff__lang{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern] .tokui-diff__line--add{background:var(--tokui-success-bg)}[data-tokui-theme=modern] .tokui-diff__line--add .tokui-diff__code{color:var(--tokui-success)}[data-tokui-theme=modern] .tokui-diff__line--remove{background:var(--tokui-danger-bg)}[data-tokui-theme=modern] .tokui-diff__line--remove .tokui-diff__code{color:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-welcome-feature{border-color:var(--tokui-border);border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern] .tokui-welcome-feature:hover{box-shadow:var(--tokui-surface-shadow-hover)}[data-tokui-theme=modern] .tokui-welcome-feature__icon{border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern] .tokui-latency--generating{background:var(--tokui-primary-bg)}[data-tokui-theme=modern] .tokui-latency--thinking{background:var(--tokui-warning-bg)}[data-tokui-theme=modern] .tokui-dot__circle{background:var(--tokui-text-disabled)}[data-tokui-theme=modern] .tokui-dot--primary .tokui-dot__circle{background:var(--tokui-primary)}[data-tokui-theme=modern] .tokui-dot--success .tokui-dot__circle{background:var(--tokui-success)}[data-tokui-theme=modern] .tokui-dot--warning .tokui-dot__circle{background:var(--tokui-warning)}[data-tokui-theme=modern] .tokui-dot--danger .tokui-dot__circle,[data-tokui-theme=modern] .tokui-dot--error .tokui-dot__circle{background:var(--tokui-danger)}[data-tokui-theme=modern] .tokui-dot--info .tokui-dot__circle{background:var(--tokui-info)}[data-tokui-theme=modern-dark]{--tokui-bg:#2a2a2e;--tokui-bg-subtle:#131316;--tokui-bg-muted:#3a3a3e;--tokui-bg-elevated:#2f2f33;--tokui-surface-secondary:#2f2f33;--tokui-border:#34343a;--tokui-border-strong:#3f3f45;--tokui-separator:#303034;--tokui-text:#fcfcfc;--tokui-text-secondary:#d4d4d8;--tokui-text-muted:#a1a1a7;--tokui-text-disabled:#52525b;--tokui-stripe:#1f1f22;--tokui-radius:8px;--tokui-skeleton-base:#ffffff0d;--tokui-skeleton-shine:#ffffff17;--tokui-primary-1:#1a2540;--tokui-primary-2:#1f2d4a;--tokui-primary-3:#1f2d4a;--tokui-primary-4:#2f4a7a;--tokui-primary-5:#4f7ff0;--tokui-primary-6:#3b6ff5;--tokui-primary-7:#5b8ef7;--tokui-primary-8:#7ba6f9;--tokui-primary-9:#9abdfb;--tokui-primary-10:#bcd3fc;--tokui-primary:#3b6ff5;--tokui-primary-hover:#5b8ef7;--tokui-primary-active:#4f7ff0;--tokui-primary-bg:var(--tokui-primary-1);--tokui-primary-border:var(--tokui-primary-4);--tokui-primary-focus:#5b8ef773;--tokui-success-1:#0f2e1e;--tokui-success-3:#1a4730;--tokui-success-6:#3ddb87;--tokui-warning-1:#332a0e;--tokui-warning-3:#4a3d14;--tokui-warning-6:#e8c153;--tokui-danger-1:#331712;--tokui-danger-3:#4a1e18;--tokui-danger-6:#f45b4d;--tokui-success:#3ddb87;--tokui-warning:#e8c153;--tokui-danger:#f45b4d;--tokui-btn-text-inverse:#fff;--tokui-danger-bg:var(--tokui-danger-1);--tokui-danger-border:var(--tokui-danger-3);--tokui-success-bg:var(--tokui-success-1);--tokui-success-border:var(--tokui-success-3);--tokui-warning-bg:var(--tokui-warning-1);--tokui-warning-border:var(--tokui-warning-3);--tokui-info:var(--tokui-primary-6);--tokui-info-hover:var(--tokui-primary-hover);--tokui-info-bg:var(--tokui-primary-1);--tokui-info-border:var(--tokui-primary-3);--tokui-dark:var(--tokui-text);--tokui-light:var(--tokui-stripe);--tokui-code-bg:var(--tokui-bg-subtle);--tokui-code-text:#e5e5e8;--tokui-code-copy-bg:#ffffff14;--tokui-code-copy-border:#ffffff26;--tokui-code-copy-text:#fff9;--tokui-code-copy-hover:#ffffff26;--tokui-btn-primary-hover:var(--tokui-primary-hover);--tokui-btn-danger-hover:#ff7875;--tokui-btn-success-hover:#3ddb87;--tokui-btn-warning-hover:#e8c153;--tokui-btn-warning-text:#1f2937;--tokui-btn-ghost-hover-bg:var(--tokui-primary-bg);--tokui-btn-ghost-hover-text:var(--tokui-primary-7);--tokui-input-error-focus:var(--tokui-danger-3);--tokui-input-success-focus:var(--tokui-success-3);--tokui-tag-bg:var(--tokui-bg-muted);--tokui-tag-text:var(--tokui-text);--tokui-tag-border:var(--tokui-border);--tokui-tag-close-color:var(--tokui-text-muted);--tokui-tag-close-hover:var(--tokui-text);--tokui-tag-primary-bg:var(--tokui-primary-1);--tokui-tag-primary-text:var(--tokui-primary-7);--tokui-tag-primary-border:var(--tokui-primary-4);--tokui-tag-info-bg:var(--tokui-primary-1);--tokui-tag-info-text:var(--tokui-primary-7);--tokui-tag-info-border:var(--tokui-primary-4);--tokui-tag-success-bg:var(--tokui-success-1);--tokui-tag-success-text:var(--tokui-success);--tokui-tag-success-border:var(--tokui-success-3);--tokui-tag-warning-bg:var(--tokui-warning-1);--tokui-tag-warning-text:var(--tokui-warning);--tokui-tag-warning-border:var(--tokui-warning-3);--tokui-tag-error-bg:var(--tokui-danger-1);--tokui-tag-error-text:var(--tokui-danger);--tokui-tag-error-border:var(--tokui-danger-3);--tokui-callout-info-bg:var(--tokui-primary-1);--tokui-callout-info-border:var(--tokui-primary-7);--tokui-callout-success-bg:var(--tokui-success-1);--tokui-callout-success-border:var(--tokui-success);--tokui-callout-warning-bg:var(--tokui-warning-1);--tokui-callout-warning-border:var(--tokui-warning);--tokui-callout-error-bg:var(--tokui-danger-1);--tokui-callout-error-border:var(--tokui-danger);--tokui-callout-tip-bg:#2a1654;--tokui-callout-tip-border:#9254de;--tokui-think-bg:#ffffff0a;--tokui-think-border:var(--tokui-border);--tokui-chart-grid:var(--tokui-border);--tokui-chart-text:var(--tokui-text-muted);--tokui-chart-today-line:#ff7a45;--tokui-chart-task-dep:var(--tokui-text-disabled);--tokui-warning-text:var(--tokui-warning);--tokui-shadow-xs:0 1px 2px 0 #00000059;--tokui-shadow-sm:0 1px 2px 0 #0006, 0 2px 4px 0 #0000004d;--tokui-shadow-md:0 2px 4px 0 #0006, 0 4px 10px 0 #0000004d;--tokui-shadow-lg:0 4px 8px 0 #00000073, 0 10px 20px 0 #00000059;--tokui-surface-shadow:var(--tokui-shadow-sm);--tokui-surface-shadow-hover:var(--tokui-shadow-md);--tokui-overlay-shadow:0 2px 8px #00000080, 0 0 0 1px #ffffff0f;--tokui-overlay-shadow-hover:0 8px 24px #0009, 0 0 0 1px #ffffff14;--tokui-mask-bg:#0009;--tokui-tooltip-bg:#fafafa;--tokui-tooltip-text:#18181b;--tokui-switch-track:var(--tokui-bg-muted);--tokui-switch-thumb:#fafafa;--tokui-switch-ring:#0000004d;--tokui-star:#ffffff38;--tokui-star-active:#e8c153;--tokui-star-hover:#f0cf6b;--tokui-status-idle:var(--tokui-text-disabled);--tokui-control-radius:12px;--tokui-inset-shadow:inset 0 0 0 1px var(--tokui-border);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}[data-tokui-theme=modern-dark] .tokui-h1,[data-tokui-theme=modern-dark] .tokui-h2,[data-tokui-theme=modern-dark] .tokui-h3,[data-tokui-theme=modern-dark] .tokui-h4{letter-spacing:-.015em;font-weight:600}[data-tokui-theme=modern-dark] .tokui-btn{box-shadow:var(--tokui-surface-shadow);border-color:#0000;border-radius:8px;padding:8px 16px;font-weight:500;transition:background-color .2s,box-shadow .2s,color .2s,border-color .2s}[data-tokui-theme=modern-dark] .tokui-btn:hover{box-shadow:var(--tokui-surface-shadow-hover)}[data-tokui-theme=modern-dark] .tokui-btn:not(.tokui-btn--primary):not(.tokui-btn--danger):not(.tokui-btn--success):not(.tokui-btn--warning):not(.tokui-btn--ghost){background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-btn:not(.tokui-btn--primary):not(.tokui-btn--danger):not(.tokui-btn--success):not(.tokui-btn--warning):not(.tokui-btn--ghost):hover{background:#454548}[data-tokui-theme=modern-dark] .tokui-btn--primary,[data-tokui-theme=modern-dark] .tokui-btn--danger,[data-tokui-theme=modern-dark] .tokui-btn--success,[data-tokui-theme=modern-dark] .tokui-btn--warning{border-color:#0000}[data-tokui-theme=modern-dark] .tokui-btn:focus-visible{box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus);outline:none}[data-tokui-theme=modern-dark] .tokui-btn--ghost{color:var(--tokui-primary-7);border:1px solid var(--tokui-primary-5);box-shadow:none;background:0 0}[data-tokui-theme=modern-dark] .tokui-btn--ghost:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);border-color:var(--tokui-primary-6);box-shadow:none}[data-tokui-theme=modern-dark] .tokui-btn--pill{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-btn--square{border-radius:0}[data-tokui-theme=modern-dark] .tokui-btn--sm{padding:5px 12px;font-size:.8rem}[data-tokui-theme=modern-dark] .tokui-btn--lg{padding:11px 24px;font-size:1.05rem}[data-tokui-theme=modern-dark] .tokui-btn--block{width:100%;display:flex}[data-tokui-theme=modern-dark] .tokui-input,[data-tokui-theme=modern-dark] .tokui-select,[data-tokui-theme=modern-dark] .tokui-picker-control,[data-tokui-theme=modern-dark] .tokui-cascader-control,[data-tokui-theme=modern-dark] .tokui-input-tag__box{border:1px solid var(--tokui-border);background:var(--tokui-bg-subtle);color:var(--tokui-text);box-shadow:var(--tokui-shadow-sm);border-radius:12px;transition:border-color .2s,box-shadow .2s,background-color .2s}[data-tokui-theme=modern-dark] .tokui-input:hover,[data-tokui-theme=modern-dark] .tokui-select:hover,[data-tokui-theme=modern-dark] .tokui-picker-control:hover,[data-tokui-theme=modern-dark] .tokui-cascader-control:hover,[data-tokui-theme=modern-dark] .tokui-input-tag__box:hover{border-color:#4a4a50}[data-tokui-theme=modern-dark] .tokui-input:focus,[data-tokui-theme=modern-dark] .tokui-select:focus,[data-tokui-theme=modern-dark] .tokui-picker-control:focus-within,[data-tokui-theme=modern-dark] .tokui-picker--open .tokui-picker-control,[data-tokui-theme=modern-dark] .tokui-cascader--open .tokui-cascader-control,[data-tokui-theme=modern-dark] .tokui-cascader-control:focus-within,[data-tokui-theme=modern-dark] .tokui-input-tag__box:focus-within{border-color:var(--tokui-primary-6);background:var(--tokui-bg-subtle);box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus);outline:none}[data-tokui-theme=modern-dark] .tokui-input::-moz-placeholder, [data-tokui-theme=modern-dark] .tokui-cascader-input::-moz-placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-input:-ms-input-placeholder, [data-tokui-theme=modern-dark] .tokui-cascader-input:-ms-input-placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-input::placeholder,[data-tokui-theme=modern-dark] .tokui-cascader-input::placeholder{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-input--underline,[data-tokui-theme=modern-dark] .tokui-select--underline{border:none;border-bottom:1px solid var(--tokui-border-strong);box-shadow:none;background:0 0;border-radius:0;padding-left:0;padding-right:0}[data-tokui-theme=modern-dark] .tokui-input--underline:hover,[data-tokui-theme=modern-dark] .tokui-select--underline:hover{background:0 0;border-bottom-color:#4a4a50}[data-tokui-theme=modern-dark] .tokui-input--underline:focus,[data-tokui-theme=modern-dark] .tokui-select--underline:focus{border-bottom:2px solid var(--tokui-primary-6);box-shadow:none;background:0 0;outline:none}[data-tokui-theme=modern-dark] .tokui-input--error,[data-tokui-theme=modern-dark] .tokui-select--error{border-color:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-input--error:focus,[data-tokui-theme=modern-dark] .tokui-select--error:focus{border-color:var(--tokui-danger);box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-input-error-focus);outline:none}[data-tokui-theme=modern-dark] .tokui-input--success,[data-tokui-theme=modern-dark] .tokui-select--success{border-color:var(--tokui-success)}[data-tokui-theme=modern-dark] .tokui-input--success:focus,[data-tokui-theme=modern-dark] .tokui-select--success:focus{border-color:var(--tokui-success);box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-input-success-focus);outline:none}[data-tokui-theme=modern-dark] .tokui-slider__track{background:var(--tokui-bg-muted);border-radius:999px;height:8px}[data-tokui-theme=modern-dark] .tokui-slider__fill{background:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-slider__thumb{background:var(--tokui-primary);border:2px solid var(--tokui-bg);width:16px;height:16px;box-shadow:var(--tokui-shadow-sm);border-radius:50%;transition:transform .12s,box-shadow .15s}[data-tokui-theme=modern-dark] .tokui-slider__thumb:hover{box-shadow:var(--tokui-shadow-md);transform:translate(-50%,-50%)scale(1.12)}[data-tokui-theme=modern-dark] .tokui-slider__thumb--dragging{box-shadow:0 0 0 6px var(--tokui-primary-focus);transform:translate(-50%,-50%)scale(1.15)}[data-tokui-theme=modern-dark] .tokui-slider--sm .tokui-slider__track{border-radius:999px;height:6px}[data-tokui-theme=modern-dark] .tokui-slider--sm .tokui-slider__thumb{width:12px;height:12px}[data-tokui-theme=modern-dark] .tokui-slider--lg .tokui-slider__track{border-radius:999px;height:10px}[data-tokui-theme=modern-dark] .tokui-slider--lg .tokui-slider__thumb{width:20px;height:20px}[data-tokui-theme=modern-dark] .tokui-card{box-shadow:var(--tokui-surface-shadow);background:var(--tokui-bg);border:1px solid var(--tokui-border);border-radius:12px;transition:box-shadow .25s}[data-tokui-theme=modern-dark] .tokui-card:hover{box-shadow:var(--tokui-surface-shadow-hover)}[data-tokui-theme=modern-dark] .tokui-card-header{border-bottom:1px solid var(--tokui-border);padding:14px 20px}[data-tokui-theme=modern-dark] .tokui-card-body{padding:20px}[data-tokui-theme=modern-dark] .tokui-card-footer{border-top:1px solid var(--tokui-border);background:0 0;padding:12px 20px}[data-tokui-theme=modern-dark] .tokui-table-wrapper{background:var(--tokui-bg);box-shadow:var(--tokui-surface-shadow);border:1px solid var(--tokui-border);border-radius:12px;overflow:auto hidden}[data-tokui-theme=modern-dark] .tokui-table th{background:var(--tokui-surface-secondary);color:var(--tokui-text-muted);border-bottom:1px solid var(--tokui-border-strong);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:500}[data-tokui-theme=modern-dark] .tokui-table td{border-bottom:1px solid var(--tokui-border-strong);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-table--stripe tr:nth-child(2n) td{background:var(--tokui-bg-subtle)}[data-tokui-theme=modern-dark] .tokui-table tbody tr:hover td{background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-table tbody tr:last-child td{border-bottom:none}[data-tokui-theme=modern-dark] .tokui-tag{border-color:#0000;border-radius:999px;padding:2px 12px;font-weight:500}[data-tokui-theme=modern-dark] .tokui-callout{border-radius:12px}[data-tokui-theme=modern-dark] .tokui-callout--danger{background:var(--tokui-danger-1);border-left-color:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-callout--danger .tokui-callout__icon{color:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-code{background:var(--tokui-bg-subtle);border:1px solid var(--tokui-border);color:#e5e5e8;--tokui-code-text:#e5e5e8;--tokui-code-kw:#c678dd;--tokui-code-str:#98c379;--tokui-code-num:#d19a66;--tokui-code-fn:#61afef;--tokui-code-type:#e5c07b;--tokui-code-op:#56b6c2;--tokui-code-cmt:#7f848e;border-radius:12px}[data-tokui-theme=modern-dark] .tokui-breadcrumb__item{color:var(--tokui-text);transition:color .15s}[data-tokui-theme=modern-dark] .tokui-breadcrumb__item:last-of-type{color:var(--tokui-primary-7);font-weight:500}[data-tokui-theme=modern-dark] .tokui-breadcrumb__item:hover{color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-breadcrumb__sep{color:var(--tokui-text-disabled)}[data-tokui-theme=modern-dark] .tokui-pagination__item,[data-tokui-theme=modern-dark] .tokui-pagination__btn{color:var(--tokui-text);background:0 0;border-color:#0000;transition:color .15s,background-color .15s}[data-tokui-theme=modern-dark] .tokui-pagination__item:hover,[data-tokui-theme=modern-dark] .tokui-pagination__btn:hover{color:var(--tokui-primary-7);background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-pagination__item--active,[data-tokui-theme=modern-dark] .tokui-pagination__item[aria-current=page]{background:var(--tokui-primary);border-color:#0000;color:#fff!important}[data-tokui-theme=modern-dark] .tokui-label{color:var(--tokui-text-secondary);font-weight:500}[data-tokui-theme=modern-dark] .tokui-hr,[data-tokui-theme=modern-dark] .tokui-dv{border-top-color:var(--tokui-separator)}[data-tokui-theme=modern-dark] .tokui-switch__track{background:var(--tokui-switch-track)}[data-tokui-theme=modern-dark] .tokui-switch__track:before{background:var(--tokui-switch-thumb);box-shadow:0 1px 2px var(--tokui-switch-ring)}[data-tokui-theme=modern-dark] .tokui-switch-input:checked+.tokui-switch__track{background:var(--tokui-primary);border-color:var(--tokui-primary)}[data-tokui-theme=modern-dark] .tokui-switch-input:focus-visible+.tokui-switch__track{box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern-dark] .tokui-radio-item:before{border-color:var(--tokui-border-strong);background:var(--tokui-bg-subtle)}[data-tokui-theme=modern-dark] .tokui-radio-item:has(.tokui-radio-input:checked):after{background:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-radio-item:has(.tokui-radio-input:focus-visible):before{box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern-dark] .tokui-rate__star{color:var(--tokui-star)}[data-tokui-theme=modern-dark] .tokui-rate__star--active{color:var(--tokui-star-active)}[data-tokui-theme=modern-dark] .tokui-rate__star--hover{color:var(--tokui-star-hover)}[data-tokui-theme=modern-dark] .tokui-numinput{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg-subtle);box-shadow:var(--tokui-shadow-sm)}[data-tokui-theme=modern-dark] .tokui-numinput__btn{color:var(--tokui-text-secondary);background:0 0}[data-tokui-theme=modern-dark] .tokui-numinput__btn:hover{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern-dark] .tokui-datepicker-control{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg-subtle);box-shadow:var(--tokui-shadow-sm);transition:border-color .2s,box-shadow .2s}[data-tokui-theme=modern-dark] .tokui-datepicker-control:hover{border-color:var(--tokui-border-strong)}[data-tokui-theme=modern-dark] .tokui-datepicker--open .tokui-datepicker-control{border-color:var(--tokui-primary-6);box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern-dark] .tokui-datepicker-dropdown{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-datepicker-day:hover{background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-datepicker-day--today{color:var(--tokui-primary-7);box-shadow:inset 0 0 0 1px var(--tokui-primary-6)}[data-tokui-theme=modern-dark] .tokui-datepicker-day--selected,[data-tokui-theme=modern-dark] .tokui-datepicker-day--selected:hover{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern-dark] .tokui-datepicker-nav:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-cascader-menus{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-cascader-option:hover,[data-tokui-theme=modern-dark] .tokui-cascader-option--active{background:var(--tokui-primary-bg);color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-input-group{border:1px solid var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg-subtle);box-shadow:var(--tokui-shadow-sm);transition:border-color .2s,box-shadow .2s;overflow:hidden}[data-tokui-theme=modern-dark] .tokui-input-group:hover{border-color:var(--tokui-border-strong)}[data-tokui-theme=modern-dark] .tokui-input-group:focus-within{border-color:var(--tokui-primary-6);box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input,[data-tokui-theme=modern-dark] .tokui-input-group .tokui-search-input{box-shadow:none;color:var(--tokui-text);background:0 0;border:none;border-radius:0}[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input:focus,[data-tokui-theme=modern-dark] .tokui-input-group .tokui-search-input:focus{box-shadow:none}[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input-pre,[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input-app,[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input-prebtn,[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input-appbtn{border:none}[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input-prebtn:hover,[data-tokui-theme=modern-dark] .tokui-input-group .tokui-input-appbtn:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern-dark] .tokui-input-group--pill{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-calendar{border-radius:var(--tokui-control-radius);background:var(--tokui-bg);border-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-calendar--card{box-shadow:var(--tokui-surface-shadow)}[data-tokui-theme=modern-dark] .tokui-calendar__day:hover{background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-transfer__panel{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg-subtle)}[data-tokui-theme=modern-dark] .tokui-transfer__header{background:var(--tokui-surface-secondary);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-transfer__item:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern-dark] .tokui-transfer__btn{border-color:var(--tokui-border);background:var(--tokui-bg-muted);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-transfer__btn:hover:not(:disabled){background:var(--tokui-primary);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-primary)}[data-tokui-theme=modern-dark] .tokui-tree-node-header{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-tree-node-header:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern-dark] .tokui-tree-node--selected>.tokui-tree-node-header{background:var(--tokui-primary-bg);color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-tabs{border-bottom:1px solid var(--tokui-border);gap:4px}[data-tokui-theme=modern-dark] .tokui-tabs-label{color:var(--tokui-text-muted);font-weight:500}[data-tokui-theme=modern-dark] .tokui-tabs-label:hover{color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-tabs-panel{border-top:none;padding-top:16px}[data-tokui-theme=modern-dark] .tokui-collapse{border-color:var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-collapse-title{background:var(--tokui-surface-secondary)}[data-tokui-theme=modern-dark] .tokui-collapse-title:before{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-dialog{background:var(--tokui-bg);border-radius:16px}[data-tokui-theme=modern-dark] .tokui-dialog::-webkit-backdrop{background:var(--tokui-mask-bg)}[data-tokui-theme=modern-dark] .tokui-dialog::backdrop{background:var(--tokui-mask-bg)}[data-tokui-theme=modern-dark] .tokui-dialog-header{background:var(--tokui-bg);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-dialog-footer{background:var(--tokui-bg);border-top-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-dialog-close{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-dialog-close:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-drawer__panel{background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-drawer--open .tokui-drawer__overlay{background:var(--tokui-mask-bg)}[data-tokui-theme=modern-dark] .tokui-drawer__header{background:var(--tokui-bg);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-drawer__close{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-drawer__close:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-popover__panel,[data-tokui-theme=modern-dark] .tokui-popconfirm__popup,[data-tokui-theme=modern-dark] .tokui-hover-card__content{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-popover__trigger,[data-tokui-theme=modern-dark] .tokui-popconfirm__trigger{border-color:var(--tokui-border);background:var(--tokui-bg-subtle);box-shadow:var(--tokui-shadow-sm);border-radius:8px}[data-tokui-theme=modern-dark] .tokui-popover__trigger:hover,[data-tokui-theme=modern-dark] .tokui-popconfirm__trigger:hover{border-color:var(--tokui-border-strong);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-popconfirm__btn{border-radius:8px}[data-tokui-theme=modern-dark] .tokui-tooltip__popup{box-shadow:var(--tokui-shadow-sm);border-radius:8px}[data-tokui-theme=modern-dark] .tokui-tooltip{border-bottom-color:var(--tokui-text-disabled)}[data-tokui-theme=modern-dark] .tokui-menu{border-radius:var(--tokui-control-radius);background:var(--tokui-bg);border-color:var(--tokui-border);box-shadow:var(--tokui-shadow-sm)}[data-tokui-theme=modern-dark] .tokui-menu__item{color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-menu__item:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-menu__item--active{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);font-weight:600}[data-tokui-theme=modern-dark] .tokui-menu--horizontal .tokui-menu__item--active{border-bottom-color:var(--tokui-primary-7);color:var(--tokui-primary-7);background:0 0}[data-tokui-theme=modern-dark] .tokui-dropdown__panel{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-dropdown__item:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern-dark] .tokui-dropdown__item--danger:hover{background:var(--tokui-danger-bg);color:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-avatar--text{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern-dark] .tokui-badge{border-radius:999px;font-weight:500}[data-tokui-theme=modern-dark] .tokui-badge--default{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary)}[data-tokui-theme=modern-dark] .tokui-badge--primary{background:var(--tokui-primary-bg);color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-badge--success{background:var(--tokui-success-bg);color:var(--tokui-success)}[data-tokui-theme=modern-dark] .tokui-badge--warning{background:var(--tokui-warning-bg);color:var(--tokui-warning)}[data-tokui-theme=modern-dark] .tokui-badge--error,[data-tokui-theme=modern-dark] .tokui-badge--danger{background:var(--tokui-danger-bg);color:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-badge--info{background:var(--tokui-info-bg);color:var(--tokui-info)}[data-tokui-theme=modern-dark] .tokui-badge-box__count{box-shadow:0 0 0 2px var(--tokui-bg);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-badge-box__dot,[data-tokui-theme=modern-dark] .tokui-badge-box__text{box-shadow:0 0 0 2px var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-progress__track{background:var(--tokui-bg-muted);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-progress__bar{background:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-progress--success .tokui-progress__bar{background:var(--tokui-success)}[data-tokui-theme=modern-dark] .tokui-progress--error .tokui-progress__bar,[data-tokui-theme=modern-dark] .tokui-progress--danger .tokui-progress__bar{background:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-progress__circle-bg{stroke:var(--tokui-border-strong)}[data-tokui-theme=modern-dark] .tokui-progress__circle-bar{stroke:var(--tokui-primary)}[data-tokui-theme=modern-dark] .tokui-progress--success .tokui-progress__circle-bar{stroke:var(--tokui-success)}[data-tokui-theme=modern-dark] .tokui-progress--error .tokui-progress__circle-bar,[data-tokui-theme=modern-dark] .tokui-progress--danger .tokui-progress__circle-bar{stroke:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-progress__mini-bar{background:var(--tokui-bg-muted);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-progress__mini-fill{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-spin{color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-spin__spinner{border-color:var(--tokui-border-strong);border-top-color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-spin__dot,[data-tokui-theme=modern-dark] .tokui-spin__pulse{background:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-skeleton{background:linear-gradient(90deg, var(--tokui-skeleton-base) 25%, var(--tokui-skeleton-shine) 50%, var(--tokui-skeleton-base) 75%);border-radius:var(--tokui-control-radius);background-size:800px 100%}[data-tokui-theme=modern-dark] .tokui-skeleton__row,[data-tokui-theme=modern-dark] .tokui-skeleton__rect,[data-tokui-theme=modern-dark] .tokui-skeleton__circle{background:var(--tokui-skeleton-base)}[data-tokui-theme=modern-dark] .tokui-shimmer__row,[data-tokui-theme=modern-dark] .tokui-shimmer__circle{background:linear-gradient(90deg, var(--tokui-skeleton-base) 25%, var(--tokui-skeleton-shine) 37%, var(--tokui-skeleton-base) 63%);background-size:400% 100%}[data-tokui-theme=modern-dark] .tokui-step__circle{background:var(--tokui-bg);border-color:var(--tokui-border-strong)}[data-tokui-theme=modern-dark] .tokui-step:hover .tokui-step__circle{box-shadow:0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern-dark] .tokui-step--done:hover .tokui-step__circle{box-shadow:0 0 0 4px var(--tokui-success-bg)}[data-tokui-theme=modern-dark] .tokui-step--error:hover .tokui-step__circle{box-shadow:0 0 0 4px var(--tokui-danger-bg)}[data-tokui-theme=modern-dark] .tokui-timeline:before{background:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-ti__dot:after{background:var(--tokui-primary-7);box-shadow:0 0 0 2px var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-ti--success .tokui-ti__dot:after{background:var(--tokui-success);box-shadow:0 0 0 2px var(--tokui-success-bg)}[data-tokui-theme=modern-dark] .tokui-ti--warning .tokui-ti__dot:after{background:var(--tokui-warning);box-shadow:0 0 0 2px var(--tokui-warning-bg)}[data-tokui-theme=modern-dark] .tokui-ti--error .tokui-ti__dot:after,[data-tokui-theme=modern-dark] .tokui-ti--danger .tokui-ti__dot:after{background:var(--tokui-danger);box-shadow:0 0 0 2px var(--tokui-danger-bg)}[data-tokui-theme=modern-dark] .tokui-ti--info .tokui-ti__dot:after{background:var(--tokui-info);box-shadow:0 0 0 2px var(--tokui-info-bg)}[data-tokui-theme=modern-dark] .tokui-notification{border-radius:var(--tokui-control-radius);background:var(--tokui-bg);border-color:var(--tokui-border);box-shadow:var(--tokui-overlay-shadow)}[data-tokui-theme=modern-dark] .tokui-notification__close{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-notification__close:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-toast{border-radius:var(--tokui-control-radius);box-shadow:var(--tokui-overlay-shadow)}[data-tokui-theme=modern-dark] .tokui-empty__text{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-result__title{color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-result__desc{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-stat__value{letter-spacing:-.02em}[data-tokui-theme=modern-dark] .tokui-stat__title{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-backtop{background:var(--tokui-bg);border-color:var(--tokui-border);box-shadow:var(--tokui-surface-shadow);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-backtop:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-md code{background:var(--tokui-bg-muted);color:var(--tokui-code-text);border-radius:6px;padding:.12em .4em}[data-tokui-theme=modern-dark] .tokui-md__quote{border-left-color:var(--tokui-primary-7);background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-md__hr{border-top-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-md a{color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-md-table th{background:var(--tokui-surface-secondary);border-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-md-table td{border-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-bubble__avatar{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-bubble--user .tokui-bubble__body{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);box-shadow:var(--tokui-surface-shadow);border-radius:16px 16px 4px}[data-tokui-theme=modern-dark] .tokui-bubble--user .tokui-bubble__avatar{background:var(--tokui-primary-bg);color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-bubble--ai .tokui-bubble__avatar{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary)}[data-tokui-theme=modern-dark] .tokui-bubble--system .tokui-bubble__body{background:var(--tokui-bg-muted);color:var(--tokui-text-muted);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-agent{border-color:var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-agent__status{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-agent--running .tokui-agent__status{color:var(--tokui-primary-7);background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-agent--done .tokui-agent__status{color:var(--tokui-success);background:var(--tokui-success-bg)}[data-tokui-theme=modern-dark] .tokui-agent--error .tokui-agent__status,[data-tokui-theme=modern-dark] .tokui-agent--danger .tokui-agent__status{color:var(--tokui-danger);background:var(--tokui-danger-bg)}[data-tokui-theme=modern-dark] .tokui-tool-call{border-color:var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-tool-call__header{background:var(--tokui-surface-secondary);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-tool-call__status{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-tool-call--running .tokui-tool-call__status{color:var(--tokui-primary-7);background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-tool-call--done .tokui-tool-call__status{color:var(--tokui-success);background:var(--tokui-success-bg)}[data-tokui-theme=modern-dark] .tokui-tool-call--error .tokui-tool-call__status,[data-tokui-theme=modern-dark] .tokui-tool-call--danger .tokui-tool-call__status{color:var(--tokui-danger);background:var(--tokui-danger-bg)}[data-tokui-theme=modern-dark] .tokui-tool-call__result{background:var(--tokui-success-bg);border-left-color:var(--tokui-success);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-tool-call__error{background:var(--tokui-danger-bg);border-left-color:var(--tokui-danger);color:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-think,[data-tokui-theme=modern-dark] .tokui-think-chain{background:var(--tokui-bg-muted);border-left-color:var(--tokui-border-strong);border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern-dark] .tokui-think__summary:before,[data-tokui-theme=modern-dark] .tokui-think-chain__summary:before{color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-think-step__line{background:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-think-step--done .tokui-think-step__line{background:var(--tokui-success)}[data-tokui-theme=modern-dark] .tokui-think-step--running .tokui-think-step__line{background:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-think-step__dot{background:var(--tokui-border-strong)}[data-tokui-theme=modern-dark] .tokui-think-step__dur{background:var(--tokui-bg-muted);color:var(--tokui-text-muted);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-chat-input{border-color:var(--tokui-border);background:var(--tokui-bg-subtle);box-shadow:var(--tokui-shadow-sm);border-radius:24px}[data-tokui-theme=modern-dark] .tokui-chat-input:focus-within{border-color:var(--tokui-primary-6);box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus)}[data-tokui-theme=modern-dark] .tokui-chat-input__send{background:var(--tokui-primary);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-chat-input__counter{background:var(--tokui-bg-subtle);color:var(--tokui-text-muted)}[data-tokui-theme=modern-dark] .tokui-quick-reply__item{border-color:var(--tokui-border);background:var(--tokui-bg);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-quick-reply__item:hover{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);border-color:var(--tokui-primary-4)}[data-tokui-theme=modern-dark] .tokui-suggestion{border-radius:var(--tokui-control-radius);border-color:var(--tokui-border);background:var(--tokui-bg);box-shadow:var(--tokui-surface-shadow)}[data-tokui-theme=modern-dark] .tokui-suggestion:hover{box-shadow:var(--tokui-surface-shadow-hover);border-left-color:var(--tokui-primary-hover)}[data-tokui-theme=modern-dark] .tokui-suggestion__icon{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern-dark] .tokui-msg-actions__btn{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-msg-actions__btn:hover{background:var(--tokui-bg-muted);color:var(--tokui-text)}[data-tokui-theme=modern-dark] .tokui-command__overlay{background:var(--tokui-mask-bg)}[data-tokui-theme=modern-dark] .tokui-command__panel{border-color:var(--tokui-border);background:var(--tokui-bg);border-radius:16px}[data-tokui-theme=modern-dark] .tokui-command__item{border-radius:999px}[data-tokui-theme=modern-dark] .tokui-command__item:hover{background:var(--tokui-bg-muted)}[data-tokui-theme=modern-dark] .tokui-command__item--selected{background:var(--tokui-primary-bg);color:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-command__shortcut{background:var(--tokui-bg-muted);border-radius:6px}[data-tokui-theme=modern-dark] .tokui-quote{background:var(--tokui-bg-muted);border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern-dark] .tokui-quote__bar{background:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-quote__role{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-quote__text{color:var(--tokui-text-secondary)}[data-tokui-theme=modern-dark] .tokui-file-tree{border-color:var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-file-tree__folder-name:hover,[data-tokui-theme=modern-dark] .tokui-file-tree__file:hover{background:var(--tokui-bg-muted);border-radius:6px}[data-tokui-theme=modern-dark] .tokui-file-tree__file-badge{background:var(--tokui-bg-muted);color:var(--tokui-text-secondary);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-carousel{border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern-dark] .tokui-carousel__arrow{box-shadow:var(--tokui-shadow-sm)}[data-tokui-theme=modern-dark] .tokui-carousel--thumb{background:var(--tokui-bg-subtle)}[data-tokui-theme=modern-dark] .tokui-carousel__thumbs{gap:10px;padding:12px}[data-tokui-theme=modern-dark] .tokui-carousel__thumb{width:84px;height:56px;box-shadow:var(--tokui-shadow-sm);opacity:.55;background:var(--tokui-bg-muted);border:none;border-radius:10px}[data-tokui-theme=modern-dark] .tokui-carousel__thumb:hover{opacity:.85}[data-tokui-theme=modern-dark] .tokui-carousel__thumb--active{opacity:1;box-shadow:0 0 0 2px var(--tokui-bg-subtle), 0 0 0 4px var(--tokui-primary-focus), var(--tokui-shadow-sm)}[data-tokui-theme=modern-dark] .tokui-artifact,[data-tokui-theme=modern-dark] .tokui-sandbox,[data-tokui-theme=modern-dark] .tokui-diff{border-color:var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-artifact__header,[data-tokui-theme=modern-dark] .tokui-sandbox__header,[data-tokui-theme=modern-dark] .tokui-diff__header{background:var(--tokui-surface-secondary);border-bottom-color:var(--tokui-border)}[data-tokui-theme=modern-dark] .tokui-artifact__tab--active{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse)}[data-tokui-theme=modern-dark] .tokui-sandbox__lang,[data-tokui-theme=modern-dark] .tokui-diff__lang{background:var(--tokui-primary-bg);color:var(--tokui-primary-7);border-radius:999px}[data-tokui-theme=modern-dark] .tokui-diff__line--add{background:var(--tokui-success-bg)}[data-tokui-theme=modern-dark] .tokui-diff__line--add .tokui-diff__code{color:var(--tokui-success)}[data-tokui-theme=modern-dark] .tokui-diff__line--remove{background:var(--tokui-danger-bg)}[data-tokui-theme=modern-dark] .tokui-diff__line--remove .tokui-diff__code{color:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-welcome-feature{border-color:var(--tokui-border);border-radius:var(--tokui-control-radius);background:var(--tokui-bg)}[data-tokui-theme=modern-dark] .tokui-welcome-feature:hover{box-shadow:var(--tokui-surface-shadow-hover)}[data-tokui-theme=modern-dark] .tokui-welcome-feature__icon{border-radius:var(--tokui-control-radius)}[data-tokui-theme=modern-dark] .tokui-latency--generating{background:var(--tokui-primary-bg)}[data-tokui-theme=modern-dark] .tokui-latency--thinking{background:var(--tokui-warning-bg)}[data-tokui-theme=modern-dark] .tokui-dot__circle{background:var(--tokui-text-disabled)}[data-tokui-theme=modern-dark] .tokui-dot--primary .tokui-dot__circle{background:var(--tokui-primary-7)}[data-tokui-theme=modern-dark] .tokui-dot--success .tokui-dot__circle{background:var(--tokui-success)}[data-tokui-theme=modern-dark] .tokui-dot--warning .tokui-dot__circle{background:var(--tokui-warning)}[data-tokui-theme=modern-dark] .tokui-dot--danger .tokui-dot__circle,[data-tokui-theme=modern-dark] .tokui-dot--error .tokui-dot__circle{background:var(--tokui-danger)}[data-tokui-theme=modern-dark] .tokui-dot--info .tokui-dot__circle{background:var(--tokui-info)}@-webkit-keyframes tokuiFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tokuiFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}[data-tokui-theme]{color:var(--tokui-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.6}.tokui-h1{color:var(--tokui-text);margin:.8em 0 .4em;font-size:1.75rem;font-weight:700}.tokui-h2{color:var(--tokui-text);margin:.6em 0 .3em;font-size:1.5rem;font-weight:600}.tokui-h3{color:var(--tokui-text);margin:.5em 0 .25em;font-size:1.25rem;font-weight:600}.tokui-h4{color:var(--tokui-text);margin:.4em 0 .2em;font-size:1.1rem;font-weight:600}.tokui-h5{color:var(--tokui-text);margin:.3em 0 .15em;font-size:1rem;font-weight:600}.tokui-h6{color:var(--tokui-text);margin:.3em 0 .15em;font-size:.875rem;font-weight:600}.tokui-p{color:var(--tokui-text);margin:.5em 0}.tokui-p--muted{color:var(--tokui-text-muted)}.tokui-p--bold{font-weight:600}.tokui-p--sm{font-size:.8rem}.tokui-p--lg{font-size:1.15rem}.tokui-link{color:var(--tokui-primary);border-bottom:1px solid #0000;margin-right:12px;text-decoration:none;transition:border-color .2s}.tokui-link:hover{border-bottom-color:var(--tokui-primary)}.tokui-a--muted{color:var(--tokui-text-muted)}.tokui-a--muted:hover{border-bottom-color:var(--tokui-text-muted)}.tokui-a--danger{color:var(--tokui-danger)}.tokui-a--danger:hover{border-bottom-color:var(--tokui-danger)}.tokui-a--success{color:var(--tokui-success)}.tokui-a--success:hover{border-bottom-color:var(--tokui-success)}.tokui-a--underline{border-bottom:1px solid}.tokui-a--disabled{opacity:.45;pointer-events:none;cursor:not-allowed}.tokui-img{border-radius:var(--tokui-radius);cursor:pointer;max-width:100%;height:auto;transition:transform .2s}.tokui-img:hover{transform:scale(1.02)}.tokui-imgs{gap:8px;margin:.5em 0;display:grid}.tokui-imgs .tokui-img{-o-object-fit:cover;object-fit:cover;aspect-ratio:1;border-radius:4px;width:100%;height:100%}.tokui-imgs--1{grid-template-columns:1fr;max-width:400px;margin:.5em auto}.tokui-imgs--1 .tokui-img{aspect-ratio:auto;-o-object-fit:contain;object-fit:contain;max-height:300px}.tokui-imgs--2{grid-template-columns:1fr 1fr}.tokui-imgs--3{grid-template-columns:1fr 1fr 1fr}.tokui-imgs--4{grid-template-columns:1fr 1fr}.tokui-imgs--5,.tokui-imgs--6,.tokui-imgs--7,.tokui-imgs--8,.tokui-imgs--9{grid-template-columns:1fr 1fr 1fr}.tokui-lightbox{z-index:9999;background:var(--tokui-lightbox-bg);justify-content:center;align-items:center;-webkit-animation:.2s tokuiFadeIn;animation:.2s tokuiFadeIn;display:flex;position:fixed;inset:0}.tokui-lightbox__img{-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;max-width:90vw;max-height:85vh;transition:transform .15s}.tokui-lightbox__prev,.tokui-lightbox__next{background:var(--tokui-lightbox-btn-bg);color:var(--tokui-btn-text-inverse);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:2rem;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.tokui-lightbox__prev:hover,.tokui-lightbox__next:hover{background:var(--tokui-lightbox-btn-hover)}.tokui-lightbox__prev{left:16px}.tokui-lightbox__next{right:16px}.tokui-lightbox__close{background:var(--tokui-lightbox-btn-bg);color:var(--tokui-btn-text-inverse);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.8rem;transition:background .2s;display:flex;position:absolute;top:16px;right:16px}.tokui-lightbox__close:hover{background:var(--tokui-lightbox-btn-hover)}.tokui-lightbox__toolbar{background:var(--tokui-lightbox-counter-bg);border-radius:20px;align-items:center;gap:2px;padding:4px 8px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.tokui-lightbox__tool{color:var(--tokui-btn-text-inverse);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;transition:background .2s;display:flex}.tokui-lightbox__tool:hover{background:#ffffff26}.tokui-lightbox__scale{color:var(--tokui-btn-text-inverse);text-align:center;min-width:42px;font-size:.8rem}.tokui-lightbox__sep{background:#ffffff40;flex-shrink:0;width:1px;height:18px;margin:0 4px}.tokui-lightbox__counter{color:var(--tokui-btn-text-inverse);white-space:nowrap;padding:0 6px;font-size:.85rem}.tokui-lightbox__filename{color:var(--tokui-lightbox-counter-color);background:var(--tokui-lightbox-counter-bg);text-overflow:ellipsis;white-space:nowrap;border-radius:12px;max-width:60vw;padding:4px 14px;font-size:.85rem;position:absolute;top:16px;left:50%;overflow:hidden;transform:translate(-50%)}.tokui-hr,.tokui-dv{border:none;border-top:1px solid var(--tokui-border);margin:1em 0}.tokui-dv--dashed{border-top-style:dashed}.tokui-dv--dotted{border-top-style:dotted}.tokui-dv--sm{margin:.4em 0}.tokui-dv--lg{margin:1.8em 0}.tokui-dv--text{color:var(--tokui-text);border:none;align-items:center;margin:1em 0;display:flex}.tokui-dv--text:before,.tokui-dv--text:after{content:\\\"\\\";border-top:1px solid var(--tokui-border);flex:1}.tokui-dv--text .tokui-dv-text{white-space:nowrap;padding:0 1em;font-size:.9rem;font-weight:600}.tokui-dv--left:before,.tokui-dv--right:after{flex:0 0 5%}.tokui-dv--plain .tokui-dv-text{color:var(--tokui-text-muted);font-size:.85rem;font-weight:400}.tokui-dv--vert{vertical-align:middle;border:none;border-left:1px solid var(--tokui-border);width:1px;height:.9em;margin:0 8px;display:inline-block}.tokui-md{color:var(--tokui-text);margin:.5em 0;line-height:1.6}.tokui-md h1{margin:.6em 0 .3em;font-size:1.5em}.tokui-md h2{margin:.5em 0 .25em;font-size:1.25em}.tokui-md h3{margin:.4em 0 .2em;font-size:1.1em}.tokui-md p{margin:.4em 0}.tokui-md ul,.tokui-md ol{margin:.5em 0;padding-left:1.5em}.tokui-md li{margin:.2em 0}.tokui-md code{background:var(--tokui-stripe);border-radius:3px;padding:.15em .4em;font-size:.9em}.tokui-md strong{font-weight:600}.tokui-md del{opacity:.6;text-decoration:line-through}.tokui-md a{color:var(--tokui-primary);text-decoration:none}.tokui-md a:hover{text-decoration:underline}.tokui-md img{border-radius:4px;max-width:100%;height:auto;margin:.5em 0}.tokui-md-table{border-collapse:collapse;width:100%;margin:.5em 0}.tokui-md-table th,.tokui-md-table td{border:1px solid var(--tokui-border);text-align:left;padding:.5em}.tokui-md-table th{background:var(--tokui-stripe);font-weight:600}.tokui-md-table td img{max-width:100%;display:block}.tokui-code{background:var(--tokui-code-bg);color:var(--tokui-code-text);border-radius:var(--tokui-radius);counter-reset:line-number;scrollbar-width:thin;scrollbar-color:#0000001a transparent;margin:.5em 0;padding:1em;font-family:Fira Code,Consolas,Monaco,monospace;font-size:.875em;line-height:1.5;overflow-x:auto}.tokui-code::-webkit-scrollbar{height:5px}.tokui-code::-webkit-scrollbar-track{background:0 0}.tokui-code::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.tokui-code::-webkit-scrollbar-thumb:hover{background:#0003}[data-tokui-theme=dark] .tokui-code{scrollbar-color:#ffffff1f transparent}[data-tokui-theme=dark] .tokui-code::-webkit-scrollbar-thumb{background:#ffffff1f}[data-tokui-theme=dark] .tokui-code::-webkit-scrollbar-thumb:hover{background:#ffffff40}.tokui-code code{background:0 0;padding:0}.tokui-code .code-line{min-height:1.5em;padding-left:3.5em;display:block;position:relative}.tokui-code .code-line:before{counter-increment:line-number;content:counter(line-number);text-align:right;width:2.5em;color:var(--tokui-code-cmt,#5c6370);opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:.85em;position:absolute;left:0}.tokui-table-wrapper{-webkit-overflow-scrolling:touch;margin:.5em 0;overflow-x:auto}.tokui-table-wrapper::-webkit-scrollbar{height:8px}.tokui-table-wrapper::-webkit-scrollbar-thumb{background:var(--tokui-border);border-radius:4px}.tokui-table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--tokui-text-muted)}.tokui-table{border-collapse:collapse;width:100%;font-size:.9em}.tokui-table th,.tokui-table td{border-bottom:1px solid var(--tokui-border);text-align:left;padding:8px 12px;transition:background .15s}.tokui-table th{background:var(--tokui-stripe);color:var(--tokui-text);border-bottom:1px solid var(--tokui-border);font-weight:600}.tokui-table caption{text-align:left;color:var(--tokui-text-muted);padding:8px 12px;font-weight:500}.tokui-table--stripe tr:nth-child(2n) td{background:var(--tokui-stripe)}.tokui-table tbody tr:hover td{background:var(--tokui-primary-hover)}.tokui-table--stripe tbody tr:hover td{background:var(--tokui-primary-focus)}.tokui-form{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.tokui-form>.tokui-btn{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.tokui-field{flex-direction:column;gap:4px;display:flex}.tokui-label{color:var(--tokui-text);font-size:.875rem;font-weight:500}.tokui-input,.tokui-select{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);color:var(--tokui-text);background:var(--tokui-bg);outline:none;padding:8px 12px;font-size:.9rem;transition:border-color .2s}.tokui-input:focus,.tokui-select:focus{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-primary-focus)}.tokui-input::-moz-placeholder{color:var(--tokui-text-muted)}.tokui-input:-ms-input-placeholder{color:var(--tokui-text-muted)}.tokui-input::placeholder{color:var(--tokui-text-muted)}.tokui-input:disabled,.tokui-select:disabled{opacity:.45;cursor:not-allowed;background:var(--tokui-stripe)}.tokui-select[multiple]{min-height:120px;padding:4px 8px}.tokui-picker{position:relative}.tokui-picker-control{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);cursor:pointer;flex-wrap:wrap;align-items:center;gap:4px;min-height:36px;padding:4px 32px 4px 8px;transition:border-color .2s;display:flex;position:relative}.tokui-picker-control:hover{border-color:var(--tokui-primary)}.tokui-picker--open .tokui-picker-control,.tokui-picker-control:focus-within{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-primary-focus)}.tokui-picker-search{min-width:60px;color:var(--tokui-text);background:0 0;border:none;outline:none;flex:1;padding:4px 0;font-size:.9rem;line-height:1.4}.tokui-picker-search::-moz-placeholder{color:var(--tokui-text-muted)}.tokui-picker-search:-ms-input-placeholder{color:var(--tokui-text-muted)}.tokui-picker-search::placeholder{color:var(--tokui-text-muted)}.tokui-picker-arrow{pointer-events:none;color:var(--tokui-text-muted);font-size:.7rem;line-height:1;transition:transform .2s;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.tokui-picker-arrow:before{content:\\\"▼\\\"}.tokui-picker--open .tokui-picker-arrow{transform:translateY(-50%)rotate(180deg)}.tokui-picker--open{z-index:100}.tokui-picker-dropdown{background:var(--tokui-bg);border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);max-height:240px;box-shadow:var(--tokui-overlay-shadow);z-index:999;margin:0;padding:0;list-style:none;display:none;position:fixed;overflow-y:auto}.tokui-picker--open .tokui-picker-dropdown{display:block}.tokui-picker-option{cursor:pointer;color:var(--tokui-text);border-radius:4px;margin:1px 4px;padding:8px 32px 8px 12px;font-size:.88rem;transition:background .15s;position:relative}.tokui-picker-option:hover{background:var(--tokui-stripe)}.tokui-picker-option--active{background:var(--tokui-primary-focus)}.tokui-picker-option--selected{background:var(--tokui-primary-bg);color:var(--tokui-primary);font-weight:500}.tokui-picker-option--selected:after{content:\\\"✓\\\";color:var(--tokui-primary);font-size:.8rem;font-weight:700;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.tokui-picker-empty{text-align:center;color:var(--tokui-text-muted);padding:12px;font-size:.85rem}.tokui-picker-tag{background:var(--tokui-primary);color:#fff;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:center;gap:2px;max-width:140px;padding:1px 4px 1px 8px;font-size:.8rem;line-height:1.5;-webkit-animation:.15s tokuiTagIn;animation:.15s tokuiTagIn;display:inline-flex;overflow:hidden}.tokui-picker-tag-close{cursor:pointer;color:#ffffffb3;border-radius:2px;margin-left:2px;padding:2px;font-size:.7rem;line-height:1;transition:all .15s}.tokui-picker-tag-close:hover{color:#fff;background:#00000026}@-webkit-keyframes tokuiTagIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes tokuiTagIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.tokui-picker--disabled{opacity:.5;pointer-events:none}.tokui-picker--error .tokui-picker-control{border-color:var(--tokui-danger)}.tokui-picker--success .tokui-picker-control{border-color:var(--tokui-success)}.tokui-input-group{align-items:stretch;display:flex}.tokui-input-group>.tokui-input,.tokui-input-group>.tokui-search-input{border-radius:0;flex:1}.tokui-input-group>:first-child{border-top-left-radius:var(--tokui-radius);border-bottom-left-radius:var(--tokui-radius)}.tokui-input-group>:last-child{border-top-right-radius:var(--tokui-radius);border-bottom-right-radius:var(--tokui-radius)}.tokui-input-group>.tokui-input:only-child,.tokui-input-group>.tokui-search-input:only-child{border-radius:var(--tokui-radius)}.tokui-input-group--pill>.tokui-input--pill,.tokui-input-group--pill>.tokui-search-input>.tokui-input--pill{border-radius:999px 0 0 999px}.tokui-input-group--pill>:last-child{border-radius:0 999px 999px 0}.tokui-input-pre,.tokui-input-app{background:var(--tokui-stripe);border:1px solid var(--tokui-border);color:var(--tokui-text-muted);white-space:nowrap;align-items:center;padding:0 12px;font-size:.9rem;display:flex}.tokui-input-pre{border-right:none}.tokui-input-app{border-left:none}.tokui-input-prebtn,.tokui-input-appbtn{border:1px solid var(--tokui-border);background:var(--tokui-bg);color:var(--tokui-text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;padding:0 12px;font-size:.9rem;display:flex}.tokui-input-prebtn{border-right:none}.tokui-input-appbtn{border-left:none}.tokui-input-prebtn:hover,.tokui-input-appbtn:hover{background:var(--tokui-stripe)}.tokui-input-pre--primary,.tokui-input-app--primary,.tokui-input-prebtn--primary,.tokui-input-appbtn--primary{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-primary)}.tokui-input-pre--danger,.tokui-input-app--danger,.tokui-input-prebtn--danger,.tokui-input-appbtn--danger{background:var(--tokui-danger);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-danger)}.tokui-input-pre--success,.tokui-input-app--success,.tokui-input-prebtn--success,.tokui-input-appbtn--success{background:var(--tokui-success);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-success)}.tokui-input-pre--warning,.tokui-input-app--warning,.tokui-input-prebtn--warning,.tokui-input-appbtn--warning{background:var(--tokui-warning);color:var(--tokui-btn-warning-text);border-color:var(--tokui-warning)}.tokui-input-pre--info,.tokui-input-app--info,.tokui-input-prebtn--info,.tokui-input-appbtn--info{background:var(--tokui-info);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-info)}.tokui-input-pre--dark,.tokui-input-app--dark,.tokui-input-prebtn--dark,.tokui-input-appbtn--dark{background:var(--tokui-dark);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-dark)}.tokui-input-prebtn--primary:hover,.tokui-input-appbtn--primary:hover{background:var(--tokui-btn-primary-hover);color:var(--tokui-btn-text-inverse)}.tokui-input-prebtn--danger:hover,.tokui-input-appbtn--danger:hover{background:var(--tokui-btn-danger-hover);color:var(--tokui-btn-text-inverse)}.tokui-input-prebtn--success:hover,.tokui-input-appbtn--success:hover{background:var(--tokui-btn-success-hover);color:var(--tokui-btn-text-inverse)}.tokui-input-prebtn--warning:hover,.tokui-input-appbtn--warning:hover{background:var(--tokui-btn-warning-hover);color:var(--tokui-btn-warning-text)}.tokui-input-prebtn--info:hover,.tokui-input-appbtn--info:hover,.tokui-input-prebtn--dark:hover,.tokui-input-appbtn--dark:hover{opacity:.85;color:var(--tokui-btn-text-inverse)}.tokui-field--inline{flex-direction:row;align-items:center;gap:8px}.tokui-field--inline>.tokui-label{text-align:right;flex-shrink:0;min-width:80px}.tokui-field--inline>.tokui-input,.tokui-field--inline>.tokui-select,.tokui-field--inline>.tokui-search-input,.tokui-field--inline>.tokui-input-group,.tokui-field--inline>.tokui-picker,.tokui-field--inline>.tokui-field__hint{flex:1;min-width:0}.tokui-field__hint{color:var(--tokui-text-muted);margin-top:2px;font-size:.8rem;line-height:1.4}.tokui-field__hint--error{color:var(--tokui-danger)}.tokui-field__hint--success{color:var(--tokui-success)}.tokui-search-input{align-items:center;display:flex;position:relative}.tokui-search-input>.tokui-input{width:100%;padding-left:36px}.tokui-search-input--right>.tokui-input{padding-left:12px;padding-right:36px}.tokui-search-input__icon{color:var(--tokui-text-muted);pointer-events:none;z-index:1;align-items:center;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.tokui-search-input--right .tokui-search-input__icon{left:auto;right:10px}.tokui-search-input>.tokui-input--pill,.tokui-search-input.tokui-search-input--pill>.tokui-input{border-radius:999px}.tokui-pwd-toggle{border:1px solid var(--tokui-border);background:var(--tokui-bg);color:var(--tokui-text-muted);cursor:pointer;border-left:none;justify-content:center;align-items:center;padding:0 8px;transition:color .15s;display:flex}.tokui-pwd-toggle svg{display:block}.tokui-pwd-toggle:hover,.tokui-pwd-toggle--active{color:var(--tokui-primary)}.tokui-btn{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);cursor:pointer;background:var(--tokui-bg);color:var(--tokui-text);justify-content:center;align-items:center;margin:0 8px 0 0;padding:8px 20px;font-size:.9rem;font-weight:500;transition:all .2s;display:inline-flex}a+.tokui-btn,.tokui-link+.tokui-btn,.tokui-tag+.tokui-btn{margin-left:8px}.tokui-card-footer .tokui-btn,.tokui-dialog-footer .tokui-btn{margin-bottom:0;margin-right:0}.tokui-btn:hover{background:var(--tokui-stripe)}.tokui-btn:focus-visible{outline:2px solid var(--tokui-primary);outline-offset:2px}.tokui-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.tokui-btn[type=submit]{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-primary)}.tokui-btn[type=submit]:hover{background:var(--tokui-btn-primary-hover);color:var(--tokui-btn-text-inverse)}.tokui-radio-group{flex-wrap:wrap;gap:16px;display:flex}.tokui-radio-item{cursor:pointer;align-items:center;gap:8px;padding-left:24px;font-size:.9rem;line-height:1.6;display:flex;position:relative}.tokui-radio-input{opacity:0;width:0;height:0;position:absolute}.tokui-radio-item:before{content:\\\"\\\";border:2px solid var(--tokui-border);background:var(--tokui-bg);box-sizing:border-box;border-radius:50%;width:16px;height:16px;transition:border-color .2s,box-shadow .2s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.tokui-radio-item:after{content:\\\"\\\";background:var(--tokui-primary);border-radius:50%;width:8px;height:8px;transition:transform .2s;position:absolute;top:50%;left:4px;transform:translateY(-50%)scale(0)}.tokui-radio-item:hover:before{border-color:var(--tokui-primary)}.tokui-radio-item:has(.tokui-radio-input:checked):before{border-color:var(--tokui-primary)}.tokui-radio-item:has(.tokui-radio-input:checked):after{transform:translateY(-50%)scale(1)}.tokui-radio-item:has(.tokui-radio-input:focus-visible):before{box-shadow:0 0 0 2px var(--tokui-primary-focus)}.tokui-checkbox-group{flex-wrap:wrap;gap:16px;display:flex}.tokui-checkbox-item{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.tokui-checkbox-item .tokui-checkbox-input{cursor:pointer;margin:0}.tokui-checkbox-item .tokui-checkbox-text{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tokui-radio-group--vertical,.tokui-checkbox-group--vertical{flex-flow:column;align-items:flex-start;gap:8px}.tokui-checkbox{cursor:pointer;align-items:center;gap:6px;font-size:.9rem;display:flex}.tokui-checkbox--inline{margin-right:16px;display:inline-flex}.tokui-checkbox-input{accent-color:var(--tokui-primary)}.tokui-switch{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.tokui-switch-input{opacity:0;width:0;height:0;position:absolute}.tokui-switch__track{background:#00000040;border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .2s;display:inline-block;position:relative}.tokui-switch__track:before{content:\\\"\\\";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.tokui-switch-input:checked+.tokui-switch__track{background:var(--tokui-primary)}.tokui-switch-input:checked+.tokui-switch__track:before{transform:translate(18px)}.tokui-switch-input:disabled+.tokui-switch__track{opacity:.4;cursor:not-allowed}.tokui-switch-input:disabled~.tokui-switch__label{opacity:.5;cursor:not-allowed}.tokui-switch:has(.tokui-switch-input:disabled){cursor:not-allowed}.tokui-switch__label{color:var(--tokui-text)}.tokui-switch--sm .tokui-switch__track{border-radius:9px;width:32px;height:18px}.tokui-switch--sm .tokui-switch__track:before{width:14px;height:14px;top:2px;left:2px}.tokui-switch--sm .tokui-switch-input:checked+.tokui-switch__track:before{transform:translate(14px)}.tokui-switch--lg .tokui-switch__track{border-radius:14px;width:52px;height:28px}.tokui-switch--lg .tokui-switch__track:before{width:24px;height:24px;top:2px;left:2px}.tokui-switch--lg .tokui-switch-input:checked+.tokui-switch__track:before{transform:translate(24px)}[data-tokui-theme=dark] .tokui-switch__track{background:#ffffff40}.tokui-toggle{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);color:var(--tokui-text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;justify-content:center;align-items:center;margin:0 8px 8px 0;padding:6px 14px;font-size:.875rem;font-weight:500;line-height:1.4;transition:all .15s;display:inline-flex}.tokui-toggle:hover{background:var(--tokui-stripe)}.tokui-toggle:focus-visible{outline:2px solid var(--tokui-primary);outline-offset:2px}.tokui-toggle--pressed{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse,#fff);border-color:var(--tokui-primary)}.tokui-toggle--pressed:hover{background:var(--tokui-btn-primary-hover,var(--tokui-primary))}.tokui-toggle--sm{padding:3px 8px;font-size:.75rem}.tokui-toggle--lg{padding:10px 20px;font-size:1rem}.tokui-toggle--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.tokui-toggle-group{gap:0;display:inline-flex}.tokui-toggle-group>.tokui-toggle{border-radius:0;margin-bottom:0;margin-left:-1px;margin-right:0}.tokui-toggle-group>.tokui-toggle:first-child{border-top-left-radius:var(--tokui-radius);border-bottom-left-radius:var(--tokui-radius);margin-left:0}.tokui-toggle-group>.tokui-toggle:last-child{border-top-right-radius:var(--tokui-radius);border-bottom-right-radius:var(--tokui-radius)}.tokui-toggle-group>.tokui-toggle:hover,.tokui-toggle-group>.tokui-toggle--pressed{z-index:1;position:relative}.tokui-toggle-group--sm>.tokui-toggle{padding:3px 8px;font-size:.75rem}.tokui-toggle-group--lg>.tokui-toggle{padding:10px 20px;font-size:1rem}[data-tokui-theme=dark] .tokui-toggle--pressed{background:var(--tokui-primary);border-color:var(--tokui-primary)}.tokui-card{border:1px solid var(--tokui-border);border-radius:calc(var(--tokui-radius) + 4px);background:var(--tokui-bg);margin-bottom:12px;overflow:hidden}.tokui-card-header{padding:12px 16px;font-size:1rem;font-weight:600}.tokui-card-source-btns{gap:2px;margin-left:auto;display:inline-flex}.tokui-card-source-btn{cursor:pointer;color:var(--tokui-text-muted);opacity:.5;background:0 0;border:none;align-items:center;padding:2px 4px;transition:opacity .15s,color .15s;display:inline-flex}.tokui-card-source-btn:hover{opacity:1;color:var(--tokui-text)}.tokui-card-source{white-space:pre-wrap;word-break:break-all;background:var(--tokui-stripe);border-top:1px solid var(--tokui-border);max-height:400px;margin:0;padding:12px 16px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem;line-height:1.5;overflow:auto}.tokui-card-body{padding:16px}.tokui-card-body>*+*{margin-top:8px}.tokui-card-footer{border-top:1px solid var(--tokui-border);background:var(--tokui-stripe);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.tokui-row{grid-template-columns:repeat(12,1fr);gap:12px;margin-bottom:12px;display:grid}.tokui-col{box-sizing:border-box;min-width:0}.tokui-list{margin:.5em 0;padding-left:1.5em}.tokui-list--plain{padding-left:0;list-style:none}.tokui-list-item{cursor:default;border-radius:6px;margin:.3em 0;padding:.4em .6em;transition:background .2s,transform .15s}.tokui-list-item:hover{background:var(--tokui-bg-muted,#0000000a);transform:translate(2px)}.tokui-scroll-area{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);width:100%;height:200px;position:relative;overflow:hidden}.tokui-scroll-area__viewport{width:100%;height:100%;padding:var(--tokui-space,12px);overflow:auto}.tokui-scroll-area__viewport::-webkit-scrollbar{width:6px;height:6px}.tokui-scroll-area__viewport::-webkit-scrollbar-track{background:0 0}.tokui-scroll-area__viewport::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.tokui-scroll-area__viewport::-webkit-scrollbar-thumb:hover{background:#0000004d}.tokui-scroll-area__viewport::-webkit-scrollbar-corner{background:0 0}.tokui-scroll-area__viewport{scrollbar-width:thin;scrollbar-color:#00000026 transparent}[data-tokui-theme=dark] .tokui-scroll-area__viewport::-webkit-scrollbar-thumb{background:#fff3}[data-tokui-theme=dark] .tokui-scroll-area__viewport::-webkit-scrollbar-thumb:hover{background:#fff6}[data-tokui-theme=dark] .tokui-scroll-area__viewport{scrollbar-color:#fff3 transparent}.tokui-tabs{flex-wrap:wrap;margin:.5em 0;display:flex;position:relative}.tokui-tabs-input{opacity:0;pointer-events:none;position:absolute}.tokui-tabs-label{cursor:pointer;color:var(--tokui-text-muted);border-bottom:2px solid #0000;order:1;margin-bottom:-2px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:all .2s}.tokui-tabs-label:hover{color:var(--tokui-primary)}.tokui-tabs-panel{border-top:2px solid var(--tokui-border);order:2;width:100%;padding:12px 0;display:none}:is(.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"0\\\"]:checked) .tokui-tabs-label[data-index=\\\"0\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"1\\\"]:checked) .tokui-tabs-label[data-index=\\\"1\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"2\\\"]:checked) .tokui-tabs-label[data-index=\\\"2\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"3\\\"]:checked) .tokui-tabs-label[data-index=\\\"3\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"4\\\"]:checked) .tokui-tabs-label[data-index=\\\"4\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"5\\\"]:checked) .tokui-tabs-label[data-index=\\\"5\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"6\\\"]:checked) .tokui-tabs-label[data-index=\\\"6\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"7\\\"]:checked) .tokui-tabs-label[data-index=\\\"7\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"8\\\"]:checked) .tokui-tabs-label[data-index=\\\"8\\\"]){color:var(--tokui-primary);border-bottom-color:var(--tokui-primary)}:is(.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"0\\\"]:checked) .tokui-tabs-panel[data-index=\\\"0\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"1\\\"]:checked) .tokui-tabs-panel[data-index=\\\"1\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"2\\\"]:checked) .tokui-tabs-panel[data-index=\\\"2\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"3\\\"]:checked) .tokui-tabs-panel[data-index=\\\"3\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"4\\\"]:checked) .tokui-tabs-panel[data-index=\\\"4\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"5\\\"]:checked) .tokui-tabs-panel[data-index=\\\"5\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"6\\\"]:checked) .tokui-tabs-panel[data-index=\\\"6\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"7\\\"]:checked) .tokui-tabs-panel[data-index=\\\"7\\\"],.tokui-tabs:has(.tokui-tabs-input[data-index=\\\"8\\\"]:checked) .tokui-tabs-panel[data-index=\\\"8\\\"]){display:block}.tokui-accordion{margin:.5em 0}.tokui-collapse{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);margin-bottom:4px;overflow:hidden}.tokui-collapse-title{cursor:pointer;background:var(--tokui-stripe);padding:10px 14px;font-weight:500;list-style:none}.tokui-collapse-title::-webkit-details-marker{display:none}.tokui-collapse-title:before{content:\\\"▸ \\\";transition:transform .2s;display:inline-block}.tokui-collapse[open]>.tokui-collapse-title:before{transform:rotate(90deg)}.tokui-collapse-body{padding:12px 14px}.tokui-dialog{width:90%;max-width:480px;box-shadow:var(--tokui-overlay-shadow-lg);background:var(--tokui-bg);border:none;border-radius:16px;margin:auto;padding:0;-webkit-animation:.3s cubic-bezier(.16,1,.3,1) tokuiDialogIn;animation:.3s cubic-bezier(.16,1,.3,1) tokuiDialogIn;overflow:hidden}@-webkit-keyframes tokuiDialogIn{0%{opacity:0;transform:scale(.96)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes tokuiDialogIn{0%{opacity:0;transform:scale(.96)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.tokui-dialog::-webkit-backdrop{-webkit-backdrop-filter:blur(4px);background:#0006;-webkit-animation:.2s tokuiBackdropIn;animation:.2s tokuiBackdropIn}.tokui-dialog::backdrop{-webkit-backdrop-filter:blur(4px);background:#0006;-webkit-animation:.2s tokuiBackdropIn;animation:.2s tokuiBackdropIn}@-webkit-keyframes tokuiBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes tokuiBackdropIn{0%{opacity:0}to{opacity:1}}.tokui-dialog-header{border-bottom:1px solid var(--tokui-border);color:var(--tokui-text);background:var(--tokui-stripe);justify-content:space-between;align-items:center;padding:18px 24px;font-size:1.05rem;font-weight:600;display:flex}.tokui-dialog-close{cursor:pointer;color:var(--tokui-text-muted);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.2rem;transition:background .15s,color .15s;display:flex}.tokui-dialog-close:hover{color:var(--tokui-text);background:#0000000f}.tokui-dialog-body{color:var(--tokui-text);flex-wrap:wrap;justify-content:flex-end;gap:12px;padding:24px;display:flex}.tokui-dialog-body>:not(.tokui-btn):not(.tokui-row):not(.tokui-form):not(.tokui-progress),.tokui-dialog-body>.tokui-form{width:100%}.tokui-dialog-body .tokui-row{width:100%;margin-bottom:0}.tokui-dialog-body .tokui-row>.tokui-col{justify-content:flex-end;gap:8px;display:flex}.tokui-dialog-body>.tokui-p{width:100%;margin:0}.tokui-dialog-footer{border-top:1px solid var(--tokui-border);background:var(--tokui-stripe);justify-content:flex-end;gap:10px;padding:14px 24px;display:flex}.tokui-drawer{z-index:1000;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}.tokui-drawer--open{pointer-events:auto}.tokui-drawer__overlay{background:0 0;width:100%;height:100%;transition:background .3s;position:absolute;top:0;left:0}.tokui-drawer--open .tokui-drawer__overlay{background:#0006}.tokui-drawer__panel{background:var(--tokui-bg);box-shadow:var(--tokui-overlay-shadow-lg);flex-direction:column;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;overflow-y:auto}.tokui-drawer--right .tokui-drawer__panel{height:100%;top:0;right:0;transform:translate(100%)}.tokui-drawer--left .tokui-drawer__panel{height:100%;top:0;left:0;transform:translate(-100%)}.tokui-drawer--top .tokui-drawer__panel{width:100%;top:0;left:0;transform:translateY(-100%)}.tokui-drawer--bottom .tokui-drawer__panel{width:100%;bottom:0;left:0;transform:translateY(100%)}.tokui-drawer--open.tokui-drawer--right .tokui-drawer__panel,.tokui-drawer--open.tokui-drawer--left .tokui-drawer__panel{transform:translate(0)}.tokui-drawer--open.tokui-drawer--top .tokui-drawer__panel,.tokui-drawer--open.tokui-drawer--bottom .tokui-drawer__panel{transform:translateY(0)}.tokui-drawer__header{border-bottom:1px solid var(--tokui-border);color:var(--tokui-text);background:var(--tokui-stripe);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;font-size:1.05rem;font-weight:600;display:flex}.tokui-drawer__close{cursor:pointer;color:var(--tokui-text-muted);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.2rem;transition:background .15s,color .15s;display:flex}.tokui-drawer__close:hover{color:var(--tokui-text);background:#0000000f}.tokui-drawer__body{color:var(--tokui-text);flex:1;padding:20px 24px;overflow-y:auto}.tokui-drawer__body>:not(.tokui-btn):not(.tokui-row):not(.tokui-form),.tokui-drawer__body>.tokui-form{width:100%}.tokui-breadcrumb{flex-wrap:wrap;align-items:center;gap:0;font-size:.88rem;display:flex}.tokui-breadcrumb__item{color:var(--tokui-primary);transition:opacity .15s}.tokui-breadcrumb__item:hover{opacity:.75}.tokui-breadcrumb__item--active{color:var(--tokui-text);cursor:default;font-weight:500}.tokui-breadcrumb__item--active:hover{opacity:1}.tokui-breadcrumb__sep{color:var(--tokui-text-muted);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0 6px}.tokui-breadcrumb--arrow .tokui-breadcrumb__sep{font-weight:700}.tokui-slider{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:none;align-items:center;gap:8px;width:100%;padding:12px 0;display:flex;position:relative}.tokui-slider__track{background:var(--tokui-border);border-radius:3px;flex:1;min-width:0;height:6px;position:relative}.tokui-slider__fill{background:var(--tokui-primary);border-radius:3px;height:100%;transition:width 50ms;position:absolute;top:0;left:0}.tokui-slider__thumb{background:var(--tokui-bg);border:2px solid var(--tokui-primary);cursor:-webkit-grab;cursor:grab;z-index:1;border-radius:50%;width:18px;height:18px;transition:box-shadow .15s,transform .1s;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000026}.tokui-slider__thumb:hover{box-shadow:0 2px 8px #00000040}.tokui-slider__thumb--dragging{cursor:-webkit-grabbing;cursor:grabbing;transform:translate(-50%,-50%)scale(1.15);box-shadow:0 3px 10px #0000004d}.tokui-slider__value{color:var(--tokui-text-muted);vertical-align:middle;min-width:2em;margin-left:8px;font-size:.8rem;display:inline-block}.tokui-slider--sm .tokui-slider__track{border-radius:2px;height:4px}.tokui-slider--sm .tokui-slider__thumb{width:14px;height:14px}.tokui-slider--lg .tokui-slider__track{border-radius:4px;height:8px}.tokui-slider--lg .tokui-slider__thumb{width:24px;height:24px}.tokui-slider--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}[data-tokui-theme=dark] .tokui-slider__track{background:#fff3}.tokui-rate{align-items:center;gap:4px;font-size:24px;display:inline-flex}.tokui-rate__star{cursor:pointer;color:var(--tokui-border);line-height:1;transition:color .15s,transform .1s}.tokui-rate__star:hover{transform:scale(1.15)}.tokui-rate__star--active{color:#f5a623}.tokui-rate__star--hover{color:#f5c34b}.tokui-rate__text{color:var(--tokui-text-muted);margin-left:8px;font-size:.85rem}.tokui-rate--sm{font-size:18px}.tokui-rate--lg{font-size:36px}.tokui-rate--disabled{opacity:.5;pointer-events:none}.tokui-rate--readonly{pointer-events:none}.tokui-rate--readonly .tokui-rate__star{color:var(--tokui-text-disabled,#00000040)}.tokui-rate--readonly .tokui-rate__star--active{color:#f5a623}.tokui-rate--readonly .tokui-rate__text{color:var(--tokui-text-secondary,#000000a6);font-weight:500}[data-tokui-theme=dark] .tokui-rate--readonly .tokui-rate__star{color:#ffffff4d}[data-tokui-theme=dark] .tokui-rate__star{color:#ffffff40}[data-tokui-theme=dark] .tokui-rate__star--active{color:#f5a623}[data-tokui-theme=dark] .tokui-rate__star--hover{color:#f5c34b}.tokui-transfer{align-items:stretch;gap:8px;display:flex}.tokui-transfer__panel{border:1px solid var(--tokui-border);background:var(--tokui-bg);border-radius:6px;flex-direction:column;flex:1;min-height:200px;max-height:320px;display:flex;overflow:hidden}.tokui-transfer__header{background:var(--tokui-stripe);border-bottom:1px solid var(--tokui-border);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;font-size:.85rem;font-weight:500;display:flex}.tokui-transfer__header input[type=checkbox]{cursor:pointer;margin:0}.tokui-transfer__count{color:var(--tokui-text-muted);margin-left:auto;font-weight:400}.tokui-transfer__body{scrollbar-width:thin;scrollbar-color:transparent transparent;flex:1;padding:4px;transition:scrollbar-color .2s;overflow-y:auto}.tokui-transfer__body:hover{scrollbar-color:#00000040 transparent}.tokui-transfer__body::-webkit-scrollbar{width:6px}.tokui-transfer__body::-webkit-scrollbar-track{background:0 0}.tokui-transfer__body::-webkit-scrollbar-thumb{background:0 0;border-radius:3px;-webkit-transition:background .2s;transition:background .2s}.tokui-transfer__body:hover::-webkit-scrollbar-thumb{background:#00000040}[data-tokui-theme=dark] .tokui-transfer__body:hover{scrollbar-color:#ffffff4d transparent}[data-tokui-theme=dark] .tokui-transfer__body:hover::-webkit-scrollbar-thumb{background:#ffffff4d}.tokui-transfer__item{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:.85rem;transition:background .15s;display:flex}.tokui-transfer__item:hover{background:var(--tokui-stripe)}.tokui-transfer__item input[type=checkbox]{cursor:pointer;margin:0}.tokui-transfer__actions{flex-direction:column;justify-content:center;gap:6px;display:flex}.tokui-transfer__btn{border:1px solid var(--tokui-border);background:var(--tokui-bg);cursor:pointer;width:32px;height:32px;color:var(--tokui-text);border-radius:4px;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex}.tokui-transfer__btn:hover:not(:disabled){background:var(--tokui-primary);color:#fff;border-color:var(--tokui-primary)}.tokui-transfer__btn:disabled{opacity:.35;cursor:not-allowed}.tokui-transfer--disabled{opacity:.5;pointer-events:none}.tokui-transfer--sm .tokui-transfer__panel{min-height:150px;max-height:260px}.tokui-transfer--sm .tokui-transfer__item{padding:4px 6px;font-size:.8rem}.tokui-transfer--lg .tokui-transfer__panel{min-height:280px;max-height:400px}.tokui-transfer--lg .tokui-transfer__item{padding:10px 12px;font-size:.95rem}[data-tokui-theme=dark] .tokui-transfer__panel{border-color:#ffffff26}[data-tokui-theme=dark] .tokui-transfer__header{background:#ffffff0f;border-color:#ffffff1a}[data-tokui-theme=dark] .tokui-transfer__btn{background:#ffffff14;border-color:#ffffff26}[data-tokui-theme=dark] .tokui-transfer__btn:hover:not(:disabled){background:var(--tokui-primary)}.tokui-cascader{position:relative}.tokui-cascader-control{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);cursor:pointer;align-items:center;gap:4px;min-height:36px;padding:8px 32px 8px 12px;transition:border-color .2s;display:flex;position:relative}.tokui-cascader-control:hover{border-color:var(--tokui-primary)}.tokui-cascader--open .tokui-cascader-control{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-primary-focus)}.tokui-cascader-input{color:var(--tokui-text);cursor:pointer;background:0 0;border:none;outline:none;flex:1;padding:0;font-size:.9rem}.tokui-cascader-input::-moz-placeholder{color:var(--tokui-text-muted)}.tokui-cascader-input:-ms-input-placeholder{color:var(--tokui-text-muted)}.tokui-cascader-input::placeholder{color:var(--tokui-text-muted)}.tokui-cascader-arrow{pointer-events:none;color:var(--tokui-text-muted);font-size:.7rem;line-height:1;transition:transform .2s;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.tokui-cascader-arrow:before{content:\\\"▼\\\"}.tokui-cascader--open .tokui-cascader-arrow{transform:translateY(-50%)rotate(180deg)}.tokui-cascader--open{z-index:100}.tokui-cascader-menus{background:var(--tokui-bg);border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);box-shadow:var(--tokui-overlay-shadow);z-index:999;flex-direction:row;max-height:300px;display:none;position:fixed;overflow:hidden}.tokui-cascader--open .tokui-cascader-menus{display:flex}.tokui-cascader-menu{border-right:1px solid var(--tokui-border);min-width:160px;max-height:300px;padding:4px 0;overflow-y:auto}.tokui-cascader-menu:last-child{border-right:none}.tokui-cascader-option{cursor:pointer;color:var(--tokui-text);white-space:nowrap;padding:8px 32px 8px 12px;font-size:.88rem;transition:background .15s;position:relative}.tokui-cascader-option:hover{background:var(--tokui-stripe)}.tokui-cascader-option--active{background:var(--tokui-primary-focus);color:var(--tokui-primary);font-weight:500}.tokui-cascader-option--expand:after{content:\\\"›\\\";color:var(--tokui-text-muted);position:absolute;top:50%;right:8px;transform:translateY(-50%)}.tokui-cascader--disabled{opacity:.5;pointer-events:none}.tokui-cascader--error .tokui-cascader-control{border-color:var(--tokui-danger)}.tokui-cascader--success .tokui-cascader-control{border-color:var(--tokui-success)}[data-tokui-theme=dark] .tokui-cascader-menus{box-shadow:var(--tokui-overlay-shadow);border-color:#ffffff26}[data-tokui-theme=dark] .tokui-cascader-menu{border-right-color:#ffffff1a}.tokui-upload{position:relative}.tokui-upload-dropzone{border:2px dashed var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:120px;padding:32px 20px;transition:background-color .25s,border-color .25s,color .25s,box-shadow .25s;display:flex}.tokui-upload-dropzone:hover{border-color:var(--tokui-primary-border);background:var(--tokui-primary-bg);background:color-mix(in srgb, var(--tokui-primary) 5%, var(--tokui-bg));box-shadow:0 0 0 3px color-mix(in srgb, var(--tokui-primary) 8%, transparent)}.tokui-upload--dragover .tokui-upload-dropzone{border-color:var(--tokui-primary);background:var(--tokui-primary-bg);background:color-mix(in srgb, var(--tokui-primary) 8%, var(--tokui-bg));box-shadow:0 0 0 3px color-mix(in srgb, var(--tokui-primary) 10%, transparent)}.tokui-upload-icon{width:40px;height:40px;color:var(--tokui-text-muted);transition:color .25s}.tokui-upload-icon svg{width:100%;height:100%}.tokui-upload-dropzone:hover .tokui-upload-icon{color:var(--tokui-primary)}.tokui-upload-text{color:var(--tokui-text-muted);font-size:.88rem}.tokui-upload-btn{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);color:var(--tokui-text);cursor:pointer;padding:6px 16px;font-size:.85rem;transition:all .2s}.tokui-upload-btn:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-upload--disabled{opacity:.5;pointer-events:none}.tokui-upload--disabled .tokui-upload-dropzone{cursor:not-allowed}.tokui-upload-filelist{margin-top:8px}.tokui-upload-file{border:1px solid var(--tokui-border);background:var(--tokui-bg);border-radius:4px;align-items:center;gap:8px;margin-bottom:4px;padding:6px 10px;font-size:.85rem;display:flex}.tokui-upload-file-icon{color:var(--tokui-primary);flex-shrink:0}.tokui-upload-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--tokui-text);flex:1;overflow:hidden}.tokui-upload-file-size{color:var(--tokui-text-muted);flex-shrink:0;font-size:.8rem}.tokui-upload-file-remove{cursor:pointer;color:var(--tokui-text-muted);border-radius:2px;flex-shrink:0;padding:2px 4px;font-size:.8rem;transition:all .15s}.tokui-upload-file-remove:hover{color:var(--tokui-danger);background:#ef44441a}.tokui-upload--sm .tokui-upload-dropzone{min-height:80px;padding:16px 12px}.tokui-upload--sm .tokui-upload-icon{width:28px;height:28px}.tokui-upload--lg .tokui-upload-dropzone{min-height:180px;padding:48px 24px}.tokui-upload--lg .tokui-upload-icon{width:56px;height:56px}[data-tokui-theme=dark] .tokui-upload-dropzone{border-color:#fff3}[data-tokui-theme=dark] .tokui-upload--dragover .tokui-upload-dropzone{background:color-mix(in srgb, var(--tokui-primary) 8%, var(--tokui-bg));box-shadow:0 0 0 3px color-mix(in srgb, var(--tokui-primary) 10%, transparent)}.tokui-tree{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:.9rem}.tokui-tree-node-header{cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;transition:background .15s;display:flex}.tokui-tree-node-header:hover{background:var(--tokui-stripe)}.tokui-tree-node--selected>.tokui-tree-node-header{background:var(--tokui-primary-bg);color:var(--tokui-primary);font-weight:500}.tokui-tree-arrow{width:18px;height:18px;color:var(--tokui-text-muted);flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;transition:transform .2s;display:inline-flex}.tokui-tree-node--open>.tokui-tree-node-header>.tokui-tree-arrow{transform:rotate(90deg)}.tokui-tree-node--leaf>.tokui-tree-node-header>.tokui-tree-arrow{visibility:hidden}.tokui-tree-icon{flex-shrink:0;font-size:1rem}.tokui-tree-text{color:var(--tokui-text);white-space:nowrap}.tokui-tree-node-children{padding-left:20px;overflow:hidden}.tokui-tree--checkable .tokui-tree-checkbox{accent-color:var(--tokui-primary);cursor:pointer;flex-shrink:0;margin:0 4px 0 0}.tokui-tree-node--disabled>.tokui-tree-node-header{opacity:.5;cursor:not-allowed}.tokui-tree--disabled{opacity:.5;pointer-events:none}.tokui-tree--sm{font-size:.82rem}.tokui-tree--sm .tokui-tree-node-header{padding:2px 6px}.tokui-tree--sm .tokui-tree-node-children{padding-left:16px}.tokui-tree--lg{font-size:1rem}.tokui-tree--lg .tokui-tree-node-header{padding:6px 10px}.tokui-tree--lg .tokui-tree-node-children{padding-left:24px}[data-tokui-theme=dark] .tokui-tree-node-header:hover{background:#ffffff0f}[data-tokui-theme=dark] .tokui-tree-node--selected>.tokui-tree-node-header{background:var(--tokui-primary-bg);color:var(--tokui-primary)}.tokui-input[type=textarea],textarea.tokui-input{resize:vertical;min-height:80px;font-family:inherit}textarea.tokui-textarea--auto{resize:none!important}.tokui-textarea-box{position:relative}.tokui-textarea-box>textarea.tokui-input{box-sizing:border-box;width:100%;padding-bottom:28px}.tokui-textarea-counter{color:var(--tokui-text-muted);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:.75rem;position:absolute;bottom:6px;right:10px}.tokui-textarea-counter--over{color:var(--tokui-danger)}.tokui-img--avatar{-o-object-fit:cover;object-fit:cover;width:var(--tokui-avatar-size);height:var(--tokui-avatar-size);border-radius:50%}.tokui-img--rounded{border-radius:12px}.tokui-img--bordered{border:2px solid var(--tokui-border);padding:2px}.tokui-card--highlight{border-color:var(--tokui-primary);border-width:2px}.tokui-card--flat{box-shadow:none;background:var(--tokui-stripe);border:none}.tokui-card--bordered{border-width:2px}.tokui-card-header--stripe{border-bottom:1px solid var(--tokui-border);background:var(--tokui-stripe)}.tokui-card-header--line{border-bottom:1px solid var(--tokui-border)}.tokui-card-header--accent{border-left:4px solid var(--tokui-primary);padding-left:12px}.tokui-card-header--pill{background:var(--tokui-primary);color:#fff;border-radius:99px;margin:4px 0;padding:4px 14px;font-size:.9rem;display:inline-flex}.tokui-card-header--underline{border-bottom:none;margin-bottom:2px;padding-bottom:10px;position:relative}.tokui-card-header--underline:after{content:\\\"\\\";background:var(--tokui-card-header-underline-color,var(--tokui-primary));border-radius:2px;width:40px;height:3px;position:absolute;bottom:0;left:0}.tokui-card-header--dot:before{content:\\\"\\\";background:var(--tokui-card-header-dot-color,var(--tokui-primary));vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.tokui-card-header--fill{background:var(--tokui-primary);color:#fff}.tokui-card-header--fill--danger{background:var(--tokui-danger);color:#fff}.tokui-card-header--fill--success{background:var(--tokui-success);color:#fff}.tokui-card-header--fill--warning{background:var(--tokui-warning);color:var(--tokui-btn-warning-text,#78350f)}.tokui-card-header--fill--info{background:var(--tokui-info);color:#fff}.tokui-card-header--fill--dark{background:var(--tokui-dark);color:#fff}.tokui-card-header--accent--danger{border-left-color:var(--tokui-danger)}.tokui-card-header--accent--success{border-left-color:var(--tokui-success)}.tokui-card-header--accent--warning{border-left-color:var(--tokui-warning)}.tokui-card-header--accent--info{border-left-color:var(--tokui-info)}.tokui-card-header--accent--dark{border-left-color:var(--tokui-dark)}.tokui-card-header--underline--danger:after{background:var(--tokui-danger)}.tokui-card-header--underline--success:after{background:var(--tokui-success)}.tokui-card-header--underline--warning:after{background:var(--tokui-warning)}.tokui-card-header--underline--info:after{background:var(--tokui-info)}.tokui-card-header--underline--dark:after{background:var(--tokui-dark)}.tokui-card-header--dot--danger:before{background:var(--tokui-danger)}.tokui-card-header--dot--success:before{background:var(--tokui-success)}.tokui-card-header--dot--warning:before{background:var(--tokui-warning)}.tokui-card-header--dot--info:before{background:var(--tokui-info)}.tokui-card-header--dot--dark:before{background:var(--tokui-dark)}.tokui-card-header--pill--danger{background:var(--tokui-danger)}.tokui-card-header--pill--success{background:var(--tokui-success)}.tokui-card-header--pill--warning{background:var(--tokui-warning);color:var(--tokui-btn-warning-text,#78350f)}.tokui-card-header--pill--info{background:var(--tokui-info)}.tokui-card-header--pill--dark{background:var(--tokui-dark)}.tokui-btn--primary{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-primary)}.tokui-btn--primary:hover{background:var(--tokui-btn-primary-hover);color:var(--tokui-btn-text-inverse)}.tokui-btn--danger{background:var(--tokui-danger);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-danger)}.tokui-btn--danger:hover{background:var(--tokui-btn-danger-hover);color:var(--tokui-btn-text-inverse)}.tokui-btn--success{background:var(--tokui-success);color:var(--tokui-btn-text-inverse);border-color:var(--tokui-success)}.tokui-btn--success:hover{background:var(--tokui-btn-success-hover);color:var(--tokui-btn-text-inverse)}.tokui-btn--warning{background:var(--tokui-warning);color:var(--tokui-btn-warning-text);border-color:var(--tokui-warning)}.tokui-btn--warning:hover{background:var(--tokui-btn-warning-hover);color:var(--tokui-btn-warning-text)}.tokui-btn--ghost{color:var(--tokui-primary);border-color:var(--tokui-primary);background:0 0}.tokui-btn--ghost:hover{background:var(--tokui-btn-ghost-hover-bg);color:var(--tokui-btn-ghost-hover-text)}.tokui-btn--sm{padding:4px 12px;font-size:.8rem}.tokui-btn--lg{padding:12px 28px;font-size:1.05rem}.tokui-btn--pill{border-radius:999px}.tokui-btn--square{border-radius:0}.tokui-btn--block{width:100%;display:flex}.tokui-btn-group{gap:0;display:inline-flex}.tokui-btn-group>.tokui-btn{border-radius:0;margin:0 0 0 -1px}.tokui-btn-group>.tokui-btn:first-child{border-top-left-radius:var(--tokui-radius);border-bottom-left-radius:var(--tokui-radius);margin-left:0}.tokui-btn-group>.tokui-btn:last-child{border-top-right-radius:var(--tokui-radius);border-bottom-right-radius:var(--tokui-radius)}.tokui-btn-group>.tokui-btn:hover,.tokui-btn-group>.tokui-btn:focus{z-index:1;position:relative}.tokui-btngroup--vertical{flex-direction:column}.tokui-btngroup--vertical>.tokui-btn{margin-top:-1px;margin-left:0}.tokui-btngroup--vertical>.tokui-btn:first-child{border-top-left-radius:var(--tokui-radius);border-top-right-radius:var(--tokui-radius);border-bottom-right-radius:0;border-bottom-left-radius:0;margin-top:0}.tokui-btngroup--vertical>.tokui-btn:last-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--tokui-radius);border-bottom-right-radius:var(--tokui-radius)}.tokui-btngroup--pill>.tokui-btn:first-child{border-top-left-radius:999px;border-bottom-left-radius:999px}.tokui-btngroup--pill>.tokui-btn:last-child{border-top-right-radius:999px;border-bottom-right-radius:999px}.tokui-table--bordered th,.tokui-table--bordered td{border:1px solid var(--tokui-border)}.tokui-table--compact th,.tokui-table--compact td{padding:4px 8px;font-size:.85em}.tokui-col-chk{text-align:center;width:40px}.tokui-col-seq{text-align:center;width:50px}.tokui-col-action{white-space:nowrap}.tokui-table .tokui-col-left{text-align:left}.tokui-table .tokui-col-center{text-align:center}.tokui-table .tokui-col-right{text-align:right}.tokui-table .tokui-text--primary{color:var(--tokui-primary)}.tokui-table .tokui-text--success{color:var(--tokui-success)}.tokui-table .tokui-text--warning{color:var(--tokui-warning)}.tokui-table .tokui-text--danger{color:var(--tokui-danger)}.tokui-table .tokui-text--info{color:var(--tokui-info)}.tokui-table .tokui-table-row--total td{background:var(--tokui-stripe,#fafafa);font-weight:600}.tokui-table .tokui-table-row--total td:first-child{text-align:right}.tokui-table .tokui-table-row--total td:last-child{text-align:center;color:var(--tokui-danger,#e5484d);font-weight:700}.tokui-table input[type=checkbox].tokui-chk-all,.tokui-table input[type=checkbox].tokui-chk-row{cursor:pointer;width:16px;height:16px;accent-color:var(--tokui-primary)}.tokui-tbtn{border:1px solid var(--tokui-border);color:var(--tokui-text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:4px;padding:3px 10px;font-size:.82rem;line-height:1.5;transition:all .15s;display:inline-flex}.tokui-tbtn:hover{background:var(--tokui-stripe);color:var(--tokui-primary);border-color:var(--tokui-primary-light)}.tokui-tbtn--primary{color:var(--tokui-primary);border-color:var(--tokui-primary)}.tokui-tbtn--primary:hover{background:var(--tokui-primary);color:#fff}.tokui-tbtn--danger{color:var(--tokui-danger);border-color:var(--tokui-danger)}.tokui-tbtn--danger:hover{background:var(--tokui-danger);color:#fff}.tokui-tbtn--warning{color:var(--tokui-warning);border-color:var(--tokui-warning)}.tokui-tbtn--warning:hover{background:var(--tokui-warning);color:var(--tokui-btn-warning-text)}.tokui-tbtn--success{color:var(--tokui-success);border-color:var(--tokui-success)}.tokui-tbtn--success:hover{background:var(--tokui-success);color:var(--tokui-btn-text-inverse)}.tokui-tbtn--info{color:var(--tokui-info,var(--tokui-primary));border-color:var(--tokui-info,var(--tokui-primary))}.tokui-tbtn--info:hover{background:var(--tokui-info,var(--tokui-primary));color:var(--tokui-btn-text-inverse)}.tokui-icon{vertical-align:middle;flex-shrink:0;display:inline-block}.tokui-btn__icon,.tokui-tbtn__icon{justify-content:center;align-items:center;display:inline-flex}.tokui-btn__icon--emoji,.tokui-tbtn__icon--emoji{font-size:1.1em;line-height:1}.tokui-btn--has-icon{gap:6px}.tokui-btn--icon-only{width:36px;height:36px;margin:0 4px 0 0;padding:8px}.tokui-tbtn--has-icon{gap:4px}.tokui-tbtn--icon-only{padding:3px 6px}.tokui-btn--icon-only[data-tokui-tip],.tokui-tbtn--icon-only[data-tokui-tip]{position:relative}.tokui-btn--icon-only[data-tokui-tip]:after,.tokui-tbtn--icon-only[data-tokui-tip]:after{content:attr(data-tokui-tip);background:var(--tokui-tooltip-bg);color:var(--tokui-tooltip-text);white-space:nowrap;opacity:0;pointer-events:none;z-index:100;border-radius:4px;padding:4px 8px;font-size:.72rem;font-weight:500;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tokui-btn--icon-only[data-tokui-tip]:hover:after,.tokui-btn--icon-only[data-tokui-tip]:focus-visible:after,.tokui-tbtn--icon-only[data-tokui-tip]:hover:after,.tokui-tbtn--icon-only[data-tokui-tip]:focus-visible:after{opacity:1}.tokui-input--error,.tokui-select--error{border-color:var(--tokui-danger)}.tokui-input--error:focus,.tokui-select--error:focus{box-shadow:0 0 0 2px var(--tokui-input-error-focus)}.tokui-input--success,.tokui-select--success{border-color:var(--tokui-success)}.tokui-input--success:focus,.tokui-select--success:focus{box-shadow:0 0 0 2px var(--tokui-input-success-focus)}.tokui-input--sm,.tokui-select--sm{padding:4px 8px;font-size:.8rem}.tokui-input--lg,.tokui-select--lg{padding:12px 16px;font-size:1.05rem}.tokui-input--underline,.tokui-select--underline{border:none;border-bottom:1px solid var(--tokui-border);background:0 0;border-radius:0;padding-left:0;padding-right:0}.tokui-input--underline:focus,.tokui-select--underline:focus{box-shadow:none;border-bottom-color:var(--tokui-primary)}.tokui-input--underline.tokui-input--error,.tokui-select--underline.tokui-select--error{border-bottom-color:var(--tokui-danger)}.tokui-input--underline.tokui-input--error:focus,.tokui-select--underline.tokui-select--error:focus{border-bottom-color:var(--tokui-danger);box-shadow:none}.tokui-input--underline.tokui-input--success,.tokui-select--underline.tokui-select--success{border-bottom-color:var(--tokui-success)}.tokui-input--underline.tokui-input--success:focus,.tokui-select--underline.tokui-select--success:focus{border-bottom-color:var(--tokui-success);box-shadow:none}.tokui-input--pill{border-radius:999px}.tokui-h1--left,.tokui-h2--left,.tokui-h3--left,.tokui-h4--left,.tokui-h5--left,.tokui-h6--left,.tokui-p--left{text-align:left}.tokui-h1--center,.tokui-h2--center,.tokui-h3--center,.tokui-h4--center,.tokui-h5--center,.tokui-h6--center,.tokui-p--center{text-align:center}.tokui-h1--right,.tokui-h2--right,.tokui-h3--right,.tokui-h4--right,.tokui-h5--right,.tokui-h6--right,.tokui-p--right{text-align:right}.tokui-card--center{text-align:center}.tokui-card--center .tokui-card-body{align-items:center}.tokui-card--right{text-align:right}.tokui-card--right .tokui-card-body{align-items:flex-end}.tokui-ft--left{justify-content:flex-start}.tokui-ft--center{justify-content:center}.tokui-ft--right{justify-content:flex-end}.tokui-row--left{justify-items:start}.tokui-row--center{justify-items:center}.tokui-row--right{justify-items:end}.tokui-row--inline{flex-wrap:wrap;grid-template-columns:none;align-items:center;gap:12px;display:flex}.tokui-h1--ribbon,.tokui-h2--ribbon,.tokui-h3--ribbon,.tokui-h4--ribbon,.tokui-h5--ribbon,.tokui-h6--ribbon{background:var(--tokui-primary);color:#fff;border-radius:0 3px 3px 0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:.25em 1em .3em .9em;position:relative;box-shadow:3px 3px 8px #0000002e}.tokui-h1--ribbon:before,.tokui-h2--ribbon:before,.tokui-h3--ribbon:before,.tokui-h4--ribbon:before,.tokui-h5--ribbon:before,.tokui-h6--ribbon:before{content:\\\"\\\";background:#00000026;border-radius:3px 0 0;width:6px;height:100%;position:absolute;top:0;left:-6px}.tokui-h1--ribbon:after,.tokui-h2--ribbon:after,.tokui-h3--ribbon:after,.tokui-h4--ribbon:after,.tokui-h5--ribbon:after,.tokui-h6--ribbon:after{content:\\\"\\\";border-top:8px solid #0000002e;border-bottom:0 solid #0000;border-left:0 solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;bottom:-8px;left:-6px}[data-tokui-theme=dark] .tokui-h1--ribbon,[data-tokui-theme=dark] .tokui-h2--ribbon,[data-tokui-theme=dark] .tokui-h3--ribbon,[data-tokui-theme=dark] .tokui-h4--ribbon,[data-tokui-theme=dark] .tokui-h5--ribbon,[data-tokui-theme=dark] .tokui-h6--ribbon,[data-tokui-theme=modern-dark] .tokui-h1--ribbon,[data-tokui-theme=modern-dark] .tokui-h2--ribbon,[data-tokui-theme=modern-dark] .tokui-h3--ribbon,[data-tokui-theme=modern-dark] .tokui-h4--ribbon,[data-tokui-theme=modern-dark] .tokui-h5--ribbon,[data-tokui-theme=modern-dark] .tokui-h6--ribbon{box-shadow:3px 3px 10px #00000073}[data-tokui-theme=dark] .tokui-h1--ribbon:before,[data-tokui-theme=dark] .tokui-h2--ribbon:before,[data-tokui-theme=dark] .tokui-h3--ribbon:before,[data-tokui-theme=dark] .tokui-h4--ribbon:before,[data-tokui-theme=dark] .tokui-h5--ribbon:before,[data-tokui-theme=dark] .tokui-h6--ribbon:before,[data-tokui-theme=modern-dark] .tokui-h1--ribbon:before,[data-tokui-theme=modern-dark] .tokui-h2--ribbon:before,[data-tokui-theme=modern-dark] .tokui-h3--ribbon:before,[data-tokui-theme=modern-dark] .tokui-h4--ribbon:before,[data-tokui-theme=modern-dark] .tokui-h5--ribbon:before,[data-tokui-theme=modern-dark] .tokui-h6--ribbon:before{background:color-mix(in srgb, var(--tokui-primary) 70%, #000)}[data-tokui-theme=dark] .tokui-h1--ribbon:after,[data-tokui-theme=dark] .tokui-h2--ribbon:after,[data-tokui-theme=dark] .tokui-h3--ribbon:after,[data-tokui-theme=dark] .tokui-h4--ribbon:after,[data-tokui-theme=dark] .tokui-h5--ribbon:after,[data-tokui-theme=dark] .tokui-h6--ribbon:after,[data-tokui-theme=modern-dark] .tokui-h1--ribbon:after,[data-tokui-theme=modern-dark] .tokui-h2--ribbon:after,[data-tokui-theme=modern-dark] .tokui-h3--ribbon:after,[data-tokui-theme=modern-dark] .tokui-h4--ribbon:after,[data-tokui-theme=modern-dark] .tokui-h5--ribbon:after,[data-tokui-theme=modern-dark] .tokui-h6--ribbon:after{border-color:color-mix(in srgb, var(--tokui-primary) 70%, #000) transparent transparent transparent}.tokui-h1--underline,.tokui-h2--underline,.tokui-h3--underline,.tokui-h4--underline,.tokui-h5--underline,.tokui-h6--underline{isolation:isolate;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:0 4px;position:relative}.tokui-h1--underline:after,.tokui-h2--underline:after,.tokui-h3--underline:after,.tokui-h4--underline:after,.tokui-h5--underline:after,.tokui-h6--underline:after{content:\\\"\\\";background:linear-gradient(to bottom, transparent 60%, var(--tokui-title-bg,var(--tokui-primary)) 60%, var(--tokui-title-bg,var(--tokui-primary)) 90%, transparent 90%);opacity:.5;z-index:-1;width:100%;height:100%;position:absolute;bottom:0;left:0}.tokui-h1--badge,.tokui-h2--badge,.tokui-h3--badge,.tokui-h4--badge,.tokui-h5--badge,.tokui-h6--badge{background:var(--tokui-primary);color:#fff;-webkit-clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:.3em .9em .3em .7em}.tokui-h1--pill,.tokui-h2--pill,.tokui-h3--pill,.tokui-h4--pill,.tokui-h5--pill,.tokui-h6--pill{background:var(--tokui-primary);color:#fff;border-radius:999px 999px 999px 6px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:.25em 1.1em .3em;box-shadow:3px 3px 6px #00000026}.tokui-timeline{padding:4px 0;position:relative}.tokui-timeline:before{content:\\\"\\\";background:var(--tokui-border);width:2px;position:absolute;top:0;bottom:0;left:11px}.tokui-ti{gap:16px;padding:0 0 24px;display:flex;position:relative}.tokui-ti:last-child{padding-bottom:0}.tokui-ti__dot{z-index:1;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:relative}.tokui-ti__dot:after{content:\\\"\\\";background:var(--tokui-primary);border:2px solid var(--tokui-bg);width:10px;height:10px;box-shadow:0 0 0 2px var(--tokui-primary);border-radius:50%}.tokui-ti--success .tokui-ti__dot:after{background:var(--tokui-success);box-shadow:0 0 0 2px var(--tokui-success)}.tokui-ti--warning .tokui-ti__dot:after{background:var(--tokui-warning);box-shadow:0 0 0 2px var(--tokui-warning)}.tokui-ti--error .tokui-ti__dot:after{background:var(--tokui-danger);box-shadow:0 0 0 2px var(--tokui-danger)}.tokui-ti--info .tokui-ti__dot:after{background:var(--tokui-info);box-shadow:0 0 0 2px var(--tokui-info)}.tokui-ti__content{flex:1;min-width:0;padding-top:1px}.tokui-ti__title{color:var(--tokui-text);font-size:.9rem;font-weight:600;line-height:1.4}.tokui-ti__body{color:var(--tokui-text);margin-top:2px;font-size:.85rem;line-height:1.5}.tokui-ti__time{color:var(--tokui-text-muted);margin-top:4px;font-size:.75rem}.tokui-timeline--horizontal{align-items:flex-start;padding:4px 0 20px;display:flex;overflow-x:auto}.tokui-timeline--horizontal:before{width:100%;height:2px;top:11px;bottom:auto;left:0}.tokui-timeline--horizontal .tokui-ti{text-align:center;flex-direction:column;align-items:center;gap:8px;min-width:120px;padding:0 20px 0 0}.tokui-timeline--horizontal .tokui-ti:last-child{padding-right:0}.tokui-timeline--horizontal .tokui-ti__dot{order:0}.tokui-timeline--horizontal .tokui-ti__content{text-align:center;order:1}.tokui-timeline--alternate{padding-left:0}.tokui-timeline--alternate:before{left:50%;transform:translate(-50%)}.tokui-timeline--alternate .tokui-ti{box-sizing:border-box;width:50%;padding:0 0 28px;display:block;position:relative}.tokui-timeline--alternate .tokui-ti--alt-left{text-align:right;padding-right:32px}.tokui-timeline--alternate .tokui-ti--alt-left .tokui-ti__content{text-align:right}.tokui-timeline--alternate .tokui-ti--alt-right{text-align:left;margin-left:50%;padding-left:32px}.tokui-timeline--alternate .tokui-ti--alt-right .tokui-ti__content{text-align:left}.tokui-timeline--alternate .tokui-ti__dot{width:24px;height:24px;position:absolute;top:2px}.tokui-timeline--alternate .tokui-ti--alt-left .tokui-ti__dot{right:-12px}.tokui-timeline--alternate .tokui-ti--alt-right .tokui-ti__dot{left:-12px}.tokui-timeline--card .tokui-ti__content{background:var(--tokui-stripe);border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);padding:10px 14px}.tokui-timeline--card .tokui-ti__time{margin-top:6px}.tokui-progress{margin:.5em 0}.tokui-progress--line .tokui-progress__header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.tokui-progress__label{color:var(--tokui-text);font-size:.85rem}.tokui-progress__pct{color:var(--tokui-text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.tokui-progress__track{background:var(--tokui-stripe);border-radius:4px;height:8px;overflow:hidden}.tokui-progress__bar{background:var(--tokui-primary);border-radius:4px;height:100%;transition:width .4s}.tokui-progress--success .tokui-progress__bar{background:var(--tokui-success)}.tokui-progress--error .tokui-progress__bar{background:var(--tokui-danger)}.tokui-progress--sm .tokui-progress__track{height:4px}.tokui-progress--lg .tokui-progress__track{border-radius:7px;height:14px}.tokui-progress--lg .tokui-progress__bar{border-radius:7px}.tokui-progress--line{cursor:pointer}.tokui-progress--line:hover .tokui-progress__track{background:var(--tokui-border)}.tokui-progress--line:hover .tokui-progress__bar{filter:brightness(1.15)}.tokui-progress--line:hover .tokui-progress__pct{color:var(--tokui-primary);font-weight:600}@-webkit-keyframes tokuiProgressStripe{0%{background-position:24px 0}to{background-position:0 0}}@keyframes tokuiProgressStripe{0%{background-position:24px 0}to{background-position:0 0}}.tokui-progress--stripe .tokui-progress__bar{background-image:linear-gradient(45deg,#fff3 25%,#0000 25% 50%,#fff3 50% 75%,#0000 75%);background-size:24px 24px;-webkit-animation:.8s linear infinite tokuiProgressStripe;animation:.8s linear infinite tokuiProgressStripe}.tokui-progress--circle{flex-direction:column;align-items:center;display:inline-flex}.tokui-progress__circle-wrap{position:relative}.tokui-progress__svg{width:120px;height:120px;transform:rotate(0)}.tokui-progress--sm .tokui-progress__svg{width:80px;height:80px}.tokui-progress--lg .tokui-progress__svg{width:160px;height:160px}.tokui-progress__circle-bg{stroke:var(--tokui-stripe)}.tokui-progress__circle-bar{stroke:var(--tokui-primary);transition:stroke-dashoffset .4s}.tokui-progress--success .tokui-progress__circle-bar{stroke:var(--tokui-success)}.tokui-progress--error .tokui-progress__circle-bar{stroke:var(--tokui-danger)}.tokui-progress__circle-text{fill:var(--tokui-text);font-family:inherit;font-size:18px;font-weight:600}.tokui-progress--sm .tokui-progress__circle-text{font-size:14px}.tokui-progress--lg .tokui-progress__circle-text{font-size:24px}.tokui-progress__label--center{text-align:center;color:var(--tokui-text);margin-top:6px;font-size:.85rem}.tokui-progress--circle{cursor:pointer;transition:transform .2s}.tokui-progress--circle:hover{transform:translateY(-2px)}.tokui-progress--circle:hover .tokui-progress__svg{filter:drop-shadow(0 6px 12px #0000001f)}.tokui-progress--circle:hover .tokui-progress__circle-text{fill:var(--tokui-primary)}.tokui-progress--span{color:var(--tokui-text-muted);vertical-align:middle;align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.tokui-progress__mini-bar{background:var(--tokui-stripe);border-radius:2px;flex-shrink:0;width:48px;height:4px;overflow:hidden}.tokui-progress__mini-fill{background:var(--tokui-primary);border-radius:2px;height:100%;transition:width .4s;display:block}.tokui-progress--success .tokui-progress__mini-fill{background:var(--tokui-success)}.tokui-progress--error .tokui-progress__mini-fill{background:var(--tokui-danger)}.tokui-progress--span:hover .tokui-progress__mini-fill{filter:brightness(1.2)}.tokui-steps{margin:.5em 0;display:flex}.tokui-step{flex-direction:column;flex:1;align-items:center;min-width:0;display:flex;position:relative}.tokui-step:before{content:\\\"\\\";background:var(--tokui-border);z-index:0;height:2px;position:absolute;top:11px;left:0;right:50%}.tokui-step:after{content:\\\"\\\";background:var(--tokui-border);z-index:0;height:2px;position:absolute;top:11px;left:50%;right:0}.tokui-step:first-child:before,.tokui-step:last-child:after{display:none}.tokui-step--done:before,.tokui-step--done:after,.tokui-step--active:before,.tokui-step--error.tokui-step--current:before{background:var(--tokui-primary)}.tokui-step__circle{z-index:1;background:var(--tokui-bg);border:2px solid var(--tokui-border);width:24px;height:24px;color:var(--tokui-text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;transition:all .2s;display:flex}.tokui-step:hover .tokui-step__circle{box-shadow:0 0 0 4px var(--tokui-primary-focus);transform:scale(1.2)}.tokui-step:hover .tokui-step__title{color:var(--tokui-primary)}.tokui-step--done:hover .tokui-step__circle{box-shadow:0 0 0 4px #22c55e26}.tokui-step--error:hover .tokui-step__circle{box-shadow:0 0 0 4px #ef444426}.tokui-step--error:hover .tokui-step__title{color:var(--tokui-danger)}.tokui-step--done .tokui-step__circle{background:var(--tokui-primary);border-color:var(--tokui-primary);color:#fff}.tokui-step--active .tokui-step__circle{border-color:var(--tokui-primary);color:var(--tokui-primary);font-weight:700}.tokui-step--error .tokui-step__circle{border-color:var(--tokui-danger);color:var(--tokui-danger)}.tokui-step--error.tokui-step--current .tokui-step__circle{background:var(--tokui-danger);border-color:var(--tokui-danger);color:#fff}.tokui-step__body{text-align:center;max-width:120px;margin-top:8px}.tokui-step__title{color:var(--tokui-text);font-size:.85rem;font-weight:500;line-height:1.4}.tokui-step--pending .tokui-step__title{color:var(--tokui-text-muted)}.tokui-step--active .tokui-step__title{color:var(--tokui-primary);font-weight:600}.tokui-step--error .tokui-step__title{color:var(--tokui-danger)}.tokui-step__desc{color:var(--tokui-text-muted);margin-top:2px;font-size:.75rem;line-height:1.4}.tokui-steps--sm .tokui-step__circle{width:20px;height:20px;font-size:.7rem}.tokui-steps--sm .tokui-step__body{margin-top:6px}.tokui-steps--sm .tokui-step__title{font-size:.8rem}.tokui-steps--sm .tokui-step__desc{font-size:.7rem}.tokui-steps--sm .tokui-step:before,.tokui-steps--sm .tokui-step:after{top:9px}.tokui-steps--vertical{flex-direction:column}.tokui-steps--vertical .tokui-step{flex-direction:row;align-items:flex-start;min-height:48px}.tokui-steps--vertical .tokui-step:before{width:2px;height:auto;inset:0 auto 50% 11px}.tokui-steps--vertical .tokui-step:after{width:2px;height:auto;inset:50% auto 0 11px}.tokui-steps--vertical .tokui-step:first-child:before,.tokui-steps--vertical .tokui-step:last-child:after{display:none}.tokui-steps--vertical .tokui-step__body{text-align:left;max-width:none;margin-top:0;margin-left:12px;padding-top:2px}.tokui-steps--complete .tokui-step--done .tokui-step__circle{background:var(--tokui-success);border-color:var(--tokui-success);color:#fff}.tokui-steps--complete .tokui-step--done:before,.tokui-steps--complete .tokui-step--done:after{background:var(--tokui-success)}.tokui-steps--complete .tokui-step__title{color:var(--tokui-success)}.tokui-b,.tokui-strong{font-weight:700}.tokui-em{font-style:italic}.tokui-mark{background:var(--tokui-warning-bg,#ffc40059);color:inherit;border-radius:2px;padding:0 .15em}.tokui-del{opacity:.7;text-decoration:line-through}.tokui-sub{vertical-align:sub;font-size:.75em}.tokui-sup{vertical-align:super;font-size:.75em}.tokui-tag{border-radius:var(--tokui-radius);border:1px solid var(--tokui-border);background:var(--tokui-tag-bg,var(--tokui-stripe));color:var(--tokui-tag-text,var(--tokui-text));white-space:nowrap;vertical-align:middle;align-items:center;gap:4px;margin:0 6px 6px 0;padding:2px 10px;font-size:.85rem;line-height:1.6;transition:all .2s;display:inline-flex}.tokui-tag--bordered{border:1px solid var(--tokui-tag-border,var(--tokui-border))}.tokui-tag--round{border-radius:999px}.tokui-tag--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.tokui-tag--small{padding:1px 7px;font-size:.75rem;line-height:1.5}.tokui-tag--large{padding:4px 14px;font-size:.95rem;line-height:1.7}.tokui-tag--primary{background:var(--tokui-tag-primary-bg,var(--tokui-primary-bg));color:var(--tokui-tag-primary-text,var(--tokui-primary));border-color:var(--tokui-tag-primary-border,#4f46e54d)}.tokui-tag--info{background:var(--tokui-tag-info-bg,#3b82f61a);color:var(--tokui-tag-info-text,var(--tokui-info));border-color:var(--tokui-tag-info-border,#3b82f64d)}.tokui-tag--success{background:var(--tokui-tag-success-bg,#22c55e1a);color:var(--tokui-tag-success-text,var(--tokui-success));border-color:var(--tokui-tag-success-border,#22c55e4d)}.tokui-tag--warning{background:var(--tokui-tag-warning-bg,#f59e0b1a);color:var(--tokui-tag-warning-text,var(--tokui-warning));border-color:var(--tokui-tag-warning-border,#f59e0b4d)}.tokui-tag--error,.tokui-tag--danger{background:var(--tokui-tag-error-bg,#ef44441a);color:var(--tokui-tag-error-text,var(--tokui-danger));border-color:var(--tokui-tag-error-border,#ef44444d)}.tokui-tag__close{cursor:pointer;width:16px;height:16px;color:var(--tokui-tag-close-color,var(--tokui-text-muted));border-radius:50%;justify-content:center;align-items:center;margin-left:2px;font-size:.75rem;line-height:1;transition:all .15s;display:inline-flex}.tokui-tag__close:hover{color:var(--tokui-tag-close-hover,var(--tokui-text));background:#0000001a}.tokui-tag--disabled .tokui-tag__close{cursor:not-allowed}.tokui-code{position:relative}.tokui-code__copy{background:var(--tokui-code-copy-bg,#0000000f);border:1px solid var(--tokui-code-copy-border,#0000001a);color:var(--tokui-code-copy-text,var(--tokui-text-muted));cursor:pointer;opacity:.5;z-index:1;border-radius:4px;padding:2px 8px;font-size:.75rem;transition:all .2s;position:absolute;top:8px;right:8px}.tokui-code:hover .tokui-code__copy,.tokui-code__copy--done{opacity:1}.tokui-code__copy--done{background:var(--tokui-success);color:#fff;border-color:var(--tokui-success)}.tokui-code__copy:hover{background:var(--tokui-code-copy-hover,#0000001a)}.tokui-callout{border-radius:var(--tokui-radius);border-left:4px solid var(--tokui-callout-border,var(--tokui-primary));background:var(--tokui-callout-bg,var(--tokui-primary-1));gap:12px;margin:.6em 0;padding:12px 16px;display:flex}.tokui-callout__icon{color:var(--tokui-callout-border,var(--tokui-primary));flex-shrink:0;font-size:1.1em;line-height:1.5}.tokui-callout__body{flex:1;min-width:0}.tokui-callout__title{color:var(--tokui-text);margin-bottom:4px;font-weight:600}.tokui-callout__content{color:var(--tokui-text);line-height:1.5}.tokui-callout--info{border-left-color:var(--tokui-callout-info-border,var(--tokui-primary));background:var(--tokui-callout-info-bg,var(--tokui-primary-1))}.tokui-callout--info .tokui-callout__icon{color:var(--tokui-primary)}.tokui-callout--success{border-left-color:var(--tokui-callout-success-border,var(--tokui-success));background:var(--tokui-callout-success-bg,var(--tokui-success-1))}.tokui-callout--success .tokui-callout__icon{color:var(--tokui-success)}.tokui-callout--warning{border-left-color:var(--tokui-callout-warning-border,var(--tokui-warning));background:var(--tokui-callout-warning-bg,var(--tokui-warning-1))}.tokui-callout--warning .tokui-callout__icon{color:var(--tokui-warning)}.tokui-callout--error{border-left-color:var(--tokui-callout-error-border,var(--tokui-danger));background:var(--tokui-callout-error-bg,var(--tokui-danger-1))}.tokui-callout--error .tokui-callout__icon{color:var(--tokui-danger)}.tokui-callout--tip{border-left-color:var(--tokui-callout-tip-border,#722ed1);background:var(--tokui-callout-tip-bg,#f9f0ff)}.tokui-callout--tip .tokui-callout__icon{color:#722ed1}.tokui-think{background:var(--tokui-think-bg,var(--tokui-stripe));border-radius:var(--tokui-radius);border-left:3px solid var(--tokui-think-border,var(--tokui-border));margin:.6em 0;overflow:hidden}.tokui-think__summary{cursor:pointer;color:var(--tokui-text-muted);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 14px;font-size:.9rem;list-style:none;display:flex}.tokui-think__summary::-webkit-details-marker{display:none}.tokui-think__summary:before{content:\\\"▶\\\";font-size:.7em;transition:transform .2s}.tokui-think[open]>.tokui-think__summary:before{transform:rotate(90deg)}.tokui-think__icon{font-size:1em}.tokui-think__title{font-weight:500}.tokui-think__body{color:var(--tokui-text-muted);padding:0 14px 12px;font-size:.9rem;line-height:1.6}.tokui-think-chain{background:var(--tokui-think-bg,var(--tokui-stripe));border-radius:var(--tokui-radius);border:1px solid var(--tokui-border);margin:.6em 0;overflow:hidden}.tokui-think-chain__summary{cursor:pointer;color:var(--tokui-text-muted);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 14px;font-size:.9rem;list-style:none;display:flex}.tokui-think-chain__summary::-webkit-details-marker{display:none}.tokui-think-chain__summary:before{content:\\\"▶\\\";font-size:.7em;transition:transform .2s}.tokui-think-chain[open]>.tokui-think-chain__summary:before{transform:rotate(90deg)}.tokui-think-chain__icon{font-size:1em}.tokui-think-chain__title{font-weight:500}.tokui-think-chain__steps{padding:4px 14px 14px;position:relative}.tokui-think-chain--running .tokui-think-chain__summary{color:var(--tokui-primary)}.tokui-think-step{padding-bottom:16px;padding-left:28px;position:relative}.tokui-think-step:last-child{padding-bottom:0}.tokui-think-step:last-child .tokui-think-step__line{display:none}.tokui-think-step__header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.tokui-think-step__icon{color:#fff;background:var(--tokui-success,#22c55e);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;display:flex;position:absolute;top:2px;left:0}.tokui-think-step__icon--error{background:var(--tokui-danger,#ef4444)}.tokui-think-step__spinner{border:2px solid var(--tokui-border);border-top-color:var(--tokui-primary,#6366f1);border-radius:50%;width:20px;height:20px;-webkit-animation:.6s linear infinite tokuiThinkStepSpin;animation:.6s linear infinite tokuiThinkStepSpin;position:absolute;top:2px;left:0}.tokui-think-step__dot{background:var(--tokui-border,#d1d5db);border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:4px}.tokui-think-step__title{color:var(--tokui-text);font-size:.9rem;font-weight:500}.tokui-think-step--running .tokui-think-step__title{color:var(--tokui-primary)}.tokui-think-step--pending .tokui-think-step__title{color:var(--tokui-text-muted)}.tokui-think-step--error .tokui-think-step__title{color:var(--tokui-danger)}.tokui-think-step__dur{color:var(--tokui-text-muted);background:var(--tokui-stripe);border-radius:10px;margin-left:auto;padding:1px 6px;font-size:.75rem}.tokui-think-step__body{color:var(--tokui-text-muted);padding-left:0;font-size:.85rem;line-height:1.6}.tokui-think-step__line{background:var(--tokui-border);width:2px;position:absolute;top:24px;bottom:0;left:9px}.tokui-think-step--done .tokui-think-step__line{background:var(--tokui-success,#22c55e)}@-webkit-keyframes tokuiThinkStepSpin{to{transform:rotate(360deg)}}@keyframes tokuiThinkStepSpin{to{transform:rotate(360deg)}}.tokui-conversations{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);flex-direction:column;max-height:480px;display:flex;overflow-y:auto}.tokui-conversations__group-header{text-transform:uppercase;letter-spacing:.5px;color:var(--tokui-text-muted);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 12px 4px;font-size:.75rem;font-weight:600}.tokui-conversations__empty{text-align:center;color:var(--tokui-text-muted);padding:24px 12px;font-size:.85rem}.tokui-conv{cursor:pointer;border-radius:6px;align-items:center;padding:10px 12px;transition:background .15s;display:flex;position:relative}.tokui-conv:hover{background:var(--tokui-stripe)}.tokui-conv--active{background:color-mix(in srgb, var(--tokui-primary) 8%, transparent)}.tokui-conv--active .tokui-conv__title{color:var(--tokui-primary);font-weight:500}.tokui-conv__title{color:var(--tokui-text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.tokui-conv__time{color:var(--tokui-text-muted);flex-shrink:0;margin-left:8px;font-size:.75rem;transition:opacity .15s}.tokui-conv:hover .tokui-conv__time{opacity:0}.tokui-conv__actions{flex-shrink:0;align-items:center;margin-left:8px;display:none}.tokui-conv:hover .tokui-conv__actions{display:flex}.tokui-conv__delete{width:22px;height:22px;color:var(--tokui-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:all .15s;display:flex}.tokui-conv__delete:hover{background:color-mix(in srgb, var(--tokui-danger) 12%, transparent);color:var(--tokui-danger)}[data-tokui-theme=dark] .tokui-think-chain{border-color:var(--tokui-border)}[data-tokui-theme=dark] .tokui-think-step__dot,[data-tokui-theme=dark] .tokui-think-step__line{background:var(--tokui-border)}[data-tokui-theme=dark] .tokui-think-step--done .tokui-think-step__line{background:var(--tokui-success)}[data-tokui-theme=dark] .tokui-conversations{border-color:var(--tokui-border);background:var(--tokui-bg)}[data-tokui-theme=dark] .tokui-conv:hover{background:#ffffff0f}[data-tokui-theme=dark] .tokui-conv--active{background:color-mix(in srgb, var(--tokui-primary) 12%, transparent)}[data-tokui-theme=dark] .tokui-conv__delete:hover{background:color-mix(in srgb, var(--tokui-danger) 16%, transparent);color:var(--tokui-danger)}.tokui-copy{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);color:var(--tokui-text-muted);cursor:pointer;align-items:center;gap:4px;padding:4px 12px;font-size:.85rem;transition:all .2s;display:inline-flex}.tokui-copy:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-copy--done{background:var(--tokui-success);border-color:var(--tokui-success);color:#fff}@-webkit-keyframes tokuiSpinRotate{to{transform:rotate(360deg)}}@keyframes tokuiSpinRotate{to{transform:rotate(360deg)}}@-webkit-keyframes tokuiSpinBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes tokuiSpinBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@-webkit-keyframes tokuiSpinPulse{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2)}}@keyframes tokuiSpinPulse{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2)}}.tokui-spin{color:var(--tokui-primary);align-items:center;gap:8px;margin:.5em 0;display:inline-flex}.tokui-spin__spinner{border:2px solid var(--tokui-border);border-top-color:var(--tokui-primary);border-radius:50%;width:20px;height:20px;-webkit-animation:.8s linear infinite tokuiSpinRotate;animation:.8s linear infinite tokuiSpinRotate;display:inline-block}.tokui-spin__dots{align-items:center;gap:4px;display:inline-flex}.tokui-spin__dot{background:var(--tokui-primary);border-radius:50%;width:8px;height:8px;-webkit-animation:1.4s ease-in-out infinite both tokuiSpinBounce;animation:1.4s ease-in-out infinite both tokuiSpinBounce}.tokui-spin__dot:first-child{-webkit-animation-delay:-.32s;animation-delay:-.32s}.tokui-spin__dot:nth-child(2){-webkit-animation-delay:-.16s;animation-delay:-.16s}.tokui-spin__pulse{background:var(--tokui-primary);border-radius:50%;width:16px;height:16px;-webkit-animation:1.2s ease-in-out infinite tokuiSpinPulse;animation:1.2s ease-in-out infinite tokuiSpinPulse;display:inline-block}.tokui-spin__text{color:var(--tokui-text-muted);font-size:.85rem}.tokui-spin--sm .tokui-spin__spinner{border-width:1.5px;width:14px;height:14px}.tokui-spin--sm .tokui-spin__dot{width:5px;height:5px}.tokui-spin--sm .tokui-spin__pulse{width:10px;height:10px}.tokui-spin--lg .tokui-spin__spinner{border-width:3px;width:32px;height:32px}.tokui-spin--lg .tokui-spin__dot{width:12px;height:12px}.tokui-spin--lg .tokui-spin__pulse{width:24px;height:24px}.tokui-thumb{border:1px solid var(--tokui-border);background:var(--tokui-bg);cursor:pointer;width:36px;height:36px;color:var(--tokui-text-muted);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .2s;display:inline-flex}.tokui-thumb:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-thumb--active{border-color:var(--tokui-primary);color:var(--tokui-primary);background:var(--tokui-primary-1)}.tokui-thumb--active.tokui-thumb--down{border-color:var(--tokui-danger);color:var(--tokui-danger);background:var(--tokui-danger-1)}.tokui-thumb__icon{justify-content:center;align-items:center;display:flex}.tokui-thumb--sm{width:28px;height:28px}.tokui-thumb--lg{width:48px;height:48px}.tokui-thumb+.tokui-tag,.tokui-thumb+span,.tokui-thumb+.tokui-thumb-text{margin-left:8px}.tokui-thumb--lg+.tokui-tag,.tokui-thumb--lg+span,.tokui-thumb--lg+.tokui-thumb-text{margin-left:12px}.tokui-file{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);align-items:center;gap:12px;margin:.4em 0;padding:12px 16px;transition:all .2s;display:flex}.tokui-file:hover{border-color:var(--tokui-primary);box-shadow:0 2px 8px #0000000f}.tokui-file__icon{color:#fff;letter-spacing:.5px;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.7rem;font-weight:700;display:flex}.tokui-file__info{flex:1;min-width:0}.tokui-file__name{color:var(--tokui-text);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:500;overflow:hidden}.tokui-file__meta{color:var(--tokui-text-muted);margin-top:2px;font-size:.8rem}.tokui-file__download{border:1px solid var(--tokui-border);background:var(--tokui-bg);width:32px;height:32px;color:var(--tokui-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;text-decoration:none;transition:all .2s;display:flex}.tokui-file__download:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-attachments{flex-wrap:wrap;gap:8px;margin:.5em 0;display:flex}.tokui-attachments:empty{display:none}.tokui-attach{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius,6px);background:var(--tokui-bg);align-items:center;gap:8px;min-width:160px;max-width:220px;padding:8px 12px;transition:all .2s;display:flex;position:relative}.tokui-attach:hover{border-color:var(--tokui-primary);box-shadow:0 2px 8px #0000000f}.tokui-attach:hover .tokui-attach__actions{opacity:1;pointer-events:auto}.tokui-attach__thumb{-o-object-fit:cover;object-fit:cover;border-radius:4px;flex-shrink:0;width:48px;height:48px}.tokui-attach__icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tokui-attach__info{flex:1;min-width:0;overflow:hidden}.tokui-attach__name{color:var(--tokui-text);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:500;overflow:hidden}.tokui-attach__size{color:var(--tokui-text-muted);margin-top:1px;font-size:.75rem}.tokui-attach__actions{opacity:0;pointer-events:none;gap:2px;transition:opacity .2s;display:flex;position:absolute;bottom:4px;right:4px}.tokui-attach__action{background:var(--tokui-bg);width:22px;height:22px;color:var(--tokui-text-muted);cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;text-decoration:none;transition:all .15s;display:flex}.tokui-attach__action:hover{background:var(--tokui-stripe,#f0f0f0);color:var(--tokui-primary)}.tokui-attach__action--del:hover{color:var(--tokui-danger)}.tokui-chart{text-align:center;margin:.6em 0}.tokui-chart__title{color:var(--tokui-text);text-align:center;margin-bottom:6px;font-size:.85rem;font-weight:600}.tokui-chart__svg{box-sizing:border-box;border:1px solid var(--tokui-border);--tokui-chart-slice-stroke:var(--tokui-card-bg,#fff);--tokui-chart-label-stroke:var(--tokui-card-bg,#fff);border-radius:8px;width:100%;max-width:100%;height:auto;max-height:600px;margin:0 auto;display:block}.tokui-chart__svg[data-chart-type=bar],.tokui-chart__svg[data-chart-type=line],.tokui-chart__svg[data-chart-type=scatter],.tokui-chart__svg[data-chart-type=area],.tokui-chart__svg[data-chart-type=bubble],.tokui-chart__svg[data-chart-type=histogram],.tokui-chart__svg[data-chart-type=waterfall],.tokui-chart__svg[data-chart-type=boxplot]{max-width:1400px;min-height:200px;max-height:600px;padding:10px}.tokui-chart__svg[data-chart-type=bar][data-orient=h]{max-height:1200px}.tokui-chart__svg[data-chart-type=candlestick]{max-width:1400px;min-height:220px;max-height:600px;padding:10px}.tokui-chart__svg[data-chart-type=gantt]{max-width:1400px;min-height:200px;max-height:640px}.tokui-chart__svg[data-chart-type=pie],.tokui-chart__svg[data-chart-type=donut]{min-width:320px;max-width:600px;min-height:320px;max-height:600px}.tokui-chart__svg[data-chart-type=radar]{max-width:600px;max-height:600px}.tokui-chart__svg[data-chart-type=gauge]{max-width:600px;max-height:400px}.tokui-chart__svg[data-chart-type=funnel],.tokui-chart__svg[data-chart-type=heatmap],.tokui-chart__svg[data-chart-type=treemap],.tokui-chart__svg[data-chart-type=sankey]{max-width:1000px;max-height:600px}.tokui-chart__svg[data-chart-type=rose]{max-width:600px;max-height:600px}.tokui-chart__svg[data-chart-type=progress]{max-width:780px;max-height:120px}.tokui-chart{position:relative}.tokui-chart__toolbar{z-index:2;opacity:0;pointer-events:none;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.tokui-chart:hover .tokui-chart__toolbar,.tokui-chart__toolbar:focus-within{opacity:1;pointer-events:auto}.tokui-chart__act{border:1px solid var(--tokui-border);background:var(--tokui-card-bg,var(--tokui-bg,#fff));width:28px;height:28px;color:var(--tokui-text-muted,#666);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s,background .15s;display:inline-flex;position:relative}.tokui-chart__act:hover{color:var(--tokui-primary);border-color:var(--tokui-primary);background:var(--tokui-primary-bg)}.tokui-chart__act:disabled{opacity:.5;cursor:default}.tokui-chart__act svg{width:15px;height:15px;display:block}.tokui-chart__tip{white-space:nowrap;background:var(--tokui-text,#333);color:var(--tokui-bg,#fff);pointer-events:none;border-radius:4px;padding:2px 8px;font-size:11px;line-height:1.4;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.tokui-chart__modal{z-index:9999;box-sizing:border-box;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;background:#0000008c;justify-content:center;align-items:center;padding:24px;transition:opacity .18s;display:flex;position:fixed;inset:0}.tokui-chart__modal--open{opacity:1}.tokui-chart__modal-card{box-sizing:border-box;background:var(--tokui-card-bg,var(--tokui-bg,#fff));border:1px solid var(--tokui-border,#eee);border-radius:12px;flex-direction:column;width:95vw;max-width:95vw;height:95vh;max-height:95vh;padding:20px;transition:transform .18s;display:flex;position:relative;transform:scale(.96);box-shadow:0 20px 60px #0000004d}.tokui-chart__modal--open .tokui-chart__modal-card{transform:scale(1)}.tokui-chart__modal-title{color:var(--tokui-text,#333);flex:none;margin-bottom:12px;padding-right:32px;font-size:15px;font-weight:600}.tokui-chart__modal-body{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;overflow:hidden}.tokui-chart__modal-body>svg.tokui-chart__svg{width:100%;max-width:100%;height:100%;max-height:100%}.tokui-chart__modal-close{cursor:pointer;width:30px;height:30px;color:var(--tokui-text-muted,#999);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex;position:absolute;top:10px;right:10px}.tokui-chart__modal-close:hover{background:var(--tokui-fill,#f5f5f5);color:var(--tokui-text,#333)}.tokui-chart__modal-close svg{width:18px;height:18px;display:block}.tokui-chart__fallback{color:var(--tokui-text-muted);text-align:center;background:var(--tokui-stripe);border-radius:var(--tokui-radius);padding:20px;font-size:.9rem}.tokui-chart__svg .tokui-chart-tip-group{cursor:pointer}.tokui-chart__svg .tokui-chart-tip-group .tokui-chart-bar{transition:opacity .15s,filter .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-bar{opacity:.75;filter:brightness(1.15)}.tokui-chart__svg .tokui-chart-tip-group .tokui-chart-slice{transform-box:fill-box;transform-origin:50%;transition:opacity .15s,filter .15s,transform .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-slice{filter:brightness(1.12);transform:scale(1.05)}.tokui-chart__svg .tokui-chart-tip-group .tokui-chart-funnel{transition:opacity .15s,filter .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-funnel{filter:brightness(1.12);opacity:.92}.tokui-chart__svg--gauge .tokui-chart-gauge-label{paint-order:stroke;stroke:var(--tokui-chart-label-stroke,var(--tokui-card-bg,#fff));stroke-width:3px;stroke-linejoin:round}.tokui-chart__svg--gauge .tokui-chart-gauge-value{stroke-width:4px}.tokui-chart__svg .tokui-chart-gauge-arc{transition:filter .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-gauge-arc{filter:brightness(1.12)}.tokui-chart__svg .tokui-chart-gauge-needle{transition:filter .15s}.tokui-chart__svg .tokui-chart-tip-group:hover~.tokui-chart-gauge-needle,.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-gauge-needle{filter:brightness(1.1)}.tokui-chart__svg .tokui-chart-tip-group .tokui-chart-dot{transform-box:fill-box;transform-origin:50%;transition:transform .15s,stroke-width .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-dot{stroke-width:3px;transform:scale(1.6)}.tokui-chart__svg .tokui-chart-tip-group .tokui-chart-point{transform-box:fill-box;transform-origin:50%;transition:transform .15s,filter .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-point{filter:brightness(1.2);transform:scale(1.5)}.tokui-chart__svg .tokui-chart-cell,.tokui-chart__svg .tokui-chart-tile,.tokui-chart__svg .tokui-chart-candle{transition:filter .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-cell,.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-tile,.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-candle{filter:brightness(1.18)}.tokui-chart__svg .tokui-chart-flow{transition:opacity .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-flow{opacity:.7}.tokui-chart__svg .tokui-chart-fill{transition:filter .15s}.tokui-chart__svg .tokui-chart-tips-layer .tokui-chart-tip{opacity:0;pointer-events:none;transition:opacity .15s}.tokui-chart__svg .tokui-chart-task-bar,.tokui-chart__svg .tokui-chart-task-prog{transform-box:fill-box;transform-origin:50%;transition:opacity .15s,filter .15s}.tokui-chart__svg .tokui-chart-task-tip-group{cursor:pointer;transition:opacity .15s}.tokui-chart__svg .tokui-chart-task-tip-group:hover .tokui-chart-task-bar,.tokui-chart__svg .tokui-chart-task-tip-group:hover .tokui-chart-task-prog{filter:brightness(1.15)}.tokui-chart__svg .tokui-chart-task-dep{transition:opacity .15s}.tokui-chart__svg .tokui-chart-task-ms{transform-box:fill-box;transform-origin:50%;transition:transform .15s}.tokui-chart__svg .tokui-chart-tip-group:hover .tokui-chart-task-ms{transform:scale(1.25)}.tokui-chart__svg.has-active .tokui-chart-task-tip-group{opacity:.25}.tokui-chart__svg.has-active .tokui-chart-task-tip-group.is-active{opacity:1}.tokui-chart__svg.has-active .tokui-chart-task-dep{opacity:.15}.tokui-chart__svg .tokui-chart-task-dep.is-active{opacity:1}.tokui-chart__svg .tokui-chart-today{transition:opacity .15s}[data-tokui-theme=dark] .tokui-chart__svg{--tokui-chart-text:#ffffffb8;--tokui-chart-grid:#ffffff14;--tokui-chart-axis:#ffffff38;--tokui-chart-slice-stroke:var(--tokui-bg);--tokui-chart-label-stroke:transparent}@-webkit-keyframes tokuiShimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes tokuiShimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.tokui-barcode{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-component-bg,var(--tokui-bg));color:var(--tokui-text);flex-direction:column;align-items:center;gap:6px;max-width:100%;padding:12px 16px;display:inline-flex}.tokui-barcode__label{color:var(--tokui-text-secondary);letter-spacing:.02em;font-size:.78rem}.tokui-barcode__svg{justify-content:center;width:100%;display:flex}.tokui-barcode__svg svg{max-width:100%;height:auto;display:block}.tokui-barcode__text{font-family:var(--tokui-font-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);letter-spacing:.12em;color:var(--tokui-text);word-break:break-all;text-align:center;font-size:.82rem}.tokui-barcode__empty{color:var(--tokui-text-secondary);padding:8px 0;font-size:.82rem}.tokui-barcode--sm{gap:4px;padding:8px 12px}.tokui-barcode--sm .tokui-barcode__text{font-size:.74rem}.tokui-barcode--lg{gap:8px;padding:16px 22px}.tokui-barcode--lg .tokui-barcode__text{font-size:.9rem}.tokui-qrcode{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-component-bg,var(--tokui-bg));color:var(--tokui-text);flex-direction:column;align-items:center;gap:6px;padding:12px;display:inline-flex}.tokui-qrcode__box{display:block}.tokui-qrcode--sm .tokui-qrcode__box{width:96px}.tokui-qrcode--md .tokui-qrcode__box{width:148px}.tokui-qrcode--lg .tokui-qrcode__box{width:208px}.tokui-qrcode__svg{width:100%;height:auto;display:block}.tokui-qrcode__label{color:var(--tokui-text-secondary);text-align:center;font-size:.78rem}.tokui-qrcode__empty{color:var(--tokui-text-secondary);padding:24px 16px;font-size:.82rem}.tokui-qrcode--sm{padding:8px}.tokui-qrcode--lg{padding:16px}@-webkit-keyframes tokuiToastIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes tokuiToastIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes tokuiToastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}@keyframes tokuiToastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}.tokui-bubble{flex-direction:column;gap:6px;max-width:100%;margin-bottom:24px;-webkit-animation:.2s tokuiFadeIn;animation:.2s tokuiFadeIn;display:flex}.tokui-bubble--user{align-items:flex-end}.tokui-bubble__row{align-items:flex-start;gap:10px;display:flex}.tokui-bubble--user .tokui-bubble__row{flex-direction:row-reverse}.tokui-bubble__avatar{letter-spacing:.5px;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-top:2px;font-size:.65rem;font-weight:700;display:inline-flex}.tokui-bubble--user .tokui-bubble__avatar{background:var(--tokui-bubble-user-avatar-bg,#e8e4df);color:var(--tokui-bubble-user-avatar-text,#6b6560)}.tokui-bubble--ai .tokui-bubble__avatar{background:var(--tokui-bubble-ai-avatar-bg,#1a1a2e);color:var(--tokui-bubble-ai-avatar-text,#e0e0e0)}.tokui-bubble__content{flex:1;min-width:0}.tokui-bubble--user .tokui-bubble__content{flex:none;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:85%}.tokui-bubble__header{color:var(--tokui-text-secondary,#999);align-items:center;gap:8px;margin-bottom:2px;padding:0 2px;font-size:.78rem;display:flex}.tokui-bubble--user .tokui-bubble__header{justify-content:flex-end}.tokui-bubble__header .tokui-badge{font-weight:500}.tokui-bubble__body{word-break:break-word;font-size:.9rem;line-height:1.75}.tokui-bubble--user .tokui-bubble__body{background:var(--tokui-bubble-user-bg,#f0ebe4);color:var(--tokui-bubble-user-text,#2c2825);border-radius:16px 16px 4px;padding:10px 16px;display:inline-block;box-shadow:0 1px 2px #0000000a}.tokui-bubble--ai .tokui-bubble__body{color:var(--tokui-text);background:0 0;padding:0}.tokui-bubble--system .tokui-bubble__row{justify-content:center}.tokui-bubble--system .tokui-bubble__avatar,.tokui-bubble--system .tokui-bubble__header{display:none}.tokui-bubble--system .tokui-bubble__body{background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text-secondary,#888);text-align:center;border-radius:12px;padding:5px 14px;font-size:.78rem;display:inline-block}.tokui-bubble__time{color:var(--tokui-text-secondary,#aaa);margin-top:2px;padding:0 2px;font-size:.68rem}.tokui-bubble--user .tokui-bubble__time{text-align:right}.tokui-bubble--system .tokui-bubble__time{display:none}.tokui-toolbar{opacity:.6;align-items:center;gap:4px;padding:4px 0;transition:opacity .2s;display:flex}.tokui-toolbar:hover{opacity:1}.tokui-toolbar--top{margin-bottom:6px}.tokui-toolbar--bottom{margin-top:6px}.tokui-toolbar--left{justify-content:flex-start}.tokui-toolbar--center{justify-content:center}.tokui-toolbar--right{justify-content:flex-end}.tokui-toolbar>.tokui-btn{color:var(--tokui-text-secondary,#999);background:0 0;border:none;margin:0;padding:4px 10px;font-size:.78rem}.tokui-toolbar>.tokui-btn:hover{background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text)}.tokui-toolbar>.tokui-thumb{margin:0}.tokui-badge{white-space:nowrap;vertical-align:middle;box-sizing:border-box;border-radius:4px;justify-content:center;align-items:center;height:22px;padding:0 8px;font-size:.75rem;font-weight:500;line-height:1;display:inline-flex}.tokui-badge__count,.tokui-badge__text{line-height:1}.tokui-badge--default{background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text-secondary,#666)}.tokui-badge--primary{background:var(--tokui-primary);color:#fff}.tokui-badge--success{background:var(--tokui-success);color:#fff}.tokui-badge--warning{background:var(--tokui-warning);color:#fff}.tokui-badge--error{background:var(--tokui-danger);color:#fff}.tokui-badge--info{background:var(--tokui-info);color:#fff}.tokui-badge--pill{border-radius:10px;padding:0 10px}.tokui-badge--dot{background:var(--tokui-danger,#ff4d4f);border-radius:50%;width:8px;height:8px;padding:0}.tokui-badge--dot.tokui-badge--sm{width:6px!important;height:6px!important;padding:0!important}.tokui-badge--dot.tokui-badge--lg{width:10px!important;height:10px!important;padding:0!important}.tokui-badge--sm{height:18px;padding:0 6px;font-size:.68rem}.tokui-badge--lg{height:28px;padding:0 12px;font-size:.88rem}.tokui-card-body>.tokui-badge{margin-top:0}.tokui-card-body>.tokui-badge+.tokui-badge{margin-left:6px}.tokui-card-body>:not(.tokui-badge)+.tokui-badge{margin-left:0}.tokui-badge-box{vertical-align:middle;display:inline-block;position:relative}.tokui-badge-box>sup{z-index:1;box-sizing:border-box;position:absolute;top:0;right:0;transform:translate(50%,-50%)}.tokui-badge-box__count{color:#fff;background:var(--tokui-danger);white-space:nowrap;min-width:18px;height:18px;box-shadow:0 0 0 2px var(--tokui-bg);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.tokui-badge-box__dot{background:var(--tokui-danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--tokui-bg);border-radius:50%}.tokui-badge-box__dot--sm{width:6px;height:6px}.tokui-badge-box__dot--lg{width:10px;height:10px}.tokui-badge-box__text{color:#fff;background:var(--tokui-danger);white-space:nowrap;height:18px;box-shadow:0 0 0 2px var(--tokui-bg);border-radius:4px;align-items:center;padding:0 6px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.tokui-skeleton{background:linear-gradient(90deg, var(--tokui-skeleton-base,#0000000a) 25%, var(--tokui-skeleton-shine,#00000012) 50%, var(--tokui-skeleton-base,#0000000a) 75%);border-radius:var(--tokui-radius,6px);background-size:800px 100%;flex-direction:column;gap:8px;padding:12px;-webkit-animation:1.5s linear infinite tokuiShimmer;animation:1.5s linear infinite tokuiShimmer;display:flex}.tokui-skeleton__row{background:var(--tokui-skeleton-base,#0000000a);border-radius:3px;height:14px}.tokui-skeleton__row:last-child{width:60%}.tokui-skeleton--card{flex-direction:row;align-items:flex-start;gap:12px}.tokui-skeleton__circle{background:var(--tokui-skeleton-base,#0000000a);border-radius:50%;flex-shrink:0;width:40px;height:40px}.tokui-skeleton__rect{background:var(--tokui-skeleton-base,#0000000a);border-radius:3px}.tokui-skeleton--avatar .tokui-skeleton__circle{width:64px;height:64px}.tokui-skeleton--image{padding:0;overflow:hidden}.tokui-skeleton--image .tokui-skeleton__rect{border-radius:0;width:100%;height:100%;min-height:120px}.tokui-td--skeleton{padding:8px 10px}.tokui-td--skeleton>.tokui-skeleton{flex-direction:unset;border-radius:3px;gap:0;width:70%;min-width:28px;height:14px;padding:0;display:block}.tokui-stream-skeleton{background:linear-gradient(90deg, var(--tokui-skeleton-base,#0000000a) 25%, var(--tokui-skeleton-shine,#00000012) 50%, var(--tokui-skeleton-base,#0000000a) 75%);border-radius:var(--tokui-radius,6px);background-size:800px 100%;min-height:40px;-webkit-animation:1.5s linear infinite tokuiShimmer;animation:1.5s linear infinite tokuiShimmer;display:block}.tokui-stream-skeleton--stat,.tokui-stream-skeleton--file,.tokui-stream-skeleton--attach,.tokui-stream-skeleton--commit{min-height:72px}.tokui-stream-skeleton--result,.tokui-stream-skeleton--empty{min-height:140px}.tokui-stream-skeleton--video{aspect-ratio:16/9;min-height:0}.tokui-stream-skeleton--audio{min-height:56px}.tokui-stream-skeleton--img{min-height:120px}.tokui-stream-skeleton--avatar{border-radius:50%;width:40px;height:40px;min-height:0}.tokui-toast-container{z-index:10000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.tokui-toast{border-radius:var(--tokui-radius,6px);color:var(--tokui-btn-text-inverse,#fff);box-shadow:var(--tokui-overlay-shadow);pointer-events:auto;align-items:center;gap:8px;padding:10px 20px;font-size:.88rem;font-weight:500;-webkit-animation:.25s forwards tokuiToastIn;animation:.25s forwards tokuiToastIn;display:inline-flex}.tokui-toast--hide{-webkit-animation:.25s forwards tokuiToastOut;animation:.25s forwards tokuiToastOut}.tokui-toast--info{background:var(--tokui-info)}.tokui-toast--success{background:var(--tokui-success)}.tokui-toast--warning{background:var(--tokui-warning);color:var(--tokui-btn-warning-text,#333)}.tokui-toast--error{background:var(--tokui-danger)}.tokui-toast__icon{flex-shrink:0;font-size:1.1rem}.tokui-toast--bottom{position:fixed;top:auto;bottom:20px}.tokui-welcome{text-align:center;flex-direction:column;align-items:center;padding:40px 20px 32px;display:flex}.tokui-welcome__hero{flex-direction:column;align-items:center;max-width:560px;margin-bottom:26px;display:flex}.tokui-welcome__title{color:var(--tokui-text,#1f2937);letter-spacing:-.01em;margin-bottom:8px;font-size:1.6rem;font-weight:700;line-height:1.3}.tokui-welcome__subtitle{color:var(--tokui-text-secondary,#6b7280);margin-bottom:16px;font-size:.9rem;line-height:1.5}.tokui-welcome__badges{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tokui-welcome__badge{color:var(--tokui-text-secondary,#6b7280);background:var(--tokui-bg-secondary,#f3f4f6);border:1px solid var(--tokui-border,#e5e7eb);border-radius:999px;align-items:center;padding:4px 11px;font-size:.72rem;font-weight:500;line-height:1.4;display:inline-flex}.tokui-welcome__badge:before{content:\\\"◈\\\";color:var(--tokui-primary,#6366f1);margin-right:5px}.tokui-welcome__section{color:var(--tokui-text-secondary,#6b7280);letter-spacing:.02em;margin-bottom:14px;font-size:.8rem;font-weight:600}.tokui-welcome__footer{color:var(--tokui-text-tertiary,#9ca3af);margin-top:22px;font-size:.78rem;line-height:1.5}.tokui-welcome__grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;width:100%;max-width:720px;display:grid}.tokui-welcome-feature{border:1px solid var(--tokui-border,#e5e7eb);cursor:pointer;text-align:left;background:var(--tokui-bg,#fff);border-radius:12px;align-items:center;gap:14px;padding:16px 18px;transition:all .2s;display:flex}.tokui-welcome-feature:hover{border-color:#0000;transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.tokui-welcome-feature:active{transform:translateY(0)}.tokui-welcome-feature:focus-visible{outline:2px solid var(--tokui-primary);outline-offset:2px}.tokui-welcome-feature__icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tokui-welcome-feature--code .tokui-welcome-feature__icon{background:var(--tokui-primary-bg);color:var(--tokui-primary)}.tokui-welcome-feature--chart .tokui-welcome-feature__icon{color:var(--tokui-success,#22c55e);background:#22c55e1a}.tokui-welcome-feature--doc .tokui-welcome-feature__icon{color:var(--tokui-warning,#f59e0b);background:#f59e0b1a}.tokui-welcome-feature--dashboard .tokui-welcome-feature__icon{color:#3b82f6;background:#3b82f61a}.tokui-welcome-feature--print .tokui-welcome-feature__icon{color:#f43f5e;background:#f43f5e1a}.tokui-welcome-feature--chat .tokui-welcome-feature__icon{color:#06b6d4;background:#06b6d41a}.tokui-welcome-feature--table .tokui-welcome-feature__icon{color:#8b5cf6;background:#8b5cf61a}.tokui-welcome-feature--form .tokui-welcome-feature__icon{color:#14b8a6;background:#14b8a61a}.tokui-welcome-feature__body{flex:1;min-width:0}.tokui-welcome-feature__title{color:var(--tokui-text,#1f2937);margin-bottom:2px;font-size:.875rem;font-weight:600;line-height:1.4}.tokui-welcome-feature__desc{color:var(--tokui-text-secondary,#6b7280);font-size:.78rem;line-height:1.4}[data-tokui-theme=dark] .tokui-welcome__title{color:var(--tokui-text,#f3f4f6)}[data-tokui-theme=dark] .tokui-welcome__subtitle{color:var(--tokui-text-secondary,#9ca3af)}[data-tokui-theme=dark] .tokui-welcome__badge{color:var(--tokui-text-secondary,#9ca3af);background:var(--tokui-bg-secondary,#2a2a3a);border-color:var(--tokui-border,#374151)}[data-tokui-theme=dark] .tokui-welcome__section{color:var(--tokui-text-secondary,#9ca3af)}[data-tokui-theme=dark] .tokui-welcome__footer{color:var(--tokui-text-tertiary,#6b7280)}[data-tokui-theme=dark] .tokui-welcome-feature{border-color:var(--tokui-border,#374151);background:var(--tokui-bg,#1e1e2e)}[data-tokui-theme=dark] .tokui-welcome-feature:hover{border-color:#0000;box-shadow:0 4px 16px #0000004d}[data-tokui-theme=dark] .tokui-welcome-feature--code .tokui-welcome-feature__icon{color:var(--tokui-primary,#818cf8);background:#6366f126}[data-tokui-theme=dark] .tokui-welcome-feature--chart .tokui-welcome-feature__icon{color:#4ade80;background:#4ade8026}[data-tokui-theme=dark] .tokui-welcome-feature--doc .tokui-welcome-feature__icon{color:#fbbf24;background:#fbbf2426}[data-tokui-theme=dark] .tokui-welcome-feature--dashboard .tokui-welcome-feature__icon{color:#60a5fa;background:#60a5fa26}[data-tokui-theme=dark] .tokui-welcome-feature--print .tokui-welcome-feature__icon{color:#fb7185;background:#fb718526}[data-tokui-theme=dark] .tokui-welcome-feature--chat .tokui-welcome-feature__icon{color:#22d3ee;background:#22d3ee26}[data-tokui-theme=dark] .tokui-welcome-feature--table .tokui-welcome-feature__icon{color:#a78bfa;background:#a78bfa26}[data-tokui-theme=dark] .tokui-welcome-feature--form .tokui-welcome-feature__icon{color:#2dd4bf;background:#2dd4bf26}[data-tokui-theme=dark] .tokui-welcome-feature__title{color:var(--tokui-text,#f3f4f6)}[data-tokui-theme=dark] .tokui-welcome-feature__desc{color:var(--tokui-text-secondary,#9ca3af)}.tokui-unknown{background:var(--tokui-warning-bg);border:1px dashed var(--tokui-warning-border);border-radius:var(--tokui-radius);color:var(--tokui-warning-text);padding:8px 12px;font-size:.85rem}@media screen and (width<=1024px){.tokui-row{grid-template-columns:repeat(6,1fr);gap:10px}.tokui-col--3,.tokui-col--4{grid-column:span 3!important}.tokui-col--6{grid-column:span 6!important}}@media screen and (width<=640px){.tokui-row{grid-template-columns:1fr;gap:8px}.tokui-col{grid-column:span 1!important}.tokui-radio-group,.tokui-checkbox-group{flex-direction:column;gap:8px}.tokui-table{font-size:.8em}.tokui-table th,.tokui-table td{padding:6px 8px}.tokui-img--avatar{width:64px;height:64px}.tokui-picker-dropdown{max-height:180px}}.tokui-dot{vertical-align:middle;align-items:center;gap:6px;font-size:.85rem;line-height:1;display:inline-flex}.tokui-dot__circle{background:var(--tokui-text-muted,#aaa);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.tokui-dot--sm .tokui-dot__circle{width:6px;height:6px}.tokui-dot--lg .tokui-dot__circle{width:12px;height:12px}.tokui-dot--success .tokui-dot__circle{background:var(--tokui-success)}.tokui-dot--warning .tokui-dot__circle{background:var(--tokui-warning)}.tokui-dot--error .tokui-dot__circle,.tokui-dot--danger .tokui-dot__circle{background:var(--tokui-danger)}.tokui-dot--info .tokui-dot__circle{background:var(--tokui-info)}.tokui-dot--primary .tokui-dot__circle{background:var(--tokui-primary)}.tokui-dot--pulse .tokui-dot__circle{-webkit-animation:1.5s ease-in-out infinite tokuiPulse;animation:1.5s ease-in-out infinite tokuiPulse}.tokui-dot__text{color:var(--tokui-text,#333)}@-webkit-keyframes tokuiPulse{0%{box-shadow:0 0 #0000004d}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}@keyframes tokuiPulse{0%{box-shadow:0 0 #0000004d}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}.tokui-avatar{vertical-align:middle;-o-object-fit:cover;object-fit:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;overflow:hidden}.tokui-avatar--sm{width:32px;height:32px;font-size:.75rem}.tokui-avatar--md{width:40px;height:40px;font-size:.85rem}.tokui-avatar--lg{width:56px;height:56px;font-size:1.1rem}.tokui-avatar--xl{width:72px;height:72px;font-size:1.3rem}.tokui-avatar--text{color:#fff;letter-spacing:.5px;background:var(--tokui-primary);font-weight:600}.tokui-tooltip{cursor:help;border-bottom:1px dashed var(--tokui-text-muted,#aaa);display:inline-block}.tokui-tooltip__popup{z-index:9000;border-radius:var(--tokui-radius,4px);white-space:nowrap;color:var(--tokui-tooltip-text);background:var(--tokui-tooltip-bg);pointer-events:none;opacity:0;padding:6px 12px;font-size:.8rem;line-height:1.4;transition:opacity .15s;position:fixed;box-shadow:0 2px 12px #0003}.tokui-tooltip__popup--visible{opacity:1}.tokui-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:4px;font-size:.85rem;display:flex}.tokui-pagination--sm{font-size:.78rem}.tokui-pagination--sm .tokui-pagination__item,.tokui-pagination--sm .tokui-pagination__btn{min-width:26px;height:26px;padding:0 4px}.tokui-pagination--lg{font-size:.95rem}.tokui-pagination--lg .tokui-pagination__item,.tokui-pagination--lg .tokui-pagination__btn{min-width:38px;height:38px;padding:0 8px}.tokui-pagination__pages{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.tokui-pagination__total{color:var(--tokui-text-secondary,#666);margin-right:8px;font-size:.82rem}.tokui-pagination__item,.tokui-pagination__btn{border:1px solid var(--tokui-border,#d9d9d9);border-radius:var(--tokui-radius,4px);background:var(--tokui-bg,#fff);min-width:32px;height:32px;color:var(--tokui-text,#333);cursor:pointer;outline:none;justify-content:center;align-items:center;padding:0 6px;transition:all .2s;display:inline-flex}.tokui-pagination__item:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-pagination__item--active{background:var(--tokui-primary);color:#fff;border-color:var(--tokui-primary);cursor:default}.tokui-pagination__btn--disabled{opacity:.4;cursor:not-allowed}.tokui-pagination__ellipsis{min-width:32px;height:32px;color:var(--tokui-text-muted,#aaa);justify-content:center;align-items:center;display:inline-flex}.tokui-dropdown{display:inline-block;position:relative}.tokui-dropdown__trigger{border:1px solid var(--tokui-border,#d9d9d9);border-radius:var(--tokui-radius,4px);background:var(--tokui-bg,#fff);color:var(--tokui-text,#333);cursor:pointer;align-items:center;gap:4px;padding:6px 14px;font-size:.85rem;transition:all .2s;display:inline-flex}.tokui-dropdown__trigger:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-dropdown__trigger--primary{background:var(--tokui-primary);color:#fff;border-color:var(--tokui-primary)}.tokui-dropdown__trigger--primary:hover{filter:brightness(1.1);color:#fff}.tokui-dropdown__trigger--danger{background:var(--tokui-danger);color:#fff;border-color:var(--tokui-danger)}.tokui-dropdown__trigger--danger:hover{filter:brightness(1.1);color:#fff}.tokui-dropdown__trigger--success{background:var(--tokui-success);color:#fff;border-color:var(--tokui-success)}.tokui-dropdown__trigger--success:hover{filter:brightness(1.1);color:#fff}.tokui-dropdown__trigger--warning{background:var(--tokui-warning);color:#fff;border-color:var(--tokui-warning)}.tokui-dropdown__trigger--warning:hover{filter:brightness(1.1);color:#fff}.tokui-dropdown__trigger--ghost{color:var(--tokui-text,#333);background:0 0;border-color:#0000}.tokui-dropdown__trigger--ghost:hover{color:var(--tokui-primary)}.tokui-dropdown__trigger:after{content:\\\"\\\";vertical-align:middle;border:4px solid #0000;border-top-color:currentColor;width:0;height:0;margin-left:4px;display:inline-block}.tokui-dropdown__panel{background:var(--tokui-bg,#fff);border:1px solid var(--tokui-border,#d9d9d9);border-radius:var(--tokui-radius,4px);min-width:160px;box-shadow:var(--tokui-overlay-shadow);z-index:9000;padding:4px 0;display:none;position:fixed}.tokui-dropdown__panel--open{display:block}.tokui-dropdown__item{width:100%;color:var(--tokui-text,#333);cursor:pointer;text-align:left;background:0 0;border:none;padding:8px 14px;font-size:.85rem;transition:background .15s;display:block}.tokui-dropdown__item:hover{background:var(--tokui-stripe,#f5f5f5)}.tokui-dropdown__item--danger{color:var(--tokui-danger)}.tokui-dropdown__item--danger:hover{background:var(--tokui-danger);color:#fff}.tokui-dropdown__item--disabled{color:var(--tokui-text-muted,#aaa);cursor:not-allowed;pointer-events:none}.tokui-checkbox-text,.tokui-radio-text{color:var(--tokui-text,#333);vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-left:6px;font-size:.875rem}.tokui-tag--closable{padding-right:4px}.tokui-tag__close{cursor:pointer;width:16px;height:16px;color:inherit;background:#0000000f;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;font-size:.7rem;line-height:1;transition:background .2s;display:inline-flex}.tokui-tag__close:hover{background:#00000026}.tokui-progress__span-text{color:var(--tokui-text-muted,#aaa);white-space:nowrap;margin-left:8px;font-size:.8rem}.tokui-picker--multi .tokui-picker__control{flex-wrap:wrap;height:auto;min-height:36px;padding:2px 4px}.tokui-picker--multi .tokui-picker__tag{background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text,#333);border-radius:3px;align-items:center;gap:4px;margin:2px;padding:1px 6px;font-size:.8rem;display:inline-flex}.tokui-picker--multi .tokui-picker__tag-close{cursor:pointer;opacity:.6;font-size:.7rem}.tokui-picker--multi .tokui-picker__tag-close:hover{opacity:1}.tokui-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:120px;padding:40px 20px;display:flex}.tokui-empty__img{opacity:.75;width:160px;height:auto;margin-bottom:12px}.tokui-empty__icon{opacity:.55;width:160px;margin-bottom:12px}.tokui-empty__icon svg{width:100%;height:auto}.tokui-empty__text{color:var(--tokui-text-muted,#999);font-size:.9rem;line-height:1.6}.tokui-result{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.tokui-result__icon{width:72px;height:72px;margin-bottom:16px}.tokui-result__icon svg{width:100%;height:100%}.tokui-result--success .tokui-result__icon svg circle{fill:var(--tokui-success-1,#22c55e1a);stroke:var(--tokui-success)}.tokui-result--success .tokui-result__icon svg path{stroke:var(--tokui-success)}.tokui-result--error .tokui-result__icon svg circle{fill:var(--tokui-danger-1,#ef44441a);stroke:var(--tokui-danger)}.tokui-result--error .tokui-result__icon svg path{stroke:var(--tokui-danger)}.tokui-result--warning .tokui-result__icon svg circle{fill:var(--tokui-warning-1,#f59e0b1a);stroke:var(--tokui-warning)}.tokui-result--warning .tokui-result__icon svg path{stroke:var(--tokui-warning)}.tokui-result--info .tokui-result__icon svg circle{fill:var(--tokui-primary-1,var(--tokui-primary-bg));stroke:var(--tokui-primary)}.tokui-result--info .tokui-result__icon svg path{stroke:var(--tokui-primary)}.tokui-result__title{color:var(--tokui-text);margin-bottom:8px;font-size:1.25rem;font-weight:600}.tokui-result__desc{color:var(--tokui-text-muted,#666);max-width:400px;font-size:.9rem;line-height:1.6}.tokui-stat{flex-direction:column;gap:4px;display:inline-flex}.tokui-stat__title{color:var(--tokui-text-muted,#666);font-size:.85rem;font-weight:400}.tokui-stat__value{color:var(--tokui-text);font-variant-numeric:tabular-nums;align-items:baseline;gap:2px;font-size:1.75rem;font-weight:700;line-height:1.2;display:flex}.tokui-stat__prefix,.tokui-stat__suffix{color:var(--tokui-text-muted,#666);font-size:.9rem;font-weight:400}.tokui-stat__trend{margin-left:4px;font-size:1rem;font-weight:600}.tokui-stat__trend--up{color:var(--tokui-success)}.tokui-stat__trend--down{color:var(--tokui-danger)}.tokui-desc{--tokui-desc-cols:3;grid-template-columns:repeat(var(--tokui-desc-cols), 1fr);margin:.5em 0;display:grid}.tokui-desc__item{border-bottom:1px solid var(--tokui-border);padding:10px 14px}.tokui-desc__item--last-row,.tokui-desc__item:last-child{border-bottom:none}.tokui-desc__label{color:var(--tokui-text-muted,#666);margin-bottom:2px;font-size:.85rem}.tokui-desc__value{color:var(--tokui-text);word-break:break-word;font-size:.9rem}.tokui-desc--stripe .tokui-desc__item:nth-child(2n){background:var(--tokui-stripe,#f5f5f5)}.tokui-desc--bordered{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius,6px);overflow:hidden}.tokui-desc--bordered .tokui-desc__item{border-right:1px solid var(--tokui-border)}.tokui-desc--horizontal .tokui-desc__item{align-items:baseline;display:flex}.tokui-desc--horizontal.tokui-desc--bordered .tokui-desc__item{align-items:center}.tokui-desc--horizontal .tokui-desc__label{min-width:var(--tokui-desc-label-w,120px);white-space:nowrap;color:var(--tokui-text);flex-shrink:0;margin-bottom:0;font-size:.9rem}.tokui-desc--horizontal .tokui-desc__value{flex:1;min-width:0}.tokui-numinput{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);align-items:stretch;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;display:inline-flex;overflow:hidden}.tokui-numinput--disabled{opacity:.5;pointer-events:none}.tokui-numinput__btn{background:var(--tokui-stripe,#f5f5f5);width:32px;color:var(--tokui-text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;font-size:1.1rem;transition:background .15s,color .15s;display:flex}.tokui-numinput__btn:hover{background:var(--tokui-primary);color:#fff}.tokui-numinput__input{text-align:center;width:60px;color:var(--tokui-text);-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:8px 4px;font-size:.9rem}.tokui-numinput__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tokui-numinput__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tokui-carousel{border-radius:var(--tokui-radius,4px);background:var(--tokui-stripe,#f5f5f5);position:relative;overflow:hidden}.tokui-carousel__track{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:transform .4s;display:flex}.tokui-carousel__track:active{cursor:-webkit-grabbing;cursor:grabbing}.tokui-carousel__slide{min-width:100%;position:relative}.tokui-carousel__slide img{width:100%;display:block}.tokui-carousel__slide-body{color:#fff;background:linear-gradient(#0000,#000000b3);padding:16px;position:absolute;bottom:0;left:0;right:0}.tokui-carousel__slide-title{margin-bottom:4px;font-size:1rem;font-weight:600}.tokui-carousel__slide-desc{opacity:.85;font-size:.8rem}.tokui-carousel__arrow{cursor:pointer;width:36px;height:36px;color:var(--tokui-text);z-index:2;background:#fffc;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.tokui-carousel__arrow:hover{background:#fff}.tokui-carousel__arrow--prev{left:8px}.tokui-carousel__arrow--next{right:8px}.tokui-carousel__dots{z-index:2;gap:6px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.tokui-carousel__dot{background:var(--tokui-overlay-bg-muted);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .2s}.tokui-carousel__dot--active{background:var(--tokui-btn-text-inverse)}[data-tokui-theme=dark] .tokui-carousel__arrow{color:#fff;background:#00000080}[data-tokui-theme=dark] .tokui-carousel__arrow:hover{background:#000c}.tokui-carousel__viewport{border-radius:inherit;position:relative;overflow:hidden}.tokui-carousel--sized .tokui-carousel__track,.tokui-carousel--sized .tokui-carousel__slide{height:100%}.tokui-carousel--sized .tokui-carousel__slide img{-o-object-fit:cover;object-fit:cover;height:100%}.tokui-carousel--thumb{background:var(--tokui-bg,#fff)}.tokui-carousel__thumbs{scrollbar-width:thin;justify-content:safe center;gap:8px;padding:10px;display:flex;overflow-x:auto}.tokui-carousel__thumb{cursor:pointer;background:var(--tokui-stripe,#f5f5f5);opacity:.55;width:72px;height:48px;color:var(--tokui-text-muted);border:2px solid #0000;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:.8rem;transition:opacity .2s,border-color .2s,transform .2s;display:flex;overflow:hidden}.tokui-carousel__thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.tokui-carousel__thumb:hover{opacity:.85;transform:translateY(-1px)}.tokui-carousel__thumb--active{opacity:1;border-color:var(--tokui-primary)}.tokui-popover{display:inline-block;position:relative}.tokui-popover__trigger{cursor:pointer;border-radius:var(--tokui-radius,4px);background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text);border:1px solid var(--tokui-border,#e0e0e0);padding:4px 12px;font-size:.9rem;transition:all .2s;display:inline-block}.tokui-popover__trigger:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-popover__panel{z-index:1000;background:var(--tokui-bg,#fff);box-shadow:var(--tokui-overlay-shadow);border:1px solid var(--tokui-border,#e0e0e0);opacity:0;pointer-events:none;border-radius:8px;min-width:160px;max-width:360px;transition:opacity .15s,transform .15s;position:fixed;transform:scale(.95)}.tokui-popover__panel--visible{opacity:1;pointer-events:auto;transform:scale(1)}.tokui-popover__arrow{background:var(--tokui-bg,#fff);border:1px solid var(--tokui-border,#e0e0e0);width:10px;height:10px;position:absolute;transform:rotate(45deg)}.tokui-popover__panel--top .tokui-popover__arrow{border-top:none;border-left:none;margin-left:-5px;bottom:-6px;left:50%}.tokui-popover__panel--bottom .tokui-popover__arrow{border-bottom:none;border-right:none;margin-left:-5px;top:-6px;left:50%}.tokui-popover__panel--left .tokui-popover__arrow{border-bottom:none;border-left:none;margin-top:-5px;top:50%;right:-6px}.tokui-popover__panel--right .tokui-popover__arrow{border-top:none;border-right:none;margin-top:-5px;top:50%;left:-6px}.tokui-popover__title{color:var(--tokui-text);padding:10px 14px 0;font-size:.95rem;font-weight:600}.tokui-popover__body{color:var(--tokui-text-secondary,#666);padding:10px 14px;font-size:.9rem;line-height:1.5}[data-tokui-theme=dark] .tokui-popover__panel{box-shadow:var(--tokui-overlay-shadow)}.tokui-hover-card{display:inline-block;position:relative}.tokui-hover-card__trigger{cursor:pointer;display:inline-flex}.tokui-hover-card__content-temp{opacity:0;pointer-events:none;visibility:hidden;position:fixed;top:-9999px;left:-9999px}.tokui-hover-card__content{z-index:10000;background:var(--tokui-bg,#fff);box-shadow:var(--tokui-overlay-shadow);border:1px solid var(--tokui-border,#e0e0e0);opacity:0;pointer-events:none;border-radius:8px;min-width:120px;padding:0;transition:opacity .15s,transform .15s;position:fixed;transform:scale(.95)}.tokui-hover-card__content--visible{opacity:1;pointer-events:auto;transform:scale(1)}.tokui-hover-card__arrow{background:var(--tokui-bg,#fff);border:1px solid var(--tokui-border,#e0e0e0);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.tokui-hover-card__arrow--bottom{border-bottom:none;border-right:none;margin-left:-4px;top:-5px;left:50%}.tokui-hover-card__arrow--top{border-top:none;border-left:none;margin-left:-4px;bottom:-5px;left:50%}.tokui-hover-card__arrow--left{border-bottom:none;border-left:none;margin-top:-4px;top:50%;right:-5px}.tokui-hover-card__arrow--right{border-top:none;border-right:none;margin-top:-4px;top:50%;left:-5px}.tokui-hover-card__body{color:var(--tokui-text);flex-direction:column;gap:8px;padding:12px 14px;font-size:.9rem;line-height:1.5;display:flex}.tokui-hover-card__body .tokui-avatar{margin-bottom:4px}[data-tokui-theme=dark] .tokui-hover-card__content{box-shadow:var(--tokui-overlay-shadow)}.tokui-input-tag .tokui-field{flex-direction:column;display:flex}.tokui-input-tag__box{border:1px solid var(--tokui-border,#e0e0e0);border-radius:var(--tokui-radius,4px);background:var(--tokui-bg,#fff);cursor:text;flex-wrap:wrap;align-items:center;gap:4px;min-height:40px;padding:6px 10px;transition:border-color .2s;display:flex}.tokui-input-tag__box:focus-within{border-color:var(--tokui-primary);box-shadow:0 0 0 2px var(--tokui-primary-bg)}.tokui-input-tag__list{flex-wrap:wrap;gap:4px;display:flex}.tokui-input-tag__tag{background:var(--tokui-primary-1,var(--tokui-primary-bg));color:var(--tokui-primary);white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.85rem;display:inline-flex}.tokui-input-tag__close{cursor:pointer;opacity:.6;margin-left:2px;font-size:1rem;line-height:1}.tokui-input-tag__close:hover{opacity:1}.tokui-input-tag__input{min-width:80px;color:var(--tokui-text);background:0 0;border:none;outline:none;flex:1;padding:4px 0;font-size:.9rem}.tokui-input-tag__input::-moz-placeholder{color:var(--tokui-text-placeholder,#aaa)}.tokui-input-tag__input:-ms-input-placeholder{color:var(--tokui-text-placeholder,#aaa)}.tokui-input-tag__input::placeholder{color:var(--tokui-text-placeholder,#aaa)}[data-tokui-theme=dark] .tokui-input-tag__box{background:var(--tokui-input-bg,#1e1e2e)}[data-tokui-theme=dark] .tokui-input-tag__tag{background:var(--tokui-primary-bg)}.tokui-countdown{flex-direction:column;gap:4px;display:inline-flex}.tokui-countdown__label{color:var(--tokui-text-secondary,#666);font-size:.85rem}.tokui-countdown__digits{align-items:center;gap:4px;display:flex}.tokui-countdown__item{flex-direction:column;align-items:center;display:flex}.tokui-countdown__num{background:var(--tokui-stripe,#f5f5f5);min-width:48px;height:48px;color:var(--tokui-text);font-variant-numeric:tabular-nums;border-radius:6px;justify-content:center;align-items:center;font-size:1.4rem;font-weight:700;display:inline-flex}.tokui-countdown__unit{color:var(--tokui-text-secondary,#666);margin-top:2px;font-size:.75rem}.tokui-countdown__sep{color:var(--tokui-text-secondary,#666);padding-bottom:16px;font-size:1.4rem;font-weight:700}.tokui-countdown--sm .tokui-countdown__num{min-width:36px;height:36px;font-size:1.1rem}.tokui-countdown--sm .tokui-countdown__sep{padding-bottom:12px;font-size:1.1rem}.tokui-countdown--lg .tokui-countdown__num{border-radius:8px;min-width:60px;height:60px;font-size:1.8rem}.tokui-countdown--lg .tokui-countdown__sep{padding-bottom:20px;font-size:1.8rem}.tokui-countdown__ended{color:var(--tokui-danger,#ef4444);padding:12px 0;font-size:1rem;font-weight:600}[data-tokui-theme=dark] .tokui-countdown__num{background:#ffffff14}.tokui-watermark{position:relative}.tokui-watermark__overlay{pointer-events:none;z-index:9;background-repeat:repeat;position:absolute;inset:0;overflow:hidden}.tokui-backtop{z-index:999;background:var(--tokui-bg,#fff);width:44px;height:44px;color:var(--tokui-text-secondary,#666);border:1px solid var(--tokui-border,#e0e0e0);box-shadow:var(--tokui-overlay-shadow);cursor:pointer;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .3s,transform .3s,background .2s;display:flex;position:fixed}.tokui-backtop--container{z-index:10;float:right;clear:both;position:sticky}.tokui-backtop--visible{opacity:1;pointer-events:auto}.tokui-backtop--circle{border-radius:50%}.tokui-backtop--round{border-radius:20px}.tokui-backtop--square{border-radius:var(--tokui-radius,4px)}.tokui-backtop:hover{background:var(--tokui-primary-1,var(--tokui-primary-bg));color:var(--tokui-primary);transform:translateY(-2px)}.tokui-backtop--sm{width:36px;height:36px;font-size:.85rem}.tokui-backtop--lg{width:52px;height:52px;font-size:1.2rem}.tokui-backtop__text{font-size:1.1rem;font-weight:600;line-height:1}[data-tokui-theme=dark] .tokui-backtop{background:var(--tokui-bg);border-color:var(--tokui-border,#333)}[data-tokui-theme=dark] .tokui-backtop:hover{background:var(--tokui-primary-bg)}.tokui-calendar{box-sizing:border-box;border:1px solid var(--tokui-border,#e0e0e0);border-radius:var(--tokui-radius,10px);background:var(--tokui-bg,#fff);width:100%;min-width:280px;font-size:.95rem;display:block;overflow:hidden}.tokui-col>.tokui-calendar{width:100%}.tokui-calendar--card{box-shadow:0 1px 4px #00000014}.tokui-calendar--mini{min-width:220px;font-size:.82rem}.tokui-calendar__header{border-bottom:1px solid var(--tokui-border,#e0e0e0);color:var(--tokui-text);justify-content:space-between;align-items:center;padding:14px 18px;font-weight:600;display:flex}.tokui-calendar--mini .tokui-calendar__header{padding:8px 10px;font-size:.85rem}.tokui-calendar__grid{grid-template-columns:repeat(7,1fr);gap:3px;padding:10px;display:grid}.tokui-calendar__weekday{text-align:center;color:var(--tokui-text-secondary,#999);padding:6px 0 10px;font-size:.76rem;font-weight:500}.tokui-calendar--mini .tokui-calendar__weekday{padding:3px 0 6px;font-size:.72rem}.tokui-calendar__day{aspect-ratio:1;cursor:default;color:var(--tokui-text);border-radius:8px;justify-content:center;align-items:center;transition:background .15s;display:flex;position:relative}.tokui-calendar__day__num{font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:.88rem;display:inline-flex}.tokui-calendar--mini .tokui-calendar__day__num{width:26px;height:26px;font-size:.78rem}.tokui-calendar__day:hover{background:var(--tokui-primary-1,var(--tokui-primary-bg))}.tokui-calendar__day--empty{visibility:hidden}.tokui-calendar__day--other{color:var(--tokui-text-placeholder,silver)}.tokui-calendar__day--other .tokui-calendar__day__num{opacity:.5}.tokui-calendar__day--today .tokui-calendar__day__num{color:var(--tokui-primary);box-shadow:inset 0 0 0 1.5px var(--tokui-primary);font-weight:700}.tokui-calendar__day--marked .tokui-calendar__day__num{color:var(--tokui-primary);font-weight:600}.tokui-calendar__day--marked .tokui-calendar__day__num:after{content:\\\"\\\";background:var(--tokui-primary);border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.tokui-calendar__day--in-range{background:var(--tokui-primary-1,#4f46e51f);border-radius:0}.tokui-calendar__day--range-start{background:var(--tokui-primary-1,#4f46e51f);border-radius:9999px 0 0 9999px}.tokui-calendar__day--range-end{background:var(--tokui-primary-1,#4f46e51f);border-radius:0 9999px 9999px 0}.tokui-calendar__day--range-start.tokui-calendar__day--range-end{border-radius:0}.tokui-calendar__day--in-range .tokui-calendar__day__num{color:var(--tokui-primary)}.tokui-calendar__day--range-start .tokui-calendar__day__num,.tokui-calendar__day--range-end .tokui-calendar__day__num,.tokui-calendar__day--selected .tokui-calendar__day__num{background:var(--tokui-primary);color:#fff;font-weight:600}[data-tokui-theme=dark] .tokui-calendar{background:var(--tokui-bg);border-color:var(--tokui-border,#333)}[data-tokui-theme=dark] .tokui-calendar__day:hover{background:#ffffff0f}.tokui-datepicker{width:100%;display:inline-block;position:relative}.tokui-datepicker--disabled{opacity:.5;pointer-events:none}.tokui-datepicker--open .tokui-datepicker-dropdown{display:block}.tokui-datepicker-control{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);cursor:pointer;align-items:center;transition:border-color .2s;display:flex}.tokui-datepicker-control:hover{border-color:var(--tokui-primary)}.tokui-datepicker-input{color:var(--tokui-text);cursor:pointer;background:0 0;border:none;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:.875rem}.tokui-datepicker-icon{width:36px;height:36px;color:var(--tokui-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tokui-datepicker-icon svg{width:16px;height:16px}.tokui-datepicker-dropdown{z-index:1000;background:var(--tokui-bg);border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);box-shadow:var(--tokui-overlay-shadow);min-width:300px;padding:12px;-webkit-animation:.15s tokuiFadeIn;animation:.15s tokuiFadeIn;display:none;position:fixed}.tokui-datepicker-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tokui-datepicker-title{color:var(--tokui-text);font-size:.9rem;font-weight:600}.tokui-datepicker-nav{cursor:pointer;width:28px;height:28px;color:var(--tokui-text-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.tokui-datepicker-nav:hover{background:var(--tokui-stripe);color:var(--tokui-text)}.tokui-datepicker-nav svg{width:14px;height:14px}.tokui-datepicker-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.tokui-datepicker-weekday{text-align:center;color:var(--tokui-text-muted);padding:4px 0;font-size:.75rem;font-weight:500}.tokui-datepicker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.tokui-datepicker-day{cursor:pointer;width:32px;height:32px;color:var(--tokui-text);border-radius:50%;justify-content:center;align-items:center;margin:1px auto;font-size:.8rem;transition:background .15s,color .15s;display:flex}.tokui-datepicker-day:hover{background:var(--tokui-stripe)}.tokui-datepicker-day--other{color:var(--tokui-text-muted);opacity:.4}.tokui-datepicker-day--today{color:var(--tokui-primary);border:1px solid var(--tokui-primary);font-weight:600}.tokui-datepicker-day--selected{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse,#fff);font-weight:600}.tokui-datepicker-day--selected:hover{background:var(--tokui-primary)}[data-tokui-theme=dark] .tokui-datepicker-dropdown{box-shadow:var(--tokui-overlay-shadow)}[data-tokui-theme=dark] .tokui-datepicker-day--selected{background:var(--tokui-primary)}.tokui-timepicker{width:100%;display:inline-block;position:relative}.tokui-timepicker--disabled{opacity:.5;pointer-events:none}.tokui-timepicker--open .tokui-timepicker-dropdown{display:block}.tokui-timepicker-control{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);cursor:pointer;align-items:center;transition:border-color .2s;display:flex}.tokui-timepicker-control:hover{border-color:var(--tokui-primary)}.tokui-timepicker-input{color:var(--tokui-text);cursor:pointer;background:0 0;border:none;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:.875rem}.tokui-timepicker-icon{width:36px;height:36px;color:var(--tokui-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tokui-timepicker-icon svg{width:16px;height:16px}.tokui-timepicker-dropdown{z-index:1000;background:var(--tokui-bg);border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);box-shadow:var(--tokui-overlay-shadow);min-width:300px;padding:12px;-webkit-animation:.15s tokuiFadeIn;animation:.15s tokuiFadeIn;display:none;position:fixed}.tokui-timepicker-columns{justify-content:center;gap:8px;display:flex}.tokui-timepicker-column{text-align:center;flex:1;max-width:80px}.tokui-timepicker-column-list{box-sizing:border-box;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;border:1px solid var(--tokui-border);scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:4px;height:192px;scroll-padding:80px 0;position:relative;overflow-y:auto}.tokui-timepicker-column-list:before,.tokui-timepicker-column-list:after{content:\\\"\\\";height:80px;display:block}.tokui-timepicker-column-list::-webkit-scrollbar{display:none}.tokui-timepicker-column-item{text-align:center;height:32px;color:var(--tokui-text);cursor:pointer;scroll-snap-align:center;font-size:.85rem;line-height:32px;transition:background .1s,color .1s}.tokui-timepicker-column-item:hover{background:var(--tokui-stripe)}.tokui-timepicker-column-item--selected{background:var(--tokui-primary);color:var(--tokui-btn-text-inverse,#fff);font-weight:600}.tokui-timepicker-footer{text-align:right;margin-top:8px}.tokui-timepicker-confirm{border-radius:var(--tokui-radius);background:var(--tokui-primary);color:var(--tokui-btn-text-inverse,#fff);cursor:pointer;border:none;padding:4px 16px;font-size:.8rem;transition:opacity .15s}.tokui-timepicker-confirm:hover{opacity:.85}[data-tokui-theme=dark] .tokui-timepicker-dropdown{box-shadow:var(--tokui-overlay-shadow)}.tokui-datetimepicker{width:100%;display:inline-block;position:relative}.tokui-datetimepicker--disabled{opacity:.5;pointer-events:none}.tokui-datetimepicker--open .tokui-datetimepicker-dropdown{display:block}.tokui-datetimepicker-control{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);cursor:pointer;align-items:center;transition:border-color .2s;display:flex}.tokui-datetimepicker-control:hover{border-color:var(--tokui-primary)}.tokui-datetimepicker-input{color:var(--tokui-text);cursor:pointer;background:0 0;border:none;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:.875rem}.tokui-datetimepicker-icon{width:36px;height:36px;color:var(--tokui-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tokui-datetimepicker-icon svg{width:16px;height:16px}.tokui-datetimepicker-dropdown{z-index:1000;background:var(--tokui-bg);border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);box-shadow:var(--tokui-overlay-shadow);min-width:300px;padding:12px;-webkit-animation:.15s tokuiFadeIn;animation:.15s tokuiFadeIn;display:none;position:fixed}.tokui-datetimepicker-body{align-items:stretch;gap:12px;display:flex}.tokui-datetimepicker-date{border-right:1px solid var(--tokui-border);flex:none;padding-right:12px}.tokui-datetimepicker-time{flex:none;align-items:center;width:150px;display:flex}.tokui-datetimepicker-time .tokui-timepicker-columns{justify-content:space-between;width:100%}.tokui-datetimepicker-footer{border-top:1px solid var(--tokui-border);text-align:right;margin-top:10px;padding-top:8px}[data-tokui-theme=dark] .tokui-datetimepicker-dropdown{box-shadow:var(--tokui-overlay-shadow)}.tokui-menu{--tokui-menu-bg:var(--tokui-bg,#fff);--tokui-menu-fc:var(--tokui-text,#333);background:var(--tokui-menu-bg);border-radius:var(--tokui-radius,8px);border:1px solid var(--tokui-border,#e0e0e0);flex-direction:column;gap:2px;min-width:180px;padding:8px 0;display:flex}.tokui-menu--horizontal{border-left:none;border-right:none;border-radius:0;flex-direction:row;min-width:auto}.tokui-menu--horizontal .tokui-menu__item{border-bottom:2px solid #0000;border-radius:0;justify-content:center;padding:10px 20px}.tokui-menu--horizontal .tokui-menu__item--active{border-bottom-color:var(--tokui-primary);background:0 0}.tokui-menu--inline{background:0 0;border:none;min-width:auto;padding:0}.tokui-menu__item{color:var(--tokui-menu-fc);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:8px;margin:0 4px;padding:10px 16px;font-size:.9rem;transition:background .15s,color .15s;display:flex}.tokui-menu__item:hover{background:var(--tokui-primary-1,var(--tokui-primary-bg));color:var(--tokui-primary)}.tokui-menu__item--active{background:var(--tokui-primary-1,var(--tokui-primary-bg));color:var(--tokui-primary);font-weight:600}.tokui-menu__item--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.tokui-menu__icon{flex-shrink:0;font-size:1.1rem;line-height:1}.tokui-menu__text{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}[data-tokui-theme=dark] .tokui-menu{background:var(--tokui-bg);border-color:var(--tokui-border,#333)}[data-tokui-theme=dark] .tokui-menu--inline{background:0 0}[data-tokui-theme=dark] .tokui-menu__item:hover{background:#ffffff0f}[data-tokui-theme=dark] .tokui-menu__item--active{background:var(--tokui-primary-bg)}.tokui-sidebar{--tokui-sidebar-w:260px;--tokui-sidebar-bg:var(--tokui-bg,#fff);--tokui-sidebar-fc:var(--tokui-text,#333);--tokui-sidebar-border:var(--tokui-border,#e0e0e0);--tokui-sidebar-header-bg:var(--tokui-stripe,#f5f5f5);--tokui-sidebar-footer-bg:var(--tokui-stripe,#f5f5f5);width:var(--tokui-sidebar-w);background:var(--tokui-sidebar-bg);min-height:0;max-height:100%;color:var(--tokui-sidebar-fc);border-radius:var(--tokui-radius,8px);flex-direction:column;transition:width .2s;display:flex;position:relative;overflow:hidden}.tokui-sidebar--left{border-right:1px solid var(--tokui-sidebar-border)}.tokui-sidebar--right{border-left:1px solid var(--tokui-sidebar-border)}.tokui-sidebar--collapsible.tokui-sidebar--collapsed{width:60px}.tokui-sidebar--collapsed .tokui-sidebar__title{display:none}.tokui-sidebar--collapsed .tokui-sidebar__content{overflow:hidden}.tokui-sidebar--collapsed .tokui-sidebar__footer{justify-content:center}.tokui-sidebar__header{background:var(--tokui-sidebar-header-bg);border-bottom:1px solid var(--tokui-sidebar-border);flex-shrink:0;align-items:center;gap:8px;min-height:48px;padding:14px 16px;display:flex}.tokui-sidebar__title{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1rem;font-weight:600;overflow:hidden}.tokui-sidebar__toggle{width:32px;height:32px;color:var(--tokui-sidebar-fc);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.1rem;transition:background .15s,color .15s;display:inline-flex}.tokui-sidebar__toggle:hover{color:var(--tokui-primary);background:#0000000f}.tokui-sidebar__content{flex:1;min-height:0;padding:8px 0;overflow:hidden auto}.tokui-sidebar__footer{background:var(--tokui-sidebar-footer-bg);border-top:1px solid var(--tokui-sidebar-border);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.tokui-sidebar .tokui-menu{background:0 0;border:none;border-radius:0;min-width:auto;padding:0}.tokui-sidebar .tokui-menu__item,.tokui-sidebar .tokui-menu__icon,.tokui-sidebar .tokui-menu__text,.tokui-sidebar .tokui-btn,.tokui-sidebar .tokui-sidebar__title,.tokui-sidebar .tokui-sidebar__toggle{color:var(--tokui-sidebar-fc)}[data-tokui-theme=dark] .tokui-sidebar{background:var(--tokui-bg);border-color:var(--tokui-border,#333)}[data-tokui-theme=dark] .tokui-sidebar__header,[data-tokui-theme=dark] .tokui-sidebar__footer{background:#ffffff0a}[data-tokui-theme=dark] .tokui-sidebar__toggle:hover{background:#ffffff14}.tokui-error{background:var(--tokui-danger-1,#ef444414);border:1px solid var(--tokui-danger,#ef4444);border-radius:var(--tokui-radius,4px);color:var(--tokui-danger,#ef4444);margin:4px 0;padding:8px 12px;font-size:.85rem}.tokui-error__summary{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;font-weight:500;list-style:none}.tokui-error__summary::-webkit-details-marker{display:none}.tokui-error__summary:before{content:\\\"▸ \\\";font-size:.8em}.tokui-error[open]>.tokui-error__summary:before{content:\\\"▾ \\\"}.tokui-error__detail{background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text-muted,#999);word-break:break-all;border-radius:3px;margin-top:6px;padding:6px 10px;font-family:Fira Code,Consolas,monospace;font-size:.8rem}.tokui-code .tok-kw{color:var(--tokui-code-kw,#c678dd)}.tokui-code .tok-str{color:var(--tokui-code-str,#98c379)}.tokui-code .tok-num{color:var(--tokui-code-num,#d19a66)}.tokui-code .tok-cmt{color:var(--tokui-code-cmt,#5c6370);font-style:italic}.tokui-code .tok-fn{color:var(--tokui-code-fn,#61afef)}.tokui-code .tok-op{color:var(--tokui-code-op,#56b6c2)}.tokui-code .tok-type{color:var(--tokui-code-type,#e5c07b)}.tokui-md__task-list{padding-left:0;list-style:none}.tokui-md__task{align-items:center;gap:6px;display:flex}.tokui-md__task input[type=checkbox]{accent-color:var(--tokui-primary);cursor:default;flex-shrink:0;margin:0}.tokui-md__quote{border-left:4px solid var(--tokui-primary);background:var(--tokui-primary-1,#4f46e50d);border-radius:0 var(--tokui-radius,4px) var(--tokui-radius,4px) 0;color:var(--tokui-text);margin:.5em 0;padding:8px 16px;font-style:italic}.tokui-md__quote p{margin:.2em 0}.tokui-md__hr{border:none;border-top:2px solid var(--tokui-border);margin:1.2em 0}.tokui-notification-container{z-index:10001;pointer-events:none;flex-direction:column;gap:8px;max-height:100vh;padding:16px;display:flex;position:fixed;overflow:hidden}.tokui-notification-container--top-right{top:0;right:0}.tokui-notification-container--top-left{top:0;left:0}.tokui-notification-container--bottom-right{flex-direction:column-reverse;bottom:0;right:0}.tokui-notification-container--bottom-left{flex-direction:column-reverse;bottom:0;left:0}.tokui-notification{border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);border:1px solid var(--tokui-border,#e0e0e0);min-width:280px;max-width:400px;box-shadow:var(--tokui-overlay-shadow);pointer-events:auto;align-items:flex-start;gap:10px;padding:14px 16px;-webkit-animation:.3s tokuiNotifIn;animation:.3s tokuiNotifIn;display:flex;position:relative;overflow:hidden}.tokui-notification--hide{-webkit-animation:.3s forwards tokuiNotifOut;animation:.3s forwards tokuiNotifOut}@-webkit-keyframes tokuiNotifIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes tokuiNotifIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@-webkit-keyframes tokuiNotifOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}@keyframes tokuiNotifOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.tokui-notification__bar{width:4px;height:100%;position:absolute;top:0;left:0}.tokui-notification--success .tokui-notification__bar{background:var(--tokui-success)}.tokui-notification--error .tokui-notification__bar{background:var(--tokui-danger)}.tokui-notification--warning .tokui-notification__bar{background:var(--tokui-warning)}.tokui-notification--info .tokui-notification__bar{background:var(--tokui-primary)}.tokui-notification__icon{flex-shrink:0;align-items:center;display:flex}.tokui-notification--success .tokui-notification__icon{color:var(--tokui-success)}.tokui-notification--error .tokui-notification__icon{color:var(--tokui-danger)}.tokui-notification--warning .tokui-notification__icon{color:var(--tokui-warning)}.tokui-notification--info .tokui-notification__icon{color:var(--tokui-primary)}.tokui-notification__content{flex:1;min-width:0}.tokui-notification__title{color:var(--tokui-text);margin-bottom:2px;font-size:.9rem;font-weight:600}.tokui-notification__text{color:var(--tokui-text-muted,#666);font-size:.82rem;line-height:1.5}.tokui-notification__close{color:var(--tokui-text-muted,#999);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;transition:color .2s;display:flex}.tokui-notification__close:hover{color:var(--tokui-text)}.tokui-notification__action{color:var(--tokui-primary);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:2px 0;font-size:.82rem;font-weight:500;transition:opacity .2s}.tokui-notification__action:hover{opacity:.8}[data-tokui-theme=dark] .tokui-notification{background:var(--tokui-bg);border-color:var(--tokui-border,#333);box-shadow:var(--tokui-overlay-shadow)}.tokui-popconfirm{display:inline-block}.tokui-popconfirm__trigger{border:1px solid var(--tokui-border,#e0e0e0);border-radius:var(--tokui-radius,4px);background:var(--tokui-bg,#fff);color:var(--tokui-text);cursor:pointer;align-items:center;padding:6px 14px;font-size:.85rem;transition:all .2s;display:inline-flex}.tokui-popconfirm__popup{z-index:1000;background:var(--tokui-bg,#fff);min-width:240px;max-width:360px;box-shadow:var(--tokui-overlay-shadow);border:1px solid var(--tokui-border,#e0e0e0);opacity:0;pointer-events:none;border-radius:8px;padding:14px 16px;transition:opacity .15s,transform .15s;position:fixed;transform:scale(.95)}.tokui-popconfirm__message{color:var(--tokui-text);margin-bottom:12px;font-size:.9rem;line-height:1.5}.tokui-popconfirm__btn{border-radius:var(--tokui-radius,4px);cursor:pointer;border:1px solid var(--tokui-border,#e0e0e0);background:var(--tokui-bg,#fff);color:var(--tokui-text);padding:4px 14px;font-size:.82rem;transition:all .2s}.tokui-popconfirm__btn:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-popconfirm__btn--primary:hover{filter:brightness(1.1);color:#fff}.tokui-popconfirm__btn--danger:hover{filter:brightness(1.1);color:#fff}.tokui-chat-input{border:1.5px solid var(--tokui-border,#e2e2e2);background:var(--tokui-bg,#fff);border-radius:24px;align-items:flex-end;gap:0;padding:8px 8px 8px 16px;transition:border-color .25s,box-shadow .25s;display:flex;position:relative;box-shadow:0 1px 3px #0000000a}.tokui-chat-input:focus-within{border-color:var(--tokui-primary);box-shadow:0 0 0 3px var(--tokui-primary-focus), 0 1px 3px #0000000f}.tokui-chat-input__textarea{color:var(--tokui-text);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:24px;padding:4px 0;font-family:inherit;font-size:.9rem;line-height:1.5}.tokui-chat-input__textarea::-moz-placeholder{color:var(--tokui-text-muted,#aaa)}.tokui-chat-input__textarea:-ms-input-placeholder{color:var(--tokui-text-muted,#aaa)}.tokui-chat-input__textarea::placeholder{color:var(--tokui-text-muted,#aaa)}.tokui-chat-input__textarea--disabled{opacity:.5;cursor:not-allowed}.tokui-chat-input__textarea--auto{overflow:hidden}.tokui-chat-input__actions{flex-shrink:0;align-items:center;gap:4px;padding-left:4px;display:flex}.tokui-chat-input__send{background:var(--tokui-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background .2s,transform .15s,opacity .2s;display:inline-flex}.tokui-chat-input__send:hover{filter:brightness(1.1);transform:scale(1.05)}.tokui-chat-input__send:active{transform:scale(.95)}.tokui-chat-input__send--disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.tokui-chat-input__counter{color:var(--tokui-text-muted,#aaa);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tokui-bg,#fff);border-radius:4px;padding:0 4px;font-size:.68rem;position:absolute;bottom:6px;right:48px}.tokui-chat-input__counter--over{color:var(--tokui-danger)}[data-tokui-theme=dark] .tokui-chat-input{background:var(--tokui-bg);border-color:var(--tokui-border,#333);box-shadow:0 1px 3px #0003}[data-tokui-theme=dark] .tokui-chat-input:focus-within{box-shadow:0 0 0 3px var(--tokui-primary-focus), 0 1px 3px #0000004d}[data-tokui-theme=dark] .tokui-chat-input__counter{background:var(--tokui-bg)}.tokui-msg-actions{opacity:0;align-items:center;gap:2px;padding:2px 0;transition:opacity .2s;display:flex}.tokui-msg-actions:hover,.tokui-msg-actions--visible{opacity:1}.tokui-msg-actions__btn{width:32px;height:32px;color:var(--tokui-text-muted,#999);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.tokui-msg-actions__btn:hover{background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text)}.tokui-msg-actions__icon{justify-content:center;align-items:center;display:flex}[data-tokui-theme=dark] .tokui-msg-actions__btn:hover{background:#ffffff0f}.tokui-popconfirm{display:inline-block;position:relative}.tokui-popconfirm__trigger{cursor:pointer;border-radius:var(--tokui-radius,4px);background:var(--tokui-stripe,#f5f5f5);color:var(--tokui-text);border:1px solid var(--tokui-border,#e0e0e0);padding:4px 12px;font-size:.9rem;transition:all .2s;display:inline-block}.tokui-popconfirm__trigger:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-popconfirm__popup{z-index:9000;background:var(--tokui-bg,#fff);box-shadow:var(--tokui-overlay-shadow);border:1px solid var(--tokui-border,#e0e0e0);opacity:0;pointer-events:none;border-radius:8px;min-width:200px;max-width:320px;padding:12px 16px;transition:opacity .15s,transform .15s;position:fixed;transform:scale(.95)}.tokui-popconfirm__popup--visible{opacity:1;pointer-events:auto;transform:scale(1)}.tokui-popconfirm__arrow{background:var(--tokui-bg,#fff);border:1px solid var(--tokui-border,#e0e0e0);width:10px;height:10px;position:absolute;transform:rotate(45deg)}.tokui-popconfirm__popup--top .tokui-popconfirm__arrow{border-top:none;border-left:none;margin-left:-5px;bottom:-6px;left:50%}.tokui-popconfirm__popup--bottom .tokui-popconfirm__arrow{border-bottom:none;border-right:none;margin-left:-5px;top:-6px;left:50%}.tokui-popconfirm__popup--left .tokui-popconfirm__arrow{border-bottom:none;border-left:none;margin-top:-5px;top:50%;right:-6px}.tokui-popconfirm__popup--right .tokui-popconfirm__arrow{border-top:none;border-right:none;margin-top:-5px;top:50%;left:-6px}.tokui-popconfirm__message{color:var(--tokui-text);margin-bottom:10px;padding-right:4px;font-size:.9rem;line-height:1.5}.tokui-popconfirm__buttons{justify-content:flex-end;gap:8px;display:flex}.tokui-popconfirm__btn{border-radius:var(--tokui-radius,4px);cursor:pointer;border:1px solid var(--tokui-border,#e0e0e0);padding:4px 14px;font-size:.85rem;line-height:1.5;transition:all .2s}.tokui-popconfirm__btn--cancel{background:var(--tokui-bg,#fff);color:var(--tokui-text)}.tokui-popconfirm__btn--cancel:hover{border-color:var(--tokui-primary);color:var(--tokui-primary)}.tokui-popconfirm__btn--primary{background:var(--tokui-primary);color:#fff;border-color:var(--tokui-primary)}.tokui-popconfirm__btn--primary:hover{opacity:.85}.tokui-popconfirm__btn--danger{background:var(--tokui-danger,#ef4444);color:#fff;border-color:var(--tokui-danger,#ef4444)}.tokui-popconfirm__btn--danger:hover{opacity:.85}[data-tokui-theme=dark] .tokui-popconfirm__popup{box-shadow:var(--tokui-overlay-shadow)}.tokui-tool-call{border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);margin:.6em 0;overflow:hidden}.tokui-tool-call__header{background:var(--tokui-stripe,#f9fafb);border-bottom:1px solid var(--tokui-border,#e5e7eb);align-items:center;gap:8px;padding:8px 12px;font-size:.85rem;display:flex}.tokui-tool-call__status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tokui-tool-call__status-dot--pending{background:var(--tokui-status-idle)}.tokui-tool-call__status-dot--running{background:var(--tokui-primary);-webkit-animation:1s linear infinite tokuiSpinRotate;animation:1s linear infinite tokuiSpinRotate}.tokui-tool-call__status-dot--done{background:var(--tokui-success,#22c55e)}.tokui-tool-call__status-dot--error{background:var(--tokui-danger,#ef4444)}.tokui-tool-call__status-dot--denied{background:var(--tokui-status-idle)}.tokui-tool-call__name{color:var(--tokui-text);font-weight:600;font-family:var(--tokui-font-mono,\\\"SF Mono\\\", \\\"Consolas\\\", monospace)}.tokui-tool-call__status{background:var(--tokui-stripe,#f9fafb);color:var(--tokui-text-secondary,#8c8c8c);border-radius:999px;padding:1px 8px;font-size:.75rem}.tokui-tool-call--done .tokui-tool-call__status{color:var(--tokui-success,#22c55e);background:#22c55e1a}.tokui-tool-call--error .tokui-tool-call__status{color:var(--tokui-danger,#ef4444);background:#ef44441a}.tokui-tool-call--running .tokui-tool-call__status{color:var(--tokui-primary);background:var(--tokui-primary-bg)}.tokui-tool-call__duration{color:var(--tokui-text-secondary,#8c8c8c);margin-left:auto;font-size:.75rem}.tokui-tool-call__body{padding:10px 12px;font-size:.85rem}.tokui-tool-call__params{font-family:var(--tokui-font-mono,\\\"SF Mono\\\", \\\"Consolas\\\", monospace);color:var(--tokui-text-secondary,#8c8c8c);white-space:pre-wrap;padding:4px 0;font-size:.8rem}.tokui-tool-call__result{border-radius:var(--tokui-radius,8px);border-left:3px solid var(--tokui-success,#22c55e);background:#22c55e0f;margin-top:8px;padding:8px;font-size:.8rem}.tokui-tool-call__error{border-radius:var(--tokui-radius,8px);border-left:3px solid var(--tokui-danger,#ef4444);color:var(--tokui-danger,#ef4444);background:#ef44440f;margin-top:8px;padding:8px;font-size:.8rem}@-webkit-keyframes tokuiTypingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}@keyframes tokuiTypingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.tokui-typing{align-items:center;gap:8px;padding:8px 0;display:inline-flex}.tokui-typing__dots{align-items:center;gap:4px;display:inline-flex}.tokui-typing__dot{background:var(--tokui-primary);border-radius:50%;width:6px;height:6px;-webkit-animation:1.4s ease-in-out infinite tokuiTypingBounce;animation:1.4s ease-in-out infinite tokuiTypingBounce}.tokui-typing__text{color:var(--tokui-text-secondary,#8c8c8c);font-size:.8rem}.tokui-quick-reply{margin:.5em 0}.tokui-quick-reply__items{flex-wrap:wrap;gap:8px;display:flex}.tokui-quick-reply__item{border:1px solid var(--tokui-border,#e5e7eb);background:var(--tokui-bg,#fff);color:var(--tokui-text);cursor:pointer;border-radius:999px;padding:6px 16px;font-size:.85rem;line-height:1.4;transition:all .2s;display:inline-block}.tokui-quick-reply__item:hover{border-color:var(--tokui-primary);color:var(--tokui-primary);background:var(--tokui-primary-bg)}.tokui-suggestions{margin:.75em 0}.tokui-suggestions__grid{gap:12px;display:grid}.tokui-suggestion{border-left:3px solid var(--tokui-primary);background:var(--tokui-bg,#fff);cursor:pointer;border-top:1px solid var(--tokui-border,#e5e7eb);border-right:1px solid var(--tokui-border,#e5e7eb);border-bottom:1px solid var(--tokui-border,#e5e7eb);border-radius:8px;align-items:flex-start;gap:10px;padding:14px 16px;transition:all .2s;display:flex;box-shadow:0 1px 3px #0000000f}.tokui-suggestion:hover{border-left-color:var(--tokui-primary-hover,#4338ca);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.tokui-suggestion:active{transform:translateY(0);box-shadow:0 1px 4px #00000014}.tokui-suggestion:focus-visible{outline:2px solid var(--tokui-primary);outline-offset:2px}.tokui-suggestion--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.tokui-suggestion__icon{background:var(--tokui-primary-bg);width:36px;height:36px;color:var(--tokui-primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:flex}.tokui-suggestion__body{flex:1;min-width:0}.tokui-suggestion__title{color:var(--tokui-text,#1f2937);margin-bottom:2px;font-size:.9rem;font-weight:600;line-height:1.4}.tokui-suggestion__desc{color:var(--tokui-text-secondary,#6b7280);font-size:.8rem;line-height:1.4}[data-tokui-theme=dark] .tokui-suggestion{background:var(--tokui-bg,#1f2937);border-top-color:var(--tokui-border,#374151);border-right-color:var(--tokui-border,#374151);border-bottom-color:var(--tokui-border,#374151);box-shadow:0 1px 3px #0003}[data-tokui-theme=dark] .tokui-suggestion:hover{box-shadow:0 4px 12px #0000004d}[data-tokui-theme=dark] .tokui-suggestion__icon{background:#818cf81f}.tokui-source{border-radius:var(--tokui-radius,8px);background:var(--tokui-stripe,#f9fafb);align-items:flex-start;gap:10px;margin:.3em 0;padding:8px 12px;display:flex}.tokui-source__num{background:var(--tokui-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-weight:700;display:inline-flex}.tokui-source__body{flex:1;min-width:0}.tokui-source__title{color:var(--tokui-primary);font-size:.85rem;font-weight:600;text-decoration:none}a.tokui-source__title:hover{text-decoration:underline}.tokui-source__snippet{color:var(--tokui-text-secondary,#8c8c8c);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:.8rem;display:-webkit-box;overflow:hidden}.tokui-diff{border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);margin:.6em 0;overflow:hidden}.tokui-diff__header{background:var(--tokui-stripe,#f9fafb);border-bottom:1px solid var(--tokui-border,#e5e7eb);align-items:center;gap:8px;padding:6px 12px;font-size:.8rem;display:flex}.tokui-diff__title{color:var(--tokui-text);font-weight:600}.tokui-diff__lang{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-radius:4px;padding:1px 6px;font-size:.7rem}.tokui-diff__content{font-family:var(--tokui-font-mono,\\\"SF Mono\\\", \\\"Consolas\\\", monospace);font-size:.8rem;line-height:1.6;overflow-x:auto}.tokui-diff__line{min-height:1.6em;display:flex}.tokui-diff__num{text-align:right;width:40px;color:var(--tokui-text-secondary,#8c8c8c);opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;padding-right:10px}.tokui-diff__code{white-space:pre;flex:1}.tokui-diff__line--add{background:#22c55e1a}.tokui-diff__line--add .tokui-diff__code{color:var(--tokui-success,#22c55e)}.tokui-diff__line--remove{background:#ef444414}.tokui-diff__line--remove .tokui-diff__code{color:var(--tokui-danger,#ef4444)}.tokui-diff__line--context .tokui-diff__code{color:var(--tokui-text-secondary,#8c8c8c)}@-webkit-keyframes tokuiPlanPulse{0%,to{box-shadow:0 0 #4f46e566}50%{box-shadow:0 0 0 6px #4f46e500}}@keyframes tokuiPlanPulse{0%,to{box-shadow:0 0 #4f46e566}50%{box-shadow:0 0 0 6px #4f46e500}}.tokui-plan{margin:.6em 0}.tokui-plan__title{color:var(--tokui-text);margin-bottom:12px;font-size:.95rem;font-weight:600}.tokui-plan__steps{position:relative}.tokui-plan-step{align-items:flex-start;gap:12px;padding:4px 0;display:flex;position:relative}.tokui-plan-step__dot{color:#fff;z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;display:flex;position:relative}.tokui-plan-step--pending .tokui-plan-step__dot{background:var(--tokui-status-idle)}.tokui-plan-step--doing .tokui-plan-step__dot{background:var(--tokui-primary);-webkit-animation:2s infinite tokuiPlanPulse;animation:2s infinite tokuiPlanPulse}.tokui-plan-step--done .tokui-plan-step__dot{background:var(--tokui-success,#22c55e)}.tokui-plan-step--done .tokui-plan-step__dot:after{content:\\\"✓\\\"}.tokui-plan-step--error .tokui-plan-step__dot{background:var(--tokui-danger,#ef4444)}.tokui-plan-step--skipped .tokui-plan-step__dot{background:var(--tokui-status-idle)}.tokui-plan-step__content{flex:1;min-width:0;padding-top:1px}.tokui-plan-step__title{color:var(--tokui-text);font-size:.85rem;font-weight:600}.tokui-plan-step--done .tokui-plan-step__title{opacity:.6;text-decoration:line-through}.tokui-plan-step__desc{color:var(--tokui-text-secondary,#8c8c8c);margin-top:2px;font-size:.8rem}.tokui-plan-step__line{background:var(--tokui-border,#e5e7eb);width:2px;position:absolute;top:24px;bottom:-4px;left:9px}.tokui-agent{border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);margin:.5em 0;padding:10px 12px}.tokui-agent__header{align-items:center;gap:8px;font-size:.85rem;display:flex}.tokui-agent__status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tokui-agent__status-dot--idle{background:var(--tokui-status-idle)}.tokui-agent__status-dot--running{background:var(--tokui-primary);-webkit-animation:1s linear infinite tokuiSpinRotate;animation:1s linear infinite tokuiSpinRotate}.tokui-agent__status-dot--paused{background:var(--tokui-warning,#f59e0b)}.tokui-agent__status-dot--done{background:var(--tokui-success,#22c55e)}.tokui-agent__status-dot--error{background:var(--tokui-danger,#ef4444)}.tokui-agent__name{color:var(--tokui-text);font-weight:600}.tokui-agent__status{background:var(--tokui-stripe,#f9fafb);color:var(--tokui-text-secondary,#8c8c8c);border-radius:999px;padding:1px 8px;font-size:.75rem}.tokui-agent--done .tokui-agent__status{color:var(--tokui-success,#22c55e);background:#22c55e1a}.tokui-agent--running .tokui-agent__status{color:var(--tokui-primary);background:var(--tokui-primary-bg)}.tokui-agent--error .tokui-agent__status{color:var(--tokui-danger,#ef4444);background:#ef44441a}.tokui-agent__duration{color:var(--tokui-text-secondary,#8c8c8c);margin-left:auto;font-size:.75rem}.tokui-agent__action{color:var(--tokui-text-secondary,#8c8c8c);padding:4px 0 0;font-size:.8rem}.tokui-agent__body{margin-top:8px}.tokui-file-tree{font-family:var(--tokui-font-mono,\\\"SF Mono\\\", \\\"Consolas\\\", monospace);border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);margin:.5em 0;padding:8px 0;font-size:.82rem}.tokui-file-tree__folder-name{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;align-items:center;gap:6px;padding:3px 12px;display:flex}.tokui-file-tree__folder-name:hover{background:var(--tokui-stripe,#f9fafb)}.tokui-file-tree__folder-toggle{text-align:center;width:12px;font-size:.7rem}.tokui-file-tree__folder-icon{font-size:.9rem}.tokui-file-tree__folder-children{padding-left:20px}.tokui-file-tree__file{align-items:center;gap:6px;padding:3px 12px;display:flex}.tokui-file-tree__file:hover{background:var(--tokui-stripe,#f9fafb)}.tokui-file-tree__file-icon{font-size:.9rem}.tokui-file-tree__name{color:var(--tokui-text)}.tokui-file-tree__file-badge{background:var(--tokui-stripe,#f9fafb);color:var(--tokui-text-secondary,#8c8c8c);border-radius:999px;margin-left:auto;padding:0 6px;font-size:.7rem}.tokui-terminal{border-radius:var(--tokui-radius,8px);color:#d4d4d4;font-family:var(--tokui-font-mono,\\\"SF Mono\\\", \\\"Consolas\\\", monospace);background:#1e1e1e;margin:.6em 0;overflow:hidden}.tokui-terminal__titlebar{color:#999;background:#2d2d2d;align-items:center;gap:8px;padding:6px 12px;font-size:.75rem;display:flex}.tokui-terminal__dots{gap:6px;display:flex}.tokui-terminal__dot{font-size:.6rem;line-height:1}.tokui-terminal__title{text-align:center;flex:1}.tokui-terminal__content{white-space:pre-wrap;border-left:3px solid var(--tokui-success,#22c55e);padding:12px;font-size:.82rem;line-height:1.6;overflow-x:auto}.tokui-terminal--error .tokui-terminal__content{border-left-color:var(--tokui-danger,#ef4444)}.tokui-shimmer{margin:.5em 0}.tokui-shimmer__row{background:linear-gradient(90deg, var(--tokui-stripe,#f0f0f0) 25%, var(--tokui-bg,#e8e8e8) 37%, var(--tokui-stripe,#f0f0f0) 63%);background-size:400% 100%;border-radius:4px;height:12px;margin-bottom:8px;-webkit-animation:1.4s infinite tokuiShimmer;animation:1.4s infinite tokuiShimmer}.tokui-shimmer__row:last-child{width:60%}.tokui-shimmer--card{align-items:flex-start;gap:12px;display:flex}.tokui-shimmer__circle{background:linear-gradient(90deg, var(--tokui-stripe,#f0f0f0) 25%, var(--tokui-bg,#e8e8e8) 37%, var(--tokui-stripe,#f0f0f0) 63%);background-size:400% 100%;border-radius:50%;flex-shrink:0;width:40px;height:40px;-webkit-animation:1.4s infinite tokuiShimmer;animation:1.4s infinite tokuiShimmer}.tokui-shimmer--avatar{display:inline-block}.tokui-shimmer--avatar .tokui-shimmer__circle{width:32px;height:32px}.tokui-shimmer--code .tokui-shimmer__row{height:14px;font-family:var(--tokui-font-mono,monospace)}.tokui-latency{background:var(--tokui-stripe,#f9fafb);color:var(--tokui-text-secondary,#8c8c8c);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;display:inline-flex}.tokui-latency__icon{font-size:.8rem}.tokui-latency__value{color:var(--tokui-text);font-weight:600}.tokui-latency__label{opacity:.7}.tokui-latency--thinking{background:#f59e0b14}.tokui-latency--generating{background:var(--tokui-primary-bg)}.tokui-latency--total{background:#22c55e14}.tokui-video{border-radius:var(--tokui-radius,8px);background:#000;margin:.6em 0;overflow:hidden}.tokui-video__player{-o-object-fit:contain;object-fit:contain;width:100%;max-height:400px;display:block}.tokui-audio{border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);flex-direction:column;gap:6px;margin:.6em 0;padding:10px 12px;display:flex}.tokui-audio__info{align-items:center;gap:8px;font-size:.85rem;display:flex}.tokui-audio__icon{font-size:1.1rem}.tokui-audio__title{color:var(--tokui-text);font-weight:600}.tokui-audio__duration{color:var(--tokui-text-secondary,#8c8c8c);margin-left:auto;font-size:.8rem}.tokui-audio__player{width:100%;height:36px}.tokui-quote{border-radius:var(--tokui-radius,8px);background:var(--tokui-stripe,#f9fafb);gap:0;margin:.5em 0;display:flex;overflow:hidden}.tokui-quote__bar{background:var(--tokui-primary);flex-shrink:0;width:3px}.tokui-quote__content{flex:1;min-width:0;padding:8px 12px}.tokui-quote__role{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-radius:4px;margin-bottom:4px;padding:0 6px;font-size:.7rem;display:inline-block}.tokui-quote__text{color:var(--tokui-text-secondary,#8c8c8c);font-size:.85rem}.tokui-sandbox{border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);margin:.6em 0;overflow:hidden}.tokui-sandbox__header{background:var(--tokui-stripe,#f9fafb);border-bottom:1px solid var(--tokui-border,#e5e7eb);align-items:center;gap:8px;padding:6px 12px;font-size:.8rem;display:flex}.tokui-sandbox__title{color:var(--tokui-text);font-weight:600}.tokui-sandbox__lang{background:var(--tokui-primary-bg);color:var(--tokui-primary);border-radius:4px;padding:1px 6px;font-size:.7rem}.tokui-sandbox__preview{background:#fff;overflow:hidden}.tokui-sandbox__iframe{border:none;width:100%;height:100%;display:block}.tokui-sandbox__code{font-family:var(--tokui-font-mono,\\\"SF Mono\\\", \\\"Consolas\\\", monospace);white-space:pre-wrap;color:var(--tokui-text);padding:12px;font-size:.82rem}.tokui-commit{border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);margin:.5em 0;padding:10px 12px;font-size:.85rem}.tokui-commit__row{align-items:center;gap:8px;display:flex}.tokui-commit__hash{font-family:var(--tokui-font-mono,\\\"SF Mono\\\", \\\"Consolas\\\", monospace);color:var(--tokui-primary);font-size:.8rem;font-weight:600}.tokui-commit__msg{color:var(--tokui-text)}.tokui-commit__meta{color:var(--tokui-text-secondary,#8c8c8c);align-items:center;gap:8px;margin-top:4px;font-size:.78rem;display:flex}.tokui-commit__branch{border:1px solid var(--tokui-primary);color:var(--tokui-primary);border-radius:999px;padding:0 6px;font-size:.72rem}.tokui-commit__stats{font-size:.8rem;font-family:var(--tokui-font-mono,monospace);gap:12px;margin-top:6px;display:flex}.tokui-commit__additions{color:var(--tokui-success,#22c55e)}.tokui-commit__deletions{color:var(--tokui-danger,#ef4444)}.tokui-test-result{border:1px solid var(--tokui-border,#e5e7eb);border-radius:var(--tokui-radius,8px);background:var(--tokui-bg,#fff);margin:.6em 0;overflow:hidden}.tokui-test-result__summary{background:var(--tokui-stripe,#f9fafb);border-bottom:1px solid var(--tokui-border,#e5e7eb);align-items:center;gap:12px;padding:8px 12px;font-size:.82rem;display:flex}.tokui-test-result__count{font-weight:600}.tokui-test-result__count--pass{color:var(--tokui-success,#22c55e)}.tokui-test-result__count--fail{color:var(--tokui-danger,#ef4444)}.tokui-test-result__count--skip{color:var(--tokui-warning,#f59e0b)}.tokui-test-result__count--total{color:var(--tokui-text-secondary,#8c8c8c)}.tokui-test-result__duration{color:var(--tokui-text-secondary,#8c8c8c);margin-left:auto;font-size:.75rem}.tokui-test-result__cases{padding:4px 0}.tokui-test-case{align-items:center;gap:8px;padding:4px 12px;font-size:.82rem;display:flex}.tokui-test-case:hover{background:var(--tokui-stripe,#f9fafb)}.tokui-test-case__status{text-align:center;width:16px;font-weight:700}.tokui-test-case--pass .tokui-test-case__status{color:var(--tokui-success,#22c55e)}.tokui-test-case--fail .tokui-test-case__status{color:var(--tokui-danger,#ef4444)}.tokui-test-case--skip .tokui-test-case__status{color:var(--tokui-warning,#f59e0b)}.tokui-test-case__name{color:var(--tokui-text);font-family:var(--tokui-font-mono,monospace);flex:1}.tokui-test-case__duration{color:var(--tokui-text-secondary,#8c8c8c);font-size:.75rem}.tokui-test-case__error{color:var(--tokui-danger,#ef4444);font-size:.78rem;font-family:var(--tokui-font-mono,monospace);background:#ef44440f;border-radius:4px;margin:2px 0 4px 24px;padding:6px 8px}[data-tokui-theme=dark] .tokui-tool-call,[data-tokui-theme=dark] .tokui-diff,[data-tokui-theme=dark] .tokui-agent,[data-tokui-theme=dark] .tokui-file-tree{border-color:var(--tokui-border)}[data-tokui-theme=dark] .tokui-terminal__content{border-left-color:var(--tokui-success)}[data-tokui-theme=dark] .tokui-terminal--error .tokui-terminal__content{border-left-color:var(--tokui-danger)}[data-tokui-theme=dark] .tokui-audio,[data-tokui-theme=dark] .tokui-sandbox{border-color:var(--tokui-border)}[data-tokui-theme=dark] .tokui-sandbox__preview{background:#1e1e1e}[data-tokui-theme=dark] .tokui-commit,[data-tokui-theme=dark] .tokui-test-result{border-color:var(--tokui-border)}[data-tokui-theme=dark] .tokui-plan-step__line{background:var(--tokui-border)}[data-tokui-theme=dark] .tokui-attach{border-color:var(--tokui-border)}[data-tokui-theme=dark] .tokui-attach:hover{border-color:var(--tokui-primary)}[data-tokui-theme=dark] .tokui-attach__action{background:var(--tokui-dark-bg,#1a1a1a)}[data-tokui-theme=dark] .tokui-attach__action:hover{background:var(--tokui-stripe,#2a2a2a)}.tokui-artifact{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);flex-direction:column;height:400px;-webkit-animation:.2s tokuiFadeIn;animation:.2s tokuiFadeIn;display:flex;position:relative;overflow:hidden}.tokui-artifact__header{border-bottom:1px solid var(--tokui-border);background:var(--tokui-stripe);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.tokui-artifact__title{color:var(--tokui-text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.875rem;font-weight:600;overflow:hidden}.tokui-artifact__tabs{background:var(--tokui-bg);border-radius:6px;gap:2px;padding:2px;display:flex}.tokui-artifact__tab{color:var(--tokui-text-secondary,#666);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 12px;font-size:.75rem;font-weight:500;transition:all .15s}.tokui-artifact__tab:hover{background:var(--tokui-stripe);color:var(--tokui-text)}.tokui-artifact__tab--active,.tokui-artifact__tab--active:hover{background:var(--tokui-primary);color:#fff}.tokui-artifact__close{width:28px;height:28px;color:var(--tokui-text-secondary,#666);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;transition:all .15s;display:flex}.tokui-artifact__close:hover{color:#ef4444;background:#ef44441a}.tokui-artifact__code{scrollbar-width:thin;scrollbar-color:#0000001a transparent;flex:1;padding:0;position:relative;overflow:auto}.tokui-artifact__code::-webkit-scrollbar{width:5px;height:5px}.tokui-artifact__code::-webkit-scrollbar-track{background:0 0}.tokui-artifact__code::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.tokui-artifact__code::-webkit-scrollbar-thumb:hover{background:#0003}[data-tokui-theme=dark] .tokui-artifact__code{scrollbar-color:#ffffff1f transparent}[data-tokui-theme=dark] .tokui-artifact__code::-webkit-scrollbar-thumb{background:#ffffff1f}[data-tokui-theme=dark] .tokui-artifact__code::-webkit-scrollbar-thumb:hover{background:#ffffff40}.tokui-artifact__code pre{border:none;border-radius:0;height:100%;margin:0}.tokui-artifact__code-copy{border:1px solid var(--tokui-border);background:var(--tokui-bg);color:var(--tokui-text-secondary,#666);cursor:pointer;z-index:1;border-radius:4px;padding:4px 10px;font-size:.7rem;transition:all .15s;position:absolute;top:8px;right:8px}.tokui-artifact__code-copy:hover{background:var(--tokui-stripe);color:var(--tokui-text)}.tokui-artifact__code-copy--done{background:var(--tokui-success,#22c55e);color:#fff;border-color:var(--tokui-success,#22c55e)}.tokui-artifact__preview{flex:1;padding:0;overflow:hidden}.tokui-artifact__preview iframe,.tokui-artifact__iframe{background:#fff;border:none;width:100%;height:100%;display:block}.tokui-artifact__resize{cursor:row-resize;background:var(--tokui-border);flex-shrink:0;width:100%;height:4px;transition:background .15s}.tokui-artifact__resize:hover{background:var(--tokui-primary)}.tokui-artifact-preview-standalone{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);min-height:120px;overflow:hidden}[data-tokui-theme=dark] .tokui-artifact{border-color:var(--tokui-border)}[data-tokui-theme=dark] .tokui-artifact__header{background:#ffffff0d}[data-tokui-theme=dark] .tokui-artifact__preview iframe,[data-tokui-theme=dark] .tokui-artifact__iframe{background:#1e1e1e}.tokui-command{z-index:10000;pointer-events:none;opacity:0;visibility:hidden;justify-content:center;align-items:flex-start;padding-top:20%;transition:opacity .15s,visibility .15s;display:flex;position:fixed;inset:0}.tokui-command--open{pointer-events:auto;opacity:1;visibility:visible}.tokui-command__overlay{background:var(--tokui-overlay-bg,#00000080);position:absolute;inset:0}.tokui-command__panel{background:var(--tokui-bg,#fff);border:1px solid var(--tokui-border,#e5e7eb);width:90%;max-width:560px;max-height:420px;box-shadow:var(--tokui-overlay-shadow-lg);border-radius:12px;flex-direction:column;-webkit-animation:.15s tokuiCommandIn;animation:.15s tokuiCommandIn;display:flex;position:relative;overflow:hidden}@-webkit-keyframes tokuiCommandIn{0%{opacity:0;transform:scale(.96)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes tokuiCommandIn{0%{opacity:0;transform:scale(.96)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.tokui-command__input-wrap{border-bottom:1px solid var(--tokui-border,#e5e7eb);align-items:center;gap:10px;padding:12px 16px;display:flex}.tokui-command__search-icon{color:var(--tokui-text-muted,#9ca3af);flex-shrink:0;align-items:center;display:flex}.tokui-command__input{color:var(--tokui-text,#111827);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:15px}.tokui-command__input::-moz-placeholder{color:var(--tokui-text-muted,#9ca3af)}.tokui-command__input:-ms-input-placeholder{color:var(--tokui-text-muted,#9ca3af)}.tokui-command__input::placeholder{color:var(--tokui-text-muted,#9ca3af)}.tokui-command__list{flex:1;max-height:340px;padding:8px 0;overflow-y:auto}.tokui-command__group{padding:0 8px}.tokui-command__group+.tokui-command__group{margin-top:4px}.tokui-command__group-heading{color:var(--tokui-text-muted,#9ca3af);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 12px 4px;font-size:12px;font-weight:600}.tokui-command__item{cursor:pointer;color:var(--tokui-text,#111827);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:8px;justify-content:space-between;align-items:center;margin:1px 0;padding:8px 12px;font-size:14px;transition:background .1s;display:flex}.tokui-command__item:hover,.tokui-command__item--selected{background:var(--tokui-stripe,#0000000d)}.tokui-command__item--selected{background:var(--tokui-primary-1,#1677ff1a);color:var(--tokui-primary,#1677ff)}.tokui-command__item-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tokui-command__highlight{background:var(--tokui-warning-1,#faad144d);color:inherit;border-radius:2px;padding:0 1px;font-weight:600}.tokui-command__item-shortcut{color:var(--tokui-text-muted,#9ca3af);background:var(--tokui-stripe,#0000000d);border-radius:4px;flex-shrink:0;margin-left:12px;padding:2px 6px;font-family:monospace;font-size:12px}.tokui-command__empty{text-align:center;color:var(--tokui-text-muted,#9ca3af);padding:24px 16px;font-size:14px}[data-tokui-theme=dark] .tokui-command__panel{background:var(--tokui-bg,#1f2937);border-color:var(--tokui-border,#374151)}[data-tokui-theme=dark] .tokui-command__input,[data-tokui-theme=dark] .tokui-command__item{color:var(--tokui-text,#f9fafb)}[data-tokui-theme=dark] .tokui-command__item--selected{color:#60a5fa;background:#3b82f626}.tokui-resizable{border:1px solid var(--tokui-border);border-radius:var(--tokui-radius);background:var(--tokui-bg);min-height:60px;display:flex;position:relative;overflow:hidden}.tokui-resizable--h{flex-direction:row}.tokui-resizable--v{flex-direction:column}.tokui-resizable__panel{scrollbar-width:thin;scrollbar-color:transparent transparent;flex:1;min-width:0;min-height:0;padding:12px;transition:scrollbar-color .2s;overflow:auto}.tokui-resizable__panel:hover{scrollbar-color:#0000002e transparent}.tokui-resizable__panel::-webkit-scrollbar{width:6px;height:6px}.tokui-resizable__panel::-webkit-scrollbar-track{background:0 0}.tokui-resizable__panel::-webkit-scrollbar-thumb{background:0 0;border-radius:3px;-webkit-transition:background .2s;transition:background .2s}.tokui-resizable__panel:hover::-webkit-scrollbar-thumb{background:#0000002e}.tokui-resizable__panel:hover::-webkit-scrollbar-thumb:hover{background:#00000047}[data-tokui-theme=dark] .tokui-resizable__panel:hover{scrollbar-color:#ffffff38 transparent}[data-tokui-theme=dark] .tokui-resizable__panel:hover::-webkit-scrollbar-thumb{background:#ffffff38}[data-tokui-theme=dark] .tokui-resizable__panel:hover::-webkit-scrollbar-thumb:hover{background:#ffffff59}.tokui-resizable__handle{background:var(--tokui-border);z-index:1;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s;display:flex;position:relative}.tokui-resizable--h>.tokui-resizable__handle{cursor:col-resize;width:8px}.tokui-resizable--v>.tokui-resizable__handle{cursor:row-resize;height:8px}.tokui-resizable__handle:before{content:\\\"\\\";z-index:2;position:absolute}.tokui-resizable--h>.tokui-resizable__handle:before{inset:0 -6px}.tokui-resizable--v>.tokui-resizable__handle:before{inset:-6px 0}.tokui-resizable__handle:after{content:\\\"\\\";background:var(--tokui-text-muted,#999);opacity:.5;pointer-events:none;border-radius:2px;transition:opacity .2s,background .2s;position:absolute}.tokui-resizable--h>.tokui-resizable__handle:after{width:3px;height:24px}.tokui-resizable--v>.tokui-resizable__handle:after{width:24px;height:3px}.tokui-resizable__handle:hover{background:var(--tokui-primary-focus,var(--tokui-primary-bg))}.tokui-resizable__handle:hover:after{opacity:1;background:var(--tokui-primary)}.tokui-resizable__handle--active{background:var(--tokui-primary-focus,#4f46e526)}.tokui-resizable__handle--active:after{opacity:1;background:var(--tokui-primary)}.tokui-resizable__handle:focus-visible{outline:2px solid var(--tokui-primary);outline-offset:-2px}[data-tokui-theme=dark] .tokui-resizable{border-color:var(--tokui-border,#374151)}[data-tokui-theme=dark] .tokui-resizable__handle{background:var(--tokui-border,#374151)}[data-tokui-theme=dark] .tokui-resizable__handle:after{background:var(--tokui-text-muted,#9ca3af)}[data-tokui-theme=dark] .tokui-resizable__handle:hover{background:#3b82f626}.tokui-canvas{min-height:360px;font-size:14px;display:block;position:relative;overflow:hidden}.tokui-canvas__panel{background:var(--tokui-bg);border:1px solid var(--tokui-border);z-index:10;flex-direction:column;transition:transform .3s;display:flex;position:absolute;top:0;bottom:0;box-shadow:-2px 0 12px #00000014}.tokui-canvas--right .tokui-canvas__panel{border-left:1px solid var(--tokui-border);border-top:none;border-bottom:none;border-right:none;right:0;transform:translate(100%)}.tokui-canvas--left .tokui-canvas__panel{border-right:1px solid var(--tokui-border);border-top:none;border-bottom:none;border-left:none;left:0;transform:translate(-100%)}.tokui-canvas--open .tokui-canvas__panel{transform:translate(0)}.tokui-canvas__toggle{z-index:11;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;border:1px solid var(--tokui-border);background:var(--tokui-bg);color:var(--tokui-text-muted);cursor:pointer;letter-spacing:1px;border-radius:0;outline:none;padding:12px 4px;font-size:.8rem;line-height:1.4;transition:background .2s,color .2s,border-color .2s;position:absolute;top:50%}.tokui-canvas--right .tokui-canvas__toggle{border-right:none;border-radius:4px 0 0 4px;right:0;transform:translateY(-50%)}.tokui-canvas--left .tokui-canvas__toggle{border-left:none;border-radius:0 4px 4px 0;left:0;transform:translateY(-50%)}.tokui-canvas__toggle:hover{background:var(--tokui-primary-focus,#4f46e514);color:var(--tokui-primary);border-color:var(--tokui-primary)}.tokui-canvas--open .tokui-canvas__toggle{opacity:0;pointer-events:none}.tokui-canvas__header{border-bottom:1px solid var(--tokui-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.tokui-canvas__title{color:var(--tokui-text);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.tokui-canvas__close{color:var(--tokui-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:1.2rem;line-height:1;transition:background .2s,color .2s}.tokui-canvas__close:hover{background:var(--tokui-stripe);color:var(--tokui-text)}.tokui-canvas__body{flex:1;padding:14px;overflow:auto}[data-tokui-theme=dark] .tokui-canvas__panel{background:var(--tokui-bg,#1f2937);border-color:var(--tokui-border,#374151);box-shadow:-2px 0 16px #0000004d}[data-tokui-theme=dark] .tokui-canvas__toggle{background:var(--tokui-bg,#1f2937);border-color:var(--tokui-border,#374151);color:var(--tokui-text-muted,#9ca3af)}[data-tokui-theme=dark] .tokui-canvas__toggle:hover{color:#60a5fa;background:#3b82f626}[data-tokui-theme=dark] .tokui-canvas__header{border-bottom-color:var(--tokui-border,#374151)}[data-tokui-theme=dark] .tokui-canvas__close:hover{background:#ffffff14}@media print{body{background:#fff!important}.app-header,.app-nav,.app-footer,#welcome,.app-welcome{display:none!important}.app-body{padding:0!important;display:block!important}.app-main{max-width:100%!important;margin:0!important;padding:0!important}.app-messages{padding:0!important}.msg-toolbar,.msg-source,.msg-thinking,.msg-stats,.tokui-toolbar,.tokui-card-source-btns,.tokui-card-source-btn{display:none!important}.msg{box-shadow:none!important;border:none!important;margin:0!important;padding:0!important}.msg--user{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}@page{margin:10mm}.tokui-h1,.tokui-h2,.tokui-h3,.tokui-h4,.tokui-h5,.tokui-h6,.tokui-card__header{page-break-after:avoid;-moz-column-break-after:avoid;break-after:avoid}.tokui-card .tokui-stat,.tokui-chart,.tokui-callout,.tokui-progress{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}.tokui-card,.tokui-table{page-break-inside:auto;-moz-column-break-inside:auto;break-inside:auto}.tokui-table thead{display:table-header-group}.tokui-table tr{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}.tokui-desc{page-break-inside:auto;-moz-column-break-inside:auto;break-inside:auto}.tokui-card{margin-bottom:12px!important}.tokui-card__body{padding:12px!important}.tokui-row{margin-bottom:8px!important}.msg-render{orphans:3;widows:3;padding:8px!important}}.tokui-print-area{border:1px dashed var(--tokui-border,#e5e7eb);border-radius:8px;margin:8px 0;padding:14px;position:relative}.tokui-print-area__title{color:var(--tokui-text,#1f2937);margin:0 0 14px;font-size:17px;font-weight:700}@media print{[data-tokui-print-trigger],body[data-tokui-printing=\\\"1\\\"] [data-tokui-print-hidden]{display:none!important}body[data-tokui-printing=\\\"1\\\"] *{visibility:hidden}body[data-tokui-printing=\\\"1\\\"] .tokui-print-target,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target *{visibility:visible}body[data-tokui-printing=\\\"1\\\"] .tokui-print-target{color:#1f2937;width:100%;padding:6px 10px;position:absolute;top:0;left:0;background:#fff!important}body[data-tokui-printing=\\\"1\\\"] .tokui-print-area{border:none;margin:0;padding:0}body[data-tokui-printing=\\\"1\\\"] .tokui-print-target *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-h1,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-h2,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-h3,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-h4,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-h5,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-h6,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-print-area__title,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-card__header{-moz-column-break-after:avoid;break-after:avoid;page-break-after:avoid}body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-card,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-stat,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-callout,body[data-tokui-printing=\\\"1\\\"] .tokui-print-target .tokui-table tr{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}}.tokui-picker--danger .tokui-picker-control,.tokui-cascader--danger .tokui-cascader-control,.tokui-input--danger,.tokui-select--danger{border-color:var(--tokui-danger)}.tokui-input--danger:focus,.tokui-select--danger:focus{box-shadow:0 0 0 2px var(--tokui-input-error-focus)}.tokui-ti--danger .tokui-ti__dot:after{background:var(--tokui-danger);box-shadow:0 0 0 2px var(--tokui-danger)}.tokui-progress--danger .tokui-progress__bar{background:var(--tokui-danger)}.tokui-progress--danger .tokui-progress__circle-bar{stroke:var(--tokui-danger)}.tokui-progress--danger .tokui-progress__mini-fill{background:var(--tokui-danger)}.tokui-step--danger.tokui-step--current:before{background:var(--tokui-primary)}.tokui-step--danger:hover .tokui-step__circle{box-shadow:0 0 0 4px #ef444426}.tokui-step--danger:hover .tokui-step__title{color:var(--tokui-danger)}.tokui-step--danger .tokui-step__circle{border-color:var(--tokui-danger);color:var(--tokui-danger)}.tokui-step--danger.tokui-step--current .tokui-step__circle{background:var(--tokui-danger);border-color:var(--tokui-danger);color:#fff}.tokui-step--danger .tokui-step__title{color:var(--tokui-danger)}.tokui-tag--danger{background:var(--tokui-tag-error-bg,#ef44441a);color:var(--tokui-tag-error-text,var(--tokui-danger));border-color:var(--tokui-tag-error-border,#ef44444d)}.tokui-callout--danger{border-left-color:var(--tokui-callout-error-border,var(--tokui-danger));background:var(--tokui-callout-error-bg,var(--tokui-danger-1))}.tokui-callout--danger .tokui-callout__icon,.tokui-think-step--danger .tokui-think-step__title{color:var(--tokui-danger)}.tokui-badge--danger{background:var(--tokui-danger);color:#fff}.tokui-toast--danger,.tokui-dot--danger .tokui-dot__circle,.tokui-dot--danger .tokui-dot__circle{background:var(--tokui-danger)}.tokui-result--danger .tokui-result__icon svg circle{fill:var(--tokui-danger-1,#ef44441a);stroke:var(--tokui-danger)}.tokui-result--danger .tokui-result__icon svg path{stroke:var(--tokui-danger)}.tokui-notification--danger .tokui-notification__bar{background:var(--tokui-danger)}.tokui-notification--danger .tokui-notification__icon{color:var(--tokui-danger)}.tokui-tool-call--danger .tokui-tool-call__status{color:var(--tokui-danger,#ef4444);background:#ef44441a}.tokui-plan-step--danger .tokui-plan-step__dot{background:var(--tokui-danger,#ef4444)}.tokui-agent--danger .tokui-agent__status{color:var(--tokui-danger,#ef4444);background:#ef44441a}.tokui-terminal--danger .tokui-terminal__content{border-left-color:var(--tokui-danger,#ef4444)}[data-tokui-theme=dark] .tokui-terminal--danger .tokui-terminal__content{border-left-color:var(--tokui-danger)}\\n/*$vite$:1*/\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/@jboltai/tokui/dist/tokui.css?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2");
|
|
1368
|
+
|
|
1369
|
+
/***/ }),
|
|
1370
|
+
|
|
1371
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./src/lib/style/zj-client.scss":
|
|
1372
|
+
/*!***********************************************************************************************************************************************************************************************************!*\
|
|
1373
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-3-1!./node_modules/postcss-loader/src??ref--8-oneOf-3-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-3-3!./src/lib/style/zj-client.scss ***!
|
|
1374
|
+
\***********************************************************************************************************************************************************************************************************/
|
|
1375
|
+
/*! no static exports found */
|
|
1376
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1377
|
+
|
|
1378
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.zj-style {\\n position: relative;\\n overflow: hidden;\\n}\\n\\n.zjkf__root.zjkf-body {\\n font-family: \\\"Microsoft YaHei\\\", \\\"微软雅黑\\\", \\\"宋体\\\", helvetica, \\\"Hiragino Sans GB\\\", MicrosoftYaHei;\\n -ms-text-size-adjust: 100%;\\n -webkit-text-size-adjust: 100%;\\n margin: 0 !important;\\n font-size: 14px;\\n background: #ffffff;\\n}\\n.zjkf__root.zjkf-body .clearfix::after {\\n content: \\\"020\\\";\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont {\\n speak: none;\\n font-style: normal;\\n font-weight: 400;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n vertical-align: baseline;\\n display: inline-block;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.zjkf-scrollbar ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n\\n.zjkf-common-e-ui .el-button.el-button--primary {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n\\n/*\\n * @Desc: \\n * @Auth: Hrc\\n * @Date: 2021-06-16 10:12:53\\n */\\n.zjkf__chat > .chat-message {\\n position: relative;\\n height: calc(100% - 50px - 220px);\\n overflow-y: auto;\\n overflow-x: hidden;\\n background-color: #f2f2f2;\\n box-sizing: border-box;\\n scrollbar-width: thin;\\n scrollbar-color: #dddfe0 #f2f2f2;\\n}\\n.zjkf__chat > .chat-message .unConnect {\\n padding: 20px;\\n margin: 20px 0;\\n text-align: center;\\n}\\n.zjkf__chat > .chat-message .unConnect .loading {\\n display: inline-block;\\n padding: 5px 30px;\\n border-radius: 20px;\\n background-color: #5facff;\\n color: #ffffff;\\n font-size: 12px;\\n}\\n.zjkf__chat > .chat-message .unConnect .errorConnect {\\n display: inline-block;\\n padding: 5px 30px;\\n border-radius: 20px;\\n background-color: #e27171;\\n color: #ffffff;\\n font-size: 12px;\\n}\\n.zjkf__chat > .chat-message .unConnect i {\\n font-size: 14px;\\n margin-right: 5px;\\n transition: font-size 3s linear 1s;\\n}\\n.zjkf__chat > .chat-message i.animation {\\n animation: myrotate 2s linear infinite;\\n -webkit-animation: myrotate 2s linear infinite;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item {\\n width: 100%;\\n padding: 15px 0;\\n box-sizing: border-box;\\n text-align: left;\\n padding-bottom: 0px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .sendTime {\\n text-align: center;\\n padding: 10px;\\n margin: 0;\\n font-size: 12px;\\n color: #8e8e8e;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .avatar {\\n width: 38px;\\n height: 38px;\\n line-height: 35px;\\n border-radius: 50%;\\n border: none;\\n overflow: hidden;\\n text-align: center;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .avatar img {\\n max-width: 100%;\\n max-height: 100%;\\n vertical-align: middle;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .send-user {\\n line-height: 1;\\n font-size: 12px;\\n color: #909399;\\n margin-bottom: 10px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message {\\n min-width: 50px;\\n max-width: 65%;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble-box {\\n padding: 5px;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble {\\n display: inline-block;\\n position: relative;\\n padding: 10px 15px;\\n border-radius: 4px;\\n background-color: #ffffff;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\\n width: inherit;\\n box-sizing: border-box;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble::after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 8px;\\n width: 0;\\n height: 0;\\n border: 0 solid #ffffff;\\n border-top: 5px solid transparent;\\n border-bottom: 5px solid transparent;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.large-txt p {\\n font-size: 18px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble p {\\n font-size: 14px;\\n color: #666666;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n width: inherit;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue {\\n width: 90%;\\n padding: 20px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue::after {\\n content: \\\"\\\";\\n position: absolute;\\n left: -3px;\\n border-right-width: 4px;\\n filter: drop-shadow(-2px 2px 2px rgba(0, 0, 0, 0.16));\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .tit h3 {\\n font-size: 20px;\\n font-weight: bold;\\n color: #333333;\\n margin-bottom: 15px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .tit p {\\n font-size: 12px;\\n color: #333333;\\n margin-bottom: 15px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body {\\n text-align: center;\\n padding: 15px;\\n padding-bottom: 0;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body p {\\n font-size: 12px;\\n color: #999999;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .body .num {\\n margin-top: 15px;\\n font-size: 60px;\\n color: #0074fd;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.queue .top-line {\\n border-top: 1px dashed rgb(222, 222, 224);\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory {\\n padding: 10px 10px 2px;\\n min-width: 368px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-tit {\\n margin-bottom: 10px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-tit p {\\n font-size: 14px;\\n color: #969696;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item {\\n padding: 10px 5px;\\n font-size: 14px;\\n color: #333333;\\n flex-basis: calc(50% - 10px);\\n cursor: pointer;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item:hover:not(.disabled) {\\n color: #0074FD;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-item.disabled {\\n color: #bdbdbd;\\n cursor: no-drop;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.advisory .advi-list .advi-divider:not(:last-child)::after {\\n content: \\\"\\\";\\n width: 94%;\\n height: 1px;\\n position: absolute;\\n left: 3%;\\n margin-top: 29px;\\n background-image: linear-gradient(to right, #DEDEE0 0%, #DEDEE0 50%, transparent 50%);\\n background-size: 9px 1px;\\n background-repeat: repeat-x;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation {\\n width: 100%;\\n padding-top: 10px;\\n text-align: center;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation .el-button {\\n margin: 0 auto;\\n padding: 8px 17px;\\n border-radius: 2px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .bubble.l-comments .operation .el-button.el-button--primary.is-disabled {\\n background-color: #c4c4c4;\\n border-color: #c4c4c4;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .info .message .img-bubble {\\n width: 100%;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item .is-read {\\n margin-top: 10px;\\n font-size: 12px;\\n color: #97979a;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-left .send-user .nickname {\\n float: left;\\n margin-right: 15px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-left .message {\\n float: left;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-left .message .bubble::after {\\n left: -3px;\\n border-right-width: 4px;\\n filter: drop-shadow(-2px 2px 2px rgba(0, 0, 0, 0.16));\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-left .message .img-bubble {\\n text-align: left;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-right .send-user .nickname {\\n float: right;\\n margin-left: 15px;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-right .message {\\n float: right;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-right .message .bubble {\\n background-color: #e5f1fe;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-right .message .bubble::after {\\n right: -3px;\\n border-left-width: 4px;\\n border-left-color: #e5f1fe;\\n border-right-color: #e5f1fe;\\n filter: drop-shadow(2px 1px 2px rgba(0, 0, 0, 0.16));\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-right .message .img-bubble {\\n text-align: right;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-right .is-read,\\n.zjkf__chat > .chat-message .message-list .message-item.msg-right .send-user {\\n text-align: right;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate {\\n text-align: center;\\n height: 20px;\\n line-height: 20px;\\n box-sizing: border-box;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more .line {\\n width: 40%;\\n height: 1px;\\n margin: 0 auto;\\n background-color: #dedee0;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more i {\\n font-size: 20px;\\n color: #a3a3a3;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-sys .current-msg-separate .load-more .history-tip {\\n color: #b5b5b5;\\n display: block;\\n font-size: 12px;\\n margin: 0 auto;\\n margin-top: -10px;\\n background-color: #f2f2f2;\\n width: 25%;\\n cursor: pointer;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip {\\n text-align: center;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip > .time {\\n font-size: 12px;\\n color: #909399;\\n}\\n.zjkf__chat > .chat-message .message-list .message-item.msg-sys .system-msg-tip > .text {\\n background: rgba(0, 0, 0, 0.4);\\n border-radius: 4px;\\n padding: 5px 15px;\\n line-height: 1;\\n color: #ffffff;\\n font-size: 12px;\\n display: inline-block;\\n letter-spacing: 1px;\\n}\\n\\n@keyframes myrotate {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(1turn);\\n }\\n}\\n@-webkit-keyframes myrotate {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(1turn);\\n }\\n}\\n.zjkf__chat .chat-editor {\\n position: relative;\\n height: 220px;\\n background: #f2f2f2;\\n border-top: 1px solid #e3e3e3;\\n box-sizing: border-box;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.zjkf__chat .chat-editor.disabled::after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: rgba(244, 244, 245, 0.65);\\n}\\n.zjkf__chat .chat-editor .__tools {\\n text-align: left;\\n height: 40px;\\n max-height: 40px;\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__chat .chat-editor .__tools .btn-icon {\\n display: inline-block;\\n height: 40px;\\n padding: 8px 10px;\\n box-sizing: border-box;\\n}\\n.zjkf__chat .chat-editor .__tools .btn-icon:first-child {\\n padding-left: 20px;\\n}\\n.zjkf__chat .chat-editor .__tools .btn-icon .zj-iconfont {\\n font-size: 25px;\\n cursor: pointer;\\n}\\n.zjkf__chat .chat-editor .__input .el-textarea__inner {\\n background-color: #f2f2f2;\\n background-image: none;\\n border: none;\\n border-radius: 0;\\n padding: 5px 20px;\\n height: calc(220px - 90px);\\n font-family: \\\"Microsoft YaHei\\\";\\n}\\n.zjkf__chat .chat-editor .__input .__send {\\n height: 50px;\\n line-height: 50px;\\n padding-right: 20px;\\n text-align: right;\\n font-size: 12px;\\n color: #999999;\\n}\\n.zjkf__chat .chat-editor .__input .__send .el-button {\\n padding: 9px 23px;\\n font-size: 12px;\\n border-radius: 2px;\\n margin-left: 10px;\\n}\\n.zjkf__chat .chat-editor .__input .__send .remain-text {\\n margin-left: 20px;\\n}\\n.zjkf__chat .chat-editor .emoj-poppver {\\n position: absolute;\\n top: -230px;\\n left: 10px;\\n height: 200px;\\n width: 70%;\\n overflow: hidden scroll;\\n background-color: #ffffff;\\n padding: 10px 5px;\\n border-radius: 5px;\\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.16);\\n animation: emjoSlideUp 0.2s ease-in;\\n -webkit-animation: emjoSlideUp 0.2s ease-in;\\n -moz-animation: emjoSlideUp 0.2s ease-in;\\n}\\n.zjkf__chat .chat-editor .emoj-poppver .emoj-row {\\n text-align: center;\\n margin-bottom: 5px;\\n}\\n.zjkf__chat .chat-editor .emoj-poppver .emoj-row .el-col {\\n padding: 0 5px;\\n}\\n.zjkf__chat .chat-editor .emoj-poppver .emoj-row .emoji-icon {\\n font-size: 24px;\\n box-sizing: border-box;\\n overflow: hidden;\\n min-height: 37px;\\n border-radius: 4px;\\n}\\n.zjkf__chat .chat-editor .emoj-poppver .emoj-row .emoji-icon:hover {\\n font-size: 26px;\\n transition: all 0.2s ease;\\n background-color: #efefef;\\n cursor: pointer;\\n}\\n\\n@-webkit-keyframes emjoSlideUp {\\n from {\\n transform: translateY(20px);\\n opacity: 0;\\n }\\n to {\\n transform: translateY(0);\\n opacity: 1;\\n }\\n}\\n\\n@keyframes emjoSlideUp {\\n from {\\n transform: translateY(20px);\\n opacity: 0;\\n }\\n to {\\n transform: translateY(0);\\n opacity: 1;\\n }\\n}\\n#YSF-BTN-HOLDER {\\n display: none;\\n}\\n\\n/**\\n * @desc: 公用样式\\n */\\n.zj-small-btn {\\n padding: 8px 22px !important;\\n font-size: 12px !important;\\n}\\n\\n.zjkf__wrapper {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n box-sizing: border-box;\\n zoom: 1;\\n z-index: 2001;\\n}\\n.zjkf__wrapper.small-win {\\n background: transparent;\\n}\\n.zjkf__wrapper.small-win .zjkf__chat {\\n box-shadow: none;\\n}\\n.zjkf__wrapper.shadow {\\n box-shadow: 0 2px 8px 1px rgba(23, 23, 26, 0.2);\\n}\\n.zjkf__wrapper.fullscreen {\\n left: 0 !important;\\n top: 0 !important;\\n}\\n\\n.zjkf__chat {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n overflow: hidden;\\n transition: all 0.3s ease;\\n}\\n\\n.zjkf__chat .zjkf__chat-header {\\n background-color: #f2f2f2;\\n height: 50px;\\n line-height: 50px;\\n padding: 0 10px 0 20px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.zjkf__chat .zjkf__chat-header > .__title {\\n font-size: 16px;\\n letter-spacing: 1px;\\n font-family: \\\"Microsoft YaHei\\\", \\\"微软雅黑\\\", \\\"宋体\\\", helvetica, \\\"Hiragino Sans GB\\\", MicrosoftYaHei;\\n color: #333333;\\n}\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/style/zj-client.scss?./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-3-1!./node_modules/postcss-loader/src??ref--8-oneOf-3-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-3-3");
|
|
1379
|
+
|
|
1380
|
+
/***/ }),
|
|
1381
|
+
|
|
1382
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./src/lib/assets/iconfont/iconfont.css":
|
|
1383
|
+
/*!**********************************************************************************************************************************************************!*\
|
|
1384
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2!./src/lib/assets/iconfont/iconfont.css ***!
|
|
1385
|
+
\**********************************************************************************************************************************************************/
|
|
1386
|
+
/*! no static exports found */
|
|
1387
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1388
|
+
|
|
1389
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ./iconfont.woff2?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.woff2?t=1656657853347\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ./iconfont.woff?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.woff?t=1656657853347\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = __webpack_require__(/*! ./iconfont.ttf?t=1656657853347 */ \"./src/lib/assets/iconfont/iconfont.ttf?t=1656657853347\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\nexports.push([module.i, \"@font-face {\\r\\n font-family: \\\"zj-iconfont\\\"; /* Project id 2613773 */\\r\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format('woff2'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format('woff'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('truetype');\\r\\n}\\r\\n\\r\\n.zj-iconfont {\\r\\n font-family: \\\"zj-iconfont\\\" !important;\\r\\n font-size: 16px;\\r\\n font-style: normal;\\r\\n -webkit-font-smoothing: antialiased;\\r\\n -moz-osx-font-smoothing: grayscale;\\r\\n}\\r\\n\\r\\n.kf-biaoqingemoji:before {\\r\\n content: \\\"\\\\e7bb\\\";\\r\\n}\\r\\n\\r\\n.kf-a-wenjianjiawenjian1:before {\\r\\n content: \\\"\\\\e727\\\";\\r\\n}\\r\\n\\r\\n.kf-window-close:before {\\r\\n content: \\\"\\\\e9bb\\\";\\r\\n}\\r\\n\\r\\n.kf-window-normal:before {\\r\\n content: \\\"\\\\e9bc\\\";\\r\\n}\\r\\n\\r\\n.kf-window-min:before {\\r\\n content: \\\"\\\\e9bd\\\";\\r\\n}\\r\\n\\r\\n.kf-window-max:before {\\r\\n content: \\\"\\\\e9be\\\";\\r\\n}\\r\\n\\r\\n.kf-guanbi:before {\\r\\n content: \\\"\\\\e609\\\";\\r\\n}\\r\\n\\r\\n.kf-nishizhenxuanzhuan:before {\\r\\n content: \\\"\\\\e65a\\\";\\r\\n}\\r\\n\\r\\n.kf-shunshizhenxuanzhuan:before {\\r\\n content: \\\"\\\\e65c\\\";\\r\\n}\\r\\n\\r\\n.kf-unfold:before {\\r\\n content: \\\"\\\\e649\\\";\\r\\n}\\r\\n\\r\\n.kf-group-2:before {\\r\\n content: \\\"\\\\e6a0\\\";\\r\\n}\\r\\n\\r\\n.kf-group-1:before {\\r\\n content: \\\"\\\\e6a1\\\";\\r\\n}\\r\\n\\r\\n.kf-ziyuan:before {\\r\\n content: \\\"\\\\e61f\\\";\\r\\n}\\r\\n\\r\\n.kf-loading:before {\\r\\n content: \\\"\\\\e6fd\\\";\\r\\n}\\r\\n\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/assets/iconfont/iconfont.css?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2");
|
|
1390
|
+
|
|
1391
|
+
/***/ }),
|
|
1392
|
+
|
|
1393
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css&":
|
|
1394
|
+
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1395
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css& ***!
|
|
1396
|
+
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1397
|
+
/*! no static exports found */
|
|
1398
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1399
|
+
|
|
1400
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\r\\n/* 外层大容器,本地渐变背景铺满全屏,内部全部居中 */\\n.agent-selector[data-v-d478ade8] {\\r\\n width: 100%;\\r\\n min-height: 100%;\\r\\n padding: 80px 20px;\\r\\n /* 本地背景图铺满 */\\r\\n background: url(https://qiguanbang.obs.cn-east-3.myhuaweicloud.com/production/image/AlAgent/background.png) no-repeat;\\r\\n background-size: 100% 100%;\\r\\n box-sizing: border-box;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\n}\\r\\n\\r\\n/* 内容容器,限制最大宽度,自适应居中,无固定宽 */\\n.agent-wrap[data-v-d478ade8] {\\r\\n width: 100%;\\r\\n max-width: 920px;\\n}\\r\\n\\r\\n/* 标题样式,居中、字号、间距匹配效果图 */\\n.agent-title[data-v-d478ade8] {\\r\\n text-align: center;\\r\\n margin-bottom: 116px;\\n}\\n.agent-title h2[data-v-d478ade8] {\\r\\n font-size: 26px;\\r\\n color: #222;\\r\\n font-weight: 500;\\r\\n margin: 0;\\r\\n line-height: 40px;\\n}\\r\\n\\r\\n/* 卡片网格:一行2等分,行列间距对齐效果图 */\\n.agent-list[data-v-d478ade8] {\\r\\n display: grid;\\r\\n grid-template-columns: repeat(2, 1fr);\\r\\n gap: 76px 30px;\\r\\n width: 100%;\\n}\\r\\n\\r\\n/* 卡片核心样式:圆角、内边距、相对定位,无固定宽度 */\\n.agent-item[data-v-d478ade8] {\\r\\n position: relative;\\r\\n border-radius: 11px;\\r\\n height: 90px;\\r\\n /* 左侧留出头像位置,文字靠右内缩 */\\r\\n padding: 22px 20px 20px 110px;\\r\\n box-sizing: border-box;\\r\\n cursor: pointer;\\r\\n transition: all 0.25s ease;\\r\\n /* 轻微柔和阴影,和效果图一致 */\\r\\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);\\n}\\n.agent-item[data-v-d478ade8]:hover {\\r\\n transform: translateY(-4px);\\r\\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);\\n}\\r\\n\\r\\n/* 上浮头像容器 */\\n.agent-avatar-wrapper[data-v-d478ade8] {\\r\\n position: absolute;\\r\\n left: 3px;\\r\\n top: -36px;\\n}\\r\\n\\r\\n/* 头像本体通用样式 */\\n.agent-list-avatar[data-v-d478ade8] {\\r\\n background-repeat: no-repeat;\\r\\n background-position: center;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #fff;\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\r\\n border-radius: 8px;\\r\\n /* 效果图统一卡通头像尺寸 */\\r\\n width: 92px;\\r\\n height: 106px;\\n}\\r\\n/* 有头像图片完整展示,不裁切 */\\n.agent-list-avatar.has-agent-img[data-v-d478ade8] {\\r\\n background-size: cover;\\n}\\r\\n/* 无头像文字首字母:小尺寸,偏移适配 */\\n.agent-list-avatar[data-v-d478ade8]:not(.has-agent-img) {\\r\\n width: 76px;\\r\\n height: 108px;\\r\\n transform: translateX(9px);\\n}\\r\\n\\r\\n/* 文字区域垂直排列 */\\n.agent-info-content[data-v-d478ade8] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n max-width: 300px;\\r\\n flex-shrink: 0; /* 如果是flex布局,禁止自身被压缩 */\\n}\\r\\n/* 助手名称 */\\n.name[data-v-d478ade8] {\\r\\n font-size: 16px;\\r\\n font-weight: 500;\\r\\n color: #111;\\r\\n line-height: 22px;\\r\\n margin-bottom: 6px;\\n}\\r\\n/* 描述文本 */\\n.desc[data-v-d478ade8] {\\r\\n font-size: 14px;\\r\\n color: #666;\\r\\n line-height: 20px;\\r\\n /* 超长描述单行省略 */\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\n}\\r\\n\\r\\n/* H5 顶部栏 */\\n.mobile-agent-select-header[data-v-d478ade8] {\\r\\n width: 100%;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n position: relative;\\r\\n padding: 10px 0;\\r\\n min-height: 44px;\\n}\\n.mobile-agent-select-header .mobile-agent-back[data-v-d478ade8] {\\r\\n position: absolute;\\r\\n left: 4px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n background: transparent;\\r\\n border: none;\\r\\n width: 44px;\\r\\n height: 44px;\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\r\\n padding: 0;\\r\\n color: #333;\\n}\\n.mobile-agent-select-header .mobile-agent-back i[data-v-d478ade8] {\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\n}\\n.mobile-agent-select-header .mobile-agent-title-text[data-v-d478ade8] {\\r\\n font-size: 17px;\\r\\n font-weight: 500;\\r\\n color: #000;\\n}\\r\\n\\r\\n/* 移动端适配 */\\n@media screen and (max-width: 768px) {\\n.agent-selector[data-v-d478ade8] {\\r\\n padding: 0 !important;\\n}\\n.agent-selector .agent-wrap[data-v-d478ade8] {\\r\\n padding: 40px 16px 0;\\r\\n box-sizing: border-box;\\n}\\n.agent-selector .agent-title[data-v-d478ade8] {\\r\\n display: none;\\n}\\n.agent-list[data-v-d478ade8] {\\r\\n grid-template-columns: 1fr;\\r\\n gap: 52px 0;\\n}\\n.agent-item[data-v-d478ade8] {\\r\\n height: auto;\\r\\n min-height: 84px;\\r\\n padding: 18px 16px 18px 96px;\\n}\\n.agent-avatar-wrapper[data-v-d478ade8] {\\r\\n left: 8px;\\r\\n top: -18px;\\n}\\n.agent-list-avatar.has-agent-img[data-v-d478ade8] {\\r\\n width: 74px;\\r\\n height: 88px;\\n}\\n.agent-list-avatar[data-v-d478ade8]:not(.has-agent-img) {\\r\\n width: 62px;\\r\\n height: 78px;\\n}\\n.desc[data-v-d478ade8] {\\r\\n white-space: normal;\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\n}\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1401
|
+
|
|
1402
|
+
/***/ }),
|
|
1403
|
+
|
|
1404
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css&":
|
|
1405
|
+
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1406
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css& ***!
|
|
1407
|
+
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1408
|
+
/*! no static exports found */
|
|
1409
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1410
|
+
|
|
1411
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.chat-main[data-v-9693c11e] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n min-width: 0;\\r\\n min-height: 0;\\n}\\r\\n\\r\\n/* ── Header ── */\\n.chat-header[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n padding: 10px 20px;\\r\\n background: #fff;\\r\\n border-bottom: 1px solid #e8e8e8;\\r\\n flex-shrink: 0;\\r\\n z-index: 10;\\n}\\n.header-left[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 10px;\\r\\n min-width: 0;\\r\\n flex: 1;\\n}\\n.header-actions[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n flex-shrink: 0;\\n}\\n.agent-info[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 10px;\\n}\\n.agent-icon[data-v-9693c11e] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border-radius: 8px;\\r\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\r\\n color: #fff;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 16px;\\r\\n font-weight: 600;\\r\\n flex-shrink: 0;\\n}\\n.agent-info:nth-child(4n + 2) .agent-icon-avatar[data-v-9693c11e] {\\r\\n background: linear-gradient(135deg, #52c41a, #73d13d);\\n}\\n.agent-info:nth-child(4n + 3) .agent-icon-avatar[data-v-9693c11e] {\\r\\n background: linear-gradient(135deg, #fa8c16, #ffa940);\\n}\\n.agent-info:nth-child(4n + 4) .agent-icon-avatar[data-v-9693c11e] {\\r\\n background: linear-gradient(135deg, #722ed1, #b37feb);\\n}\\n.agent-text[data-v-9693c11e] {\\r\\n min-width: 0;\\n}\\n.agent-name[data-v-9693c11e] {\\r\\n font-size: 15px;\\r\\n font-weight: 600;\\r\\n color: #333;\\r\\n line-height: 1.3;\\n}\\n.agent-desc[data-v-9693c11e] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\r\\n max-width: min(300px, 45vw);\\n}\\n.header-right[data-v-9693c11e] {\\r\\n flex-shrink: 0;\\n}\\n.manage-link[data-v-9693c11e] {\\r\\n font-size: 13px;\\r\\n color: #1677ff;\\r\\n text-decoration: none;\\n}\\n.manage-link[data-v-9693c11e]:hover {\\r\\n color: #4096ff;\\n}\\r\\n\\r\\n/* ── Chat Body ── */\\n.chat-body[data-v-9693c11e] {\\r\\n flex: 1;\\r\\n overflow-y: auto;\\r\\n padding: 16px clamp(12px, 3vw, 40px);\\r\\n scroll-behavior: auto;\\r\\n position: relative;\\r\\n -webkit-overflow-scrolling: touch;\\r\\n background: url(https://qiguanbang.obs.cn-east-3.myhuaweicloud.com/production/image/AlAgent/agentbackground.png) 100% no-repeat;\\r\\n background-size: 100% 100%;\\r\\n background-position: center;\\r\\n background-size: cover;\\r\\n min-height: 0;\\n}\\n.welcome[data-v-9693c11e] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n height: 100%;\\r\\n color: #bbb;\\r\\n margin: 0 -20px;\\n}\\n.welcome-icon[data-v-9693c11e] {\\r\\n margin-bottom: 12px;\\r\\n opacity: 0.7;\\n}\\n.welcome-text[data-v-9693c11e] {\\r\\n font-size: 15px;\\n}\\n.welcome-default .welcome-icon[data-v-9693c11e] {\\r\\n margin-bottom: 16px;\\n}\\n.welcome-title[data-v-9693c11e] {\\r\\n font-size: 20px;\\r\\n font-weight: 600;\\r\\n color: #333;\\r\\n margin-bottom: 8px;\\n}\\r\\n\\r\\n/* ── Message Row ── */\\n.msg-row[data-v-9693c11e] {\\r\\n width: 100%;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n padding: 20px 16px;\\r\\n box-sizing: border-box;\\r\\n align-items: center;\\n}\\n.msg-main[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: flex-start;\\r\\n gap: 10px;\\r\\n max-width: 85%;\\r\\n width: min(100%, 860px) !important;\\r\\n max-width: 860px;\\n}\\n.msg-row.user .msg-main[data-v-9693c11e] {\\r\\n flex-direction: row-reverse;\\n}\\n.msg-row.assistant[data-v-9693c11e] {\\r\\n justify-content: center;\\n}\\n.load-more[data-v-9693c11e] {\\r\\n text-align: center;\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n padding: 4px 0;\\n}\\n.msg-time[data-v-9693c11e] {\\r\\n font-size: 11px;\\r\\n color: #bbb;\\r\\n margin-top: 2px;\\r\\n padding-left: 4px;\\n}\\n.msg-row.user .msg-time[data-v-9693c11e] {\\r\\n text-align: right;\\r\\n padding-right: 4px;\\n}\\n.msg-actions[data-v-9693c11e] {\\r\\n display: flex;\\r\\n gap: 4px;\\r\\n margin-top: 4px;\\r\\n padding-left: 4px;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\n}\\n.ai-badge[data-v-9693c11e] {\\r\\n font-size: 11px;\\r\\n color: #999;\\r\\n /* background: #f5f5f5; */\\r\\n padding: 1px 6px;\\r\\n border-radius: 3px;\\r\\n white-space: nowrap;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n margin-left: auto;\\n}\\n.action-btn[data-v-9693c11e] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n cursor: pointer;\\r\\n padding: 2px 6px 2px 0;\\r\\n border-radius: 4px;\\r\\n transition: all 0.2s;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\n}\\n.action-btn[data-v-9693c11e]:hover {\\r\\n color: #1677ff;\\r\\n background: #f0f5ff;\\n}\\r\\n\\r\\n/* ── STT 语音转文字状态 ── */\\n.stt-status-block[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 8px;\\r\\n font-size: 14px;\\r\\n line-height: 1.5;\\n}\\n.stt-bubble-wrap[data-v-9693c11e] {\\r\\n position: relative;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n font-size: 15px;\\r\\n line-height: 1.4;\\n}\\n.stt-outside-icon[data-v-9693c11e] {\\r\\n position: absolute;\\r\\n right: 100%;\\r\\n top: 50%;\\r\\n margin-top: -9px;\\r\\n margin-right: 20px;\\n}\\n.stt-spinner[data-v-9693c11e] {\\r\\n display: inline-block;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n border: 2.5px solid #d9d9d9;\\r\\n border-top-color: #1677ff;\\r\\n border-right-color: #4096ff;\\r\\n border-radius: 50%;\\r\\n -webkit-animation: stt-spin-data-v-9693c11e 0.6s linear infinite;\\r\\n animation: stt-spin-data-v-9693c11e 0.6s linear infinite;\\r\\n flex-shrink: 0;\\r\\n box-sizing: border-box;\\n}\\n@-webkit-keyframes stt-spin-data-v-9693c11e {\\nto { transform: rotate(360deg);\\n}\\n}\\n@keyframes stt-spin-data-v-9693c11e {\\nto { transform: rotate(360deg);\\n}\\n}\\n.stt-error-icon[data-v-9693c11e] {\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n background: #ff4d4f;\\r\\n color: #fff;\\r\\n font-size: 12px;\\r\\n font-weight: 700;\\r\\n border-radius: 50%;\\r\\n line-height: 1;\\r\\n flex-shrink: 0;\\n}\\n.stt-bubble-text[data-v-9693c11e] {\\r\\n font-size: 15px;\\r\\n line-height: 1.4;\\r\\n color: #fff;\\r\\n white-space: nowrap;\\r\\n margin: 6px 0;\\n}\\n.msg-avatar[data-v-9693c11e] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border-radius: 50%;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 13px;\\r\\n font-weight: 700;\\r\\n flex-shrink: 0;\\r\\n color: #fff;\\n}\\n.msg-avatar.user[data-v-9693c11e] {\\r\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\r\\n color: #fff;\\n}\\n.msg-avatar.assistant[data-v-9693c11e] {\\r\\n background: linear-gradient(135deg, #52c41a, #73d13d);\\r\\n color: #fff;\\n}\\n.msg-agent-label[data-v-9693c11e] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n margin-bottom: 2px;\\n}\\n.msg-content[data-v-9693c11e] {\\r\\n width: 100% !important;\\r\\n max-width: 100%;\\r\\n box-sizing: border-box;\\r\\n overflow: hidden;\\n}\\r\\n\\r\\n/* ── Bubble ── */\\n.bubble[data-v-9693c11e] {\\r\\n max-width: 100%;\\r\\n min-width: 30px;\\r\\n width: -webkit-fit-content;\\r\\n width: -moz-fit-content;\\r\\n width: fit-content;\\r\\n padding: 8px 14px;\\r\\n border-radius: 12px;\\r\\n line-height: 1.4;\\r\\n font-size: 15px;\\r\\n word-break: break-word;\\r\\n white-space: normal;\\r\\n text-align: left;\\r\\n overflow-wrap: anywhere;\\n}\\n.bubble[data-v-9693c11e]:has(.typing) {\\r\\n padding: 16px 20px;\\n}\\n.bubble.user[data-v-9693c11e] {\\r\\n background: #1677ff;\\r\\n color: #fff;\\r\\n border-bottom-right-radius: 4px;\\r\\n box-shadow: 0 2px 8px rgba(22, 119, 255, 0.15);\\r\\n float: none;\\r\\n margin-left: auto;\\r\\n max-width: min(100%, 520px);\\n}\\n.bubble.assistant[data-v-9693c11e] {\\r\\n background: #fff;\\r\\n color: #333;\\r\\n border-bottom-left-radius: 4px;\\r\\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\\r\\n text-align: left;\\r\\n width: 100%;\\r\\n box-sizing: border-box;\\n}\\n.bubble[data-v-9693c11e] table {\\r\\n border-collapse: collapse;\\r\\n width: 100%;\\r\\n margin: 6px 0;\\r\\n font-size: 14px;\\n}\\n.bubble[data-v-9693c11e] th,\\r\\n.bubble[data-v-9693c11e] td {\\r\\n border: 1px solid #e8e8e8;\\r\\n padding: 5px 8px;\\r\\n text-align: left;\\n}\\n.bubble[data-v-9693c11e] th {\\r\\n background: #fafafa;\\r\\n font-weight: 600;\\n}\\n.bubble[data-v-9693c11e] code {\\r\\n padding: 1px 5px;\\r\\n border-radius: 3px;\\r\\n font-size: 14px;\\n}\\n.bubble[data-v-9693c11e] pre {\\r\\n background: #f6f8fa;\\r\\n color: #333;\\r\\n padding: 12px;\\r\\n border-radius: 6px;\\r\\n overflow-x: auto;\\r\\n font-size: 13px;\\r\\n border: 1px solid #e8e8e8;\\r\\n margin: 8px 0;\\r\\n line-height: 1.5;\\r\\n white-space: pre;\\n}\\n.bubble[data-v-9693c11e] ul,\\r\\n.bubble[data-v-9693c11e] ol {\\r\\n padding-left: 20px;\\r\\n margin: 4px 0;\\n}\\n.bubble[data-v-9693c11e] li {\\r\\n margin: 2px 0;\\n}\\n.bubble[data-v-9693c11e] p {\\r\\n margin: 6px 0;\\n}\\r\\n\\r\\n/* ── Thinking ── */\\n.thinking-details[data-v-9693c11e] {\\r\\n margin-bottom: 10px;\\r\\n border: 1px solid #e8e8e8;\\r\\n border-radius: 8px;\\r\\n overflow: hidden;\\r\\n background: #fafafa;\\n}\\n.thinking-summary[data-v-9693c11e] {\\r\\n font-size: 12px;\\r\\n color: #888;\\r\\n cursor: pointer;\\r\\n padding: 6px 10px;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\n}\\n.thinking-summary[data-v-9693c11e]:hover {\\r\\n color: #1677ff;\\n}\\n.thinking-body[data-v-9693c11e] {\\r\\n font-size: 14px;\\r\\n color: #666;\\r\\n padding: 8px 12px;\\r\\n line-height: 1.6;\\r\\n border-top: 1px solid #f0f0f0;\\r\\n text-align: left;\\r\\n white-space: pre-wrap;\\r\\n word-break: break-word;\\r\\n overflow-wrap: break-word;\\r\\n overflow-wrap: anywhere;\\n}\\n.final-content[data-v-9693c11e] {\\r\\n word-break: break-word;\\r\\n overflow-wrap: break-word;\\r\\n overflow-wrap: anywhere;\\n}\\n.tokui-shell[data-v-9693c11e] {\\r\\n font-size: 14px;\\r\\n line-height: 1.6;\\r\\n color: inherit;\\r\\n font-family: \\\"Segoe UI\\\", \\\"PingFang SC\\\", \\\"Microsoft YaHei\\\", Arial, sans-serif;\\n}\\n.tokui-shell .tokui-stream[data-v-9693c11e] {\\r\\n font-size: 14px;\\r\\n line-height: 1.6;\\r\\n color: inherit;\\r\\n font-family: inherit;\\r\\n text-align: left;\\r\\n width: 100%;\\r\\n overflow-wrap: anywhere;\\n}\\n.tokui-shell .tokui-stream > *[data-v-9693c11e] {\\r\\n font-size: inherit;\\r\\n line-height: inherit;\\r\\n font-family: inherit;\\n}\\n.tokui-shell .tokui-stream p[data-v-9693c11e],\\r\\n.tokui-shell .tokui-stream ul[data-v-9693c11e],\\r\\n.tokui-shell .tokui-stream ol[data-v-9693c11e],\\r\\n.tokui-shell .tokui-stream li[data-v-9693c11e],\\r\\n.tokui-shell .tokui-stream table[data-v-9693c11e],\\r\\n.tokui-shell .tokui-stream code[data-v-9693c11e],\\r\\n.tokui-shell .tokui-stream pre[data-v-9693c11e] {\\r\\n font-size: inherit;\\r\\n line-height: inherit;\\r\\n font-family: inherit;\\n}\\n.thinking-body[data-v-9693c11e] p {\\r\\n margin: 4px 0;\\n}\\r\\n\\r\\n/* ── Typing ── */\\n.typing[data-v-9693c11e] {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: center;\\r\\n gap: 8px;\\r\\n min-height: 24px;\\r\\n justify-content: flex-start;\\r\\n padding: 4px 0;\\n}\\n.typing .phrase[data-v-9693c11e] {\\r\\n font-size: 14px;\\r\\n color: #888;\\r\\n white-space: nowrap;\\r\\n -webkit-animation: phraseFade-data-v-9693c11e 0.5s ease;\\r\\n animation: phraseFade-data-v-9693c11e 0.5s ease;\\r\\n letter-spacing: 0.5px;\\n}\\n.typing .dots[data-v-9693c11e] {\\r\\n display: flex;\\r\\n gap: 5px;\\r\\n align-items: center;\\r\\n justify-content: center;\\n}\\n.typing .dots span[data-v-9693c11e] {\\r\\n width: 8px;\\r\\n height: 8px;\\r\\n background: #bbb;\\r\\n border-radius: 50%;\\r\\n -webkit-animation: dtTyping-data-v-9693c11e 1.3s infinite ease-in-out;\\r\\n animation: dtTyping-data-v-9693c11e 1.3s infinite ease-in-out;\\n}\\n.typing .dots span[data-v-9693c11e]:nth-child(2) {\\r\\n -webkit-animation-delay: 0.16s;\\r\\n animation-delay: 0.16s;\\n}\\n.typing .dots span[data-v-9693c11e]:nth-child(3) {\\r\\n -webkit-animation-delay: 0.32s;\\r\\n animation-delay: 0.32s;\\n}\\n@-webkit-keyframes phraseFade-data-v-9693c11e {\\nfrom {\\r\\n opacity: 0.2;\\r\\n transform: translateY(4px);\\n}\\nto {\\r\\n opacity: 1;\\r\\n transform: translateY(0);\\n}\\n}\\n@keyframes phraseFade-data-v-9693c11e {\\nfrom {\\r\\n opacity: 0.2;\\r\\n transform: translateY(4px);\\n}\\nto {\\r\\n opacity: 1;\\r\\n transform: translateY(0);\\n}\\n}\\n@-webkit-keyframes dtTyping-data-v-9693c11e {\\n0%,\\r\\n 60%,\\r\\n 100% {\\r\\n transform: translateY(0);\\r\\n opacity: 0.3;\\n}\\n30% {\\r\\n transform: translateY(-5px);\\r\\n opacity: 1;\\n}\\n}\\n@keyframes dtTyping-data-v-9693c11e {\\n0%,\\r\\n 60%,\\r\\n 100% {\\r\\n transform: translateY(0);\\r\\n opacity: 0.3;\\n}\\n30% {\\r\\n transform: translateY(-5px);\\r\\n opacity: 1;\\n}\\n}\\r\\n\\r\\n/* ── Wait Timer ── */\\n.typing.wait-5 .dots span[data-v-9693c11e] {\\r\\n width: 8px;\\r\\n height: 8px;\\r\\n -webkit-animation-duration: 1s;\\r\\n animation-duration: 1s;\\n}\\n.typing.wait-5 .phrase[data-v-9693c11e] {\\r\\n color: #888;\\n}\\n.typing.wait-10 .dots span[data-v-9693c11e] {\\r\\n width: 9px;\\r\\n height: 9px;\\r\\n -webkit-animation-duration: 0.8s;\\r\\n animation-duration: 0.8s;\\r\\n background: #909399;\\n}\\n.typing.wait-10 .phrase[data-v-9693c11e] {\\r\\n color: #909399;\\n}\\n.typing.wait-10 .dots[data-v-9693c11e] {\\r\\n -webkit-animation: dtPulse-data-v-9693c11e 1s infinite ease-in-out;\\r\\n animation: dtPulse-data-v-9693c11e 1s infinite ease-in-out;\\n}\\n.typing.wait-15 .dots span[data-v-9693c11e] {\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n -webkit-animation-duration: 0.6s;\\r\\n animation-duration: 0.6s;\\r\\n background: #1677ff;\\n}\\n.typing.wait-15 .phrase[data-v-9693c11e] {\\r\\n color: #1677ff;\\n}\\n.typing.wait-15 .dots[data-v-9693c11e] {\\r\\n -webkit-animation: dtPulse-data-v-9693c11e 0.6s infinite ease-in-out;\\r\\n animation: dtPulse-data-v-9693c11e 0.6s infinite ease-in-out;\\n}\\n@-webkit-keyframes dtPulse-data-v-9693c11e {\\n0%,\\r\\n 100% {\\r\\n transform: scale(1);\\n}\\n50% {\\r\\n transform: scale(1.05);\\n}\\n}\\n@keyframes dtPulse-data-v-9693c11e {\\n0%,\\r\\n 100% {\\r\\n transform: scale(1);\\n}\\n50% {\\r\\n transform: scale(1.05);\\n}\\n}\\r\\n\\r\\n/* ── Tool Calls ── */\\n.tool-calls[data-v-9693c11e] {\\r\\n margin-top: 8px;\\n}\\n.tool-item[data-v-9693c11e] {\\r\\n background: #f5f5f5;\\r\\n border-radius: 6px;\\r\\n padding: 6px 10px;\\r\\n margin-bottom: 4px;\\r\\n font-size: 12px;\\n}\\n.tool-badge[data-v-9693c11e] {\\r\\n display: inline-block;\\r\\n margin-bottom: 2px;\\r\\n font-size: 11px;\\r\\n color: #fa8c16;\\r\\n font-weight: 500;\\n}\\n.tool-item pre[data-v-9693c11e] {\\r\\n margin: 0;\\r\\n white-space: pre-wrap;\\r\\n word-break: break-all;\\r\\n font-size: 12px;\\r\\n color: #666;\\r\\n max-height: 120px;\\r\\n overflow-y: auto;\\n}\\r\\n\\r\\n/* ── Scroll Buttons ── */\\n.scroll-btns[data-v-9693c11e] {\\r\\n position: sticky;\\r\\n left: 50%;\\r\\n transform: translateX(-50%);\\r\\n bottom: 20px;\\r\\n z-index: 99;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n margin-top: 10px;\\r\\n pointer-events: none;\\n}\\n.scroll-btn[data-v-9693c11e] {\\r\\n pointer-events: auto;\\r\\n width: 38px;\\r\\n height: 38px;\\r\\n border-radius: 50%;\\r\\n background: #fff;\\r\\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\n}\\n.scroll-btn i[data-v-9693c11e] {\\r\\n font-size: 16px;\\r\\n color: #333;\\n}\\r\\n\\r\\n/* ── Footer ── */\\n.chat-footer[data-v-9693c11e] {\\r\\n flex-shrink: 0;\\r\\n border-top: none;\\r\\n padding: 30px 0;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n margin: 0 auto;\\r\\n width: 100%;\\n}\\n.input-area[data-v-9693c11e] {\\r\\n position: relative;\\r\\n display: flex;\\r\\n align-items: flex-end;\\r\\n gap: 6px;\\r\\n background: #fff;\\r\\n border-radius: 24px;\\r\\n margin: 0 24px;\\r\\n padding: 18px 20px;\\r\\n border: 1px solid #b3d8ff;\\r\\n transition: border-color 0.2s;\\r\\n flex-wrap: wrap;\\r\\n width: min(100%, 1000px) !important;\\r\\n box-sizing: border-box;\\n}\\n.input-area[data-v-9693c11e]:focus-within {\\r\\n border-color: #1677ff;\\r\\n background: #fff;\\r\\n box-shadow: none;\\n}\\n.input-area[data-v-9693c11e]::after {\\r\\n content: \\\"Enter 发送,Ctrl+Enter 换行\\\";\\r\\n position: absolute;\\r\\n right: 100px;\\r\\n bottom: 28px;\\r\\n font-size: 14px;\\r\\n color: #8c8c8c;\\r\\n pointer-events: none;\\n}\\n.scroll-bottom-wrap[data-v-9693c11e] {\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n transform: translateX(-50%);\\r\\n bottom: calc(100% + 30px);\\r\\n z-index: 99;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n pointer-events: none;\\n}\\n.scroll-bottom-btn[data-v-9693c11e] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border-radius: 50%;\\r\\n background: #fff;\\r\\n border: 1px solid #e5e7eb;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\r\\n pointer-events: auto;\\r\\n position: relative;\\r\\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);\\n}\\n.scroll-bottom-btn svg[data-v-9693c11e] {\\r\\n color: #4e5969;\\n}\\n.scroll-bottom-btn[data-v-9693c11e]:hover {\\r\\n transform: scale(1.1);\\n}\\n.loading-circle[data-v-9693c11e] {\\r\\n position: absolute;\\r\\n inset: 3px;\\r\\n border-radius: 50%;\\r\\n border: 1.5px solid transparent;\\r\\n border-top: 1.5px solid #1677ff;\\r\\n -webkit-animation: circle-spin-data-v-9693c11e 1.5s linear infinite;\\r\\n animation: circle-spin-data-v-9693c11e 1.5s linear infinite;\\n}\\n@-webkit-keyframes circle-spin-data-v-9693c11e {\\nfrom {\\r\\n transform: rotate(0deg);\\n}\\nto {\\r\\n transform: rotate(360deg);\\n}\\n}\\n@keyframes circle-spin-data-v-9693c11e {\\nfrom {\\r\\n transform: rotate(0deg);\\n}\\nto {\\r\\n transform: rotate(360deg);\\n}\\n}\\n.chat-textarea[data-v-9693c11e] {\\r\\n flex: 1;\\r\\n border: none;\\r\\n outline: none;\\r\\n background: transparent;\\r\\n resize: none;\\r\\n font-size: 16px;\\r\\n line-height: 24px;\\r\\n min-height: 38px;\\r\\n height: 100px;\\r\\n max-height: 100px;\\r\\n overflow-y: auto;\\r\\n padding: 0;\\r\\n box-sizing: border-box;\\r\\n font-family: inherit;\\r\\n color: #333;\\r\\n flex: 1 1 320px;\\r\\n min-width: 0;\\n}\\n.chat-textarea[data-v-9693c11e]::-moz-placeholder {\\r\\n color: #999;\\r\\n font-size: 16px;\\n}\\n.chat-textarea[data-v-9693c11e]:-ms-input-placeholder {\\r\\n color: #999;\\r\\n font-size: 16px;\\n}\\n.chat-textarea[data-v-9693c11e]::placeholder {\\r\\n color: #999;\\r\\n font-size: 16px;\\n}\\n.send-btn[data-v-9693c11e] {\\r\\n width: auto;\\r\\n height: 40px;\\r\\n padding: 0 21px;\\r\\n border-radius: 6px;\\r\\n border: none;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\r\\n transition: all 0.2s;\\r\\n background: #1677ff;\\r\\n color: #fff;\\r\\n font-size: 14px;\\n}\\n.send-btn svg[data-v-9693c11e] {\\r\\n display: none;\\n}\\n.send-btn[data-v-9693c11e]::after {\\r\\n content: \\\"发送\\\";\\n}\\n.send-btn.active[data-v-9693c11e] {\\r\\n background: #1677ff;\\n}\\n.send-btn.active[data-v-9693c11e]:hover {\\r\\n background: #4096ff;\\n}\\n.send-btn[data-v-9693c11e]:disabled {\\r\\n background: #88bfff;\\r\\n cursor: not-allowed;\\n}\\n.stop-btn[data-v-9693c11e] {\\r\\n width: 35px;\\r\\n height: 35px;\\r\\n border-radius: 50%;\\r\\n border: none;\\r\\n cursor: pointer;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: #ff4d4f;\\r\\n color: #fff;\\r\\n flex-shrink: 0;\\r\\n transition: all 0.2s;\\n}\\n.stop-btn[data-v-9693c11e]:hover {\\r\\n background: #ff7875;\\n}\\r\\n\\r\\n/* ── Voice ── */\\n.voice-btn[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n min-width: 36px;\\r\\n border: none;\\r\\n background: transparent;\\r\\n border-radius: 50%;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\r\\n transition: background 0.2s;\\r\\n padding: 0;\\n}\\n.voice-btn[data-v-9693c11e]:active {\\r\\n background: rgba(0,0,0,0.05);\\n}\\n.voice-btn[data-v-9693c11e]:disabled {\\r\\n opacity: 0.4;\\r\\n cursor: not-allowed;\\n}\\n.hold-talk-btn[data-v-9693c11e] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n gap: 6px;\\r\\n height: 36px;\\r\\n min-height: 36px;\\r\\n margin: 0 4px;\\r\\n border-radius: 18px;\\r\\n background: #EBEBEB;\\r\\n border: none;\\r\\n font-size: 14px;\\r\\n color: #666;\\r\\n cursor: pointer;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n -webkit-user-select: none;\\r\\n transition: background 0.15s;\\n}\\n.hold-talk-btn[data-v-9693c11e]:active {\\r\\n background: #ddd;\\n}\\n.hold-talk-btn.recording[data-v-9693c11e] {\\r\\n background: #e8f0fe;\\r\\n color: #333;\\n}\\n.hold-talk-btn .hold-talk-icon[data-v-9693c11e] {\\r\\n flex-shrink: 0;\\n}\\r\\n\\r\\n/* ── Voice Recording Overlay ── */\\n.voice-recording-overlay[data-v-9693c11e] {\\r\\n position: fixed;\\r\\n left: 0;\\r\\n right: 0;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n z-index: 1000;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: rgba(0,0,0,0.35);\\r\\n -webkit-animation: fadeIn-data-v-9693c11e 0.15s ease;\\r\\n animation: fadeIn-data-v-9693c11e 0.15s ease;\\n}\\n.voice-recording-card[data-v-9693c11e] {\\r\\n width: 200px;\\r\\n padding: 32px 24px 24px;\\r\\n background: #fff;\\r\\n border-radius: 20px;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n gap: 16px;\\r\\n box-shadow: 0 8px 32px rgba(0,0,0,0.15);\\n}\\n.voice-recording-wave[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 4px;\\r\\n height: 40px;\\n}\\n.voice-recording-wave span[data-v-9693c11e] {\\r\\n width: 4px;\\r\\n background: #1677ff;\\r\\n border-radius: 2px;\\r\\n -webkit-animation: waveAnim-data-v-9693c11e 0.6s ease-in-out infinite alternate;\\r\\n animation: waveAnim-data-v-9693c11e 0.6s ease-in-out infinite alternate;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(1) { height: 16px; -webkit-animation-delay: 0s; animation-delay: 0s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(2) { height: 28px; -webkit-animation-delay: 0.1s; animation-delay: 0.1s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(3) { height: 40px; -webkit-animation-delay: 0.2s; animation-delay: 0.2s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(4) { height: 28px; -webkit-animation-delay: 0.3s; animation-delay: 0.3s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(5) { height: 16px; -webkit-animation-delay: 0.4s; animation-delay: 0.4s;\\n}\\n@-webkit-keyframes waveAnim-data-v-9693c11e {\\n0% { transform: scaleY(0.6);\\n}\\n100% { transform: scaleY(1);\\n}\\n}\\n@keyframes waveAnim-data-v-9693c11e {\\n0% { transform: scaleY(0.6);\\n}\\n100% { transform: scaleY(1);\\n}\\n}\\n.voice-recording-duration[data-v-9693c11e] {\\r\\n font-size: 32px;\\r\\n font-weight: 600;\\r\\n color: #333;\\r\\n line-height: 1;\\n}\\n.voice-recording-duration .unit[data-v-9693c11e] {\\r\\n font-size: 18px;\\r\\n font-weight: 400;\\r\\n color: #999;\\r\\n margin-left: 2px;\\n}\\n.voice-recording-hint[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 4px;\\r\\n font-size: 13px;\\r\\n color: #999;\\n}\\n.voice-recording-hint.cancel[data-v-9693c11e] {\\r\\n color: #ff4d4f;\\n}\\n@-webkit-keyframes fadeIn-data-v-9693c11e {\\nfrom { opacity: 0;\\n}\\nto { opacity: 1;\\n}\\n}\\n@keyframes fadeIn-data-v-9693c11e {\\nfrom { opacity: 0;\\n}\\nto { opacity: 1;\\n}\\n}\\r\\n\\r\\n/* ── Chat Agent Avatar ── */\\n.chat-agent-avatar-wrapper div[data-v-9693c11e] {\\r\\n width: 44px;\\r\\n height: 44px;\\n}\\r\\n\\r\\n/* ── Agent List Avatar ── */\\n.agent-list-avatar[data-v-9693c11e] {\\r\\n background-repeat: no-repeat;\\r\\n background-position: center;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #fff;\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\r\\n border-radius: 8px;\\n}\\n.agent-list-avatar.has-agent-img[data-v-9693c11e] {\\r\\n width: 97px;\\r\\n height: 126px;\\r\\n background-size: cover;\\n}\\n.agent-list-avatar[data-v-9693c11e]:not(.has-agent-img) {\\r\\n width: 76px;\\r\\n height: 108px;\\r\\n transform: translateX(9px);\\n}\\n.session-avatar[data-v-9693c11e] {\\r\\n width: 44px !important;\\r\\n height: 44px !important;\\r\\n border-radius: 50% !important;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 16px !important;\\r\\n font-weight: 600;\\r\\n color: #fff;\\r\\n flex-shrink: 0;\\r\\n overflow: hidden;\\n}\\n.avatar-pic[data-v-9693c11e] {\\r\\n width: 85%;\\r\\n height: 85%;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\n}\\r\\n\\r\\n/* ── Mobile Buttons ── */\\n.mobile-menu-btn[data-v-9693c11e],\\r\\n.mobile-back-btn[data-v-9693c11e],\\r\\n.mobile-header-btn[data-v-9693c11e] {\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border: none;\\r\\n border-radius: 10px;\\r\\n background: #f5f7fa;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\n}\\n.mobile-menu-btn i[data-v-9693c11e],\\r\\n.mobile-back-btn i[data-v-9693c11e],\\r\\n.mobile-header-btn i[data-v-9693c11e] {\\r\\n font-size: 18px;\\n}\\n.mobile-back-btn i[data-v-9693c11e] {\\r\\n font-size: 20px;\\r\\n font-weight: 600;\\n}\\r\\n/* ── 聊天空白欢迎页(匹配蓝湖移动端聊天首页) ── */\\n.chat-empty-welcome[data-v-9693c11e] {\\r\\n width: 100%;\\r\\n padding: 40px 20px;\\r\\n box-sizing: border-box;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n gap: 0px;\\r\\n max-width: 600px;\\r\\n margin: 80px auto;\\n}\\r\\n\\r\\n/* 顶部渐变欢迎卡片 */\\n.welcome-card[data-v-9693c11e] {\\r\\n position: relative;\\r\\n background: linear-gradient(296deg, #D6EDFF 20%, #E8EBFF 80%);\\r\\nborder-radius: 16px 16px 0px 0px;\\r\\n padding: 24px 24px 24px 150px;\\r\\n overflow: visible;\\n}\\r\\n/* 左侧探出头像容器 */\\n.welcome-avatar-box[data-v-9693c11e] {\\r\\n position: absolute;\\r\\n left: 15px;\\r\\n bottom: 0px;\\r\\n width: 110px;\\r\\n height: 137px;\\n}\\n.welcome-avatar[data-v-9693c11e] {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n border-radius: 12px;\\r\\n background-size: cover;\\r\\n background-position: center;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 20px;\\r\\n color: #fff;\\r\\n font-weight: 600;\\n}\\n.welcome-avatar.has-chat-agent-img[data-v-9693c11e] {\\r\\n background: transparent;\\r\\n background-repeat: no-repeat;\\r\\n background-position: center;\\n}\\n.welcome-text-group[data-v-9693c11e] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n gap: 6px;\\n}\\n.welcome-text-group .text-sm[data-v-9693c11e] {\\r\\nfont-weight: 400;font-size: 12px;color: #666666;\\r\\ntext-align: left;\\r\\nfont-style: normal;\\n}\\n.welcome-text-group .text-lg[data-v-9693c11e] {\\r\\n \\r\\n font-weight: 500;\\r\\nfont-size: 16px;\\r\\ncolor: #000000;\\n}\\r\\n\\r\\n/* 猜你想问容器 */\\n.guess-box[data-v-9693c11e] {\\r\\n border-top: 1px solid #fff;\\r\\n background: linear-gradient(180deg, #B8DCFF 0%, #DFF0FF 50%, #FFFFFF 100%);\\r\\n border-radius: 0 0 16px 16px;\\r\\n padding: 20px;\\n}\\n.guess-title[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 6px;\\r\\n font-size: 16px;\\r\\n font-weight: 500;\\r\\n color: #222;\\r\\n margin-bottom: 16px;\\n}\\n.tag-wrap[data-v-9693c11e] {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n gap: 10px;\\n}\\n.quick-tag[data-v-9693c11e] {\\r\\n padding: 8px 14px;\\r\\n background: #F2FAFF;\\r\\n border-radius: 8px;\\r\\n font-size: 14px;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n border: 1px solid #e0eaff;\\r\\n transition: all 0.2s;\\r\\n white-space: nowrap;\\n}\\r\\n/* .quick-tag:hover {\\r\\n background: #f0f7ff;\\r\\n border-color: #1677ff;\\r\\n} */\\n.chat-agent-avatar-wrapper div[data-v-9693c11e]{\\r\\n width: 44px;\\r\\n height: 44px;\\n}\\r\\n/* ── Responsive ── */\\n@media screen and (max-width: 768px) {\\n.chat-header[data-v-9693c11e] {\\r\\n padding: 10px 12px;\\r\\n background: transparent;\\r\\n border-bottom: none;\\n}\\n.chat-header .chat-agent-avatar-wrapper[data-v-9693c11e] {\\r\\n display: none;\\n}\\n.chat-header .agent-desc[data-v-9693c11e] {\\r\\n display: none;\\n}\\n.chat-header .header-left[data-v-9693c11e] {\\r\\n flex: 1;\\r\\n justify-content: center;\\r\\n position: relative;\\n}\\n.chat-header .header-left .mobile-back-btn[data-v-9693c11e] {\\r\\n position: absolute;\\r\\n left: 12px;\\r\\n background: transparent;\\n}\\n.chat-header .header-actions .mobile-header-btn[data-v-9693c11e] {\\r\\n background: transparent;\\n}\\n.chat-body[data-v-9693c11e] {\\r\\n padding: 12px;\\r\\n background-position: center top;\\n}\\n.msg-row[data-v-9693c11e] {\\r\\n padding: 12px 0;\\n}\\n.msg-main[data-v-9693c11e] {\\r\\n width: 100% !important;\\r\\n max-width: 100%;\\n}\\n.bubble[data-v-9693c11e] {\\r\\n font-size: 14px;\\n}\\n.bubble.user[data-v-9693c11e] {\\r\\n max-width: 88%;\\n}\\n.chat-footer[data-v-9693c11e] {\\r\\n padding: 12px;\\r\\n flex-shrink: 0;\\r\\n background: #f5f5f5;\\r\\n box-sizing: border-box;\\n}\\r\\n /* 安全区域由 .chat-footer 统一处理,.chat-body 不需要重复加 padding */\\n.input-area[data-v-9693c11e] {\\r\\n width: 100% !important;\\r\\n margin: 0;\\r\\n padding: 6px 6px 6px 4px;\\r\\n border-radius: 24px;\\r\\n border: none;\\r\\n background: #f5f5f5;\\r\\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\\r\\n flex-wrap: nowrap;\\r\\n align-items: center;\\n}\\n.input-area[data-v-9693c11e]:focus-within {\\r\\n border-color: transparent;\\r\\n background: #f5f5f5;\\r\\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\\n}\\n.input-area[data-v-9693c11e]::after {\\r\\n display: none;\\n}\\n.voice-btn[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n min-width: 36px;\\r\\n border: none;\\r\\n background: transparent;\\r\\n border-radius: 50%;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\r\\n transition: background 0.2s;\\r\\n padding: 0;\\n}\\n.voice-btn[data-v-9693c11e]:active {\\r\\n background: rgba(0,0,0,0.05);\\n}\\n.voice-btn[data-v-9693c11e]:disabled {\\r\\n opacity: 0.4;\\r\\n cursor: not-allowed;\\n}\\n.chat-textarea[data-v-9693c11e] {\\r\\n flex: 1;\\r\\n flex-basis: 0;\\r\\n height: 36px;\\r\\n min-height: 36px;\\r\\n max-height: 100px;\\r\\n font-size: 15px;\\r\\n background: #EBEBEB;\\r\\n border-radius: 18px;\\r\\n padding: 0 14px;\\r\\n line-height: 36px;\\r\\n margin: 0 4px;\\r\\n color: #333;\\n}\\n.chat-textarea[data-v-9693c11e]::-moz-placeholder {\\r\\n color: #999;\\r\\n font-size: 15px;\\n}\\n.chat-textarea[data-v-9693c11e]:-ms-input-placeholder {\\r\\n color: #999;\\r\\n font-size: 15px;\\n}\\n.chat-textarea[data-v-9693c11e]::placeholder {\\r\\n color: #999;\\r\\n font-size: 15px;\\n}\\n.send-btn[data-v-9693c11e] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n min-width: 36px;\\r\\n padding: 0;\\r\\n border-radius: 50%;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: #1677ff;\\r\\n color: #fff;\\r\\n border: none;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\n}\\n.send-btn svg[data-v-9693c11e] {\\r\\n display: block;\\n}\\n.send-btn[data-v-9693c11e]::after {\\r\\n content: none;\\n}\\n.send-btn.active[data-v-9693c11e] {\\r\\n background: #1677ff;\\n}\\n.send-btn[data-v-9693c11e]:disabled {\\r\\n background: #88bfff;\\r\\n cursor: not-allowed;\\n}\\n.send-btn[data-v-9693c11e]:active {\\r\\n transform: scale(0.92);\\n}\\n.stop-btn[data-v-9693c11e] {\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n min-width: 36px;\\n}\\n.guess-box[data-v-9693c11e] {\\r\\n padding: 16px;\\n}\\r\\n\\r\\n /* H5 语音模式 */\\n.hold-talk-btn[data-v-9693c11e] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n gap: 6px;\\r\\n height: 36px;\\r\\n min-height: 36px;\\r\\n margin: 0 4px;\\r\\n border-radius: 18px;\\r\\n background: #EBEBEB;\\r\\n border: none;\\r\\n font-size: 14px;\\r\\n color: #666;\\r\\n cursor: pointer;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n -webkit-user-select: none;\\r\\n transition: background 0.15s;\\n}\\n.hold-talk-btn[data-v-9693c11e]:active {\\r\\n background: #ddd;\\n}\\n.hold-talk-btn.recording[data-v-9693c11e] {\\r\\n background: #e8f0fe;\\r\\n color: #333;\\n}\\n.hold-talk-btn .hold-talk-icon[data-v-9693c11e] {\\r\\n flex-shrink: 0;\\n}\\r\\n\\r\\n /* 语音录制浮层 */\\n.voice-recording-overlay[data-v-9693c11e] {\\r\\n position: fixed;\\r\\n left: 0;\\r\\n right: 0;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n z-index: 1000;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: rgba(0,0,0,0.35);\\r\\n -webkit-animation: fadeIn-data-v-9693c11e 0.15s ease;\\r\\n animation: fadeIn-data-v-9693c11e 0.15s ease;\\n}\\n.voice-recording-card[data-v-9693c11e] {\\r\\n width: 200px;\\r\\n padding: 32px 24px 24px;\\r\\n background: #fff;\\r\\n border-radius: 20px;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n gap: 16px;\\r\\n box-shadow: 0 8px 32px rgba(0,0,0,0.15);\\n}\\n.voice-recording-wave[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 4px;\\r\\n height: 40px;\\n}\\n.voice-recording-wave span[data-v-9693c11e] {\\r\\n width: 4px;\\r\\n background: #1677ff;\\r\\n border-radius: 2px;\\r\\n -webkit-animation: waveAnim-data-v-9693c11e 0.6s ease-in-out infinite alternate;\\r\\n animation: waveAnim-data-v-9693c11e 0.6s ease-in-out infinite alternate;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(1) { height: 16px; -webkit-animation-delay: 0s; animation-delay: 0s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(2) { height: 28px; -webkit-animation-delay: 0.1s; animation-delay: 0.1s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(3) { height: 40px; -webkit-animation-delay: 0.2s; animation-delay: 0.2s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(4) { height: 28px; -webkit-animation-delay: 0.3s; animation-delay: 0.3s;\\n}\\n.voice-recording-wave span[data-v-9693c11e]:nth-child(5) { height: 16px; -webkit-animation-delay: 0.4s; animation-delay: 0.4s;\\n}\\n@-webkit-keyframes waveAnim-data-v-9693c11e {\\n0% { transform: scaleY(0.6);\\n}\\n100% { transform: scaleY(1);\\n}\\n}\\n@keyframes waveAnim-data-v-9693c11e {\\n0% { transform: scaleY(0.6);\\n}\\n100% { transform: scaleY(1);\\n}\\n}\\n.voice-recording-duration[data-v-9693c11e] {\\r\\n font-size: 32px;\\r\\n font-weight: 600;\\r\\n color: #333;\\r\\n line-height: 1;\\n}\\n.voice-recording-duration .unit[data-v-9693c11e] {\\r\\n font-size: 18px;\\r\\n font-weight: 400;\\r\\n color: #999;\\r\\n margin-left: 2px;\\n}\\n.voice-recording-hint[data-v-9693c11e] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 4px;\\r\\n font-size: 13px;\\r\\n color: #999;\\n}\\n.voice-recording-hint.cancel[data-v-9693c11e] {\\r\\n color: #ff4d4f;\\n}\\n@-webkit-keyframes fadeIn-data-v-9693c11e {\\nfrom { opacity: 0;\\n}\\nto { opacity: 1;\\n}\\n}\\n@keyframes fadeIn-data-v-9693c11e {\\nfrom { opacity: 0;\\n}\\nto { opacity: 1;\\n}\\n}\\n}\\n@media screen and (max-width: 480px) {\\n.agent-name[data-v-9693c11e] {\\r\\n font-size: 14px;\\n}\\n.agent-desc[data-v-9693c11e] {\\r\\n max-width: calc(100vw - 132px);\\n}\\n.mobile-menu-btn[data-v-9693c11e],\\r\\n .mobile-header-btn[data-v-9693c11e] {\\r\\n width: 32px;\\r\\n height: 32px;\\n}\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1412
|
+
|
|
1413
|
+
/***/ }),
|
|
1414
|
+
|
|
1415
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css&":
|
|
1416
|
+
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1417
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css& ***!
|
|
1418
|
+
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1419
|
+
/*! no static exports found */
|
|
1420
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1421
|
+
|
|
1422
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\r\\n/* ── Sidebar ── */\\n.chat-sidebar[data-v-46646bec] {\\r\\n width: 300px;\\r\\n min-width: 300px;\\r\\n background: #fff;\\r\\n border-right: 1px solid #e8e8e8;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n overflow: hidden;\\n}\\n.sidebar-header[data-v-46646bec] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n padding: 14px 8px 14px 16px;\\r\\n border-bottom: 1px solid #e8e8e8;\\r\\n flex-shrink: 0;\\n}\\n.sidebar-header i[data-v-46646bec]{\\r\\n font-size: 20px;\\r\\n cursor: pointer;\\n}\\n.sidebar-header img[data-v-46646bec]{\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n cursor: pointer;\\n}\\n.sidebar-title[data-v-46646bec] {\\r\\n font-size: 15px;\\r\\n font-weight: 600;\\r\\n color: #333;\\n}\\n.sidebar-search[data-v-46646bec] {\\r\\n padding: 8px 16px;\\r\\n flex-shrink: 0;\\r\\n position: relative;\\r\\n z-index: 20;\\n}\\n.sidebar-search .search-wrap[data-v-46646bec] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n position: relative;\\n}\\n.sidebar-search .search-icon[data-v-46646bec] {\\r\\n position: absolute;\\r\\n left: 12px;\\r\\n flex-shrink: 0;\\r\\n pointer-events: none;\\n}\\n.sidebar-search .search-input[data-v-46646bec] {\\r\\n width: 100%;\\r\\n height: 32px;\\r\\n border-radius: 16px;\\r\\n background: #f5f5f5;\\r\\n border: 1px solid transparent;\\r\\n font-size: 13px;\\r\\n padding: 0 32px 0 34px;\\r\\n outline: none;\\r\\n box-sizing: border-box;\\r\\n transition: all 0.2s;\\n}\\n.sidebar-search .search-input[data-v-46646bec]:focus {\\r\\n background: #fff;\\r\\n border: 1px solid #1677ff;\\n}\\n.sidebar-search .search-clear[data-v-46646bec] {\\r\\n position: absolute;\\r\\n right: 10px;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\n}\\n.search-suggestions[data-v-46646bec] {\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: 16px;\\r\\n right: 16px;\\r\\n background: #fff;\\r\\n border: 1px solid #e8e8e8;\\r\\n border-radius: 8px;\\r\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\\r\\n z-index: 100;\\r\\n max-height: 240px;\\r\\n overflow-y: auto;\\r\\n margin-top: 4px;\\n}\\n.suggestion-item[data-v-46646bec] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n gap: 10px;\\r\\n padding: 10px 12px;\\r\\n cursor: pointer;\\r\\n transition: background 0.15s;\\n}\\n.suggestion-item[data-v-46646bec]:hover {\\r\\n background: #f5f7fa;\\n}\\n.suggestion-avatar[data-v-46646bec] {\\r\\n width: 28px;\\r\\n height: 28px;\\r\\n border-radius: 6px;\\r\\n background: linear-gradient(135deg, #1677ff, #4096ff);\\r\\n color: #fff;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n flex-shrink: 0;\\n}\\n.suggestion-name[data-v-46646bec] {\\r\\n font-size: 14px;\\r\\n font-weight: 500;\\r\\n color: #333;\\r\\n white-space: nowrap;\\n}\\n.suggestion-desc[data-v-46646bec] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\n}\\n.sidebar-list[data-v-46646bec] {\\r\\n flex: 1;\\r\\n overflow-y: auto;\\r\\n padding: 8px 0;\\n}\\n.session-item[data-v-46646bec] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n padding: 6px 16px;\\r\\n padding-bottom: 10px;\\r\\n cursor: pointer;\\r\\n border-bottom: 1px solid #f5f5f5;\\r\\n transition: background 0.15s;\\r\\n position: relative;\\r\\n gap: 10px;\\r\\n border-radius: 4px;\\r\\n touch-action: manipulation;\\r\\n -webkit-touch-callout: none;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\n}\\n.session-left-item[data-v-46646bec] {\\r\\n margin-left: 5px;\\n}\\n.session-item[data-v-46646bec]:hover {\\r\\n background: #f5f7fa;\\n}\\n.session-item.active[data-v-46646bec] {\\r\\n background: #F5F5F5;\\n}\\n.session-avatar[data-v-46646bec] {\\r\\n width: 44px !important;\\r\\n height: 44px !important;\\r\\n border-radius: 50% !important;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n font-size: 16px !important;\\r\\n font-weight: 600;\\r\\n color: #fff;\\r\\n flex-shrink: 0;\\r\\n overflow: hidden;\\n}\\n.avatar-pic[data-v-46646bec] {\\r\\n width: 85%;\\r\\n height: 85%;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\n}\\n.session-info[data-v-46646bec] {\\r\\n flex: 1;\\r\\n min-width: 0;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\n}\\n.session-agent[data-v-46646bec] {\\r\\n font-size: 15px;\\r\\n font-weight: 500;\\r\\n color: #333;\\r\\n margin-bottom: 2px;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\n}\\n.session-preview[data-v-46646bec] {\\r\\n font-size: 12px;\\r\\n color: #999;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\n}\\n.session-time[data-v-46646bec] {\\r\\n font-size: 11px;\\r\\n color: #bbb;\\r\\n flex-shrink: 0;\\r\\n margin-left: 8px;\\r\\n margin-right: 4px;\\n}\\n.session-delete[data-v-46646bec] {\\r\\n position: absolute;\\r\\n right: 4px;\\r\\n top: 20px;\\r\\n transform: translateY(-50%);\\r\\n opacity: 0;\\r\\n transition: opacity 0.15s;\\r\\n width: 28px;\\r\\n height: 28px;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n border: none;\\r\\n background: transparent;\\r\\n padding: 0;\\r\\n color: #333;\\r\\n cursor: pointer;\\n}\\n.session-delete svg[data-v-46646bec] {\\r\\n color: #333;\\n}\\n.session-item:hover .session-delete[data-v-46646bec] {\\r\\n opacity: 1;\\n}\\n.sidebar-loading[data-v-46646bec] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #bbb;\\r\\n font-size: 14px;\\r\\n padding-bottom: 40px;\\r\\n gap: 12px;\\n}\\n.sidebar-loading .loading-spinner[data-v-46646bec] {\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n border: 2.5px solid #e8e8e8;\\r\\n border-top-color: #1677ff;\\r\\n border-radius: 50%;\\r\\n -webkit-animation: sidebar-spin-data-v-46646bec 0.7s linear infinite;\\r\\n animation: sidebar-spin-data-v-46646bec 0.7s linear infinite;\\n}\\n@-webkit-keyframes sidebar-spin-data-v-46646bec {\\nto { transform: rotate(360deg);\\n}\\n}\\n@keyframes sidebar-spin-data-v-46646bec {\\nto { transform: rotate(360deg);\\n}\\n}\\n.sidebar-empty[data-v-46646bec] {\\r\\n flex: 1;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #bbb;\\r\\n font-size: 14px;\\r\\n padding-bottom: 40px;\\n}\\n.empty-icon[data-v-46646bec] {\\r\\n font-size: 36px;\\r\\n margin-bottom: 8px;\\n}\\n.empty-hint[data-v-46646bec] {\\r\\n font-size: 12px;\\r\\n color: #d9d9d9;\\r\\n margin-top: 4px;\\n}\\r\\n\\r\\n/* agent-list-avatar base */\\n.agent-list-avatar[data-v-46646bec] {\\r\\n background-repeat: no-repeat;\\r\\n background-position: center;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n color: #fff;\\r\\n font-size: 22px;\\r\\n font-weight: 600;\\r\\n border-radius: 8px;\\r\\n width: 92px;\\r\\n height: 106px;\\n}\\n.agent-list-avatar.has-agent-img[data-v-46646bec] {\\r\\n background-size: cover;\\n}\\r\\n\\r\\n/* suggestion-avatar overrides */\\n.suggestion-avatar[data-v-46646bec] {\\r\\n width: 28px !important;\\r\\n height: 28px !important;\\r\\n border-radius: 8px !important;\\r\\n font-size: 12px !important;\\r\\n font-weight: 600;\\r\\n flex-shrink: 0;\\n}\\r\\n\\r\\n/* Desktop responsive */\\n.chat-sidebar[data-v-46646bec] {\\r\\n width: min(300px, 32vw);\\n}\\r\\n\\r\\n/* ── Mobile (max-width: 768px) ── */\\n@media screen and (max-width: 768px) {\\n.chat-sidebar[data-v-46646bec] {\\r\\n position: absolute;\\r\\n inset: 0 auto 0 0;\\r\\n width: min(82vw, 320px);\\r\\n min-width: auto;\\r\\n max-width: 320px;\\r\\n height: 100%;\\r\\n border-right: none;\\r\\n transform: translateX(-100%);\\r\\n transition: transform 0.24s ease;\\n}\\n.chat-sidebar.open[data-v-46646bec] {\\r\\n transform: translateX(0);\\n}\\n.sidebar-back-btn[data-v-46646bec] {\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n border: none;\\r\\n border-radius: 10px;\\r\\n background: transparent;\\r\\n color: #333;\\r\\n cursor: pointer;\\r\\n flex-shrink: 0;\\r\\n position: absolute;\\r\\n left: 8px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n padding: 0;\\n}\\n.sidebar-back-btn svg[data-v-46646bec] {\\r\\n display: block;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar[data-v-46646bec] {\\r\\n position: relative !important;\\r\\n width: 100% !important;\\r\\n max-width: 100% !important;\\r\\n min-width: 100% !important;\\r\\n height: 100%;\\r\\n transform: translateX(0) !important;\\r\\n box-shadow: none !important;\\r\\n border-right: none;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header[data-v-46646bec] {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n padding: 14px 16px;\\r\\n position: relative;\\r\\n border-bottom: none;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header img[data-v-46646bec] {\\r\\n position: absolute;\\r\\n right: 16px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n width: 22px;\\r\\n height: 22px;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\r\\n cursor: pointer;\\n}\\n.session-delete[data-v-46646bec] {\\r\\n display: none;\\n}\\r\\n\\r\\n /* 搜索清除按钮放大触摸区域 */\\n.sidebar-search .search-clear[data-v-46646bec] {\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n padding: 12px;\\r\\n right: -2px;\\r\\n box-sizing: content-box;\\n}\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1423
|
+
|
|
1424
|
+
/***/ }),
|
|
1425
|
+
|
|
1426
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css&":
|
|
1427
|
+
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1428
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css& ***!
|
|
1429
|
+
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1430
|
+
/*! no static exports found */
|
|
1431
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1432
|
+
|
|
1433
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.chat-layout[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n background: #fff;\\r\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;\\r\\n position: relative;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\n}\\n.sidebar-mask[data-v-bf6d760c] {\\r\\n position: absolute;\\r\\n inset: 0;\\r\\n background: rgba(15, 23, 42, 0.28);\\r\\n z-index: 29;\\n}\\n.chat-layout.is-mobile[data-v-bf6d760c] {\\r\\n display: flex;\\r\\n height: 100%;\\n}\\n.chat-main[data-v-bf6d760c],\\r\\n.chat-body[data-v-bf6d760c] {\\r\\n min-height: 0;\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1434
|
+
|
|
1435
|
+
/***/ }),
|
|
1436
|
+
|
|
1437
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css&":
|
|
1438
|
+
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1439
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css& ***!
|
|
1440
|
+
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1441
|
+
/*! no static exports found */
|
|
1442
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1443
|
+
|
|
1444
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\r\\n/* H5 列表模式:侧边栏全屏展示 */\\n.chat-layout.h5-list-mode .chat-sidebar {\\r\\n position: relative !important;\\r\\n width: 100% !important;\\r\\n max-width: 100% !important;\\r\\n min-width: 100% !important;\\r\\n height: 100%;\\r\\n transform: translateX(0) !important;\\r\\n box-shadow: none !important;\\r\\n border-right: none;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n padding: 14px 16px;\\r\\n position: relative;\\n}\\n.chat-layout.h5-list-mode .chat-sidebar .sidebar-header img {\\r\\n position: absolute;\\r\\n right: 16px;\\r\\n top: 50%;\\r\\n transform: translateY(-50%);\\r\\n width: 22px;\\r\\n height: 22px;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\r\\n cursor: pointer;\\n}\\n@media screen and (max-width: 768px) {\\n.chat-sidebar {\\r\\n position: absolute;\\r\\n inset: 0 auto 0 0;\\r\\n width: min(82vw, 320px);\\r\\n min-width: auto;\\r\\n max-width: 320px;\\r\\n height: 100%;\\r\\n border-right: none;\\r\\n box-shadow: 8px 0 24px rgba(15, 23, 42, 0.12);\\r\\n transform: translateX(-100%);\\r\\n transition: transform 0.24s ease;\\n}\\n.chat-sidebar.open {\\r\\n transform: translateX(0);\\n}\\n}\\r\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1445
|
+
|
|
1446
|
+
/***/ }),
|
|
1447
|
+
|
|
1448
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true&":
|
|
1449
|
+
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1450
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true& ***!
|
|
1451
|
+
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1452
|
+
/*! no static exports found */
|
|
1453
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1454
|
+
|
|
1455
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.zj-style[data-v-7ee21de6] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-7ee21de6] {\\n font-family: \\\"Microsoft YaHei\\\", \\\"微软雅黑\\\", \\\"宋体\\\", helvetica, \\\"Hiragino Sans GB\\\", MicrosoftYaHei;\\n -ms-text-size-adjust: 100%;\\n -webkit-text-size-adjust: 100%;\\n margin: 0 !important;\\n font-size: 14px;\\n background: #ffffff;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-7ee21de6]::after {\\n content: \\\"020\\\";\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-7ee21de6] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-7ee21de6] {\\n speak: none;\\n font-style: normal;\\n font-weight: 400;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n vertical-align: baseline;\\n display: inline-block;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.zjkf-scrollbar[data-v-7ee21de6] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-7ee21de6] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-7ee21de6] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-7ee21de6] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-7ee21de6] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-7ee21de6] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-7ee21de6] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-7ee21de6],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-7ee21de6]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-7ee21de6]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-7ee21de6]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zj-chat-msg[data-v-7ee21de6] {\\n min-width: 380px;\\n max-width: 80%;\\n box-sizing: border-box;\\n border: 1px solid #ebeef5;\\n position: absolute;\\n left: 50%;\\n top: -46px;\\n transform: translateX(-50%);\\n background-color: #edf2fc;\\n transition: opacity 0.3s, transform 0.4s, top 0.4s;\\n padding: 15px 15px 15px 20px;\\n border-radius: 4px;\\n overflow: hidden;\\n z-index: 2000;\\n}\\n.zj-chat-msg.actived[data-v-7ee21de6] {\\n top: 60px;\\n}\\n.zj-chat-msg.chat-msg--success[data-v-7ee21de6] {\\n background-color: #f0f9eb;\\n border-color: #e1f3d8;\\n}\\n.zj-chat-msg.chat-msg--success .msg[data-v-7ee21de6] {\\n color: #67c23a;\\n}\\n.zj-chat-msg.chat-msg--error[data-v-7ee21de6] {\\n background-color: #fef0f0;\\n border-color: #fde2e2;\\n}\\n.zj-chat-msg.chat-msg--error .msg[data-v-7ee21de6] {\\n color: #f56c6c;\\n}\\n.zj-chat-msg .msg[data-v-7ee21de6] {\\n padding: 0;\\n font-size: 14px;\\n line-height: 1;\\n color: #909399;\\n}\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/ChatToast/chatToast.vue?./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1456
|
+
|
|
1457
|
+
/***/ }),
|
|
1458
|
+
|
|
1459
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true&":
|
|
1460
|
+
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1461
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true& ***!
|
|
1462
|
+
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1463
|
+
/*! no static exports found */
|
|
1464
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1465
|
+
|
|
1466
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.zj-style[data-v-439f4726] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-439f4726] {\\n font-family: \\\"Microsoft YaHei\\\", \\\"微软雅黑\\\", \\\"宋体\\\", helvetica, \\\"Hiragino Sans GB\\\", MicrosoftYaHei;\\n -ms-text-size-adjust: 100%;\\n -webkit-text-size-adjust: 100%;\\n margin: 0 !important;\\n font-size: 14px;\\n background: #ffffff;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-439f4726]::after {\\n content: \\\"020\\\";\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-439f4726] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-439f4726] {\\n speak: none;\\n font-style: normal;\\n font-weight: 400;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n vertical-align: baseline;\\n display: inline-block;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.zjkf-scrollbar[data-v-439f4726] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-439f4726] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-439f4726] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-439f4726] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-439f4726] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-439f4726] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-439f4726] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-439f4726],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-439f4726]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-439f4726]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-439f4726]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zj-comments-panel[data-v-439f4726] {\\n z-index: 9;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: rgba(0, 0, 0, 0.4);\\n}\\n.zj-comments-panel .__wrapper[data-v-439f4726] {\\n height: 450px;\\n background-color: #ffffff;\\n animation: slideUp-data-v-439f4726 0.4s ease;\\n -webkit-animation: slideUp-data-v-439f4726 0.4s ease;\\n -moz-animation: slideUp-data-v-439f4726 0.4s ease;\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n}\\n@-webkit-keyframes slideUp-data-v-439f4726 {\\nfrom {\\n transform: translateY(100%);\\n opacity: 0;\\n}\\nto {\\n transform: translateY(0);\\n opacity: 1;\\n}\\n}\\n@keyframes slideUp-data-v-439f4726 {\\nfrom {\\n transform: translateY(100%);\\n opacity: 0;\\n}\\nto {\\n transform: translateY(0);\\n opacity: 1;\\n}\\n}\\n.zj-comments-panel > .__wrapper .header[data-v-439f4726] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n height: 40px;\\n background-color: #f2f2f2;\\n padding: 0 23px 0 32px;\\n}\\n.zj-comments-panel > .__wrapper .header .tit[data-v-439f4726] {\\n font-size: 16px;\\n font-family: MicrosoftYaHei;\\n color: #333333;\\n}\\n.zj-comments-panel > .__wrapper .header .el-button.close[data-v-439f4726] {\\n border: none;\\n background: unset;\\n color: #000000;\\n font-weight: bold;\\n padding: 5px 0;\\n}\\n.zj-comments-panel > .__wrapper .header .el-button.close i.zj-iconfont[data-v-439f4726] {\\n font-weight: bold;\\n}\\n.zj-comments-panel > .__wrapper .body[data-v-439f4726] {\\n padding: 10px 32px;\\n box-sizing: border-box;\\n}\\n.zj-comments-panel > .__wrapper .comm-res[data-v-439f4726] {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n height: 90%;\\n}\\n.zj-comments-panel > .__wrapper .comm-res img[data-v-439f4726] {\\n width: 15%;\\n}\\n.zj-comments-panel > .__wrapper .comm-res p[data-v-439f4726] {\\n font-size: 14px;\\n color: #333333;\\n margin-top: 16px;\\n}\\n.zj-comments-panel > .__wrapper .comm-res .close-btn[data-v-439f4726] {\\n padding: 8px 17px;\\n border-radius: 2px;\\n position: absolute;\\n bottom: 30px;\\n right: 32px;\\n}\\n.zj-comments-panel > .__wrapper .desc[data-v-439f4726] {\\n padding: 10px 0;\\n font-size: 13px;\\n font-family: MicrosoftYaHei;\\n color: #666666;\\n}\\n.zj-comments-panel > .__wrapper .c-form[data-v-439f4726] {\\n padding: 10px 0;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] {\\n margin-bottom: 15px !important;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] .el-form-item__label {\\n text-align: left;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] .el-form-item__content .o-select,\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] .el-form-item__content .el-input {\\n width: 100%;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] .el-form-item__content .o-select {\\n background-color: rgb(255, 255, 255);\\n border-radius: 4px;\\n border: 1px solid rgb(220, 223, 230);\\n box-sizing: border-box;\\n color: rgb(96, 98, 102);\\n display: inline-block;\\n font-size: inherit;\\n height: 30px;\\n line-height: 30px;\\n outline: 0px;\\n padding: 0px 10px;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] .el-form-item__content .el-textarea {\\n padding-top: 5px;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] .el-form-item__content .el-input__inner {\\n height: 30px;\\n line-height: 30px;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item[data-v-439f4726] .el-form-item__content .el-cascader {\\n width: 100%;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item.sub-item[data-v-439f4726] {\\n margin-top: 20px;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item.sub-item[data-v-439f4726] .el-form-item__content {\\n margin-left: 0 !important;\\n text-align: right;\\n}\\n.zj-comments-panel > .__wrapper .c-form .el-form-item.sub-item[data-v-439f4726] .el-form-item__content .el-button {\\n padding: 8px 17px;\\n border-radius: 2px;\\n}\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/CommentPanel/commentPanel.vue?./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1467
|
+
|
|
1468
|
+
/***/ }),
|
|
1469
|
+
|
|
1470
|
+
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true&":
|
|
1471
|
+
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
1472
|
+
!*** ./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true& ***!
|
|
1473
|
+
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
1474
|
+
/*! no static exports found */
|
|
1475
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1476
|
+
|
|
1477
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.zj-style[data-v-613edc2b] {\\n position: relative;\\n overflow: hidden;\\n}\\n.zjkf__root.zjkf-body[data-v-613edc2b] {\\n font-family: \\\"Microsoft YaHei\\\", \\\"微软雅黑\\\", \\\"宋体\\\", helvetica, \\\"Hiragino Sans GB\\\", MicrosoftYaHei;\\n -ms-text-size-adjust: 100%;\\n -webkit-text-size-adjust: 100%;\\n margin: 0 !important;\\n font-size: 14px;\\n background: #ffffff;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b]::after {\\n content: \\\"020\\\";\\n display: block;\\n height: 0;\\n clear: both;\\n visibility: hidden;\\n}\\n.zjkf__root.zjkf-body .clearfix[data-v-613edc2b] {\\n zoom: 1;\\n}\\n.zjkf__root.zjkf-body i.zj-iconfont[data-v-613edc2b] {\\n speak: none;\\n font-style: normal;\\n font-weight: 400;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n vertical-align: baseline;\\n display: inline-block;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-button {\\n display: none !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-thumb {\\n border-radius: 3px !important;\\n background: #dddfe0 !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track {\\n width: 7px !important;\\n height: 7px !important;\\n}\\n.zjkf-scrollbar[data-v-613edc2b] ::-webkit-scrollbar-track-piece {\\n background: transparent !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary[data-v-613edc2b] {\\n background: #0074fd !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button.el-button--primary.is-plain[data-v-613edc2b] {\\n color: #0074fd !important;\\n background: #ffffff !important;\\n border-color: #0074fd !important;\\n}\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b],\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:active,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:focus,\\n.zjkf-common-e-ui .el-button--primary.is-disabled[data-v-613edc2b]:hover {\\n color: #fff !important;\\n background-color: #a0cfff !important;\\n border-color: #a0cfff !important;\\n}\\n.zjkf__root[data-v-613edc2b] {\\n height: 100%;\\n overflow: hidden;\\n background: transparent;\\n z-index: 2001;\\n}\\n.zjkf-slide-in-enter-active[data-v-613edc2b] {\\n transition: all 0.3s ease;\\n}\\n.zjkf-slide-in-leave-active[data-v-613edc2b] {\\n transition: all 0.3s ease-out;\\n}\\n.zjkf-slide-in-enter[data-v-613edc2b],\\n.zjkf-slide-in-leave-to[data-v-613edc2b] {\\n transform: translateY(10%);\\n opacity: 0;\\n}\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
1478
|
+
|
|
1479
|
+
/***/ }),
|
|
1480
|
+
|
|
1481
|
+
/***/ "./node_modules/css-loader/dist/runtime/api.js":
|
|
1482
|
+
/*!*****************************************************!*\
|
|
1483
|
+
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
|
|
1484
|
+
\*****************************************************/
|
|
1485
|
+
/*! no static exports found */
|
|
1486
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1487
|
+
|
|
1488
|
+
"use strict";
|
|
1489
|
+
eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/css-loader/dist/runtime/api.js?");
|
|
1490
|
+
|
|
1491
|
+
/***/ }),
|
|
1492
|
+
|
|
1493
|
+
/***/ "./node_modules/css-loader/dist/runtime/getUrl.js":
|
|
1494
|
+
/*!********************************************************!*\
|
|
1495
|
+
!*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!
|
|
1496
|
+
\********************************************************/
|
|
1497
|
+
/*! no static exports found */
|
|
1498
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1499
|
+
|
|
1500
|
+
"use strict";
|
|
1501
|
+
eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/css-loader/dist/runtime/getUrl.js?");
|
|
1502
|
+
|
|
1503
|
+
/***/ }),
|
|
1504
|
+
|
|
1348
1505
|
/***/ "./node_modules/esdk-obs-browserjs/index.js":
|
|
1349
1506
|
/*!**************************************************!*\
|
|
1350
1507
|
!*** ./node_modules/esdk-obs-browserjs/index.js ***!
|
|
@@ -10327,94 +10484,6 @@ eval("\n\n/* eslint-disable no-bitwise */\n\nconst decodeCache = {};\n\nfunction
|
|
|
10327
10484
|
|
|
10328
10485
|
/***/ }),
|
|
10329
10486
|
|
|
10330
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css&":
|
|
10331
|
-
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10332
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css& ***!
|
|
10333
|
-
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10334
|
-
/*! no static exports found */
|
|
10335
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10336
|
-
|
|
10337
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10338
|
-
|
|
10339
|
-
/***/ }),
|
|
10340
|
-
|
|
10341
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css&":
|
|
10342
|
-
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10343
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css& ***!
|
|
10344
|
-
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10345
|
-
/*! no static exports found */
|
|
10346
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10347
|
-
|
|
10348
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10349
|
-
|
|
10350
|
-
/***/ }),
|
|
10351
|
-
|
|
10352
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css&":
|
|
10353
|
-
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10354
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css& ***!
|
|
10355
|
-
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10356
|
-
/*! no static exports found */
|
|
10357
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10358
|
-
|
|
10359
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10360
|
-
|
|
10361
|
-
/***/ }),
|
|
10362
|
-
|
|
10363
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css&":
|
|
10364
|
-
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10365
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css& ***!
|
|
10366
|
-
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10367
|
-
/*! no static exports found */
|
|
10368
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10369
|
-
|
|
10370
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10371
|
-
|
|
10372
|
-
/***/ }),
|
|
10373
|
-
|
|
10374
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css&":
|
|
10375
|
-
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10376
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css& ***!
|
|
10377
|
-
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10378
|
-
/*! no static exports found */
|
|
10379
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10380
|
-
|
|
10381
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10382
|
-
|
|
10383
|
-
/***/ }),
|
|
10384
|
-
|
|
10385
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true&":
|
|
10386
|
-
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10387
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true& ***!
|
|
10388
|
-
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10389
|
-
/*! no static exports found */
|
|
10390
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10391
|
-
|
|
10392
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/ChatToast/chatToast.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10393
|
-
|
|
10394
|
-
/***/ }),
|
|
10395
|
-
|
|
10396
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true&":
|
|
10397
|
-
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10398
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true& ***!
|
|
10399
|
-
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10400
|
-
/*! no static exports found */
|
|
10401
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10402
|
-
|
|
10403
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/CommentPanel/commentPanel.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10404
|
-
|
|
10405
|
-
/***/ }),
|
|
10406
|
-
|
|
10407
|
-
/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true&":
|
|
10408
|
-
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10409
|
-
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true& ***!
|
|
10410
|
-
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10411
|
-
/*! no static exports found */
|
|
10412
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
10413
|
-
|
|
10414
|
-
eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n \n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10415
|
-
|
|
10416
|
-
/***/ }),
|
|
10417
|
-
|
|
10418
10487
|
/***/ "./node_modules/nanoid/index.browser.js":
|
|
10419
10488
|
/*!**********************************************!*\
|
|
10420
10489
|
!*** ./node_modules/nanoid/index.browser.js ***!
|
|
@@ -10754,6 +10823,118 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
10754
10823
|
|
|
10755
10824
|
/***/ }),
|
|
10756
10825
|
|
|
10826
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css&":
|
|
10827
|
+
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10828
|
+
!*** ./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css& ***!
|
|
10829
|
+
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10830
|
+
/*! no static exports found */
|
|
10831
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10832
|
+
|
|
10833
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"007115c5\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10834
|
+
|
|
10835
|
+
/***/ }),
|
|
10836
|
+
|
|
10837
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css&":
|
|
10838
|
+
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10839
|
+
!*** ./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css& ***!
|
|
10840
|
+
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10841
|
+
/*! no static exports found */
|
|
10842
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10843
|
+
|
|
10844
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"48e5d226\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10845
|
+
|
|
10846
|
+
/***/ }),
|
|
10847
|
+
|
|
10848
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css&":
|
|
10849
|
+
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10850
|
+
!*** ./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css& ***!
|
|
10851
|
+
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10852
|
+
/*! no static exports found */
|
|
10853
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10854
|
+
|
|
10855
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"41346ff0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10856
|
+
|
|
10857
|
+
/***/ }),
|
|
10858
|
+
|
|
10859
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css&":
|
|
10860
|
+
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10861
|
+
!*** ./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css& ***!
|
|
10862
|
+
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10863
|
+
/*! no static exports found */
|
|
10864
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10865
|
+
|
|
10866
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"78e0c942\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10867
|
+
|
|
10868
|
+
/***/ }),
|
|
10869
|
+
|
|
10870
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css&":
|
|
10871
|
+
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10872
|
+
!*** ./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css& ***!
|
|
10873
|
+
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10874
|
+
/*! no static exports found */
|
|
10875
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10876
|
+
|
|
10877
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=1&lang=css& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2f64bd4e\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10878
|
+
|
|
10879
|
+
/***/ }),
|
|
10880
|
+
|
|
10881
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true&":
|
|
10882
|
+
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10883
|
+
!*** ./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true& ***!
|
|
10884
|
+
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10885
|
+
/*! no static exports found */
|
|
10886
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10887
|
+
|
|
10888
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b0c31446\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/ChatToast/chatToast.vue?./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10889
|
+
|
|
10890
|
+
/***/ }),
|
|
10891
|
+
|
|
10892
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true&":
|
|
10893
|
+
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10894
|
+
!*** ./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true& ***!
|
|
10895
|
+
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10896
|
+
/*! no static exports found */
|
|
10897
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10898
|
+
|
|
10899
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"56520ad6\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/CommentPanel/commentPanel.vue?./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10900
|
+
|
|
10901
|
+
/***/ }),
|
|
10902
|
+
|
|
10903
|
+
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true&":
|
|
10904
|
+
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
10905
|
+
!*** ./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true& ***!
|
|
10906
|
+
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
10907
|
+
/*! no static exports found */
|
|
10908
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
10909
|
+
|
|
10910
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4e037de7\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
10911
|
+
|
|
10912
|
+
/***/ }),
|
|
10913
|
+
|
|
10914
|
+
/***/ "./node_modules/vue-style-loader/lib/addStylesClient.js":
|
|
10915
|
+
/*!**************************************************************!*\
|
|
10916
|
+
!*** ./node_modules/vue-style-loader/lib/addStylesClient.js ***!
|
|
10917
|
+
\**************************************************************/
|
|
10918
|
+
/*! exports provided: default */
|
|
10919
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
10920
|
+
|
|
10921
|
+
"use strict";
|
|
10922
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return addStylesClient; });\n/* harmony import */ var _listToStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./listToStyles */ \"./node_modules/vue-style-loader/lib/listToStyles.js\");\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\n\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nfunction addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = Object(_listToStyles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = Object(_listToStyles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/vue-style-loader/lib/addStylesClient.js?");
|
|
10923
|
+
|
|
10924
|
+
/***/ }),
|
|
10925
|
+
|
|
10926
|
+
/***/ "./node_modules/vue-style-loader/lib/listToStyles.js":
|
|
10927
|
+
/*!***********************************************************!*\
|
|
10928
|
+
!*** ./node_modules/vue-style-loader/lib/listToStyles.js ***!
|
|
10929
|
+
\***********************************************************/
|
|
10930
|
+
/*! exports provided: default */
|
|
10931
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
10932
|
+
|
|
10933
|
+
"use strict";
|
|
10934
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return listToStyles; });\n/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nfunction listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./node_modules/vue-style-loader/lib/listToStyles.js?");
|
|
10935
|
+
|
|
10936
|
+
/***/ }),
|
|
10937
|
+
|
|
10757
10938
|
/***/ "./node_modules/vuex/dist/vuex.esm.js":
|
|
10758
10939
|
/*!********************************************!*\
|
|
10759
10940
|
!*** ./node_modules/vuex/dist/vuex.esm.js ***!
|
|
@@ -10803,10 +10984,10 @@ eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\
|
|
|
10803
10984
|
/*!**********************!*\
|
|
10804
10985
|
!*** ./package.json ***!
|
|
10805
10986
|
\**********************/
|
|
10806
|
-
/*! exports provided: name, version, main,
|
|
10987
|
+
/*! exports provided: name, version, main, private, scripts, dependencies, devDependencies, browserslist, directories, keywords, license, default */
|
|
10807
10988
|
/***/ (function(module) {
|
|
10808
10989
|
|
|
10809
|
-
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.8-beta.
|
|
10990
|
+
eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"zj-plugin-intelligent\\\",\\\"version\\\":\\\"1.2.8-beta.4\\\",\\\"main\\\":\\\"lib/ZjPluginIntelligent.umd.min.js\\\",\\\"private\\\":false,\\\"scripts\\\":{\\\"serve\\\":\\\"set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve\\\",\\\"build\\\":\\\"set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build\\\",\\\"lib\\\":\\\"set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --target lib --name ZjPluginIntelligent --dest lib src/lib/index.js\\\",\\\"lib:test\\\":\\\"set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode test --target lib --name ZjPluginIntelligent --dest lib src/lib/index.js\\\"},\\\"dependencies\\\":{\\\"@jboltai/tokui\\\":\\\"^0.1.6\\\",\\\"crypto-js\\\":\\\"^4.2.0\\\",\\\"html2canvas\\\":\\\"^1.4.1\\\",\\\"markdown-it\\\":\\\"^14.1.0\\\"},\\\"devDependencies\\\":{\\\"@babel/preset-env\\\":\\\"^7.14.9\\\",\\\"@vue/cli-plugin-babel\\\":\\\"~4.5.0\\\",\\\"@vue/cli-plugin-eslint\\\":\\\"^4.5.13\\\",\\\"@vue/cli-plugin-vuex\\\":\\\"~4.5.0\\\",\\\"@vue/cli-service\\\":\\\"~4.5.0\\\",\\\"axios\\\":\\\"^0.27.2\\\",\\\"babel-eslint\\\":\\\"^10.1.0\\\",\\\"babel-plugin-component\\\":\\\"^1.1.1\\\",\\\"compression-webpack-plugin\\\":\\\"^6.0.3\\\",\\\"core-js\\\":\\\"^3.6.5\\\",\\\"element-ui\\\":\\\"^2.15.4\\\",\\\"eslint\\\":\\\"^7.30.0\\\",\\\"eslint-plugin-vue\\\":\\\"^7.13.0\\\",\\\"js-cookie\\\":\\\"^2.2.1\\\",\\\"obs-upload\\\":\\\"^1.0.4\\\",\\\"pako\\\":\\\"^2.1.0\\\",\\\"reconnecting-websocket\\\":\\\"^4.4.0\\\",\\\"sass\\\":\\\"^1.71.0\\\",\\\"sass-loader\\\":\\\"^8.0.2\\\",\\\"snowflake-id\\\":\\\"^1.1.0\\\",\\\"vue\\\":\\\"^2.6.11\\\",\\\"vue-template-compiler\\\":\\\"^2.6.11\\\",\\\"vuex\\\":\\\"^3.4.0\\\",\\\"webpack-bundle-analyzer\\\":\\\"^4.4.2\\\"},\\\"browserslist\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"not dead\\\"],\\\"directories\\\":{\\\"lib\\\":\\\"lib\\\"},\\\"keywords\\\":[],\\\"license\\\":\\\"ISC\\\"}\");\n\n//# sourceURL=webpack://ZjPluginIntelligent/./package.json?");
|
|
10810
10991
|
|
|
10811
10992
|
/***/ }),
|
|
10812
10993
|
|
|
@@ -10852,7 +11033,40 @@ eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! ./node_modules/@
|
|
|
10852
11033
|
/*! no static exports found */
|
|
10853
11034
|
/***/ (function(module, exports, __webpack_require__) {
|
|
10854
11035
|
|
|
10855
|
-
eval("//
|
|
11036
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!../../../../node_modules/postcss-loader/src??ref--6-oneOf-3-2!./iconfont.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./src/lib/assets/iconfont/iconfont.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3f8af014\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/assets/iconfont/iconfont.css?");
|
|
11037
|
+
|
|
11038
|
+
/***/ }),
|
|
11039
|
+
|
|
11040
|
+
/***/ "./src/lib/assets/iconfont/iconfont.ttf?t=1656657853347":
|
|
11041
|
+
/*!**************************************************************!*\
|
|
11042
|
+
!*** ./src/lib/assets/iconfont/iconfont.ttf?t=1656657853347 ***!
|
|
11043
|
+
\**************************************************************/
|
|
11044
|
+
/*! no static exports found */
|
|
11045
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
11046
|
+
|
|
11047
|
+
eval("module.exports = __webpack_require__.p + \"static/fonts/iconfont.190449d0.ttf\";\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/assets/iconfont/iconfont.ttf?");
|
|
11048
|
+
|
|
11049
|
+
/***/ }),
|
|
11050
|
+
|
|
11051
|
+
/***/ "./src/lib/assets/iconfont/iconfont.woff2?t=1656657853347":
|
|
11052
|
+
/*!****************************************************************!*\
|
|
11053
|
+
!*** ./src/lib/assets/iconfont/iconfont.woff2?t=1656657853347 ***!
|
|
11054
|
+
\****************************************************************/
|
|
11055
|
+
/*! no static exports found */
|
|
11056
|
+
/***/ (function(module, exports) {
|
|
11057
|
+
|
|
11058
|
+
eval("module.exports = \"data:font/woff2;base64,d09GMgABAAAAAAoUAAsAAAAAFcwAAAnGAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACEbgqbHJZRATYCJAM8CyAABCAFhQsHgWwbnxIjEfaKkxIg+4sEG4ypFXwRCMWCRThDhAIpY9EWn23poeH6P5gO3w2KWquyunuADxAfUAGrZwXy1cqn8ITqNZBFUED6HZIldzP/uGk/SCUGRXSSMsdsptVZ20eAiWKr0qNMPNk8uXNkKthU5EQ8BwrOKwDQyrmq+oTGsnQJbyfZK/BPa9/qtznTUAyxRiyUOG92T97MnMz57seWjy1+osklYZZIJulELdOIZLwRIyESYqREOgayLW9EtLrHET0QP2ojCIiZog+c5aVDXACvTIg2ARU83BsFRUlVakMTQIGSiauJFGGqzzqhQ6eAB+Yw5yqAk8nn12+sKgCDZ3EXtW5HiR+c/Cz68pGl/qfAvoHqrxIGNoAHWGBsZtm6Ve+9AmyGY4mIaeUd+wA0IFR+vf8t+qzzs4rPRn42+rP13/690+dHfh4v/weQda4jNbnXiwaPKP4DDxCQERMSkZCSYxAWh4cP8oFIBXKH5xzXg0MI4FtbRUZkBRQx5EgoQsjR4LSR66BIINdDkUL+i0PI4XsnhUnkERyC4OcRhYU8CoWDPAaFB3kckkNzF4N3AFgCcKcB3uML2XkxwCEPLfEGRMdOYcWE9e6CMaxBoUThITMqRPG23h0QIQZHmoul19YJFUqpFAULe68pKhIJeXgUFRkuEOCg0cl6lrznRVCuuxGM+34k7XnAmSqnqJxFHkTfd9vHxfQTXiYDQXSWTQMwhZVG9N69PyCxcutm6bF7Zece9E1mH/tyycm7M9lDXTD23r3WHOruXRhn7t+HuPSDBwgJM3tTqwDntkOIgD2yA+KizPU27kRmBJtenpLATGZFVh6CLfHNUmzNbWcLGadSjMydYCSuGJOh5Z4kbcC4lpSMszDYNEU1qKngETah/AmJPxZHkHtXUzDMHJ+iHZeHkokbI0Nna7zHwmjGMRarnkOlgdnJ9ZaAUSZGYiwAAQ2tCSiTiOGtQgCMhUJjZfoDE8oM+tXMUFBVM+/zDrjWa1VKD9EZJgXAdH/5obWmPQ8GX+FCoGWXWX4R3mQ7sWXTMilvEZFAsumGZFzqlUdYdVKeVMc2zXp0+gzCGpYDqtVOmNEmVInkQrVOYaIG60nfdeRmY8xAtHoPwrpWQvR2Jgco5fI3YGbaIntlXXF2JZ1gYtTMaSPqRwsS7DhIOrfgWPusvMzcvWveSd27V3FpMsKzf7D/TUJ7/HtPrzzOXD0J3FPXzkQvN85AfPr09THU0ecGjxd44o51DLjgh+Bg0RXBziOASkKjcf+zwaEuGMfhaDF5iAg/J0dn0u4DqXKWm/Ocde38p3jPE9vVRpFzkQm7OCS4HGjgnsS4k4TJ2SXHQXEJULEx8LWPjQOgocBktQkOBR8rJtzRVTUal5CvOgUO3ohNAj5Obs3KEQCLxSQS3ySp2MMgJ6ZdPMm6Uz42Lu3F3JSQDWy543HJO4hWMlbIXyf0zTp5OUHZS2avSG6dyOpKAo9OcaMcKZKaBpmSw2aVLpqZOECP//8dvDbSYiFt3us+jZ9MWry26zc9BntOC/T0de/u6xn4gVBCc1pO/UH7y5jmHbBu5sx1Azw9u7nmzTa0CK0KhCJqgpZGTnJLwJzu5yd17hOZ3iNgaG4m1/aYHunTqfY8ZaZA9QmuPMsBpmEG01AsbjYOH240A3NIU9t80GSsquxMqiQtHffsV+md1if+bk3rv0+09ha0T5zUTBwyHj2F29Ttb27ErdEMbz1f/mLIkOEnkZJ51cA6PZdboi5SL5FOuFVxXnFxO6I8EW0+4H3bDzGNSoON4PYv4vGqJdwRzmN9qCJVhg/MfQ8ELSoH2nYSkiOS8UEMkb8kf901A53deLwmXyMZphcU0VBJrmS9gfJWi+owQRJZlYvZ1HW4mpuewbxrytalDQ2lrcvbrPNp3I/7aU17rFhVjP0nzsEwVLVi1OjUl4v32kaPYtYstk2rzG2gp7JLeWd9Sd2CIeUjHTWkyWsJVbX8hBoaWpe2KV83YnH1PlmvfTFU+uP0IeO0a5+K2jGD6E6OvulOhlMjnO00Vy15dVWj+h9Uysj23s4dpYLfScxheTnGrC9p69DmutpN2Ind1vZtLKP0hG+bSnrw9Hdj30jk17XfajuXTpP/IP/fexauDUPsNe5BqV91ITqlaBUmVAqxQdOu2yKOc4LYwiH680slqyhj2YhqiSo+EZ7gVxGZZVxHfCdWCnpcKl5bkBVmCuZ/+GFJHCB0BcwveOfhgrXCoMzgqjYWMs0CWK9u8egqu5SVayu02yu1ZVpfVW4vraC8rEulbnuFrrxLl3JdRV/3JLvX6nZbvfZboHERq9vmvWW7cdhcthHs3sScJWqReunatcvUGvyDLYjjInURDrJutQYbNw7TqEUYyKvVxfiIns7ufteCo0vgZ5ErKBu7Cp/VPivs3Zt0szZWpWjC2ozxhihWaDHd2NavX1o5yJtlFLmjh6/x7zysPa1eY1s4YN/E6l15/O1jhWCFMDM1PytcKZjaeb/WOlWj1+yrqQb/3wwvBbzrhTnhJUU8wtWdTlLg1MydSwovE6XSaqiAyMTTLFxIQjkoWrxwEQm2QfOWFV7WKppRI007Vvr4DdZQc90gJ/J3UAHKcXqiLuDoxAKXi0tvnxIUycIFl4fLB19l7gxuvvK5g9xuSb7/dnBx4DO/TB2iP5rx0Weg4qgPxtyn3c55Dij/YbjwJbiS2D/e5aJHfpPldkqkOV+naP80DsRl/Tszxgl6/VqA/Le8793b1b0FVT7vT3T70Z9hcL2CP4Tvt9UBmDlSiWJCQW2QQOspvuA8iA0DGVMq/QU8UcPz8VJqmVmESUWXdxsCOtDSSD86kCmnRxY7fbJyd8wo1ay3wWfBRS4CBvgAu0UD+3Ybcl6hFcgjdCDfO7xQ8Z0+Ue+O2SLLzBIGtHhgJDAhGvATE6cTtb5wU9A/G51RZ9CfXhMITW6YELmpjBh3INJSez9hMZopV8oCTYFId6O0TAlZo9EgEYyEG4lSeXGBhoYw0RwJ1wV8UeOkaLS5h8kUpI1i9IUbwUAiBJhANNrfD8FEph9ei48wTQSfP8oM6jCYX04NAUJMpoEJROprgfxuAkRoURheDoEFI2Y2Z5loYq12hvlbmEIIqxAZJThYkAhhGiEobWcEaPAuhiFopvdXRwAfUYxMamE30wMTaS7IKozjpzS+DCk8pzW4H6qQkZWTJ1+BQkWKlShVplyFqsAMpqGkAYPLUuGpXpNjBRUkZJP9jhNoZXqZJJ07acUpbVZpL53IoDorNZdhUNS4E13EGh1nS60xTH92UrO8M1k50Euym9DKUL/+if0rVyw19iaJsnPLKAAA\"\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/assets/iconfont/iconfont.woff2?");
|
|
11059
|
+
|
|
11060
|
+
/***/ }),
|
|
11061
|
+
|
|
11062
|
+
/***/ "./src/lib/assets/iconfont/iconfont.woff?t=1656657853347":
|
|
11063
|
+
/*!***************************************************************!*\
|
|
11064
|
+
!*** ./src/lib/assets/iconfont/iconfont.woff?t=1656657853347 ***!
|
|
11065
|
+
\***************************************************************/
|
|
11066
|
+
/*! no static exports found */
|
|
11067
|
+
/***/ (function(module, exports) {
|
|
11068
|
+
|
|
11069
|
+
eval("module.exports = \"data:font/woff;base64,d09GRgABAAAAAAwYAAsAAAAAFcwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAARAAAAGA8HkyOY21hcAAAAYgAAADFAAACblxqCa9nbHlmAAACUAAAB0EAAA2c2Ihef2hlYWQAAAmUAAAALwAAADYiLNR3aGhlYQAACcQAAAAgAAAAJAkkAktobXR4AAAJ5AAAAA8AAAA8PAAAAGxvY2EAAAn0AAAAIAAAACAVZhjGbWF4cAAAChQAAAAdAAAAIAEjAK9uYW1lAAAKNAAAAUcAAAKLTstY7nBvc3QAAAt8AAAAmwAAAOx1SoF/eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGFhYJzAwMrAwNTJdIaBgaEfQjO+ZjBi5ACKMrAyM2AFAWmuKQwHnnG+3Mfc8L+BgYH5DgOQZGBEUcQEAHk4DSp4nOWSwQ3CMAxFf2gbKJSKE+LWYy8s0hWqjsMg7QacEFKg4zjKEFWx40pw6AY4epH8ldjStwFkABLmyqSAecBA4s6qiXqCfdRT3Dg/48SKpZwqaqiljgaafO1dGOcZ+NH7RXeir4ThWt9zWQ6wxZE77pDjgAIlNvwy4e4ZLH+yq7X+K4p4P5esFNcV9g5UKewiqFFkgtQq7CyoUyD/eoXdBg2KdKBJkfq+VngW8E6R7QhOkQ0KL0W2KLwV2a4wKrAf6ydMVgAAAHictVZbbFxHGZ5/Zs85e/Zc9tzX9trrvThnsdfe3e6e3XV9S2gujhsuhoY4lkoxIkoQSaQIhGhQUFMiEVoqtRGCtgjRFKRKAaVIIEErHqjgpS9UAgl4o0YiSOUB8YBoJbKn/DO7a3sjRQoo+DJn/vvMfP/88xOFkPffZK+xeeKRabJCHiFb5Dy5Qgg0MkEm8BRZkYvlsBxGnTb+FjntcUmD062oSpV7VWTFcBmidiOYAE8u7CWYjHYrEGRy0AnanRXIgWICJWc2TzSiqHFi863B5Mzjp08tLC0tnDr9Dz45eOnlk/ei9BfdcUYcB/Te94UjT8wpzBtJTp2enz89lRzxmDL3BL095EVMdr3wyeMnX750cOmetOKPO/o6Rhse4tuw0FFH0yxVqQJUKymWHkl1FgghCcThXfZjZpIMqZMlcoQjEGQKjRxkbM+EUqFYhZYdrUAzUyqa1Le9HDQLjRVk4lnWoAou6spKCfXaHSjhWWYKVSjDjdE5G0jto3WorddjUl+v4ffGDT/MWeP1CUom6uPxe1MLRknKGKZHXfMHYoS33/Yl3wBNejBkpu9WP1KNz/aM4bXax2pHrFzox0fRGr3AyXLhM4Ydr3jjPrjjPoXvLBsWhE2KWyPAB/o3+jlSRgJzRS7WICymQS6G0X5oR0hhKkxC0ECqEXgo8Wjzpupk1ZtMZjfVrKPepPROBnz5bpIdRj/2n+kWqWFsH0PzvAsVkINFPGBPrsCeTAw60A45J2pzKd12x1yJxv+mlG0arms8NxYKDkh7ODT/HJ9tMso1JVQIx3Y4qCk4u+dwHQpEI2RfgUdBBHEN9PL7hBsAH3lM/ENVJvS3aZ2kSRZvJwHbC9CijXkQYkLImB64aJzhBqTejWoKlgz5cQ+2vHFVibcU9RDMJxLxmwmox9uKmkBKpfl42xtHpbyiqp3ESAL/tlXlXCJxTlEHa2WP0T9hZKIKVBQVOHRlVeDWUQVoGUogq+cDLb4FWS3I6/Gt+BanIRvf4jT8/C78bM8Ow/Aa9C/2NEth3n+anCOXyFPkm+S7uAjM31BUEqUVhUWZI9RoLwMvEZ02vxoBXg1FLvHCUwUTeL1pNoQ0ktpBn+T1CG+QOG8sVr7XtwjbmG7CscfVdgQtLGHNhtIT+Z7wgTsXDhoKrkCYsLO586tr19dW27mgB5nkjD26uP/qxU+OjkU4ObhxbG1OGfUluY01aX1t9XxusvuKrNOEntJ9KynJLJVzStPT5ZanGUG75BoJ3MyjejAVuH76PTsd1Gd9R/Oimqk7DwSKNua/np70MhOTM9PJjGVlLDrKnU7mOhOlKcNxjJgPc9XKYn8JYi0z00c0yRjVHqk3JsWSv05lxZAlJ2VYWcuoHGrUx8pzxQXXcBQNHlJHg2D0A5kTudYDhWqYb81MzL/hNqZqs7N5L/fr9CxGz62qNo+P2KkcO+kwYkdIizxEzpDPk6+SZ8mL5Ps8b4plDmHUw4uXpEBcQXwOOLIcO48zBUii7CPWey+k/P9GUTp8+xc9aCb7cOLUGXWiuyIJzOBgu93X7y+UH+r+cM8SxHTdsG3j0MW7gAln+oDj4N9HSMVb9E/2DNOJS0pkkRzHm1hAsPa+OQigi4eJRQfnooz5+PQgBIscU17I/d5djUJR6nfuL9ZVPPkKv6HM7/4h3y4U2nk6I761Wh45OCJde/qlpKYlr1yTNEu+pll6Jn5H7s+sgYjpaDzkpPupgX0t7+mWdk22NOnaFa7/kpWJfyftEj0p7lfC/f6V/YiVRQ/UIh8kH8YdRzy37mhjOne0OaL1Yf3Hi9dG2C3qJUVkus0z2WeV2Zm1h189drSCP0ePvfrw2szsgVZzY/O3mxvNKOpPWs/zZ+t6ys2q3XdNxzHFg2BsuVnHybrwysaQPfe48VluNuQoflLNuqnrfIBv9yy3eo8L9zjAd3i/92G3//0O/yh2eECs7X/eGt9PaidfbVIkTXKYfIJsYiW6QC6Sq4S4vXoyeO6xALml3RLT5NxCqffkt3Y6Uq5QGvQBgrM31W1P3lewCxksa02/1DIBOxYlw/EWaA8mnSH5MynTTB1XTVNdNo8dR8I1l5Gi3+jzXBSrgqVy6WPdN7gBPYBj9zfU6f79gp3T3WxClXRF/olmpVKW1hsrFgrGEqqsyzJ9qmcunHfP7kR0B/G4lH5rEBCl3V/2o6R4xBp13pI981ffS2BbzqiClyWtaV9SdB0/V/ZICEniuf8e82iGmGSCVMiDZBVP/hT5AnY32LviqZkQlvlBl3OQpiY+5/tpu7FvEgu9CTVahRXYJ5pWbLl419osDFEwpDjkYtg9JUlsVB2DGl+UIcEuy47BJHZZcaDOviaDZid7n/grqgEpNfHT3oeFQ2SssidRy1HQASrTJeFLsfu+4ncGQX6WSg5s8NORrb6FgvYSRkIdiV6VbZO+yPX3/oO245Ev0pBseSeockHb9ZsyyH8AG5Q/rwAAAHicY2BkYGAA4u06hVXx/DZfGbhZGEDg3hMPWwT9/wSrK7MFkMvBwAQSBQAoXQpjAHicY2BkYGBu+N/AEMPCwMDwbzerKwNQBAXwAwBxcwR3eJxjYWBgYCETAwAHvAA9AAAAAAAAxAEyAXABtgHOAgwCQgMgBAoEggT6BWIGHgbOeJxjYGRgYOBnWMzAxQACTEDMBWb/B/MZABqwAdMAAAB4nHXRvW7CMBQF4BP+qoLUoZVYKlVeylIRfkY6IsFcBnYIDhAlcWQMEqh7xz5Nn6JP0KWv0FfoIVwkRGkiW5+P73UsBcAtvuHh8NxxHOyhxtXBBVzhQVxk/igu0W1xmX4WV+iBuIonvIj3J77yBK90zVUD72IPdXyIC7jBp7jI/Etcon/EZdS9srhC34urGHsdcQ0N761v9cTpmZpu1TIwaWhSt4uaR470fB1P7ElywrG2q6VJVcdvn6RDnWp7PHK1mXedC1VoTaIG3NVxbFRmTaQD5y+cy3qtVii5H5gEfVhoTOA4z6AwxZbzEgEMUoT57LBDhOafdMSeOdaI2W//qbmcjtlpsWK+Xyt04PO3Xa4dsjbN689vucKG3+8ydaxWHJY9CTWQXs27xbRClu9FTALmPhZ5V4YeWnzDs3o/v0PyC6KBdxMAeJxtjtEOgjAMRVfUoQhCDL/BA/7RkMlKRquQBeTrnXHxwXiTtvfc+1IRiY8S8V85RLCBLexAQgx7OEACR0ghgxPkUIisQcUPpE4P3GOpqllTj+o9wdXpjNTyXF0tTzoLQDwOyiaBBqSvVYvsnKIGz4STwdVoWjyvxq9yMo5+Q+noxraNu5HdvbqEW8sVn76NLavW/yfEC0obQJEA\"\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/assets/iconfont/iconfont.woff?");
|
|
10856
11070
|
|
|
10857
11071
|
/***/ }),
|
|
10858
11072
|
|
|
@@ -10899,7 +11113,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
10899
11113
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
10900
11114
|
|
|
10901
11115
|
"use strict";
|
|
10902
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11116
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_chatToast_vue_vue_type_style_index_0_id_7ee21de6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/ChatToast/chatToast.vue?vue&type=style&index=0&id=7ee21de6&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_chatToast_vue_vue_type_style_index_0_id_7ee21de6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_chatToast_vue_vue_type_style_index_0_id_7ee21de6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_chatToast_vue_vue_type_style_index_0_id_7ee21de6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_chatToast_vue_vue_type_style_index_0_id_7ee21de6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/ChatToast/chatToast.vue?");
|
|
10903
11117
|
|
|
10904
11118
|
/***/ }),
|
|
10905
11119
|
|
|
@@ -10959,7 +11173,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
10959
11173
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
10960
11174
|
|
|
10961
11175
|
"use strict";
|
|
10962
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11176
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_commentPanel_vue_vue_type_style_index_0_id_439f4726_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/alert/CommentPanel/commentPanel.vue?vue&type=style&index=0&id=439f4726&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_commentPanel_vue_vue_type_style_index_0_id_439f4726_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_commentPanel_vue_vue_type_style_index_0_id_439f4726_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_commentPanel_vue_vue_type_style_index_0_id_439f4726_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_commentPanel_vue_vue_type_style_index_0_id_439f4726_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/alert/CommentPanel/commentPanel.vue?");
|
|
10963
11177
|
|
|
10964
11178
|
/***/ }),
|
|
10965
11179
|
|
|
@@ -11019,7 +11233,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
11019
11233
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
11020
11234
|
|
|
11021
11235
|
"use strict";
|
|
11022
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11236
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/AgentSelector.vue?vue&type=style&index=0&id=d478ade8&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AgentSelector_vue_vue_type_style_index_0_id_d478ade8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/AgentSelector.vue?");
|
|
11023
11237
|
|
|
11024
11238
|
/***/ }),
|
|
11025
11239
|
|
|
@@ -11067,7 +11281,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
11067
11281
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
11068
11282
|
|
|
11069
11283
|
"use strict";
|
|
11070
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11284
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatDetail.vue?vue&type=style&index=0&id=9693c11e&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatDetail_vue_vue_type_style_index_0_id_9693c11e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatDetail.vue?");
|
|
11071
11285
|
|
|
11072
11286
|
/***/ }),
|
|
11073
11287
|
|
|
@@ -11115,7 +11329,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
11115
11329
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
11116
11330
|
|
|
11117
11331
|
"use strict";
|
|
11118
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11332
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/ChatSidebar.vue?vue&type=style&index=0&id=46646bec&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatSidebar_vue_vue_type_style_index_0_id_46646bec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/ChatSidebar.vue?");
|
|
11119
11333
|
|
|
11120
11334
|
/***/ }),
|
|
11121
11335
|
|
|
@@ -11163,7 +11377,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
11163
11377
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
11164
11378
|
|
|
11165
11379
|
"use strict";
|
|
11166
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11380
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bf6d760c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=0&id=bf6d760c&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bf6d760c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bf6d760c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bf6d760c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bf6d760c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?");
|
|
11167
11381
|
|
|
11168
11382
|
/***/ }),
|
|
11169
11383
|
|
|
@@ -11175,7 +11389,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
11175
11389
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
11176
11390
|
|
|
11177
11391
|
"use strict";
|
|
11178
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11392
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=1&lang=css& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/components/chatMain/index.vue?vue&type=style&index=1&lang=css&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/components/chatMain/index.vue?");
|
|
11179
11393
|
|
|
11180
11394
|
/***/ }),
|
|
11181
11395
|
|
|
@@ -11330,7 +11544,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|
|
11330
11544
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
11331
11545
|
|
|
11332
11546
|
"use strict";
|
|
11333
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
11547
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_main_vue_vue_type_style_index_0_id_613edc2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-style-loader??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib??vue-loader-options!./main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true& */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/lib/layout/main.vue?vue&type=style&index=0&id=613edc2b&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_main_vue_vue_type_style_index_0_id_613edc2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_main_vue_vue_type_style_index_0_id_613edc2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_main_vue_vue_type_style_index_0_id_613edc2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_main_vue_vue_type_style_index_0_id_613edc2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/layout/main.vue?");
|
|
11334
11548
|
|
|
11335
11549
|
/***/ }),
|
|
11336
11550
|
|
|
@@ -11569,7 +11783,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@b
|
|
|
11569
11783
|
/*! no static exports found */
|
|
11570
11784
|
/***/ (function(module, exports, __webpack_require__) {
|
|
11571
11785
|
|
|
11572
|
-
eval("//
|
|
11786
|
+
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-3-1!../../../node_modules/postcss-loader/src??ref--8-oneOf-3-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-3-3!./zj-client.scss */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./src/lib/style/zj-client.scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"13328efc\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/style/zj-client.scss?");
|
|
11573
11787
|
|
|
11574
11788
|
/***/ }),
|
|
11575
11789
|
|
|
@@ -11665,7 +11879,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
11665
11879
|
/***/ (function(module, exports, __webpack_require__) {
|
|
11666
11880
|
|
|
11667
11881
|
"use strict";
|
|
11668
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setAuth = setAuth;\nexports.setToken = setToken;\nexports.getAuth = getAuth;\nexports.setBaseURL = setBaseURL;\nexports.signQueryParams = signQueryParams;\nexports.default = void 0;\n\nvar _axios = _interopRequireDefault(__webpack_require__(/*! axios */ \"./node_modules/axios/index.js\"));\n\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\n\nvar _message = __webpack_require__(/*! @lib/utils/message.js */ \"./src/lib/utils/message.js\");\n\n/*\r\n * @Author: 高瑞廷 2419056691@qq.com\r\n * @Date: 2026-06-04 11:27:13\r\n * @LastEditors: 高瑞廷 2419056691@qq.com\r\n * @LastEditTime: 2026-07-28
|
|
11882
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setAuth = setAuth;\nexports.setToken = setToken;\nexports.getAuth = getAuth;\nexports.setBaseURL = setBaseURL;\nexports.signQueryParams = signQueryParams;\nexports.default = void 0;\n\nvar _axios = _interopRequireDefault(__webpack_require__(/*! axios */ \"./node_modules/axios/index.js\"));\n\nvar _cookie = __webpack_require__(/*! @lib/utils/cookie.js */ \"./src/lib/utils/cookie.js\");\n\nvar _message = __webpack_require__(/*! @lib/utils/message.js */ \"./src/lib/utils/message.js\");\n\n/*\r\n * @Author: 高瑞廷 2419056691@qq.com\r\n * @Date: 2026-06-04 11:27:13\r\n * @LastEditors: 高瑞廷 2419056691@qq.com\r\n * @LastEditTime: 2026-07-28 18:36:23\r\n * @FilePath: \\zjkj-nodejs-npm_customer-client\\src\\lib\\utils\\request.js\r\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r\n */\nvar runtimeAK = Object({\"NODE_ENV\":\"test\",\"VUE_APP_API\":\"https://api.qgbtech.cn\",\"VUE_APP_BASE_API\":\"https://ai.jybtech.cn\",\"VUE_APP_NAME\":\"development\",\"BASE_URL\":\"/\"}).VUE_APP_BASE_AK || '';\nvar runtimeSK = Object({\"NODE_ENV\":\"test\",\"VUE_APP_API\":\"https://api.qgbtech.cn\",\"VUE_APP_BASE_API\":\"https://ai.jybtech.cn\",\"VUE_APP_NAME\":\"development\",\"BASE_URL\":\"/\"}).VUE_APP_BASE_SK || '';\nvar runtimeToken = '';\nvar _user = '';\nvar _companyNo = '';\nvar runtimeBaseURL = \"https://ai.jybtech.cn\" || false;\n\nvar CryptoJS = __webpack_require__(/*! crypto-js */ \"./node_modules/crypto-js/index.js\");\n\nvar service = _axios.default.create({\n baseURL: runtimeBaseURL,\n timeout: 15000\n});\n\nfunction hmacSha256Base64(rawSignStr, sk) {\n var hmac = CryptoJS.HmacSHA256(rawSignStr, sk); // 转为 Base64\n\n return CryptoJS.enc.Base64.stringify(hmac);\n}\n\nfunction setAuth(ak, sk, user, companyNo, token) {\n runtimeAK = ak || '';\n runtimeSK = sk || '';\n _user = user;\n _companyNo = companyNo;\n runtimeToken = token || '';\n}\n\nfunction setToken(token) {\n runtimeToken = token || '';\n}\n\nfunction getAuth() {\n return {\n ak: runtimeAK,\n sk: runtimeSK,\n token: runtimeToken,\n user: _user,\n companyNo: _companyNo\n };\n}\n\nfunction setBaseURL(url) {\n runtimeBaseURL = url || '';\n service.defaults.baseURL = runtimeBaseURL;\n}\n\nfunction signQueryParams(params, secretKey) {\n var keys = Object.keys(params).filter(function (k) {\n return k !== 'ak' && k !== 'sign';\n }).sort();\n var raw = keys.map(function (k) {\n return \"\".concat(k, \"=\").concat(params[k] || '');\n }).join('&');\n return hmacSha256Base64(raw, secretKey);\n}\n\nservice.interceptors.request.use(function (config) {\n // 流式接口跳过 Header 签名\n if (config.url.includes('/chat/stream')) {\n return config;\n }\n\n var ts = Date.now().toString();\n var token = runtimeToken || (0, _cookie.getToken)();\n var externalUser = _user || '';\n var signParts = []; // 1. 第一位:token(有值才加入)\n\n if (_companyNo) {\n signParts.push(\"companyNo=\".concat(_companyNo));\n }\n\n if (token) {\n signParts.push(\"token=\".concat(token));\n } // 2. 第二位:user(有值才加入)\n\n\n if (externalUser) {\n signParts.push(\"user=\".concat(externalUser));\n } // 3. 第三位:ts(必选,永远存在)\n\n\n signParts.push(\"ts=\".concat(ts)); // 拼接最终待签字符串\n\n var signStr = signParts.join('&'); // 计算签名\n\n var sign = hmacSha256Base64(signStr, runtimeSK);\n\n if (_companyNo) {\n config.headers['X-Company-No'] = _companyNo;\n } // 设置请求头\n\n\n config.headers['X-AK'] = runtimeAK;\n config.headers['X-Ts'] = ts;\n config.headers['X-Sign'] = sign;\n\n if (token) {\n config.headers['X-Auth-Token'] = \"\".concat(token);\n config.headers.Authorization = \"Bearer \".concat(token);\n }\n\n config.headers['X-External-User'] = externalUser;\n config.headers['Content-Type'] = 'application/json'; // console.log('排序后key:', sortedKeys)\n\n return config;\n}, function (error) {\n return Promise.reject(error);\n});\nservice.interceptors.response.use(function (response) {\n var res = response.data;\n\n if (res.code === 200) {\n return res;\n } else if (res.code === 40101) {\n (0, _message.showMessage)('登录已过期,请重新登录');\n return Promise.reject(new Error(res.message));\n } else {\n (0, _message.showMessage)(res.message || '请求失败');\n return Promise.reject(new Error(res.message));\n }\n}, function (error) {\n (0, _message.showMessage)(error.message || '网络异常');\n return Promise.reject(error);\n});\nvar _default = service;\nexports.default = _default;\n\n//# sourceURL=webpack://ZjPluginIntelligent/./src/lib/utils/request.js?");
|
|
11669
11883
|
|
|
11670
11884
|
/***/ }),
|
|
11671
11885
|
|