@nokecy/qc-ui-components 2.0.0-beta.0 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/cjs/ConfirmPro/index.d.ts +12 -9
  2. package/dist/cjs/ConfirmPro/index.js +11 -34
  3. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +422 -156
  4. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +12 -1
  5. package/dist/cjs/ag-grid-plus/context/queryFormContext.d.ts +2 -0
  6. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
  7. package/dist/cjs/ag-grid-plus/density.d.ts +25 -0
  8. package/dist/cjs/ag-grid-plus/density.js +52 -0
  9. package/dist/cjs/ag-grid-plus/index.less +36 -0
  10. package/dist/cjs/ag-grid-plus/interface.d.ts +58 -1
  11. package/dist/cjs/ag-grid-plus/interface.js +1 -1
  12. package/dist/cjs/ag-grid-plus/queryForm/index.d.ts +11 -0
  13. package/dist/cjs/ag-grid-plus/queryForm/index.js +62 -10
  14. package/dist/cjs/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
  15. package/dist/cjs/ag-grid-plus/queryForm/queryForm.js +63 -26
  16. package/dist/cjs/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
  17. package/dist/cjs/ag-grid-plus/queryForm/queryValues.js +61 -0
  18. package/dist/cjs/ag-grid-plus/rowColors.d.ts +12 -0
  19. package/dist/cjs/ag-grid-plus/rowColors.js +58 -0
  20. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
  21. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
  22. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +108 -76
  23. package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
  24. package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
  25. package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.js +206 -0
  26. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
  27. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +19 -1
  28. package/dist/cjs/ag-grid-plus/setting/index.js +5 -14
  29. package/dist/cjs/ag-grid-plus/settingItem/index.d.ts +11 -1
  30. package/dist/cjs/ag-grid-plus/settingItem/index.js +34 -12
  31. package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
  32. package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.js +87 -0
  33. package/dist/cjs/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
  34. package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
  35. package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.js +40 -0
  36. package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
  37. package/dist/cjs/ag-grid-plus/theme.d.ts +7 -1
  38. package/dist/cjs/ag-grid-plus/theme.js +31 -6
  39. package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
  40. package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.js +128 -0
  41. package/dist/cjs/ag-grid-plus/toolBar/index.d.ts +3 -1
  42. package/dist/cjs/ag-grid-plus/toolBar/index.js +43 -35
  43. package/dist/cjs/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
  44. package/dist/cjs/ag-grid-plus/toolBar/leftContent.js +2 -2
  45. package/dist/cjs/ag-grid-plus/toolBar/overflow.d.ts +20 -0
  46. package/dist/cjs/ag-grid-plus/toolBar/overflow.js +48 -0
  47. package/dist/cjs/ag-grid-plus/toolBar/style.js +71 -15
  48. package/dist/cjs/ag-grid-plus/types.d.ts +6 -0
  49. package/dist/cjs/ag-grid-plus/utils/agGridCompat.js +12 -3
  50. package/dist/cjs/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
  51. package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +13 -2
  52. package/dist/cjs/ag-grid-plus/utils/constants.d.ts +3 -2
  53. package/dist/cjs/ag-grid-plus/utils/constants.js +3 -2
  54. package/dist/cjs/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
  55. package/dist/cjs/ag-grid-plus/utils/crossPageSelection.js +58 -0
  56. package/dist/cjs/ag-grid-plus/utils/emptyState.d.ts +2 -0
  57. package/dist/cjs/ag-grid-plus/utils/emptyState.js +9 -5
  58. package/dist/cjs/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
  59. package/dist/cjs/ag-grid-plus/utils/listKeyboard.js +83 -0
  60. package/dist/cjs/ag-grid-plus/utils/pagination.d.ts +26 -0
  61. package/dist/cjs/ag-grid-plus/utils/pagination.js +69 -0
  62. package/dist/cjs/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
  63. package/dist/cjs/ag-grid-plus/utils/queryDispatch.js +17 -0
  64. package/dist/cjs/ag-grid-plus/utils/statusPill.d.ts +25 -0
  65. package/dist/cjs/ag-grid-plus/utils/statusPill.js +196 -0
  66. package/dist/cjs/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
  67. package/dist/cjs/ag-grid-plus/utils/valueEnumColor.js +13 -9
  68. package/dist/cjs/ag-grid-plus/utils/valueFormat.d.ts +19 -0
  69. package/dist/cjs/ag-grid-plus/utils/valueFormat.js +73 -0
  70. package/dist/cjs/ag-grid-plus/utils.js +3 -2
  71. package/dist/cjs/array-table/arrayAddBtn.d.ts +1 -0
  72. package/dist/cjs/array-table/arrayAddBtn.js +2 -2
  73. package/dist/cjs/array-table/autoHeight.d.ts +18 -0
  74. package/dist/cjs/array-table/autoHeight.js +30 -0
  75. package/dist/cjs/array-table/batchRemove.d.ts +2 -2
  76. package/dist/cjs/array-table/cellEditorMarker.d.ts +18 -0
  77. package/dist/cjs/array-table/cellEditorMarker.js +92 -0
  78. package/dist/cjs/array-table/errorLocator.d.ts +29 -0
  79. package/dist/cjs/array-table/errorLocator.js +101 -0
  80. package/dist/cjs/array-table/hooks.d.ts +52 -4
  81. package/dist/cjs/array-table/hooks.js +251 -18
  82. package/dist/cjs/array-table/index.d.ts +6 -0
  83. package/dist/cjs/array-table/index.js +167 -23
  84. package/dist/cjs/array-table/interface.d.ts +22 -0
  85. package/dist/cjs/array-table/preview.js +39 -5
  86. package/dist/cjs/array-table/rowFeedback.d.ts +2 -2
  87. package/dist/cjs/array-table/rowFeedback.js +8 -8
  88. package/dist/cjs/array-table/summary.d.ts +25 -0
  89. package/dist/cjs/array-table/summary.js +70 -0
  90. package/dist/cjs/array-table/theme.d.ts +35 -5
  91. package/dist/cjs/array-table/theme.js +49 -12
  92. package/dist/cjs/array-table/title.d.ts +3 -0
  93. package/dist/cjs/array-table/title.js +29 -0
  94. package/dist/cjs/array-table/utils.d.ts +2 -1
  95. package/dist/cjs/array-table/utils.js +94 -23
  96. package/dist/cjs/card/pro-card/Card/useLegacyItems.d.ts +1 -1
  97. package/dist/cjs/dateCellEditor/DateCellEditor.d.ts +5 -0
  98. package/dist/cjs/dateCellEditor/DateCellEditor.js +42 -17
  99. package/dist/cjs/deleteConfirm/index.d.ts +14 -0
  100. package/dist/cjs/deleteConfirm/index.js +73 -12
  101. package/dist/cjs/dialogSelect/index.d.ts +19 -0
  102. package/dist/cjs/dialogSelect/index.js +189 -15
  103. package/dist/cjs/dialogSelect/index.less +18 -0
  104. package/dist/cjs/documentPage/documentPage.d.ts +6 -3
  105. package/dist/cjs/documentPage/documentPage.js +23 -8
  106. package/dist/cjs/documentPage/index.d.ts +2 -0
  107. package/dist/cjs/documentPage/index.js +19 -0
  108. package/dist/cjs/documentPage/leaveGuard.d.ts +31 -0
  109. package/dist/cjs/documentPage/leaveGuard.js +91 -0
  110. package/dist/cjs/draggableModal/index.d.ts +24 -1
  111. package/dist/cjs/draggableModal/index.js +36 -6
  112. package/dist/cjs/fullScreenAlert/index.less +10 -10
  113. package/dist/cjs/index.d.ts +2 -0
  114. package/dist/cjs/index.js +15 -0
  115. package/dist/cjs/readPretty/arrayTable.js +5 -1
  116. package/dist/cjs/scanCollect/ScanFeedbackInput.d.ts +26 -0
  117. package/dist/cjs/scanCollect/ScanFeedbackInput.js +113 -0
  118. package/dist/cjs/scanCollect/index.d.ts +4 -0
  119. package/dist/cjs/scanCollect/index.js +14 -0
  120. package/dist/cjs/scanCollect/scanSound.d.ts +15 -0
  121. package/dist/cjs/scanCollect/scanSound.js +91 -0
  122. package/dist/esm/ConfirmPro/index.d.ts +12 -9
  123. package/dist/esm/ConfirmPro/index.js +11 -34
  124. package/dist/esm/ag-grid-plus/ag-gridPlus.js +423 -156
  125. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +12 -1
  126. package/dist/esm/ag-grid-plus/context/queryFormContext.d.ts +2 -0
  127. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
  128. package/dist/esm/ag-grid-plus/density.d.ts +25 -0
  129. package/dist/esm/ag-grid-plus/density.js +45 -0
  130. package/dist/esm/ag-grid-plus/index.less +36 -0
  131. package/dist/esm/ag-grid-plus/interface.d.ts +58 -1
  132. package/dist/esm/ag-grid-plus/interface.js +2 -0
  133. package/dist/esm/ag-grid-plus/queryForm/index.d.ts +11 -0
  134. package/dist/esm/ag-grid-plus/queryForm/index.js +62 -10
  135. package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
  136. package/dist/esm/ag-grid-plus/queryForm/queryForm.js +64 -26
  137. package/dist/esm/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
  138. package/dist/esm/ag-grid-plus/queryForm/queryValues.js +54 -0
  139. package/dist/esm/ag-grid-plus/rowColors.d.ts +12 -0
  140. package/dist/esm/ag-grid-plus/rowColors.js +50 -0
  141. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
  142. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
  143. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +110 -78
  144. package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
  145. package/dist/esm/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
  146. package/dist/esm/ag-grid-plus/setting/autoColumnMemory.js +198 -0
  147. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
  148. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +18 -1
  149. package/dist/esm/ag-grid-plus/setting/index.js +6 -15
  150. package/dist/esm/ag-grid-plus/settingItem/index.d.ts +11 -1
  151. package/dist/esm/ag-grid-plus/settingItem/index.js +35 -13
  152. package/dist/esm/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
  153. package/dist/esm/ag-grid-plus/shared/EmptyIllustration.js +82 -0
  154. package/dist/esm/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
  155. package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
  156. package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.js +34 -0
  157. package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
  158. package/dist/esm/ag-grid-plus/theme.d.ts +7 -1
  159. package/dist/esm/ag-grid-plus/theme.js +31 -6
  160. package/dist/esm/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
  161. package/dist/esm/ag-grid-plus/toolBar/OverflowActions.js +120 -0
  162. package/dist/esm/ag-grid-plus/toolBar/index.d.ts +3 -1
  163. package/dist/esm/ag-grid-plus/toolBar/index.js +43 -35
  164. package/dist/esm/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
  165. package/dist/esm/ag-grid-plus/toolBar/leftContent.js +2 -2
  166. package/dist/esm/ag-grid-plus/toolBar/overflow.d.ts +20 -0
  167. package/dist/esm/ag-grid-plus/toolBar/overflow.js +41 -0
  168. package/dist/esm/ag-grid-plus/toolBar/style.js +71 -15
  169. package/dist/esm/ag-grid-plus/types.d.ts +6 -0
  170. package/dist/esm/ag-grid-plus/utils/agGridCompat.js +12 -3
  171. package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
  172. package/dist/esm/ag-grid-plus/utils/columnProcessors.js +14 -3
  173. package/dist/esm/ag-grid-plus/utils/constants.d.ts +3 -2
  174. package/dist/esm/ag-grid-plus/utils/constants.js +3 -2
  175. package/dist/esm/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
  176. package/dist/esm/ag-grid-plus/utils/crossPageSelection.js +52 -0
  177. package/dist/esm/ag-grid-plus/utils/emptyState.d.ts +2 -0
  178. package/dist/esm/ag-grid-plus/utils/emptyState.js +9 -5
  179. package/dist/esm/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
  180. package/dist/esm/ag-grid-plus/utils/listKeyboard.js +77 -0
  181. package/dist/esm/ag-grid-plus/utils/pagination.d.ts +26 -0
  182. package/dist/esm/ag-grid-plus/utils/pagination.js +60 -0
  183. package/dist/esm/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
  184. package/dist/esm/ag-grid-plus/utils/queryDispatch.js +11 -0
  185. package/dist/esm/ag-grid-plus/utils/statusPill.d.ts +25 -0
  186. package/dist/esm/ag-grid-plus/utils/statusPill.js +192 -0
  187. package/dist/esm/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
  188. package/dist/esm/ag-grid-plus/utils/valueEnumColor.js +12 -8
  189. package/dist/esm/ag-grid-plus/utils/valueFormat.d.ts +19 -0
  190. package/dist/esm/ag-grid-plus/utils/valueFormat.js +63 -0
  191. package/dist/esm/ag-grid-plus/utils.js +3 -2
  192. package/dist/esm/array-table/arrayAddBtn.d.ts +1 -0
  193. package/dist/esm/array-table/arrayAddBtn.js +1 -1
  194. package/dist/esm/array-table/autoHeight.d.ts +18 -0
  195. package/dist/esm/array-table/autoHeight.js +25 -0
  196. package/dist/esm/array-table/batchRemove.d.ts +2 -2
  197. package/dist/esm/array-table/cellEditorMarker.d.ts +18 -0
  198. package/dist/esm/array-table/cellEditorMarker.js +84 -0
  199. package/dist/esm/array-table/errorLocator.d.ts +29 -0
  200. package/dist/esm/array-table/errorLocator.js +95 -0
  201. package/dist/esm/array-table/hooks.d.ts +52 -4
  202. package/dist/esm/array-table/hooks.js +251 -17
  203. package/dist/esm/array-table/index.d.ts +6 -0
  204. package/dist/esm/array-table/index.js +170 -25
  205. package/dist/esm/array-table/interface.d.ts +22 -0
  206. package/dist/esm/array-table/preview.js +43 -7
  207. package/dist/esm/array-table/rowFeedback.d.ts +2 -2
  208. package/dist/esm/array-table/rowFeedback.js +8 -8
  209. package/dist/esm/array-table/summary.d.ts +25 -0
  210. package/dist/esm/array-table/summary.js +66 -0
  211. package/dist/esm/array-table/theme.d.ts +35 -5
  212. package/dist/esm/array-table/theme.js +47 -12
  213. package/dist/esm/array-table/title.d.ts +3 -0
  214. package/dist/esm/array-table/title.js +24 -0
  215. package/dist/esm/array-table/utils.d.ts +2 -1
  216. package/dist/esm/array-table/utils.js +93 -22
  217. package/dist/esm/card/pro-card/Card/useLegacyItems.d.ts +1 -1
  218. package/dist/esm/dateCellEditor/DateCellEditor.d.ts +5 -0
  219. package/dist/esm/dateCellEditor/DateCellEditor.js +42 -17
  220. package/dist/esm/deleteConfirm/index.d.ts +14 -0
  221. package/dist/esm/deleteConfirm/index.js +72 -12
  222. package/dist/esm/dialogSelect/index.d.ts +19 -0
  223. package/dist/esm/dialogSelect/index.js +190 -16
  224. package/dist/esm/dialogSelect/index.less +18 -0
  225. package/dist/esm/documentPage/documentPage.d.ts +6 -3
  226. package/dist/esm/documentPage/documentPage.js +23 -8
  227. package/dist/esm/documentPage/index.d.ts +2 -0
  228. package/dist/esm/documentPage/index.js +1 -0
  229. package/dist/esm/documentPage/leaveGuard.d.ts +31 -0
  230. package/dist/esm/documentPage/leaveGuard.js +86 -0
  231. package/dist/esm/draggableModal/index.d.ts +24 -1
  232. package/dist/esm/draggableModal/index.js +35 -5
  233. package/dist/esm/fullScreenAlert/index.less +10 -10
  234. package/dist/esm/index.d.ts +2 -0
  235. package/dist/esm/index.js +1 -0
  236. package/dist/esm/readPretty/arrayTable.js +6 -2
  237. package/dist/esm/scanCollect/ScanFeedbackInput.d.ts +26 -0
  238. package/dist/esm/scanCollect/ScanFeedbackInput.js +107 -0
  239. package/dist/esm/scanCollect/index.d.ts +4 -0
  240. package/dist/esm/scanCollect/index.js +2 -0
  241. package/dist/esm/scanCollect/scanSound.d.ts +15 -0
  242. package/dist/esm/scanCollect/scanSound.js +84 -0
  243. package/package.json +2 -2
