@nokecy/qc-ui 1.0.94 → 1.0.95

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/dist/cjs/ag-grid-plus/ag-gridPlus.js +252 -173
  2. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +77 -19
  3. package/dist/cjs/ag-grid-plus/context/gridContext.js +0 -4
  4. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.d.ts +88 -0
  5. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +173 -0
  6. package/dist/cjs/ag-grid-plus/context/useSchemeManager.d.ts +78 -0
  7. package/dist/cjs/ag-grid-plus/{querySchemes/hooks/useQuerySchemes.js → context/useSchemeManager.js} +421 -449
  8. package/dist/cjs/ag-grid-plus/hooks/useAgGridCalculation.d.ts +1 -1
  9. package/dist/cjs/ag-grid-plus/hooks/useAgGridData.d.ts +2 -2
  10. package/dist/cjs/ag-grid-plus/index.d.ts +7 -2
  11. package/dist/cjs/ag-grid-plus/index.js +11 -93
  12. package/dist/cjs/ag-grid-plus/interface.d.ts +0 -31
  13. package/dist/cjs/ag-grid-plus/interface.js +3 -0
  14. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.d.ts +0 -3
  15. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +279 -145
  16. package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.d.ts +11 -0
  17. package/dist/cjs/ag-grid-plus/{querySchemes/components/QuerySchemesManager.js → setting/QuerySchemeManager.js} +193 -108
  18. package/dist/cjs/ag-grid-plus/setting/index.d.ts +2 -2
  19. package/dist/cjs/ag-grid-plus/setting/index.js +33 -48
  20. package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.d.ts +58 -0
  21. package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +446 -0
  22. package/dist/cjs/ag-grid-plus/shared/storage/localStorageAdapter.d.ts +57 -0
  23. package/dist/cjs/ag-grid-plus/{schemes → shared}/storage/localStorageAdapter.js +253 -271
  24. package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +132 -0
  25. package/dist/cjs/array-table/index.js +167 -45
  26. package/dist/cjs/index.d.ts +3 -3
  27. package/dist/cjs/index.js +14 -86
  28. package/dist/esm/ag-grid-plus/ag-gridPlus.js +252 -173
  29. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +77 -19
  30. package/dist/esm/ag-grid-plus/context/gridContext.js +0 -4
  31. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.d.ts +88 -0
  32. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +165 -0
  33. package/dist/esm/ag-grid-plus/context/useSchemeManager.d.ts +78 -0
  34. package/dist/esm/ag-grid-plus/{querySchemes/hooks/useQuerySchemes.js → context/useSchemeManager.js} +420 -449
  35. package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.d.ts +1 -1
  36. package/dist/esm/ag-grid-plus/hooks/useAgGridData.d.ts +2 -2
  37. package/dist/esm/ag-grid-plus/index.d.ts +7 -2
  38. package/dist/esm/ag-grid-plus/index.js +9 -5
  39. package/dist/esm/ag-grid-plus/interface.d.ts +0 -31
  40. package/dist/esm/ag-grid-plus/interface.js +2 -0
  41. package/dist/esm/ag-grid-plus/setting/ColumnSetting.d.ts +0 -3
  42. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +281 -147
  43. package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.d.ts +11 -0
  44. package/dist/esm/ag-grid-plus/{querySchemes/components/QuerySchemesManager.js → setting/QuerySchemeManager.js} +192 -107
  45. package/dist/esm/ag-grid-plus/setting/index.d.ts +2 -2
  46. package/dist/esm/ag-grid-plus/setting/index.js +33 -48
  47. package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.d.ts +58 -0
  48. package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +444 -0
  49. package/dist/esm/ag-grid-plus/shared/storage/localStorageAdapter.d.ts +57 -0
  50. package/dist/esm/ag-grid-plus/{schemes → shared}/storage/localStorageAdapter.js +252 -271
  51. package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +132 -0
  52. package/dist/esm/array-table/index.js +168 -46
  53. package/dist/esm/index.d.ts +3 -3
  54. package/dist/esm/index.js +11 -11
  55. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +1 -1
  56. package/dist/umd/qc-ui.min.css +1 -1
  57. package/dist/umd/qc-ui.min.js +1 -1
  58. package/package.json +1 -1
  59. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.d.ts +0 -21
  60. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.less +0 -86
  61. package/dist/cjs/ag-grid-plus/querySchemes/components/index.d.ts +0 -5
  62. package/dist/cjs/ag-grid-plus/querySchemes/components/index.js +0 -12
  63. package/dist/cjs/ag-grid-plus/querySchemes/constants.d.ts +0 -17
  64. package/dist/cjs/ag-grid-plus/querySchemes/constants.js +0 -30
  65. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.d.ts +0 -10
  66. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.js +0 -65
  67. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.d.ts +0 -6
  68. package/dist/cjs/ag-grid-plus/querySchemes/index.d.ts +0 -11
  69. package/dist/cjs/ag-grid-plus/querySchemes/index.js +0 -113
  70. package/dist/cjs/ag-grid-plus/querySchemes/storage/localStorageAdapter.d.ts +0 -44
  71. package/dist/cjs/ag-grid-plus/querySchemes/storage/localStorageAdapter.js +0 -261
  72. package/dist/cjs/ag-grid-plus/querySchemes/types.d.ts +0 -145
  73. package/dist/cjs/ag-grid-plus/querySchemes/utils/validator.d.ts +0 -36
  74. package/dist/cjs/ag-grid-plus/querySchemes/utils/validator.js +0 -155
  75. package/dist/cjs/ag-grid-plus/schemes/components/SchemeManager.d.ts +0 -16
  76. package/dist/cjs/ag-grid-plus/schemes/components/SchemeManager.js +0 -342
  77. package/dist/cjs/ag-grid-plus/schemes/components/SchemeManager.less +0 -35
  78. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.d.ts +0 -20
  79. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.js +0 -289
  80. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.less +0 -39
  81. package/dist/cjs/ag-grid-plus/schemes/components/index.d.ts +0 -4
  82. package/dist/cjs/ag-grid-plus/schemes/components/index.js +0 -19
  83. package/dist/cjs/ag-grid-plus/schemes/constants.d.ts +0 -23
  84. package/dist/cjs/ag-grid-plus/schemes/constants.js +0 -39
  85. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.d.ts +0 -6
  86. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.js +0 -617
  87. package/dist/cjs/ag-grid-plus/schemes/index.d.ts +0 -23
  88. package/dist/cjs/ag-grid-plus/schemes/index.js +0 -164
  89. package/dist/cjs/ag-grid-plus/schemes/storage/configMerger.d.ts +0 -10
  90. package/dist/cjs/ag-grid-plus/schemes/storage/configMerger.js +0 -34
  91. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +0 -79
  92. package/dist/cjs/ag-grid-plus/schemes/storage/priorityStorageAdapter.d.ts +0 -122
  93. package/dist/cjs/ag-grid-plus/schemes/storage/priorityStorageAdapter.js +0 -476
  94. package/dist/cjs/ag-grid-plus/schemes/storage/remoteStorageAdapter.d.ts +0 -139
  95. package/dist/cjs/ag-grid-plus/schemes/storage/remoteStorageAdapter.js +0 -746
  96. package/dist/cjs/ag-grid-plus/schemes/storage/useRemoteStorage.d.ts +0 -29
  97. package/dist/cjs/ag-grid-plus/schemes/storage/useRemoteStorage.js +0 -45
  98. package/dist/cjs/ag-grid-plus/schemes/types.d.ts +0 -131
  99. package/dist/cjs/ag-grid-plus/schemes/types.js +0 -5
  100. package/dist/cjs/ag-grid-plus/schemes/utils/validator.d.ts +0 -27
  101. package/dist/cjs/ag-grid-plus/schemes/utils/validator.js +0 -109
  102. package/dist/cjs/ag-grid-plus/storage/index.d.ts +0 -13
  103. package/dist/cjs/ag-grid-plus/storage/index.js +0 -5
  104. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.d.ts +0 -21
  105. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.less +0 -86
  106. package/dist/esm/ag-grid-plus/querySchemes/components/index.d.ts +0 -5
  107. package/dist/esm/ag-grid-plus/querySchemes/components/index.js +0 -5
  108. package/dist/esm/ag-grid-plus/querySchemes/constants.d.ts +0 -17
  109. package/dist/esm/ag-grid-plus/querySchemes/constants.js +0 -24
  110. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.d.ts +0 -10
  111. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.js +0 -60
  112. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.d.ts +0 -6
  113. package/dist/esm/ag-grid-plus/querySchemes/index.d.ts +0 -11
  114. package/dist/esm/ag-grid-plus/querySchemes/index.js +0 -20
  115. package/dist/esm/ag-grid-plus/querySchemes/storage/localStorageAdapter.d.ts +0 -44
  116. package/dist/esm/ag-grid-plus/querySchemes/storage/localStorageAdapter.js +0 -256
  117. package/dist/esm/ag-grid-plus/querySchemes/types.d.ts +0 -145
  118. package/dist/esm/ag-grid-plus/querySchemes/utils/validator.d.ts +0 -36
  119. package/dist/esm/ag-grid-plus/querySchemes/utils/validator.js +0 -144
  120. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.d.ts +0 -16
  121. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.js +0 -334
  122. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.less +0 -35
  123. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts +0 -20
  124. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.js +0 -281
  125. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.less +0 -39
  126. package/dist/esm/ag-grid-plus/schemes/components/index.d.ts +0 -4
  127. package/dist/esm/ag-grid-plus/schemes/components/index.js +0 -2
  128. package/dist/esm/ag-grid-plus/schemes/constants.d.ts +0 -23
  129. package/dist/esm/ag-grid-plus/schemes/constants.js +0 -33
  130. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.d.ts +0 -6
  131. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.js +0 -612
  132. package/dist/esm/ag-grid-plus/schemes/index.d.ts +0 -23
  133. package/dist/esm/ag-grid-plus/schemes/index.js +0 -30
  134. package/dist/esm/ag-grid-plus/schemes/storage/configMerger.d.ts +0 -10
  135. package/dist/esm/ag-grid-plus/schemes/storage/configMerger.js +0 -28
  136. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +0 -79
  137. package/dist/esm/ag-grid-plus/schemes/storage/priorityStorageAdapter.d.ts +0 -122
  138. package/dist/esm/ag-grid-plus/schemes/storage/priorityStorageAdapter.js +0 -471
  139. package/dist/esm/ag-grid-plus/schemes/storage/remoteStorageAdapter.d.ts +0 -139
  140. package/dist/esm/ag-grid-plus/schemes/storage/remoteStorageAdapter.js +0 -746
  141. package/dist/esm/ag-grid-plus/schemes/storage/useRemoteStorage.d.ts +0 -29
  142. package/dist/esm/ag-grid-plus/schemes/storage/useRemoteStorage.js +0 -40
  143. package/dist/esm/ag-grid-plus/schemes/types.d.ts +0 -131
  144. package/dist/esm/ag-grid-plus/schemes/types.js +0 -1
  145. package/dist/esm/ag-grid-plus/schemes/utils/validator.d.ts +0 -27
  146. package/dist/esm/ag-grid-plus/schemes/utils/validator.js +0 -100
  147. package/dist/esm/ag-grid-plus/storage/index.d.ts +0 -13
  148. package/dist/esm/ag-grid-plus/storage/index.js +0 -17
  149. /package/dist/cjs/ag-grid-plus/{querySchemes/types.js → shared/storage/schemeStorageAdapter.js} +0 -0
  150. /package/dist/esm/ag-grid-plus/{querySchemes/types.js → shared/storage/schemeStorageAdapter.js} +0 -0
