@1money/component-ui 0.0.67 → 0.0.69

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 (163) hide show
  1. package/es/business/Filter/Account/Account.d.ts +2 -0
  2. package/es/business/Filter/Account/Account.js +289 -0
  3. package/es/business/Filter/Account/index.d.ts +2 -0
  4. package/es/business/Filter/Account/index.js +3 -0
  5. package/es/business/Filter/Account/interface.d.ts +83 -0
  6. package/es/business/Filter/Account/interface.js +2 -0
  7. package/es/business/Filter/Account/style/Account.css +84 -0
  8. package/es/business/Filter/Account/style/css.js +2 -0
  9. package/es/business/Filter/Account/style/index.d.ts +1 -0
  10. package/es/business/Filter/Account/style/index.js +2 -0
  11. package/es/business/Filter/Asset/Asset.d.ts +2 -0
  12. package/es/business/Filter/Asset/Asset.js +306 -0
  13. package/es/business/Filter/Asset/index.d.ts +2 -0
  14. package/es/business/Filter/Asset/index.js +3 -0
  15. package/es/business/Filter/Asset/interface.d.ts +90 -0
  16. package/es/business/Filter/Asset/interface.js +2 -0
  17. package/es/business/Filter/Asset/style/Asset.css +96 -0
  18. package/es/business/Filter/Asset/style/css.js +2 -0
  19. package/es/business/Filter/Asset/style/index.d.ts +1 -0
  20. package/es/business/Filter/Asset/style/index.js +2 -0
  21. package/es/business/Filter/DateRange/DateRange.d.ts +2 -0
  22. package/es/business/Filter/DateRange/DateRange.js +393 -0
  23. package/es/business/Filter/DateRange/index.d.ts +2 -0
  24. package/es/business/Filter/DateRange/index.js +3 -0
  25. package/es/business/Filter/DateRange/interface.d.ts +68 -0
  26. package/es/business/Filter/DateRange/interface.js +9 -0
  27. package/es/business/Filter/DateRange/style/DateRange.css +85 -0
  28. package/es/business/Filter/DateRange/style/css.js +2 -0
  29. package/es/business/Filter/DateRange/style/index.d.ts +1 -0
  30. package/es/business/Filter/DateRange/style/index.js +2 -0
  31. package/es/business/Filter/Option/Option.d.ts +2 -0
  32. package/es/business/Filter/Option/Option.js +264 -0
  33. package/es/business/Filter/Option/index.d.ts +2 -0
  34. package/es/business/Filter/Option/index.js +3 -0
  35. package/es/business/Filter/Option/interface.d.ts +81 -0
  36. package/es/business/Filter/Option/interface.js +2 -0
  37. package/es/business/Filter/Option/style/Option.css +72 -0
  38. package/es/business/Filter/Option/style/css.js +2 -0
  39. package/es/business/Filter/Option/style/index.d.ts +1 -0
  40. package/es/business/Filter/Option/style/index.js +2 -0
  41. package/es/business/Filter/index.d.ts +4 -0
  42. package/es/business/Filter/index.js +5 -0
  43. package/es/business/Select/Asset/AssetSelect.js +49 -27
  44. package/es/business/Select/Asset/interface.d.ts +16 -1
  45. package/es/business/Select/Asset/style/AssetSelect.css +5 -0
  46. package/es/business/Select/Network/NetworkSelect.js +79 -13
  47. package/es/business/Select/Network/interface.d.ts +43 -9
  48. package/es/business/Select/Network/interface.js +9 -2
  49. package/es/business/Select/Network/style/NetworkSelect.css +10 -0
  50. package/es/business/index.d.ts +1 -0
  51. package/es/business/index.js +2 -1
  52. package/es/components/ProForm/interface.d.ts +3 -1
  53. package/es/components/ProForm/layouts/QueryFilter.js +5 -1
  54. package/es/components/ProTable/ProTable.d.ts +5 -0
  55. package/es/components/ProTable/ProTable.js +309 -0
  56. package/es/components/ProTable/constants.d.ts +12 -0
  57. package/es/components/ProTable/constants.js +12 -0
  58. package/es/components/ProTable/core/genColumns.d.ts +10 -0
  59. package/es/components/ProTable/core/genColumns.js +81 -0
  60. package/es/components/ProTable/core/genSearchFields.d.ts +19 -0
  61. package/es/components/ProTable/core/genSearchFields.js +103 -0
  62. package/es/components/ProTable/core/useAwaitableReload.d.ts +17 -0
  63. package/es/components/ProTable/core/useAwaitableReload.js +39 -0
  64. package/es/components/ProTable/core/utils.d.ts +12 -0
  65. package/es/components/ProTable/core/utils.js +21 -0
  66. package/es/components/ProTable/index.d.ts +4 -0
  67. package/es/components/ProTable/index.js +5 -0
  68. package/es/components/ProTable/interface.d.ts +132 -0
  69. package/es/components/ProTable/interface.js +2 -0
  70. package/es/components/ProTable/style/ProTable.css +47 -0
  71. package/es/components/ProTable/style/css.js +6 -0
  72. package/es/components/ProTable/style/index.d.ts +5 -0
  73. package/es/components/ProTable/style/index.js +6 -0
  74. package/es/components/ProTable/useFetchData.d.ts +48 -0
  75. package/es/components/ProTable/useFetchData.js +270 -0
  76. package/es/components/Select/Select.js +3 -2
  77. package/es/components/Select/interface.d.ts +2 -0
  78. package/es/index.css +1 -1
  79. package/es/index.d.ts +2 -0
  80. package/es/index.js +2 -1
  81. package/lib/business/Filter/Account/Account.d.ts +2 -0
  82. package/lib/business/Filter/Account/Account.js +296 -0
  83. package/lib/business/Filter/Account/index.d.ts +2 -0
  84. package/lib/business/Filter/Account/index.js +28 -0
  85. package/lib/business/Filter/Account/interface.d.ts +83 -0
  86. package/lib/business/Filter/Account/interface.js +6 -0
  87. package/lib/business/Filter/Account/style/Account.css +84 -0
  88. package/lib/business/Filter/Account/style/css.js +4 -0
  89. package/lib/business/Filter/Account/style/index.d.ts +1 -0
  90. package/lib/business/Filter/Account/style/index.js +4 -0
  91. package/lib/business/Filter/Asset/Asset.d.ts +2 -0
  92. package/lib/business/Filter/Asset/Asset.js +313 -0
  93. package/lib/business/Filter/Asset/index.d.ts +2 -0
  94. package/lib/business/Filter/Asset/index.js +28 -0
  95. package/lib/business/Filter/Asset/interface.d.ts +90 -0
  96. package/lib/business/Filter/Asset/interface.js +6 -0
  97. package/lib/business/Filter/Asset/style/Asset.css +96 -0
  98. package/lib/business/Filter/Asset/style/css.js +4 -0
  99. package/lib/business/Filter/Asset/style/index.d.ts +1 -0
  100. package/lib/business/Filter/Asset/style/index.js +4 -0
  101. package/lib/business/Filter/DateRange/DateRange.d.ts +2 -0
  102. package/lib/business/Filter/DateRange/DateRange.js +400 -0
  103. package/lib/business/Filter/DateRange/index.d.ts +2 -0
  104. package/lib/business/Filter/DateRange/index.js +28 -0
  105. package/lib/business/Filter/DateRange/interface.d.ts +68 -0
  106. package/lib/business/Filter/DateRange/interface.js +15 -0
  107. package/lib/business/Filter/DateRange/style/DateRange.css +85 -0
  108. package/lib/business/Filter/DateRange/style/css.js +4 -0
  109. package/lib/business/Filter/DateRange/style/index.d.ts +1 -0
  110. package/lib/business/Filter/DateRange/style/index.js +4 -0
  111. package/lib/business/Filter/Option/Option.d.ts +2 -0
  112. package/lib/business/Filter/Option/Option.js +271 -0
  113. package/lib/business/Filter/Option/index.d.ts +2 -0
  114. package/lib/business/Filter/Option/index.js +28 -0
  115. package/lib/business/Filter/Option/interface.d.ts +81 -0
  116. package/lib/business/Filter/Option/interface.js +6 -0
  117. package/lib/business/Filter/Option/style/Option.css +72 -0
  118. package/lib/business/Filter/Option/style/css.js +4 -0
  119. package/lib/business/Filter/Option/style/index.d.ts +1 -0
  120. package/lib/business/Filter/Option/style/index.js +4 -0
  121. package/lib/business/Filter/index.d.ts +4 -0
  122. package/lib/business/Filter/index.js +50 -0
  123. package/lib/business/Select/Asset/AssetSelect.js +49 -27
  124. package/lib/business/Select/Asset/interface.d.ts +16 -1
  125. package/lib/business/Select/Asset/style/AssetSelect.css +5 -0
  126. package/lib/business/Select/Network/NetworkSelect.js +80 -13
  127. package/lib/business/Select/Network/interface.d.ts +43 -9
  128. package/lib/business/Select/Network/interface.js +10 -1
  129. package/lib/business/Select/Network/style/NetworkSelect.css +10 -0
  130. package/lib/business/index.d.ts +1 -0
  131. package/lib/business/index.js +12 -1
  132. package/lib/components/ProForm/interface.d.ts +3 -1
  133. package/lib/components/ProForm/layouts/QueryFilter.js +5 -1
  134. package/lib/components/ProTable/ProTable.d.ts +5 -0
  135. package/lib/components/ProTable/ProTable.js +316 -0
  136. package/lib/components/ProTable/constants.d.ts +12 -0
  137. package/lib/components/ProTable/constants.js +18 -0
  138. package/lib/components/ProTable/core/genColumns.d.ts +10 -0
  139. package/lib/components/ProTable/core/genColumns.js +87 -0
  140. package/lib/components/ProTable/core/genSearchFields.d.ts +19 -0
  141. package/lib/components/ProTable/core/genSearchFields.js +111 -0
  142. package/lib/components/ProTable/core/useAwaitableReload.d.ts +17 -0
  143. package/lib/components/ProTable/core/useAwaitableReload.js +46 -0
  144. package/lib/components/ProTable/core/utils.d.ts +12 -0
  145. package/lib/components/ProTable/core/utils.js +28 -0
  146. package/lib/components/ProTable/index.d.ts +4 -0
  147. package/lib/components/ProTable/index.js +33 -0
  148. package/lib/components/ProTable/interface.d.ts +132 -0
  149. package/lib/components/ProTable/interface.js +6 -0
  150. package/lib/components/ProTable/style/ProTable.css +47 -0
  151. package/lib/components/ProTable/style/css.js +8 -0
  152. package/lib/components/ProTable/style/index.d.ts +5 -0
  153. package/lib/components/ProTable/style/index.js +8 -0
  154. package/lib/components/ProTable/useFetchData.d.ts +48 -0
  155. package/lib/components/ProTable/useFetchData.js +277 -0
  156. package/lib/components/Select/Select.js +3 -2
  157. package/lib/components/Select/interface.d.ts +2 -0
  158. package/lib/index.css +1 -1
  159. package/lib/index.d.ts +2 -0
  160. package/lib/index.js +8 -1
  161. package/package.json +31 -1
  162. package/scripts/mcp-server/examples.generated.json +156 -0
  163. package/scripts/mcp-server/index.generated.json +741 -1
