@nokecy/qc-ui 1.1.86 → 1.1.88

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 (108) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +148 -144
  2. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +4 -4
  3. package/dist/cjs/ag-grid-plus/errors/types.d.ts +9 -0
  4. package/dist/cjs/ag-grid-plus/errors/types.js +20 -0
  5. package/dist/cjs/ag-grid-plus/interface.d.ts +2 -0
  6. package/dist/cjs/ag-grid-plus/locale.d.ts +413 -1
  7. package/dist/cjs/ag-grid-plus/locale.js +14 -3
  8. package/dist/cjs/ag-grid-plus/queryForm/index.d.ts +2 -0
  9. package/dist/cjs/ag-grid-plus/queryForm/index.js +47 -51
  10. package/dist/cjs/ag-grid-plus/queryForm/queryColumns.d.ts +8 -0
  11. package/dist/cjs/ag-grid-plus/queryForm/queryColumns.js +52 -0
  12. package/dist/cjs/ag-grid-plus/queryForm/schemaKey.d.ts +15 -8
  13. package/dist/cjs/ag-grid-plus/queryForm/schemaKey.js +64 -12
  14. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.js +3 -0
  15. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +69 -106
  16. package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +3 -1
  17. package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.d.ts +2 -0
  18. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +14 -0
  19. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +98 -110
  20. package/dist/cjs/ag-grid-plus/types.d.ts +6 -0
  21. package/dist/cjs/array-table/batchRemove.d.ts +36 -0
  22. package/dist/cjs/array-table/batchRemove.js +299 -0
  23. package/dist/cjs/array-table/cellFocusScope.js +58 -7
  24. package/dist/cjs/array-table/cellInteractionLock.d.ts +13 -0
  25. package/dist/cjs/array-table/cellInteractionLock.js +26 -0
  26. package/dist/cjs/array-table/hooks.d.ts +11 -6
  27. package/dist/cjs/array-table/hooks.js +138 -88
  28. package/dist/cjs/array-table/index.d.ts +8 -2
  29. package/dist/cjs/array-table/index.js +55 -32
  30. package/dist/cjs/array-table/indexColumn.d.ts +1 -1
  31. package/dist/cjs/array-table/indexColumn.js +3 -2
  32. package/dist/cjs/array-table/interface.d.ts +13 -1
  33. package/dist/cjs/array-table/preview.js +8 -0
  34. package/dist/cjs/array-table/readOnlyFormatters.d.ts +9 -1
  35. package/dist/cjs/array-table/readOnlyFormatters.js +41 -13
  36. package/dist/cjs/array-table/rowIdentity.d.ts +17 -0
  37. package/dist/cjs/array-table/rowIdentity.js +43 -0
  38. package/dist/cjs/array-table/sorting.d.ts +3 -0
  39. package/dist/cjs/array-table/sorting.js +46 -0
  40. package/dist/cjs/array-table/utils.js +146 -67
  41. package/dist/cjs/dialogSelect/index.d.ts +3 -0
  42. package/dist/cjs/dialogSelect/index.js +13 -3
  43. package/dist/cjs/editable/index.js +101 -139
  44. package/dist/cjs/index.d.ts +2 -2
  45. package/dist/cjs/index.js +14 -0
  46. package/dist/cjs/readPretty/arrayTable.js +29 -14
  47. package/dist/cjs/readPretty/formily.d.ts +1 -0
  48. package/dist/cjs/readPretty/formily.js +7 -0
  49. package/dist/cjs/readPretty/index.d.ts +1 -0
  50. package/dist/cjs/readPretty/index.js +7 -0
  51. package/dist/cjs/readPretty/schemaScope.d.ts +2 -0
  52. package/dist/cjs/readPretty/schemaScope.js +49 -0
  53. package/dist/cjs/standardList/emptyState.js +9 -0
  54. package/dist/esm/ag-grid-plus/ag-gridPlus.js +148 -144
  55. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +4 -4
  56. package/dist/esm/ag-grid-plus/errors/types.d.ts +9 -0
  57. package/dist/esm/ag-grid-plus/errors/types.js +20 -0
  58. package/dist/esm/ag-grid-plus/interface.d.ts +2 -0
  59. package/dist/esm/ag-grid-plus/locale.d.ts +413 -1
  60. package/dist/esm/ag-grid-plus/locale.js +15 -3
  61. package/dist/esm/ag-grid-plus/queryForm/index.d.ts +2 -0
  62. package/dist/esm/ag-grid-plus/queryForm/index.js +47 -52
  63. package/dist/esm/ag-grid-plus/queryForm/queryColumns.d.ts +8 -0
  64. package/dist/esm/ag-grid-plus/queryForm/queryColumns.js +46 -0
  65. package/dist/esm/ag-grid-plus/queryForm/schemaKey.d.ts +15 -8
  66. package/dist/esm/ag-grid-plus/queryForm/schemaKey.js +64 -12
  67. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.js +3 -0
  68. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +70 -107
  69. package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +3 -1
  70. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts +2 -0
  71. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +14 -0
  72. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +95 -110
  73. package/dist/esm/ag-grid-plus/types.d.ts +6 -0
  74. package/dist/esm/array-table/batchRemove.d.ts +36 -0
  75. package/dist/esm/array-table/batchRemove.js +289 -0
  76. package/dist/esm/array-table/cellFocusScope.js +59 -8
  77. package/dist/esm/array-table/cellInteractionLock.d.ts +13 -0
  78. package/dist/esm/array-table/cellInteractionLock.js +21 -0
  79. package/dist/esm/array-table/hooks.d.ts +11 -6
  80. package/dist/esm/array-table/hooks.js +139 -89
  81. package/dist/esm/array-table/index.d.ts +8 -2
  82. package/dist/esm/array-table/index.js +55 -32
  83. package/dist/esm/array-table/indexColumn.d.ts +1 -1
  84. package/dist/esm/array-table/indexColumn.js +3 -2
  85. package/dist/esm/array-table/interface.d.ts +13 -1
  86. package/dist/esm/array-table/preview.js +8 -0
  87. package/dist/esm/array-table/readOnlyFormatters.d.ts +9 -1
  88. package/dist/esm/array-table/readOnlyFormatters.js +41 -12
  89. package/dist/esm/array-table/rowIdentity.d.ts +17 -0
  90. package/dist/esm/array-table/rowIdentity.js +37 -0
  91. package/dist/esm/array-table/sorting.d.ts +3 -0
  92. package/dist/esm/array-table/sorting.js +40 -0
  93. package/dist/esm/array-table/utils.js +147 -68
  94. package/dist/esm/dialogSelect/index.d.ts +3 -0
  95. package/dist/esm/dialogSelect/index.js +13 -3
  96. package/dist/esm/editable/index.js +102 -140
  97. package/dist/esm/index.d.ts +2 -2
  98. package/dist/esm/index.js +1 -1
  99. package/dist/esm/readPretty/arrayTable.js +30 -13
  100. package/dist/esm/readPretty/formily.d.ts +1 -0
  101. package/dist/esm/readPretty/formily.js +1 -0
  102. package/dist/esm/readPretty/index.d.ts +1 -0
  103. package/dist/esm/readPretty/index.js +1 -0
  104. package/dist/esm/readPretty/schemaScope.d.ts +2 -0
  105. package/dist/esm/readPretty/schemaScope.js +42 -0
  106. package/dist/esm/standardList/emptyState.js +9 -0
  107. package/dist/umd/qc-ui.min.js +1 -1
  108. package/package.json +3 -1