@@ -4,12 +4,13 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
7
+ exports.default = exports.CONFIRM_DIALOG_WIDTH = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _antd = require("antd");
10
10
  var _icons = require("@ant-design/icons");
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ 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); }
13
+ 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; }
13
14
  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; }
14
15
  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
16
  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; }
@@ -24,6 +25,42 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
24
25
  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; }
25
26
  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; } }
26
27
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
28
+ /** 确认框默认宽度,对应规范「确认、单字段编辑 Modal 560」。 */
29
+ var CONFIRM_DIALOG_WIDTH = exports.CONFIRM_DIALOG_WIDTH = 560;
30
+
31
+ /** 输入确认区:正文 + 一行输入框,键入值与 expected 完全一致时通知外层点亮确认按钮。 */
32
+ var TypeToConfirm = function TypeToConfirm(_ref) {
33
+ var body = _ref.body,
34
+ expected = _ref.expected,
35
+ onMatchChange = _ref.onMatchChange;
36
+ var _useState = (0, _react.useState)(''),
37
+ _useState2 = _slicedToArray(_useState, 2),
38
+ value = _useState2[0],
39
+ setValue = _useState2[1];
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
41
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
42
+ style: {
43
+ marginBottom: 12
44
+ },
45
+ children: body
46
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
47
+ style: {
48
+ marginBottom: 8
49
+ },
50
+ children: ["\u8BF7\u8F93\u5165 ", /*#__PURE__*/(0, _jsxRuntime.jsx)("strong", {
51
+ children: expected
52
+ }), " \u4EE5\u786E\u8BA4"]
53
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Input, {
54
+ value: value,
55
+ "aria-label": "\u8F93\u5165 ".concat(expected, " \u4EE5\u786E\u8BA4"),
56
+ onChange: function onChange(event) {
57
+ setValue(event.target.value);
58
+ onMatchChange(event.target.value === expected);
59
+ }
60
+ })]
61
+ });
62
+ };
63
+
27
64
  /**
28
65
  * DeleteConfirm 删除确认组件
29
66
  *
@@ -49,6 +86,11 @@ var DeleteConfirm = function DeleteConfirm(props) {
49
86
  okText = props.okText,
50
87
  _props$danger = props.danger,
51
88
  danger = _props$danger === void 0 ? true : _props$danger,
89
+ confirmText = props.confirmText,
90
+ _props$autoFocusButto = props.autoFocusButton,
91
+ autoFocusButton = _props$autoFocusButto === void 0 ? 'cancel' : _props$autoFocusButto,
92
+ _props$width = props.width,
93
+ width = _props$width === void 0 ? CONFIRM_DIALOG_WIDTH : _props$width,
52
94
  children = props.children;
53
95
 
54
96
  // 保留宿主主题,并让 antd 接管异步提交的加载与失败恢复。@author nokecy
@@ -57,8 +99,8 @@ var DeleteConfirm = function DeleteConfirm(props) {
57
99
  modal = _Modal$useModal2[0],
58
100
  contextHolder = _Modal$useModal2[1];
59
101
  var showPromiseConfirm = /*#__PURE__*/function () {
60
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {
61
- var titleText, contentText;
102
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {
103
+ var titleText, contentText, typed, instance;
62
104
  return _regeneratorRuntime().wrap(function _callee$(_context) {
63
105
  while (1) switch (_context.prev = _context.next) {
64
106
  case 0:
@@ -67,14 +109,33 @@ var DeleteConfirm = function DeleteConfirm(props) {
67
109
  // 不传时的兜底只承诺「不可撤销」:原来的默认正文是把 title 拼进去,
68
110
  // 拼出来是一句病句,而且始终没告诉用户动的是哪条数据。@author nokecy
69
111
  contentText = content || '该操作不可撤销,请确认后继续。';
70
- _context.next = 4;
71
- return modal.confirm(_objectSpread(_objectSpread({
112
+ typed = typeof confirmText === 'string' && confirmText.length > 0;
113
+ _context.next = 5;
114
+ return instance = modal.confirm(_objectSpread(_objectSpread({
72
115
  title: titleText,
73
116
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ExclamationCircleFilled, {}),
74
- content: contentText,
75
- okButtonProps: {
117
+ width: width,
118
+ focusable: {
119
+ autoFocusButton: autoFocusButton
120
+ },
121
+ content: typed ? /*#__PURE__*/(0, _jsxRuntime.jsx)(TypeToConfirm, {
122
+ body: contentText,
123
+ expected: confirmText,
124
+ onMatchChange: function onMatchChange(matched) {
125
+ var _instance;
126
+ return (_instance = instance) === null || _instance === void 0 ? void 0 : _instance.update({
127
+ okButtonProps: {
128
+ danger: danger,
129
+ disabled: !matched
130
+ }
131
+ });
132
+ }
133
+ }) : contentText,
134
+ okButtonProps: _objectSpread({
76
135
  danger: danger
77
- }
136
+ }, typed ? {
137
+ disabled: true
138
+ } : {})
78
139
  }, okText ? {
79
140
  okText: okText
80
141
  } : {}), {}, {
@@ -86,14 +147,14 @@ var DeleteConfirm = function DeleteConfirm(props) {
86
147
  });
87
148
  }
88
149
  }));
89
- case 4:
150
+ case 5:
90
151
  case "end":
91
152
  return _context.stop();
92
153
  }
93
154
  }, _callee);
94
155
  }));
95
156
  return function showPromiseConfirm(_x) {
96
- return _ref.apply(this, arguments);
157
+ return _ref2.apply(this, arguments);
97
158
  };
98
159
  }();
99
160
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -49,7 +49,26 @@ interface IDialogSelectProps extends SelectProps<any> {
49
49
  }) => React.ReactNode;
