@hanwenbo/x-web-pro-components 0.0.1

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 (150) hide show
  1. package/LICENSE +21 -0
  2. package/es/blocks/index.d.ts +1 -0
  3. package/es/blocks/index.js +2 -0
  4. package/es/blocks/shared.d.ts +24 -0
  5. package/es/blocks/shared.js +77 -0
  6. package/es/components/card/index.d.ts +82 -0
  7. package/es/components/card/index.js +361 -0
  8. package/es/components/descriptions/index.d.ts +31 -0
  9. package/es/components/descriptions/index.js +434 -0
  10. package/es/components/field/index.d.ts +75 -0
  11. package/es/components/field/index.js +761 -0
  12. package/es/components/form/captcha.d.ts +19 -0
  13. package/es/components/form/captcha.js +165 -0
  14. package/es/components/form/colorPicker.d.ts +7 -0
  15. package/es/components/form/colorPicker.js +73 -0
  16. package/es/components/form/fieldControls.d.ts +43 -0
  17. package/es/components/form/fieldControls.js +282 -0
  18. package/es/components/form/index.d.ts +285 -0
  19. package/es/components/form/index.js +2268 -0
  20. package/es/components/form/loginForm.d.ts +22 -0
  21. package/es/components/form/loginForm.js +159 -0
  22. package/es/components/form/schemaForm.d.ts +30 -0
  23. package/es/components/form/schemaForm.js +644 -0
  24. package/es/components/form/stepsForm.d.ts +26 -0
  25. package/es/components/form/stepsForm.js +183 -0
  26. package/es/components/form/uploadButton.d.ts +20 -0
  27. package/es/components/form/uploadButton.js +134 -0
  28. package/es/components/form/uploadDragger.d.ts +13 -0
  29. package/es/components/form/uploadDragger.js +144 -0
  30. package/es/components/index.d.ts +9 -0
  31. package/es/components/index.js +9 -0
  32. package/es/components/layout/components/Help/index.d.ts +72 -0
  33. package/es/components/layout/components/Help/index.js +350 -0
  34. package/es/components/layout/index.d.ts +182 -0
  35. package/es/components/layout/index.js +892 -0
  36. package/es/components/list/index.d.ts +80 -0
  37. package/es/components/list/index.js +431 -0
  38. package/es/components/provider/context.d.ts +7 -0
  39. package/es/components/provider/context.js +21 -0
  40. package/es/components/provider/index.d.ts +28 -0
  41. package/es/components/provider/index.js +117 -0
  42. package/es/components/provider/intl.d.ts +38 -0
  43. package/es/components/provider/intl.js +112 -0
  44. package/es/components/provider/types.d.ts +37 -0
  45. package/es/components/provider/types.js +1 -0
  46. package/es/components/provider/useStyle/index.d.ts +28 -0
  47. package/es/components/provider/useStyle/index.js +208 -0
  48. package/es/components/skeleton/index.d.ts +61 -0
  49. package/es/components/skeleton/index.js +388 -0
  50. package/es/components/table/dragSortTable.d.ts +8 -0
  51. package/es/components/table/dragSortTable.js +229 -0
  52. package/es/components/table/editableTable.d.ts +31 -0
  53. package/es/components/table/editableTable.js +507 -0
  54. package/es/components/table/index.d.ts +52 -0
  55. package/es/components/table/index.js +1554 -0
  56. package/es/components/table/listToolBar.d.ts +48 -0
  57. package/es/components/table/listToolBar.js +194 -0
  58. package/es/components/table/search.d.ts +5 -0
  59. package/es/components/table/search.js +13 -0
  60. package/es/index.d.ts +4 -0
  61. package/es/index.js +4 -0
  62. package/es/types.d.ts +219 -0
  63. package/es/types.js +1 -0
  64. package/es/utils/attachPropertiesToComponent.d.ts +1 -0
  65. package/es/utils/attachPropertiesToComponent.js +6 -0
  66. package/es/utils/getRequestParams.d.ts +19 -0
  67. package/es/utils/getRequestParams.js +57 -0
  68. package/es/utils/getTableListColumns.d.ts +20 -0
  69. package/es/utils/getTableListColumns.js +36 -0
  70. package/es/utils/index.d.ts +4 -0
  71. package/es/utils/index.js +4 -0
  72. package/es/utils/loading.d.ts +3 -0
  73. package/es/utils/loading.js +25 -0
  74. package/es/version.d.ts +2 -0
  75. package/es/version.js +2 -0
  76. package/lib/blocks/index.d.ts +1 -0
  77. package/lib/blocks/index.js +5 -0
  78. package/lib/blocks/shared.d.ts +24 -0
  79. package/lib/blocks/shared.js +83 -0
  80. package/lib/components/card/index.d.ts +82 -0
  81. package/lib/components/card/index.js +368 -0
  82. package/lib/components/descriptions/index.d.ts +31 -0
  83. package/lib/components/descriptions/index.js +440 -0
  84. package/lib/components/field/index.d.ts +75 -0
  85. package/lib/components/field/index.js +767 -0
  86. package/lib/components/form/captcha.d.ts +19 -0
  87. package/lib/components/form/captcha.js +172 -0
  88. package/lib/components/form/colorPicker.d.ts +7 -0
  89. package/lib/components/form/colorPicker.js +79 -0
  90. package/lib/components/form/fieldControls.d.ts +43 -0
  91. package/lib/components/form/fieldControls.js +288 -0
  92. package/lib/components/form/index.d.ts +285 -0
  93. package/lib/components/form/index.js +2332 -0
  94. package/lib/components/form/loginForm.d.ts +22 -0
  95. package/lib/components/form/loginForm.js +165 -0
  96. package/lib/components/form/schemaForm.d.ts +30 -0
  97. package/lib/components/form/schemaForm.js +651 -0
  98. package/lib/components/form/stepsForm.d.ts +26 -0
  99. package/lib/components/form/stepsForm.js +189 -0
  100. package/lib/components/form/uploadButton.d.ts +20 -0
  101. package/lib/components/form/uploadButton.js +141 -0
  102. package/lib/components/form/uploadDragger.d.ts +13 -0
  103. package/lib/components/form/uploadDragger.js +151 -0
  104. package/lib/components/index.d.ts +9 -0
  105. package/lib/components/index.js +104 -0
  106. package/lib/components/layout/components/Help/index.d.ts +72 -0
  107. package/lib/components/layout/components/Help/index.js +356 -0
  108. package/lib/components/layout/index.d.ts +182 -0
  109. package/lib/components/layout/index.js +930 -0
  110. package/lib/components/list/index.d.ts +80 -0
  111. package/lib/components/list/index.js +438 -0
  112. package/lib/components/provider/context.d.ts +7 -0
  113. package/lib/components/provider/context.js +27 -0
  114. package/lib/components/provider/index.d.ts +28 -0
  115. package/lib/components/provider/index.js +174 -0
  116. package/lib/components/provider/intl.d.ts +38 -0
  117. package/lib/components/provider/intl.js +118 -0
  118. package/lib/components/provider/types.d.ts +37 -0
  119. package/lib/components/provider/types.js +5 -0
  120. package/lib/components/provider/useStyle/index.d.ts +28 -0
  121. package/lib/components/provider/useStyle/index.js +217 -0
  122. package/lib/components/skeleton/index.d.ts +61 -0
  123. package/lib/components/skeleton/index.js +394 -0
  124. package/lib/components/table/dragSortTable.d.ts +8 -0
  125. package/lib/components/table/dragSortTable.js +236 -0
  126. package/lib/components/table/editableTable.d.ts +31 -0
  127. package/lib/components/table/editableTable.js +514 -0
  128. package/lib/components/table/index.d.ts +52 -0
  129. package/lib/components/table/index.js +1699 -0
  130. package/lib/components/table/listToolBar.d.ts +48 -0
  131. package/lib/components/table/listToolBar.js +200 -0
  132. package/lib/components/table/search.d.ts +5 -0
  133. package/lib/components/table/search.js +20 -0
  134. package/lib/index.d.ts +4 -0
  135. package/lib/index.js +49 -0
  136. package/lib/types.d.ts +219 -0
  137. package/lib/types.js +5 -0
  138. package/lib/utils/attachPropertiesToComponent.d.ts +1 -0
  139. package/lib/utils/attachPropertiesToComponent.js +12 -0
  140. package/lib/utils/getRequestParams.d.ts +19 -0
  141. package/lib/utils/getRequestParams.js +63 -0
  142. package/lib/utils/getTableListColumns.d.ts +20 -0
  143. package/lib/utils/getTableListColumns.js +42 -0
  144. package/lib/utils/index.d.ts +4 -0
  145. package/lib/utils/index.js +49 -0
  146. package/lib/utils/loading.d.ts +3 -0
  147. package/lib/utils/loading.js +31 -0
  148. package/lib/version.d.ts +2 -0
  149. package/lib/version.js +8 -0
  150. package/package.json +68 -0