@@ -1,13 +1,13 @@
1
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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
- 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."); }
4
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
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; }
7
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; }
8
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; }
9
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
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
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+ 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."); }
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
10
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
11
11
  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; }
12
12
  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); } }
13
13
  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); }); }; }
@@ -17,543 +17,514 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
17
17
  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; }
18
18
  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; } }
19
19
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
- import { useState, useEffect, useCallback, useRef } from 'react';
21
- import { v4 as uuidv4 } from 'uuid';
22
- import { defaultQueryStorageAdapter } from "../storage/localStorageAdapter";
23
- import { validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName } from "../utils/validator";
24
- import { MAX_QUERY_SCHEMES_PER_GRID } from "../constants";
20
+ import { useContext, useEffect, useState, useCallback, useRef } from 'react';
21
+ import { GridPlusContext } from "./gridContext";
22
+ import { message } from 'antd';
23
+
24
+ /**
25
+ * useSchemeManager Hook 配置
26
+ */
25
27
 
26
28
  /**
27
- * 查询方案管理 Hook
28
- * 提供方案的 CRUD 操作、自动保存、验证等功能
29
+ * 集中式方案管理 Hook
30
+ *
31
+ * 用于 GridPlusContext.Provider 中初始化方案管理功能
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * function AppProvider({ children }) {
36
+ * const adapter = new BackendApiSchemeAdapter({ ... });
37
+ * const schemeManager = useSchemeManager({ adapter });
38
+ *
39
+ * return (
40
+ * <GridPlusContext.Provider value={{
41
+ * ...otherValues,
42
+ * ...schemeManager
43
+ * }}>
44
+ * {children}
45
+ * </GridPlusContext.Provider>
46
+ * );
47
+ * }
48
+ * ```
29
49
  */