@@ -1,3 +1,4 @@
1
+ export * from './Filter';
1
2
  export * from './Dialog';
2
3
  export * from './Select';
3
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9idXNpbmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVU7QUFDeEIsY0FBYyxVQUFVIiwiZmlsZSI6ImJ1c2luZXNzL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9idXNpbmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVU7QUFDeEIsY0FBYyxVQUFVO0FBQ3hCLGNBQWMsVUFBVSIsImZpbGUiOiJidXNpbmVzcy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode, FC, ReactElement, MutableRefObject, CSSProperties, FormHTMLAttributes } from 'react';
2
2
  import type { FormInstance, FormSize, LabelAlign, ValidateStatus, ValidateTrigger, Rule } from './core/interface';
3
- import type { ButtonProps } from "../Button";
3
+ import type { ButtonProps, ButtonSize } from "../Button";
4
4
  import type { DrawerProps, DrawerPlacement } from "../Drawer";
5
5
  import type { GridRowProps, GridColSize } from "../Grid";
6
6
  import type { DialogProps } from "../Dialog";
@@ -271,6 +271,8 @@ export interface QueryFilterProps extends ProFormProps {
271
271
  searchConfig?: {
272
272
  searchText?: ReactNode;
273
273
  resetText?: ReactNode;
274
+ /** Size of the search / reset / collapse buttons. Defaults to the Button default. */
275
+ size?: ButtonSize;
274
276
  };
275
277
  syncToUrl?: boolean | ((values: Record<string, unknown>, type: 'get' | 'set') => Record<string, unknown>);
276
278
  }
@@ -112,6 +112,7 @@ var QueryFilterBase = function QueryFilterBase(props) {
112
112
  var hasMore = childArray.length > defaultColsNumber;
113
113
  var searchText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.searchText) !== null && _a !== void 0 ? _a : DEFAULT_TEXT.search;
114
114
  var resetText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.resetText) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.reset;
115
+ var buttonSize = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.size;
115
116
  var labelStyle = labelWidth !== undefined && labelWidth !== 'auto' ? {
116
117
  width: labelWidth
117
118
  } : undefined;
