@4399ywkf/design 1.3.12 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MaxTokenSlider/index.d.ts +25 -0
- package/dist/MaxTokenSlider/index.js +148 -0
- package/dist/MaxTokenSlider/style.d.ts +6 -0
- package/dist/MaxTokenSlider/style.js +14 -0
- package/dist/Table/components/ColumnSetting/index.js +25 -35
- package/dist/Table/components/ColumnSetting/style.d.ts +16 -0
- package/dist/Table/components/ColumnSetting/style.js +19 -0
- package/dist/Table/components/EnumFilter/index.d.ts +8 -8
- package/dist/Table/components/EnumFilter/index.js +34 -36
- package/dist/Table/components/EnumFilter/style.d.ts +54 -0
- package/dist/Table/components/EnumFilter/style.js +58 -0
- package/dist/Table/components/Export/RadioMode.d.ts +1 -5
- package/dist/Table/components/Export/RadioMode.js +10 -11
- package/dist/Table/components/Export/index.js +160 -207
- package/dist/Table/components/Export/style.d.ts +15 -0
- package/dist/Table/components/Export/style.js +19 -0
- package/dist/Table/components/FilterDropdown/index.d.ts +7 -7
- package/dist/Table/components/FilterDropdown/index.js +6 -7
- package/dist/Table/components/FilterDropdown/style.d.ts +13 -0
- package/dist/Table/components/FilterDropdown/style.js +17 -0
- package/dist/Table/components/FilterKeys/index.d.ts +2 -2
- package/dist/Table/components/FilterKeys/index.js +51 -69
- package/dist/Table/components/FilterKeys/style.d.ts +29 -0
- package/dist/Table/components/FilterKeys/style.js +33 -0
- package/dist/Table/components/Reload/index.js +8 -21
- package/dist/Table/components/SearchInput/index.d.ts +3 -4
- package/dist/Table/components/SearchInput/index.js +50 -38
- package/dist/Table/components/SearchInput/style.d.ts +11 -0
- package/dist/Table/components/SearchInput/style.js +15 -0
- package/dist/Table/components/TableSize/index.js +7 -10
- package/dist/Table/components/TableTitle/index.d.ts +1 -1
- package/dist/Table/components/TableTitle/index.js +36 -38
- package/dist/Table/components/TableTitle/style.d.ts +25 -0
- package/dist/Table/components/TableTitle/style.js +29 -0
- package/dist/Table/context.d.ts +32 -0
- package/dist/Table/context.js +31 -0
- package/dist/Table/hooks/index.d.ts +8 -0
- package/dist/Table/hooks/index.js +8 -0
- package/dist/Table/hooks/useColumnsInit.d.ts +6 -0
- package/dist/Table/hooks/useColumnsInit.js +44 -0
- package/dist/Table/hooks/useEmptyText.d.ts +11 -0
- package/dist/Table/hooks/useEmptyText.js +34 -0
- package/dist/Table/hooks/usePagination.d.ts +9 -0
- package/dist/Table/hooks/usePagination.js +50 -0
- package/dist/Table/hooks/useQuerySnapshot.d.ts +6 -0
- package/dist/Table/hooks/useQuerySnapshot.js +63 -0
- package/dist/Table/hooks/useRowSelection.d.ts +11 -0
- package/dist/Table/hooks/useRowSelection.js +34 -0
- package/dist/Table/hooks/useSearchEffect.d.ts +9 -0
- package/dist/Table/hooks/useSearchEffect.js +48 -0
- package/dist/Table/hooks/useTableChange.d.ts +10 -0
- package/dist/Table/hooks/useTableChange.js +56 -0
- package/dist/Table/hooks/useTriggerSearch.d.ts +22 -0
- package/dist/Table/hooks/useTriggerSearch.js +130 -0
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.js +25 -1
- package/dist/Table/store/createStore.d.ts +2 -0
- package/dist/Table/store/createStore.js +30 -0
- package/dist/Table/store/hooks.d.ts +33 -0
- package/dist/Table/store/hooks.js +98 -0
- package/dist/Table/store/slices/column/actions.d.ts +9 -0
- package/dist/Table/store/slices/column/actions.js +10 -0
- package/dist/Table/store/slices/column/initialState.d.ts +2 -0
- package/dist/Table/store/slices/column/initialState.js +3 -0
- package/dist/Table/store/slices/persist/actions.d.ts +10 -0
- package/dist/Table/store/slices/persist/actions.js +28 -0
- package/dist/Table/store/slices/persist/api.d.ts +8 -0
- package/dist/Table/store/slices/persist/api.js +40 -0
- package/dist/Table/store/slices/query/actions.d.ts +32 -0
- package/dist/Table/store/slices/query/actions.js +129 -0
- package/dist/Table/store/slices/query/initialState.d.ts +2 -0
- package/dist/Table/store/slices/query/initialState.js +5 -0
- package/dist/Table/store/slices/request/actions.d.ts +8 -0
- package/dist/Table/store/slices/request/actions.js +14 -0
- package/dist/Table/store/slices/request/initialState.d.ts +2 -0
- package/dist/Table/store/slices/request/initialState.js +7 -0
- package/dist/Table/store/slices/ui/actions.d.ts +11 -0
- package/dist/Table/store/slices/ui/actions.js +15 -0
- package/dist/Table/store/slices/ui/initialState.d.ts +2 -0
- package/dist/Table/store/slices/ui/initialState.js +4 -0
- package/dist/Table/store/types.d.ts +79 -0
- package/dist/Table/store/types.js +1 -0
- package/dist/Table/style.d.ts +3 -0
- package/dist/Table/style.js +10 -0
- package/dist/Table/table.d.ts +2 -8
- package/dist/Table/table.js +160 -185
- package/dist/Table/type.d.ts +50 -64
- package/dist/Table/type.js +1 -3
- package/dist/Table/utils/Provide.d.ts +6 -9
- package/dist/Table/utils/Provide.js +4 -258
- package/dist/Table/utils/columnKey.d.ts +2 -0
- package/dist/Table/utils/columnKey.js +6 -0
- package/dist/Table/utils/getColumn.d.ts +7 -7
- package/dist/Table/utils/getColumnEnumProps.d.ts +4 -2
- package/dist/Table/utils/getColumnEnumProps.js +8 -6
- package/dist/Table/utils/getColumnMerge.d.ts +7 -2
- package/dist/Table/utils/getColumnMerge.js +3 -2
- package/dist/Table/utils/getDateColumn.d.ts +8 -7
- package/dist/Table/utils/getDateColumn.js +22 -68
- package/dist/Table/utils/getInputColumn.d.ts +2 -1
- package/dist/Table/utils/getInputColumn.js +2 -6
- package/dist/Table/utils/getSort.d.ts +4 -2
- package/dist/Table/utils/getSort.js +15 -12
- package/dist/Table/utils/index.d.ts +5 -20
- package/dist/Table/utils/index.js +16 -136
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/package.json +34 -25
- package/dist/Table/components/ColumnSetting/index.css +0 -4
- package/dist/Table/components/EnumFilter/index.css +0 -57
- package/dist/Table/components/FilterDropdown/index.css +0 -11
- package/dist/Table/components/FilterKeys/index.css +0 -19
- package/dist/Table/components/SearchInput/style.css +0 -10
- package/dist/Table/style.css +0 -42
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { useStore } from 'zustand';
|
|
4
|
+
import { genColumnKey } from "../utils/columnKey";
|
|
5
|
+
import { StoreContext } from "../utils/Provide";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 返回 antd Table 的 onChange 处理函数,
|
|
9
|
+
* 根据 action 类型分发到对应的 store action。
|
|
10
|
+
*/
|
|
11
|
+
export function useTableChange(columns) {
|
|
12
|
+
var store = useContext(StoreContext);
|
|
13
|
+
var setPagination = useStore(store, function (s) {
|
|
14
|
+
return s.setPagination;
|
|
15
|
+
});
|
|
16
|
+
var setFilter = useStore(store, function (s) {
|
|
17
|
+
return s.setFilter;
|
|
18
|
+
});
|
|
19
|
+
var setSortOrder = useStore(store, function (s) {
|
|
20
|
+
return s.setSortOrder;
|
|
21
|
+
});
|
|
22
|
+
var setOffset = useStore(store, function (s) {
|
|
23
|
+
return s.setOffset;
|
|
24
|
+
});
|
|
25
|
+
return function (pageConfig, filters, sorter, extra) {
|
|
26
|
+
var _pageConfig$current, _pageConfig$pageSize;
|
|
27
|
+
var merged = Array.isArray(sorter) ? sorter[0] : sorter;
|
|
28
|
+
switch (extra.action) {
|
|
29
|
+
case 'paginate':
|
|
30
|
+
setPagination((_pageConfig$current = pageConfig.current) !== null && _pageConfig$current !== void 0 ? _pageConfig$current : 1, (_pageConfig$pageSize = pageConfig.pageSize) !== null && _pageConfig$pageSize !== void 0 ? _pageConfig$pageSize : 10);
|
|
31
|
+
return;
|
|
32
|
+
case 'sort':
|
|
33
|
+
{
|
|
34
|
+
var _merged$field;
|
|
35
|
+
var sortKey = genColumnKey((merged === null || merged === void 0 ? void 0 : merged.columnKey) || (Array.isArray(merged === null || merged === void 0 ? void 0 : merged.field) ? merged.field.join('.') : merged === null || merged === void 0 || (_merged$field = merged.field) === null || _merged$field === void 0 ? void 0 : _merged$field.toString()));
|
|
36
|
+
var isMultiple = false;
|
|
37
|
+
var found = columns.find(function (col, i) {
|
|
38
|
+
var _col$dataIndex;
|
|
39
|
+
var colKey = genColumnKey(col.key || (Array.isArray(col.dataIndex) ? col.dataIndex.join('.') : (_col$dataIndex = col.dataIndex) === null || _col$dataIndex === void 0 ? void 0 : _col$dataIndex.toString()), i);
|
|
40
|
+
return colKey === sortKey;
|
|
41
|
+
});
|
|
42
|
+
if (_typeof(found === null || found === void 0 ? void 0 : found.sorter) === 'object' && found !== null && found !== void 0 && found.sorter && 'multiple' in found.sorter) {
|
|
43
|
+
isMultiple = true;
|
|
44
|
+
}
|
|
45
|
+
setSortOrder(sortKey, merged === null || merged === void 0 ? void 0 : merged.order, isMultiple);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
case 'filter':
|
|
49
|
+
Object.keys(filters).forEach(function (key) {
|
|
50
|
+
setFilter(key, filters[key]);
|
|
51
|
+
});
|
|
52
|
+
setOffset(0);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { QuerySnapshot } from '../store/types';
|
|
2
|
+
interface TriggerSearchDeps {
|
|
3
|
+
request?: (params: Record<string, unknown>) => Promise<{
|
|
4
|
+
data: unknown[];
|
|
5
|
+
total?: number;
|
|
6
|
+
success?: boolean;
|
|
7
|
+
message?: string;
|
|
8
|
+
}>;
|
|
9
|
+
onSearch?: (payload: QuerySnapshot) => void;
|
|
10
|
+
params?: Record<string, unknown>;
|
|
11
|
+
onRequestError?: (error: Error) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 将 triggerSearch / reload / reset 从 store action 提升为 hook,
|
|
15
|
+
* 通过 ref 持有最新 props,避免 props→store 同步的反模式。
|
|
16
|
+
*/
|
|
17
|
+
export declare function useTriggerSearch(deps: TriggerSearchDeps): {
|
|
18
|
+
triggerSearch: () => Promise<void>;
|
|
19
|
+
reload: () => Promise<void>;
|
|
20
|
+
reset: () => void;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
+
function 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; }
|
|
4
|
+
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; }
|
|
5
|
+
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; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
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); }
|
|
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
|
+
import { useCallback, useContext, useRef } from 'react';
|
|
11
|
+
import { useStore } from 'zustand';
|
|
12
|
+
import { StoreContext } from "../utils/Provide";
|
|
13
|
+
var normalizeError = function normalizeError(error) {
|
|
14
|
+
return error instanceof Error ? error : new Error('请求失败,请稍后重试');
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 将 triggerSearch / reload / reset 从 store action 提升为 hook,
|
|
19
|
+
* 通过 ref 持有最新 props,避免 props→store 同步的反模式。
|
|
20
|
+
*/
|
|
21
|
+
export function useTriggerSearch(deps) {
|
|
22
|
+
var store = useContext(StoreContext);
|
|
23
|
+
var setPagination = useStore(store, function (s) {
|
|
24
|
+
return s.setPagination;
|
|
25
|
+
});
|
|
26
|
+
var resetFilter = useStore(store, function (s) {
|
|
27
|
+
return s.resetFilter;
|
|
28
|
+
});
|
|
29
|
+
var setOffset = useStore(store, function (s) {
|
|
30
|
+
return s.setOffset;
|
|
31
|
+
});
|
|
32
|
+
var setSortOrder = useStore(store, function (s) {
|
|
33
|
+
return s.setSortOrder;
|
|
34
|
+
});
|
|
35
|
+
var depsRef = useRef(deps);
|
|
36
|
+
depsRef.current = deps;
|
|
37
|
+
var triggerSearch = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
38
|
+
var _ref2, _snapshot$limit, _snapshot$offset;
|
|
39
|
+
var _depsRef$current, request, onSearch, params, onRequestError, state, snapshot, pageSize, current, _result$data, _result$total, result, nextData, normalized;
|
|
40
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
41
|
+
while (1) switch (_context.prev = _context.next) {
|
|
42
|
+
case 0:
|
|
43
|
+
_depsRef$current = depsRef.current, request = _depsRef$current.request, onSearch = _depsRef$current.onSearch, params = _depsRef$current.params, onRequestError = _depsRef$current.onRequestError;
|
|
44
|
+
state = store.getState();
|
|
45
|
+
snapshot = state.getQuerySnapshot();
|
|
46
|
+
onSearch === null || onSearch === void 0 || onSearch(snapshot);
|
|
47
|
+
if (request) {
|
|
48
|
+
_context.next = 6;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return _context.abrupt("return");
|
|
52
|
+
case 6:
|
|
53
|
+
pageSize = (_ref2 = (_snapshot$limit = snapshot.limit) !== null && _snapshot$limit !== void 0 ? _snapshot$limit : snapshot.defaultPageSize) !== null && _ref2 !== void 0 ? _ref2 : 20;
|
|
54
|
+
current = Math.floor(((_snapshot$offset = snapshot.offset) !== null && _snapshot$offset !== void 0 ? _snapshot$offset : 0) / pageSize) + 1;
|
|
55
|
+
store.setState({
|
|
56
|
+
requestLoading: true,
|
|
57
|
+
requestError: null
|
|
58
|
+
});
|
|
59
|
+
_context.prev = 9;
|
|
60
|
+
_context.next = 12;
|
|
61
|
+
return request(_objectSpread(_objectSpread(_objectSpread({}, snapshot), params !== null && params !== void 0 ? params : {}), {}, {
|
|
62
|
+
current: current,
|
|
63
|
+
pageSize: pageSize
|
|
64
|
+
}));
|
|
65
|
+
case 12:
|
|
66
|
+
result = _context.sent;
|
|
67
|
+
if (!((result === null || result === void 0 ? void 0 : result.success) === false)) {
|
|
68
|
+
_context.next = 15;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
throw new Error(result.message || '请求失败,请稍后重试');
|
|
72
|
+
case 15:
|
|
73
|
+
nextData = (_result$data = result === null || result === void 0 ? void 0 : result.data) !== null && _result$data !== void 0 ? _result$data : [];
|
|
74
|
+
store.setState({
|
|
75
|
+
requestDataSource: nextData,
|
|
76
|
+
total: (_result$total = result === null || result === void 0 ? void 0 : result.total) !== null && _result$total !== void 0 ? _result$total : nextData.length
|
|
77
|
+
});
|
|
78
|
+
_context.next = 24;
|
|
79
|
+
break;
|
|
80
|
+
case 19:
|
|
81
|
+
_context.prev = 19;
|
|
82
|
+
_context.t0 = _context["catch"](9);
|
|
83
|
+
normalized = normalizeError(_context.t0);
|
|
84
|
+
store.setState({
|
|
85
|
+
requestError: normalized,
|
|
86
|
+
requestDataSource: [],
|
|
87
|
+
total: 0
|
|
88
|
+
});
|
|
89
|
+
onRequestError === null || onRequestError === void 0 || onRequestError(normalized);
|
|
90
|
+
case 24:
|
|
91
|
+
_context.prev = 24;
|
|
92
|
+
store.setState({
|
|
93
|
+
requestLoading: false
|
|
94
|
+
});
|
|
95
|
+
return _context.finish(24);
|
|
96
|
+
case 27:
|
|
97
|
+
case "end":
|
|
98
|
+
return _context.stop();
|
|
99
|
+
}
|
|
100
|
+
}, _callee, null, [[9, 19, 24, 27]]);
|
|
101
|
+
})), [store]);
|
|
102
|
+
var reload = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
103
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
104
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
105
|
+
case 0:
|
|
106
|
+
store.setState({
|
|
107
|
+
manualRequested: true
|
|
108
|
+
});
|
|
109
|
+
_context2.next = 3;
|
|
110
|
+
return triggerSearch();
|
|
111
|
+
case 3:
|
|
112
|
+
case "end":
|
|
113
|
+
return _context2.stop();
|
|
114
|
+
}
|
|
115
|
+
}, _callee2);
|
|
116
|
+
})), [store, triggerSearch]);
|
|
117
|
+
var reset = useCallback(function () {
|
|
118
|
+
var _ref4, _store$getState$limit;
|
|
119
|
+
var pageSize = (_ref4 = (_store$getState$limit = store.getState().limit) !== null && _store$getState$limit !== void 0 ? _store$getState$limit : store.getState().defaultPageSize) !== null && _ref4 !== void 0 ? _ref4 : 20;
|
|
120
|
+
resetFilter();
|
|
121
|
+
setOffset(0);
|
|
122
|
+
setSortOrder('', undefined);
|
|
123
|
+
setPagination(1, pageSize);
|
|
124
|
+
}, [store, resetFilter, setOffset, setSortOrder, setPagination]);
|
|
125
|
+
return {
|
|
126
|
+
triggerSearch: triggerSearch,
|
|
127
|
+
reload: reload,
|
|
128
|
+
reset: reset
|
|
129
|
+
};
|
|
130
|
+
}
|
package/dist/Table/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { TableState } from './type';
|
|
3
3
|
export type AnyObject = Record<PropertyKey, any>;
|
|
4
|
-
export type RefTable =
|
|
4
|
+
export type RefTable = (props: TableState) => React.ReactElement;
|
|
5
5
|
declare const Table: RefTable;
|
|
6
6
|
export default Table;
|
|
7
7
|
export type * from './type';
|
package/dist/Table/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
1
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
|
+
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; }
|
|
4
|
+
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); } }
|
|
5
|
+
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); }); }; }
|
|
2
6
|
import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
3
7
|
import RichTable from "./table";
|
|
4
8
|
import { StoreProvider } from "./utils/Provide";
|
|
@@ -9,7 +13,27 @@ var Table = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
9
13
|
setFilter: function setFilter() {},
|
|
10
14
|
setPagination: function setPagination() {},
|
|
11
15
|
setSize: function setSize() {},
|
|
12
|
-
|
|
16
|
+
reload: function () {
|
|
17
|
+
var _reload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
18
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
19
|
+
while (1) switch (_context.prev = _context.next) {
|
|
20
|
+
case 0:
|
|
21
|
+
case "end":
|
|
22
|
+
return _context.stop();
|
|
23
|
+
}
|
|
24
|
+
}, _callee);
|
|
25
|
+
}));
|
|
26
|
+
function reload() {
|
|
27
|
+
return _reload.apply(this, arguments);
|
|
28
|
+
}
|
|
29
|
+
return reload;
|
|
30
|
+
}(),
|
|
31
|
+
reset: function reset() {},
|
|
32
|
+
queryData: {
|
|
33
|
+
defaultPageSize: 20,
|
|
34
|
+
defaultCurrent: 1,
|
|
35
|
+
filter: {}
|
|
36
|
+
}
|
|
13
37
|
};
|
|
14
38
|
});
|
|
15
39
|
return /*#__PURE__*/React.createElement(StoreProvider, null, /*#__PURE__*/React.createElement(RichTable, _extends({
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function 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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
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); }
|
|
7
|
+
import { createStore } from 'zustand';
|
|
8
|
+
import { createColumnSliceActions } from "./slices/column/actions";
|
|
9
|
+
import { columnInitialState } from "./slices/column/initialState";
|
|
10
|
+
import { createPersistSliceActions } from "./slices/persist/actions";
|
|
11
|
+
import { createPersistSliceApi } from "./slices/persist/api";
|
|
12
|
+
import { createQuerySliceActions } from "./slices/query/actions";
|
|
13
|
+
import { queryInitialState } from "./slices/query/initialState";
|
|
14
|
+
import { createRequestSliceActions } from "./slices/request/actions";
|
|
15
|
+
import { requestInitialState } from "./slices/request/initialState";
|
|
16
|
+
import { createUISliceActions } from "./slices/ui/actions";
|
|
17
|
+
import { uiInitialState } from "./slices/ui/initialState";
|
|
18
|
+
export var createTableStore = function createTableStore() {
|
|
19
|
+
return createStore(function (set, get) {
|
|
20
|
+
var persistApi = createPersistSliceApi();
|
|
21
|
+
var queryActions = createQuerySliceActions(set, get, persistApi);
|
|
22
|
+
var columnActions = createColumnSliceActions(set, get, persistApi);
|
|
23
|
+
var uiActions = createUISliceActions(set, get, persistApi);
|
|
24
|
+
var requestActions = createRequestSliceActions(set);
|
|
25
|
+
var persistActions = createPersistSliceActions(set, get, persistApi);
|
|
26
|
+
return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, queryInitialState), columnInitialState), uiInitialState), requestInitialState), queryActions), columnActions), uiActions), requestActions), persistActions), {}, {
|
|
27
|
+
storageName: undefined
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { TableStore } from './types';
|
|
2
|
+
export declare const useTableStore: <T>(selector: (state: TableStore) => T) => T;
|
|
3
|
+
export declare const useFilterValue: () => import("./types").FilterMap;
|
|
4
|
+
export declare const useSetFilter: () => (key: string, value: import("./types").FilterInputValue | null | undefined, exact?: boolean | undefined) => void;
|
|
5
|
+
export declare const useResetFilter: () => () => void;
|
|
6
|
+
export declare const useFilter: () => {
|
|
7
|
+
filter: import("./types").FilterMap;
|
|
8
|
+
setFilter: (key: string, value: import("./types").FilterInputValue | null | undefined, exact?: boolean | undefined) => void;
|
|
9
|
+
resetFilter: () => void;
|
|
10
|
+
};
|
|
11
|
+
export declare const useTableSizeValue: () => import("./types").TableSizeType | undefined;
|
|
12
|
+
export declare const useSetTableSize: () => (value: import("./types").TableSizeType) => void;
|
|
13
|
+
export declare const useTableSize: () => {
|
|
14
|
+
size: import("./types").TableSizeType | undefined;
|
|
15
|
+
setSize: (value: import("./types").TableSizeType) => void;
|
|
16
|
+
};
|
|
17
|
+
export declare const useTableRequest: () => {
|
|
18
|
+
loading: boolean;
|
|
19
|
+
error: Error | null;
|
|
20
|
+
dataSource: unknown[];
|
|
21
|
+
total: number;
|
|
22
|
+
reload: () => Promise<void>;
|
|
23
|
+
triggerSearch: () => Promise<void>;
|
|
24
|
+
reset: () => void;
|
|
25
|
+
};
|
|
26
|
+
export declare const useColumnsValue: () => import("..").RichColumn<unknown>[];
|
|
27
|
+
export declare const useColumnSetting: () => import("./types").ColumnSettingItem[];
|
|
28
|
+
export declare const useSetColumnSetting: () => (value: import("./types").ColumnSettingItem[]) => void;
|
|
29
|
+
export declare const useColumns: () => {
|
|
30
|
+
columns: import("..").RichColumn<unknown>[];
|
|
31
|
+
columnSetting: import("./types").ColumnSettingItem[];
|
|
32
|
+
setColumnSetting: (value: import("./types").ColumnSettingItem[]) => void;
|
|
33
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { useStore } from 'zustand';
|
|
3
|
+
import { useTableContext } from "../context";
|
|
4
|
+
import { StoreContext } from "../utils/Provide";
|
|
5
|
+
export var useTableStore = function useTableStore(selector) {
|
|
6
|
+
var store = useContext(StoreContext);
|
|
7
|
+
return useStore(store, selector);
|
|
8
|
+
};
|
|
9
|
+
export var useFilterValue = function useFilterValue() {
|
|
10
|
+
return useTableStore(function (s) {
|
|
11
|
+
return s.filter;
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
export var useSetFilter = function useSetFilter() {
|
|
15
|
+
return useTableStore(function (s) {
|
|
16
|
+
return s.setFilter;
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export var useResetFilter = function useResetFilter() {
|
|
20
|
+
return useTableStore(function (s) {
|
|
21
|
+
return s.resetFilter;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
export var useFilter = function useFilter() {
|
|
25
|
+
var filter = useFilterValue();
|
|
26
|
+
var setFilter = useSetFilter();
|
|
27
|
+
var resetFilter = useResetFilter();
|
|
28
|
+
return {
|
|
29
|
+
filter: filter,
|
|
30
|
+
setFilter: setFilter,
|
|
31
|
+
resetFilter: resetFilter
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export var useTableSizeValue = function useTableSizeValue() {
|
|
35
|
+
return useTableStore(function (s) {
|
|
36
|
+
return s.size;
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export var useSetTableSize = function useSetTableSize() {
|
|
40
|
+
return useTableStore(function (s) {
|
|
41
|
+
return s.setSize;
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
export var useTableSize = function useTableSize() {
|
|
45
|
+
var size = useTableSizeValue();
|
|
46
|
+
var setSize = useSetTableSize();
|
|
47
|
+
return {
|
|
48
|
+
size: size,
|
|
49
|
+
setSize: setSize
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export var useTableRequest = function useTableRequest() {
|
|
53
|
+
var loading = useTableStore(function (s) {
|
|
54
|
+
return s.requestLoading;
|
|
55
|
+
});
|
|
56
|
+
var error = useTableStore(function (s) {
|
|
57
|
+
return s.requestError;
|
|
58
|
+
});
|
|
59
|
+
var dataSource = useTableStore(function (s) {
|
|
60
|
+
return s.requestDataSource;
|
|
61
|
+
});
|
|
62
|
+
var total = useTableStore(function (s) {
|
|
63
|
+
return s.total;
|
|
64
|
+
});
|
|
65
|
+
var ctx = useTableContext();
|
|
66
|
+
return {
|
|
67
|
+
loading: loading,
|
|
68
|
+
error: error,
|
|
69
|
+
dataSource: dataSource,
|
|
70
|
+
total: total,
|
|
71
|
+
reload: ctx.reload,
|
|
72
|
+
triggerSearch: ctx.triggerSearch,
|
|
73
|
+
reset: ctx.reset
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
export var useColumnsValue = function useColumnsValue() {
|
|
77
|
+
return useTableContext().columns;
|
|
78
|
+
};
|
|
79
|
+
export var useColumnSetting = function useColumnSetting() {
|
|
80
|
+
return useTableStore(function (s) {
|
|
81
|
+
return s.columnSetting;
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
export var useSetColumnSetting = function useSetColumnSetting() {
|
|
85
|
+
return useTableStore(function (s) {
|
|
86
|
+
return s.setColumnSetting;
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
export var useColumns = function useColumns() {
|
|
90
|
+
var columns = useColumnsValue();
|
|
91
|
+
var columnSetting = useColumnSetting();
|
|
92
|
+
var setColumnSetting = useSetColumnSetting();
|
|
93
|
+
return {
|
|
94
|
+
columns: columns,
|
|
95
|
+
columnSetting: columnSetting,
|
|
96
|
+
setColumnSetting: setColumnSetting
|
|
97
|
+
};
|
|
98
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StateCreator } from 'zustand';
|
|
2
|
+
import type { PersistSliceApi } from '../persist/api';
|
|
3
|
+
import type { TableStore } from '../../types';
|
|
4
|
+
type Setter = Parameters<StateCreator<TableStore>>[0];
|
|
5
|
+
type Getter = Parameters<StateCreator<TableStore>>[1];
|
|
6
|
+
export declare const createColumnSliceActions: (set: Setter, get: Getter, persistApi: PersistSliceApi) => {
|
|
7
|
+
setColumnSetting: (value: TableStore['columnSetting']) => void;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var createColumnSliceActions = function createColumnSliceActions(set, get, persistApi) {
|
|
2
|
+
return {
|
|
3
|
+
setColumnSetting: function setColumnSetting(value) {
|
|
4
|
+
set({
|
|
5
|
+
columnSetting: value
|
|
6
|
+
});
|
|
7
|
+
persistApi.persistColumnSetting(get().storageName, value);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { StateCreator } from 'zustand';
|
|
2
|
+
import type { PersistSliceApi } from './api';
|
|
3
|
+
import type { TableStore } from '../../types';
|
|
4
|
+
type Setter = Parameters<StateCreator<TableStore>>[0];
|
|
5
|
+
type Getter = Parameters<StateCreator<TableStore>>[1];
|
|
6
|
+
export declare const createPersistSliceActions: (set: Setter, get: Getter, persistApi: PersistSliceApi) => {
|
|
7
|
+
setStorageName: (key: string) => void;
|
|
8
|
+
readLocalData: (key?: string) => void;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function 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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
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); }
|
|
7
|
+
export var createPersistSliceActions = function createPersistSliceActions(set, get, persistApi) {
|
|
8
|
+
return {
|
|
9
|
+
setStorageName: function setStorageName(key) {
|
|
10
|
+
set({
|
|
11
|
+
storageName: key
|
|
12
|
+
});
|
|
13
|
+
},
|
|
14
|
+
readLocalData: function readLocalData(key) {
|
|
15
|
+
if (!key) return;
|
|
16
|
+
var cachedQueryData = persistApi.readQueryData(key);
|
|
17
|
+
if (cachedQueryData) {
|
|
18
|
+
get().setQueryData(_objectSpread(_objectSpread({}, get().getQuerySnapshot()), cachedQueryData));
|
|
19
|
+
}
|
|
20
|
+
var cachedColumnSetting = persistApi.readColumnSetting(key);
|
|
21
|
+
if (cachedColumnSetting !== null && cachedColumnSetting !== void 0 && cachedColumnSetting.length) {
|
|
22
|
+
set({
|
|
23
|
+
columnSetting: cachedColumnSetting
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ColumnSettingItem, QuerySnapshot } from '../../types';
|
|
2
|
+
export interface PersistSliceApi {
|
|
3
|
+
persistQueryData: (storageName: string | undefined, query: QuerySnapshot) => void;
|
|
4
|
+
persistColumnSetting: (storageName: string | undefined, columnSetting: ColumnSettingItem[]) => void;
|
|
5
|
+
readQueryData: (key: string) => Partial<QuerySnapshot> | undefined;
|
|
6
|
+
readColumnSetting: (key: string) => ColumnSettingItem[] | undefined;
|
|
7
|
+
}
|
|
8
|
+
export declare const createPersistSliceApi: () => PersistSliceApi;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var safeParse = function safeParse(raw) {
|
|
2
|
+
if (!raw) return undefined;
|
|
3
|
+
try {
|
|
4
|
+
return JSON.parse(raw);
|
|
5
|
+
} catch (error) {
|
|
6
|
+
console.error('[TableStore] parse local cache failed:', error);
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var canUseLocalStorage = function canUseLocalStorage() {
|
|
11
|
+
return typeof localStorage !== 'undefined';
|
|
12
|
+
};
|
|
13
|
+
export var createPersistSliceApi = function createPersistSliceApi() {
|
|
14
|
+
return {
|
|
15
|
+
persistQueryData: function persistQueryData(storageName, query) {
|
|
16
|
+
if (!storageName || !canUseLocalStorage()) return;
|
|
17
|
+
try {
|
|
18
|
+
localStorage.setItem(storageName, JSON.stringify(query));
|
|
19
|
+
} catch (error) {
|
|
20
|
+
console.error('[TableStore] persist query cache failed:', error);
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
persistColumnSetting: function persistColumnSetting(storageName, columnSetting) {
|
|
24
|
+
if (!storageName || !canUseLocalStorage()) return;
|
|
25
|
+
try {
|
|
26
|
+
localStorage.setItem("".concat(storageName, "_columns"), JSON.stringify(columnSetting));
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error('[TableStore] persist column cache failed:', error);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
readQueryData: function readQueryData(key) {
|
|
32
|
+
if (!canUseLocalStorage()) return undefined;
|
|
33
|
+
return safeParse(localStorage.getItem(key));
|
|
34
|
+
},
|
|
35
|
+
readColumnSetting: function readColumnSetting(key) {
|
|
36
|
+
if (!canUseLocalStorage()) return undefined;
|
|
37
|
+
return safeParse(localStorage.getItem("".concat(key, "_columns")));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { StateCreator } from 'zustand';
|
|
2
|
+
import type { PersistSliceApi } from '../persist/api';
|
|
3
|
+
import type { TableStore } from '../../types';
|
|
4
|
+
type Setter = Parameters<StateCreator<TableStore>>[0];
|
|
5
|
+
type Getter = Parameters<StateCreator<TableStore>>[1];
|
|
6
|
+
export declare const createQuerySliceActions: (set: Setter, get: Getter, persistApi: PersistSliceApi) => {
|
|
7
|
+
setPagination: (newPage: number, newPageSize: number) => void;
|
|
8
|
+
setFilter: (key: string, value: TableStore['filter'][string]['value'] | null | undefined, exact?: boolean) => void;
|
|
9
|
+
resetFilter: () => void;
|
|
10
|
+
setSearch: (value: string) => void;
|
|
11
|
+
setSortOrder: (key: string, value?: 'descend' | 'ascend' | string | null, isMultiple?: boolean) => void;
|
|
12
|
+
setOffset: (value: number) => void;
|
|
13
|
+
setQueryData: (value: any) => void;
|
|
14
|
+
getQuerySnapshot: () => {
|
|
15
|
+
defaultPageSize: number;
|
|
16
|
+
defaultCurrent: number;
|
|
17
|
+
offset: number | undefined;
|
|
18
|
+
limit: number | undefined;
|
|
19
|
+
search: string | undefined;
|
|
20
|
+
filter: import("../../types").FilterMap;
|
|
21
|
+
sort: string | undefined;
|
|
22
|
+
order: string | null | undefined;
|
|
23
|
+
multipleSort: {
|
|
24
|
+
key?: string | undefined;
|
|
25
|
+
value?: string | undefined;
|
|
26
|
+
}[] | undefined;
|
|
27
|
+
total: number;
|
|
28
|
+
size: import("../../types").TableSizeType | undefined;
|
|
29
|
+
storageName: string | undefined;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export {};
|