30
- export function useQuerySchemes(config) {
31
- var gridId = config.gridId,
32
- _config$storageAdapte = config.storageAdapter,
33
- storageAdapter = _config$storageAdapte === void 0 ? defaultQueryStorageAdapter : _config$storageAdapte,
34
- _config$enableAutoSav = config.enableAutoSave,
35
- enableAutoSave = _config$enableAutoSav === void 0 ? true : _config$enableAutoSav,
36
- onSchemeChange = config.onSchemeChange,
37
- onSchemeSave = config.onSchemeSave,
38
- onSchemeDelete = config.onSchemeDelete;
39
-
40
- // 状态管理
41
- var _useState = useState([]),
50
+ export function useSchemeManager(config) {
51
+ var adapter = config.adapter,
52
+ _config$autoLoad = config.autoLoad,
53
+ autoLoad = _config$autoLoad === void 0 ? true : _config$autoLoad,
54
+ _config$showErrorMess = config.showErrorMessage,
55
+ showErrorMessage = _config$showErrorMess === void 0 ? true : _config$showErrorMess;
56
+
57
+ // ========== 状态管理 ==========
58
+
59
+ var _useState = useState({}),
42
60
  _useState2 = _slicedToArray(_useState, 2),
43
- schemes = _useState2[0],
44
- setSchemes = _useState2[1];
45
- var _useState3 = useState(null),
61
+ columnSchemes = _useState2[0],
62
+ setColumnSchemes = _useState2[1];
63
+ var _useState3 = useState({}),
46
64
  _useState4 = _slicedToArray(_useState3, 2),
47
- currentScheme = _useState4[0],
48
- setCurrentScheme = _useState4[1];
49
- var _useState5 = useState(false),
65
+ querySchemes = _useState4[0],
66
+ setQuerySchemes = _useState4[1];
67
+ var _useState5 = useState({}),
50
68
  _useState6 = _slicedToArray(_useState5, 2),
51
- isDirty = _useState6[0],
52
- setIsDirty = _useState6[1];
53
- var _useState7 = useState(true),
69
+ currentSchemes = _useState6[0],
70
+ setCurrentSchemes = _useState6[1];
71
+ var _useState7 = useState(false),
54
72
  _useState8 = _slicedToArray(_useState7, 2),
55
73
  loading = _useState8[0],
56
74
  setLoading = _useState8[1];
75
+ var _useState9 = useState(0),
76
+ _useState10 = _slicedToArray(_useState9, 2),
77
+ lastSyncTime = _useState10[0],
78
+ setLastSyncTime = _useState10[1];
57
79
 
58
- // 用于防抖和缓存
59
- var saveTimeoutRef = useRef();
60
- var currentItemsOrderRef = useRef([]);
80
+ // 防止重复加载
81
+ var loadingRef = useRef(false);
82
+ var loadedRef = useRef(false);
61
83
 
62
- /**
63
- * 初始化:加载方案列表
64
- */
65
- useEffect(function () {
66
- loadSchemesList();
67
- }, [gridId]);
68
-
69
- /**
70
- * 加载方案列表
71
- */
72
- var loadSchemesList = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
73
- var loadedSchemes, schemeToLoad, lastSchemeId;
84
+ // ========== 初始化加载 ==========
85
+
86
+ var loadAllSchemes = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
87
+ var data;
74
88
  return _regeneratorRuntime().wrap(function _callee$(_context) {
75
89
  while (1) switch (_context.prev = _context.next) {
76
90
  case 0:
77
- _context.prev = 0;
78
- setLoading(true);
79
- _context.next = 4;
80
- return storageAdapter.getSchemes(gridId);
81
- case 4:
82
- loadedSchemes = _context.sent;
83
- setSchemes(loadedSchemes);
84
-
85
- // 优先加载上次使用的方案,如果没有则加载默认方案
86
- if (!(!currentScheme && loadedSchemes.length > 0)) {
87
- _context.next = 15;
91
+ if (!loadingRef.current) {
92
+ _context.next = 2;
88
93
  break;
89
94
  }
90
- schemeToLoad = null; // 1. 尝试加载上次使用的方案
91
- if (!storageAdapter.getCurrentSchemeId) {
92
- _context.next = 13;
93
- break;
94
- }
95
- _context.next = 11;
96
- return storageAdapter.getCurrentSchemeId(gridId);
97
- case 11:
98
- lastSchemeId = _context.sent;
99
- if (lastSchemeId) {
100
- schemeToLoad = loadedSchemes.find(function (s) {
101
- return s.id === lastSchemeId;
102
- }) || null;
103
- }
104
- case 13:
105
- // 2. 如果没有上次使用的方案,加载默认方案
106
- if (!schemeToLoad) {
107
- schemeToLoad = loadedSchemes.find(function (s) {
108
- return s.isDefault;
109
- }) || null;
110
- }
111
-
112
- // 3. 应用方案
113
- if (schemeToLoad) {
114
- setCurrentScheme(schemeToLoad);
115
- onSchemeChange === null || onSchemeChange === void 0 || onSchemeChange(schemeToLoad);
116
- }
117
- case 15:
118
- _context.next = 20;
95
+ return _context.abrupt("return");
96
+ case 2:
97
+ loadingRef.current = true;
98
+ setLoading(true);
99
+ _context.prev = 4;
100
+ console.log('[useSchemeManager] 开始加载所有方案数据');
101
+ _context.next = 8;
102
+ return adapter.loadAllSchemes();
103
+ case 8:
104
+ data = _context.sent;
105
+ setColumnSchemes(data.columnSchemes || {});
106
+ setQuerySchemes(data.querySchemes || {});
107
+ setCurrentSchemes(data.currentSchemes || {});
108
+ setLastSyncTime(data.syncTime);
109
+ loadedRef.current = true;
110
+ console.log('[useSchemeManager] 加载完成', {
111
+ columnSchemes: Object.keys(data.columnSchemes || {}).length,
112
+ querySchemes: Object.keys(data.querySchemes || {}).length
113
+ });
114
+ _context.next = 21;
119
115
  break;
120
116
  case 17:
121
117
  _context.prev = 17;
122
- _context.t0 = _context["catch"](0);
123
- console.error('[useQuerySchemes] 加载方案失败:', _context.t0);
124
- case 20:
125
- _context.prev = 20;
118
+ _context.t0 = _context["catch"](4);
119
+ console.error('[useSchemeManager] 加载失败:', _context.t0);
120
+ if (showErrorMessage) {
121
+ message.error('加载方案失败');
122
+ }
123
+ case 21:
124
+ _context.prev = 21;
126
125
  setLoading(false);
127
- return _context.finish(20);
128
- case 23:
126
+ loadingRef.current = false;
127
+ return _context.finish(21);
128
+ case 25:
129
129
  case "end":
130
130
  return _context.stop();
131
131
  }
132
- }, _callee, null, [[0, 17, 20, 23]]);
133
- })), [gridId, storageAdapter]);
134
-
135
- /**
136
- * 保存方案列表到存储
137
- */
138
- var saveSchemesToStorage = useCallback( /*#__PURE__*/function () {
139
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(updatedSchemes) {
132
+ }, _callee, null, [[4, 17, 21, 25]]);
133
+ })), [adapter, showErrorMessage]);
134
+
135
+ // 组件 mount 时自动加载
136
+ useEffect(function () {
137
+ if (autoLoad && !loadedRef.current) {
138
+ loadAllSchemes();
139
+ }
140
+ }, [autoLoad, loadAllSchemes]);
141
+
142
+ // ========== 列方案操作 ==========
143
+
144
+ var saveColumnScheme = useCallback( /*#__PURE__*/function () {
145
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(gridId, scheme) {
146
+ var savedScheme;
140
147
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
141
148
  while (1) switch (_context2.prev = _context2.next) {
142
149
  case 0:
143
150
  _context2.prev = 0;
144
- _context2.next = 3;
145
- return storageAdapter.saveSchemes(gridId, updatedSchemes);
146
- case 3:
147
- setSchemes(updatedSchemes);
148
- _context2.next = 10;
151
+ console.log("[useSchemeManager] \u4FDD\u5B58\u5217\u65B9\u6848: ".concat(gridId, " - ").concat(scheme.name));
152
+
153
+ // 调用适配器保存
154
+ _context2.next = 4;
155
+ return adapter.saveColumnScheme(gridId, scheme);
156
+ case 4:
157
+ savedScheme = _context2.sent;
158
+ // 更新本地状态
159
+ setColumnSchemes(function (prev) {
160
+ var schemes = _toConsumableArray(prev[gridId] || []);
161
+ var index = schemes.findIndex(function (s) {
162
+ return s.id === savedScheme.id;
163
+ });
164
+ if (index >= 0) {
165
+ schemes[index] = savedScheme;
166
+ } else {
167
+ schemes.push(savedScheme);
168
+ }
169
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, schemes));
170
+ });
171
+ console.log('[useSchemeManager] 保存成功');
172
+ _context2.next = 13;
149
173
  break;
150
- case 6:
151
- _context2.prev = 6;
174
+ case 9:
175
+ _context2.prev = 9;
152
176
  _context2.t0 = _context2["catch"](0);
153
- console.error('[useQuerySchemes] 保存方案失败:', _context2.t0);
177
+ console.error('[useSchemeManager] 保存列方案失败:', _context2.t0);
154
178
  throw _context2.t0;
155
- case 10:
179
+ case 13:
156
180
  case "end":
157
181
  return _context2.stop();
158
182
  }
159
- }, _callee2, null, [[0, 6]]);
183
+ }, _callee2, null, [[0, 9]]);
160
184
  }));