@@ -136,15 +137,18 @@ var QueryFilterBase = function QueryFilterBase(props) {
136
137
  children: [_jsx(Button, {
137
138
  type: "submit",
138
139
  color: "primary",
140
+ size: buttonSize,
139
141
  children: searchText
140
142
  }), _jsx(Button, {
141
143
  type: "button",
142
144
  color: "secondary",
145
+ size: buttonSize,
143
146
  onClick: handleReset,
144
147
  children: resetText
145
148
  }), hasMore && _jsx(Button, {
146
149
  type: "button",
147
150
  variant: "text",
151
+ size: buttonSize,
148
152
  onClick: handleCollapse,
149
153
  children: collapsed ? DEFAULT_TEXT.expand : DEFAULT_TEXT.collapse
150
154
  })]
@@ -155,4 +159,4 @@ var QueryFilterBase = function QueryFilterBase(props) {
155
159
  QueryFilterBase.displayName = 'QueryFilter';
156
160
  export var QueryFilter = /*#__PURE__*/memo(QueryFilterBase);
157
161
  export default QueryFilter;
158
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsImdldFVybFBhcmFtcyIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsInYiLCJrIiwic2V0VXJsUGFyYW1zIiwic3AiLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheSIsInVuZGVmaW5lZCIsInNldCIsIlN0cmluZyIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJzeW5jVG9VcmwiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9wcm9wcyRzdWJtaXR0ZXIiLCJzdWJtaXR0ZXIiLCJpbml0aWFsVmFsdWVzUHJvcCIsImluaXRpYWxWYWx1ZXMiLCJmb3JtUHJvcHMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJzZXRDb2xsYXBzZWQiLCJzeW5jSW5pdFJlZiIsImN1cnJlbnQiLCJ1cmxQYXJhbXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidmFsdWVzIiwidG9Xcml0ZSIsImhhbmRsZUZpbmlzaCIsImhhbmRsZVJlc2V0IiwiaGFuZGxlQ29sbGFwc2UiLCJuZXh0IiwiY2hpbGRBcnJheSIsImFyciIsIkNoaWxkcmVuIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsInB1c2giLCJ2aXNpYmxlQ2hpbGRyZW4iLCJzbGljZSIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwicmVzZXRUZXh0IiwicmVzZXQiLCJsYWJlbFN0eWxlIiwid2lkdGgiLCJjbGFzc05hbWUiLCJtYXAiLCJpbmRleCIsIkZyYWdtZW50Iiwic3R5bGUiLCJ0eXBlIiwiY29sb3IiLCJvbkNsaWNrIiwidmFyaWFudCIsImV4cGFuZCIsImNvbGxhcHNlIiwiZGlzcGxheU5hbWUiLCJRdWVyeUZpbHRlciJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNP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LElBQ052RixJQUFBLENBQUNVLE1BQU0sRUFBQTtVQUFDd0YsSUFBSSxFQUFDLFFBQVE7VUFBQ0csT0FBTyxFQUFDLE1BQU07VUFBQ0QsT0FBTyxFQUFFdkIsY0FBYztVQUFBbEIsUUFBQSxFQUN6RFgsU0FBUyxHQUFHbkMsWUFBWSxDQUFDeUYsTUFBTSxHQUFHekYsWUFBWSxDQUFDMEY7UUFBUSxDQUFBLENBRTNEO01BQUEsQ0FBQSxDQUNHO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FBQSxDQUNFO0FBRWQsQ0FBQztBQUVEOUQsZUFBZSxDQUFDK0QsV0FBVyxHQUFHLGFBQWE7QUFFM0MsT0FBTyxJQUFNQyxXQUFXLGdCQUFHdEcsSUFBSSxDQUFDc0MsZUFBZSxDQUFDO0FBRWhELGVBQWVnRSxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVVJMIHN5bmMgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXRVcmxQYXJhbXMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgIHBhcmFtc1trXSA9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIHNldFVybFBhcmFtcyhwYXJhbXMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBzcCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICAgIGlmICh2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSAnJykge1xuICAgICAgICAgICAgc3Auc2V0KGssIFN0cmluZyh2KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoID0gc3AudG9TdHJpbmcoKTtcbiAgICBjb25zdCB1cmwgPSBzZWFyY2ggPyBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9PyR7c2VhcmNofWAgOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCB1cmwpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBRdWVyeUZpbHRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBRdWVyeUZpbHRlckJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgZGVmYXVsdENvbGxhcHNlZCA9IHRydWUsIGNvbGxhcHNlZDogY29udHJvbGxlZENvbGxhcHNlZCwgb25Db2xsYXBzZSwgZGVmYXVsdENvbHNOdW1iZXIgPSAzLCBsYWJlbFdpZHRoLCBzcGxpdCA9IGZhbHNlLCBzZWFyY2hDb25maWcsIHN5bmNUb1VybCwgb25GaW5pc2gsIG9uUmVzZXQsIGNoaWxkcmVuLCBzdWJtaXR0ZXIgPSBmYWxzZSwgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlc1Byb3AgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImRlZmF1bHRDb2xsYXBzZWRcIiwgXCJjb2xsYXBzZWRcIiwgXCJvbkNvbGxhcHNlXCIsIFwiZGVmYXVsdENvbHNOdW1iZXJcIiwgXCJsYWJlbFdpZHRoXCIsIFwic3BsaXRcIiwgXCJzZWFyY2hDb25maWdcIiwgXCJzeW5jVG9VcmxcIiwgXCJvbkZpbmlzaFwiLCBcIm9uUmVzZXRcIiwgXCJjaGlsZHJlblwiLCBcInN1Ym1pdHRlclwiLCBcImluaXRpYWxWYWx1ZXNcIl0pO1xuICAgIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdENvbGxhcHNlZCwgY29udHJvbGxlZENvbGxhcHNlZCk7XG4gICAgLy8g4pSA4pSAIHN5bmNUb1VybDogbWVyZ2UgVVJMIHBhcmFtcyBpbnRvIGluaXRpYWwgdmFsdWVzIG9uIG1vdW50IOKUgOKUgFxuICAgIGNvbnN0IHN5bmNJbml0UmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsIHx8IHN5bmNJbml0UmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbFZhbHVlc1Byb3A7XG4gICAgICAgIHN5bmNJbml0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBnZXRVcmxQYXJhbXMoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXNQcm9wKSwgc3luY1RvVXJsKHVybFBhcmFtcywgJ2dldCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzUHJvcCksIHVybFBhcmFtcyk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZVN5bmNTZXQgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHRvV3JpdGUgPSB0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHN5bmNUb1VybCh2YWx1ZXMsICdzZXQnKVxuICAgICAgICAgICAgOiB2YWx1ZXM7XG4gICAgICAgIHNldFVybFBhcmFtcyh0b1dyaXRlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaGFuZGxlU3luY1NldCh2YWx1ZXMpO1xuICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBpZiAoc3luY1RvVXJsKVxuICAgICAgICAgICAgc2V0VXJsUGFyYW1zKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dCA9ICFjb2xsYXBzZWQ7XG4gICAgICAgIHNldENvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKG5leHQpO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sbGFwc2VkXG4gICAgICAgID8gY2hpbGRBcnJheS5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgOiBjaGlsZEFycmF5O1xuICAgIGNvbnN0IGhhc01vcmUgPSBjaGlsZEFycmF5Lmxlbmd0aCA+IGRlZmF1bHRDb2xzTnVtYmVyO1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoX2EgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaDtcbiAgICBjb25zdCByZXNldFRleHQgPSAoX2IgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQ7XG4gICAgY29uc3QgbGFiZWxTdHlsZSA9IGxhYmVsV2lkdGggIT09IHVuZGVmaW5lZCAmJiBsYWJlbFdpZHRoICE9PSAnYXV0bydcbiAgICAgICAgPyB7IHdpZHRoOiBsYWJlbFdpZHRoIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaDogaGFuZGxlRmluaXNoLCBvblJlc2V0OiBoYW5kbGVSZXNldCwgc3VibWl0dGVyOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbdmlzaWJsZUNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiAoX2pzeHMoUmVhY3QuRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtzcGxpdCAmJiBpbmRleCA+IDAgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3BsaXQnKSB9KSwgbGFiZWxTdHlsZSA/IChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGxhYmVsU3R5bGUsIGNoaWxkcmVuOiBjaGlsZCB9KSkgOiAoY2hpbGQpXSB9LCBpbmRleCkpKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2FjdGlvbnMnKSwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyB0eXBlOiBcInN1Ym1pdFwiLCBjb2xvcjogXCJwcmltYXJ5XCIsIGNoaWxkcmVuOiBzZWFyY2hUZXh0IH0pLCBfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgb25DbGljazogaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiByZXNldFRleHQgfSksIGhhc01vcmUgJiYgKF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIHZhcmlhbnQ6IFwidGV4dFwiLCBvbkNsaWNrOiBoYW5kbGVDb2xsYXBzZSwgY2hpbGRyZW46IGNvbGxhcHNlZCA/IERFRkFVTFRfVEVYVC5leHBhbmQgOiBERUZBVUxUX1RFWFQuY29sbGFwc2UgfSkpXSB9KV0gfSkgfSkpKTtcbn07XG5RdWVyeUZpbHRlckJhc2UuZGlzcGxheU5hbWUgPSAnUXVlcnlGaWx0ZXInO1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gbWVtbyhRdWVyeUZpbHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUXVlcnlGaWx0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
162
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsImdldFVybFBhcmFtcyIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsInYiLCJrIiwic2V0VXJsUGFyYW1zIiwic3AiLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheSIsInVuZGVmaW5lZCIsInNldCIsIlN0cmluZyIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJzeW5jVG9VcmwiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9wcm9wcyRzdWJtaXR0ZXIiLCJzdWJtaXR0ZXIiLCJpbml0aWFsVmFsdWVzUHJvcCIsImluaXRpYWxWYWx1ZXMiLCJmb3JtUHJvcHMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJzZXRDb2xsYXBzZWQiLCJzeW5jSW5pdFJlZiIsImN1cnJlbnQiLCJ1cmxQYXJhbXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidmFsdWVzIiwidG9Xcml0ZSIsImhhbmRsZUZpbmlzaCIsImhhbmRsZVJlc2V0IiwiaGFuZGxlQ29sbGFwc2UiLCJuZXh0IiwiY2hpbGRBcnJheSIsImFyciIsIkNoaWxkcmVuIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsInB1c2giLCJ2aXNpYmxlQ2hpbGRyZW4iLCJzbGljZSIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwicmVzZXRUZXh0IiwicmVzZXQiLCJidXR0b25TaXplIiwic2l6ZSIsImxhYmVsU3R5bGUiLCJ3aWR0aCIsImNsYXNzTmFtZSIsIm1hcCIsImluZGV4IiwiRnJhZ21lbnQiLCJzdHlsZSIsInR5cGUiLCJjb2xvciIsIm9uQ2xpY2siLCJ2YXJpYW50IiwiZXhwYW5kIiwiY29sbGFwc2UiLCJkaXNwbGF5TmFtZSIsIlF1ZXJ5RmlsdGVyIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxD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LENBQ0osRUFDVHhGLElBQUEsQ0FBQ1UsTUFBTSxFQUFBO1VBQUMwRixJQUFJLEVBQUMsUUFBUTtVQUFDQyxLQUFLLEVBQUMsV0FBVztVQUFDVCxJQUFJLEVBQUVELFVBQVU7VUFBRVcsT0FBTyxFQUFFMUIsV0FBVztVQUFBakIsUUFBQSxFQUMzRThCO1FBQVMsQ0FBQSxDQUNILEVBQ1JGLE9BQU8sSUFDTnZGLElBQUEsQ0FBQ1UsTUFBTSxFQUFBO1VBQUMwRixJQUFJLEVBQUMsUUFBUTtVQUFDRyxPQUFPLEVBQUMsTUFBTTtVQUFDWCxJQUFJLEVBQUVELFVBQVU7VUFBRVcsT0FBTyxFQUFFekIsY0FBYztVQUFBbEIsUUFBQSxFQUMzRVgsU0FBUyxHQUFHbkMsWUFBWSxDQUFDMkYsTUFBTSxHQUFHM0YsWUFBWSxDQUFDNEY7UUFBUSxDQUFBLENBRTNEO01BQUEsQ0FBQSxDQUNHO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FBQSxDQUNFO0FBRWQsQ0FBQztBQUVEaEUsZUFBZSxDQUFDaUUsV0FBVyxHQUFHLGFBQWE7QUFFM0MsT0FBTyxJQUFNQyxXQUFXLGdCQUFHeEcsSUFBSSxDQUFDc0MsZUFBZSxDQUFDO0FBRWhELGVBQWVrRSxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVVJMIHN5bmMgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXRVcmxQYXJhbXMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgIHBhcmFtc1trXSA9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIHNldFVybFBhcmFtcyhwYXJhbXMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBzcCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICAgIGlmICh2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSAnJykge1xuICAgICAgICAgICAgc3Auc2V0KGssIFN0cmluZyh2KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoID0gc3AudG9TdHJpbmcoKTtcbiAgICBjb25zdCB1cmwgPSBzZWFyY2ggPyBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9PyR7c2VhcmNofWAgOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCB1cmwpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBRdWVyeUZpbHRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBRdWVyeUZpbHRlckJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgZGVmYXVsdENvbGxhcHNlZCA9IHRydWUsIGNvbGxhcHNlZDogY29udHJvbGxlZENvbGxhcHNlZCwgb25Db2xsYXBzZSwgZGVmYXVsdENvbHNOdW1iZXIgPSAzLCBsYWJlbFdpZHRoLCBzcGxpdCA9IGZhbHNlLCBzZWFyY2hDb25maWcsIHN5bmNUb1VybCwgb25GaW5pc2gsIG9uUmVzZXQsIGNoaWxkcmVuLCBzdWJtaXR0ZXIgPSBmYWxzZSwgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlc1Byb3AgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImRlZmF1bHRDb2xsYXBzZWRcIiwgXCJjb2xsYXBzZWRcIiwgXCJvbkNvbGxhcHNlXCIsIFwiZGVmYXVsdENvbHNOdW1iZXJcIiwgXCJsYWJlbFdpZHRoXCIsIFwic3BsaXRcIiwgXCJzZWFyY2hDb25maWdcIiwgXCJzeW5jVG9VcmxcIiwgXCJvbkZpbmlzaFwiLCBcIm9uUmVzZXRcIiwgXCJjaGlsZHJlblwiLCBcInN1Ym1pdHRlclwiLCBcImluaXRpYWxWYWx1ZXNcIl0pO1xuICAgIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdENvbGxhcHNlZCwgY29udHJvbGxlZENvbGxhcHNlZCk7XG4gICAgLy8g4pSA4pSAIHN5bmNUb1VybDogbWVyZ2UgVVJMIHBhcmFtcyBpbnRvIGluaXRpYWwgdmFsdWVzIG9uIG1vdW50IOKUgOKUgFxuICAgIGNvbnN0IHN5bmNJbml0UmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsIHx8IHN5bmNJbml0UmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbFZhbHVlc1Byb3A7XG4gICAgICAgIHN5bmNJbml0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBnZXRVcmxQYXJhbXMoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXNQcm9wKSwgc3luY1RvVXJsKHVybFBhcmFtcywgJ2dldCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzUHJvcCksIHVybFBhcmFtcyk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZVN5bmNTZXQgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHRvV3JpdGUgPSB0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHN5bmNUb1VybCh2YWx1ZXMsICdzZXQnKVxuICAgICAgICAgICAgOiB2YWx1ZXM7XG4gICAgICAgIHNldFVybFBhcmFtcyh0b1dyaXRlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaGFuZGxlU3luY1NldCh2YWx1ZXMpO1xuICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBpZiAoc3luY1RvVXJsKVxuICAgICAgICAgICAgc2V0VXJsUGFyYW1zKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dCA9ICFjb2xsYXBzZWQ7XG4gICAgICAgIHNldENvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKG5leHQpO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sbGFwc2VkXG4gICAgICAgID8gY2hpbGRBcnJheS5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgOiBjaGlsZEFycmF5O1xuICAgIGNvbnN0IGhhc01vcmUgPSBjaGlsZEFycmF5Lmxlbmd0aCA+IGRlZmF1bHRDb2xzTnVtYmVyO1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoX2EgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaDtcbiAgICBjb25zdCByZXNldFRleHQgPSAoX2IgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQ7XG4gICAgY29uc3QgYnV0dG9uU2l6ZSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zaXplO1xuICAgIGNvbnN0IGxhYmVsU3R5bGUgPSBsYWJlbFdpZHRoICE9PSB1bmRlZmluZWQgJiYgbGFiZWxXaWR0aCAhPT0gJ2F1dG8nXG4gICAgICAgID8geyB3aWR0aDogbGFiZWxXaWR0aCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlcywgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgb25SZXNldDogaGFuZGxlUmVzZXQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Zpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4gKF9qc3hzKFJlYWN0LkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc3BsaXQgJiYgaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NwbGl0JykgfSksIGxhYmVsU3R5bGUgPyAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBsYWJlbFN0eWxlLCBjaGlsZHJlbjogY2hpbGQgfSkpIDogKGNoaWxkKV0gfSwgaW5kZXgpKSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBoYXNNb3JlICYmIChfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCB2YXJpYW50OiBcInRleHRcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgb25DbGljazogaGFuZGxlQ29sbGFwc2UsIGNoaWxkcmVuOiBjb2xsYXBzZWQgPyBERUZBVUxUX1RFWFQuZXhwYW5kIDogREVGQVVMVF9URVhULmNvbGxhcHNlIH0pKV0gfSldIH0pIH0pKSk7XG59O1xuUXVlcnlGaWx0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1F1ZXJ5RmlsdGVyJztcbmV4cG9ydCBjb25zdCBRdWVyeUZpbHRlciA9IG1lbW8oUXVlcnlGaWx0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFF1ZXJ5RmlsdGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,5 @@
1
+ import type { TableRecord } from "../Table";
2
+ import type { ProTableProps } from './interface';
3
+ declare function ProTableInner<T extends TableRecord = TableRecord, Params extends Record<string, unknown> = Record<string, unknown>>(props: ProTableProps<T, Params>): import("react/jsx-runtime").JSX.Element;
4
+ export declare const ProTable: typeof ProTableInner;
5
+ export default ProTable;
@@ -0,0 +1,309 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) {
6
+ return value instanceof P ? value : new P(function (resolve) {
7
+ resolve(value);
8
+ });
9
+ }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) {
12
+ try {
13
+ step(generator.next(value));
14
+ } catch (e) {
15
+ reject(e);
16
+ }
17
+ }
18
+ function rejected(value) {
19
+ try {
20
+ step(generator["throw"](value));
21
+ } catch (e) {
22
+ reject(e);
23
+ }
24
+ }
25
+ function step(result) {
26
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
27
+ }
28
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
29
+ });
30
+ };
31
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
32
+ import { memo, useImperativeHandle, useMemo, useRef } from 'react';
33
+ import { useMemoizedFn, useSafeState } from '@1money/hooks';
34
+ import { Pagination } from '../Pagination';
35
+ import { Table } from '../Table';
36
+ import { QueryFilter } from '../ProForm';
37
+ import { default as classnames } from '../../utils/classnames';
38
+ import { CSS_PREFIX, DEFAULT_CURRENT, DEFAULT_PAGE_SIZE, DEFAULT_TEXT } from './constants';
39
+ import { useFetchData } from './useFetchData';
40
+ import { genColumns } from './core/genColumns';
41
+ import { applySearchTransforms, genSearchFields } from './core/genSearchFields';
42
+ /** Read the current URL query string into search values, applying the `'get'` transform. */
43
+ function readUrlValues(syncToUrl) {
44
+ if (typeof window === 'undefined') return {};
45
+ var params = {};
46
+ new URLSearchParams(window.location.search).forEach(function (value, key) {
47
+ params[key] = value;
48
+ });
49
+ return typeof syncToUrl === 'function' ? syncToUrl(params, 'get') : params;
50
+ }
51
+ function ProTableInner(props) {
52
+ var _this = this;
53
+ var _a, _b;
54
+ var _props$prefixCls = props.prefixCls,
55
+ prefixCls = _props$prefixCls === void 0 ? CSS_PREFIX : _props$prefixCls,
56
+ className = props.className,
57
+ columns = props.columns,
58
+ request = props.request,
59
+ params = props.params,
60
+ controlledData = props.dataSource,
61
+ controlledLoading = props.loading,
62
+ defaultData = props.defaultData,
63
+ manualRequest = props.manualRequest,
64
+ debounceTime = props.debounceTime,
65
+ postData = props.postData,
66
+ polling = props.polling,
67
+ beforeSearchSubmit = props.beforeSearchSubmit,
68
+ columnEmptyText = props.columnEmptyText,
69
+ searchFormRender = props.searchFormRender,
70
+ _props$pagination = props.pagination,
71
+ pagination = _props$pagination === void 0 ? {} : _props$pagination,
72
+ _props$search = props.search,
73
+ search = _props$search === void 0 ? {} : _props$search,
74
+ rowSelection = props.rowSelection,
75
+ _props$size = props.size,
76
+ size = _props$size === void 0 ? 'small' : _props$size,
77
+ actionRef = props.actionRef,
78
+ onLoad = props.onLoad,
79
+ onLoadingChange = props.onLoadingChange,
80
+ onRequestError = props.onRequestError,
81
+ onChange = props.onChange,
82
+ rowKey = props.rowKey,
83
+ _props$variant = props.variant,
84
+ variant = _props$variant === void 0 ? 'stroke' : _props$variant,
85
+ bordered = props.bordered,
86
+ scroll = props.scroll,
87
+ sticky = props.sticky,
88
+ expandable = props.expandable,
89
+ empty = props.empty,
90
+ tableLayout = props.tableLayout,
91
+ rowClassName = props.rowClassName,
92
+ onRow = props.onRow,
93
+ summary = props.summary,
94
+ footer = props.footer;
95
+ var classes = classnames(prefixCls);
96
+ var tableColumns = useMemo(function () {
97
+ return genColumns(columns, columnEmptyText);
98
+ }, [columns, columnEmptyText]);
99
+ // ── search form (auto-generated from columns) ──
100
+ var searchCfg = search === false ? undefined : search;
101
+ var _useMemo = useMemo(function () {
102
+ return genSearchFields(columns);
103
+ }, [columns]),
104
+ searchFields = _useMemo.fields,
105
+ searchInitialValues = _useMemo.initialValues,
106
+ searchFieldNames = _useMemo.names;
107
+ var hasSearch = search !== false && searchFields.length > 0;
108
+ var syncToUrl = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.syncToUrl;
109
+ // Seed initial values (and the first request) from the URL when syncToUrl is on.
110
+ var mergedInitialValues = useMemo(function () {
111
+ return syncToUrl ? Object.assign(Object.assign({}, searchInitialValues), readUrlValues(syncToUrl)) : searchInitialValues;
112
+ },
113
+ // mount-only snapshot of the URL
114
+ [searchInitialValues]);
115
+ var _useSafeState = useSafeState(function () {
116
+ return mergedInitialValues;
117
+ }),
118
+ _useSafeState2 = _slicedToArray(_useSafeState, 2),
119
+ searchParams = _useSafeState2[0],
120
+ setSearchParams = _useSafeState2[1];
121
+ var formRef = useRef(undefined);
122
+ // ── server sort / filter ──
123
+ var _useSafeState3 = useSafeState({}),
124
+ _useSafeState4 = _slicedToArray(_useSafeState3, 2),
125
+ sort = _useSafeState4[0],
126
+ setSort = _useSafeState4[1];
127
+ var _useSafeState5 = useSafeState({}),
128
+ _useSafeState6 = _slicedToArray(_useSafeState5, 2),
129
+ filter = _useSafeState6[0],
130
+ setFilter = _useSafeState6[1];
131
+ // ── pagination config ──
132
+ var paginated = pagination !== false;
133
+ var defaultPageSize = pagination && pagination.defaultPageSize || pagination && pagination.pageSize || DEFAULT_PAGE_SIZE;
134
+ var defaultCurrent = pagination && pagination.defaultCurrent || pagination && pagination.current || DEFAULT_CURRENT;
135
+ var manual = controlledData !== undefined || !request;
136
+ var _useFetchData = useFetchData({
137
+ request: request,
138
+ manual: manual,
139
+ manualRequest: manualRequest,
140
+ debounceTime: debounceTime,
141
+ postData: postData,
142
+ polling: polling,
143
+ params: params,
144
+ defaultData: defaultData,
145
+ paginated: paginated,
146
+ defaultCurrent: defaultCurrent,
147
+ defaultPageSize: defaultPageSize,
148
+ searchParams: searchParams,
149
+ sort: sort,
150
+ filter: filter,
151
+ onLoad: onLoad,
152
+ onLoadingChange: onLoadingChange,
153
+ onRequestError: onRequestError
154
+ }),
155
+ fetchedData = _useFetchData.dataSource,
156
+ fetchLoading = _useFetchData.loading,
157
+ pageInfo = _useFetchData.pageInfo,
158
+ setPageInfo = _useFetchData.setPageInfo,
159
+ _reload = _useFetchData.reload,
160
+ _reset = _useFetchData.reset;
161
+ var dataSource = controlledData !== null && controlledData !== void 0 ? controlledData : fetchedData;
162
+ var loading = controlledLoading !== null && controlledLoading !== void 0 ? controlledLoading : manual ? false : fetchLoading;
163
+ // ── handlers ──
164
+ var handleSearchFinish = useMemoizedFn(function (values) {
165
+ var perColumn = applySearchTransforms(values, columns);
166
+ var finalParams = beforeSearchSubmit ? beforeSearchSubmit(perColumn) : perColumn;
167
+ setSearchParams(finalParams);
168
+ setPageInfo({
169
+ current: defaultCurrent
170
+ });
171
+ void _reload();
172
+ });
173
+ var handleSearchReset = useMemoizedFn(function () {
174
+ var _a;
175
+ // Use the array form (`resetFields(names)`) — the no-arg form re-invokes the
176
+ // form's own `onReset`, which loops back here and recurses infinitely.
177
+ (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.resetFields(searchFieldNames);
178
+ setSearchParams({});
179
+ setPageInfo({
180
+ current: defaultCurrent
181
+ });
182
+ void _reload();
183
+ });
184
+ var handleTableChange = useMemoizedFn(function (meta) {
185
+ if (meta.sorter) {
186
+ var _meta$sorter = meta.sorter,
187
+ columnKey = _meta$sorter.columnKey,
188
+ order = _meta$sorter.order;
189
+ setSort(columnKey && order ? _defineProperty({}, String(columnKey), order) : {});
190
+ }
191
+ if (meta.filters) setFilter(meta.filters);
192
+ if (meta.sorter || meta.filters) setPageInfo({
193
+ current: defaultCurrent
194
+ });
195
+ onChange === null || onChange === void 0 ? void 0 : onChange(meta);
196
+ });
197
+ var handlePageChange = useMemoizedFn(function (page, pageSize) {
198
+ setPageInfo({
199
+ current: page,
200
+ pageSize: pageSize
201
+ });
202
+ onChange === null || onChange === void 0 ? void 0 : onChange({
203
+ currentDataSource: dataSource,
204
+ action: 'paginate',
205
+ pagination: {
206
+ current: page,
207
+ pageSize: pageSize
208
+ }
209
+ });
210
+ });
211
+ // ── imperative handle ──
212
+ useImperativeHandle(actionRef, function () {
213
+ return {
214
+ reload: function reload() {
215
+ return _reload();
216
+ },
217
+ reloadAndRest: function reloadAndRest() {
218
+ return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
219
+ return _regeneratorRuntime.wrap(function (_context) {
220
+ while (1) switch (_context.prev = _context.next) {
221
+ case 0:
222
+ setPageInfo({
223
+ current: defaultCurrent
224
+ });
225
+ _context.next = 1;
226
+ return _reload();
227
+ case 1:
228
+ case "end":
229
+ return _context.stop();
230
+ }
231
+ }, _callee);
232
+ }));
233
+ },
234
+ reset: function reset() {
235
+ var _a;
236
+ (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.resetFields(searchFieldNames);
237
+ setSearchParams(searchInitialValues);
238
+ setSort({});
239
+ setFilter({});
240
+ _reset();
241
+ void _reload();
242
+ },
243
+ setPageInfo: setPageInfo
244
+ };
245
+ });
246
+ // ── search form node (only built when there are searchable columns) ──
247
+ var searchNode = null;
248
+ if (hasSearch) {
249
+ var searchForm = _jsx(QueryFilter, {
250
+ formRef: formRef,
251
+ size: "small",
252
+ initialValues: mergedInitialValues,
253
+ defaultCollapsed: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.defaultCollapsed,
254
+ defaultColsNumber: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.defaultColsNumber,
255
+ labelWidth: searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.labelWidth,
256
+ syncToUrl: syncToUrl,
257
+ searchConfig: {
258
+ searchText: (_a = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.searchText) !== null && _a !== void 0 ? _a : DEFAULT_TEXT.search,
259
+ resetText: (_b = searchCfg === null || searchCfg === void 0 ? void 0 : searchCfg.resetText) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.reset,
260
+ size: 'medium'
261
+ },
262
+ onFinish: handleSearchFinish,
263
+ onReset: handleSearchReset,
264
+ children: searchFields
265
+ });
266
+ searchNode = _jsx("div", {
267
+ className: classes('search'),
268
+ children: searchFormRender ? searchFormRender(searchForm) : searchForm
269
+ });
270
+ }
271
+ return _jsxs("div", {
272
+ className: classes(undefined, className),
273
+ children: [searchNode, _jsxs("div", {
274
+ className: classes('container'),
275
+ children: [_jsx(Table, {
276
+ rowKey: rowKey,
277
+ columns: tableColumns,
278
+ dataSource: dataSource,
279
+ loading: loading,
280
+ size: size,
281
+ pagination: false,
282
+ rowSelection: rowSelection,
283
+ onChange: handleTableChange,
284
+ variant: variant,
285
+ bordered: bordered,
286
+ scroll: scroll,
287
+ sticky: sticky,
288
+ expandable: expandable,
289
+ empty: empty,
290
+ tableLayout: tableLayout,
291
+ rowClassName: rowClassName,
292
+ onRow: onRow,
293
+ summary: summary,
294
+ footer: footer
295
+ }), paginated && _jsx("div", {
296
+ className: classes('pagination'),
297
+ children: _jsx(Pagination, {
298
+ total: pageInfo.total,
299
+ current: pageInfo.current,
300
+ pageSize: pageInfo.pageSize,
301
+ onChange: handlePageChange
302
+ })
303
+ })]
304
+ })]
305
+ });
306
+ }
307
+ export var ProTable = /*#__PURE__*/memo(ProTableInner);
308
+ export default ProTable;
309
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlTWVtb2l6ZWRGbiIsInVzZVNhZmVTdGF0ZSIsIlBhZ2luYXRpb24iLCJUYWJsZSIsIlF1ZXJ5RmlsdGVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJDU1NfUFJFRklYIiwiREVGQVVMVF9DVVJSRU5UIiwiREVGQVVMVF9QQUdFX1NJWkUiLCJERUZBVUxUX1RFWFQiLCJ1c2VGZXRjaERhdGEiLCJnZW5Db2x1bW5zIiwiYXBwbHlTZWFyY2hUcmFuc2Zvcm1zIiwiZ2VuU2VhcmNoRmllbGRzIiwicmVhZFVybFZhbHVlcyIsInN5bmNUb1VybCIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsImtleSIsIlByb1RhYmxlSW5uZXIiLCJwcm9wcyIsIl90aGlzIiwiX2EiLCJfYiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJjb2x1bW5zIiwicmVxdWVzdCIsImNvbnRyb2xsZWREYXRhIiwiZGF0YVNvdXJjZSIsImNvbnRyb2xsZWRMb2FkaW5nIiwibG9hZGluZyIsImRlZmF1bHREYXRhIiwibWFudWFsUmVxdWVzdCIsImRlYm91bmNlVGltZSIsInBvc3REYXRhIiwicG9sbGluZyIsImJlZm9yZVNlYXJjaFN1Ym1pdCIsImNvbHVtbkVtcHR5VGV4dCIsInNlYXJjaEZvcm1SZW5kZXIiLCJfcHJvcHMkcGFnaW5hdGlvbiIsInBhZ2luYXRpb24iLCJfcHJvcHMkc2VhcmNoIiwicm93U2VsZWN0aW9uIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiYWN0aW9uUmVmIiwib25Mb2FkIiwib25Mb2FkaW5nQ2hhbmdlIiwib25SZXF1ZXN0RXJyb3IiLCJvbkNoYW5nZSIsInJvd0tleSIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsImJvcmRlcmVkIiwic2Nyb2xsIiwic3RpY2t5IiwiZXhwYW5kYWJsZSIsImVtcHR5IiwidGFibGVMYXlvdXQiLCJyb3dDbGFzc05hbWUiLCJvblJvdyIsInN1bW1hcnkiLCJmb290ZXIiLCJjbGFzc2VzIiwidGFibGVDb2x1bW5zIiwic2VhcmNoQ2ZnIiwidW5kZWZpbmVkIiwiX3VzZU1lbW8iLCJzZWFyY2hGaWVsZHMiLCJmaWVsZHMiLCJzZWFyY2hJbml0aWFsVmFsdWVzIiwiaW5pdGlhbFZhbHVlcyIsInNlYXJjaEZpZWxkTmFtZXMiLCJuYW1lcyIsImhhc1NlYXJjaCIsImxlbmd0aCIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsImZvcm1SZWYiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic29ydCIsInNldFNvcnQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VTYWZlU3RhdGU2IiwiZmlsdGVyIiwic2V0RmlsdGVyIiwicGFnaW5hdGVkIiwiZGVmYXVsdFBhZ2VTaXplIiwicGFnZVNpemUiLCJkZWZhdWx0Q3VycmVudCIsImN1cnJlbnQiLCJtYW51YWwiLCJfdXNlRmV0Y2hEYXRhIiwiZmV0Y2hlZERhdGEiLCJmZXRjaExvYWRpbmciLCJwYWdlSW5mbyIsInNldFBhZ2VJbmZvIiwicmVsb2FkIiwicmVzZXQiLCJoYW5kbGVTZWFyY2hGaW5pc2giLCJ2YWx1ZXMiLCJwZXJDb2x1bW4iLCJmaW5hbFBhcmFtcyIsImhhbmRsZVNlYXJjaFJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVUYWJsZUNoYW5nZSIsIm1ldGEiLCJzb3J0ZXIiLCJfbWV0YSRzb3J0ZXIiLCJjb2x1bW5LZXkiLCJvcmRlciIsIl9kZWZpbmVQcm9wZXJ0eSIsIlN0cmluZyIsImZpbHRlcnMiLCJoYW5kbGVQYWdlQ2hhbmdlIiwicGFnZSIsImN1cnJlbnREYXRhU291cmNlIiwiYWN0aW9uIiwicmVsb2FkQW5kUmVzdCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdG9wIiwic2VhcmNoTm9kZSIsInNlYXJjaEZvcm0iLCJkZWZhdWx0Q29sbGFwc2VkIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwic2VhcmNoQ29uZmlnIiwic2VhcmNoVGV4dCIsInJlc2V0VGV4dCIsIm9uRmluaXNoIiwib25SZXNldCIsImNoaWxkcmVuIiwidG90YWwiLCJQcm9UYWJsZSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFN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LElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS3NDLFNBQVMsRUFBRXVDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFBQWdGLFFBQUEsRUFDbkM3SixJQUFBLENBQUNTLFVBQVUsRUFBQTtVQUNUcUosS0FBSyxFQUFFMUMsUUFBUSxDQUFDMEMsS0FBSztVQUNyQi9DLE9BQU8sRUFBRUssUUFBUSxDQUFDTCxPQUFPO1VBQ3pCRixRQUFRLEVBQUVPLFFBQVEsQ0FBQ1AsUUFBUTtVQUMzQjlDLFFBQVEsRUFBRXdFO1FBQWdCLENBQUE7TUFDMUIsQ0FBQSxDQUVMO0lBQUEsQ0FBQSxDQUNHO0VBQUEsQ0FBQSxDQUNGO0FBRVY7QUFFQSxPQUFPLElBQU13QixRQUFRLGdCQUFHNUosSUFBSSxDQUFDNEIsYUFBYSxDQUF5QjtBQUVuRSxlQUFlZ0ksUUFBUSIsImZpbGUiOiJjb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTWVtb2l6ZWRGbiwgdXNlU2FmZVN0YXRlIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vUGFnaW5hdGlvbic7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL1RhYmxlJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVyIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfQ1VSUkVOVCwgREVGQVVMVF9QQUdFX1NJWkUsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZUZldGNoRGF0YSB9IGZyb20gJy4vdXNlRmV0Y2hEYXRhJztcbmltcG9ydCB7IGdlbkNvbHVtbnMgfSBmcm9tICcuL2NvcmUvZ2VuQ29sdW1ucyc7XG5pbXBvcnQgeyBhcHBseVNlYXJjaFRyYW5zZm9ybXMsIGdlblNlYXJjaEZpZWxkcyB9IGZyb20gJy4vY29yZS9nZW5TZWFyY2hGaWVsZHMnO1xuLyoqIFJlYWQgdGhlIGN1cnJlbnQgVVJMIHF1ZXJ5IHN0cmluZyBpbnRvIHNlYXJjaCB2YWx1ZXMsIGFwcGx5aW5nIHRoZSBgJ2dldCdgIHRyYW5zZm9ybS4gKi9cbmZ1bmN0aW9uIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicgPyBzeW5jVG9VcmwocGFyYW1zLCAnZ2V0JykgOiBwYXJhbXM7XG59XG5mdW5jdGlvbiBQcm9UYWJsZUlubmVyKHByb3BzKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IHByZWZpeENscyA9IENTU19QUkVGSVgsIGNsYXNzTmFtZSwgY29sdW1ucywgcmVxdWVzdCwgcGFyYW1zLCBkYXRhU291cmNlOiBjb250cm9sbGVkRGF0YSwgbG9hZGluZzogY29udHJvbGxlZExvYWRpbmcsIGRlZmF1bHREYXRhLCBtYW51YWxSZXF1ZXN0LCBkZWJvdW5jZVRpbWUsIHBvc3REYXRhLCBwb2xsaW5nLCBiZWZvcmVTZWFyY2hTdWJtaXQsIGNvbHVtbkVtcHR5VGV4dCwgc2VhcmNoRm9ybVJlbmRlciwgcGFnaW5hdGlvbiA9IHt9LCBzZWFyY2ggPSB7fSwgcm93U2VsZWN0aW9uLCBzaXplID0gJ3NtYWxsJywgYWN0aW9uUmVmLCBvbkxvYWQsIG9uTG9hZGluZ0NoYW5nZSwgb25SZXF1ZXN0RXJyb3IsIG9uQ2hhbmdlLCByb3dLZXksIHZhcmlhbnQgPSAnc3Ryb2tlJywgYm9yZGVyZWQsIHNjcm9sbCwgc3RpY2t5LCBleHBhbmRhYmxlLCBlbXB0eSwgdGFibGVMYXlvdXQsIHJvd0NsYXNzTmFtZSwgb25Sb3csIHN1bW1hcnksIGZvb3RlciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgdGFibGVDb2x1bW5zID0gdXNlTWVtbygoKSA9PiBnZW5Db2x1bW5zKGNvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dCksIFtjb2x1bW5zLCBjb2x1bW5FbXB0eVRleHRdKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gKGF1dG8tZ2VuZXJhdGVkIGZyb20gY29sdW1ucykg4pSA4pSAXG4gICAgY29uc3Qgc2VhcmNoQ2ZnID0gc2VhcmNoID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHNlYXJjaDtcbiAgICBjb25zdCB7IGZpZWxkczogc2VhcmNoRmllbGRzLCBpbml0aWFsVmFsdWVzOiBzZWFyY2hJbml0aWFsVmFsdWVzLCBuYW1lczogc2VhcmNoRmllbGROYW1lcyB9ID0gdXNlTWVtbygoKSA9PiBnZW5TZWFyY2hGaWVsZHMoY29sdW1ucyksIFtjb2x1bW5zXSk7XG4gICAgY29uc3QgaGFzU2VhcmNoID0gc2VhcmNoICE9PSBmYWxzZSAmJiBzZWFyY2hGaWVsZHMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBzeW5jVG9VcmwgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuc3luY1RvVXJsO1xuICAgIC8vIFNlZWQgaW5pdGlhbCB2YWx1ZXMgKGFuZCB0aGUgZmlyc3QgcmVxdWVzdCkgZnJvbSB0aGUgVVJMIHdoZW4gc3luY1RvVXJsIGlzIG9uLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IChzeW5jVG9VcmwgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNlYXJjaEluaXRpYWxWYWx1ZXMpLCByZWFkVXJsVmFsdWVzKHN5bmNUb1VybCkpIDogc2VhcmNoSW5pdGlhbFZhbHVlcyksIFxuICAgIC8vIG1vdW50LW9ubHkgc25hcHNob3Qgb2YgdGhlIFVSTFxuICAgIFtzZWFyY2hJbml0aWFsVmFsdWVzXSk7XG4gICAgY29uc3QgW3NlYXJjaFBhcmFtcywgc2V0U2VhcmNoUGFyYW1zXSA9IHVzZVNhZmVTdGF0ZSgoKSA9PiBtZXJnZWRJbml0aWFsVmFsdWVzKTtcbiAgICBjb25zdCBmb3JtUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgLy8g4pSA4pSAIHNlcnZlciBzb3J0IC8gZmlsdGVyIOKUgOKUgFxuICAgIGNvbnN0IFtzb3J0LCBzZXRTb3J0XSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgY29uc3QgW2ZpbHRlciwgc2V0RmlsdGVyXSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgLy8g4pSA4pSAIHBhZ2luYXRpb24gY29uZmlnIOKUgOKUgFxuICAgIGNvbnN0IHBhZ2luYXRlZCA9IHBhZ2luYXRpb24gIT09IGZhbHNlO1xuICAgIGNvbnN0IGRlZmF1bHRQYWdlU2l6ZSA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdFBhZ2VTaXplKSB8fCAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLnBhZ2VTaXplKSB8fCBERUZBVUxUX1BBR0VfU0laRTtcbiAgICBjb25zdCBkZWZhdWx0Q3VycmVudCA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdEN1cnJlbnQpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uY3VycmVudCkgfHwgREVGQVVMVF9DVVJSRU5UO1xuICAgIGNvbnN0IG1hbnVhbCA9IGNvbnRyb2xsZWREYXRhICE9PSB1bmRlZmluZWQgfHwgIXJlcXVlc3Q7XG4gICAgY29uc3QgeyBkYXRhU291cmNlOiBmZXRjaGVkRGF0YSwgbG9hZGluZzogZmV0Y2hMb2FkaW5nLCBwYWdlSW5mbywgc2V0UGFnZUluZm8sIHJlbG9hZCwgcmVzZXQgfSA9IHVzZUZldGNoRGF0YSh7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIG1hbnVhbCxcbiAgICAgICAgbWFudWFsUmVxdWVzdCxcbiAgICAgICAgZGVib3VuY2VUaW1lLFxuICAgICAgICBwb3N0RGF0YSxcbiAgICAgICAgcG9sbGluZyxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBkZWZhdWx0RGF0YSxcbiAgICAgICAgcGFnaW5hdGVkLFxuICAgICAgICBkZWZhdWx0Q3VycmVudCxcbiAgICAgICAgZGVmYXVsdFBhZ2VTaXplLFxuICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgIHNvcnQsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICAgb25Mb2FkLFxuICAgICAgICBvbkxvYWRpbmdDaGFuZ2UsXG4gICAgICAgIG9uUmVxdWVzdEVycm9yLFxuICAgIH0pO1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBjb250cm9sbGVkRGF0YSAhPT0gbnVsbCAmJiBjb250cm9sbGVkRGF0YSAhPT0gdm9pZCAwID8gY29udHJvbGxlZERhdGEgOiBmZXRjaGVkRGF0YTtcbiAgICBjb25zdCBsb2FkaW5nID0gY29udHJvbGxlZExvYWRpbmcgIT09IG51bGwgJiYgY29udHJvbGxlZExvYWRpbmcgIT09IHZvaWQgMCA/IGNvbnRyb2xsZWRMb2FkaW5nIDogKG1hbnVhbCA/IGZhbHNlIDogZmV0Y2hMb2FkaW5nKTtcbiAgICAvLyDilIDilIAgaGFuZGxlcnMg4pSA4pSAXG4gICAgY29uc3QgaGFuZGxlU2VhcmNoRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlckNvbHVtbiA9IGFwcGx5U2VhcmNoVHJhbnNmb3Jtcyh2YWx1ZXMsIGNvbHVtbnMpO1xuICAgICAgICBjb25zdCBmaW5hbFBhcmFtcyA9IGJlZm9yZVNlYXJjaFN1Ym1pdCA/IGJlZm9yZVNlYXJjaFN1Ym1pdChwZXJDb2x1bW4pIDogcGVyQ29sdW1uO1xuICAgICAgICBzZXRTZWFyY2hQYXJhbXMoZmluYWxQYXJhbXMpO1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaFJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgLy8gVXNlIHRoZSBhcnJheSBmb3JtIChgcmVzZXRGaWVsZHMobmFtZXMpYCkg4oCUIHRoZSBuby1hcmcgZm9ybSByZS1pbnZva2VzIHRoZVxuICAgICAgICAvLyBmb3JtJ3Mgb3duIGBvblJlc2V0YCwgd2hpY2ggbG9vcHMgYmFjayBoZXJlIGFuZCByZWN1cnNlcyBpbmZpbml0ZWx5LlxuICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHt9KTtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IHVzZU1lbW9pemVkRm4oKG1ldGEpID0+IHtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbHVtbktleSwgb3JkZXIgfSA9IG1ldGEuc29ydGVyO1xuICAgICAgICAgICAgc2V0U29ydChjb2x1bW5LZXkgJiYgb3JkZXIgPyB7IFtTdHJpbmcoY29sdW1uS2V5KV06IG9yZGVyIH0gOiB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldEZpbHRlcihtZXRhLmZpbHRlcnMpO1xuICAgICAgICBpZiAobWV0YS5zb3J0ZXIgfHwgbWV0YS5maWx0ZXJzKVxuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG1ldGEpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVBhZ2VDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChwYWdlLCBwYWdlU2l6ZSkgPT4ge1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0pO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2Uoe1xuICAgICAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBhY3Rpb246ICdwYWdpbmF0ZScsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBpbXBlcmF0aXZlIGhhbmRsZSDilIDilIBcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGFjdGlvblJlZiwgKCkgPT4gKHtcbiAgICAgICAgcmVsb2FkOiAoKSA9PiByZWxvYWQoKSxcbiAgICAgICAgcmVsb2FkQW5kUmVzdDogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgICAgIHlpZWxkIHJlbG9hZCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGZvcm1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc2V0RmllbGRzKHNlYXJjaEZpZWxkTmFtZXMpO1xuICAgICAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHNlYXJjaEluaXRpYWxWYWx1ZXMpO1xuICAgICAgICAgICAgc2V0U29ydCh7fSk7XG4gICAgICAgICAgICBzZXRGaWx0ZXIoe30pO1xuICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldFBhZ2VJbmZvLFxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gbm9kZSAob25seSBidWlsdCB3aGVuIHRoZXJlIGFyZSBzZWFyY2hhYmxlIGNvbHVtbnMpIOKUgOKUgFxuICAgIGxldCBzZWFyY2hOb2RlID0gbnVsbDtcbiAgICBpZiAoaGFzU2VhcmNoKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEZvcm0gPSAoX2pzeChRdWVyeUZpbHRlciwgeyBmb3JtUmVmOiBmb3JtUmVmLCBzaXplOiBcInNtYWxsXCIsIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGRlZmF1bHRDb2xsYXBzZWQ6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sbGFwc2VkLCBkZWZhdWx0Q29sc051bWJlcjogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmRlZmF1bHRDb2xzTnVtYmVyLCBsYWJlbFdpZHRoOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcubGFiZWxXaWR0aCwgc3luY1RvVXJsOiBzeW5jVG9VcmwsIHNlYXJjaENvbmZpZzoge1xuICAgICAgICAgICAgICAgIHNlYXJjaFRleHQ6IChfYSA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoLFxuICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogKF9iID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnJlc2V0VGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULnJlc2V0LFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgfSwgb25GaW5pc2g6IGhhbmRsZVNlYXJjaEZpbmlzaCwgb25SZXNldDogaGFuZGxlU2VhcmNoUmVzZXQsIGNoaWxkcmVuOiBzZWFyY2hGaWVsZHMgfSkpO1xuICAgICAgICBzZWFyY2hOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlYXJjaCcpLCBjaGlsZHJlbjogc2VhcmNoRm9ybVJlbmRlciA/IHNlYXJjaEZvcm1SZW5kZXIoc2VhcmNoRm9ybSkgOiBzZWFyY2hGb3JtIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbc2VhcmNoTm9kZSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRhaW5lcicpLCBjaGlsZHJlbjogW19qc3goVGFibGUsIHsgcm93S2V5OiByb3dLZXksIGNvbHVtbnM6IHRhYmxlQ29sdW1ucywgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSwgbG9hZGluZzogbG9hZGluZywgc2l6ZTogc2l6ZSwgcGFnaW5hdGlvbjogZmFsc2UsIHJvd1NlbGVjdGlvbjogcm93U2VsZWN0aW9uLCBvbkNoYW5nZTogaGFuZGxlVGFibGVDaGFuZ2UsIHZhcmlhbnQ6IHZhcmlhbnQsIGJvcmRlcmVkOiBib3JkZXJlZCwgc2Nyb2xsOiBzY3JvbGwsIHN0aWNreTogc3RpY2t5LCBleHBhbmRhYmxlOiBleHBhbmRhYmxlLCBlbXB0eTogZW1wdHksIHRhYmxlTGF5b3V0OiB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsIG9uUm93OiBvblJvdywgc3VtbWFyeTogc3VtbWFyeSwgZm9vdGVyOiBmb290ZXIgfSksIHBhZ2luYXRlZCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFnaW5hdGlvbicpLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwYWdlSW5mby50b3RhbCwgY3VycmVudDogcGFnZUluZm8uY3VycmVudCwgcGFnZVNpemU6IHBhZ2VJbmZvLnBhZ2VTaXplLCBvbkNoYW5nZTogaGFuZGxlUGFnZUNoYW5nZSB9KSB9KSldIH0pXSB9KSk7XG59XG5leHBvcnQgY29uc3QgUHJvVGFibGUgPSBtZW1vKFByb1RhYmxlSW5uZXIpO1xuZXhwb3J0IGRlZmF1bHQgUHJvVGFibGU7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,12 @@
1
+ /** BEM class prefix (root class becomes `om-component-ui-pro-table`). */
2
+ export declare const CSS_PREFIX = "pro-table";
3
+ /** Lightweight valueType set supported in v1 — drives cell render + search field. */
4
+ export declare const VALUE_TYPES: readonly ["text", "select", "date", "dateRange", "digit"];
5
+ export type ProTableValueType = (typeof VALUE_TYPES)[number];
6
+ export declare const DEFAULT_PAGE_SIZE = 10;
7
+ export declare const DEFAULT_CURRENT = 1;
8
+ /** User-facing strings — no magic strings in the component code. */
9
+ export declare const DEFAULT_TEXT: {
10
+ readonly search: "Search";
11
+ readonly reset: "Reset";
12
+ };
@@ -0,0 +1,12 @@
1
+ /** BEM class prefix (root class becomes `om-component-ui-pro-table`). */
2
+ export var CSS_PREFIX = 'pro-table';
3
+ /** Lightweight valueType set supported in v1 — drives cell render + search field. */
4
+ export var VALUE_TYPES = ['text', 'select', 'date', 'dateRange', 'digit'];
5
+ export var DEFAULT_PAGE_SIZE = 10;
6
+ export var DEFAULT_CURRENT = 1;
7
+ /** User-facing strings — no magic strings in the component code. */
8
+ export var DEFAULT_TEXT = {
9
+ search: 'Search',
10
+ reset: 'Reset'
11
+ };
12
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvVGFibGUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9UYWJsZS9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiQ1NTX1BSRUZJWCIsIlZBTFVFX1RZUEVTIiwiREVGQVVMVF9QQUdFX1NJWkUiLCJERUZBVUxUX0NVUlJFTlQiLCJERUZBVUxUX1RFWFQiLCJzZWFyY2giLCJyZXNldCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxPQUFPLElBQU1BLFVBQVUsR0FBRyxXQUFXO0FBRXJDO0FBQ0EsT0FBTyxJQUFNQyxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFVO0FBR3BGLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsRUFBRTtBQUNuQyxPQUFPLElBQU1DLGVBQWUsR0FBRyxDQUFDO0FBRWhDO0FBQ0EsT0FBTyxJQUFNQyxZQUFZLEdBQUc7RUFDMUJDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxLQUFLLEVBQUU7QUNIVCxDRElVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvVGFibGUvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIvKiogQkVNIGNsYXNzIHByZWZpeCAocm9vdCBjbGFzcyBiZWNvbWVzIGBvbS1jb21wb25lbnQtdWktcHJvLXRhYmxlYCkuICovXG5leHBvcnQgY29uc3QgQ1NTX1BSRUZJWCA9ICdwcm8tdGFibGUnO1xuLyoqIExpZ2h0d2VpZ2h0IHZhbHVlVHlwZSBzZXQgc3VwcG9ydGVkIGluIHYxIOKAlCBkcml2ZXMgY2VsbCByZW5kZXIgKyBzZWFyY2ggZmllbGQuICovXG5leHBvcnQgY29uc3QgVkFMVUVfVFlQRVMgPSBbJ3RleHQnLCAnc2VsZWN0JywgJ2RhdGUnLCAnZGF0ZVJhbmdlJywgJ2RpZ2l0J107XG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1NJWkUgPSAxMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NVUlJFTlQgPSAxO1xuLyoqIFVzZXItZmFjaW5nIHN0cmluZ3Mg4oCUIG5vIG1hZ2ljIHN0cmluZ3MgaW4gdGhlIGNvbXBvbmVudCBjb2RlLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVCA9IHtcbiAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgIHJlc2V0OiAnUmVzZXQnLFxufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TableColumn, TableRecord } from "../../Table";
3
+ import type { ProColumns } from '../interface';
4
+ /**
5
+ * Convert Pro columns into base Table columns: drop `hideInTable` columns, strip
6
+ * Pro-only fields, and — for any column without an explicit `render` — attach a
7
+ * value-type-driven cell renderer that falls back to `emptyText` for empty
8
+ * values. An explicit `render` always wins and is left untouched.
9
+ */
10
+ export declare function genColumns<T extends TableRecord>(columns: ProColumns<T>[], emptyText?: ReactNode): TableColumn<T>[];