@antv/dumi-theme-antv 0.7.10 → 0.8.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtins/Playground/index.js +1 -1
- package/dist/builtins/Playground/index.module.less +0 -1
- package/dist/common/styles/Common.js +1 -1
- package/dist/common/styles/theme.js +1 -1
- package/dist/components/AI/HomeDialog/AntVBanner/index.js +4 -0
- package/dist/components/AI/HomeDialog/AntVBanner/index.module.less +35 -0
- package/dist/components/AI/HomeDialog/ModeSelector/ModeSelectorDropdown.js +42 -0
- package/dist/components/AI/HomeDialog/ModeSelector/index.js +32 -0
- package/dist/components/AI/HomeDialog/ModeSelector/index.module.less +289 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/ChooseLib/index.js +62 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/ChooseLib/index.module.less +4 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/DatasourceCard/index.js +25 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/DatasourceCard/index.module.less +42 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/SendButton.js +23 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/SendButton.module.less +9 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/Uploader/DataUploader.js +225 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/index.js +172 -0
- package/dist/components/AI/HomeDialog/PromptTextarea/index.module.less +128 -0
- package/dist/components/AI/HomeDialog/RecommendCase/Card.js +80 -0
- package/dist/components/AI/HomeDialog/RecommendCase/card.module.less +131 -0
- package/dist/components/AI/HomeDialog/RecommendCase/index.js +130 -0
- package/dist/components/AI/HomeDialog/RecommendCase/index.module.less +45 -0
- package/dist/components/AI/HomeDialog/RecommendCase/recommend.json +66 -0
- package/dist/components/AI/HomeDialog/index.js +62 -0
- package/dist/components/AI/HomeDialog/index.module.less +3 -0
- package/dist/components/AI/constant.js +37 -0
- package/dist/components/AI/index.js +1 -0
- package/dist/components/AI/types.js +1 -0
- package/dist/components/AI/utils.js +38 -0
- package/dist/components/Login/Captcha/index.js +185 -0
- package/dist/components/Login/Captcha/index.less +91 -0
- package/dist/components/Login/CheckCode/index.js +244 -0
- package/dist/components/Login/CheckCode/index.less +137 -0
- package/dist/components/Login/CountDownButton/index.js +109 -0
- package/dist/components/Login/CountDownButton/index.less +8 -0
- package/dist/components/Login/LoginForm.js +239 -0
- package/dist/components/Login/LoginForm.less +408 -0
- package/dist/components/Login/index.js +24 -0
- package/dist/components/Login/openAuthWindow.js +54 -0
- package/dist/components/Login/types.js +5 -0
- package/dist/components/Login/utils.js +47 -0
- package/dist/hooks/useProducts.js +39 -0
- package/dist/hooks/useStreamingText.js +139 -0
- package/dist/hooks/useTypewriter.js +69 -0
- package/dist/hooks/useVisionsnapSdk.js +159 -0
- package/dist/layouts/DocLayout.js +2 -2
- package/dist/layouts/GlobalLayout/index.js +22 -0
- package/dist/locales/en.json +132 -1
- package/dist/locales/zh.json +132 -1
- package/dist/model/AIChat.js +313 -0
- package/dist/model/auth.js +147 -0
- package/dist/pages/AIPlayground/components/ConversationsMenu/index.js +176 -0
- package/dist/pages/AIPlayground/components/ConversationsMenu/index.module.less +46 -0
- package/dist/pages/AIPlayground/components/MarkdownComponent/MarkdownCodeBlock.js +97 -0
- package/dist/pages/AIPlayground/components/MarkdownComponent/MarkdownCodeBlock.module.less +13 -0
- package/dist/pages/AIPlayground/components/MarkdownComponent/index.js +50 -0
- package/dist/pages/AIPlayground/components/MsgBox/index.js +407 -0
- package/dist/pages/AIPlayground/components/MsgBox/index.module.less +43 -0
- package/dist/pages/AIPlayground/components/MsgBox/useAutoScroll.js +46 -0
- package/dist/pages/AIPlayground/components/SessionLayout/index.js +62 -0
- package/dist/pages/AIPlayground/components/SessionLayout/index.module.less +37 -0
- package/dist/pages/AIPlayground/components/TaskBox/generateCode.js +230 -0
- package/dist/pages/AIPlayground/components/TaskBox/index.js +101 -0
- package/dist/pages/AIPlayground/components/TaskBox/index.module.less +9 -0
- package/dist/pages/AIPlayground/demo.js +34 -0
- package/dist/pages/AIPlayground/index.js +12 -0
- package/dist/pages/AIPlayground/index.module.less +5 -0
- package/dist/pages/Examples/components/Accouncement/index.module.less +1 -1
- package/dist/pages/Examples/index.module.less +11 -11
- package/dist/pages/Index/components/Cases/index.module.less +8 -8
- package/dist/pages/Index/components/Companies/index.module.less +4 -3
- package/dist/pages/Index/components/Features/FeatureCard.module.less +4 -5
- package/dist/pages/Index/components/Features/index.module.less +5 -5
- package/dist/pages/Index/components/_.less +9 -9
- package/dist/pages/Index/index.js +1 -1
- package/dist/plugin/index.js +14 -6
- package/dist/slots/Banner/Notification.module.less +8 -8
- package/dist/slots/Banner/index.module.less +10 -9
- package/dist/slots/CodeEditor/Toolbar.js +23 -27
- package/dist/slots/CodeEditor/Toolbar.module.less +7 -0
- package/dist/slots/CodeEditor/index.js +67 -5
- package/dist/slots/CodeEditor/index.module.less +24 -0
- package/dist/slots/CodeEditor/utils.js +2 -1
- package/dist/slots/CodePreview/index.module.less +0 -3
- package/dist/slots/CodeRunner/index.js +24 -11
- package/dist/slots/ContentTable/index.module.less +2 -1
- package/dist/{pages/Index/components → slots}/Detail/News.js +1 -1
- package/dist/{pages/Index/components → slots}/Detail/News.module.less +9 -9
- package/dist/{pages/Index/components → slots}/Detail/index.js +13 -29
- package/dist/{pages/Index/components → slots}/Detail/index.module.less +23 -20
- package/dist/slots/ExampleSider/index.module.less +3 -4
- package/dist/slots/Footer/index.module.less +2 -2
- package/dist/slots/Header/Products/Product.module.less +2 -2
- package/dist/slots/Header/Products/getProducts.js +20 -26
- package/dist/slots/Header/Products/index.js +20 -16
- package/dist/slots/Header/Search/SearchResult.js +53 -14
- package/dist/slots/Header/Search/SearchResult.module.less +1 -0
- package/dist/slots/Header/Search/index.js +2 -1
- package/dist/slots/Header/index.js +72 -30
- package/dist/slots/Header/index.module.less +14 -6
- package/dist/slots/LiveExample/index.js +1 -1
- package/dist/slots/LiveExample/index.module.less +1 -1
- package/dist/slots/Loading/index.module.less +30 -28
- package/dist/slots/ManualContent/index.module.less +14 -17
- package/dist/slots/_.less +9 -9
- package/dist/static/user.svg +3 -0
- package/dist/typings.d.ts +11 -0
- package/dist/utils/analytics.js +16 -0
- package/dist/utils/code.js +35 -0
- package/dist/utils/env.js +63 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/request.js +42 -0
- package/package.json +31 -15
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
9
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
10
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
|
+
import { useState } from 'react';
|
|
12
|
+
import { useDeepCompareEffect } from 'ahooks';
|
|
13
|
+
export var useStreamingText = function useStreamingText(_ref) {
|
|
14
|
+
var url = _ref.url,
|
|
15
|
+
_ref$method = _ref.method,
|
|
16
|
+
method = _ref$method === void 0 ? 'POST' : _ref$method,
|
|
17
|
+
_ref$headers = _ref.headers,
|
|
18
|
+
headers = _ref$headers === void 0 ? {
|
|
19
|
+
'Content-Type': 'application/json'
|
|
20
|
+
} : _ref$headers,
|
|
21
|
+
body = _ref.body,
|
|
22
|
+
trigger = _ref.trigger,
|
|
23
|
+
onFinish = _ref.onFinish,
|
|
24
|
+
onError = _ref.onError,
|
|
25
|
+
beforeStart = _ref.beforeStart;
|
|
26
|
+
var _useState = useState(''),
|
|
27
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
28
|
+
text = _useState2[0],
|
|
29
|
+
setText = _useState2[1];
|
|
30
|
+
useDeepCompareEffect(function () {
|
|
31
|
+
if (!trigger || !body.query) {
|
|
32
|
+
setText('');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
var abortController = new AbortController();
|
|
36
|
+
var fetchData = /*#__PURE__*/function () {
|
|
37
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
38
|
+
var response, reader, decoder, accumulatedText, _yield$reader$read, done, value, chunk;
|
|
39
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
40
|
+
while (1) switch (_context.prev = _context.next) {
|
|
41
|
+
case 0:
|
|
42
|
+
_context.prev = 0;
|
|
43
|
+
_context.next = 3;
|
|
44
|
+
return fetch(url, {
|
|
45
|
+
method: method,
|
|
46
|
+
headers: headers,
|
|
47
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
48
|
+
signal: abortController.signal
|
|
49
|
+
});
|
|
50
|
+
case 3:
|
|
51
|
+
response = _context.sent;
|
|
52
|
+
if (response.ok) {
|
|
53
|
+
_context.next = 6;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
throw new Error("HTTP error! status: ".concat(response.status));
|
|
57
|
+
case 6:
|
|
58
|
+
if (response.body) {
|
|
59
|
+
_context.next = 8;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
throw new Error('Response body is null');
|
|
63
|
+
case 8:
|
|
64
|
+
if (!(response.headers.get("content-type") === "application/json")) {
|
|
65
|
+
_context.next = 19;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
_context.t0 = onFinish === null || onFinish === void 0;
|
|
69
|
+
if (_context.t0) {
|
|
70
|
+
_context.next = 18;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
_context.t1 = onFinish;
|
|
74
|
+
_context.t2 = JSON;
|
|
75
|
+
_context.next = 15;
|
|
76
|
+
return response.json();
|
|
77
|
+
case 15:
|
|
78
|
+
_context.t3 = _context.sent;
|
|
79
|
+
_context.t4 = _context.t2.stringify.call(_context.t2, _context.t3);
|
|
80
|
+
(0, _context.t1)(_context.t4);
|
|
81
|
+
case 18:
|
|
82
|
+
return _context.abrupt("return");
|
|
83
|
+
case 19:
|
|
84
|
+
reader = response.body.getReader();
|
|
85
|
+
decoder = new TextDecoder();
|
|
86
|
+
accumulatedText = '';
|
|
87
|
+
case 22:
|
|
88
|
+
if (!true) {
|
|
89
|
+
_context.next = 36;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
_context.next = 25;
|
|
93
|
+
return reader.read();
|
|
94
|
+
case 25:
|
|
95
|
+
_yield$reader$read = _context.sent;
|
|
96
|
+
done = _yield$reader$read.done;
|
|
97
|
+
value = _yield$reader$read.value;
|
|
98
|
+
if (!done) {
|
|
99
|
+
_context.next = 31;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
onFinish === null || onFinish === void 0 || onFinish(accumulatedText); // 流结束时调用 onFinish
|
|
103
|
+
return _context.abrupt("break", 36);
|
|
104
|
+
case 31:
|
|
105
|
+
chunk = decoder.decode(value, {
|
|
106
|
+
stream: true
|
|
107
|
+
});
|
|
108
|
+
accumulatedText += chunk;
|
|
109
|
+
setText(accumulatedText);
|
|
110
|
+
_context.next = 22;
|
|
111
|
+
break;
|
|
112
|
+
case 36:
|
|
113
|
+
_context.next = 41;
|
|
114
|
+
break;
|
|
115
|
+
case 38:
|
|
116
|
+
_context.prev = 38;
|
|
117
|
+
_context.t5 = _context["catch"](0);
|
|
118
|
+
if (_context.t5.name !== 'AbortError') {
|
|
119
|
+
console.error('Streaming fetch error:', _context.t5);
|
|
120
|
+
onError === null || onError === void 0 || onError(_context.t5);
|
|
121
|
+
}
|
|
122
|
+
case 41:
|
|
123
|
+
case "end":
|
|
124
|
+
return _context.stop();
|
|
125
|
+
}
|
|
126
|
+
}, _callee, null, [[0, 38]]);
|
|
127
|
+
}));
|
|
128
|
+
return function fetchData() {
|
|
129
|
+
return _ref2.apply(this, arguments);
|
|
130
|
+
};
|
|
131
|
+
}();
|
|
132
|
+
beforeStart === null || beforeStart === void 0 || beforeStart();
|
|
133
|
+
fetchData();
|
|
134
|
+
return function () {
|
|
135
|
+
abortController.abort();
|
|
136
|
+
};
|
|
137
|
+
}, [trigger, url, method, headers, body]);
|
|
138
|
+
return text;
|
|
139
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { useState, useEffect } from 'react';
|
|
8
|
+
|
|
9
|
+
// Hook的参数类型定义
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 一个自定义React Hook,用于实现打字机效果。
|
|
13
|
+
* @param {TypewriterOptions} options - 配置选项
|
|
14
|
+
* @returns {string} 当前应显示的文本
|
|
15
|
+
*/
|
|
16
|
+
export var useTypewriter = function useTypewriter(_ref) {
|
|
17
|
+
var texts = _ref.texts,
|
|
18
|
+
_ref$typingSpeed = _ref.typingSpeed,
|
|
19
|
+
typingSpeed = _ref$typingSpeed === void 0 ? 150 : _ref$typingSpeed,
|
|
20
|
+
_ref$pauseDelay = _ref.pauseDelay,
|
|
21
|
+
pauseDelay = _ref$pauseDelay === void 0 ? 2000 : _ref$pauseDelay;
|
|
22
|
+
// 当前显示第几个字符串
|
|
23
|
+
var _useState = useState(0),
|
|
24
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
25
|
+
textIndex = _useState2[0],
|
|
26
|
+
setTextIndex = _useState2[1];
|
|
27
|
+
// 当前字符串显示到第几个字符
|
|
28
|
+
var _useState3 = useState(0),
|
|
29
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
30
|
+
charIndex = _useState4[0],
|
|
31
|
+
setCharIndex = _useState4[1];
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
// 获取当前要处理的完整字符串
|
|
34
|
+
var currentText = texts[textIndex];
|
|
35
|
+
|
|
36
|
+
// 如果当前字符索引小于字符串长度,说明还在打字过程中
|
|
37
|
+
if (charIndex < currentText.length) {
|
|
38
|
+
var typingTimeout = setTimeout(function () {
|
|
39
|
+
setCharIndex(function (prev) {
|
|
40
|
+
return prev + 1;
|
|
41
|
+
});
|
|
42
|
+
}, typingSpeed);
|
|
43
|
+
|
|
44
|
+
// 清除定时器,防止内存泄漏
|
|
45
|
+
return function () {
|
|
46
|
+
return clearTimeout(typingTimeout);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// 如果字已经打完
|
|
50
|
+
else {
|
|
51
|
+
var pauseTimeout = setTimeout(function () {
|
|
52
|
+
// 切换到下一个字符串
|
|
53
|
+
setTextIndex(function (prev) {
|
|
54
|
+
return (prev + 1) % texts.length;
|
|
55
|
+
});
|
|
56
|
+
// 重置字符索引,从头开始
|
|
57
|
+
setCharIndex(0);
|
|
58
|
+
}, pauseDelay);
|
|
59
|
+
|
|
60
|
+
// 清除定时器
|
|
61
|
+
return function () {
|
|
62
|
+
return clearTimeout(pauseTimeout);
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}, [charIndex, textIndex, texts, typingSpeed, pauseDelay]);
|
|
66
|
+
|
|
67
|
+
// 根据当前状态截取并返回应该显示的字符串
|
|
68
|
+
return texts[textIndex].substring(0, charIndex);
|
|
69
|
+
};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
6
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
7
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
8
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
12
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
+
import React, { useEffect, useState, useRef, useCallback } from 'react';
|
|
14
|
+
import * as ReactDOMClient from 'react-dom/client';
|
|
15
|
+
import * as ReactDOM from 'react-dom';
|
|
16
|
+
|
|
17
|
+
// 将 React 暴露到全局作用域,供第三方 SDK 使用
|
|
18
|
+
|
|
19
|
+
if (!React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) {
|
|
20
|
+
React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {
|
|
21
|
+
ReactCurrentOwner: {
|
|
22
|
+
current: null
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// 只有在全局 React 不存在时才设置
|
|
28
|
+
if (typeof window !== 'undefined') {
|
|
29
|
+
if (!window.React) {
|
|
30
|
+
window.React = React;
|
|
31
|
+
}
|
|
32
|
+
if (!window.ReactDOM) {
|
|
33
|
+
// 合并 ReactDOM 和 ReactDOMClient 的功能,确保新的 API 来自正确的模块
|
|
34
|
+
window.ReactDOM = _objectSpread(_objectSpread({}, ReactDOM), {}, {
|
|
35
|
+
// 明确从 react-dom/client 导入新的 API
|
|
36
|
+
createRoot: ReactDOMClient.createRoot,
|
|
37
|
+
hydrateRoot: ReactDOMClient.hydrateRoot
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// 扩展 Window 接口以支持动态属性访问
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 自定义 useInterval hook,用于轮询检查远程组件是否加载完成
|
|
46
|
+
* @param callback 回调函数
|
|
47
|
+
* @param delay 轮询间隔时间(毫秒)
|
|
48
|
+
* @returns 清除定时器的函数
|
|
49
|
+
*/
|
|
50
|
+
function useInterval(callback, delay) {
|
|
51
|
+
var intervalRef = useRef(null);
|
|
52
|
+
var savedCallback = useRef();
|
|
53
|
+
|
|
54
|
+
// 保存最新的回调函数
|
|
55
|
+
useEffect(function () {
|
|
56
|
+
savedCallback.current = callback;
|
|
57
|
+
}, [callback]);
|
|
58
|
+
|
|
59
|
+
// 清除定时器的函数,使用 useCallback 优化性能
|
|
60
|
+
var clear = useCallback(function () {
|
|
61
|
+
if (intervalRef.current !== null) {
|
|
62
|
+
clearInterval(intervalRef.current);
|
|
63
|
+
intervalRef.current = null;
|
|
64
|
+
}
|
|
65
|
+
}, []);
|
|
66
|
+
|
|
67
|
+
// 设置和清理定时器
|
|
68
|
+
useEffect(function () {
|
|
69
|
+
var tick = function tick() {
|
|
70
|
+
if (savedCallback.current) {
|
|
71
|
+
savedCallback.current();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
intervalRef.current = setInterval(tick, delay);
|
|
75
|
+
return clear;
|
|
76
|
+
}, [delay, clear]);
|
|
77
|
+
return clear;
|
|
78
|
+
}
|
|
79
|
+
function load(url, name) {
|
|
80
|
+
var id = "__umd_component__".concat(name, "_");
|
|
81
|
+
if (document.getElementById(id)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
var script = document.createElement('script');
|
|
85
|
+
script.async = true;
|
|
86
|
+
script.src = url;
|
|
87
|
+
script.id = id;
|
|
88
|
+
script.crossOrigin = 'anonymous';
|
|
89
|
+
// attach it to DOM
|
|
90
|
+
document.body.appendChild(script);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* a hook to use Remote React Component.
|
|
95
|
+
* @param url component CDN url
|
|
96
|
+
* @param name global name
|
|
97
|
+
* @return global variable
|
|
98
|
+
*/
|
|
99
|
+
export function useRemoteComponent(url, name) {
|
|
100
|
+
var _window;
|
|
101
|
+
var _useState = useState(null),
|
|
102
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
103
|
+
Component = _useState2[0],
|
|
104
|
+
setComponent = _useState2[1];
|
|
105
|
+
var _useState3 = useState(true),
|
|
106
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
107
|
+
loading = _useState4[0],
|
|
108
|
+
setLoading = _useState4[1];
|
|
109
|
+
useEffect(function () {
|
|
110
|
+
load(url, name);
|
|
111
|
+
}, [url, name]);
|
|
112
|
+
var clear = useInterval(function () {
|
|
113
|
+
if (window[name]) {
|
|
114
|
+
setComponent(window[name]);
|
|
115
|
+
setLoading(false);
|
|
116
|
+
clear();
|
|
117
|
+
}
|
|
118
|
+
}, 100);
|
|
119
|
+
if ((_window = window) !== null && _window !== void 0 && _window[name]) {
|
|
120
|
+
return [window[name], false];
|
|
121
|
+
}
|
|
122
|
+
return [Component, loading];
|
|
123
|
+
}
|
|
124
|
+
function getJSSDKURL(options) {
|
|
125
|
+
var packageName = options.packageName,
|
|
126
|
+
version = options.version,
|
|
127
|
+
_options$file = options.file,
|
|
128
|
+
file = _options$file === void 0 ? 'dist/sdk.js' : _options$file;
|
|
129
|
+
var jssdkVersion = version;
|
|
130
|
+
var jssdkCdnUrl = jssdkVersion.includes('dev') ? "https://g.alipay.com/".concat(packageName, "@").concat(jssdkVersion, "/").concat(file) : "https://gw.alipayobjects.com/render/p/yuyan_npm/".concat(packageName.replace('/', '_'), "/").concat(jssdkVersion, "/").concat(file);
|
|
131
|
+
return jssdkCdnUrl;
|
|
132
|
+
}
|
|
133
|
+
function useRemoteSdk(options) {
|
|
134
|
+
var _options$sdkInstanceN = options.sdkInstanceName,
|
|
135
|
+
sdkInstanceName = _options$sdkInstanceN === void 0 ? 'sdk' : _options$sdkInstanceN;
|
|
136
|
+
|
|
137
|
+
// dev 版本只能走 g.alipay.com 域名,外网千万不能配
|
|
138
|
+
var jssdkCdnUrl = getJSSDKURL(options);
|
|
139
|
+
var _useRemoteComponent = useRemoteComponent(jssdkCdnUrl, sdkInstanceName),
|
|
140
|
+
_useRemoteComponent2 = _slicedToArray(_useRemoteComponent, 2),
|
|
141
|
+
sdk = _useRemoteComponent2[0],
|
|
142
|
+
sdkLoading = _useRemoteComponent2[1];
|
|
143
|
+
return {
|
|
144
|
+
sdk: sdk,
|
|
145
|
+
loading: sdkLoading
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export function useVisionsnapSdk(visionsnapVersion) {
|
|
149
|
+
return useRemoteSdk({
|
|
150
|
+
packageName: '@alipay/visionsnap-client',
|
|
151
|
+
version: visionsnapVersion,
|
|
152
|
+
sdkInstanceName: 'VisionSnapSDK',
|
|
153
|
+
file: 'dist/sdk.js'
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
export var requestProxy = {
|
|
157
|
+
getAuthToken: "https://www.weavefox.cn/api/visionsnap/auth_token",
|
|
158
|
+
getImportMaps: "https://www.weavefox.cn/api/visionsnap/import_maps"
|
|
159
|
+
};
|
|
@@ -14,7 +14,7 @@ import ManualLayout from "./ManualLayout";
|
|
|
14
14
|
import GlobalStyles from "../common/GlobalStyles";
|
|
15
15
|
import { defaultToken } from "../common/styles/theme";
|
|
16
16
|
import "../static/style";
|
|
17
|
-
|
|
17
|
+
import { LoginModal } from "../components/Login";
|
|
18
18
|
/**
|
|
19
19
|
* DocLayout 是 dumi2 的内置 layout 入口,在这里使用页面路径进行区分成自己不同的 Layout。
|
|
20
20
|
*/
|
|
@@ -108,5 +108,5 @@ export default (function () {
|
|
|
108
108
|
token: defaultToken,
|
|
109
109
|
hashed: false
|
|
110
110
|
}
|
|
111
|
-
}, /*#__PURE__*/React.createElement(GlobalStyles, null), content)));
|
|
111
|
+
}, /*#__PURE__*/React.createElement(GlobalStyles, null), content, /*#__PURE__*/React.createElement(LoginModal, null))));
|
|
112
112
|
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
2
|
+
import * as antd from 'antd';
|
|
3
|
+
import { useOutlet } from 'dumi';
|
|
4
|
+
import React, { useEffect } from 'react';
|
|
5
|
+
import { initializeAIChat } from "../../model/AIChat";
|
|
6
|
+
import { initializeAuth } from "../../model/auth";
|
|
7
|
+
var queryClient = new QueryClient();
|
|
8
|
+
var GlobalLayout = function GlobalLayout() {
|
|
9
|
+
var outlet = useOutlet();
|
|
10
|
+
useEffect(function () {
|
|
11
|
+
initializeAIChat();
|
|
12
|
+
initializeAuth();
|
|
13
|
+
if (typeof window !== 'undefined') {
|
|
14
|
+
window.antd = antd;
|
|
15
|
+
}
|
|
16
|
+
console.log("%c @antv/dumi-theme-antv %c ".concat("0.8.0-alpha.3", " %c"), 'background:#35495e; padding: 1px; border-radius: 3px 0 0 3px; color: #fff;', 'background:#41b883; padding: 1px; border-radius: 0 3px 3px 0; color: #fff;', 'background:transparent;');
|
|
17
|
+
}, []);
|
|
18
|
+
return outlet && /*#__PURE__*/React.createElement(QueryClientProvider, {
|
|
19
|
+
client: queryClient
|
|
20
|
+
}, outlet);
|
|
21
|
+
};
|
|
22
|
+
export default GlobalLayout;
|
package/dist/locales/en.json
CHANGED
|
@@ -178,5 +178,136 @@
|
|
|
178
178
|
"企业级 Node 开发框架": "Enterprise-class Node development framework",
|
|
179
179
|
"Sketch 工具集": "Sketch Tool set",
|
|
180
180
|
"互动图形解决方案": "Interactive solution",
|
|
181
|
-
"前端智能研发": "AI Coding Assistant"
|
|
181
|
+
"前端智能研发": "AI Coding Assistant",
|
|
182
|
+
"ai.placeholder.implement": "What would you like to visualize today?",
|
|
183
|
+
"ai.placeholder.solve": "What visualization problem would you like to solve today?",
|
|
184
|
+
"ai.mode.implement": "Develop",
|
|
185
|
+
"ai.mode.implement.short": "Develop",
|
|
186
|
+
"ai.mode.solve": "Q&A",
|
|
187
|
+
"ai.mode.solve.short": "Q&A",
|
|
188
|
+
"ai.upload.tooltip": "Only supports csv,json,tsv,txt files. For performance and cost reasons, only the first few lines will be used as samples",
|
|
189
|
+
"ai.upload.data": "Upload Data",
|
|
190
|
+
"ai.upload.image": "Upload Image",
|
|
191
|
+
"ai.upload.analyzing": "Analyzing...",
|
|
192
|
+
"ai.upload.file.empty": "File is empty.",
|
|
193
|
+
"ai.upload.file.parse.error": "File content format error, unable to parse.",
|
|
194
|
+
"ai.upload.file.read.error": "Failed to read file.",
|
|
195
|
+
"ai.upload.file.type.error": "Unsupported file type. Please upload {types} files.",
|
|
196
|
+
"ai.upload.file.size.error": "File size cannot exceed {size}MB!",
|
|
197
|
+
"ai.upload.file.parse.type.error": "Unsupported file parsing type",
|
|
198
|
+
"ai.upload.file.summary.truncated": "... (Data summary truncated)",
|
|
199
|
+
"ai.upload.file.full.content": "User uploaded a data file, its complete content is as follows:\n\n{fileContent}",
|
|
200
|
+
"ai.upload.file.table.summary": "This is tabular data containing approximately {rowCount} rows and {columnCount} columns.\nColumn headers are: {header}\nFirst {maxLines} rows of sample data:\n{sampleRows}",
|
|
201
|
+
"ai.upload.file.json.array.summary": "This is a JSON array containing {dataLength} objects.\nKeys for each object are: {keys}\nFirst {maxLines} sample objects:\n{sampleData}",
|
|
202
|
+
"ai.upload.file.json.object.summary": "This is a JSON object. Its structure and partial data are as follows:",
|
|
203
|
+
"ai.msgbox.like": "Like",
|
|
204
|
+
"ai.msgbox.dislike": "Dislike",
|
|
205
|
+
"ai.msgbox.retry": "Try Again",
|
|
206
|
+
"ai.msgbox.copy": "Copy",
|
|
207
|
+
"ai.msgbox.start.new.chat": "Start New Chat",
|
|
208
|
+
"ai.msgbox.send.tip": "Please enter content before sending",
|
|
209
|
+
"ai.msgbox.error.response": "Sorry, I couldn't successfully process your request, please try again later",
|
|
210
|
+
"ai.msgbox.continue.from.here": "Continue from here",
|
|
211
|
+
"ai.recommend.title": "Featured Cases",
|
|
212
|
+
"ai.recommend.refresh": "Refresh",
|
|
213
|
+
"ai.recommend.card.caseName": "Case Name",
|
|
214
|
+
"ai.recommend.card.description": "Description",
|
|
215
|
+
"ai.markdown.copy": "Copy",
|
|
216
|
+
"ai.markdown.run": "Run this code snippet",
|
|
217
|
+
"ai.toolbar.assistant": "AI Assistant",
|
|
218
|
+
"ai.toolbar.restore": "Restore",
|
|
219
|
+
"ai.toolbar.execute": "Execute Code",
|
|
220
|
+
"ai.toolbar.open.codesandbox": "Open in CodeSandbox",
|
|
221
|
+
"ai.toolbar.open.stackblitz": "Open in StackBlitz",
|
|
222
|
+
"ai.toolbar.open.riddle": "Open in Riddle",
|
|
223
|
+
"ai.toolbar.html.code": "HTML Code",
|
|
224
|
+
"ai.toolbar.clear.conversation": "Clear Conversation",
|
|
225
|
+
"ai.conversations.expand": "Expand",
|
|
226
|
+
"ai.conversations.collapse": "Collapse",
|
|
227
|
+
"ai.conversations.new": "Start New Chat",
|
|
228
|
+
"ai.conversations.history": "History",
|
|
229
|
+
"ai.conversations.rename": "Rename",
|
|
230
|
+
"ai.conversations.pin": "Pin",
|
|
231
|
+
"ai.conversations.delete": "Delete",
|
|
232
|
+
"ai.conversations.edit.title": "Edit Conversation Name",
|
|
233
|
+
"ai.conversations.ok": "OK",
|
|
234
|
+
"ai.conversations.cancel": "Cancel",
|
|
235
|
+
"ai.msgbox.delete": "Delete",
|
|
236
|
+
"ai.msgbox.auto.fix": "Auto Fix",
|
|
237
|
+
"ai.msgbox.auto.fix.prompt": "This code encountered a problem during execution. Here is the exact error message it threw.",
|
|
238
|
+
"ai.chooseLib.placeholder": "Choose Technology Stack",
|
|
239
|
+
"ai.search.try": "Try",
|
|
240
|
+
"ai.search.visualization": "Q&A",
|
|
241
|
+
"ai.assistant.editor.intro": "I am AntV AI Assistant. You can ask me questions at any time to:\n1. Interpret the code configuration of the current chart.\n2. Generate new code based on the current case through natural language dialogue to customize the chart.",
|
|
242
|
+
"ai.placeholder.whatis": "What is {title}?",
|
|
243
|
+
"header.user.history": "History",
|
|
244
|
+
"header.user.logout": "Logout",
|
|
245
|
+
"header.user.deleteAccount": "Delete Account",
|
|
246
|
+
"header.china.mirror.title": "AntV series websites are deployed on gh-pages. If the access speed is poor, you can visit the domestic mirror site.",
|
|
247
|
+
"header.china.mirror.temp.close": "Close Temporarily",
|
|
248
|
+
"header.china.mirror.no.more": "Don't Remind Again",
|
|
249
|
+
"header.wx.qrcode.title": "Scan QR Code to Follow",
|
|
250
|
+
"feedback.page.helpful": "Was this page helpful?",
|
|
251
|
+
"feedback.page.easy.understand": "Easy to understand",
|
|
252
|
+
"feedback.page.solved.problem": "Solved my problem",
|
|
253
|
+
"feedback.page.other": "Other",
|
|
254
|
+
"feedback.page.missing.info": "Missing information I need",
|
|
255
|
+
"feedback.page.too.complex": "Too complicated/Too many steps",
|
|
256
|
+
"feedback.page.outdated": "Content is outdated",
|
|
257
|
+
"feedback.page.code.issue": "Sample/Code issue",
|
|
258
|
+
"feedback.page.reason.title": "🚀 What is the reason for your feedback?",
|
|
259
|
+
"feedback.page.issue.alert": "If something is broken or if you need a reply to a problem you've encountered, please ",
|
|
260
|
+
"feedback.page.issue.report": "open an issue instead",
|
|
261
|
+
"feedback.page.issue.alert.end": ". Otherwise, the team won't be able to answer back or ask for more information.",
|
|
262
|
+
"feedback.section.improve": "How can we improve",
|
|
263
|
+
"feedback.section.improve.end": "section? ",
|
|
264
|
+
"feedback.result.success": "Feedback Submitted",
|
|
265
|
+
"feedback.result.error": "Error, please try again later",
|
|
266
|
+
"feedback.result.thanks": "Thank you for your feedback!",
|
|
267
|
+
"feedback.result.github.issue": "Go head to GitHub issue if the problem persists.",
|
|
268
|
+
"feedback.result.problem.type": "What kind of problem are you facing?",
|
|
269
|
+
"feedback.result.reason": "🚀 What is the reason for your feedback?",
|
|
270
|
+
"feedback.result.easy.understand": "Easy to understand",
|
|
271
|
+
"feedback.result.solved.problem": "Resolved my problem",
|
|
272
|
+
"feedback.result.other": "Other",
|
|
273
|
+
"feedback.result.missing.info": "Missing the information I need",
|
|
274
|
+
"feedback.result.too.complex": "Too complicated / Too many steps",
|
|
275
|
+
"feedback.result.outdated": "Out of date",
|
|
276
|
+
"feedback.result.code.issue": "Sample / code issue",
|
|
277
|
+
"feedback.result.previous": "Previous",
|
|
278
|
+
"feedback.result.next": "Next",
|
|
279
|
+
"feedback.result.demo.error": "Demo code error, please check",
|
|
280
|
+
"feedback.result.reading.time": "Reading needs",
|
|
281
|
+
"feedback.result.minutes": "minutes",
|
|
282
|
+
"feedback.result.no.results": "No query result found",
|
|
283
|
+
"login.user.protocol.title": "User Agreement",
|
|
284
|
+
"login.user.protocol.content": "To better protect your legitimate rights and interests, please read and agree to WeaveFox ",
|
|
285
|
+
"login.user.protocol.link": "User Agreement",
|
|
286
|
+
"login.protocol.agree": "Agree",
|
|
287
|
+
"login.protocol.disagree": "Disagree",
|
|
288
|
+
"login.placeholder.phone": "Please enter your mobile number",
|
|
289
|
+
"login.placeholder.phone.or.email": "Please enter your mobile number or email",
|
|
290
|
+
"login.error.invalid.phone": "Please enter a valid mobile number",
|
|
291
|
+
"login.error.invalid.phone.or.email": "Please enter a valid mobile number or email",
|
|
292
|
+
"login.button.login.or.register": "Sign In / Sign Up",
|
|
293
|
+
"login.protocol.read.agree": "I have read and agree to AntV ",
|
|
294
|
+
"login.protocol.link": "User Agreement",
|
|
295
|
+
"login.link.home": "Return to Home Page",
|
|
296
|
+
"login.checkcode.get": "Get Code",
|
|
297
|
+
"login.checkcode.send.success": "Verification code sent successfully",
|
|
298
|
+
"login.checkcode.error.incomplete": "Please complete the captcha verification first",
|
|
299
|
+
"login.checkcode.sent": "The Verification code has been sent",
|
|
300
|
+
"login.checkcode.required": "Verification code is required",
|
|
301
|
+
"login.checkcode.invalid": "Please enter a valid 6-digit verification code",
|
|
302
|
+
"login.checkcode.placeholder": "Verification code",
|
|
303
|
+
"login.countdown.resend": "Resend({time})",
|
|
304
|
+
"login.countdown.resend.simple": "Resend",
|
|
305
|
+
"login.captcha.drag": "Hold and drag the slider right",
|
|
306
|
+
"login.captcha.success": "Verification successful",
|
|
307
|
+
"login.captcha.loading": "Loading...",
|
|
308
|
+
"login.captcha.error.wrong": "Oops! Something went wrong. Click",
|
|
309
|
+
"login.captcha.error.network": "Poor connection. Click",
|
|
310
|
+
"login.captcha.error.refresh": "Refresh",
|
|
311
|
+
"login.captcha.required": "Please drag the slider to verify",
|
|
312
|
+
"login.modal.title": "Verification Code Login"
|
|
182
313
|
}
|