@@ -0,0 +1,1554 @@
1
+ var _excluded = ["columns", "params", "request", "dataSource", "loading", "actionRef", "formRef", "toolBarRender", "optionsRender", "searchFormRender", "tableRender", "tableExtraRender", "tableClassName", "tableStyle", "onLoad", "onLoadingChange", "onRequestError", "onSizeChange", "tableAlertRender", "tableAlertOptionRender", "cardProps", "paginationLayout", "paginationSize", "toolbar", "search", "beforeSearchSubmit", "options", "columnsState", "headerTitle", "pagination", "rowSelection", "onDataSourceChange", "onChange", "className"],
2
+ _excluded2 = ["className", "style"];
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ 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; }
8
+ 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); } }
9
+ 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); }); }; }
10
+ 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; }
11
+ 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; }
12
+ 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; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
14
+ 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); }
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+ 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."); }
17
+ 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); }
18
+ 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; }
19
+ 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; } }
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
+ 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); }
24
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
25
+ import { Button } from '@hanwenbo/x-web-ui/button';
26
+ import { Card } from '@hanwenbo/x-web-ui/card';
27
+ import { Checkbox } from '@hanwenbo/x-web-ui/checkbox';
28
+ import { Dropdown } from '@hanwenbo/x-web-ui/dropdown';
29
+ import { Form, useForm } from '@hanwenbo/x-web-ui/form';
30
+ import { Pagination } from '@hanwenbo/x-web-ui/pagination';
31
+ import { Table } from '@hanwenbo/x-web-ui/table';
32
+ import { Tooltip } from '@hanwenbo/x-web-ui/tooltip';
33
+ import { cn } from '@hanwenbo/x-web-ui/utils/cn';
34
+ import { ChevronDown, Columns3, Expand, Minimize2, PanelLeft, PanelRight, RefreshCw, Table2 } from 'lucide-react';
35
+ import { attachPropertiesToComponent, mergeTableLoading } from "../../utils";
36
+ import { FieldIndexColumn, FieldStatus, ProField, getEffectiveValueType } from "../field";
37
+ import { ConfigConsumer, IntlConsumer, arEGIntl, caESIntl, createIntl, enUSIntl, esESIntl, frFRIntl, itITIntl, jaJPIntl, msMYIntl, ptBRIntl, ruRUIntl, thTHIntl, viVNIntl, zhCNIntl, zhTWIntl } from "../provider";
38
+ import { DragSortTable } from "./dragSortTable";
39
+ import { EditableTable } from "./editableTable";
40
+ import { ListToolBar } from "./listToolBar";
41
+ import { Search } from "./search";
42
+ import { jsx as _jsx } from "react/jsx-runtime";
43
+ import { jsxs as _jsxs } from "react/jsx-runtime";
44
+ import { Fragment as _Fragment } from "react/jsx-runtime";
45
+ export { EditableTable } from "./editableTable";
46
+ export { DragSortTable } from "./dragSortTable";
47
+ export { ListToolBar } from "./listToolBar";
48
+ export { Search } from "./search";
49
+ export { ConfigConsumer, IntlConsumer, FieldIndexColumn, FieldStatus, arEGIntl, caESIntl, createIntl, enUSIntl, esESIntl, frFRIntl, itITIntl, jaJPIntl, msMYIntl, ptBRIntl, ruRUIntl, thTHIntl, viVNIntl, zhCNIntl, zhTWIntl };
50
+ export var EditableProTable = EditableTable;
51
+ export var RowEditorTable = EditableTable;
52
+ export var CellEditorTable = EditableTable;
53
+ export var IndexColumn = FieldIndexColumn;
54
+ export var TableStatus = FieldStatus;
55
+ export var TableDropdown = Dropdown;
56
+ var getDataIndexKey = function getDataIndexKey(dataIndex) {
57
+ if (!dataIndex) {
58
+ return undefined;
59
+ }
60
+ return Array.isArray(dataIndex) ? dataIndex.join('.') : String(dataIndex);
61
+ };
62
+ var getValueByDataIndex = function getValueByDataIndex(record, dataIndex) {
63
+ if (!dataIndex) {
64
+ return undefined;
65
+ }
66
+ var path = Array.isArray(dataIndex) ? dataIndex : [dataIndex];
67
+ return path.reduce(function (current, key) {
68
+ return current == null ? current : current[key];
69
+ }, record);
70
+ };
71
+ export var getSearchFieldAdaptiveMaxWidth = function getSearchFieldAdaptiveMaxWidth(valueTypeName) {
72
+ if (['select', 'tag', 'treeSelect', 'cascader', 'segmented'].includes(valueTypeName)) {
73
+ return 176;
74
+ }
75
+ if (['date', 'dateMonth', 'dateQuarter', 'dateTime', 'dateWeek', 'dateYear', 'time'].includes(valueTypeName)) {
76
+ return 220;
77
+ }
78
+ if (['dateRange', 'dateMonthRange', 'dateQuarterRange', 'dateTimeRange', 'dateWeekRange', 'dateYearRange', 'timeRange'].includes(valueTypeName)) {
79
+ return 320;
80
+ }
81
+ return undefined;
82
+ };
83
+ export var getSearchFieldAdaptiveColSize = function getSearchFieldAdaptiveColSize(valueTypeName) {
84
+ if (['digitRange', 'dateRange', 'dateMonthRange', 'dateQuarterRange', 'dateTimeRange', 'dateWeekRange', 'dateYearRange', 'timeRange'].includes(valueTypeName)) {
85
+ return 2;
86
+ }
87
+ return undefined;
88
+ };
89
+ var MIN_WIDTH_BY_VALUE_TYPE = {
90
+ avatar: 64,
91
+ image: 64,
92
+ segmented: 84,
93
+ select: 84,
94
+ tag: 84
95
+ };
96
+ var getPixelWidthValue = function getPixelWidthValue(width) {
97
+ if (typeof width === 'number') {
98
+ return width;
99
+ }
100
+ if (typeof width === 'string' && width.endsWith('px')) {
101
+ var parsed = Number(width.slice(0, -2));
102
+ return Number.isFinite(parsed) ? parsed : undefined;
103
+ }
104
+ return undefined;
105
+ };
106
+ var stableSerializeValue = function stableSerializeValue(value) {
107
+ try {
108
+ return JSON.stringify(value, function (_key, currentValue) {
109
+ if (currentValue && _typeof(currentValue) === 'object' && !Array.isArray(currentValue) && !(currentValue instanceof Date)) {
110
+ return Object.keys(currentValue).sort().reduce(function (acc, key) {
111
+ acc[key] = currentValue[key];
112
+ return acc;
113
+ }, {});
114
+ }
115
+ return currentValue;
116
+ });
117
+ } catch (_unused) {
118
+ return '';
119
+ }
120
+ };
121
+ var getAutoColumnMinWidth = function getAutoColumnMinWidth(columnItem) {
122
+ if (columnItem.minWidth != null) {
123
+ return columnItem.minWidth;
124
+ }
125
+ var effectiveValueType = getEffectiveValueType(columnItem.valueType, columnItem.valueEnum);
126
+ var normalizedValueType = Boolean(columnItem.valueEnum) && effectiveValueType === 'text' ? 'select' : effectiveValueType;
127
+ var targetMinWidth = MIN_WIDTH_BY_VALUE_TYPE[normalizedValueType];
128
+ var resolvedWidth = getPixelWidthValue(columnItem.width);
129
+ if (targetMinWidth == null || resolvedWidth == null || resolvedWidth >= targetMinWidth) {
130
+ return undefined;
131
+ }
132
+ return targetMinWidth;
133
+ };
134
+ var normalizeSearchValues = function normalizeSearchValues(values, columns) {
135
+ var nextValues = {};
136
+ columns.forEach(function (columnItem) {
137
+ var dataIndexKey = getDataIndexKey(columnItem.dataIndex);
138
+ if (!dataIndexKey) {
139
+ return;
140
+ }
141
+ var value = values[dataIndexKey];
142
+ if (columnItem.search && _typeof(columnItem.search) === 'object' && columnItem.search.transform) {
143
+ Object.assign(nextValues, columnItem.search.transform(value));
144
+ return;
145
+ }
146
+ nextValues[dataIndexKey] = value;
147
+ });
148
+ return nextValues;
149
+ };
150
+ var hasExplicitSearchInitialValue = function hasExplicitSearchInitialValue(columnItem) {
151
+ return Object.prototype.hasOwnProperty.call(columnItem, 'searchInitialValue') && columnItem.searchInitialValue !== undefined;
152
+ };
153
+ var getSearchInitialFormValues = function getSearchInitialFormValues(columns) {
154
+ var initialValues = {};
155
+ columns.forEach(function (columnItem) {
156
+ if (!hasExplicitSearchInitialValue(columnItem)) {
157
+ return;
158
+ }
159
+ var dataIndexKey = getDataIndexKey(columnItem.dataIndex);
160
+ if (dataIndexKey) {
161
+ initialValues[dataIndexKey] = columnItem.searchInitialValue;
162
+ }
163
+ });
164
+ return initialValues;
165
+ };
166
+ var resolveSchemaProps = function resolveSchemaProps(value, form, schema) {
167
+ if (typeof value === 'function') {
168
+ return value(form, schema);
169
+ }
170
+ return value;
171
+ };
172
+ var normalizeToolbarActions = function normalizeToolbarActions(toolBarRender, action, selectedRows) {
173
+ if (toolBarRender === false) {
174
+ return [];
175
+ }
176
+ var nodes = toolBarRender === null || toolBarRender === void 0 ? void 0 : toolBarRender(action, selectedRows);
177
+ return React.Children.toArray(nodes);
178
+ };
179
+ var normalizeRenderNode = function normalizeRenderNode(value) {
180
+ if (value == null || value === false) {
181
+ return null;
182
+ }
183
+ var children = React.Children.toArray(value);
184
+ return children.length === 1 ? children[0] : children;
185
+ };
186
+ var mapTableSize = function mapTableSize(size) {
187
+ return size === 'mini' ? 'small' : size;
188
+ };
189
+ var normalizeTableSize = function normalizeTableSize(size) {
190
+ return size === 'small' ? 'mini' : size;
191
+ };
192
+ var PRO_TABLE_SECTION_GAP = 'var(--x-space-4)';
193
+ var PRO_TABLE_STACK_CLASS = "flex flex-col [gap:".concat(PRO_TABLE_SECTION_GAP, "]");
194
+ var PRO_TABLE_SECTION_MARGIN_BOTTOM_CLASS = "[margin-bottom:".concat(PRO_TABLE_SECTION_GAP, "]");
195
+ var getNormalizedPaginationPlacements = function getNormalizedPaginationPlacements(pagination) {
196
+ var _pagination$placement, _pagination$placement2;
197
+ if (!pagination || pagination === false) {
198
+ return undefined;
199
+ }
200
+ return (_pagination$placement = (_pagination$placement2 = pagination.placement) === null || _pagination$placement2 === void 0 ? void 0 : _pagination$placement2.map(function (item) {
201
+ return item === 'topStart' ? 'topLeft' : item === 'topEnd' ? 'topRight' : item === 'bottomStart' ? 'bottomLeft' : item === 'bottomEnd' ? 'bottomRight' : item;
202
+ })) !== null && _pagination$placement !== void 0 ? _pagination$placement : pagination.position;
203
+ };
204
+ var getPaginationRange = function getPaginationRange(current, pageSize, total, currentCount) {
205
+ if (total <= 0) {
206
+ return [0, 0];
207
+ }
208
+ var start = (current - 1) * pageSize + 1;
209
+ var end = Math.min(total, start + Math.max(currentCount, 1) - 1);
210
+ return [start, end];
211
+ };
212
+ var renderToolbar = function renderToolbar(headerTitle, toolBarActions, action, selectedRows, settings, search) {
213
+ if (!headerTitle && !(toolBarActions !== null && toolBarActions !== void 0 && toolBarActions.length) && !(settings !== null && settings !== void 0 && settings.length) && !search) {
214
+ return null;
215
+ }
216
+ return /*#__PURE__*/_jsx(ListToolBar, {
217
+ variant: "plain",
218
+ title: headerTitle,
219
+ actions: toolBarActions || [],
220
+ settings: settings || [],
221
+ search: search
222
+ });
223
+ };
224
+ var getColumnStateKey = function getColumnStateKey(columnItem) {
225
+ var _ref, _ref2, _columnItem$key;
226
+ return String((_ref = (_ref2 = (_columnItem$key = columnItem.key) !== null && _columnItem$key !== void 0 ? _columnItem$key : getDataIndexKey(columnItem.dataIndex)) !== null && _ref2 !== void 0 ? _ref2 : columnItem.title) !== null && _ref !== void 0 ? _ref : '');
227
+ };
228
+ var readColumnsState = function readColumnsState(persistenceKey, persistenceType) {
229
+ var storage = getColumnsStateStorage(persistenceType);
230
+ if (!persistenceKey || !storage) {
231
+ return undefined;
232
+ }
233
+ var rawValue = safeReadStorageItem(storage, persistenceKey);
234
+ if (!rawValue) {
235
+ return undefined;
236
+ }
237
+ try {
238
+ return JSON.parse(rawValue);
239
+ } catch (_unused2) {
240
+ return undefined;
241
+ }
242
+ };
243
+ var getColumnsStateStorage = function getColumnsStateStorage(persistenceType) {
244
+ if (!persistenceType || typeof window === 'undefined') {
245
+ return undefined;
246
+ }
247
+ try {
248
+ return persistenceType === 'sessionStorage' ? window.sessionStorage : window.localStorage;
249
+ } catch (_unused3) {
250
+ return undefined;
251
+ }
252
+ };
253
+ var safeReadStorageItem = function safeReadStorageItem(storage, key) {
254
+ try {
255
+ return storage.getItem(key);
256
+ } catch (_unused4) {
257
+ return null;
258
+ }
259
+ };
260
+ var safeWriteStorageItem = function safeWriteStorageItem(storage, key, value) {
261
+ try {
262
+ storage.setItem(key, value);
263
+ } catch (_unused5) {
264
+ // Ignore storage write failures, for example in private mode or restricted iframes.
265
+ }
266
+ };
267
+ var BaseProTable = function BaseProTable(_ref3) {
268
+ var _ref4, _options$density, _options$fullScreen, _options$reload, _options$setting, _options$search, _options$variant;
269
+ var columns = _ref3.columns,
270
+ params = _ref3.params,
271
+ request = _ref3.request,
272
+ controlledDataSource = _ref3.dataSource,
273
+ controlledLoading = _ref3.loading,
274
+ actionRef = _ref3.actionRef,
275
+ formRef = _ref3.formRef,
276
+ toolBarRender = _ref3.toolBarRender,
277
+ optionsRender = _ref3.optionsRender,
278
+ searchFormRender = _ref3.searchFormRender,
279
+ tableRender = _ref3.tableRender,
280
+ tableExtraRender = _ref3.tableExtraRender,
281
+ tableClassName = _ref3.tableClassName,
282
+ tableStyle = _ref3.tableStyle,
283
+ onLoad = _ref3.onLoad,
284
+ onLoadingChange = _ref3.onLoadingChange,
285
+ onRequestError = _ref3.onRequestError,
286
+ onSizeChange = _ref3.onSizeChange,
287
+ tableAlertRender = _ref3.tableAlertRender,
288
+ tableAlertOptionRender = _ref3.tableAlertOptionRender,
289
+ cardProps = _ref3.cardProps,
290
+ _ref3$paginationLayou = _ref3.paginationLayout,
291
+ paginationLayout = _ref3$paginationLayou === void 0 ? 'inside' : _ref3$paginationLayou,
292
+ paginationSize = _ref3.paginationSize,
293
+ toolbar = _ref3.toolbar,
294
+ _ref3$search = _ref3.search,
295
+ search = _ref3$search === void 0 ? true : _ref3$search,
296
+ beforeSearchSubmit = _ref3.beforeSearchSubmit,
297
+ _ref3$options = _ref3.options,
298
+ options = _ref3$options === void 0 ? true : _ref3$options,
299
+ columnsState = _ref3.columnsState,
300
+ headerTitle = _ref3.headerTitle,
301
+ pagination = _ref3.pagination,
302
+ rowSelection = _ref3.rowSelection,
303
+ onDataSourceChange = _ref3.onDataSourceChange,
304
+ _onChange3 = _ref3.onChange,
305
+ className = _ref3.className,
306
+ tableProps = _objectWithoutProperties(_ref3, _excluded);
307
+ var _useForm = useForm(),
308
+ _useForm2 = _slicedToArray(_useForm, 1),
309
+ searchForm = _useForm2[0];
310
+ var _useState = useState(false),
311
+ _useState2 = _slicedToArray(_useState, 2),
312
+ requestLoading = _useState2[0],
313
+ setRequestLoading = _useState2[1];
314
+ var _useState3 = useState(controlledDataSource || []),
315
+ _useState4 = _slicedToArray(_useState3, 2),
316
+ dataSource = _useState4[0],
317
+ setDataSource = _useState4[1];
318
+ var searchColumns = useMemo(function () {
319
+ return columns.filter(function (columnItem) {
320
+ return !columnItem.hideInSearch && columnItem.search !== false && columnItem.valueType !== 'option' && columnItem.dataIndex;
321
+ }).sort(function (a, b) {
322
+ return (a.order || 0) - (b.order || 0);
323
+ });
324
+ }, [columns]);
325
+ var hasSearchForm = search !== false && searchColumns.length > 0;
326
+ var resolveSearchValues = useCallback(function (values) {
327
+ var targetColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : searchColumns;
328
+ var normalizedSearchValues = normalizeSearchValues(values, targetColumns);
329
+ return beforeSearchSubmit ? beforeSearchSubmit(normalizedSearchValues) : normalizedSearchValues;
330
+ }, [beforeSearchSubmit, searchColumns]);
331
+ var searchInitialSnapshotRef = useRef(undefined);
332
+ if (!searchInitialSnapshotRef.current) {
333
+ var initialValueColumns = hasSearchForm ? searchColumns.filter(hasExplicitSearchInitialValue) : [];
334
+ var formValues = getSearchInitialFormValues(initialValueColumns);
335
+ searchInitialSnapshotRef.current = {
336
+ formValues: formValues,
337
+ requestValues: initialValueColumns.length > 0 ? resolveSearchValues(formValues, initialValueColumns) : {}
338
+ };
339
+ }
340
+ var searchInitialFormValues = searchInitialSnapshotRef.current.formValues;
341
+ var getResetSearchValues = useCallback(function () {
342
+ var _searchInitialSnapsho;
343
+ return _objectSpread({}, ((_searchInitialSnapsho = searchInitialSnapshotRef.current) === null || _searchInitialSnapsho === void 0 ? void 0 : _searchInitialSnapsho.requestValues) || {});
344
+ }, []);
345
+ var _useState5 = useState(function () {
346
+ return getResetSearchValues();
347
+ }),
348
+ _useState6 = _slicedToArray(_useState5, 2),
349
+ searchValues = _useState6[0],
350
+ setSearchValues = _useState6[1];
351
+ var _useState7 = useState(false),
352
+ _useState8 = _slicedToArray(_useState7, 2),
353
+ fullscreen = _useState8[0],
354
+ setFullscreen = _useState8[1];
355
+ var _useState9 = useState(mapTableSize(tableProps.size || 'middle')),
356
+ _useState10 = _slicedToArray(_useState9, 2),
357
+ tableSize = _useState10[0],
358
+ setTableSize = _useState10[1];
359
+ var _useState11 = useState(function () {
360
+ return (columnsState === null || columnsState === void 0 ? void 0 : columnsState.value) || readColumnsState(columnsState === null || columnsState === void 0 ? void 0 : columnsState.persistenceKey, columnsState === null || columnsState === void 0 ? void 0 : columnsState.persistenceType) || (columnsState === null || columnsState === void 0 ? void 0 : columnsState.defaultValue) || {};
361
+ }),
362
+ _useState12 = _slicedToArray(_useState11, 2),
363
+ innerColumnsState = _useState12[0],
364
+ setInnerColumnsState = _useState12[1];
365
+ var _useState13 = useState({
366
+ current: pagination && pagination !== false ? pagination.current || pagination.defaultCurrent || 1 : 1,
367
+ pageSize: pagination && pagination !== false ? pagination.pageSize || pagination.defaultPageSize || 10 : 10,
368
+ total: pagination && pagination !== false ? pagination.total || (controlledDataSource === null || controlledDataSource === void 0 ? void 0 : controlledDataSource.length) || 0 : 0
369
+ }),
370
+ _useState14 = _slicedToArray(_useState13, 2),
371
+ pageInfo = _useState14[0],
372
+ _setPageInfo = _useState14[1];
373
+ var _useState15 = useState({}),
374
+ _useState16 = _slicedToArray(_useState15, 2),
375
+ sortState = _useState16[0],
376
+ setSortState = _useState16[1];
377
+ var _useState17 = useState({}),
378
+ _useState18 = _slicedToArray(_useState17, 2),
379
+ filterState = _useState18[0],
380
+ setFilterState = _useState18[1];
381
+ var normalizedPaginationConfig = pagination === false ? false : pagination || {};
382
+ var stableParamsKey = useMemo(function () {
383
+ return stableSerializeValue(params || {});
384
+ }, [params]);
385
+ var stableParams = useMemo(function () {
386
+ return params || {};
387
+ }, [stableParamsKey]);
388
+ var paginationPlacements = getNormalizedPaginationPlacements(normalizedPaginationConfig);
389
+ var externalPaginationEnabled = normalizedPaginationConfig !== false && paginationLayout === 'outside';
390
+ var showExternalBottomPagination = externalPaginationEnabled && (!paginationPlacements || paginationPlacements.length === 0 || paginationPlacements.some(function (position) {
391
+ return position.startsWith('bottom');
392
+ }));
393
+ var resolvedPaginationSize = (normalizedPaginationConfig !== false ? normalizedPaginationConfig === null || normalizedPaginationConfig === void 0 ? void 0 : normalizedPaginationConfig.size : undefined) || paginationSize || (tableSize === 'small' ? 'middle' : tableSize);
394
+ var hideInternalPagination = showExternalBottomPagination;
395
+ var _useState19 = useState(function () {
396
+ return (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) || (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.defaultSelectedRowKeys) || [];
397
+ }),
398
+ _useState20 = _slicedToArray(_useState19, 2),
399
+ innerSelectedRowKeys = _useState20[0],
400
+ setInnerSelectedRowKeys = _useState20[1];
401
+ var _useState21 = useState([]),
402
+ _useState22 = _slicedToArray(_useState21, 2),
403
+ selectedRows = _useState22[0],
404
+ setSelectedRows = _useState22[1];
405
+ var requestRef = useRef(request);
406
+ var mergedColumnsState = (columnsState === null || columnsState === void 0 ? void 0 : columnsState.value) || innerColumnsState;
407
+ var mergedSelectedRowKeys = ((_ref4 = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) !== null && _ref4 !== void 0 ? _ref4 : innerSelectedRowKeys) || [];
408
+ var optionConfig = options === false ? false : {
409
+ density: options === true ? true : (_options$density = options === null || options === void 0 ? void 0 : options.density) !== null && _options$density !== void 0 ? _options$density : true,
410
+ dropdownHeader: options === true ? undefined : options === null || options === void 0 ? void 0 : options.dropdownHeader,
411
+ dropdownText: options === true ? undefined : options === null || options === void 0 ? void 0 : options.dropdownText,
412
+ fullScreen: options === true ? false : (_options$fullScreen = options === null || options === void 0 ? void 0 : options.fullScreen) !== null && _options$fullScreen !== void 0 ? _options$fullScreen : false,
413
+ reload: options === true ? true : (_options$reload = options === null || options === void 0 ? void 0 : options.reload) !== null && _options$reload !== void 0 ? _options$reload : true,
414
+ setting: options === true ? true : (_options$setting = options === null || options === void 0 ? void 0 : options.setting) !== null && _options$setting !== void 0 ? _options$setting : true,
415
+ size: options === true ? undefined : options === null || options === void 0 ? void 0 : options.size,
416
+ search: options === true ? false : (_options$search = options === null || options === void 0 ? void 0 : options.search) !== null && _options$search !== void 0 ? _options$search : false,
417
+ variant: options === true ? 'icon' : (_options$variant = options === null || options === void 0 ? void 0 : options.variant) !== null && _options$variant !== void 0 ? _options$variant : 'icon'
418
+ };
419
+ useEffect(function () {
420
+ setTableSize(mapTableSize(tableProps.size || tableSize));
421
+ }, [tableProps.size]);
422
+ useEffect(function () {
423
+ requestRef.current = request;
424
+ }, [request]);
425
+ useEffect(function () {
426
+ if (columnsState !== null && columnsState !== void 0 && columnsState.value) {
427
+ setInnerColumnsState(columnsState.value);
428
+ }
429
+ }, [columnsState === null || columnsState === void 0 ? void 0 : columnsState.value]);
430
+ useEffect(function () {
431
+ if ((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) !== undefined) {
432
+ setInnerSelectedRowKeys((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) || []);
433
+ }
434
+ }, [rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys]);
435
+ useEffect(function () {
436
+ var storage = getColumnsStateStorage(columnsState === null || columnsState === void 0 ? void 0 : columnsState.persistenceType);
437
+ if (!(columnsState !== null && columnsState !== void 0 && columnsState.persistenceKey) || !storage) {
438
+ return;
439
+ }
440
+ safeWriteStorageItem(storage, columnsState.persistenceKey, JSON.stringify(mergedColumnsState));
441
+ }, [columnsState === null || columnsState === void 0 ? void 0 : columnsState.persistenceKey, columnsState === null || columnsState === void 0 ? void 0 : columnsState.persistenceType, mergedColumnsState]);
442
+ var tableColumns = useMemo(function () {
443
+ return columns.filter(function (columnItem) {
444
+ if (columnItem.hideInTable) {
445
+ return false;
446
+ }
447
+ var columnState = mergedColumnsState[getColumnStateKey(columnItem)];
448
+ return (columnState === null || columnState === void 0 ? void 0 : columnState.show) !== false;
449
+ }).map(function (columnItem) {
450
+ var _mergedColumnsState$g, _mergedColumnsState$g2;
451
+ return _objectSpread(_objectSpread({}, columnItem), {}, {
452
+ fixed: (_mergedColumnsState$g = (_mergedColumnsState$g2 = mergedColumnsState[getColumnStateKey(columnItem)]) === null || _mergedColumnsState$g2 === void 0 ? void 0 : _mergedColumnsState$g2.fixed) !== null && _mergedColumnsState$g !== void 0 ? _mergedColumnsState$g : columnItem.fixed,
453
+ minWidth: getAutoColumnMinWidth(columnItem),
454
+ render: columnItem.render ? columnItem.render : function (value, record, index) {
455
+ var rawValue = getValueByDataIndex(record, columnItem.dataIndex);
456
+ var nextValue = columnItem.renderText ? columnItem.renderText(rawValue, record, index) : rawValue;
457
+ return /*#__PURE__*/_jsx(ProField, {
458
+ text: nextValue,
459
+ valueType: columnItem.valueType,
460
+ valueEnum: columnItem.valueEnum
461
+ });
462
+ }
463
+ });
464
+ });
465
+ }, [columns, mergedColumnsState]);
466
+ var fetchData = useCallback( /*#__PURE__*/function () {
467
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(overrides) {
468
+ var _overrides$searchValu, _overrides$sortState, _overrides$filterStat, _overrides$pageInfo;
469
+ var effectiveSearchValues, effectiveSortState, effectiveFilterState, effectivePageInfo, nextDataSource, result, _nextDataSource;
470
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
471
+ while (1) switch (_context.prev = _context.next) {
472
+ case 0:
473
+ effectiveSearchValues = (_overrides$searchValu = overrides === null || overrides === void 0 ? void 0 : overrides.searchValues) !== null && _overrides$searchValu !== void 0 ? _overrides$searchValu : searchValues;
474
+ effectiveSortState = (_overrides$sortState = overrides === null || overrides === void 0 ? void 0 : overrides.sortState) !== null && _overrides$sortState !== void 0 ? _overrides$sortState : sortState;
475
+ effectiveFilterState = (_overrides$filterStat = overrides === null || overrides === void 0 ? void 0 : overrides.filterState) !== null && _overrides$filterStat !== void 0 ? _overrides$filterStat : filterState;
476
+ effectivePageInfo = (_overrides$pageInfo = overrides === null || overrides === void 0 ? void 0 : overrides.pageInfo) !== null && _overrides$pageInfo !== void 0 ? _overrides$pageInfo : {
477
+ current: pageInfo.current,
478
+ pageSize: pageInfo.pageSize
479
+ };
480
+ if (requestRef.current) {
481
+ _context.next = 11;
482
+ break;
483
+ }
484
+ nextDataSource = controlledDataSource || [];
485
+ setDataSource(nextDataSource);
486
+ onLoad === null || onLoad === void 0 || onLoad(nextDataSource);
487
+ onDataSourceChange === null || onDataSourceChange === void 0 || onDataSourceChange(nextDataSource);
488
+ _setPageInfo(function (prev) {
489
+ return _objectSpread(_objectSpread({}, prev), {}, {
490
+ total: pagination && pagination !== false ? pagination.total || nextDataSource.length : nextDataSource.length
491
+ });
492
+ });
493
+ return _context.abrupt("return");
494
+ case 11:
495
+ setRequestLoading(true);
496
+ _context.prev = 12;
497
+ _context.next = 15;
498
+ return requestRef.current(_objectSpread(_objectSpread(_objectSpread({}, stableParams), effectiveSearchValues), {}, {
499
+ current: effectivePageInfo.current || 1,
500
+ pageSize: effectivePageInfo.pageSize || 10
501
+ }), effectiveSortState, effectiveFilterState);
502
+ case 15:
503
+ result = _context.sent;
504
+ if (!(result.success === false)) {
505
+ _context.next = 19;
506
+ break;
507
+ }
508
+ onRequestError === null || onRequestError === void 0 || onRequestError(new Error(result !== null && result !== void 0 && result.data ? '请求返回失败' : '请求失败'));
509
+ return _context.abrupt("return");
510
+ case 19:
511
+ _nextDataSource = result.data || [];
512
+ setDataSource(_nextDataSource);
513
+ onLoad === null || onLoad === void 0 || onLoad(_nextDataSource);
514
+ onDataSourceChange === null || onDataSourceChange === void 0 || onDataSourceChange(_nextDataSource);
515
+ _setPageInfo(function (prev) {
516
+ return _objectSpread(_objectSpread({}, prev), {}, {
517
+ total: result.total || _nextDataSource.length
518
+ });
519
+ });
520
+ _context.next = 30;
521
+ break;
522
+ case 26:
523
+ _context.prev = 26;
524
+ _context.t0 = _context["catch"](12);
525
+ onRequestError === null || onRequestError === void 0 || onRequestError(_context.t0);
526
+ console.error('ProTable request error:', _context.t0);
527
+ case 30:
528
+ _context.prev = 30;
529
+ setRequestLoading(false);
530
+ return _context.finish(30);
531
+ case 33:
532
+ case "end":
533
+ return _context.stop();
534
+ }
535
+ }, _callee, null, [[12, 26, 30, 33]]);
536
+ }));
537
+ return function (_x) {
538
+ return _ref5.apply(this, arguments);
539
+ };
540
+ }(), [controlledDataSource, filterState, pagination, stableParams, searchValues, pageInfo.current, pageInfo.pageSize, sortState, onLoad, onDataSourceChange, onRequestError]);
541
+ useEffect(function () {
542
+ fetchData();
543
+ }, [fetchData]);
544
+ var mergedLoading = useMemo(function () {
545
+ return mergeTableLoading(controlledLoading, requestLoading);
546
+ }, [controlledLoading, requestLoading]);
547
+ var mergedLoadingBoolean = useMemo(function () {
548
+ return Boolean(mergedLoading && (typeof mergedLoading === 'boolean' ? mergedLoading : mergedLoading.spinning));
549
+ }, [mergedLoading]);
550
+ useEffect(function () {
551
+ onLoadingChange === null || onLoadingChange === void 0 || onLoadingChange(mergedLoadingBoolean ? true : undefined);
552
+ }, [mergedLoadingBoolean, onLoadingChange]);
553
+ var clearSelectionState = useCallback(function () {
554
+ var _onChange, _ref6;
555
+ if (!rowSelection) {
556
+ return;
557
+ }
558
+ if (rowSelection.selectedRowKeys === undefined) {
559
+ setInnerSelectedRowKeys([]);
560
+ }
561
+ setSelectedRows([]);
562
+ (_onChange = (_ref6 = rowSelection).onChange) === null || _onChange === void 0 || _onChange.call(_ref6, [], []);
563
+ }, [rowSelection]);
564
+ var action = useMemo(function () {
565
+ return {
566
+ reload: fetchData,
567
+ reloadAndRest: function () {
568
+ var _reloadAndRest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
569
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
570
+ while (1) switch (_context2.prev = _context2.next) {
571
+ case 0:
572
+ if (hasSearchForm) {
573
+ searchForm.resetFields();
574
+ }
575
+ setSearchValues(getResetSearchValues());
576
+ setSortState({});
577
+ setFilterState({});
578
+ clearSelectionState();
579
+ _setPageInfo(function (prev) {
580
+ return _objectSpread(_objectSpread({}, prev), {}, {
581
+ current: 1
582
+ });
583
+ });
584
+ case 6:
585
+ case "end":
586
+ return _context2.stop();
587
+ }
588
+ }, _callee2);
589
+ }));
590
+ function reloadAndRest() {
591
+ return _reloadAndRest.apply(this, arguments);
592
+ }
593
+ return reloadAndRest;
594
+ }(),
595
+ reset: function () {
596
+ var _reset = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
597
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
598
+ while (1) switch (_context3.prev = _context3.next) {
599
+ case 0:
600
+ if (hasSearchForm) {
601
+ searchForm.resetFields();
602
+ }
603
+ setSearchValues(getResetSearchValues());
604
+ setSortState({});
605
+ setFilterState({});
606
+ clearSelectionState();
607
+ _setPageInfo(function (prev) {
608
+ return _objectSpread(_objectSpread({}, prev), {}, {
609
+ current: 1
610
+ });
611
+ });
612
+ case 6:
613
+ case "end":
614
+ return _context3.stop();
615
+ }
616
+ }, _callee3);
617
+ }));
618
+ function reset() {
619
+ return _reset.apply(this, arguments);
620
+ }
621
+ return reset;
622
+ }(),
623
+ setPageInfo: function setPageInfo(partialPageInfo) {
624
+ _setPageInfo(function (prev) {
625
+ return _objectSpread(_objectSpread({}, prev), partialPageInfo);
626
+ });
627
+ },
628
+ clearSelected: function clearSelected() {
629
+ clearSelectionState();
630
+ },
631
+ fullScreen: function fullScreen() {
632
+ setFullscreen(function (prev) {
633
+ return !prev;
634
+ });
635
+ }
636
+ };
637
+ }, [clearSelectionState, fetchData, getResetSearchValues, hasSearchForm, searchForm]);
638
+ useEffect(function () {
639
+ if (actionRef) {
640
+ actionRef.current = action;
641
+ }
642
+ }, [action, actionRef]);
643
+ useEffect(function () {
644
+ if (formRef) {
645
+ formRef.current = hasSearchForm ? searchForm : undefined;
646
+ }
647
+ }, [formRef, hasSearchForm, searchForm]);
648
+ var updateColumnsState = function updateColumnsState(nextValue) {
649
+ var _columnsState$onChang;
650
+ if (!(columnsState !== null && columnsState !== void 0 && columnsState.value)) {
651
+ setInnerColumnsState(nextValue);
652
+ }
653
+ columnsState === null || columnsState === void 0 || (_columnsState$onChang = columnsState.onChange) === null || _columnsState$onChang === void 0 || _columnsState$onChang.call(columnsState, nextValue);
654
+ };
655
+ var setColumnVisibility = useCallback(function (columnKey, show) {
656
+ var currentState = mergedColumnsState[columnKey] || {};
657
+ updateColumnsState(_objectSpread(_objectSpread({}, mergedColumnsState), {}, _defineProperty({}, columnKey, _objectSpread(_objectSpread({}, currentState), {}, {
658
+ show: show
659
+ }))));
660
+ }, [mergedColumnsState]);
661
+ var toggleColumnFixed = useCallback(function (columnKey, side) {
662
+ var currentState = mergedColumnsState[columnKey] || {};
663
+ var nextFixed = currentState.fixed === side ? undefined : side;
664
+ updateColumnsState(_objectSpread(_objectSpread({}, mergedColumnsState), {}, _defineProperty({}, columnKey, _objectSpread(_objectSpread({}, currentState), {}, {
665
+ fixed: nextFixed,
666
+ show: nextFixed ? true : currentState.show
667
+ }))));
668
+ }, [mergedColumnsState]);
669
+ var toolbarSettings = useMemo(function () {
670
+ if (!optionConfig) {
671
+ return [];
672
+ }
673
+ var nextSettings = [];
674
+ var columnSettingItems = optionConfig.setting ? columns.filter(function (columnItem) {
675
+ return !columnItem.hideInTable;
676
+ }).map(function (columnItem) {
677
+ var _mergedColumnsState$c, _mergedColumnsState$c2, _mergedColumnsState$c3;
678
+ var columnKey = getColumnStateKey(columnItem);
679
+ var isVisible = ((_mergedColumnsState$c = mergedColumnsState[columnKey]) === null || _mergedColumnsState$c === void 0 ? void 0 : _mergedColumnsState$c.show) !== false;
680
+ var fixed = (_mergedColumnsState$c2 = (_mergedColumnsState$c3 = mergedColumnsState[columnKey]) === null || _mergedColumnsState$c3 === void 0 ? void 0 : _mergedColumnsState$c3.fixed) !== null && _mergedColumnsState$c2 !== void 0 ? _mergedColumnsState$c2 : columnItem.fixed;
681
+ var columnTitle = String(typeof columnItem.title === 'function' ? columnKey : columnItem.title || columnItem.dataIndex || columnKey);
682
+ return {
683
+ key: "".concat(columnKey, "::setting"),
684
+ closeOnClick: false,
685
+ label: /*#__PURE__*/_jsxs("div", {
686
+ className: "grid w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 pr-2",
687
+ children: [/*#__PURE__*/_jsx(Checkbox, {
688
+ checked: isVisible,
689
+ className: "min-w-0",
690
+ onChange: function onChange(checked) {
691
+ setColumnVisibility(columnKey, checked);
692
+ },
693
+ children: /*#__PURE__*/_jsx("span", {
694
+ className: "truncate text-sm text-foreground",
695
+ children: columnTitle
696
+ })
697
+ }), /*#__PURE__*/_jsx("div", {
698
+ className: "flex shrink-0 items-center justify-self-end",
699
+ children: /*#__PURE__*/_jsxs("div", {
700
+ className: "flex items-center gap-1",
701
+ children: [/*#__PURE__*/_jsx(Tooltip, {
702
+ title: fixed === 'left' ? '取消左侧固定' : '固定到左侧',
703
+ children: /*#__PURE__*/_jsx("span", {
704
+ className: "inline-flex",
705
+ children: /*#__PURE__*/_jsxs(Button, {
706
+ htmlType: "button",
707
+ size: "mini",
708
+ variant: fixed === 'left' ? 'default' : 'ghost',
709
+ className: cn('h-7 w-7 px-0', fixed !== 'left' && 'text-muted-foreground'),
710
+ onClick: function onClick(event) {
711
+ event.preventDefault();
712
+ event.stopPropagation();
713
+ toggleColumnFixed(columnKey, 'left');
714
+ },
715
+ "aria-label": fixed === 'left' ? '取消左侧固定' : '固定到左侧',
716
+ children: [/*#__PURE__*/_jsx(PanelLeft, {
717
+ size: 16,
718
+ className: "shrink-0"
719
+ }), /*#__PURE__*/_jsx("span", {
720
+ className: "sr-only",
721
+ children: fixed === 'left' ? '取消左侧固定' : '固定到左侧'
722
+ })]
723
+ })
724
+ })
725
+ }), /*#__PURE__*/_jsx(Tooltip, {
726
+ title: fixed === 'right' ? '取消右侧固定' : '固定到右侧',
727
+ children: /*#__PURE__*/_jsx("span", {
728
+ className: "inline-flex",
729
+ children: /*#__PURE__*/_jsxs(Button, {
730
+ htmlType: "button",
731
+ size: "mini",
732
+ variant: fixed === 'right' ? 'default' : 'ghost',
733
+ className: cn('h-7 w-7 px-0', fixed !== 'right' && 'text-muted-foreground'),
734
+ onClick: function onClick(event) {
735
+ event.preventDefault();
736
+ event.stopPropagation();
737
+ toggleColumnFixed(columnKey, 'right');
738
+ },
739
+ "aria-label": fixed === 'right' ? '取消右侧固定' : '固定到右侧',
740
+ children: [/*#__PURE__*/_jsx(PanelRight, {
741
+ size: 16,
742
+ className: "shrink-0"
743
+ }), /*#__PURE__*/_jsx("span", {
744
+ className: "sr-only",
745
+ children: fixed === 'right' ? '取消右侧固定' : '固定到右侧'
746
+ })]
747
+ })
748
+ })
749
+ })]
750
+ })
751
+ })]
752
+ })
753
+ };
754
+ }) : [];
755
+ if (optionConfig.variant === 'textDropdown') {
756
+ var _optionConfig$size, _optionConfig$dropdow;
757
+ var dropdownItems = [];
758
+ var optionButtonSize = (_optionConfig$size = optionConfig.size) !== null && _optionConfig$size !== void 0 ? _optionConfig$size : 'middle';
759
+ if (optionConfig.dropdownHeader) {
760
+ dropdownItems.push({
761
+ key: 'dropdown-header',
762
+ closeOnClick: false,
763
+ label: /*#__PURE__*/_jsx("div", {
764
+ className: "x-pro-table-options-dropdown-header",
765
+ onClick: function onClick(event) {
766
+ event.stopPropagation();
767
+ },
768
+ children: optionConfig.dropdownHeader
769
+ })
770
+ });
771
+ }
772
+ if (optionConfig.density) {
773
+ if (dropdownItems.length > 0) {
774
+ dropdownItems.push({
775
+ key: 'dropdown-header-divider',
776
+ divider: true
777
+ });
778
+ }
779
+ dropdownItems.push({
780
+ key: 'density-label',
781
+ disabled: true,
782
+ label: /*#__PURE__*/_jsx("span", {
783
+ className: "x-pro-table-options-dropdown-section-label",
784
+ children: "\u5BC6\u5EA6"
785
+ })
786
+ }, {
787
+ key: 'density-large',
788
+ label: '宽松'
789
+ }, {
790
+ key: 'density-middle',
791
+ label: '中等'
792
+ }, {
793
+ key: 'density-small',
794
+ label: '紧凑'
795
+ });
796
+ }
797
+ if (optionConfig.setting && columnSettingItems.length > 0) {
798
+ if (dropdownItems.length > 0) {
799
+ dropdownItems.push({
800
+ key: 'setting-divider',
801
+ divider: true
802
+ });
803
+ }
804
+ dropdownItems.push({
805
+ key: 'setting-label',
806
+ disabled: true,
807
+ label: /*#__PURE__*/_jsx("span", {
808
+ className: "x-pro-table-options-dropdown-section-label",
809
+ children: "\u5217\u8BBE\u7F6E"
810
+ })
811
+ });
812
+ dropdownItems.push.apply(dropdownItems, _toConsumableArray(columnSettingItems));
813
+ }
814
+ if (optionConfig.fullScreen) {
815
+ if (dropdownItems.length > 0) {
816
+ dropdownItems.push({
817
+ key: 'fullscreen-divider',
818
+ divider: true
819
+ });
820
+ }
821
+ dropdownItems.push({
822
+ key: 'fullscreen',
823
+ label: fullscreen ? '退出全屏' : '全屏'
824
+ });
825
+ }
826
+ if (!optionConfig.reload && dropdownItems.length === 0) {
827
+ return [];
828
+ }
829
+ return [/*#__PURE__*/_jsxs("div", {
830
+ className: "x-pro-table-options-split",
831
+ children: [optionConfig.reload ? /*#__PURE__*/_jsx(Button, {
832
+ htmlType: "button",
833
+ variant: "outline",
834
+ size: optionButtonSize,
835
+ className: "x-pro-table-options-refresh-button",
836
+ onClick: function onClick() {
837
+ action.reload();
838
+ },
839
+ children: (_optionConfig$dropdow = optionConfig.dropdownText) !== null && _optionConfig$dropdow !== void 0 ? _optionConfig$dropdow : '刷新'
840
+ }) : null, dropdownItems.length > 0 ? /*#__PURE__*/_jsx(Dropdown, {
841
+ placement: "bottomRight",
842
+ dropdownClassName: "x-pro-table-options-dropdown-menu",
843
+ dropdownStyle: {
844
+ width: optionConfig.setting ? 336 : 184,
845
+ maxHeight: optionConfig.setting ? 'min(560px, calc(100vh - 120px))' : undefined,
846
+ overflowY: optionConfig.setting ? 'auto' : undefined
847
+ },
848
+ menu: {
849
+ items: dropdownItems,
850
+ classNames: {
851
+ item: 'x-pro-table-options-dropdown-item'
852
+ },
853
+ onClick: function onClick(item) {
854
+ if (item.key.startsWith('density-')) {
855
+ var density = item.key.replace('density-', '');
856
+ var nextSize = mapTableSize(density);
857
+ setTableSize(nextSize);
858
+ onSizeChange === null || onSizeChange === void 0 || onSizeChange(normalizeTableSize(nextSize));
859
+ return;
860
+ }
861
+ if (item.key === 'fullscreen') {
862
+ var _action$fullScreen;
863
+ (_action$fullScreen = action.fullScreen) === null || _action$fullScreen === void 0 || _action$fullScreen.call(action);
864
+ }
865
+ },
866
+ selectedKeys: ["density-".concat(tableSize)]
867
+ },
868
+ children: /*#__PURE__*/_jsx(Button, {
869
+ htmlType: "button",
870
+ variant: "outline",
871
+ size: optionButtonSize,
872
+ icon: /*#__PURE__*/_jsx(ChevronDown, {
873
+ className: "x-pro-table-options-dropdown-icon"
874
+ }),
875
+ className: "x-pro-table-options-dropdown-trigger",
876
+ "aria-label": "\u6253\u5F00\u8868\u683C\u5DE5\u5177"
877
+ })
878
+ }) : null]
879
+ }, "toolbar-options-split")];
880
+ }
881
+ if (optionConfig.reload) {
882
+ nextSettings.push( /*#__PURE__*/_jsx(Tooltip, {
883
+ title: "\u5237\u65B0",
884
+ children: /*#__PURE__*/_jsx("span", {
885
+ className: "inline-flex",
886
+ children: /*#__PURE__*/_jsxs(Button, {
887
+ htmlType: "button",
888
+ variant: "ghost",
889
+ className: "h-9 w-9 px-0",
890
+ onClick: function onClick() {
891
+ action.reload();
892
+ },
893
+ children: [/*#__PURE__*/_jsx(RefreshCw, {
894
+ className: "h-4 w-4"
895
+ }), /*#__PURE__*/_jsx("span", {
896
+ className: "sr-only",
897
+ children: "\u5237\u65B0"
898
+ })]
899
+ }, "toolbar-reload")
900
+ })
901
+ }, "toolbar-reload-tooltip"));
902
+ }
903
+ if (optionConfig.density) {
904
+ nextSettings.push( /*#__PURE__*/_jsx(Dropdown, {
905
+ menu: {
906
+ items: [{
907
+ key: 'large',
908
+ label: '宽松'
909
+ }, {
910
+ key: 'middle',
911
+ label: '中等'
912
+ }, {
913
+ key: 'small',
914
+ label: '紧凑'
915
+ }],
916
+ onClick: function onClick(item) {
917
+ var nextSize = mapTableSize(item.key);
918
+ setTableSize(nextSize);
919
+ onSizeChange === null || onSizeChange === void 0 || onSizeChange(normalizeTableSize(nextSize));
920
+ },
921
+ selectedKeys: [tableSize]
922
+ },
923
+ children: /*#__PURE__*/_jsx(Tooltip, {
924
+ title: "\u5BC6\u5EA6",
925
+ children: /*#__PURE__*/_jsx("span", {
926
+ className: "inline-flex",
927
+ children: /*#__PURE__*/_jsxs(Button, {
928
+ htmlType: "button",
929
+ variant: "ghost",
930
+ className: "h-9 w-9 px-0",
931
+ children: [/*#__PURE__*/_jsx(Table2, {
932
+ className: "h-4 w-4"
933
+ }), /*#__PURE__*/_jsx("span", {
934
+ className: "sr-only",
935
+ children: "\u5BC6\u5EA6"
936
+ })]
937
+ })
938
+ })
939
+ })
940
+ }, "toolbar-density"));
941
+ }
942
+ if (optionConfig.setting) {
943
+ nextSettings.push( /*#__PURE__*/_jsx(Dropdown, {
944
+ placement: "bottomRight",
945
+ dropdownStyle: {
946
+ width: 336
947
+ },
948
+ menu: {
949
+ items: columnSettingItems,
950
+ onClick: function onClick() {}
951
+ },
952
+ children: /*#__PURE__*/_jsx(Tooltip, {
953
+ title: "\u5217\u8BBE\u7F6E",
954
+ children: /*#__PURE__*/_jsx("span", {
955
+ className: "inline-flex",
956
+ children: /*#__PURE__*/_jsxs(Button, {
957
+ htmlType: "button",
958
+ variant: "ghost",
959
+ className: "h-9 w-9 px-0",
960
+ children: [/*#__PURE__*/_jsx(Columns3, {
961
+ className: "h-4 w-4"
962
+ }), /*#__PURE__*/_jsx("span", {
963
+ className: "sr-only",
964
+ children: "\u5217\u8BBE\u7F6E"
965
+ })]
966
+ })
967
+ })
968
+ })
969
+ }, "toolbar-setting"));
970
+ }
971
+ if (optionConfig.fullScreen) {
972
+ nextSettings.push( /*#__PURE__*/_jsx(Tooltip, {
973
+ title: fullscreen ? '退出全屏' : '全屏',
974
+ children: /*#__PURE__*/_jsx("span", {
975
+ className: "inline-flex",
976
+ children: /*#__PURE__*/_jsxs(Button, {
977
+ htmlType: "button",
978
+ variant: "ghost",
979
+ className: "h-9 w-9 px-0",
980
+ onClick: function onClick() {
981
+ var _action$fullScreen2;
982
+ (_action$fullScreen2 = action.fullScreen) === null || _action$fullScreen2 === void 0 || _action$fullScreen2.call(action);
983
+ },
984
+ children: [fullscreen ? /*#__PURE__*/_jsx(Minimize2, {
985
+ className: "h-4 w-4"
986
+ }) : /*#__PURE__*/_jsx(Expand, {
987
+ className: "h-4 w-4"
988
+ }), /*#__PURE__*/_jsx("span", {
989
+ className: "sr-only",
990
+ children: fullscreen ? '退出全屏' : '全屏'
991
+ })]
992
+ }, "toolbar-fullscreen")
993
+ })
994
+ }, "toolbar-fullscreen-tooltip"));
995
+ }
996
+ return nextSettings;
997
+ }, [action, columns, fullscreen, mergedColumnsState, onSizeChange, optionConfig, setColumnVisibility, tableSize, toggleColumnFixed]);
998
+ var mergedRowSelection = useMemo(function () {
999
+ if (!rowSelection) {
1000
+ return undefined;
1001
+ }
1002
+ return _objectSpread(_objectSpread({}, rowSelection), {}, {
1003
+ selectedRowKeys: mergedSelectedRowKeys,
1004
+ onChange: function onChange(nextKeys, nextRows, info) {
1005
+ var _onChange2, _ref7;
1006
+ if (rowSelection.selectedRowKeys === undefined) {
1007
+ setInnerSelectedRowKeys(nextKeys);
1008
+ }
1009
+ setSelectedRows(nextRows);
1010
+ (_onChange2 = (_ref7 = rowSelection).onChange) === null || _onChange2 === void 0 || _onChange2.call(_ref7, nextKeys, nextRows, info);
1011
+ }
1012
+ });
1013
+ }, [mergedSelectedRowKeys, rowSelection]);
1014
+ var toolbarSearch = useMemo(function () {
1015
+ var _optionConfig$search;
1016
+ var toolSearchConfig = (_optionConfig$search = optionConfig === null || optionConfig === void 0 ? void 0 : optionConfig.search) !== null && _optionConfig$search !== void 0 ? _optionConfig$search : toolbar !== null && toolbar !== void 0 && toolbar.search ? toolbar.search : false;
1017
+ if (!toolSearchConfig) {
1018
+ return undefined;
1019
+ }
1020
+ var searchConfig = toolSearchConfig === true ? {} : toolSearchConfig;
1021
+ return {
1022
+ placeholder: searchConfig.placeholder || '请输入关键词',
1023
+ allowClear: true,
1024
+ onSearch: function () {
1025
+ var _onSearch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(keyword) {
1026
+ var _searchConfig$onSearc;
1027
+ var success;
1028
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1029
+ while (1) switch (_context4.prev = _context4.next) {
1030
+ case 0:
1031
+ _context4.next = 2;
1032
+ return (_searchConfig$onSearc = searchConfig.onSearch) === null || _searchConfig$onSearc === void 0 ? void 0 : _searchConfig$onSearc.call(searchConfig, keyword);
1033
+ case 2:
1034
+ success = _context4.sent;
1035
+ if (!(success === false)) {
1036
+ _context4.next = 5;
1037
+ break;
1038
+ }
1039
+ return _context4.abrupt("return");
1040
+ case 5:
1041
+ _setPageInfo(function (prev) {
1042
+ return _objectSpread(_objectSpread({}, prev), {}, {
1043
+ current: 1
1044
+ });
1045
+ });
1046
+ setSearchValues(function (prev) {
1047
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty(_defineProperty({}, searchConfig.name || 'keyword', keyword), "_timestamp", Date.now()));
1048
+ });
1049
+ case 7:
1050
+ case "end":
1051
+ return _context4.stop();
1052
+ }
1053
+ }, _callee4);
1054
+ }));
1055
+ function onSearch(_x2) {
1056
+ return _onSearch.apply(this, arguments);
1057
+ }
1058
+ return onSearch;
1059
+ }()
1060
+ };
1061
+ }, [optionConfig, toolbar === null || toolbar === void 0 ? void 0 : toolbar.search]);
1062
+ var toolbarOptionNodes = useMemo(function () {
1063
+ if (optionsRender === false) {
1064
+ return [];
1065
+ }
1066
+ if (typeof optionsRender === 'function') {
1067
+ var value = optionsRender({
1068
+ optionConfig: optionConfig,
1069
+ searchText: toolbarSearch,
1070
+ toolbar: toolbar,
1071
+ action: action,
1072
+ selectedRows: selectedRows,
1073
+ selectedRowKeys: mergedSelectedRowKeys
1074
+ });
1075
+ return React.Children.toArray(normalizeRenderNode(value));
1076
+ }
1077
+ if (optionsRender == null) {
1078
+ return toolbarSettings;
1079
+ }
1080
+ return React.Children.toArray(normalizeRenderNode(optionsRender));
1081
+ }, [optionConfig, optionsRender, toolbar === null || toolbar === void 0 ? void 0 : toolbar.search, toolbarSearch, toolbarSettings]);
1082
+ var toolbarActionNodes = useMemo(function () {
1083
+ return normalizeToolbarActions(toolBarRender, action, selectedRows);
1084
+ }, [action, selectedRows, toolBarRender]);
1085
+ var hasCustomToolbarActions = Boolean(toolBarRender && toolbarActionNodes.length > 0);
1086
+ var toolbarNode = renderToolbar(headerTitle, toolbarActionNodes, action, selectedRows, toolbarOptionNodes, toolbarSearch);
1087
+ var searchNode = useMemo(function () {
1088
+ var _searchConfigObject$c, _searchConfigObject$c2, _searchConfigObject$l, _searchConfigObject$c3;
1089
+ if (!hasSearchForm) {
1090
+ return null;
1091
+ }
1092
+ var searchConfigObject = search && _typeof(search) === 'object' && !Array.isArray(search) ? search : undefined;
1093
+ var searchOptionRender = searchConfigObject && typeof searchConfigObject.optionRender === 'function' ? searchConfigObject.optionRender : undefined;
1094
+ var mergedSearchClassNames = _objectSpread(_objectSpread({}, searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.classNames), {}, {
1095
+ label: cn('font-normal', searchConfigObject === null || searchConfigObject === void 0 || (_searchConfigObject$c = searchConfigObject.classNames) === null || _searchConfigObject$c === void 0 ? void 0 : _searchConfigObject$c.label),
1096
+ content: cn('min-w-0', searchConfigObject === null || searchConfigObject === void 0 || (_searchConfigObject$c2 = searchConfigObject.classNames) === null || _searchConfigObject$c2 === void 0 ? void 0 : _searchConfigObject$c2.content)
1097
+ });
1098
+ var defaultSearchNode = /*#__PURE__*/_jsx(Search, {
1099
+ form: searchForm,
1100
+ initialValues: searchInitialFormValues,
1101
+ layout: (_searchConfigObject$l = searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.layout) !== null && _searchConfigObject$l !== void 0 ? _searchConfigObject$l : 'horizontal',
1102
+ colon: (_searchConfigObject$c3 = searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.colon) !== null && _searchConfigObject$c3 !== void 0 ? _searchConfigObject$c3 : false,
1103
+ defaultCollapsed: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.defaultCollapsed,
1104
+ collapsed: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.collapsed,
1105
+ onCollapse: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.onCollapse,
1106
+ span: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.span,
1107
+ defaultColsNumber: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.defaultColsNumber,
1108
+ defaultFormItemsNumber: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.defaultFormItemsNumber,
1109
+ showHiddenNum: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.showHiddenNum,
1110
+ collapseRender: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.collapseRender,
1111
+ optionRender: searchOptionRender,
1112
+ searchGutter: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.searchGutter,
1113
+ labelWidth: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.labelWidth,
1114
+ split: false,
1115
+ className: cn('gap-x-3 gap-y-4 !rounded-none !border-0 !bg-transparent !p-0', searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.className),
1116
+ classNames: mergedSearchClassNames,
1117
+ containerStyle: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.containerStyle,
1118
+ submitter: searchConfigObject === null || searchConfigObject === void 0 ? void 0 : searchConfigObject.submitter,
1119
+ onReset: function onReset() {
1120
+ action.reset();
1121
+ },
1122
+ onFinish: function onFinish(values) {
1123
+ setSearchValues(resolveSearchValues(values));
1124
+ _setPageInfo(function (prev) {
1125
+ return _objectSpread(_objectSpread({}, prev), {}, {
1126
+ current: 1
1127
+ });
1128
+ });
1129
+ },
1130
+ children: searchColumns.map(function (columnItem) {
1131
+ var _searchSafeFormItemPr, _resolvedFieldProps$a, _resolvedFieldProps$p, _resolvedFieldProps$r;
1132
+ var dataIndexKey = getDataIndexKey(columnItem.dataIndex);
1133
+ if (!dataIndexKey) {
1134
+ return null;
1135
+ }
1136
+ var resolvedFormItemProps = resolveSchemaProps(columnItem.formItemProps, searchForm, columnItem);
1137
+ var resolvedFieldProps = resolveSchemaProps(columnItem.fieldProps, searchForm, columnItem);
1138
+ var effectiveValueType = getEffectiveValueType(columnItem.valueType, columnItem.valueEnum);
1139
+ var searchValueType = String(effectiveValueType) === 'textarea' ? 'text' : effectiveValueType;
1140
+ var valueTypeName = String(searchValueType);
1141
+ var stableChoiceWidth = getSearchFieldAdaptiveMaxWidth(valueTypeName);
1142
+ var stableColSize = getSearchFieldAdaptiveColSize(valueTypeName);
1143
+ var mergedSearchFormItemProps = stableColSize && (resolvedFormItemProps === null || resolvedFormItemProps === void 0 ? void 0 : resolvedFormItemProps.colSize) == null ? _objectSpread(_objectSpread({}, resolvedFormItemProps), {}, {
1144
+ colSize: stableColSize
1145
+ }) : resolvedFormItemProps;
1146
+ var searchSafeFormItemProps = _objectSpread({}, mergedSearchFormItemProps || {});
1147
+ delete searchSafeFormItemProps.initialValue;
1148
+ return /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({
1149
+ name: dataIndexKey,
1150
+ label: typeof columnItem.title === 'function' ? dataIndexKey : columnItem.title
1151
+ }, searchSafeFormItemProps), {}, {
1152
+ extra: (_searchSafeFormItemPr = searchSafeFormItemProps.extra) !== null && _searchSafeFormItemPr !== void 0 ? _searchSafeFormItemPr : '',
1153
+ children: /*#__PURE__*/_jsx(ProField, {
1154
+ mode: "edit",
1155
+ valueType: searchValueType,
1156
+ valueEnum: columnItem.valueEnum,
1157
+ placeholder: typeof columnItem.title === 'string' ? ['select', 'tag', 'treeSelect', 'cascader', 'segmented', 'date', 'dateMonth', 'dateQuarter', 'dateTime', 'dateRange', 'dateMonthRange', 'dateQuarterRange', 'dateTimeRange', 'dateWeek', 'dateWeekRange', 'dateYear', 'dateYearRange', 'time', 'timeRange'].includes(valueTypeName) ? "\u8BF7\u9009\u62E9".concat(columnItem.title) : "\u8BF7\u8F93\u5165".concat(columnItem.title) : undefined,
1158
+ fieldProps: _objectSpread(_objectSpread({}, resolvedFieldProps || {}), {}, {
1159
+ className: cn(stableChoiceWidth && 'min-w-0 w-full', resolvedFieldProps === null || resolvedFieldProps === void 0 ? void 0 : resolvedFieldProps.className),
1160
+ style: _objectSpread(_objectSpread({}, stableChoiceWidth ? {
1161
+ width: '100%',
1162
+ maxWidth: stableChoiceWidth
1163
+ } : {
1164
+ maxWidth: '100%'
1165
+ }), resolvedFieldProps === null || resolvedFieldProps === void 0 ? void 0 : resolvedFieldProps.style),
1166
+ allowClear: (_resolvedFieldProps$a = resolvedFieldProps === null || resolvedFieldProps === void 0 ? void 0 : resolvedFieldProps.allowClear) !== null && _resolvedFieldProps$a !== void 0 ? _resolvedFieldProps$a : true,
1167
+ params: (_resolvedFieldProps$p = resolvedFieldProps === null || resolvedFieldProps === void 0 ? void 0 : resolvedFieldProps.params) !== null && _resolvedFieldProps$p !== void 0 ? _resolvedFieldProps$p : columnItem.params,
1168
+ request: (_resolvedFieldProps$r = resolvedFieldProps === null || resolvedFieldProps === void 0 ? void 0 : resolvedFieldProps.request) !== null && _resolvedFieldProps$r !== void 0 ? _resolvedFieldProps$r : columnItem.request
1169
+ })
1170
+ })
1171
+ }), dataIndexKey);
1172
+ })
1173
+ });
1174
+ var rendered = searchFormRender ? normalizeRenderNode(searchFormRender(_objectSpread({
1175
+ columns: columns,
1176
+ params: params,
1177
+ request: request,
1178
+ dataSource: controlledDataSource,
1179
+ loading: controlledLoading,
1180
+ actionRef: actionRef,
1181
+ formRef: formRef,
1182
+ toolBarRender: toolBarRender,
1183
+ optionsRender: optionsRender,
1184
+ tableRender: tableRender,
1185
+ tableExtraRender: tableExtraRender,
1186
+ tableClassName: tableClassName,
1187
+ tableStyle: tableStyle,
1188
+ onLoad: onLoad,
1189
+ onLoadingChange: onLoadingChange,
1190
+ onRequestError: onRequestError,
1191
+ onSizeChange: onSizeChange,
1192
+ tableAlertRender: tableAlertRender,
1193
+ tableAlertOptionRender: tableAlertOptionRender,
1194
+ cardProps: cardProps,
1195
+ toolbar: toolbar,
1196
+ search: search,
1197
+ options: options,
1198
+ columnsState: columnsState,
1199
+ headerTitle: headerTitle,
1200
+ pagination: pagination,
1201
+ rowSelection: rowSelection,
1202
+ onDataSourceChange: onDataSourceChange,
1203
+ onChange: _onChange3,
1204
+ className: className
1205
+ }, tableProps), defaultSearchNode)) : defaultSearchNode;
1206
+ return rendered === null ? null : rendered;
1207
+ }, [action, className, columns, controlledDataSource, controlledLoading, columnsState, headerTitle, _onChange3, onDataSourceChange, onLoad, onLoadingChange, onRequestError, onSizeChange, options, optionsRender, params, pagination, request, resolveSearchValues, rowSelection, search, searchColumns, searchForm, searchFormRender, hasSearchForm, tableAlertOptionRender, tableAlertRender, tableClassName, tableExtraRender, tableProps, tableStyle, toolbar, toolBarRender]);
1208
+
1209
+ // ProTable 为了保持 hooks 顺序会始终创建 searchForm;没有搜索字段时仍需让
1210
+ // rc-field-form 连接到一个 Form,否则它会在开发环境延迟输出未连接告警。
1211
+ // 隐藏节点不参与布局,也不会让没有搜索栏的列表增加高度。
1212
+ var searchFormConnectionNode = !hasSearchForm ? /*#__PURE__*/_jsx(Form, {
1213
+ form: searchForm,
1214
+ style: {
1215
+ display: 'none'
1216
+ }
1217
+ }) : null;
1218
+ var tableAlertNode = useMemo(function () {
1219
+ if (!mergedRowSelection || tableAlertRender === false) {
1220
+ return null;
1221
+ }
1222
+ if (tableAlertRender === undefined && hasCustomToolbarActions) {
1223
+ return null;
1224
+ }
1225
+ var selectedRowKeys = mergedSelectedRowKeys;
1226
+ var selectedCount = selectedRows.length || selectedRowKeys.length;
1227
+ if (!selectedCount && !tableAlertRender) {
1228
+ return null;
1229
+ }
1230
+ var messageNode = tableAlertRender ? tableAlertRender({
1231
+ selectedRowKeys: selectedRowKeys,
1232
+ selectedRows: selectedRows
1233
+ }) : selectedCount ? "\u5DF2\u9009 ".concat(selectedCount) : null;
1234
+ if (!messageNode) {
1235
+ return null;
1236
+ }
1237
+ var actionNode = tableAlertOptionRender === false ? null : tableAlertOptionRender === null || tableAlertOptionRender === void 0 ? void 0 : tableAlertOptionRender({
1238
+ selectedRowKeys: selectedRowKeys,
1239
+ selectedRows: selectedRows
1240
+ });
1241
+ return /*#__PURE__*/_jsx("div", {
1242
+ className: "border-primary/15 bg-primary/5 rounded-lg border px-4 py-3",
1243
+ children: /*#__PURE__*/_jsxs("div", {
1244
+ className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
1245
+ children: [/*#__PURE__*/_jsxs("div", {
1246
+ className: "flex items-center gap-2 text-sm text-foreground",
1247
+ children: [/*#__PURE__*/_jsx("span", {
1248
+ className: "text-primary",
1249
+ children: /*#__PURE__*/_jsxs("svg", {
1250
+ xmlns: "http://www.w3.org/2000/svg",
1251
+ width: "18",
1252
+ height: "18",
1253
+ viewBox: "0 0 24 24",
1254
+ fill: "none",
1255
+ stroke: "currentColor",
1256
+ "stroke-width": "2",
1257
+ "stroke-linecap": "round",
1258
+ "stroke-linejoin": "round",
1259
+ children: [/*#__PURE__*/_jsx("circle", {
1260
+ cx: "12",
1261
+ cy: "12",
1262
+ r: "10"
1263
+ }), /*#__PURE__*/_jsx("path", {
1264
+ d: "M12 16v-4"
1265
+ }), /*#__PURE__*/_jsx("path", {
1266
+ d: "M12 8h.01"
1267
+ })]
1268
+ })
1269
+ }), /*#__PURE__*/_jsx("span", {
1270
+ className: "font-medium",
1271
+ children: messageNode
1272
+ })]
1273
+ }), /*#__PURE__*/_jsx("div", {
1274
+ className: "flex flex-wrap gap-2",
1275
+ children: actionNode || (selectedCount ? /*#__PURE__*/_jsx(Button, {
1276
+ size: "small",
1277
+ variant: "ghost",
1278
+ onClick: clearSelectionState,
1279
+ children: "\u6E05\u7A7A"
1280
+ }) : null)
1281
+ })]
1282
+ })
1283
+ });
1284
+ }, [clearSelectionState, hasCustomToolbarActions, mergedRowSelection, selectedRows, mergedSelectedRowKeys, tableAlertOptionRender, tableAlertRender]);
1285
+ var toolbarSectionNode = useMemo(function () {
1286
+ if (!toolbarNode) {
1287
+ return null;
1288
+ }
1289
+ return /*#__PURE__*/_jsx("div", {
1290
+ children: toolbarNode
1291
+ });
1292
+ }, [toolbarNode]);
1293
+ var searchSectionNode = useMemo(function () {
1294
+ if (!searchNode) {
1295
+ return null;
1296
+ }
1297
+ return /*#__PURE__*/_jsx(Card, {
1298
+ variant: "default",
1299
+ className: "overflow-visible rounded-xl border-0 bg-card shadow-none",
1300
+ bodyClassName: "px-4 py-4",
1301
+ children: searchNode
1302
+ });
1303
+ }, [searchNode]);
1304
+ var topSectionNode = useMemo(function () {
1305
+ var sections = [toolbarSectionNode, searchSectionNode].filter(Boolean);
1306
+ if (!sections.length) {
1307
+ return null;
1308
+ }
1309
+ return /*#__PURE__*/_jsx("div", {
1310
+ className: PRO_TABLE_STACK_CLASS,
1311
+ children: React.Children.toArray(sections)
1312
+ });
1313
+ }, [toolbarSectionNode, searchSectionNode]);
1314
+ var tableAlertSectionNode = useMemo(function () {
1315
+ if (!tableAlertNode) {
1316
+ return null;
1317
+ }
1318
+ return /*#__PURE__*/_jsx("div", {
1319
+ className: PRO_TABLE_SECTION_MARGIN_BOTTOM_CLASS,
1320
+ children: tableAlertNode
1321
+ });
1322
+ }, [tableAlertNode]);
1323
+ var handleExternalPaginationChange = useCallback( /*#__PURE__*/function () {
1324
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(nextCurrent, nextPageSize) {
1325
+ var _normalizedPagination;
1326
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1327
+ while (1) switch (_context5.prev = _context5.next) {
1328
+ case 0:
1329
+ _setPageInfo(function (prev) {
1330
+ return _objectSpread(_objectSpread({}, prev), {}, {
1331
+ current: nextCurrent,
1332
+ pageSize: nextPageSize
1333
+ });
1334
+ });
1335
+ normalizedPaginationConfig === null || normalizedPaginationConfig === void 0 || (_normalizedPagination = normalizedPaginationConfig.onChange) === null || _normalizedPagination === void 0 || _normalizedPagination.call(normalizedPaginationConfig, nextCurrent, nextPageSize);
1336
+ if (!requestRef.current) {
1337
+ _context5.next = 5;
1338
+ break;
1339
+ }
1340
+ _context5.next = 5;
1341
+ return fetchData({
1342
+ pageInfo: {
1343
+ current: nextCurrent,
1344
+ pageSize: nextPageSize
1345
+ }
1346
+ });
1347
+ case 5:
1348
+ case "end":
1349
+ return _context5.stop();
1350
+ }
1351
+ }, _callee5);
1352
+ }));
1353
+ return function (_x3, _x4) {
1354
+ return _ref8.apply(this, arguments);
1355
+ };
1356
+ }(), [fetchData, normalizedPaginationConfig]);
1357
+ var externalPaginationNode = useMemo(function () {
1358
+ if (!showExternalBottomPagination || normalizedPaginationConfig === false) {
1359
+ return null;
1360
+ }
1361
+ var total = pageInfo.total || 0;
1362
+ var totalPages = Math.max(1, Math.ceil(total / pageInfo.pageSize));
1363
+ var shouldRenderPager = total > 0 && totalPages > 1;
1364
+ var shouldRenderSummary = Boolean(normalizedPaginationConfig.showTotal) || Boolean(normalizedPaginationConfig.showSizeChanger);
1365
+ if (!shouldRenderPager && !shouldRenderSummary) {
1366
+ return null;
1367
+ }
1368
+ var range = getPaginationRange(pageInfo.current, pageInfo.pageSize, total, dataSource.length);
1369
+ return /*#__PURE__*/_jsxs("div", {
1370
+ className: cn(PRO_TABLE_STACK_CLASS, 'w-full sm:flex-row sm:items-center sm:justify-between'),
1371
+ children: [/*#__PURE__*/_jsxs("div", {
1372
+ className: "flex flex-wrap items-center text-sm text-muted-foreground [gap:var(--x-space-4)]",
1373
+ children: [normalizedPaginationConfig.showTotal ? normalizedPaginationConfig.showTotal(total, range) : null, normalizedPaginationConfig.showSizeChanger ? /*#__PURE__*/_jsxs("label", {
1374
+ className: "flex items-center gap-2",
1375
+ children: [/*#__PURE__*/_jsx("span", {
1376
+ className: "text-xs uppercase tracking-wide text-muted-foreground",
1377
+ children: "Page Size"
1378
+ }), /*#__PURE__*/_jsx("select", {
1379
+ className: "h-9 rounded-lg border border-border bg-background px-3 text-sm text-foreground outline-none transition-colors focus:border-primary",
1380
+ value: pageInfo.pageSize,
1381
+ onChange: function onChange(event) {
1382
+ void handleExternalPaginationChange(1, Number(event.target.value));
1383
+ },
1384
+ children: (normalizedPaginationConfig.pageSizeOptions || [10, 20, 50, 100]).map(function (option) {
1385
+ return /*#__PURE__*/_jsxs("option", {
1386
+ value: option,
1387
+ children: [option, " / page"]
1388
+ }, option);
1389
+ })
1390
+ })]
1391
+ }) : null]
1392
+ }), shouldRenderPager ? /*#__PURE__*/_jsx(Pagination, {
1393
+ current: pageInfo.current,
1394
+ pageSize: pageInfo.pageSize,
1395
+ showQuickJumper: normalizedPaginationConfig.showQuickJumper,
1396
+ size: resolvedPaginationSize,
1397
+ total: total,
1398
+ onChange: function onChange(nextPage, nextPageSize) {
1399
+ void handleExternalPaginationChange(nextPage, nextPageSize);
1400
+ }
1401
+ }) : null]
1402
+ });
1403
+ }, [dataSource.length, handleExternalPaginationChange, normalizedPaginationConfig, pageInfo.current, pageInfo.pageSize, pageInfo.total, resolvedPaginationSize, showExternalBottomPagination, tableSize]);
1404
+ var defaultTableNode = /*#__PURE__*/_jsx(Table, _objectSpread(_objectSpread({}, tableProps), {}, {
1405
+ className: cn(tableClassName),
1406
+ style: tableStyle,
1407
+ columns: tableColumns,
1408
+ dataSource: dataSource,
1409
+ loading: mergedLoading,
1410
+ rowSelection: mergedRowSelection,
1411
+ size: tableSize,
1412
+ pagination: pagination === false ? false : _objectSpread(_objectSpread({}, normalizedPaginationConfig || {}), {}, {
1413
+ size: resolvedPaginationSize,
1414
+ current: pageInfo.current,
1415
+ pageSize: pageInfo.pageSize,
1416
+ total: pageInfo.total,
1417
+ placement: hideInternalPagination ? ['none'] : normalizedPaginationConfig === null || normalizedPaginationConfig === void 0 ? void 0 : normalizedPaginationConfig.placement,
1418
+ position: hideInternalPagination ? ['none'] : normalizedPaginationConfig === null || normalizedPaginationConfig === void 0 ? void 0 : normalizedPaginationConfig.position
1419
+ }),
1420
+ onChange: function onChange(nextPagination, filters, sorter, extra) {
1421
+ _setPageInfo(function (prev) {
1422
+ return _objectSpread(_objectSpread({}, prev), {}, {
1423
+ current: nextPagination.current || 1,
1424
+ pageSize: nextPagination.pageSize || prev.pageSize
1425
+ });
1426
+ });
1427
+ var sorterArray = Array.isArray(sorter) ? sorter : [sorter];
1428
+ var nextSortState = {};
1429
+ sorterArray.forEach(function (item) {
1430
+ var _ref9, _item$field;
1431
+ if (!item) {
1432
+ return;
1433
+ }
1434
+ var key = String((_ref9 = (_item$field = item.field) !== null && _item$field !== void 0 ? _item$field : item.columnKey) !== null && _ref9 !== void 0 ? _ref9 : '');
1435
+ if (key) {
1436
+ nextSortState[key] = item.order;
1437
+ }
1438
+ });
1439
+ setSortState(nextSortState);
1440
+ setFilterState(filters);
1441
+ _onChange3 === null || _onChange3 === void 0 || _onChange3(nextPagination, filters, sorter, extra);
1442
+ }
1443
+ }));
1444
+ var tableExtraNode = useMemo(function () {
1445
+ if (!tableExtraRender) {
1446
+ return null;
1447
+ }
1448
+ var rendered = tableExtraRender(_objectSpread({
1449
+ columns: columns,
1450
+ params: params,
1451
+ request: request,
1452
+ dataSource: controlledDataSource,
1453
+ loading: controlledLoading,
1454
+ actionRef: actionRef,
1455
+ formRef: formRef,
1456
+ toolBarRender: toolBarRender,
1457
+ optionsRender: optionsRender,
1458
+ searchFormRender: searchFormRender,
1459
+ tableRender: tableRender,
1460
+ tableExtraRender: tableExtraRender,
1461
+ tableClassName: tableClassName,
1462
+ tableStyle: tableStyle,
1463
+ onLoad: onLoad,
1464
+ onLoadingChange: onLoadingChange,
1465
+ onRequestError: onRequestError,
1466
+ onSizeChange: onSizeChange,
1467
+ tableAlertRender: tableAlertRender,
1468
+ tableAlertOptionRender: tableAlertOptionRender,
1469
+ cardProps: cardProps,
1470
+ toolbar: toolbar,
1471
+ search: search,
1472
+ options: options,
1473
+ columnsState: columnsState,
1474
+ headerTitle: headerTitle,
1475
+ pagination: pagination,
1476
+ rowSelection: rowSelection,
1477
+ onDataSourceChange: onDataSourceChange,
1478
+ onChange: _onChange3,
1479
+ className: className
1480
+ }, tableProps), dataSource);
1481
+ return normalizeRenderNode(rendered);
1482
+ }, [tableExtraRender, columns, params, request, controlledDataSource, controlledLoading, actionRef, formRef, toolBarRender, optionsRender, searchFormRender, tableRender, tableClassName, tableStyle, onLoad, onLoadingChange, onRequestError, onSizeChange, tableAlertRender, tableAlertOptionRender, cardProps, toolbar, search, options, columnsState, headerTitle, pagination, rowSelection, onDataSourceChange, _onChange3, className, tableProps, dataSource]);
1483
+ var tableContent = tableRender ? normalizeRenderNode(tableRender(_objectSpread({
1484
+ columns: columns,
1485
+ params: params,
1486
+ request: request,
1487
+ dataSource: controlledDataSource,
1488
+ loading: controlledLoading,
1489
+ actionRef: actionRef,
1490
+ formRef: formRef,
1491
+ toolBarRender: toolBarRender,
1492
+ optionsRender: optionsRender,
1493
+ searchFormRender: searchFormRender,
1494
+ tableRender: tableRender,
1495
+ tableExtraRender: tableExtraRender,
1496
+ tableClassName: tableClassName,
1497
+ tableStyle: tableStyle,
1498
+ onLoad: onLoad,
1499
+ onLoadingChange: onLoadingChange,
1500
+ onRequestError: onRequestError,
1501
+ onSizeChange: onSizeChange,
1502
+ tableAlertRender: tableAlertRender,
1503
+ tableAlertOptionRender: tableAlertOptionRender,
1504
+ cardProps: cardProps,
1505
+ toolbar: toolbar,
1506
+ search: search,
1507
+ options: options,
1508
+ columnsState: columnsState,
1509
+ headerTitle: headerTitle,
1510
+ pagination: pagination,
1511
+ rowSelection: rowSelection,
1512
+ onDataSourceChange: onDataSourceChange,
1513
+ onChange: _onChange3,
1514
+ className: className
1515
+ }, tableProps), /*#__PURE__*/_jsxs(_Fragment, {
1516
+ children: [fullscreen ? topSectionNode : null, tableAlertSectionNode, defaultTableNode, tableExtraNode, fullscreen ? externalPaginationNode : null]
1517
+ }), {
1518
+ toolbar: topSectionNode,
1519
+ alert: tableAlertNode,
1520
+ table: defaultTableNode
1521
+ })) : /*#__PURE__*/_jsxs(_Fragment, {
1522
+ children: [fullscreen ? topSectionNode : null, tableAlertSectionNode, defaultTableNode, tableExtraNode, fullscreen ? externalPaginationNode : null]
1523
+ });
1524
+ var _ref10 = cardProps || {},
1525
+ cardClassName = _ref10.className,
1526
+ cardStyle = _ref10.style,
1527
+ restCardProps = _objectWithoutProperties(_ref10, _excluded2);
1528
+ var tableCardNode = /*#__PURE__*/_jsxs(Card, _objectSpread(_objectSpread({}, restCardProps), {}, {
1529
+ className: cn('overflow-visible rounded-xl border-0 bg-card shadow-none', fullscreen && 'fixed inset-4 z-40 overflow-auto bg-background p-2 shadow-2xl', className, cardClassName),
1530
+ style: cardStyle,
1531
+ children: [searchFormConnectionNode, tableContent]
1532
+ }));
1533
+ if (fullscreen) {
1534
+ return tableCardNode;
1535
+ }
1536
+ return /*#__PURE__*/_jsx("div", {
1537
+ className: PRO_TABLE_STACK_CLASS,
1538
+ children: React.Children.toArray([topSectionNode, tableCardNode, externalPaginationNode])
1539
+ });
1540
+ };
1541
+ export var ProTableCore = BaseProTable;
1542
+ export var ProTable = attachPropertiesToComponent(BaseProTable, {
1543
+ EditableTable: EditableTable,
1544
+ DragSortTable: DragSortTable,
1545
+ ListToolBar: ListToolBar,
1546
+ Search: Search,
1547
+ EditableProTable: EditableProTable,
1548
+ RowEditorTable: RowEditorTable,
1549
+ CellEditorTable: CellEditorTable,
1550
+ IndexColumn: IndexColumn,
1551
+ TableStatus: TableStatus,
1552
+ TableDropdown: TableDropdown
1553
+ });
1554
+ export default ProTable;