161
- return function (_x) {
185
+ return function (_x, _x2) {
162
186
  return _ref2.apply(this, arguments);
163
187
  };
164
- }(), [gridId, storageAdapter]);
165
-
166
- /**
167
- * 加载指定方案
168
- */
169
- var loadScheme = useCallback( /*#__PURE__*/function () {
170
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(schemeId) {
171
- var scheme;
188
+ }(), [adapter]);
189
+ var deleteColumnScheme = useCallback( /*#__PURE__*/function () {
190
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(gridId, schemeId) {
172
191
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
173
192
  while (1) switch (_context3.prev = _context3.next) {
174
193
  case 0:
175
- scheme = schemes.find(function (s) {
176
- return s.id === schemeId;
177
- });
178
- if (scheme) {
179
- _context3.next = 4;
180
- break;
181
- }
182
- console.error("[useQuerySchemes] \u65B9\u6848\u4E0D\u5B58\u5728: ".concat(schemeId));
183
- return _context3.abrupt("return");
194
+ _context3.prev = 0;
195
+ console.log("[useSchemeManager] \u5220\u9664\u5217\u65B9\u6848: ".concat(gridId, " - ").concat(schemeId));
196
+
197
+ // 调用适配器删除
198
+ _context3.next = 4;
199
+ return adapter.deleteColumnScheme(gridId, schemeId);
184
200
  case 4:
185
- setCurrentScheme(scheme);
186
- setIsDirty(false);
187
-
188
- // 保存当前方案ID,用于刷新后恢复
189
- if (!storageAdapter.saveCurrentSchemeId) {
190
- _context3.next = 15;
191
- break;
192
- }
193
- _context3.prev = 7;
194
- _context3.next = 10;
195
- return storageAdapter.saveCurrentSchemeId(gridId, schemeId);
196
- case 10:
197
- _context3.next = 15;
201
+ // 更新本地状态
202
+ setColumnSchemes(function (prev) {
203
+ var schemes = (prev[gridId] || []).filter(function (s) {
204
+ return s.id !== schemeId;
205
+ });
206
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, schemes));
207
+ });
208
+
209
+ // 如果删除的是当前方案,清除当前方案ID
210
+ setCurrentSchemes(function (prev) {
211
+ var _prev$gridId;
212
+ if (((_prev$gridId = prev[gridId]) === null || _prev$gridId === void 0 ? void 0 : _prev$gridId.columnSchemeId) === schemeId) {
213
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, _objectSpread(_objectSpread({}, prev[gridId]), {}, {
214
+ columnSchemeId: null
215
+ })));
216
+ }
217
+ return prev;
218
+ });
219
+ console.log('[useSchemeManager] 删除成功');
220
+ _context3.next = 13;
198
221
  break;
199
- case 12:
200
- _context3.prev = 12;
201
- _context3.t0 = _context3["catch"](7);
202
- console.error('[useQuerySchemes] 保存当前方案ID失败:', _context3.t0);
203
- case 15:
204
- onSchemeChange === null || onSchemeChange === void 0 || onSchemeChange(scheme);
205
- case 16:
222
+ case 9:
223
+ _context3.prev = 9;
224
+ _context3.t0 = _context3["catch"](0);
225
+ console.error('[useSchemeManager] 删除列方案失败:', _context3.t0);
226
+ throw _context3.t0;
227
+ case 13:
206
228
  case "end":
207
229
  return _context3.stop();
208
230
  }