@@ -12,6 +12,7 @@ var _antd = require("antd");
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _antdV = require("@formily/antd-v5");
14
14
  var _arrayBase = require("../array-table/arrayBase");
15
+ var _cellFocusScope = require("../array-table/cellFocusScope");
15
16
  var _react2 = _interopRequireWildcard(require("react"));
16
17
  var _builtins__ = require("@formily/antd-v5/lib/__builtins__");
17
18
  var _style = _interopRequireDefault(require("./style"));
@@ -19,7 +20,6 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
19
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
22
  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); }
22
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
23
23
  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; }
24
24
  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); } }
25
25
  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); }); }; }
@@ -92,7 +92,6 @@ var InternalEditable = (0, _react.observer)(function (props) {
92
92
  var pattern = useParentPattern();
93
93
  var itemProps = useFormItemProps();
94
94
  var field = (0, _react.useField)();
95
- var basePrefixCls = (0, _builtins__.usePrefixCls)();
96
95
  var prefixCls = (0, _builtins__.usePrefixCls)('formily-editable');
97
96
  var _useStyle = (0, _style.default)(prefixCls),
98
97
  _useStyle2 = _slicedToArray(_useStyle, 2),
@@ -100,175 +99,138 @@ var InternalEditable = (0, _react.observer)(function (props) {
100
99
  hashId = _useStyle2[1];
101
100
  var ref = (0, _react2.useRef)();
102
101
  var innerRef = (0, _react2.useRef)(null);
102
+ var focusRequestRef = (0, _react2.useRef)(false);
103
+ var focusGenerationRef = (0, _react2.useRef)(0);
104
+ var focusTimerRef = (0, _react2.useRef)();
103
105
 
104
- // 通用的聚焦函数
105
- var focusInput = _react2.default.useCallback(function () {
106
- var _innerRef$current;
107
- var input = (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.querySelector('input:not([readonly]):not([disabled]), textarea:not([readonly]):not([disabled])');
108
- if (input) {
109
- input.focus();
110
- // setSelectionRange 仅 textarea 与 text/search/url/tel/password 类型 input 支持;
111
- // checkbox/number/date 等会抛 InvalidStateError,故用白名单守卫。@author nokecy
112
- if (input.tagName === 'TEXTAREA' || /^(text|search|url|tel|password)$/i.test(input.type || 'text')) {
113
- var _input$value;
114
- var length = ((_input$value = input.value) === null || _input$value === void 0 ? void 0 : _input$value.length) || 0;
115
- setTimeout(function () {
116
- input.setSelectionRange(length, length);
117
- }, 10);
118
- }
119
- return true;
120
- }
121
- return false;
106
+ /** 离开或重新进入时作废旧聚焦任务,同时保护仍在等待的异步校验。@author nokecy */
107
+ var cancelFocusRequest = _react2.default.useCallback(function () {
108
+ focusGenerationRef.current += 1;
109
+ focusRequestRef.current = false;
110
+ clearTimeout(focusTimerRef.current);
122
111
  }, []);
112
+ var activate = function activate() {
113
+ if (ref.current || pattern !== 'editable') return;
114
+ cancelFocusRequest();
115
+ focusRequestRef.current = true;
116
+ ref.current = true;
117
+ setEditable(true);
118
+ };
123
119
 
124
- // 重试聚焦函数
125
- var retryFocus = _react2.default.useCallback(function () {
126
- if (!focusInput()) {
127
- setTimeout(function () {
128
- if (!focusInput()) {
129
- setTimeout(focusInput, 50);
130
- }
131
- }, 50);
132
- }
133
- }, [focusInput]);
120
+ /** 与懒挂载单元格共用离开规则:保留错误,且旧校验不能收起已重新进入的字段。@author nokecy */
134
121
  var recover = /*#__PURE__*/function () {
135
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
136
- var _field$errors;
137
- var errors;
122
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(isStale) {
123
+ var hadFocus,
124
+ generation,
125
+ _args = arguments;
138
126
  return _regeneratorRuntime().wrap(function _callee$(_context) {
139
127
  while (1) switch (_context.prev = _context.next) {
140
128
  case 0:
141
- if (!(editable && !(field !== null && field !== void 0 && (_field$errors = field.errors) !== null && _field$errors !== void 0 && _field$errors.length))) {
142
- _context.next = 10;
129
+ hadFocus = _args.length > 1 && _args[1] !== undefined ? _args[1] : true;
130
+ cancelFocusRequest();
131
+ generation = focusGenerationRef.current;
132
+ if (!(!ref.current || pattern !== 'editable')) {
133
+ _context.next = 5;
143
134
  break;
144
135
  }
145
- _context.prev = 1;
146
- _context.next = 4;
147
- return field.form.validate("".concat(field.path));
148
- case 4:
149
- _context.prev = 4;
150
- errors = field.form.queryFeedbacks({
151
- type: 'error',
152
- address: "".concat(field.address)
153
- });
154
- if (!(errors !== null && errors !== void 0 && errors.length)) {
155
- _context.next = 8;
136
+ return _context.abrupt("return");
137
+ case 5:
138
+ if (!(!hadFocus && isDeepEmpty(field.value))) {
139
+ _context.next = 7;
156
140
  break;
157
141
  }
158
142
  return _context.abrupt("return");
159
- case 8:
160
- if (ref.current && !(errors !== null && errors !== void 0 && errors.length)) {
161
- setEditable(false);
162
- }
163
- return _context.finish(4);
143
+ case 7:
144
+ _context.prev = 7;
145
+ _context.next = 10;
146
+ return field.validate();
164
147
  case 10:
148
+ _context.next = 15;
149
+ break;
150
+ case 12:
151
+ _context.prev = 12;
152
+ _context.t0 = _context["catch"](7);
153
+ return _context.abrupt("return");
154
+ case 15:
155
+ if (!(isStale() || generation !== focusGenerationRef.current || !ref.current || field.errors.length)) {
156
+ _context.next = 17;
157
+ break;
158
+ }
159
+ return _context.abrupt("return");
160
+ case 17:
161
+ setEditable(false);
162
+ case 18:
165
163
  case "end":
166
164
  return _context.stop();
167
165
  }
168
- }, _callee, null, [[1,, 4, 10]]);
166
+ }, _callee, null, [[7, 12]]);
169
167
  }));
170
- return function recover() {
168
+ return function recover(_x) {
171
169
  return _ref.apply(this, arguments);
172
170
  };
173
171
  }();
174
- (0, _builtins__.useClickAway)(function (e) {
175
- var _innerRef$current2;
176
- var target = e.target;
177
- if (target !== null && target !== void 0 && target.closest(".".concat(basePrefixCls, "-select-dropdown"))) return;
178
- if (target !== null && target !== void 0 && target.closest(".".concat(basePrefixCls, "-picker-dropdown"))) return;
179
- if (target !== null && target !== void 0 && target.closest(".".concat(basePrefixCls, "-cascader-menus"))) return;
180
172
 
181
- // 检查是否点击的是当前组件内的输入框或相关元素
182
- var inputElements = (_innerRef$current2 = innerRef.current) === null || _innerRef$current2 === void 0 ? void 0 : _innerRef$current2.querySelectorAll('input, textarea, .ant-input, .ant-input-wrapper');
183
- if (inputElements) {
184
- //@ts-ignore
185
- var _iterator = _createForOfIteratorHelper(inputElements),
186
- _step;
187
- try {
188
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
189
- var input = _step.value;
190
- if (target === input || input.contains(target) || target.closest('.ant-input-wrapper')) {
191
- return; // 不触发recover
192
- }
193
- }
194
- } catch (err) {
195
- _iterator.e(err);
196
- } finally {
197
- _iterator.f();
198
- }
199
- }
200
- recover();
201
- }, innerRef);
202
- var onClick = function onClick(e) {
203
- var _innerRef$current3;
204
- var target = e.target;
205
- var close = ((_innerRef$current3 = innerRef.current) === null || _innerRef$current3 === void 0 ? void 0 : _innerRef$current3.querySelector(".".concat(prefixCls, "-close-btn"))) || null;
206
- if (target !== null && target !== void 0 && target.contains(close) || close !== null && close !== void 0 && close.contains(target)) {
207
- recover();
208
- } else if (!ref.current) {
209
- // 只有在非编辑状态时才触发编辑状态
210
- setTimeout(function () {
211
- setEditable(true);
212
- setTimeout(retryFocus, 100);
213
- });
214
- } else {
215
- // 如果已经处于编辑状态,检查点击的是否是输入框或其相关元素
216
- var isInputElement = target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';
217
- var isInputRelated = target.closest('input, textarea, .ant-input, .ant-input-wrapper');
218
- if (isInputElement || isInputRelated) {
219
- // 如果点击的是输入框或相关元素,不做任何操作,让输入框自己处理焦点
220
- e.stopPropagation();
221
- return;
222
- }
223
- // 如果点击的是其他区域且已经处于编辑状态,也不做任何操作(保持编辑状态)
173
+ // 输入节点在本次提交后即可聚焦;少数延迟挂载组件允许短暂重试,离开和卸载会取消任务。
174
+ // 不延迟改写光标,避免用户已经切格或选中文字后再抢回焦点。@author nokecy
175
+ (0, _react2.useLayoutEffect)(function () {
176
+ if (!editable || pattern !== 'editable') {
177
+ cancelFocusRequest();
178
+ return;
224
179
  }
225
- };
226
-
227
- // 监听键盘导航事件,自动进入编辑状态
228
- _react2.default.useEffect(function () {
229
- var handleKeyDown = function handleKeyDown(e) {
230
- if (e.key === 'Enter' || e.key === 'F2') {
231
- if (!editable && pattern === 'editable') {
232
- e.preventDefault();
233
- setEditable(true);
234
- setTimeout(retryFocus, 100);
180
+ if (!focusRequestRef.current) return;
181
+ var generation = focusGenerationRef.current;
182
+ var focusInput = function focusInput() {
183
+ var attempt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
184
+ var root = innerRef.current;
185
+ if (generation !== focusGenerationRef.current || !focusRequestRef.current || !(root !== null && root !== void 0 && root.isConnected)) return;
186
+ var input = root.querySelector('input:not([readonly]):not([disabled]), textarea:not([readonly]):not([disabled])');
187
+ if (input) {
188
+ focusRequestRef.current = false;
189
+ if (document.activeElement === input) return;
190
+ input.focus();
191
+ if (!input.closest('.ant-picker') && (input.tagName === 'TEXTAREA' || /^(text|search|url|tel|password)$/i.test(input.type || 'text'))) {
192
+ var _input$value;
193
+ var length = ((_input$value = input.value) === null || _input$value === void 0 ? void 0 : _input$value.length) || 0;
194
+ input.setSelectionRange(length, length);
235
195
  }
196
+ } else if (attempt < 2) {
197
+ focusTimerRef.current = setTimeout(function () {
198
+ return focusInput(attempt + 1);
199
+ }, 50);
236
200
  }
237
201
  };
238
- var element = innerRef.current;
239
- if (element) {
240
- element.addEventListener('keydown', handleKeyDown);
241
- return function () {
242
- element.removeEventListener('keydown', handleKeyDown);
243
- };
244
- }
245
- }, [editable, pattern, setEditable, retryFocus]);
246
-
247
- // 当组件获得焦点时自动进入编辑状态
202
+ focusInput();
203
+ }, [editable, pattern, cancelFocusRequest]);
248
204
  _react2.default.useEffect(function () {
249
- var handleFocus = function handleFocus() {
250
- if (!editable && pattern === 'editable') {
251
- setEditable(true);
252
- setTimeout(retryFocus, 100);
253
- }
254
- };
255
- var element = innerRef.current;
256
- if (element) {
257
- element.addEventListener('focus', handleFocus, true);
258
- return function () {
259
- element.removeEventListener('focus', handleFocus, true);
260
- };
261
- }
262
- }, [editable, pattern, setEditable, retryFocus]);
205
+ return cancelFocusRequest;
206
+ }, [cancelFocusRequest]);
263
207
  ref.current = editable;
264
- return wrapSSR( /*#__PURE__*/_react2.default.createElement("div", {
208
+ return wrapSSR( /*#__PURE__*/_react2.default.createElement(_cellFocusScope.CellFocusScope, {
209
+ onLeave: recover
210
+ }, /*#__PURE__*/_react2.default.createElement("div", {
265
211
  className: (0, _classnames.default)(prefixCls, hashId),
266
212
  ref: innerRef,
267
- onClick: onClick,
213
+ onClick: function onClick(event) {
214
+ var target = event.target;
215
+ if (target.closest(".".concat(prefixCls, "-close-btn"))) void recover(function () {
216
+ return false;
217
+ });else activate();
218
+ },
219
+ onFocusCapture: function onFocusCapture() {
220
+ cancelFocusRequest();
221
+ activate();
222
+ },
223
+ onBlurCapture: cancelFocusRequest,
224
+ onKeyDown: function onKeyDown(event) {
225
+ if (!ref.current && (event.key === 'Enter' || event.key === 'F2')) {
226
+ event.preventDefault();
227
+ activate();
228
+ }
229
+ },
268
230
  "data-editable-state": editable ? 'editing' : 'readonly'
269
231
  }, /*#__PURE__*/_react2.default.createElement("div", {
270
232
  className: "".concat(prefixCls, "-content")
271
- }, /*#__PURE__*/_react2.default.createElement(_antdV.FormItem.BaseItem, _extends({}, props, itemProps), props.children))));
233
+ }, /*#__PURE__*/_react2.default.createElement(_antdV.FormItem.BaseItem, _extends({}, props, itemProps), props.children)))));
272
234
  });
273
235
  var Popover = (0, _react.observer)(function (props) {
274
236
  var field = (0, _react.useField)();
@@ -29,8 +29,8 @@ export type * from "./importModal";
29
29
  export type * from "./fullScreenAlert";
30
30
  export type * from "./RuleBuilder";
31
31
  export type { ColumnConfig } from "./array-table/columnHelper";
32
- export { registerReadOnlyFormatter, registerReadOnlyLabels, registerReadOnlyRenderer } from "./array-table/readOnlyFormatters";
33
- export type { ReadOnlyFormatter, ReadOnlyFormatterCtx, ReadOnlyLabels, ReadOnlyRenderer } from "./array-table/readOnlyFormatters";
32
+ export { registerReadOnlyFormatter, registerReadOnlyLabels, registerReadOnlyRenderer, withReadOnlyFormatter, formatSelectDisplay } from "./array-table/readOnlyFormatters";
33
+ export type { ReadOnlyFormatter, ReadOnlyFormatterCtx, ReadOnlyLabels, ReadOnlyRenderer, SelectDisplayField } from "./array-table/readOnlyFormatters";
34
34
  export type { CentralizedColumnScheme, QueryScheme, SchemeStorageAdapter, SchemeSyncDataDto, CurrentSchemeDto, SchemeStorageConfig, LocalStorageAdapterConfig, BackendApiAdapterConfig, UseSchemeManagerConfig, GridPlusContextValue, GlobalConfigPermissions, } from "./ag-grid-plus";
35
35
  export * from './adapters';
36
36
  export * from "./readPretty";
package/dist/cjs/index.js CHANGED
@@ -51,6 +51,8 @@ var _exportNames = {
51
51
  registerReadOnlyFormatter: true,
52
52
  registerReadOnlyLabels: true,
53
53
  registerReadOnlyRenderer: true,
54
+ withReadOnlyFormatter: true,
55
+ formatSelectDisplay: true,
54
56
  createEntitySelect: true,
55
57
  ExportButton: true,
56
58
  buildExportUrl: true,
@@ -359,6 +361,12 @@ Object.defineProperty(exports, "formatDecimal", {
359
361
  return _businessDecimal.formatDecimal;
360
362
  }
361
363
  });
364
+ Object.defineProperty(exports, "formatSelectDisplay", {
365
+ enumerable: true,
366
+ get: function get() {
367
+ return _readOnlyFormatters.formatSelectDisplay;
368
+ }
369
+ });
362
370
  Object.defineProperty(exports, "fromHsl", {
363
371
  enumerable: true,
364
372
  get: function get() {
@@ -497,6 +505,12 @@ Object.defineProperty(exports, "useTemplateManager", {
497
505
  return _RegexEditor.useTemplateManager;
498
506
  }
499
507
  });
508
+ Object.defineProperty(exports, "withReadOnlyFormatter", {
509
+ enumerable: true,
510
+ get: function get() {
511
+ return _readOnlyFormatters.withReadOnlyFormatter;
512
+ }
513
+ });
500
514
  Object.defineProperty(exports, "withStandardForm", {
501
515
  enumerable: true,
502
516
  get: function get() {
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -15,13 +14,30 @@ var _hoistStatics = require("./hoistStatics");
15
14
  var _react2 = _interopRequireWildcard(require("react"));
16
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ 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); }
18
18
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
19
19
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
20
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
+ function 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; }
22
+ 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; }
23
+ 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; }
24
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
25
+ 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); }
21
26
  /** 阅读态直接使用 ArrayTable 的列定义,避免 AgGridPlus 的原值渲染器覆盖格式化结果。@author nokecy */
27
+
22
28
  var ReadingArrayTable = (0, _react.observer)(function (_ref) {
23
29
  var _buildArrayTableColum;
24
- var height = _ref.height;
30
+ var height = _ref.height,
31
+ _ref$rowSelection = _ref.rowSelection,
32
+ rowSelection = _ref$rowSelection === void 0 ? {
33
+ mode: 'singleRow',
34
+ enableClickSelection: true,
35
+ checkboxes: false
36
+ } : _ref$rowSelection,
37
+ selectionColumnDef = _ref.selectionColumnDef,
38
+ onSelectionChanged = _ref.onSelectionChanged,
39
+ onGridReady = _ref.onGridReady,
40
+ _onRowDataUpdated = _ref.onRowDataUpdated;
25
41
  var field = (0, _react.useField)();
26
42
  var sources = (0, _utils.useArrayTableSources)();
27
43
  var rows = Array.isArray(field.value) ? field.value.slice() : [];
@@ -45,16 +61,15 @@ var ReadingArrayTable = (0, _react.observer)(function (_ref) {
45
61
  sortable: true,
46
62
  filter: true
47
63
  },
48
- rowSelection: {
49
- mode: 'singleRow',
50
- enableClickSelection: true
51
- },
52
- selectionColumnDef: {
64
+ rowSelection: rowSelection,
65
+ selectionColumnDef: _objectSpread({
53
66
  pinned: 'left',
54
67
  lockPosition: true,
55
68
  width: 50,
56
69
  suppressHeaderMenuButton: true
57
- },
70
+ }, selectionColumnDef),
71
+ onSelectionChanged: onSelectionChanged,
72
+ onGridReady: onGridReady,
58
73
  columnDefs: (0, _columnGroup.groupColumnDefs)(columns),
59
74
  rowData: rows,
60
75
  getRowId: function getRowId(_ref2) {
@@ -73,12 +88,12 @@ var ReadingArrayTable = (0, _react.observer)(function (_ref) {
73
88
  }
74
89
  return rowId;
75
90
  },
76
- onRowDataUpdated: function onRowDataUpdated(_ref3) {
77
- var api = _ref3.api;
78
- if (showIndex) api.refreshCells({
91
+ onRowDataUpdated: function onRowDataUpdated(event) {
92
+ if (showIndex) event.api.refreshCells({
79
93
  columns: [_indexColumn.ARRAY_TABLE_INDEX_FIELD],
80
94
  force: true
81
95
  });
96
+ _onRowDataUpdated === null || _onRowDataUpdated === void 0 || _onRowDataUpdated(event);
82
97
  }
83
98
  }));
84
99
  });
@@ -109,9 +124,9 @@ var columnsOf = function columnsOf(schema) {
109
124
  * @author nokecy
110
125
  */
111
126
  var withReadingArrayTable = exports.withReadingArrayTable = function withReadingArrayTable(Control) {
112
- var ReactiveTable = (0, _react.observer)(function (_ref4) {
113
- var columns = _ref4.columns,
114
- tableProps = _ref4.tableProps;
127
+ var ReactiveTable = (0, _react.observer)(function (_ref3) {
128
+ var columns = _ref3.columns,
129
+ tableProps = _ref3.tableProps;
115
130
  var field = (0, _react.useField)();
116
131
  // 阅读视图本身未订阅列状态,在此建立依赖,条件变化后重新提取表头。@author nokecy
117
132
  var _iterator = _createForOfIteratorHelper(columns),
@@ -1,2 +1,3 @@
1
+ export { withReactiveSchemaScope } from './schemaScope';
1
2
  /** 动态表单统一入口:禁用/只读的数据控件使用阅读展示,保持字段值和校验模型。@author nokecy */
2
3
  export declare function withReadingFields(components: Record<string, any>): Record<string, any>;
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "withReactiveSchemaScope", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _schemaScope.withReactiveSchemaScope;
10
+ }
11
+ });
6
12
  exports.withReadingFields = withReadingFields;
7
13
  var _react = require("@formily/react");
8
14
  var _react2 = _interopRequireDefault(require("react"));
@@ -10,6 +16,7 @@ var _hoistStatics = require("./hoistStatics");
10
16
  var Reading = _interopRequireWildcard(require("./controls"));
11
17
  var _selectNumberInputTextOnClick = require("./selectNumberInputTextOnClick");
12
18
  var _arrayTable = require("./arrayTable");
19
+ var _schemaScope = require("./schemaScope");
13
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
14
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * as ReadPrettyControls from './controls';
7
7
  export { withReadingFields } from './formily';
8
+ export { withReactiveSchemaScope } from './schemaScope';
8
9
  export { withReadingArrayTable } from './arrayTable';
9
10
  export { DecimalInput, DecimalPicker } from './decimal';
10
11
  export { flattenOptions, selectedLabels } from './values';
@@ -47,6 +47,12 @@ Object.defineProperty(exports, "selectedLabels", {
47
47
  return _values.selectedLabels;
48
48
  }
49
49
  });
50
+ Object.defineProperty(exports, "withReactiveSchemaScope", {
51
+ enumerable: true,
52
+ get: function get() {
53
+ return _schemaScope.withReactiveSchemaScope;
54
+ }
55
+ });
50
56
  Object.defineProperty(exports, "withReadingArrayTable", {
51
57
  enumerable: true,
52
58
  get: function get() {
@@ -62,6 +68,7 @@ Object.defineProperty(exports, "withReadingFields", {
62
68
  var _ReadPrettyControls = _interopRequireWildcard(require("./controls"));
63
69
  exports.ReadPrettyControls = _ReadPrettyControls;
64
70
  var _formily = require("./formily");
71
+ var _schemaScope = require("./schemaScope");
65
72
  var _arrayTable = require("./arrayTable");
66
73
  var _decimal = require("./decimal");
67
74
  var _values = require("./values");
@@ -0,0 +1,2 @@
1
+ /** 将 React 页面作用域接入 Formily 响应式表达式,保留字段、输入值和已有对象引用。@author nokecy */
2
+ export declare const withReactiveSchemaScope: (Control: any) => any;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withReactiveSchemaScope = void 0;
7
+ var _reactive = require("@formily/reactive");
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _hoistStatics = require("./hoistStatics");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ 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); }
13
+ 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); }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
18
+ 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); }
19
+ /** 将 React 页面作用域接入 Formily 响应式表达式,保留字段、输入值和已有对象引用。@author nokecy */
20
+ var withReactiveSchemaScope = exports.withReactiveSchemaScope = function withReactiveSchemaScope(Control) {
21
+ var Component = function Component(props) {
22
+ var scope = (0, _react.useMemo)(function () {
23
+ return _reactive.observable.shallow(_objectSpread({}, props.scope));
24
+ }, []);
25
+ // 字段反应在初始化时绑定作用域,因此始终传同一对象,再于提交后同步当前页面数据。
26
+ // autorun 同时兼容调用方直接传入的 observable 作用域;untracked 避免订阅同步目标。@author nokecy
27
+ (0, _react.useEffect)(function () {
28
+ return (0, _reactive.autorun)(function () {
29
+ var _props$scope;
30
+ var current = (_props$scope = props.scope) !== null && _props$scope !== void 0 ? _props$scope : {};
31
+ var values = _objectSpread({}, current);
32
+ (0, _reactive.untracked)(function () {
33
+ return (0, _reactive.batch)(function () {
34
+ for (var _i = 0, _Object$keys = Object.keys(scope); _i < _Object$keys.length; _i++) {
35
+ var key = _Object$keys[_i];
36
+ if (!Object.prototype.hasOwnProperty.call(values, key)) delete scope[key];
37
+ }
38
+ Object.assign(scope, values);
39
+ });
40
+ });
41
+ });
42
+ });
43
+ return /*#__PURE__*/_react.default.createElement(Control, _extends({}, props, {
44
+ scope: scope
45
+ }));
46
+ };
47
+ Component.displayName = 'ReactiveSchemaScope';
48
+ return (0, _hoistStatics.hoistStatics)(Component, Control);
49
+ };
@@ -38,6 +38,15 @@ var GridEmptyState = exports.GridEmptyState = function GridEmptyState() {
38
38
  actions = _React$useContext.actions,
39
39
  clearFilterAction = _React$useContext.clearFilterAction,
40
40
  onRetry = _React$useContext.onRetry;
41
+ var remoteError = error === null || error === void 0 ? void 0 : error.getRemoteServiceError();
42
+
43
+ // 组织上下文校验失败不是列表权限配置错误,应提示用户重新选择组织。
44
+ if ((remoteError === null || remoteError === void 0 ? void 0 : remoteError.code) === 'FactoryManagement:OrganizationNotAvailable') {
45
+ return /*#__PURE__*/_react.default.createElement(_antd.Empty, {
46
+ image: _antd.Empty.PRESENTED_IMAGE_SIMPLE,
47
+ description: remoteError.message || '所选组织不可用或未获得访问权限,请重新选择。'
48
+ });
49
+ }
41
50
 
42
51
  // 分支 1:无权限(403)——说明原因,不给任何入口
43
52
  if (error && httpStatusOf(error) === 403) {