50
50
  /** 选择窗口里使用的表格组件,默认 `AgGridPlus`;宿主可注入自己封装过的表格基座。 */
51
51
  gridComponent?: React.ComponentType<any>;
52
+ /**
53
+ * 候选面板第一列(编码)取的字段名。传入后候选渲染成「编码 | 名称」两列,编码在前(DESIGN.md §6.12)。
54
+ * 不传则保持 Select 默认的单列文字。
55
+ */
56
+ codeField?: string;
57
+ /** `onSearch` 的防抖毫秒数,默认 200(§6.12);0 关闭防抖。仅在传了 `onSearch` 时有意义。 */
58
+ searchDebounce?: number;
59
+ /**
60
+ * 远程检索时候选面板最多展示的条数,默认 20,超出写「仅显示前 20 条,继续输入可缩小范围」,不静默截断。
61
+ * 只在传了 `onSearch`(服务端检索)时生效;本地全量下拉不截断。传 0 关闭。
62
+ */
63
+ maxOptions?: number;
64
+ /**
65
+ * 「最近使用」的存储键。传入后输入框为空时候选面板先列最近选过的至多 5 条,其后是档案候选。
66
+ * 存在 localStorage,需要「按用户记」时由调用方把用户标识拼进键里;不传则不启用。
67
+ */
68
+ recentKey?: string;
52
69
  }