209
- }, _callee3, null, [[7, 12]]);
231
+ }, _callee3, null, [[0, 9]]);
210
232
  }));
211
- return function (_x2) {
233
+ return function (_x3, _x4) {
212
234
  return _ref3.apply(this, arguments);
213
235
  };
214
- }(), [schemes, gridId, storageAdapter, onSchemeChange]);
215
-
216
- /**
217
- * 保存当前方案(更新)
218
- */
219
- var saveScheme = useCallback( /*#__PURE__*/function () {
220
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(updates) {
221
- var nameValidation, descValidation, updatedScheme, updatedSchemes;
236
+ }(), [adapter]);
237
+ var setCurrentColumnScheme = useCallback( /*#__PURE__*/function () {
238
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(gridId, schemeId) {
239
+ var _currentSchemes$gridI, querySchemeId;
222
240
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
223
241
  while (1) switch (_context4.prev = _context4.next) {
224
242
  case 0:
225
- if (currentScheme) {
226
- _context4.next = 3;
227
- break;
228
- }
229
- console.error('[useQuerySchemes] 没有激活的方案');
230
- return _context4.abrupt("return");
231
- case 3:
232
- if (!(updates !== null && updates !== void 0 && updates.name)) {
233
- _context4.next = 9;
234
- break;
235
- }
236
- nameValidation = validateSchemeName(updates.name);
237
- if (nameValidation.valid) {
238
- _context4.next = 7;
239
- break;
240
- }
241
- throw new Error(nameValidation.error);
242
- case 7:
243
- if (!checkDuplicateName(updates.name, schemes, currentScheme.id)) {
244
- _context4.next = 9;
245
- break;
246
- }
247
- throw new Error('方案名称已存在');
243
+ _context4.prev = 0;
244
+ console.log("[useSchemeManager] \u8BBE\u7F6E\u5F53\u524D\u5217\u65B9\u6848: ".concat(gridId, " - ").concat(schemeId));
245
+
246
+ // 获取当前的查询方案ID
247
+ querySchemeId = ((_currentSchemes$gridI = currentSchemes[gridId]) === null || _currentSchemes$gridI === void 0 ? void 0 : _currentSchemes$gridI.querySchemeId) || null; // 调用适配器设置
248
+ _context4.next = 5;
249
+ return adapter.setCurrentScheme(gridId, schemeId, querySchemeId);
250
+ case 5:
251
+ // 更新本地状态
252
+ setCurrentSchemes(function (prev) {
253
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, _objectSpread(_objectSpread({}, prev[gridId] || {}), {}, {
254
+ columnSchemeId: schemeId
255
+ })));
256
+ });
257
+ console.log('[useSchemeManager] 设置成功');
258
+ _context4.next = 13;
259
+ break;
248
260
  case 9:
249
- if (!(updates !== null && updates !== void 0 && updates.description)) {
250
- _context4.next = 13;
251
- break;
252
- }
253
- descValidation = validateSchemeDescription(updates.description);
254
- if (descValidation.valid) {
255
- _context4.next = 13;
256
- break;
257
- }
258
- throw new Error(descValidation.error);
261
+ _context4.prev = 9;
262
+ _context4.t0 = _context4["catch"](0);
263
+ console.error('[useSchemeManager] 设置当前列方案失败:', _context4.t0);
264
+ throw _context4.t0;
259
265
  case 13:
260
- updatedScheme = _objectSpread(_objectSpread(_objectSpread({}, currentScheme), updates), {}, {
261
- updatedAt: Date.now()
262
- });
263
- updatedSchemes = schemes.map(function (s) {
264
- return s.id === currentScheme.id ? updatedScheme : s;
265
- });
266
- _context4.next = 17;
267
- return saveSchemesToStorage(updatedSchemes);
268
- case 17:
269
- setCurrentScheme(updatedScheme);
270
- setIsDirty(false);
271
- onSchemeSave === null || onSchemeSave === void 0 || onSchemeSave(updatedScheme);
272
- case 20:
273
266
  case "end":
274
267
  return _context4.stop();
275
268
  }
276
- }, _callee4);
269
+ }, _callee4, null, [[0, 9]]);
277
270
  }));
