@nokecy/qc-ui 1.0.59 → 1.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/cjs/deleteConfirm/index.d.ts +31 -0
  2. package/dist/cjs/deleteConfirm/index.js +64 -0
  3. package/dist/cjs/fullScreenAlert/index.d.ts +25 -4
  4. package/dist/cjs/fullScreenAlert/index.js +50 -17
  5. package/dist/cjs/generatedListPage/ConfigurableToolbar.d.ts +35 -0
  6. package/dist/cjs/generatedListPage/ConfigurableToolbar.js +179 -0
  7. package/dist/cjs/generatedListPage/GeneratedListPage.d.ts +8 -0
  8. package/dist/cjs/generatedListPage/GeneratedListPage.js +545 -0
  9. package/dist/cjs/generatedListPage/OptionsColumn.d.ts +9 -0
  10. package/dist/cjs/generatedListPage/OptionsColumn.js +135 -0
  11. package/dist/cjs/generatedListPage/PerformanceMonitor.d.ts +55 -0
  12. package/dist/cjs/generatedListPage/PerformanceMonitor.js +277 -0
  13. package/dist/cjs/generatedListPage/RequestManager.d.ts +97 -0
  14. package/dist/cjs/generatedListPage/RequestManager.js +404 -0
  15. package/dist/cjs/generatedListPage/_utils/AccessWrapper.d.ts +16 -0
  16. package/dist/cjs/generatedListPage/_utils/AccessWrapper.js +26 -0
  17. package/dist/cjs/generatedListPage/_utils/defaultHandlers.d.ts +22 -0
  18. package/dist/cjs/generatedListPage/_utils/defaultHandlers.js +127 -0
  19. package/dist/cjs/generatedListPage/index.d.ts +20 -0
  20. package/dist/cjs/generatedListPage/index.js +92 -0
  21. package/dist/cjs/generatedListPage/types.d.ts +221 -0
  22. package/dist/cjs/generatedListPage/types.js +5 -0
  23. package/dist/cjs/generatedListPage/usePermissionCheck.d.ts +66 -0
  24. package/dist/cjs/generatedListPage/usePermissionCheck.js +150 -0
  25. package/dist/cjs/generatedListPage/useRequestManager.d.ts +35 -0
  26. package/dist/cjs/generatedListPage/useRequestManager.js +121 -0
  27. package/dist/cjs/importModal/index.d.ts +21 -3
  28. package/dist/cjs/importModal/index.js +30 -10
  29. package/dist/cjs/index.d.ts +9 -1
  30. package/dist/cjs/index.js +45 -0
  31. package/dist/cjs/standardFormDialog/FormValidation.d.ts +150 -0
  32. package/dist/cjs/standardFormDialog/FormValidation.js +229 -0
  33. package/dist/cjs/standardFormDialog/PortalManager.d.ts +94 -0
  34. package/dist/cjs/standardFormDialog/PortalManager.js +259 -0
  35. package/dist/cjs/standardFormDialog/StandardFormDialog.d.ts +10 -0
  36. package/dist/cjs/standardFormDialog/StandardFormDialog.js +516 -0
  37. package/dist/cjs/standardFormDialog/index.d.ts +7 -0
  38. package/dist/cjs/standardFormDialog/index.js +83 -0
  39. package/dist/cjs/standardFormDialog/types.d.ts +109 -0
  40. package/dist/cjs/standardFormDialog/types.js +5 -0
  41. package/dist/cjs/standardFormDialog/useStandardFormSchema.d.ts +68 -0
  42. package/dist/cjs/standardFormDialog/useStandardFormSchema.js +197 -0
  43. package/dist/cjs/standardFormDialog/withStandardForm.d.ts +193 -0
  44. package/dist/cjs/standardFormDialog/withStandardForm.js +412 -0
  45. package/dist/esm/deleteConfirm/index.d.ts +31 -0
  46. package/dist/esm/deleteConfirm/index.js +57 -0
  47. package/dist/esm/fullScreenAlert/index.d.ts +25 -4
  48. package/dist/esm/fullScreenAlert/index.js +50 -18
  49. package/dist/esm/generatedListPage/ConfigurableToolbar.d.ts +35 -0
  50. package/dist/esm/generatedListPage/ConfigurableToolbar.js +171 -0
  51. package/dist/esm/generatedListPage/GeneratedListPage.d.ts +8 -0
  52. package/dist/esm/generatedListPage/GeneratedListPage.js +535 -0
  53. package/dist/esm/generatedListPage/OptionsColumn.d.ts +9 -0
  54. package/dist/esm/generatedListPage/OptionsColumn.js +127 -0
  55. package/dist/esm/generatedListPage/PerformanceMonitor.d.ts +55 -0
  56. package/dist/esm/generatedListPage/PerformanceMonitor.js +272 -0
  57. package/dist/esm/generatedListPage/RequestManager.d.ts +97 -0
  58. package/dist/esm/generatedListPage/RequestManager.js +398 -0
  59. package/dist/esm/generatedListPage/_utils/AccessWrapper.d.ts +16 -0
  60. package/dist/esm/generatedListPage/_utils/AccessWrapper.js +20 -0
  61. package/dist/esm/generatedListPage/_utils/defaultHandlers.d.ts +22 -0
  62. package/dist/esm/generatedListPage/_utils/defaultHandlers.js +122 -0
  63. package/dist/esm/generatedListPage/index.d.ts +20 -0
  64. package/dist/esm/generatedListPage/index.js +26 -0
  65. package/dist/esm/generatedListPage/types.d.ts +221 -0
  66. package/dist/esm/generatedListPage/types.js +1 -0
  67. package/dist/esm/generatedListPage/usePermissionCheck.d.ts +66 -0
  68. package/dist/esm/generatedListPage/usePermissionCheck.js +145 -0
  69. package/dist/esm/generatedListPage/useRequestManager.d.ts +35 -0
  70. package/dist/esm/generatedListPage/useRequestManager.js +116 -0
  71. package/dist/esm/importModal/index.d.ts +21 -3
  72. package/dist/esm/importModal/index.js +29 -10
  73. package/dist/esm/index.d.ts +9 -1
  74. package/dist/esm/index.js +6 -1
  75. package/dist/esm/standardFormDialog/FormValidation.d.ts +150 -0
  76. package/dist/esm/standardFormDialog/FormValidation.js +223 -0
  77. package/dist/esm/standardFormDialog/PortalManager.d.ts +94 -0
  78. package/dist/esm/standardFormDialog/PortalManager.js +253 -0
  79. package/dist/esm/standardFormDialog/StandardFormDialog.d.ts +10 -0
  80. package/dist/esm/standardFormDialog/StandardFormDialog.js +508 -0
  81. package/dist/esm/standardFormDialog/index.d.ts +7 -0
  82. package/dist/esm/standardFormDialog/index.js +6 -0
  83. package/dist/esm/standardFormDialog/types.d.ts +109 -0
  84. package/dist/esm/standardFormDialog/types.js +1 -0
  85. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +68 -0
  86. package/dist/esm/standardFormDialog/useStandardFormSchema.js +191 -0
  87. package/dist/esm/standardFormDialog/withStandardForm.d.ts +193 -0
  88. package/dist/esm/standardFormDialog/withStandardForm.js +404 -0
  89. package/dist/umd/qc-ui.min.js +1 -1
  90. package/package.json +1 -1
  91. package/dist/esm/ConfirmPro/index.d.ts.map +0 -1
  92. package/dist/esm/ag-grid-plus/_utils/boolSelect.d.ts.map +0 -1
  93. package/dist/esm/ag-grid-plus/_utils/customGroupCellRenderer.d.ts.map +0 -1
  94. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts.map +0 -1
  95. package/dist/esm/ag-grid-plus/_utils/processFormColumnState.d.ts.map +0 -1
  96. package/dist/esm/ag-grid-plus/ag-gridPlus.d.ts.map +0 -1
  97. package/dist/esm/ag-grid-plus/context/gridContext.d.ts.map +0 -1
  98. package/dist/esm/ag-grid-plus/gridManager/index.d.ts.map +0 -1
  99. package/dist/esm/ag-grid-plus/index.d.ts.map +0 -1
  100. package/dist/esm/ag-grid-plus/interface.d.ts.map +0 -1
  101. package/dist/esm/ag-grid-plus/locale.d.ts.map +0 -1
  102. package/dist/esm/ag-grid-plus/queryForm/index.d.ts.map +0 -1
  103. package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts.map +0 -1
  104. package/dist/esm/ag-grid-plus/setting/diySetting/index.d.ts.map +0 -1
  105. package/dist/esm/ag-grid-plus/setting/index.d.ts.map +0 -1
  106. package/dist/esm/ag-grid-plus/settingItem/index.d.ts.map +0 -1
  107. package/dist/esm/ag-grid-plus/toolBar/index.d.ts.map +0 -1
  108. package/dist/esm/ag-grid-plus/toolBar/style.d.ts.map +0 -1
  109. package/dist/esm/ag-grid-plus/utils.d.ts.map +0 -1
  110. package/dist/esm/array-table/arrayAddBtn.d.ts.map +0 -1
  111. package/dist/esm/array-table/arrayBase.d.ts.map +0 -1
  112. package/dist/esm/array-table/index.d.ts.map +0 -1
  113. package/dist/esm/array-table/interface.d.ts.map +0 -1
  114. package/dist/esm/array-table/preview.d.ts.map +0 -1
  115. package/dist/esm/array-table/utils.d.ts.map +0 -1
  116. package/dist/esm/array-table-index/index.d.ts.map +0 -1
  117. package/dist/esm/card/index.d.ts.map +0 -1
  118. package/dist/esm/dashboard/dashboard/components/index.d.ts.map +0 -1
  119. package/dist/esm/dashboard/dashboard/components/modal/index.d.ts.map +0 -1
  120. package/dist/esm/dashboard/dashboard/components/toolbar/index.d.ts.map +0 -1
  121. package/dist/esm/dashboard/dashboard/components/toolbar/style/index.d.ts.map +0 -1
  122. package/dist/esm/dashboard/dashboard/index.d.ts.map +0 -1
  123. package/dist/esm/dashboard/dashboard/service.d.ts.map +0 -1
  124. package/dist/esm/dashboard/dashboard/utils.d.ts.map +0 -1
  125. package/dist/esm/dashboard/index.d.ts.map +0 -1
  126. package/dist/esm/dashboard/utils.d.ts.map +0 -1
  127. package/dist/esm/dashboard/widget/index.d.ts.map +0 -1
  128. package/dist/esm/dashboard/widget/selector/index.d.ts.map +0 -1
  129. package/dist/esm/dashboard/widget/utils.d.ts.map +0 -1
  130. package/dist/esm/dialogSelect/index.d.ts.map +0 -1
  131. package/dist/esm/draggableModal/index.d.ts.map +0 -1
  132. package/dist/esm/editable/index.d.ts.map +0 -1
  133. package/dist/esm/editable/style.d.ts.map +0 -1
  134. package/dist/esm/extensible-grid/index.d.ts.map +0 -1
  135. package/dist/esm/extensible-grid/interface.d.ts.map +0 -1
  136. package/dist/esm/formDesigner/FormDesigner.d.ts.map +0 -1
  137. package/dist/esm/formDesigner/ProCard/index.d.ts.map +0 -1
  138. package/dist/esm/formDesigner/arrayTable/arrayTableSchema.d.ts.map +0 -1
  139. package/dist/esm/formDesigner/arrayTable/index.d.ts.map +0 -1
  140. package/dist/esm/formDesigner/arrayTable/preview.d.ts.map +0 -1
  141. package/dist/esm/formDesigner/index.d.ts.map +0 -1
  142. package/dist/esm/formDesigner/preWidgets/arrayTableIndex/index.d.ts.map +0 -1
  143. package/dist/esm/formDesigner/preWidgets/arrayTableIndex/preview.d.ts.map +0 -1
  144. package/dist/esm/formDesigner/preWidgets/card/index.d.ts.map +0 -1
  145. package/dist/esm/formDesigner/preWidgets/card/preview.d.ts.map +0 -1
  146. package/dist/esm/formDesigner/preWidgets/index.d.ts.map +0 -1
  147. package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts.map +0 -1
  148. package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts.map +0 -1
  149. package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts.map +0 -1
  150. package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts.map +0 -1
  151. package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts.map +0 -1
  152. package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts.map +0 -1
  153. package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts.map +0 -1
  154. package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts.map +0 -1
  155. package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts.map +0 -1
  156. package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts.map +0 -1
  157. package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts.map +0 -1
  158. package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts.map +0 -1
  159. package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts.map +0 -1
  160. package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts.map +0 -1
  161. package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts.map +0 -1
  162. package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts.map +0 -1
  163. package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts.map +0 -1
  164. package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts.map +0 -1
  165. package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts.map +0 -1
  166. package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts.map +0 -1
  167. package/dist/esm/formDesigner/preWidgets/utils.d.ts.map +0 -1
  168. package/dist/esm/formDesigner/widgets/ActionsWidget.d.ts.map +0 -1
  169. package/dist/esm/formDesigner/widgets/LogoWidget.d.ts.map +0 -1
  170. package/dist/esm/formDesigner/widgets/PreviewWidget.d.ts.map +0 -1
  171. package/dist/esm/formDesigner/widgets/SchemaEditorWidget.d.ts.map +0 -1
  172. package/dist/esm/formDesigner/widgets/index.d.ts.map +0 -1
  173. package/dist/esm/formPro/context/formProContext.d.ts.map +0 -1
  174. package/dist/esm/formPro/formLayoutPro.d.ts.map +0 -1
  175. package/dist/esm/formPro/index.d.ts.map +0 -1
  176. package/dist/esm/fullScreenAlert/index.d.ts.map +0 -1
  177. package/dist/esm/importModal/index.d.ts.map +0 -1
  178. package/dist/esm/index.d.ts.map +0 -1
  179. package/dist/esm/queryBuilder/index.d.ts.map +0 -1
  180. package/dist/esm/toolBar/index.d.ts.map +0 -1
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _antd = require("antd");
10
+ var _icons = require("@ant-design/icons");
11
+ var _AccessWrapper = _interopRequireDefault(require("./_utils/AccessWrapper"));
12
+ var _defaultHandlers = require("./_utils/defaultHandlers");
13
+ var _usePermissionCheck2 = require("./usePermissionCheck");
14
+ var _deleteConfirm = _interopRequireDefault(require("../deleteConfirm"));
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ 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; }
19
+ 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); } }
20
+ 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); }); }; }
21
+ // 兼容 Access 组件
22
+ var Access = _AccessWrapper.default;
23
+
24
+ /**
25
+ * 通用操作列组件
26
+ * @template T 行数据类型
27
+ */
28
+ var OptionsColumn = function OptionsColumn(props) {
29
+ var data = props.data,
30
+ onRefresh = props.onRefresh,
31
+ permissions = props.permissions,
32
+ formDialog = props.formDialog,
33
+ deleteApi = props.deleteApi,
34
+ _props$useErrorHandle = props.useErrorHandler,
35
+ useErrorHandler = _props$useErrorHandle === void 0 ? true : _props$useErrorHandle;
36
+
37
+ // 使用权限检查 Hook
38
+ var _usePermissionCheck = (0, _usePermissionCheck2.usePermissionCheck)(permissions),
39
+ canUpdate = _usePermissionCheck.canUpdate,
40
+ canDelete = _usePermissionCheck.canDelete,
41
+ hasPermission = _usePermissionCheck.hasPermission;
42
+ var refresh = function refresh() {
43
+ onRefresh();
44
+ };
45
+ var handleDelete = /*#__PURE__*/function () {
46
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(id) {
47
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
48
+ while (1) switch (_context.prev = _context.next) {
49
+ case 0:
50
+ if (deleteApi) {
51
+ _context.next = 3;
52
+ break;
53
+ }
54
+ console.error('删除API未配置');
55
+ return _context.abrupt("return");
56
+ case 3:
57
+ _context.prev = 3;
58
+ _context.next = 6;
59
+ return (0, _defaultHandlers.defaultHandleDelete)(deleteApi, id, refresh);
60
+ case 6:
61
+ _context.next = 11;
62
+ break;
63
+ case 8:
64
+ _context.prev = 8;
65
+ _context.t0 = _context["catch"](3);
66
+ console.error('删除失败:', _context.t0);
67
+ case 11:
68
+ case "end":
69
+ return _context.stop();
70
+ }
71
+ }, _callee, null, [[3, 8]]);
72
+ }));
73
+ return function handleDelete(_x) {
74
+ return _ref.apply(this, arguments);
75
+ };
76
+ }();
77
+
78
+ // 显示条件判断 - 优化后的权限检查
79
+ var showEditButton = (0, _react.useMemo)(function () {
80
+ return (formDialog === null || formDialog === void 0 ? void 0 : formDialog.component) && permissions.update && canUpdate;
81
+ }, [formDialog === null || formDialog === void 0 ? void 0 : formDialog.component, permissions.update, canUpdate]);
82
+ var showDeleteButton = (0, _react.useMemo)(function () {
83
+ return deleteApi && permissions.delete && canDelete;
84
+ }, [deleteApi, permissions.delete, canDelete]);
85
+
86
+ // 如果没有任何可操作的按钮,不渲染
87
+ if (!showEditButton && !showDeleteButton) {
88
+ return null;
89
+ }
90
+ var FormDialogComponent = formDialog === null || formDialog === void 0 ? void 0 : formDialog.component;
91
+ return /*#__PURE__*/_react.default.createElement(_antd.Space, {
92
+ onClick: function onClick(event) {
93
+ event.stopPropagation();
94
+ }
95
+ }, showEditButton && FormDialogComponent && /*#__PURE__*/_react.default.createElement(Access, {
96
+ accessible: canUpdate
97
+ }, /*#__PURE__*/_react.default.createElement(FormDialogComponent, {
98
+ buttonProps: {
99
+ size: "small",
100
+ type: "link",
101
+ icon: /*#__PURE__*/_react.default.createElement(_icons.EditOutlined, {
102
+ style: {
103
+ fontSize: 14
104
+ }
105
+ })
106
+ },
107
+ key: data.id,
108
+ title: formDialog.editTitle || '编辑',
109
+ entityId: data.id,
110
+ onAfterSubmit: refresh
111
+ })), showDeleteButton && /*#__PURE__*/_react.default.createElement(Access, {
112
+ accessible: canDelete
113
+ }, /*#__PURE__*/_react.default.createElement(_deleteConfirm.default, {
114
+ title: "\u786E\u5B9A\u5220\u9664?",
115
+ content: "\u6B64\u64CD\u4F5C\u5C06\u6C38\u4E45\u5220\u9664\u8BE5\u6570\u636E\uFF0C\u4E14\u65E0\u6CD5\u6062\u590D",
116
+ onConfirm: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
117
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
118
+ while (1) switch (_context2.prev = _context2.next) {
119
+ case 0:
120
+ _context2.next = 2;
121
+ return handleDelete(data.id);
122
+ case 2:
123
+ case "end":
124
+ return _context2.stop();
125
+ }
126
+ }, _callee2);
127
+ }))
128
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
129
+ size: "small",
130
+ icon: /*#__PURE__*/_react.default.createElement(_icons.DeleteOutlined, null),
131
+ type: "link",
132
+ title: "\u5220\u9664"
133
+ }))));
134
+ };
135
+ var _default = exports.default = OptionsColumn;
@@ -0,0 +1,55 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * 性能指标接口
4
+ */
5
+ interface PerformanceMetrics {
6
+ renderTime: number;
7
+ mountTime: number;
8
+ updateCount: number;
9
+ memoryUsage?: number;
10
+ apiResponseTime?: number;
11
+ errorCount: number;
12
+ lastUpdate: number;
13
+ }
14
+ /**
15
+ * 性能监控 Hook
16
+ */
17
+ export declare const usePerformanceMonitor: (componentName: string) => {
18
+ metrics: {
19
+ updateCount: number;
20
+ errorCount: number;
21
+ renderTime: number;
22
+ mountTime: number;
23
+ memoryUsage?: number | undefined;
24
+ apiResponseTime?: number | undefined;
25
+ lastUpdate: number;
26
+ };
27
+ measureApiCall: <T>(apiCall: () => Promise<T>) => Promise<T>;
28
+ recordError: () => void;
29
+ getPerformanceReport: () => {
30
+ performance: {
31
+ mountPerformance: string;
32
+ apiPerformance: string;
33
+ stability: string;
34
+ };
35
+ recommendations: string[];
36
+ updateCount: number;
37
+ errorCount: number;
38
+ renderTime: number;
39
+ mountTime: number;
40
+ memoryUsage?: number | undefined;
41
+ apiResponseTime?: number | undefined;
42
+ lastUpdate: number;
43
+ component: string;
44
+ };
45
+ };
46
+ /**
47
+ * 性能监控开发工具组件
48
+ * 仅在开发环境显示
49
+ */
50
+ export declare const PerformanceDevTools: React.FC<{
51
+ componentName: string;
52
+ metrics: PerformanceMetrics;
53
+ onGetReport: () => any;
54
+ }>;
55
+ export {};
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.usePerformanceMonitor = exports.PerformanceDevTools = void 0;
8
+ var _react = require("react");
9
+ 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; }
10
+ 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); } }
11
+ 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); }); }; }
12
+ 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; }
13
+ 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; }
14
+ 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; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
+ 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); }
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+ 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."); }
19
+ 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); }
20
+ 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; }
21
+ 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; } }
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+ /**
24
+ * 性能指标接口
25
+ */
26
+
27
+ /**
28
+ * 性能监控 Hook
29
+ */
30
+ var usePerformanceMonitor = exports.usePerformanceMonitor = function usePerformanceMonitor(componentName) {
31
+ var _useState = (0, _react.useState)({
32
+ renderTime: 0,
33
+ mountTime: 0,
34
+ updateCount: 0,
35
+ errorCount: 0,
36
+ lastUpdate: Date.now()
37
+ }),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ metrics = _useState2[0],
40
+ setMetrics = _useState2[1];
41
+ var mountStartTime = (0, _react.useRef)(Date.now());
42
+ var renderStartTime = (0, _react.useRef)(Date.now());
43
+ var updateCount = (0, _react.useRef)(0);
44
+ var errorCount = (0, _react.useRef)(0);
45
+
46
+ // 组件挂载时间测量
47
+ (0, _react.useEffect)(function () {
48
+ var mountTime = Date.now() - mountStartTime.current;
49
+ setMetrics(function (prev) {
50
+ return _objectSpread(_objectSpread({}, prev), {}, {
51
+ mountTime: mountTime,
52
+ lastUpdate: Date.now()
53
+ });
54
+ });
55
+ }, []);
56
+
57
+ // 渲染性能测量 - 移除无限更新的useEffect
58
+ // 改用ref来跟踪更新次数,避免无限重新渲染
59
+ (0, _react.useEffect)(function () {
60
+ updateCount.current++;
61
+ });
62
+
63
+ // 内存使用监控(如果支持)
64
+ (0, _react.useEffect)(function () {
65
+ if ('memory' in performance) {
66
+ var memInfo = performance.memory;
67
+ setMetrics(function (prev) {
68
+ return _objectSpread(_objectSpread({}, prev), {}, {
69
+ memoryUsage: memInfo.usedJSHeapSize / 1024 / 1024 // MB
70
+ });
71
+ });
72
+ }
73
+ }, []);
74
+
75
+ // API响应时间测量
76
+ var measureApiCall = /*#__PURE__*/function () {
77
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(apiCall) {
78
+ var startTime, result, responseTime;
79
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
80
+ while (1) switch (_context.prev = _context.next) {
81
+ case 0:
82
+ startTime = Date.now();
83
+ _context.prev = 1;
84
+ _context.next = 4;
85
+ return apiCall();
86
+ case 4:
87
+ result = _context.sent;
88
+ responseTime = Date.now() - startTime;
89
+ setMetrics(function (prev) {
90
+ return _objectSpread(_objectSpread({}, prev), {}, {
91
+ apiResponseTime: responseTime,
92
+ lastUpdate: Date.now()
93
+ });
94
+ });
95
+ return _context.abrupt("return", result);
96
+ case 10:
97
+ _context.prev = 10;
98
+ _context.t0 = _context["catch"](1);
99
+ errorCount.current++;
100
+ setMetrics(function (prev) {
101
+ return _objectSpread(_objectSpread({}, prev), {}, {
102
+ errorCount: errorCount.current,
103
+ lastUpdate: Date.now()
104
+ });
105
+ });
106
+ throw _context.t0;
107
+ case 15:
108
+ case "end":
109
+ return _context.stop();
110
+ }
111
+ }, _callee, null, [[1, 10]]);
112
+ }));
113
+ return function measureApiCall(_x) {
114
+ return _ref.apply(this, arguments);
115
+ };
116
+ }();
117
+
118
+ // 错误记录
119
+ var recordError = function recordError() {
120
+ errorCount.current++;
121
+ setMetrics(function (prev) {
122
+ return _objectSpread(_objectSpread({}, prev), {}, {
123
+ errorCount: errorCount.current,
124
+ lastUpdate: Date.now()
125
+ });
126
+ });
127
+ };
128
+
129
+ // 性能报告
130
+ var getPerformanceReport = function getPerformanceReport() {
131
+ var currentMetrics = _objectSpread(_objectSpread({}, metrics), {}, {
132
+ updateCount: updateCount.current,
133
+ errorCount: errorCount.current
134
+ });
135
+ var report = _objectSpread(_objectSpread({
136
+ component: componentName
137
+ }, currentMetrics), {}, {
138
+ performance: {
139
+ mountPerformance: currentMetrics.mountTime < 100 ? 'good' : currentMetrics.mountTime < 300 ? 'warning' : 'poor',
140
+ apiPerformance: currentMetrics.apiResponseTime ? currentMetrics.apiResponseTime < 300 ? 'good' : currentMetrics.apiResponseTime < 1000 ? 'warning' : 'poor' : 'unknown',
141
+ stability: currentMetrics.errorCount === 0 ? 'excellent' : currentMetrics.errorCount < 3 ? 'good' : 'poor'
142
+ },
143
+ recommendations: generateRecommendations(currentMetrics)
144
+ });
145
+ return report;
146
+ };
147
+
148
+ // 返回带有实时更新次数的metrics
149
+ var currentMetrics = _objectSpread(_objectSpread({}, metrics), {}, {
150
+ updateCount: updateCount.current,
151
+ errorCount: errorCount.current
152
+ });
153
+ return {
154
+ metrics: currentMetrics,
155
+ measureApiCall: measureApiCall,
156
+ recordError: recordError,
157
+ getPerformanceReport: getPerformanceReport
158
+ };
159
+ };
160
+
161
+ /**
162
+ * 生成性能优化建议
163
+ */
164
+ var generateRecommendations = function generateRecommendations(metrics) {
165
+ var recommendations = [];
166
+ if (metrics.renderTime > 16) {
167
+ recommendations.push('渲染时间过长,考虑使用 React.memo 或 useMemo 优化');
168
+ }
169
+ if (metrics.mountTime > 300) {
170
+ recommendations.push('组件挂载时间过长,考虑代码分割或懒加载');
171
+ }
172
+ if (metrics.apiResponseTime && metrics.apiResponseTime > 1000) {
173
+ recommendations.push('API响应时间过长,考虑添加缓存或优化查询');
174
+ }
175
+ if (metrics.updateCount > 10) {
176
+ recommendations.push('更新频率过高,检查是否有不必要的重新渲染');
177
+ }
178
+ if (metrics.errorCount > 0) {
179
+ recommendations.push('存在错误,建议添加错误边界和异常处理');
180
+ }
181
+ if (metrics.memoryUsage && metrics.memoryUsage > 50) {
182
+ recommendations.push('内存使用过高,检查是否存在内存泄漏');
183
+ }
184
+ if (recommendations.length === 0) {
185
+ recommendations.push('性能表现良好');
186
+ }
187
+ return recommendations;
188
+ };
189
+
190
+ /**
191
+ * 性能监控开发工具组件
192
+ * 仅在开发环境显示
193
+ */
194
+ var PerformanceDevTools = exports.PerformanceDevTools = function PerformanceDevTools(_ref2) {
195
+ var componentName = _ref2.componentName,
196
+ metrics = _ref2.metrics,
197
+ onGetReport = _ref2.onGetReport;
198
+ var _useState3 = (0, _react.useState)(false),
199
+ _useState4 = _slicedToArray(_useState3, 2),
200
+ showDetails = _useState4[0],
201
+ setShowDetails = _useState4[1];
202
+
203
+ // 仅在开发环境显示
204
+ if (process.env.NODE_ENV === 'production') {
205
+ return null;
206
+ }
207
+ var handleShowReport = function handleShowReport() {
208
+ var report = onGetReport();
209
+ console.group("\uD83D\uDE80 Performance Report: ".concat(componentName));
210
+ console.table(report);
211
+ console.groupEnd();
212
+ setShowDetails(!showDetails);
213
+ };
214
+ var getPerformanceColor = function getPerformanceColor(value, thresholds) {
215
+ if (value <= thresholds[0]) return '#52c41a';
216
+ if (value <= thresholds[1]) return '#faad14';
217
+ return '#f5222d';
218
+ };
219
+ return /*#__PURE__*/React.createElement("div", {
220
+ style: {
221
+ position: 'fixed',
222
+ bottom: 20,
223
+ right: 20,
224
+ background: 'rgba(0, 0, 0, 0.8)',
225
+ color: 'white',
226
+ padding: '8px 12px',
227
+ borderRadius: 6,
228
+ fontSize: 12,
229
+ zIndex: 9999,
230
+ fontFamily: 'monospace',
231
+ cursor: 'pointer',
232
+ userSelect: 'none'
233
+ },
234
+ onClick: handleShowReport,
235
+ title: "\u70B9\u51FB\u67E5\u770B\u8BE6\u7EC6\u6027\u80FD\u62A5\u544A"
236
+ }, /*#__PURE__*/React.createElement("div", {
237
+ style: {
238
+ marginBottom: 4,
239
+ fontWeight: 'bold'
240
+ }
241
+ }, "\uD83D\uDCCA ", componentName), /*#__PURE__*/React.createElement("div", {
242
+ style: {
243
+ display: 'flex',
244
+ gap: 8
245
+ }
246
+ }, /*#__PURE__*/React.createElement("span", {
247
+ style: {
248
+ color: getPerformanceColor(metrics.renderTime, [16, 50])
249
+ }
250
+ }, "R: ", metrics.renderTime, "ms"), /*#__PURE__*/React.createElement("span", {
251
+ style: {
252
+ color: getPerformanceColor(metrics.mountTime, [100, 300])
253
+ }
254
+ }, "M: ", metrics.mountTime, "ms"), metrics.apiResponseTime && /*#__PURE__*/React.createElement("span", {
255
+ style: {
256
+ color: getPerformanceColor(metrics.apiResponseTime, [300, 1000])
257
+ }
258
+ }, "API: ", metrics.apiResponseTime, "ms"), /*#__PURE__*/React.createElement("span", {
259
+ style: {
260
+ color: metrics.errorCount === 0 ? '#52c41a' : '#f5222d'
261
+ }
262
+ }, "E: ", metrics.errorCount)), showDetails && /*#__PURE__*/React.createElement("div", {
263
+ style: {
264
+ marginTop: 8,
265
+ padding: 8,
266
+ background: 'rgba(255, 255, 255, 0.1)',
267
+ borderRadius: 4,
268
+ fontSize: 11
269
+ }
270
+ }, /*#__PURE__*/React.createElement("div", null, "\u66F4\u65B0\u6B21\u6570: ", metrics.updateCount), metrics.memoryUsage && /*#__PURE__*/React.createElement("div", null, "\u5185\u5B58: ", metrics.memoryUsage.toFixed(1), "MB"), /*#__PURE__*/React.createElement("div", {
271
+ style: {
272
+ fontSize: 10,
273
+ opacity: 0.7,
274
+ marginTop: 4
275
+ }
276
+ }, "\u6700\u540E\u66F4\u65B0: ", new Date(metrics.lastUpdate).toLocaleTimeString())));
277
+ };
@@ -0,0 +1,97 @@
1
+ /**
2
+ * 请求管理器
3
+ *
4
+ * 负责管理和优化 API 请求,包括:
5
+ * - 请求防抖和节流
6
+ * - 请求取消
7
+ * - 请求去重
8
+ * - 请求缓存
9
+ * - 并发控制
10
+ */
11
+ interface RequestOptions {
12
+ /** 防抖延迟时间(ms) */
13
+ debounceDelay?: number;
14
+ /** 是否启用缓存 */
15
+ enableCache?: boolean;
16
+ /** 缓存有效期(ms) */
17
+ cacheTTL?: number;
18
+ /** 是否启用请求去重 */
19
+ enableDedup?: boolean;
20
+ /** 最大并发数 */
21
+ maxConcurrent?: number;
22
+ }
23
+ /**
24
+ * 请求管理器类
25
+ */
26
+ export declare class RequestManager<T = any> {
27
+ private options;
28
+ private cache;
29
+ private pendingRequests;
30
+ private debounceTimers;
31
+ private lastRequestTime;
32
+ private requestQueue;
33
+ private activeRequests;
34
+ constructor(options?: RequestOptions);
35
+ /**
36
+ * 生成请求缓存键
37
+ */
38
+ private generateCacheKey;
39
+ /**
40
+ * 检查缓存是否有效
41
+ */
42
+ private isCacheValid;
43
+ /**
44
+ * 从缓存获取数据
45
+ */
46
+ private getFromCache;
47
+ /**
48
+ * 保存到缓存
49
+ */
50
+ private saveToCache;
51
+ /**
52
+ * 清理所有缓存
53
+ */
54
+ clearCache(): void;
55
+ /**
56
+ * 清理过期缓存
57
+ */
58
+ cleanupExpiredCache(): void;
59
+ /**
60
+ * 取消所有待处理的请求
61
+ */
62
+ cancelAllPendingRequests(): void;
63
+ /**
64
+ * 取消特定请求
65
+ */
66
+ cancelRequest(params: any): void;
67
+ /**
68
+ * 等待并发槽位
69
+ */
70
+ private waitForSlot;
71
+ /**
72
+ * 执行请求
73
+ */
74
+ request(params: any, requestFn: (params: any, signal: AbortSignal) => Promise<T>): Promise<T>;
75
+ /**
76
+ * 防抖请求
77
+ */
78
+ debouncedRequest(key: string, params: any, requestFn: (params: any, signal: AbortSignal) => Promise<T>): Promise<T>;
79
+ /**
80
+ * 获取统计信息
81
+ */
82
+ getStats(): {
83
+ cacheSize: number;
84
+ pendingRequests: number;
85
+ activeRequests: number;
86
+ queueSize: number;
87
+ };
88
+ /**
89
+ * 清理所有资源
90
+ */
91
+ cleanup(): void;
92
+ }
93
+ /**
94
+ * 创建请求管理器实例的工厂函数
95
+ */
96
+ export declare function createRequestManager<T = any>(options?: RequestOptions): RequestManager<T>;
97
+ export default RequestManager;