70
+ /** 候选面板最小宽,栅格里的输入区放不下两列时仍可读(§6.12)。 */
71
+ export declare const DIALOG_SELECT_MIN_POPUP_WIDTH = 360;
53
72
  export { IDialogSelectProps };
54
73
  declare const _default: (props: IDialogSelectProps) => React.ReactElement;
55
74
  export default _default;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.DIALOG_SELECT_MIN_POPUP_WIDTH = void 0;
7
7
  var _antd = require("antd");
8
8
  var _formilyReact = require("@nokecy/formily-react");
9
9
  var _formilyAntd = require("@nokecy/formily-antd");
@@ -19,8 +19,8 @@ var _cellInteractionLock = require("../array-table/cellInteractionLock");
19
19
  var _selectedLabels = require("./selectedLabels");
20
20
  require("./index.less");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
- var _excluded = ["request", "columnDefs", "value", "labelField", "valueField", "displayField", "onChangeItem", "hideBtn", "useAutoComplete", "queryFun", "pagedApiAdapter", "resolveSelected", "selectedScopeKey", "modalWidth", "dialogZIndex", "dialogMode", "dialogPageSize", "dialogPageSizeOptions", "dialogGridKey", "dialogDataSource", "dialogIsRowSelectable", "dialogRenderer", "gridComponent"],
23
- _excluded2 = ["request", "columnDefs", "labelField", "valueField", "displayField", "onChangeItem", "hideBtn", "useAutoComplete", "queryFun", "pagedApiAdapter", "resolveSelected", "selectedScopeKey", "modalWidth", "dialogZIndex", "dialogMode", "dialogPageSize", "dialogPageSizeOptions", "dialogGridKey", "dialogDataSource", "dialogIsRowSelectable", "dialogRenderer", "gridComponent"];
22
+ var _excluded = ["request", "columnDefs", "value", "labelField", "valueField", "displayField", "onChangeItem", "hideBtn", "useAutoComplete", "queryFun", "pagedApiAdapter", "resolveSelected", "selectedScopeKey", "modalWidth", "dialogZIndex", "dialogMode", "dialogPageSize", "dialogPageSizeOptions", "dialogGridKey", "dialogDataSource", "dialogIsRowSelectable", "dialogRenderer", "gridComponent", "codeField", "searchDebounce", "maxOptions", "recentKey"],
23
+ _excluded2 = ["request", "columnDefs", "labelField", "valueField", "displayField", "onChangeItem", "hideBtn", "useAutoComplete", "queryFun", "pagedApiAdapter", "resolveSelected", "selectedScopeKey", "modalWidth", "dialogZIndex", "dialogMode", "dialogPageSize", "dialogPageSizeOptions", "dialogGridKey", "dialogDataSource", "dialogIsRowSelectable", "dialogRenderer", "gridComponent", "codeField", "searchDebounce", "maxOptions", "recentKey"];
24
24
  /** 选择窗口的行选择模式。 */