278
- return function (_x3) {
271
+ return function (_x5, _x6) {
279
272
  return _ref4.apply(this, arguments);
280
273
  };
281
- }(), [currentScheme, schemes, saveSchemesToStorage, onSchemeSave]);
282
-
283
- /**
284
- * 创建新方案
285
- */
286
- var createScheme = useCallback( /*#__PURE__*/function () {
287
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(name, itemsOrder, options) {
288
- var nameValidation, uniqueName, newScheme, updatedSchemes;
274
+ }(), [adapter, currentSchemes]);
275
+
276
+ // ========== 查询方案操作 ==========
277
+
278
+ var saveQueryScheme = useCallback( /*#__PURE__*/function () {
279
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(gridId, scheme) {
280
+ var savedScheme;
289
281
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
290
282
  while (1) switch (_context5.prev = _context5.next) {
291
283
  case 0:
292
- // 验证方案名称
293
- nameValidation = validateSchemeName(name);
294
- if (nameValidation.valid) {
295
- _context5.next = 3;
296
- break;
297
- }
298
- throw new Error(nameValidation.error);
299
- case 3:
300
- if (!(schemes.length >= MAX_QUERY_SCHEMES_PER_GRID)) {
301
- _context5.next = 5;
302
- break;
303
- }
304
- throw new Error("\u65B9\u6848\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650\uFF08".concat(MAX_QUERY_SCHEMES_PER_GRID, "\u4E2A\uFF09\uFF0C\u8BF7\u5220\u9664\u4E00\u4E9B\u65B9\u6848\u540E\u518D\u8BD5"));
305
- case 5:
306
- // 处理重名情况
307
- uniqueName = checkDuplicateName(name, schemes) ? generateUniqueName(name, schemes) : name;
308
- newScheme = _objectSpread({
309
- id: uuidv4(),
310
- name: uniqueName,
311
- createdAt: Date.now(),
312
- updatedAt: Date.now(),
313
- itemsOrder: itemsOrder
314
- }, options); // 如果设置为默认方案,取消其他方案的默认标记
315
- updatedSchemes = schemes;
316
- if (newScheme.isDefault) {
317
- updatedSchemes = schemes.map(function (s) {
318
- return _objectSpread(_objectSpread({}, s), {}, {
319
- isDefault: false
320
- });
284
+ _context5.prev = 0;
285
+ console.log("[useSchemeManager] \u4FDD\u5B58\u67E5\u8BE2\u65B9\u6848: ".concat(gridId, " - ").concat(scheme.name));
286
+
287
+ // 调用适配器保存
288
+ _context5.next = 4;
289
+ return adapter.saveQueryScheme(gridId, scheme);
290
+ case 4:
291
+ savedScheme = _context5.sent;
292
+ // 更新本地状态
293
+ setQuerySchemes(function (prev) {
294
+ var schemes = _toConsumableArray(prev[gridId] || []);
295
+ var index = schemes.findIndex(function (s) {
296
+ return s.id === savedScheme.id;
321
297
  });
322
- }
323
- updatedSchemes = [].concat(_toConsumableArray(updatedSchemes), [newScheme]);
324
- _context5.next = 12;
325
- return saveSchemesToStorage(updatedSchemes);
326
- case 12:
327
- // 自动激活新创建的方案
328
- setCurrentScheme(newScheme);
329
- setIsDirty(false);
330
-
331
- // 保存当前方案ID,用于刷新后恢复
332
- if (!storageAdapter.saveCurrentSchemeId) {
333
- _context5.next = 23;
334
- break;
335
- }
336
- _context5.prev = 15;
337
- _context5.next = 18;
338
- return storageAdapter.saveCurrentSchemeId(gridId, newScheme.id);
339
- case 18:
340
- _context5.next = 23;
298
+ if (index >= 0) {
299
+ schemes[index] = savedScheme;
300
+ } else {
301
+ schemes.push(savedScheme);
302
+ }
303
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, schemes));
304
+ });
305
+ console.log('[useSchemeManager] 保存成功');
306
+ _context5.next = 13;
341
307
  break;
342
- case 20:
343
- _context5.prev = 20;
344
- _context5.t0 = _context5["catch"](15);
345
- console.error('[useQuerySchemes] 保存当前方案ID失败:', _context5.t0);
346
- case 23:
347
- // 触发方案变更回调
348
- onSchemeChange === null || onSchemeChange === void 0 || onSchemeChange(newScheme);
349
- onSchemeSave === null || onSchemeSave === void 0 || onSchemeSave(newScheme);
350
- return _context5.abrupt("return", newScheme);
351
- case 26:
308
+ case 9:
309
+ _context5.prev = 9;
310
+ _context5.t0 = _context5["catch"](0);
311
+ console.error('[useSchemeManager] 保存查询方案失败:', _context5.t0);
312
+ throw _context5.t0;
313
+ case 13:
352
314
  case "end":
353
315
  return _context5.stop();
354
316
  }
355
- }, _callee5, null, [[15, 20]]);
317
+ }, _callee5, null, [[0, 9]]);
356
318
  }));
357
- return function (_x4, _x5, _x6) {
319
+ return function (_x7, _x8) {
358
320
  return _ref5.apply(this, arguments);
359
321
  };
360
- }(), [schemes, gridId, storageAdapter, saveSchemesToStorage, onSchemeChange, onSchemeSave]);
361
-
362
- /**
363
- * 更新方案信息(不影响 itemsOrder)
364
- */
365
- var updateScheme = useCallback( /*#__PURE__*/function () {
366
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(schemeId, updates) {
367
- var scheme, nameValidation, updatedScheme, updatedSchemes;
322
+ }(), [adapter]);
323
+ var deleteQueryScheme = useCallback( /*#__PURE__*/function () {
324
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(gridId, schemeId) {
368
325
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
369
326
  while (1) switch (_context6.prev = _context6.next) {
370
327
  case 0:
371
- scheme = schemes.find(function (s) {
372
- return s.id === schemeId;
328
+ _context6.prev = 0;
329
+ console.log("[useSchemeManager] \u5220\u9664\u67E5\u8BE2\u65B9\u6848: ".concat(gridId, " - ").concat(schemeId));
330
+
331
+ // 调用适配器删除
332
+ _context6.next = 4;
333
+ return adapter.deleteQueryScheme(gridId, schemeId);
334
+ case 4:
335
+ // 更新本地状态
336
+ setQuerySchemes(function (prev) {
337
+ var schemes = (prev[gridId] || []).filter(function (s) {
338
+ return s.id !== schemeId;
339
+ });
340
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, schemes));
373
341
  });
374
- if (scheme) {
375
- _context6.next = 3;
376
- break;
377
- }
378
- throw new Error('方案不存在');
379
- case 3:
380
- if (!(scheme.isSystem && (updates.name || updates.isSystem === false))) {
381
- _context6.next = 5;
382
- break;
383
- }
384
- throw new Error('系统预设方案不允许修改');
385
- case 5:
386
- if (!updates.name) {
387
- _context6.next = 11;
388
- break;
389
- }
390
- nameValidation = validateSchemeName(updates.name);
391
- if (nameValidation.valid) {
392
- _context6.next = 9;
393
- break;
394
- }
395
- throw new Error(nameValidation.error);
396
- case 9:
397
- if (!checkDuplicateName(updates.name, schemes, schemeId)) {
398
- _context6.next = 11;
399
- break;
400
- }
401
- throw new Error('方案名称已存在');
402
- case 11:
403
- updatedScheme = _objectSpread(_objectSpread(_objectSpread({}, scheme), updates), {}, {
404
- updatedAt: Date.now()
342
+
343
+ // 如果删除的是当前方案,清除当前方案ID
344
+ setCurrentSchemes(function (prev) {
345
+ var _prev$gridId2;
346
+ if (((_prev$gridId2 = prev[gridId]) === null || _prev$gridId2 === void 0 ? void 0 : _prev$gridId2.querySchemeId) === schemeId) {
347
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, _objectSpread(_objectSpread({}, prev[gridId]), {}, {
348
+ querySchemeId: null
349
+ })));
350
+ }
351
+ return prev;
405
352
  });
406
- updatedSchemes = schemes.map(function (s) {
407
- return s.id === schemeId ? updatedScheme : s;
408
- }); // 如果设置为默认方案,取消其他方案的默认标记
409
- if (updates.isDefault) {
410
- updatedSchemes = updatedSchemes.map(function (s) {
411
- return s.id === schemeId ? s : _objectSpread(_objectSpread({}, s), {}, {
412
- isDefault: false
413
- });
414
- });
415
- }
416
- _context6.next = 16;
417
- return saveSchemesToStorage(updatedSchemes);
418
- case 16:
419
- // 如果更新的是当前方案,同步更新
420
- if ((currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id) === schemeId) {
421
- setCurrentScheme(updatedScheme);
422
- }
423
- case 17:
353
+ console.log('[useSchemeManager] 删除成功');
354
+ _context6.next = 13;
355
+ break;
356
+ case 9:
357
+ _context6.prev = 9;
358
+ _context6.t0 = _context6["catch"](0);
359
+ console.error('[useSchemeManager] 删除查询方案失败:', _context6.t0);
360
+ throw _context6.t0;
361
+ case 13:
424
362
  case "end":
425
363
  return _context6.stop();
426
364
  }
427
- }, _callee6);
365
+ }, _callee6, null, [[0, 9]]);
428
366
  }));