25
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
26
  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); }
@@ -34,6 +34,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
34
34
  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; }
35
35
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
36
36
  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); }
37
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
38
+ 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."); }
39
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
40
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
37
41
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
38
42
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
39
43
  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); }
@@ -42,6 +46,30 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
42
46
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
43
47
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
44
48
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
49
+ /** 候选面板最小宽,栅格里的输入区放不下两列时仍可读(§6.12)。 */
50
+ var DIALOG_SELECT_MIN_POPUP_WIDTH = exports.DIALOG_SELECT_MIN_POPUP_WIDTH = 360;
51
+ /** 最近使用的上限(§6.12)。 */
52
+ var RECENT_LIMIT = 5;
53
+ var recentStorageKey = function recentStorageKey(key) {
54
+ return "qc-dialog-select:recent:".concat(key);
55
+ };
56
+ var readRecent = function readRecent(key) {
57
+ if (!key) return [];
58
+ try {
59
+ var _window$localStorage$;
60
+ var parsed = JSON.parse((_window$localStorage$ = window.localStorage.getItem(recentStorageKey(key))) !== null && _window$localStorage$ !== void 0 ? _window$localStorage$ : '[]');
61
+ return Array.isArray(parsed) ? parsed.slice(0, RECENT_LIMIT) : [];
62
+ } catch (_unused) {
63
+ return [];
64
+ }
65
+ };
66
+ var writeRecent = function writeRecent(key, items) {
67
+ try {
68
+ window.localStorage.setItem(recentStorageKey(key), JSON.stringify(items.slice(0, RECENT_LIMIT)));
69
+ } catch (_unused2) {
70
+ // 存储不可用时静默放弃,不影响选择本身。
71
+ }
72
+ };
45
73
  var DialogSelectInner = function DialogSelectInner(props) {
46
74
  var _rest$labelRender, _selectRows$length;
47
75
  // 这些是本组件自己的属性,不能透传给 Select(否则会落到 DOM 上触发未知属性告警)。
@@ -70,6 +98,12 @@ var DialogSelectInner = function DialogSelectInner(props) {
70
98
  dialogIsRowSelectable = props.dialogIsRowSelectable,
71
99
  dialogRenderer = props.dialogRenderer,
72
100
  gridComponent = props.gridComponent,
101
+ codeField = props.codeField,
102
+ _props$searchDebounce = props.searchDebounce,
103
+ searchDebounce = _props$searchDebounce === void 0 ? 200 : _props$searchDebounce,
104
+ _props$maxOptions = props.maxOptions,
105
+ maxOptions = _props$maxOptions === void 0 ? 20 : _props$maxOptions,
106
+ recentKey = props.recentKey,
73
107
  rest = _objectWithoutProperties(props, _excluded);
74
108
  var Grid = gridComponent !== null && gridComponent !== void 0 ? gridComponent : _index.AgGridPlus;
75
109
  var _useControllableValue = (0, _ahooks.useControllableValue)(props),
@@ -94,6 +128,99 @@ var DialogSelectInner = function DialogSelectInner(props) {
94
128
  var selectionMode = dialogMode !== null && dialogMode !== void 0 ? dialogMode : isMultipleValue ? 'multiple' : 'single';
95
129
  var key = valueField !== null && valueField !== void 0 ? valueField : 'id';
96
130
  var localData = Array.isArray(dialogDataSource);
131
+
132
+ // 候选面板:防抖检索、最近使用、前 N 条上限。
133
+ var _useState3 = (0, _react.useState)(''),
134
+ _useState4 = _slicedToArray(_useState3, 2),
135
+ searchText = _useState4[0],
136
+ setSearchText = _useState4[1];
137
+ var _useState5 = (0, _react.useState)(function () {
138
+ return readRecent(recentKey);
139
+ }),
140
+ _useState6 = _slicedToArray(_useState5, 2),
141
+ recent = _useState6[0],
142
+ setRecent = _useState6[1];
143
+ (0, _react.useEffect)(function () {
144
+ return setRecent(readRecent(recentKey));
145
+ }, [recentKey]);
146
+ var remember = function remember(items) {
147
+ if (!recentKey) return;
148
+ var merged = [].concat(_toConsumableArray(items), _toConsumableArray(recent.filter(function (old) {
149
+ return !items.some(function (it) {
150
+ return it.value === old.value;
151
+ });
152
+ }))).slice(0, RECENT_LIMIT);
153
+ setRecent(merged);
154
+ writeRecent(recentKey, merged);
155
+ };
156
+ var hostOnSearch = rest.onSearch;
157
+ var _useDebounceFn = (0, _ahooks.useDebounceFn)(function (text) {
158
+ return hostOnSearch === null || hostOnSearch === void 0 ? void 0 : hostOnSearch(text);
159
+ }, {
160
+ wait: searchDebounce
161
+ }),
162
+ debouncedSearch = _useDebounceFn.run;
163
+ var handleSearch = hostOnSearch ? function (text) {
164
+ setSearchText(text);
165
+ if (searchDebounce > 0) debouncedSearch(text);else hostOnSearch(text);
166
+ } : undefined;
167
+ var remoteSearch = !!hostOnSearch;
168
+ var _useMemo = (0, _react.useMemo)(function () {
169
+ var source = rest.options;
170
+ if (!Array.isArray(source)) return {
171
+ options: source,
172
+ truncated: false
173
+ };
174
+ var showRecent = recent.length > 0 && !searchText;
175
+ var recentValues = showRecent ? new Set(recent.map(function (it) {
176
+ return it.value;
177
+ })) : undefined;
178
+ var plain = recentValues ? source.filter(function (it) {
179
+ return !recentValues.has(it.value);
180
+ }) : source;
181
+ var limit = remoteSearch && maxOptions > 0 ? maxOptions : Infinity;
182
+ var cut = plain.length > limit;
183
+ var list = cut ? plain.slice(0, limit) : plain;
184
+ return {
185
+ options: showRecent ? [{
186
+ label: '最近使用',
187
+ options: recent
188
+ }].concat(_toConsumableArray(list)) : list,
189
+ truncated: cut
190
+ };
191
+ }, [rest.options, recent, searchText, remoteSearch, maxOptions]),
192
+ panelOptions = _useMemo.options,
193
+ truncated = _useMemo.truncated;
194
+ var optionRender = codeField ? function (option) {
195
+ var _option$data;
196
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
197
+ className: "qc-dialog-select-option",
198
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
199
+ className: "qc-dialog-select-option-code",
200
+ children: (_option$data = option.data) === null || _option$data === void 0 ? void 0 : _option$data[codeField]
201
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
202
+ className: "qc-dialog-select-option-name",
203
+ children: option.label
204
+ })]
205
+ });
206
+ } : undefined;
207
+ var hostPopupRender = rest.popupRender;
208
+ var popupRender = truncated ? function (menu) {
209
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
210
+ args[_key - 1] = arguments[_key];
211
+ }
212
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
213
+ children: [hostPopupRender ? hostPopupRender.apply(void 0, [menu].concat(args)) : menu, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
214
+ className: "qc-dialog-select-hint",
215
+ style: {
216
+ padding: '4px 12px',
217
+ fontSize: 12,
218
+ color: token.colorTextTertiary
219
+ },
220
+ children: "\u4EC5\u663E\u793A\u524D ".concat(maxOptions, " \u6761\uFF0C\u7EE7\u7EED\u8F93\u5165\u53EF\u7F29\u5C0F\u8303\u56F4")
221
+ })]
222
+ });
223
+ } : hostPopupRender;
97
224
  var getValue = function getValue(rows) {
98
225
  var row = rows[0];
99
226
  var labelKey = labelField !== null && labelField !== void 0 ? labelField : 'name';
@@ -122,6 +249,12 @@ var DialogSelectInner = function DialogSelectInner(props) {
122
249
  if (dialogIsRowSelectable && rows.some(function (row) {
123
250
  return !dialogIsRowSelectable(row);
124
251
  })) return;
252
+ remember(rows.map(function (row) {
253
+ return _objectSpread({
254
+ value: row[key],
255
+ label: row[labelField !== null && labelField !== void 0 ? labelField : 'name']
256
+ }, codeField ? _defineProperty({}, codeField, row[codeField]) : {});
257
+ }));
125
258
  setState(getValue(rows));
126
259
  close();
127
260
  // 回传完整数据行,供调用方回填关联字段。
@@ -156,14 +289,51 @@ var DialogSelectInner = function DialogSelectInner(props) {
156
289
  '--qc-dialog-select-trigger-color': token.colorTextTertiary,
157
290
  '--qc-dialog-select-trigger-hover': token.colorPrimary
158
291
  };
159
- var commonProps = _objectSpread(_objectSpread({}, rest), {}, {
292
+ var commonProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
293
+ popupMatchSelectWidth: DIALOG_SELECT_MIN_POPUP_WIDTH
294
+ }, rest), panelOptions !== rest.options ? {
295
+ options: panelOptions
296
+ } : {}), optionRender && !rest.optionRender ? {
297
+ optionRender: optionRender
298
+ } : {}), handleSearch ? {
299
+ onSearch: handleSearch
300
+ } : {}), popupRender ? {
301
+ popupRender: popupRender
302
+ } : {}), {}, {
303
+ onSelect: function onSelect(value, option) {
304
+ var _option$value, _rest$onSelect;
305
+ if (recentKey && option) remember([_objectSpread({
306
+ value: (_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : value,
307
+ label: option.label
308
+ }, codeField ? _defineProperty({}, codeField, option[codeField]) : {})]);
309
+ (_rest$onSelect = rest.onSelect) === null || _rest$onSelect === void 0 || _rest$onSelect.call(rest, value, option);
310
+ },
311
+ onOpenChange: function onOpenChange(open) {
312
+ var _rest$onOpenChange, _onDropdownVisibleCha, _ref3;
313
+ // 收起后清空检索词,下次展开才会重新展示「最近使用」。
314
+ if (!open) setSearchText('');
315
+ (_rest$onOpenChange = rest.onOpenChange) === null || _rest$onOpenChange === void 0 || _rest$onOpenChange.call(rest, open);
316
+ // antd 6 同时认 onOpenChange 与旧的 onDropdownVisibleChange,这里接管前者,旧回调要手动转发。
317
+ (_onDropdownVisibleCha = (_ref3 = rest).onDropdownVisibleChange) === null || _onDropdownVisibleCha === void 0 || _onDropdownVisibleCha.call(_ref3, open);
318
+ },
319
+ onKeyDown: function onKeyDown(event) {
320
+ var _rest$onKeyDown;
321
+ (_rest$onKeyDown = rest.onKeyDown) === null || _rest$onKeyDown === void 0 || _rest$onKeyDown.call(rest, event);
322
+ // F7 打开选择窗(§6.12);与点放大镜等价。
323
+ if (event.key === 'F7' && canOpen && !event.defaultPrevented) {
324
+ event.preventDefault();
325
+ event.stopPropagation();
326
+ setSelectRows(undefined);
327
+ setTrue();
328
+ }
329
+ },
160
330
  labelRender: displayField === 'value' ? function (item) {
161
331
  return (0, _readOnlyFormatters.formatSelectDisplay)(item, 'value');
162
332
  } : (_rest$labelRender = rest.labelRender) !== null && _rest$labelRender !== void 0 ? _rest$labelRender : function (item) {
163
- var _ref, _selectedLabels$find$, _selectedLabels$find;
164
- return (_ref = (_selectedLabels$find$ = (_selectedLabels$find = selectedLabels.find(function (option) {
333
+ var _ref4, _selectedLabels$find$, _selectedLabels$find;
334
+ return (_ref4 = (_selectedLabels$find$ = (_selectedLabels$find = selectedLabels.find(function (option) {
165
335
  return option.value === item.value;
166
- })) === null || _selectedLabels$find === void 0 ? void 0 : _selectedLabels$find.label) !== null && _selectedLabels$find$ !== void 0 ? _selectedLabels$find$ : item.label) !== null && _ref !== void 0 ? _ref : item.value;
336
+ })) === null || _selectedLabels$find === void 0 ? void 0 : _selectedLabels$find.label) !== null && _selectedLabels$find$ !== void 0 ? _selectedLabels$find$ : item.label) !== null && _ref4 !== void 0 ? _ref4 : item.value;
167
337
  },
168
338
  className: mergedClassName,
169
339
  value: (0, _selectedLabels.selectedDisplayValue)(state, selectedLabels, props.labelInValue),
@@ -206,8 +376,8 @@ var DialogSelectInner = function DialogSelectInner(props) {
206
376
  dataSource: dialogDataSource,
207
377
  hidePagination: localData
208
378
  }, localData ? {
209
- getRowId: function getRowId(_ref2) {
210
- var data = _ref2.data;
379
+ getRowId: function getRowId(_ref5) {
380
+ var data = _ref5.data;
211
381
  return String(data[key]);
212
382
  }
213
383
  } : {}), {}, {
@@ -216,8 +386,8 @@ var DialogSelectInner = function DialogSelectInner(props) {
216
386
  },
217
387
  pageSize: dialogPageSize,
218
388
  pageSizeOptions: dialogPageSizeOptions,
219
- onFirstDataRendered: function onFirstDataRendered(_ref3) {
220
- var api = _ref3.api;
389
+ onFirstDataRendered: function onFirstDataRendered(_ref6) {
390
+ var api = _ref6.api;
221
391
  // 重开弹窗要把已经选中的行勾回来,否则用户会以为之前的选择丢了。
222
392
  // 放在首屏数据渲染完成时做:弹窗是 destroyOnClose,打开的那一刻表格还没有数据。@author nokecy
223
393
  var current = Array.isArray(state) ? state : state == null ? [] : [state];
@@ -239,13 +409,13 @@ var DialogSelectInner = function DialogSelectInner(props) {
239
409
  return !!node.data && dialogIsRowSelectable(node.data);
240
410
  }
241
411
  } : selectionMode === 'multiple' ? 'multiple' : 'single',
242
- onRowDoubleClicked: function onRowDoubleClicked(_ref4) {
243
- var data = _ref4.data;
412
+ onRowDoubleClicked: function onRowDoubleClicked(_ref7) {
413
+ var data = _ref7.data;
244
414
  if (dialogIsRowSelectable && !dialogIsRowSelectable(data)) return;
245
415
  confirmRows([data]);
246
416
  },
247
417
  request: localData ? undefined : ( /*#__PURE__*/function () {
248
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params, _, record) {
418
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params, _, record) {
249
419
  var adapter, data;
250
420
  return _regeneratorRuntime().wrap(function _callee$(_context) {
251
421
  while (1) switch (_context.prev = _context.next) {
@@ -279,7 +449,7 @@ var DialogSelectInner = function DialogSelectInner(props) {
279
449
  }, _callee);
280
450
  }));
281
451
  return function (_x, _x2, _x3) {
282
- return _ref5.apply(this, arguments);
452
+ return _ref8.apply(this, arguments);
283
453
  };
284
454
  }()),
285
455
  columnDefs: columnDefs
@@ -333,6 +503,10 @@ var DialogSelect = (0, _formilyReact.observer)(function (props) {
333
503
  dialogIsRowSelectable = safeProps.dialogIsRowSelectable,
334
504
  dialogRenderer = safeProps.dialogRenderer,
335
505
  gridComponent = safeProps.gridComponent,
506
+ codeField = safeProps.codeField,
507
+ searchDebounce = safeProps.searchDebounce,
508
+ maxOptions = safeProps.maxOptions,
509
+ recentKey = safeProps.recentKey,
336
510
  selectProps = _objectWithoutProperties(safeProps, _excluded2);
337
511
  if (displayField === 'value') return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
338
512
  children: (0, _readOnlyFormatters.formatSelectDisplay)('value' in safeProps ? safeProps.value : safeProps.defaultValue, 'value') || '—'
@@ -47,3 +47,21 @@
47
47
  padding-inline-end: 38px;
48
48
  }
49
49
  }
50
+
51
+ // 候选面板挂在 body 下,不在 .qc-dialog-select 里,所以写在顶层:「编码 | 名称」两列,编码等宽数字(§6.12)。
52
+ .qc-dialog-select-option {
53
+ display: grid;
54
+ grid-template-columns: minmax(72px, max-content) 1fr;
55
+ column-gap: 12px;
56
+ align-items: center;
57
+
58
+ .qc-dialog-select-option-code {
59
+ font-variant-numeric: tabular-nums;
60
+ }
61
+
62
+ .qc-dialog-select-option-name {
63
+ overflow: hidden;
64
+ text-overflow: ellipsis;
65
+ white-space: nowrap;
66
+ }
67
+ }
@@ -1,4 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { LeaveGuardOptions } from './leaveGuard';
2
3
  import type { Form } from '@nokecy/formily-core';
3
4
  /**
4
5
  * 宿主自己的未保存登记(例如接入页签关闭、离开页面的统一拦截)。
@@ -19,13 +20,13 @@ export declare const formatValidationFeedback: (address?: string, title?: unknow
19
20
  * - 传入宿主的 `tracker` 时由它记录未保存状态(例如统一拦截关页签);不传时只在本页记录。
20
21
  * @author nokecy
21
22
  */
22
- export declare const useDocumentEditState: (tracker?: DocumentDirtyTracker) => {
23
+ export declare const useDocumentEditState: (tracker?: DocumentDirtyTracker, leaveOptions?: LeaveGuardOptions) => {
23
24
  dirty: boolean;
24
25
  markDirty: (form?: Form) => void;
25
26
  markClean: () => void;
26
27
  changed: import("react").RefObject<boolean>;
27
28
  markChanged: () => void;
28
- guardDiscard: (action: '返回' | '刷新' | '离开', proceed: () => void) => void;
29
+ guardDiscard: (_action: '返回' | '刷新' | '离开', proceed: () => void) => void;
29
30
  };
30
31
  /**
31
32
  * 单据动作忙态:同一时刻只执行一个动作,只有被点的按钮转圈,其余互斥动作禁用(§5.3)。
@@ -68,9 +69,11 @@ export declare const pickPrimaryAction: <K extends string>(candidates: [K, boole
68
69
  */
69
70
  export declare const validateBeforeConfirm: (validate?: () => Promise<unknown>, context?: {
70
71
  /** 携带实际表单以显示出错字段标题和明细行号。@author nokecy */
71
- form?: Pick<Form<any>, "queryFeedbacks" | "query"> | undefined;
72
+ form?: Pick<Form<any>, "query" | "queryFeedbacks"> | undefined;
72
73
  /** 校验失败后展开编辑入口或定位字段,不执行保存和提交。@author nokecy */
73
74
  onInvalid?: ((address?: string) => void) | undefined;
75
+ /** 校验失败后切到错误页签、展开折叠并聚焦首个错误字段(§6.4),默认 false,提示仍用本函数的文案。 */
76
+ locate?: boolean | undefined;
74
77
  /** 自定义提示文字;默认「第 N 行 · 字段原因」或「「字段」原因」。 */
75
78
  formatFeedback?: ((address: string | undefined, title: unknown, reason: string) => string) | undefined;
76
79
  } | undefined) => Promise<boolean>;
@@ -7,9 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.warnSavedButActionFailed = exports.validateBeforeConfirm = exports.useDocumentEditState = exports.useDocumentActions = exports.submitButtonLabel = exports.reloadAfterAction = exports.pickPrimaryAction = exports.formatValidationFeedback = exports.confirmDocumentAction = void 0;
8
8
  var _antd = require("antd");
9
9
  var _react = require("react");
10
+ var _leaveGuard = require("./leaveGuard");
11
+ var _formilyAntd = require("@nokecy/formily-antd");
10
12
  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; }
11
13
  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); } }
12
14
  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); }); }; }