429
- return function (_x7, _x8) {
367
+ return function (_x9, _x10) {
430
368
  return _ref6.apply(this, arguments);
431
369
  };
432
- }(), [schemes, currentScheme, saveSchemesToStorage]);
433
-
434
- /**
435
- * 删除方案
436
- */
437
- var deleteScheme = useCallback( /*#__PURE__*/function () {
438
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(schemeId) {
439
- var scheme, updatedSchemes;
370
+ }(), [adapter]);
371
+ var setCurrentQueryScheme = useCallback( /*#__PURE__*/function () {
372
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(gridId, schemeId) {
373
+ var _currentSchemes$gridI2, columnSchemeId;
440
374
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
441
375
  while (1) switch (_context7.prev = _context7.next) {
442
376
  case 0:
443
- scheme = schemes.find(function (s) {
444
- return s.id === schemeId;
445
- });
446
- if (scheme) {
447
- _context7.next = 3;
448
- break;
449
- }
450
- throw new Error('方案不存在');
451
- case 3:
452
- if (!scheme.isSystem) {
453
- _context7.next = 5;
454
- break;
455
- }
456
- throw new Error('系统预设方案不允许删除');
377
+ _context7.prev = 0;
378
+ console.log("[useSchemeManager] \u8BBE\u7F6E\u5F53\u524D\u67E5\u8BE2\u65B9\u6848: ".concat(gridId, " - ").concat(schemeId));
379
+
380
+ // 获取当前的列方案ID
381
+ columnSchemeId = ((_currentSchemes$gridI2 = currentSchemes[gridId]) === null || _currentSchemes$gridI2 === void 0 ? void 0 : _currentSchemes$gridI2.columnSchemeId) || null; // 调用适配器设置
382
+ _context7.next = 5;
383
+ return adapter.setCurrentScheme(gridId, columnSchemeId, schemeId);
457
384
  case 5:
458
- updatedSchemes = schemes.filter(function (s) {
459
- return s.id !== schemeId;
385
+ // 更新本地状态
386
+ setCurrentSchemes(function (prev) {
387
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, gridId, _objectSpread(_objectSpread({}, prev[gridId] || {}), {}, {
388
+ querySchemeId: schemeId
389
+ })));
460
390
  });
461
- _context7.next = 8;
462
- return saveSchemesToStorage(updatedSchemes);
463
- case 8:
464
- if (!((currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id) === schemeId)) {
465
- _context7.next = 21;
466
- break;
467
- }
468
- setCurrentScheme(null);
469
- setIsDirty(false);
470
-
471
- // 清除保存的当前方案ID
472
- if (!storageAdapter.saveCurrentSchemeId) {
473
- _context7.next = 20;
474
- break;
475
- }
476
- _context7.prev = 12;
477
- _context7.next = 15;
478
- return storageAdapter.saveCurrentSchemeId(gridId, null);
479
- case 15:
480
- _context7.next = 20;
391
+ console.log('[useSchemeManager] 设置成功');
392
+ _context7.next = 13;
481
393
  break;
482
- case 17:
483
- _context7.prev = 17;
484
- _context7.t0 = _context7["catch"](12);
485
- console.error('[useQuerySchemes] 清除当前方案ID失败:', _context7.t0);
486
- case 20:
487
- onSchemeChange === null || onSchemeChange === void 0 || onSchemeChange(null);
488
- case 21:
489
- onSchemeDelete === null || onSchemeDelete === void 0 || onSchemeDelete(schemeId);
490
- case 22:
394
+ case 9:
395
+ _context7.prev = 9;
396
+ _context7.t0 = _context7["catch"](0);
397
+ console.error('[useSchemeManager] 设置当前查询方案失败:', _context7.t0);
398
+ throw _context7.t0;
399
+ case 13:
491
400
  case "end":
492
401
  return _context7.stop();
493
402
  }
494
- }, _callee7, null, [[12, 17]]);
403
+ }, _callee7, null, [[0, 9]]);
495
404
  }));
496
- return function (_x9) {
405
+ return function (_x11, _x12) {
497
406
  return _ref7.apply(this, arguments);
498
407
  };
499
- }(), [schemes, currentScheme, gridId, storageAdapter, saveSchemesToStorage, onSchemeChange, onSchemeDelete]);
500
-
501
- /**
502
- * 重置到方案原始状态
503
- */
504
- var resetToScheme = useCallback(function () {
505
- if (currentScheme) {
506
- setIsDirty(false);
507
- // 触发方案重新加载
508
- onSchemeChange === null || onSchemeChange === void 0 || onSchemeChange(currentScheme);
509
- }
510
- }, [currentScheme, onSchemeChange]);
511
-
512
- /**
513
- * 设置默认方案
514
- */
515
- var setDefaultScheme = useCallback( /*#__PURE__*/function () {
516
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(schemeId) {
517
- var updatedSchemes;
518
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
519
- while (1) switch (_context8.prev = _context8.next) {
520
- case 0:
521
- updatedSchemes = schemes.map(function (s) {
522
- return _objectSpread(_objectSpread({}, s), {}, {
523
- isDefault: s.id === schemeId
524
- });
525
- });
526
- _context8.next = 3;
527
- return saveSchemesToStorage(updatedSchemes);
528
- case 3:
529
- case "end":
530
- return _context8.stop();
531
- }
532
- }, _callee8);
533
- }));
534
- return function (_x10) {
535
- return _ref8.apply(this, arguments);
536
- };
537
- }(), [schemes, saveSchemesToStorage]);
538
-
539
- /**
540
- * 验证方案有效性
541
- */
542
- var validateSchemeCallback = useCallback(function (scheme, currentFormItems) {
543
- return validateScheme(scheme, currentFormItems);
544
- }, []);
408
+ }(), [adapter, currentSchemes]);
409
+
410
+ // ========== 工具方法 ==========
411
+
412
+ var refreshSchemes = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
413
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
414
+ while (1) switch (_context8.prev = _context8.next) {
415
+ case 0:
416
+ loadedRef.current = false;
417
+ _context8.next = 3;
418
+ return loadAllSchemes();
419
+ case 3:
420
+ case "end":
421
+ return _context8.stop();
422
+ }
423
+ }, _callee8);
424
+ })), [loadAllSchemes]);
425
+ var getColumnSchemes = useCallback(function (gridId) {
426
+ return columnSchemes[gridId] || [];
427
+ }, [columnSchemes]);
428
+ var getQuerySchemes = useCallback(function (gridId) {
429
+ return querySchemes[gridId] || [];
430
+ }, [querySchemes]);
431
+ var getCurrentScheme = useCallback(function (gridId) {
432
+ return currentSchemes[gridId] || null;
433
+ }, [currentSchemes]);
434
+
435
+ // ========== 返回值 ==========
436
+
545
437
  return {
546
- currentScheme: currentScheme,
547
- schemes: schemes,
548
- isDirty: isDirty,
549
- loading: loading,
550
- loadScheme: loadScheme,
551
- saveScheme: saveScheme,
552
- createScheme: createScheme,
553
- updateScheme: updateScheme,
554
- deleteScheme: deleteScheme,
555
- resetToScheme: resetToScheme,
556
- setDefaultScheme: setDefaultScheme,
557
- validateScheme: validateSchemeCallback
438
+ // 状态数据
439
+ columnSchemes: columnSchemes,
440
+ querySchemes: querySchemes,
441
+ currentSchemes: currentSchemes,
442
+ schemesLoading: loading,
443
+ lastSyncTime: lastSyncTime,
444
+ // 列方案操作
445
+ saveColumnScheme: saveColumnScheme,
446
+ deleteColumnScheme: deleteColumnScheme,
447
+ setCurrentColumnScheme: setCurrentColumnScheme,
448
+ // 查询方案操作
449
+ saveQueryScheme: saveQueryScheme,
450
+ deleteQueryScheme: deleteQueryScheme,
451
+ setCurrentQueryScheme: setCurrentQueryScheme,
452
+ // 工具方法
453
+ refreshSchemes: refreshSchemes,
454
+ getColumnSchemes: getColumnSchemes,
455
+ getQuerySchemes: getQuerySchemes,
456
+ getCurrentScheme: getCurrentScheme
558
457
  };
458
+ }
459
+
460
+ /**
461
+ * Fallback 模式:当无 Provider 时使用本地状态管理
462
+ */
463
+ function useFallbackSchemeManager() {
464
+ var adapter = useRef(new (require("../shared/storage/localStorageAdapter").LocalStorageSchemeAdapter)({
465
+ storageKey: 'ag-grid-plus-schemes',
466
+ enableDebugLog: false
467
+ })).current;
468
+
469
+ // 使用本地 Hook 实例进行状态管理
470
+ var manager = useSchemeManager({
471
+ adapter: adapter,
472
+ autoLoad: true,
473
+ showErrorMessage: true
474
+ });
475
+
476
+ // 返回与 Context 相同的接口
477
+ return _objectSpread({
478
+ // 保留必需的默认值
479
+ extensibleColumns: [],
480
+ columnState: undefined,
481
+ onSaveColumnState: function onSaveColumnState() {},
482
+ applyToGlobal: function applyToGlobal() {},
483
+ resetCurrent: function resetCurrent() {},
484
+ resetAll: function resetAll() {},
485
+ queryFormItems: []
486
+ }, manager);
487
+ }
488
+
489
+ /**
490
+ * 在组件中使用集中式方案管理
491
+ *
492
+ * 支持两种模式:
493
+ * 1. Context 模式: 从 GridPlusContext.Provider 获取全局状态
494
+ * 2. Fallback 模式: 使用本地 Hook 实例 + LocalStorage
495
+ *
496
+ * @example
497
+ * ```tsx
498
+ * function MyGrid() {
499
+ * const {
500
+ * columnSchemes,
501
+ * saveColumnScheme,
502
+ * setCurrentColumnScheme
503
+ * } = useGridSchemes();
504
+ *
505
+ * const gridId = 'my-grid';
506
+ * const schemes = columnSchemes?.[gridId] || [];
507
+ *
508
+ * const handleSave = async () => {
509
+ * await saveColumnScheme?.(gridId, newScheme);
510
+ * };
511
+ * }
512
+ * ```
513
+ */
514
+ export function useGridSchemes() {
515
+ var context = useContext(GridPlusContext);
516
+
517
+ // 检查是否有完整的方案管理 API
518
+ var hasSchemeApi = !!(context.saveColumnScheme && context.deleteColumnScheme && context.setCurrentColumnScheme && context.saveQueryScheme && context.deleteQueryScheme && context.setCurrentQueryScheme);
519
+
520
+ // 如果 Context 提供了完整 API,直接使用
521
+ if (hasSchemeApi) {
522
+ return context;
523
+ }
524
+
525
+ // 否则使用 fallback 模式
526
+ console.warn('[useGridSchemes] Context 未提供方案管理 API,使用 Fallback 模式(LocalStorage + 本地状态)');
527
+
528
+ // eslint-disable-next-line react-hooks/rules-of-hooks
529
+ return useFallbackSchemeManager();
559
530
  }