15
+ 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; }
16
+ 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; }
17
+ 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; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
19
+ 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); }
13
20
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
21
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
22
  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); }
@@ -40,7 +47,7 @@ var formatValidationFeedback = exports.formatValidationFeedback = function forma
40
47
  * - 传入宿主的 `tracker` 时由它记录未保存状态(例如统一拦截关页签);不传时只在本页记录。
41
48
  * @author nokecy
42
49
  */
43
- var useDocumentEditState = exports.useDocumentEditState = function useDocumentEditState(tracker) {
50
+ var useDocumentEditState = exports.useDocumentEditState = function useDocumentEditState(tracker, leaveOptions) {
44
51
  var _useState = (0, _react.useState)(false),
45
52
  _useState2 = _slicedToArray(_useState, 2),
46
53
  localDirty = _useState2[0],
@@ -58,13 +65,18 @@ var useDocumentEditState = exports.useDocumentEditState = function useDocumentEd
58
65
  var markChanged = (0, _react.useCallback)(function () {
59
66
  changed.current = true;
60
67
  }, []);
61
- /** 返回、刷新等会丢弃录入的动作:有未保存修改先确认。 */
62
- var guardDiscard = function guardDiscard(action, proceed) {
68
+ // 传了宿主登记时,离开拦截由宿主统一负责,本页不再重复注册 beforeunload,除非显式开启。
69
+ (0, _leaveGuard.useLeaveGuard)(dirty, _objectSpread({
70
+ beforeUnload: !tracker
71
+ }, leaveOptions));
72
+ /**
73
+ * 返回、刷新等会丢弃录入的动作:有未保存修改先确认(文案「有未保存的修改,离开后将丢失」,
74
+ * 按钮「继续编辑 / 放弃修改」,§6.8)。`action` 仅为保持调用签名,不再进入文案。
75
+ */
76
+ var guardDiscard = function guardDiscard(_action, proceed) {
63
77
  if (!dirty) return proceed();
64
- _antd.Modal.confirm({
65
- title: "\u786E\u8BA4".concat(action),
66
- content: '未保存的修改将丢失。',
67
- onOk: proceed
78
+ void (0, _leaveGuard.confirmDiscardChanges)().then(function (ok) {
79
+ return ok && proceed();
68
80
  });
69
81
  };
70
82
  return {
@@ -247,8 +259,11 @@ var validateBeforeConfirm = exports.validateBeforeConfirm = /*#__PURE__*/functio
247
259
  validation = _context3.t0; // 阅读态字段可能不进入 Formily 的错误数组,仍保留业务校验给出的具体原因。@author nokecy
248
260
  _antd.message.error(typeof _reason === 'string' && _reason.trim() ? ((_context$formatFeedba = context === null || context === void 0 ? void 0 : context.formatFeedback) !== null && _context$formatFeedba !== void 0 ? _context$formatFeedba : formatValidationFeedback)(_address, field === null || field === void 0 ? void 0 : field.title, _reason) : (validation === null || validation === void 0 ? void 0 : validation.name) === 'ValidateError' && (_validation$message = validation.message) !== null && _validation$message !== void 0 && _validation$message.trim() ? validation.message : '表单校验未通过,请检查填写内容');
249
261
  context === null || context === void 0 || (_context$onInvalid = context.onInvalid) === null || _context$onInvalid === void 0 || _context$onInvalid.call(context, _address);
262
+ if (context !== null && context !== void 0 && context.locate && context.form) void (0, _formilyAntd.focusFirstError)(context.form, {
263
+ notify: false
264
+ });
250
265
  return _context3.abrupt("return", false);
251
- case 18:
266
+ case 19:
252
267
  case "end":
253
268
  return _context3.stop();
254
269
  }