@1money/component-ui 0.0.46 → 0.0.47

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 (53) hide show
  1. package/es/components/Table/Table.d.ts +2 -2
  2. package/es/components/Table/Table.js +25 -148
  3. package/es/components/Table/VirtualTable.d.ts +2 -2
  4. package/es/components/Table/VirtualTable.js +30 -143
  5. package/es/components/Table/core/useTableColumns.d.ts +21 -7
  6. package/es/components/Table/core/useTableColumns.js +65 -13
  7. package/es/components/Table/core/useTableDataPipeline.d.ts +13 -6
  8. package/es/components/Table/core/useTableDataPipeline.js +193 -27
  9. package/es/components/Table/core/useTableExpand.d.ts +2 -2
  10. package/es/components/Table/core/useTableSelection.d.ts +3 -5
  11. package/es/components/Table/core/useTableSelection.js +1 -1
  12. package/es/components/Table/core/useTableSetup.d.ts +42 -0
  13. package/es/components/Table/core/useTableSetup.js +175 -0
  14. package/es/components/Table/features/ExpandTrigger.js +2 -1
  15. package/es/components/Table/features/FilterTrigger.d.ts +9 -0
  16. package/es/components/Table/features/FilterTrigger.js +157 -0
  17. package/es/components/Table/features/SelectionColumn.d.ts +3 -2
  18. package/es/components/Table/features/SelectionColumn.js +19 -6
  19. package/es/components/Table/interface.d.ts +102 -21
  20. package/es/components/Table/renderers/BodyCell.d.ts +4 -4
  21. package/es/components/Table/renderers/BodyCell.js +1 -1
  22. package/es/components/Table/renderers/HeaderCell.d.ts +8 -4
  23. package/es/components/Table/renderers/HeaderCell.js +13 -3
  24. package/es/components/Table/style/Table.css +1 -1
  25. package/es/index.css +1 -1
  26. package/lib/components/Table/Table.d.ts +2 -2
  27. package/lib/components/Table/Table.js +24 -150
  28. package/lib/components/Table/VirtualTable.d.ts +2 -2
  29. package/lib/components/Table/VirtualTable.js +28 -144
  30. package/lib/components/Table/core/useTableColumns.d.ts +21 -7
  31. package/lib/components/Table/core/useTableColumns.js +65 -13
  32. package/lib/components/Table/core/useTableDataPipeline.d.ts +13 -6
  33. package/lib/components/Table/core/useTableDataPipeline.js +192 -26
  34. package/lib/components/Table/core/useTableExpand.d.ts +2 -2
  35. package/lib/components/Table/core/useTableSelection.d.ts +3 -5
  36. package/lib/components/Table/core/useTableSelection.js +1 -1
  37. package/lib/components/Table/core/useTableSetup.d.ts +42 -0
  38. package/lib/components/Table/core/useTableSetup.js +184 -0
  39. package/lib/components/Table/features/ExpandTrigger.js +2 -1
  40. package/lib/components/Table/features/FilterTrigger.d.ts +9 -0
  41. package/lib/components/Table/features/FilterTrigger.js +164 -0
  42. package/lib/components/Table/features/SelectionColumn.d.ts +3 -2
  43. package/lib/components/Table/features/SelectionColumn.js +19 -6
  44. package/lib/components/Table/interface.d.ts +102 -21
  45. package/lib/components/Table/renderers/BodyCell.d.ts +4 -4
  46. package/lib/components/Table/renderers/BodyCell.js +1 -1
  47. package/lib/components/Table/renderers/HeaderCell.d.ts +8 -4
  48. package/lib/components/Table/renderers/HeaderCell.js +13 -3
  49. package/lib/components/Table/style/Table.css +1 -1
  50. package/lib/index.css +1 -1
  51. package/package.json +1 -1
  52. package/scripts/mcp-server/examples.generated.json +120 -0
  53. package/scripts/mcp-server/index.generated.json +336 -14
@@ -1,7 +1,7 @@
1
1
  import { type ReactElement, type Ref } from 'react';
2
2
  import './style';
3
- import type { TableProps, TableRef } from './interface';
4
- type ForwardGenericTable = (<T extends Record<string, any> = Record<string, any>>(props: TableProps<T> & {
3
+ import type { TableProps, TableRecord, TableRef } from './interface';
4
+ type ForwardGenericTable = (<T extends TableRecord = TableRecord>(props: TableProps<T> & {
5
5
  ref?: Ref<TableRef>;
6
6
  }) => ReactElement | null) & {
7
7
  displayName?: string;
@@ -1,173 +1,47 @@
1
1
  "use strict";
2
2
 
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports["default"] = exports.Table = void 0;
8
7
  var _jsxRuntime = require("react/jsx-runtime");
9
8
  var _react = require("react");
10
- var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
11
- var _hooks = require("@1money/hooks");
12
- var _Pagination = require("../Pagination");
13
9
  var _Spinner = require("../Spinner");
14
10
  require("./style");
15
11
  var _internal = require("./internal");
16
- var _constants = require("./constants");
17
- var _useTableDataPipeline = require("./core/useTableDataPipeline");
18
- var _useTableSelection = require("./core/useTableSelection");
19
- var _useTableExpand = require("./core/useTableExpand");
20
- var _useTableColumns = require("./core/useTableColumns");
21
- var _ExpandedRowContainer = require("./renderers/ExpandedRowContainer");
22
- var _EmptyState = require("./renderers/EmptyState");
23
- 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); }
24
- 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 && {}.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; }
25
- var __rest = void 0 && (void 0).__rest || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
28
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
29
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
30
- }
31
- return t;
32
- };
12
+ var _useTableSetup = require("./core/useTableSetup");
33
13
  var TableInner = function TableInner(props, ref) {
34
- var _props$className = props.className,
35
- className = _props$className === void 0 ? '' : _props$className,
36
- _props$prefixCls = props.prefixCls,
37
- prefixCls = _props$prefixCls === void 0 ? _constants.TABLE_DEFAULT_PREFIX : _props$prefixCls,
38
- _props$size = props.size,
39
- size = _props$size === void 0 ? _constants.TABLE_DEFAULT_SIZE : _props$size,
40
- _props$variant = props.variant,
41
- variant = _props$variant === void 0 ? _constants.TABLE_DEFAULT_VARIANT : _props$variant,
42
- columns = props.columns,
43
- dataSource = props.dataSource,
44
- rowKey = props.rowKey,
45
- empty = props.empty,
46
- bordered = props.bordered,
47
- pagination = props.pagination,
48
- rowSelection = props.rowSelection,
49
- loading = props.loading,
50
- onChange = props.onChange,
51
- childrenColumnName = props.childrenColumnName,
52
- indentSize = props.indentSize,
53
- expandable = props.expandable,
54
- onRow = props.onRow,
55
- rowClassName = props.rowClassName,
56
- summary = props.summary,
57
- showHeader = props.showHeader,
58
- tableLayout = props.tableLayout,
59
- components = props.components,
60
- direction = props.direction,
61
- rowHoverable = props.rowHoverable,
62
- rest = __rest(props, ["className", "prefixCls", "size", "variant", "columns", "dataSource", "rowKey", "empty", "bordered", "pagination", "rowSelection", "loading", "onChange", "childrenColumnName", "indentSize", "expandable", "onRow", "rowClassName", "summary", "showHeader", "tableLayout", "components", "direction", "rowHoverable"]);
63
- var cls = (0, _classnames["default"])(_constants.TABLE_BLOCK);
64
- var getRowKey = (0, _hooks.useMemoizedFn)(function (record, index) {
65
- var _a;
66
- return typeof rowKey === 'function' ? rowKey(record) : (_a = record[rowKey !== null && rowKey !== void 0 ? rowKey : 'key']) !== null && _a !== void 0 ? _a : index;
67
- });
68
- var pipeline = (0, _useTableDataPipeline.useTableDataPipeline)({
69
- columns: columns,
70
- dataSource: dataSource,
71
- pagination: pagination,
72
- onChange: onChange
73
- });
74
- var selection = (0, _useTableSelection.useTableSelection)({
75
- rowSelection: rowSelection,
76
- dataSource: dataSource,
77
- currentDataSource: pipeline.currentDataSource,
78
- getRowKey: getRowKey
79
- });
80
- var expand = (0, _useTableExpand.useTableExpand)({
81
- expandable: expandable
82
- });
83
- var renderedColumns = (0, _useTableColumns.useTableColumns)({
84
- columns: columns,
85
- size: size,
86
- variant: variant,
87
- expandable: expandable,
88
- mergedExpandedRowKeys: expand.mergedExpandedRowKeys,
89
- triggerExpand: expand.triggerExpand,
90
- rowSelection: rowSelection,
91
- mergedSelectedRowKeys: selection.mergedSelectedRowKeys,
92
- checkboxPropsMap: selection.checkboxPropsMap,
93
- isAllSelected: selection.isAllSelected,
94
- isIndeterminate: selection.isIndeterminate,
95
- triggerSelection: selection.triggerSelection,
96
- triggerSelectAll: selection.triggerSelectAll,
97
- sorter: pipeline.sorter,
98
- setSorter: pipeline.setSorter,
99
- getRowKey: getRowKey
100
- });
101
- var resolvedPagination = pipeline.pagination === false ? {
102
- current: 1,
103
- pageSize: 10
104
- } : pipeline.pagination;
105
- var wrappedExpandedRowRender = (0, _hooks.useMemoizedFn)(function (record, index, indent, expanded) {
106
- var _a;
107
- return (0, _jsxRuntime.jsx)(_ExpandedRowContainer.ExpandedRowContainer, {
108
- children: (_a = expandable === null || expandable === void 0 ? void 0 : expandable.expandedRowRender) === null || _a === void 0 ? void 0 : _a.call(expandable, record, index, indent, expanded)
109
- });
110
- });
111
- // Wire kernel's onExpand (triggered by expandRowByClick) to our state
112
- var kernelOnExpand = (0, _hooks.useMemoizedFn)(function (expanded, record) {
113
- var recordKey = getRowKey(record, dataSource.indexOf(record));
114
- expand.onKernelExpand(expanded, record, recordKey);
115
- });
116
- var mergedExpandable = (0, _react.useMemo)(function () {
117
- return expandable ? Object.assign(Object.assign({}, expandable), {
118
- expandedRowKeys: expand.mergedExpandedRowKeys,
119
- expandedRowRender: expandable.expandedRowRender ? wrappedExpandedRowRender : undefined,
120
- showExpandColumn: false,
121
- onExpand: kernelOnExpand
122
- }) : undefined;
123
- }, [expandable, expand.mergedExpandedRowKeys, wrappedExpandedRowRender, kernelOnExpand]);
124
- void bordered;
125
- return (0, _jsxRuntime.jsxs)("div", {
126
- className: (0, _classnames.joinCls)("".concat(prefixCls, "-wrapper"), loading && "".concat(prefixCls, "-wrapper--loading")),
14
+ var setup = (0, _useTableSetup.useTableSetup)(props);
15
+ var prefixCls = setup.prefixCls,
16
+ wrapperClassName = setup.wrapperClassName,
17
+ tableClassName = setup.tableClassName,
18
+ loading = setup.loading,
19
+ renderedColumns = setup.renderedColumns,
20
+ currentDataSource = setup.currentDataSource,
21
+ mergedExpandable = setup.mergedExpandable,
22
+ emptyText = setup.emptyText,
23
+ wrapperHtmlProps = setup.wrapperHtmlProps,
24
+ forwardedKernelProps = setup.forwardedKernelProps,
25
+ paginationNode = setup.paginationNode;
26
+ return (0, _jsxRuntime.jsxs)("div", Object.assign({}, wrapperHtmlProps, {
27
+ className: wrapperClassName,
127
28
  children: [loading && (0, _jsxRuntime.jsx)("div", {
128
29
  className: "".concat(prefixCls, "-loading-overlay"),
129
30
  children: (0, _jsxRuntime.jsx)(_Spinner.Spinner, {})
130
- }), (0, _jsxRuntime.jsx)(_internal.InternalRcTable, Object.assign({}, rest, {
31
+ }), (0, _jsxRuntime.jsx)(_internal.InternalRcTable, Object.assign({}, forwardedKernelProps, {
131
32
  ref: ref,
33
+ scroll: props.scroll,
132
34
  prefixCls: prefixCls,
133
- className: (0, _classnames.joinCls)(cls(), cls(size), cls(variant), className),
35
+ className: tableClassName,
134
36
  columns: renderedColumns,
135
- data: pipeline.currentDataSource,
136
- rowKey: rowKey,
137
- emptyText: loading && !dataSource.length ? (0, _jsxRuntime.jsx)("span", {}) : (0, _jsxRuntime.jsx)(_EmptyState.TableEmptyState, {
138
- empty: empty
139
- }),
140
- childrenColumnName: childrenColumnName,
141
- indentSize: indentSize,
142
- expandable: mergedExpandable,
143
- onRow: onRow,
144
- rowClassName: rowClassName,
145
- summary: summary,
146
- showHeader: showHeader,
147
- tableLayout: tableLayout,
148
- components: components,
149
- direction: direction,
150
- rowHoverable: rowHoverable
151
- })), pagination !== false ? (0, _jsxRuntime.jsx)("div", {
152
- className: "".concat(prefixCls, "-pagination"),
153
- children: (0, _jsxRuntime.jsx)(_Pagination.Pagination, {
154
- total: pipeline.total,
155
- pageSize: resolvedPagination.pageSize,
156
- current: resolvedPagination.current,
157
- onChange: function onChange(nextPage, nextPageSize) {
158
- return pipeline.setPagination(function (currentPagination) {
159
- return Object.assign(Object.assign({}, currentPagination), {
160
- current: nextPage,
161
- pageSize: nextPageSize
162
- });
163
- });
164
- }
165
- })
166
- }) : null]
167
- });
37
+ data: currentDataSource,
38
+ emptyText: emptyText,
39
+ expandable: mergedExpandable
40
+ })), paginationNode]
41
+ }));
168
42
  };
169
43
  var TableBase = /*#__PURE__*/(0, _react.forwardRef)(TableInner);
170
44
  TableBase.displayName = 'Table';
171
45
  var Table = exports.Table = /*#__PURE__*/(0, _react.memo)(TableBase);
172
46
  var _default = exports["default"] = Table;
173
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2hvb2tzIiwiX1BhZ2luYXRpb24iLCJfU3Bpbm5lciIsIl9pbnRlcm5hbCIsIl9jb25zdGFudHMiLCJfdXNlVGFibGVEYXRhUGlwZWxpbmUiLCJfdXNlVGFibGVTZWxlY3Rpb24iLCJfdXNlVGFibGVFeHBhbmQiLCJfdXNlVGFibGVDb2x1bW5zIiwiX0V4cGFuZGVkUm93Q29udGFpbmVyIiwiX0VtcHR5U3RhdGUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIlRhYmxlSW5uZXIiLCJwcm9wcyIsInJlZiIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiVEFCTEVfREVGQVVMVF9QUkVGSVgiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJUQUJMRV9ERUZBVUxUX1NJWkUiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJUQUJMRV9ERUZBVUxUX1ZBUklBTlQiLCJjb2x1bW5zIiwiZGF0YVNvdXJjZSIsInJvd0tleSIsImVtcHR5IiwiYm9yZGVyZWQiLCJwYWdpbmF0aW9uIiwicm93U2VsZWN0aW9uIiwibG9hZGluZyIsIm9uQ2hhbmdlIiwiY2hpbGRyZW5Db2x1bW5OYW1lIiwiaW5kZW50U2l6ZSIsImV4cGFuZGFibGUiLCJvblJvdyIsInJvd0NsYXNzTmFtZSIsInN1bW1hcnkiLCJzaG93SGVhZGVyIiwidGFibGVMYXlvdXQiLCJjb21wb25lbnRzIiwiZGlyZWN0aW9uIiwicm93SG92ZXJhYmxlIiwicmVzdCIsImNscyIsImNsYXNzbmFtZXMiLCJUQUJMRV9CTE9DSyIsImdldFJvd0tleSIsInVzZU1lbW9pemVkRm4iLCJyZWNvcmQiLCJpbmRleCIsIl9hIiwicGlwZWxpbmUiLCJ1c2VUYWJsZURhdGFQaXBlbGluZSIsInNlbGVjdGlvbiIsInVzZVRhYmxlU2VsZWN0aW9uIiwiY3VycmVudERhdGFTb3VyY2UiLCJleHBhbmQiLCJ1c2VUYWJsZUV4cGFuZCIsInJlbmRlcmVkQ29sdW1ucyIsInVzZVRhYmxlQ29sdW1ucyIsIm1lcmdlZEV4cGFuZGVkUm93S2V5cyIsInRyaWdnZXJFeHBhbmQiLCJtZXJnZWRTZWxlY3RlZFJvd0tleXMiLCJjaGVja2JveFByb3BzTWFwIiwiaXNBbGxTZWxlY3RlZCIsImlzSW5kZXRlcm1pbmF0ZSIsInRyaWdnZXJTZWxlY3Rpb24iLCJ0cmlnZ2VyU2VsZWN0QWxsIiwic29ydGVyIiwic2V0U29ydGVyIiwicmVzb2x2ZWRQYWdpbmF0aW9uIiwiY3VycmVudCIsInBhZ2VTaXplIiwid3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyIiwiaW5kZW50IiwiZXhwYW5kZWQiLCJfanN4IiwiRXhwYW5kZWRSb3dDb250YWluZXIiLCJjaGlsZHJlbiIsImV4cGFuZGVkUm93UmVuZGVyIiwia2VybmVsT25FeHBhbmQiLCJyZWNvcmRLZXkiLCJvbktlcm5lbEV4cGFuZCIsIm1lcmdlZEV4cGFuZGFibGUiLCJ1c2VNZW1vIiwiYXNzaWduIiwiZXhwYW5kZWRSb3dLZXlzIiwidW5kZWZpbmVkIiwic2hvd0V4cGFuZENvbHVtbiIsIm9uRXhwYW5kIiwiX2pzeHMiLCJqb2luQ2xzIiwiY29uY2F0IiwiU3Bpbm5lciIsIkludGVybmFsUmNUYWJsZSIsImRhdGEiLCJlbXB0eVRleHQiLCJUYWJsZUVtcHR5U3RhdGUiLCJQYWdpbmF0aW9uIiwidG90YWwiLCJuZXh0UGFnZSIsIm5leHRQYWdlU2l6ZSIsInNldFBhZ2luYXRpb24iLCJjdXJyZW50UGFnaW5hdGlvbiIsIlRhYmxlQmFzZSIsImZvcndhcmRSZWYiLCJkaXNwbGF5TmFtZSIsIlRhYmxlIiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBTUEsSUFBQVMscUJBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGtCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxnQkFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEscUJBQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLFdBQUEsR0FBQWQsT0FBQTtBQUF5RCxTQUFBZSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWIsd0JBQUFhLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEs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LEtBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDTCxTQUFTLENBQXdCO0FBQUMsSUFBQU0sUUFBQSxHQUFBRixPQUFBLGNBRTdDRCxLQUFLIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzLCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZU1lbW9pemVkRm4gfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuLi9QYWdpbmF0aW9uJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCAnLi9zdHlsZSc7XG5pbXBvcnQgeyBJbnRlcm5hbFJjVGFibGUgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IFRBQkxFX0JMT0NLLCBUQUJMRV9ERUZBVUxUX1BSRUZJWCwgVEFCTEVfREVGQVVMVF9TSVpFLCBUQUJMRV9ERUZBVUxUX1ZBUklBTlQsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlVGFibGVEYXRhUGlwZWxpbmUgfSBmcm9tICcuL2NvcmUvdXNlVGFibGVEYXRhUGlwZWxpbmUnO1xuaW1wb3J0IHsgdXNlVGFibGVTZWxlY3Rpb24gfSBmcm9tICcuL2NvcmUvdXNlVGFibGVTZWxlY3Rpb24nO1xuaW1wb3J0IHsgdXNlVGFibGVFeHBhbmQgfSBmcm9tICcuL2NvcmUvdXNlVGFibGVFeHBhbmQnO1xuaW1wb3J0IHsgdXNlVGFibGVDb2x1bW5zIH0gZnJvbSAnLi9jb3JlL3VzZVRhYmxlQ29sdW1ucyc7XG5pbXBvcnQgeyBFeHBhbmRlZFJvd0NvbnRhaW5lciB9IGZyb20gJy4vcmVuZGVyZXJzL0V4cGFuZGVkUm93Q29udGFpbmVyJztcbmltcG9ydCB7IFRhYmxlRW1wdHlTdGF0ZSB9IGZyb20gJy4vcmVuZGVyZXJzL0VtcHR5U3RhdGUnO1xuY29uc3QgVGFibGVJbm5lciA9IChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gVEFCTEVfREVGQVVMVF9QUkVGSVgsIHNpemUgPSBUQUJMRV9ERUZBVUxUX1NJWkUsIHZhcmlhbnQgPSBUQUJMRV9ERUZBVUxUX1ZBUklBTlQsIGNvbHVtbnMsIGRhdGFTb3VyY2UsIHJvd0tleSwgZW1wdHksIGJvcmRlcmVkLCBwYWdpbmF0aW9uLCByb3dTZWxlY3Rpb24sIGxvYWRpbmcsIG9uQ2hhbmdlLCBjaGlsZHJlbkNvbHVtbk5hbWUsIGluZGVudFNpemUsIGV4cGFuZGFibGUsIG9uUm93LCByb3dDbGFzc05hbWUsIHN1bW1hcnksIHNob3dIZWFkZXIsIHRhYmxlTGF5b3V0LCBjb21wb25lbnRzLCBkaXJlY3Rpb24sIHJvd0hvdmVyYWJsZSB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcInNpemVcIiwgXCJ2YXJpYW50XCIsIFwiY29sdW1uc1wiLCBcImRhdGFTb3VyY2VcIiwgXCJyb3dLZXlcIiwgXCJlbXB0eVwiLCBcImJvcmRlcmVkXCIsIFwicGFnaW5hdGlvblwiLCBcInJvd1NlbGVjdGlvblwiLCBcImxvYWRpbmdcIiwgXCJvbkNoYW5nZVwiLCBcImNoaWxkcmVuQ29sdW1uTmFtZVwiLCBcImluZGVudFNpemVcIiwgXCJleHBhbmRhYmxlXCIsIFwib25Sb3dcIiwgXCJyb3dDbGFzc05hbWVcIiwgXCJzdW1tYXJ5XCIsIFwic2hvd0hlYWRlclwiLCBcInRhYmxlTGF5b3V0XCIsIFwiY29tcG9uZW50c1wiLCBcImRpcmVjdGlvblwiLCBcInJvd0hvdmVyYWJsZVwiXSk7XG4gICAgY29uc3QgY2xzID0gY2xhc3NuYW1lcyhUQUJMRV9CTE9DSyk7XG4gICAgY29uc3QgZ2V0Um93S2V5ID0gdXNlTWVtb2l6ZWRGbigocmVjb3JkLCBpbmRleCkgPT4geyB2YXIgX2E7IHJldHVybiB0eXBlb2Ygcm93S2V5ID09PSAnZnVuY3Rpb24nID8gcm93S2V5KHJlY29yZCkgOiAoX2EgPSByZWNvcmRbcm93S2V5ICE9PSBudWxsICYmIHJvd0tleSAhPT0gdm9pZCAwID8gcm93S2V5IDogJ2tleSddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleDsgfSk7XG4gICAgY29uc3QgcGlwZWxpbmUgPSB1c2VUYWJsZURhdGFQaXBlbGluZSh7IGNvbHVtbnMsIGRhdGFTb3VyY2UsIHBhZ2luYXRpb24sIG9uQ2hhbmdlIH0pO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHVzZVRhYmxlU2VsZWN0aW9uKHtcbiAgICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgICBkYXRhU291cmNlLFxuICAgICAgICBjdXJyZW50RGF0YVNvdXJjZTogcGlwZWxpbmUuY3VycmVudERhdGFTb3VyY2UsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICB9KTtcbiAgICBjb25zdCBleHBhbmQgPSB1c2VUYWJsZUV4cGFuZCh7IGV4cGFuZGFibGUgfSk7XG4gICAgY29uc3QgcmVuZGVyZWRDb2x1bW5zID0gdXNlVGFibGVDb2x1bW5zKHtcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgZXhwYW5kYWJsZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzOiBleHBhbmQubWVyZ2VkRXhwYW5kZWRSb3dLZXlzLFxuICAgICAgICB0cmlnZ2VyRXhwYW5kOiBleHBhbmQudHJpZ2dlckV4cGFuZCxcbiAgICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgICBtZXJnZWRTZWxlY3RlZFJvd0tleXM6IHNlbGVjdGlvbi5tZXJnZWRTZWxlY3RlZFJvd0tleXMsXG4gICAgICAgIGNoZWNrYm94UHJvcHNNYXA6IHNlbGVjdGlvbi5jaGVja2JveFByb3BzTWFwLFxuICAgICAgICBpc0FsbFNlbGVjdGVkOiBzZWxlY3Rpb24uaXNBbGxTZWxlY3RlZCxcbiAgICAgICAgaXNJbmRldGVybWluYXRlOiBzZWxlY3Rpb24uaXNJbmRldGVybWluYXRlLFxuICAgICAgICB0cmlnZ2VyU2VsZWN0aW9uOiBzZWxlY3Rpb24udHJpZ2dlclNlbGVjdGlvbixcbiAgICAgICAgdHJpZ2dlclNlbGVjdEFsbDogc2VsZWN0aW9uLnRyaWdnZXJTZWxlY3RBbGwsXG4gICAgICAgIHNvcnRlcjogcGlwZWxpbmUuc29ydGVyLFxuICAgICAgICBzZXRTb3J0ZXI6IHBpcGVsaW5lLnNldFNvcnRlcixcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc29sdmVkUGFnaW5hdGlvbiA9IHBpcGVsaW5lLnBhZ2luYXRpb24gPT09IGZhbHNlXG4gICAgICAgID8geyBjdXJyZW50OiAxLCBwYWdlU2l6ZTogMTAgfVxuICAgICAgICA6IHBpcGVsaW5lLnBhZ2luYXRpb247XG4gICAgY29uc3Qgd3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyID0gdXNlTWVtb2l6ZWRGbigocmVjb3JkLCBpbmRleCwgaW5kZW50LCBleHBhbmRlZCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoX2pzeChFeHBhbmRlZFJvd0NvbnRhaW5lciwgeyBjaGlsZHJlbjogKF9hID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmV4cGFuZGVkUm93UmVuZGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChleHBhbmRhYmxlLCByZWNvcmQsIGluZGV4LCBpbmRlbnQsIGV4cGFuZGVkKSB9KSk7XG4gICAgfSk7XG4gICAgLy8gV2lyZSBrZXJuZWwncyBvbkV4cGFuZCAodHJpZ2dlcmVkIGJ5IGV4cGFuZFJvd0J5Q2xpY2spIHRvIG91ciBzdGF0ZVxuICAgIGNvbnN0IGtlcm5lbE9uRXhwYW5kID0gdXNlTWVtb2l6ZWRGbigoZXhwYW5kZWQsIHJlY29yZCkgPT4ge1xuICAgICAgICBjb25zdCByZWNvcmRLZXkgPSBnZXRSb3dLZXkocmVjb3JkLCBkYXRhU291cmNlLmluZGV4T2YocmVjb3JkKSk7XG4gICAgICAgIGV4cGFuZC5vbktlcm5lbEV4cGFuZChleHBhbmRlZCwgcmVjb3JkLCByZWNvcmRLZXkpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1lcmdlZEV4cGFuZGFibGUgPSB1c2VNZW1vKCgpID0+IGV4cGFuZGFibGVcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGV4cGFuZGFibGUpLCB7IGV4cGFuZGVkUm93S2V5czogZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cywgZXhwYW5kZWRSb3dSZW5kZXI6IGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXJcbiAgICAgICAgICAgICAgICA/IHdyYXBwZWRFeHBhbmRlZFJvd1JlbmRlclxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLCBzaG93RXhwYW5kQ29sdW1uOiBmYWxzZSwgb25FeHBhbmQ6IGtlcm5lbE9uRXhwYW5kIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLCBbZXhwYW5kYWJsZSwgZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cywgd3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyLCBrZXJuZWxPbkV4cGFuZF0pO1xuICAgIHZvaWQgYm9yZGVyZWQ7XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhgJHtwcmVmaXhDbHN9LXdyYXBwZXJgLCBsb2FkaW5nICYmIGAke3ByZWZpeENsc30td3JhcHBlci0tbG9hZGluZ2ApLCBjaGlsZHJlbjogW2xvYWRpbmcgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGAke3ByZWZpeENsc30tbG9hZGluZy1vdmVybGF5YCwgY2hpbGRyZW46IF9qc3goU3Bpbm5lciwge30pIH0pKSwgX2pzeChJbnRlcm5hbFJjVGFibGUsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiByZWYsIHByZWZpeENsczogcHJlZml4Q2xzLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xzKCksIGNscyhzaXplKSwgY2xzKHZhcmlhbnQpLCBjbGFzc05hbWUpLCBjb2x1bW5zOiByZW5kZXJlZENvbHVtbnMsIGRhdGE6IHBpcGVsaW5lLmN1cnJlbnREYXRhU291cmNlLCByb3dLZXk6IHJvd0tleSwgZW1wdHlUZXh0OiBsb2FkaW5nICYmICFkYXRhU291cmNlLmxlbmd0aCA/IF9qc3goXCJzcGFuXCIsIHt9KSA6IF9qc3goVGFibGVFbXB0eVN0YXRlLCB7IGVtcHR5OiBlbXB0eSB9KSwgY2hpbGRyZW5Db2x1bW5OYW1lOiBjaGlsZHJlbkNvbHVtbk5hbWUsIGluZGVudFNpemU6IGluZGVudFNpemUsIGV4cGFuZGFibGU6IG1lcmdlZEV4cGFuZGFibGUsIG9uUm93OiBvblJvdywgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsIHN1bW1hcnk6IHN1bW1hcnksIHNob3dIZWFkZXI6IHNob3dIZWFkZXIsIHRhYmxlTGF5b3V0OiB0YWJsZUxheW91dCwgY29tcG9uZW50czogY29tcG9uZW50cywgZGlyZWN0aW9uOiBkaXJlY3Rpb24sIHJvd0hvdmVyYWJsZTogcm93SG92ZXJhYmxlIH0pKSwgcGFnaW5hdGlvbiAhPT0gZmFsc2UgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1wYWdpbmF0aW9uYCwgY2hpbGRyZW46IF9qc3goUGFnaW5hdGlvbiwgeyB0b3RhbDogcGlwZWxpbmUudG90YWwsIHBhZ2VTaXplOiByZXNvbHZlZFBhZ2luYXRpb24ucGFnZVNpemUsIGN1cnJlbnQ6IHJlc29sdmVkUGFnaW5hdGlvbi5jdXJyZW50LCBvbkNoYW5nZTogKG5leHRQYWdlLCBuZXh0UGFnZVNpemUpID0+IHBpcGVsaW5lLnNldFBhZ2luYXRpb24oKGN1cnJlbnRQYWdpbmF0aW9uKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50UGFnaW5hdGlvbiksIHsgY3VycmVudDogbmV4dFBhZ2UsIHBhZ2VTaXplOiBuZXh0UGFnZVNpemUgfSkpKSB9KSB9KSkgOiBudWxsXSB9KSk7XG59O1xuY29uc3QgVGFibGVCYXNlID0gZm9yd2FyZFJlZihUYWJsZUlubmVyKTtcblRhYmxlQmFzZS5kaXNwbGF5TmFtZSA9ICdUYWJsZSc7XG5leHBvcnQgY29uc3QgVGFibGUgPSBtZW1vKFRhYmxlQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBUYWJsZTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
47
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfU3Bpbm5lciIsIl9pbnRlcm5hbCIsIl91c2VUYWJsZVNldHVwIiwiVGFibGVJbm5lciIsInByb3BzIiwicmVmIiwic2V0dXAiLCJ1c2VUYWJsZVNldHVwIiwicHJlZml4Q2xzIiwid3JhcHBlckNsYXNzTmFtZSIsInRhYmxlQ2xhc3NOYW1lIiwibG9hZGluZyIsInJlbmRlcmVkQ29sdW1ucyIsImN1cnJlbnREYXRhU291cmNlIiwibWVyZ2VkRXhwYW5kYWJsZSIsImVtcHR5VGV4dCIsIndyYXBwZXJIdG1sUHJvcHMiLCJmb3J3YXJkZWRLZXJuZWxQcm9wcyIsInBhZ2luYXRpb25Ob2RlIiwiX2pzeHMiLCJPYmplY3QiLCJhc3NpZ24iLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsIl9qc3giLCJjb25jYXQiLCJTcGlubmVyIiwiSW50ZXJuYWxSY1RhYmxlIiwic2Nyb2xsIiwiY29sdW1ucyIsImRhdGEiLCJleHBhbmRhYmxlIiwiVGFibGVCYXNlIiwiZm9yd2FyZFJlZiIsImRpc3BsYXlOYW1lIiwiVGFibGUiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQUlBLElBQU1LLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUNkQyxLQUFvQixFQUNwQkMsR0FBa0IsRUFDaEI7RUFDRixJQUFNQyxLQUFLLEdBQUcsSUFBQUMsNEJBQWEsRUFBQ0gsS0FBSyxDQUFDO0VBQ2xDLElBQ0VJLFNBQVMsR0FXUEYsS0FBSyxDQVhQRSxTQUFTO0lBQ1RDLGdCQUFnQixHQVVkSCxLQUFLLENBVlBHLGdCQUFnQjtJQUNoQkMsY0FBYyxHQVNaSixLQUFLLENBVFBJLGNBQWM7SUFDZEMsT0FBTyxHQVFMTCxLQUFLLENBUlBLLE9BQU87SUFDUEMsZUFBZSxHQU9iTixLQUFLLENBUFBNLGVBQWU7SUFDZkMsaUJBQWlCLEdBTWZQLEtBQUssQ0FOUE8saUJBQWlCO0lBQ2pCQyxnQkFBZ0IsR0FLZFIsS0FBSyxDQUxQUSxnQkFBZ0I7SUFDaEJDLFNBQVMsR0FJUFQsS0FBSyxDQUpQUyxTQUFTO0lBQ1RDLGdCQUFnQixHQUdkVixLQUFLLENBSFBVLGdCQUFnQjtJQUNoQkMsb0JBQW9CLEdBRWxCWCxLQUFLLENBRlBXLG9CQUFvQjtJQUNwQkMsY0FBYyxHQUNaWixLQUFLLENBRFBZLGNBQWM7RUFHaEIsT0FDRSxJQUFBQyxnQkFBQSxFQUFBLEtBQUEsRUFBQUMsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVNMLGdCQUFnQixFQUFBO0lBQUVNLFNBQVMsRUFBRWIsZ0JBQWdCO0lBQUFjLFFBQUEsRUFBQSxDQUNuRFosT0FBTyxJQUNOLElBQUFhLGVBQUEsRUFBQSxLQUFBLEVBQUE7TUFBS0YsU0FBUyxLQUFBRyxNQUFBLENBQUtqQixTQUFTLHFCQUFrQjtNQUFBZSxRQUFBLEVBQzVDLElBQUFDLGVBQUEsRUFBQ0UsZ0JBQU8sRUFBQSxDQUFBLENBQUE7SUFBRyxDQUFBLENBRWQsRUFDRCxJQUFBRixlQUFBLEVBQUNHLHlCQUFlLEVBQUFQLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNWSixvQkFBb0IsRUFBQTtNQUN4QlosR0FBRyxFQUFFQSxHQUFxQjtNQUMxQnVCLE1BQU0sRUFBRXhCLEtBQUssQ0FBQ3dCLE1BQU07TUFDcEJwQixTQUFTLEVBQUVBLFNBQVM7TUFDcEJjLFNBQVMsRUFBRVosY0FBYztNQUN6Qm1CLE9BQU8sRUFBRWpCLGVBQWU7TUFDeEJrQixJQUFJLEVBQUVqQixpQkFBaUI7TUFDdkJFLFNBQVMsRUFBRUEsU0FBUztNQUNwQmdCLFVBQVUsRUFBRWpCO0lBQWdCLENBQUEsQ0FBQSxDQUM1QixFQUNESSxjQUFjO0VBQUEsQ0FBQSxDQUFBLENBQ1g7QUFFVixDQUFDO0FBTUQsSUFBTWMsU0FBUyxnQkFBRyxJQUFBQyxpQkFBVSxFQUFDOUIsVUFBVSxDQUF3QjtBQUUvRDZCLFNBQVMsQ0FBQ0UsV0FBVyxHQUFHLE9BQU87QUFFeEIsSUFBTUMsS0FBSyxHQUFBQyxPQUFBLENBQUFELEtBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDTCxTQUFTLENBQXdCO0FBQUMsSUFBQU0sUUFBQSxHQUFBRixPQUFBLGNBRTdDRCxLQUFLIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCAnLi9zdHlsZSc7XG5pbXBvcnQgeyBJbnRlcm5hbFJjVGFibGUgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IHVzZVRhYmxlU2V0dXAgfSBmcm9tICcuL2NvcmUvdXNlVGFibGVTZXR1cCc7XG5jb25zdCBUYWJsZUlubmVyID0gKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCBzZXR1cCA9IHVzZVRhYmxlU2V0dXAocHJvcHMpO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzLCB3cmFwcGVyQ2xhc3NOYW1lLCB0YWJsZUNsYXNzTmFtZSwgbG9hZGluZywgcmVuZGVyZWRDb2x1bW5zLCBjdXJyZW50RGF0YVNvdXJjZSwgbWVyZ2VkRXhwYW5kYWJsZSwgZW1wdHlUZXh0LCB3cmFwcGVySHRtbFByb3BzLCBmb3J3YXJkZWRLZXJuZWxQcm9wcywgcGFnaW5hdGlvbk5vZGUsIH0gPSBzZXR1cDtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJIdG1sUHJvcHMsIHsgY2xhc3NOYW1lOiB3cmFwcGVyQ2xhc3NOYW1lLCBjaGlsZHJlbjogW2xvYWRpbmcgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGAke3ByZWZpeENsc30tbG9hZGluZy1vdmVybGF5YCwgY2hpbGRyZW46IF9qc3goU3Bpbm5lciwge30pIH0pKSwgX2pzeChJbnRlcm5hbFJjVGFibGUsIE9iamVjdC5hc3NpZ24oe30sIGZvcndhcmRlZEtlcm5lbFByb3BzLCB7IHJlZjogcmVmLCBzY3JvbGw6IHByb3BzLnNjcm9sbCwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIGNsYXNzTmFtZTogdGFibGVDbGFzc05hbWUsIGNvbHVtbnM6IHJlbmRlcmVkQ29sdW1ucywgZGF0YTogY3VycmVudERhdGFTb3VyY2UsIGVtcHR5VGV4dDogZW1wdHlUZXh0LCBleHBhbmRhYmxlOiBtZXJnZWRFeHBhbmRhYmxlIH0pKSwgcGFnaW5hdGlvbk5vZGVdIH0pKSk7XG59O1xuY29uc3QgVGFibGVCYXNlID0gZm9yd2FyZFJlZihUYWJsZUlubmVyKTtcblRhYmxlQmFzZS5kaXNwbGF5TmFtZSA9ICdUYWJsZSc7XG5leHBvcnQgY29uc3QgVGFibGUgPSBtZW1vKFRhYmxlQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBUYWJsZTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,6 +1,6 @@
1
1
  import { type ReactElement, type Ref } from 'react';
2
- import type { TableRef, VirtualTableProps } from './interface';
3
- type ForwardGenericVirtualTable = (<T extends Record<string, any> = Record<string, any>>(props: VirtualTableProps<T> & {
2
+ import type { TableRecord, TableRef, VirtualTableProps } from './interface';
3
+ type ForwardGenericVirtualTable = (<T extends TableRecord = TableRecord>(props: VirtualTableProps<T> & {
4
4
  ref?: Ref<TableRef>;
5
5
  }) => ReactElement | null) & {
6
6
  displayName?: string;
@@ -1,26 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports["default"] = exports.VirtualTable = void 0;
8
7
  var _jsxRuntime = require("react/jsx-runtime");
9
8
  var _react = require("react");
10
- var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
11
- var _hooks = require("@1money/hooks");
12
- var _Pagination = require("../Pagination");
13
9
  var _Spinner = require("../Spinner");
14
10
  var _internal = require("./internal");
15
- var _constants = require("./constants");
16
- var _useTableDataPipeline = require("./core/useTableDataPipeline");
17
- var _useTableSelection = require("./core/useTableSelection");
18
- var _useTableExpand = require("./core/useTableExpand");
19
- var _useTableColumns = require("./core/useTableColumns");
20
- var _ExpandedRowContainer = require("./renderers/ExpandedRowContainer");
21
- var _EmptyState = require("./renderers/EmptyState");
22
- 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); }
23
- 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 && {}.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; }
11
+ var _useTableSetup = require("./core/useTableSetup");
24
12
  var __rest = void 0 && (void 0).__rest || function (s, e) {
25
13
  var t = {};
26
14
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
@@ -29,147 +17,43 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
29
17
  }
30
18
  return t;
31
19
  };
20
+ var InternalRcVirtualTable = _internal.InternalRcVirtualTable;
32
21
  var VirtualTableInner = function VirtualTableInner(props, ref) {
33
- var _props$className = props.className,
34
- className = _props$className === void 0 ? '' : _props$className,
35
- _props$prefixCls = props.prefixCls,
36
- prefixCls = _props$prefixCls === void 0 ? _constants.TABLE_DEFAULT_PREFIX : _props$prefixCls,
37
- _props$size = props.size,
38
- size = _props$size === void 0 ? _constants.TABLE_DEFAULT_SIZE : _props$size,
39
- _props$variant = props.variant,
40
- variant = _props$variant === void 0 ? _constants.TABLE_DEFAULT_VARIANT : _props$variant,
41
- scroll = props.scroll,
42
- columns = props.columns,
43
- dataSource = props.dataSource,
44
- rowKey = props.rowKey,
45
- empty = props.empty,
46
- bordered = props.bordered,
47
- pagination = props.pagination,
48
- rowSelection = props.rowSelection,
49
- loading = props.loading,
50
- onChange = props.onChange,
51
- childrenColumnName = props.childrenColumnName,
52
- indentSize = props.indentSize,
53
- expandable = props.expandable,
54
- onRow = props.onRow,
55
- rowClassName = props.rowClassName,
56
- summary = props.summary,
57
- showHeader = props.showHeader,
58
- tableLayout = props.tableLayout,
59
- components = props.components,
60
- direction = props.direction,
61
- rowHoverable = props.rowHoverable,
62
- rest = __rest(props, ["className", "prefixCls", "size", "variant", "scroll", "columns", "dataSource", "rowKey", "empty", "bordered", "pagination", "rowSelection", "loading", "onChange", "childrenColumnName", "indentSize", "expandable", "onRow", "rowClassName", "summary", "showHeader", "tableLayout", "components", "direction", "rowHoverable"]);
63
- var cls = (0, _classnames["default"])(_constants.TABLE_BLOCK);
64
- var getRowKey = (0, _hooks.useMemoizedFn)(function (record, index) {
65
- var _a;
66
- return typeof rowKey === 'function' ? rowKey(record) : (_a = record[rowKey !== null && rowKey !== void 0 ? rowKey : 'key']) !== null && _a !== void 0 ? _a : index;
67
- });
68
- var pipeline = (0, _useTableDataPipeline.useTableDataPipeline)({
69
- columns: columns,
70
- dataSource: dataSource,
71
- pagination: pagination,
72
- onChange: onChange
73
- });
74
- var selection = (0, _useTableSelection.useTableSelection)({
75
- rowSelection: rowSelection,
76
- dataSource: dataSource,
77
- currentDataSource: pipeline.currentDataSource,
78
- getRowKey: getRowKey
79
- });
80
- var expand = (0, _useTableExpand.useTableExpand)({
81
- expandable: expandable
82
- });
83
- var renderedColumns = (0, _useTableColumns.useTableColumns)({
84
- columns: columns,
85
- size: size,
86
- variant: variant,
87
- expandable: expandable,
88
- mergedExpandedRowKeys: expand.mergedExpandedRowKeys,
89
- triggerExpand: expand.triggerExpand,
90
- rowSelection: rowSelection,
91
- mergedSelectedRowKeys: selection.mergedSelectedRowKeys,
92
- checkboxPropsMap: selection.checkboxPropsMap,
93
- isAllSelected: selection.isAllSelected,
94
- isIndeterminate: selection.isIndeterminate,
95
- triggerSelection: selection.triggerSelection,
96
- triggerSelectAll: selection.triggerSelectAll,
97
- sorter: pipeline.sorter,
98
- setSorter: pipeline.setSorter,
99
- getRowKey: getRowKey
100
- });
101
- var resolvedPagination = pipeline.pagination === false ? {
102
- current: 1,
103
- pageSize: 10
104
- } : pipeline.pagination;
105
- var kernelOnExpand = (0, _hooks.useMemoizedFn)(function (expanded, record) {
106
- var recordKey = getRowKey(record, dataSource.indexOf(record));
107
- expand.onKernelExpand(expanded, record, recordKey);
108
- });
109
- var mergedExpandable = (0, _react.useMemo)(function () {
110
- return expandable ? Object.assign(Object.assign({}, expandable), {
111
- expandedRowKeys: expand.mergedExpandedRowKeys,
112
- expandedRowRender: expandable.expandedRowRender ? function (record, index, indent, expanded) {
113
- var _a;
114
- return (0, _jsxRuntime.jsx)(_ExpandedRowContainer.ExpandedRowContainer, {
115
- children: (_a = expandable.expandedRowRender) === null || _a === void 0 ? void 0 : _a.call(expandable, record, index, indent, expanded)
116
- });
117
- } : undefined,
118
- showExpandColumn: false,
119
- onExpand: kernelOnExpand
120
- }) : undefined;
121
- }, [expandable, expand.mergedExpandedRowKeys, kernelOnExpand]);
122
- void bordered;
123
- if (typeof scroll.x !== 'number' || typeof scroll.y !== 'number') {
124
- console.error('VirtualTable requires numeric scroll.x and scroll.y');
125
- }
126
- return (0, _jsxRuntime.jsxs)("div", {
127
- className: (0, _classnames.joinCls)("".concat(prefixCls, "-wrapper"), loading && "".concat(prefixCls, "-wrapper--loading")),
22
+ var scroll = props.scroll,
23
+ listItemHeight = props.listItemHeight,
24
+ rest = __rest(props, ["scroll", "listItemHeight"]);
25
+ var setup = (0, _useTableSetup.useTableSetup)(rest);
26
+ var prefixCls = setup.prefixCls,
27
+ wrapperClassName = setup.wrapperClassName,
28
+ tableClassName = setup.tableClassName,
29
+ loading = setup.loading,
30
+ renderedColumns = setup.renderedColumns,
31
+ currentDataSource = setup.currentDataSource,
32
+ mergedExpandable = setup.mergedExpandable,
33
+ emptyText = setup.emptyText,
34
+ wrapperHtmlProps = setup.wrapperHtmlProps,
35
+ forwardedKernelProps = setup.forwardedKernelProps,
36
+ paginationNode = setup.paginationNode;
37
+ return (0, _jsxRuntime.jsxs)("div", Object.assign({}, wrapperHtmlProps, {
38
+ className: wrapperClassName,
128
39
  children: [loading && (0, _jsxRuntime.jsx)("div", {
129
40
  className: "".concat(prefixCls, "-loading-overlay"),
130
41
  children: (0, _jsxRuntime.jsx)(_Spinner.Spinner, {})
131
- }), (0, _jsxRuntime.jsx)(_internal.InternalRcVirtualTable, Object.assign({}, rest, {
42
+ }), (0, _jsxRuntime.jsx)(InternalRcVirtualTable, Object.assign({}, forwardedKernelProps, {
132
43
  ref: ref,
133
44
  prefixCls: prefixCls,
134
- className: (0, _classnames.joinCls)(cls(), cls(size), cls(variant), className),
45
+ className: tableClassName,
135
46
  scroll: scroll,
47
+ listItemHeight: listItemHeight,
136
48
  columns: renderedColumns,
137
- data: pipeline.currentDataSource,
138
- rowKey: rowKey,
139
- emptyText: loading && !dataSource.length ? (0, _jsxRuntime.jsx)("span", {}) : (0, _jsxRuntime.jsx)(_EmptyState.TableEmptyState, {
140
- empty: empty
141
- }),
142
- childrenColumnName: childrenColumnName,
143
- indentSize: indentSize,
144
- expandable: mergedExpandable,
145
- onRow: onRow,
146
- rowClassName: rowClassName,
147
- summary: summary,
148
- showHeader: showHeader,
149
- tableLayout: tableLayout,
150
- components: components,
151
- direction: direction,
152
- rowHoverable: rowHoverable
153
- })), pagination !== false ? (0, _jsxRuntime.jsx)("div", {
154
- className: "".concat(prefixCls, "-pagination"),
155
- children: (0, _jsxRuntime.jsx)(_Pagination.Pagination, {
156
- total: pipeline.total,
157
- pageSize: resolvedPagination.pageSize,
158
- current: resolvedPagination.current,
159
- onChange: function onChange(nextPage, nextPageSize) {
160
- return pipeline.setPagination(function (currentPagination) {
161
- return Object.assign(Object.assign({}, currentPagination), {
162
- current: nextPage,
163
- pageSize: nextPageSize
164
- });
165
- });
166
- }
167
- })
168
- }) : null]
169
- });
49
+ data: currentDataSource,
50
+ emptyText: emptyText,
51
+ expandable: mergedExpandable
52
+ })), paginationNode]
53
+ }));
170
54
  };
171
55
  var VirtualTableBase = /*#__PURE__*/(0, _react.forwardRef)(VirtualTableInner);
172
56
  VirtualTableBase.displayName = 'VirtualTable';
173
57
  var VirtualTable = exports.VirtualTable = /*#__PURE__*/(0, _react.memo)(VirtualTableBase);
174
58
  var _default = exports["default"] = VirtualTable;
175
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvVmlydHVhbFRhYmxlLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UYWJsZS9WaXJ0dWFsVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaG9va3MiLCJfUGFnaW5hdGlvbiIsIl9TcGlubmVyIiwiX2ludGVybmFsIiwiX2NvbnN0YW50cyIsIl91c2VUYWJsZURhdGFQaXBlbGluZSIsIl91c2VUYWJsZVNlbGVjdGlvbiIsIl91c2VUYWJsZUV4cGFuZCIsIl91c2VUYWJsZUNvbHVtbnMiLCJfRXhwYW5kZWRSb3dDb250YWluZXIiLCJfRW1wdHlTdGF0ZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiVmlydHVhbFRhYmxlSW5uZXIiLCJwcm9wcyIsInJlZiIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiVEFCTEVfREVGQVVMVF9QUkVGSVgiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJUQUJMRV9ERUZBVUxUX1NJWkUiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJUQUJMRV9ERUZBVUxUX1ZBUklBTlQiLCJzY3JvbGwiLCJjb2x1bW5zIiwiZGF0YVNvdXJjZSIsInJvd0tleSIsImVtcHR5IiwiYm9yZGVyZWQiLCJwYWdpbmF0aW9uIiwicm93U2VsZWN0aW9uIiwibG9hZGluZyIsIm9uQ2hhbmdlIiwiY2hpbGRyZW5Db2x1bW5OYW1lIiwiaW5kZW50U2l6ZSIsImV4cGFuZGFibGUiLCJvblJvdyIsInJvd0NsYXNzTmFtZSIsInN1bW1hcnkiLCJzaG93SGVhZGVyIiwidGFibGVMYXlvdXQiLCJjb21wb25lbnRzIiwiZGlyZWN0aW9uIiwicm93SG92ZXJhYmxlIiwicmVzdCIsImNscyIsImNsYXNzbmFtZXMiLCJUQUJMRV9CTE9DSyIsImdldFJvd0tleSIsInVzZU1lbW9pemVkRm4iLCJyZWNvcmQiLCJpbmRleCIsIl9hIiwicGlwZWxpbmUiLCJ1c2VUYWJsZURhdGFQaXBlbGluZSIsInNlbGVjdGlvbiIsInVzZVRhYmxlU2VsZWN0aW9uIiwiY3VycmVudERhdGFTb3VyY2UiLCJleHBhbmQiLCJ1c2VUYWJsZUV4cGFuZCIsInJlbmRlcmVkQ29sdW1ucyIsInVzZVRhYmxlQ29sdW1ucyIsIm1lcmdlZEV4cGFuZGVkUm93S2V5cyIsInRyaWdnZXJFeHBhbmQiLCJtZXJnZWRTZWxlY3RlZFJvd0tleXMiLCJjaGVja2JveFByb3BzTWFwIiwiaXNBbGxTZWxlY3RlZCIsImlzSW5kZXRlcm1pbmF0ZSIsInRyaWdnZXJTZWxlY3Rpb24iLCJ0cmlnZ2VyU2VsZWN0QWxsIiwic29ydGVyIiwic2V0U29ydGVyIiwicmVzb2x2ZWRQYWdpbmF0aW9uIiwiY3VycmVudCIsInBhZ2VTaXplIiwia2VybmVsT25FeHBhbmQiLCJleHBhbmRlZCIsInJlY29yZEtleSIsIm9uS2VybmVsRXhwYW5kIiwibWVyZ2VkRXhwYW5kYWJsZSIsInVzZU1lbW8iLCJhc3NpZ24iLCJleHBhbmRlZFJvd0tleXMiLCJleHBhbmRlZFJvd1JlbmRlciIsImluZGVudCIsIl9qc3giLCJFeHBhbmRlZFJvd0NvbnRhaW5lciIsImNoaWxkcmVuIiwidW5kZWZpbmVkIiwic2hvd0V4cGFuZENvbHVtbiIsIm9uRXhwYW5kIiwieCIsInkiLCJjb25zb2xlIiwiZXJyb3IiLCJfanN4cyIsImpvaW5DbHMiLCJjb25jYXQiLCJTcGlubmVyIiwiSW50ZXJuYWxSY1ZpcnR1YWxUYWJsZSIsImRhdGEiLCJlbXB0eVRleHQiLCJUYWJsZUVtcHR5U3RhdGUiLCJQYWdpbmF0aW9uIiwidG90YWwiLCJuZXh0UGFnZSIsIm5leHRQYWdlU2l6ZSIsInNldFBhZ2luYXRpb24iLCJjdXJyZW50UGFnaW5hdGlvbiIsIlZpcnR1YWxUYWJsZUJhc2UiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJWaXJ0dWFsVGFibGUiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBTUEsSUFBQVMscUJBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGtCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxnQkFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEscUJBQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLFdBQUEsR0FBQWQsT0FBQTtBQUF5RCxTQUFBZSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWIsd0JBQUFhLENBQUEs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TUcsZ0JBQWdCLGdCQUFHLElBQUFDLGlCQUFVLEVBQUNyRyxpQkFBaUIsQ0FBK0I7QUFFcEZvRyxnQkFBZ0IsQ0FBQ0UsV0FBVyxHQUFHLGNBQWM7QUFFdEMsSUFBTUMsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDTCxnQkFBZ0IsQ0FBK0I7QUFBQyxJQUFBTSxRQUFBLEdBQUFGLE9BQUEsY0FFbEVELFlBQVkiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9WaXJ0dWFsVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzLCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZU1lbW9pemVkRm4gfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuLi9QYWdpbmF0aW9uJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IEludGVybmFsUmNWaXJ0dWFsVGFibGUgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IFRBQkxFX0JMT0NLLCBUQUJMRV9ERUZBVUxUX1BSRUZJWCwgVEFCTEVfREVGQVVMVF9TSVpFLCBUQUJMRV9ERUZBVUxUX1ZBUklBTlQsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlVGFibGVEYXRhUGlwZWxpbmUgfSBmcm9tICcuL2NvcmUvdXNlVGFibGVEYXRhUGlwZWxpbmUnO1xuaW1wb3J0IHsgdXNlVGFibGVTZWxlY3Rpb24gfSBmcm9tICcuL2NvcmUvdXNlVGFibGVTZWxlY3Rpb24nO1xuaW1wb3J0IHsgdXNlVGFibGVFeHBhbmQgfSBmcm9tICcuL2NvcmUvdXNlVGFibGVFeHBhbmQnO1xuaW1wb3J0IHsgdXNlVGFibGVDb2x1bW5zIH0gZnJvbSAnLi9jb3JlL3VzZVRhYmxlQ29sdW1ucyc7XG5pbXBvcnQgeyBFeHBhbmRlZFJvd0NvbnRhaW5lciB9IGZyb20gJy4vcmVuZGVyZXJzL0V4cGFuZGVkUm93Q29udGFpbmVyJztcbmltcG9ydCB7IFRhYmxlRW1wdHlTdGF0ZSB9IGZyb20gJy4vcmVuZGVyZXJzL0VtcHR5U3RhdGUnO1xuY29uc3QgVmlydHVhbFRhYmxlSW5uZXIgPSAocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9IFRBQkxFX0RFRkFVTFRfUFJFRklYLCBzaXplID0gVEFCTEVfREVGQVVMVF9TSVpFLCB2YXJpYW50ID0gVEFCTEVfREVGQVVMVF9WQVJJQU5ULCBzY3JvbGwsIGNvbHVtbnMsIGRhdGFTb3VyY2UsIHJvd0tleSwgZW1wdHksIGJvcmRlcmVkLCBwYWdpbmF0aW9uLCByb3dTZWxlY3Rpb24sIGxvYWRpbmcsIG9uQ2hhbmdlLCBjaGlsZHJlbkNvbHVtbk5hbWUsIGluZGVudFNpemUsIGV4cGFuZGFibGUsIG9uUm93LCByb3dDbGFzc05hbWUsIHN1bW1hcnksIHNob3dIZWFkZXIsIHRhYmxlTGF5b3V0LCBjb21wb25lbnRzLCBkaXJlY3Rpb24sIHJvd0hvdmVyYWJsZSB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcInNpemVcIiwgXCJ2YXJpYW50XCIsIFwic2Nyb2xsXCIsIFwiY29sdW1uc1wiLCBcImRhdGFTb3VyY2VcIiwgXCJyb3dLZXlcIiwgXCJlbXB0eVwiLCBcImJvcmRlcmVkXCIsIFwicGFnaW5hdGlvblwiLCBcInJvd1NlbGVjdGlvblwiLCBcImxvYWRpbmdcIiwgXCJvbkNoYW5nZVwiLCBcImNoaWxkcmVuQ29sdW1uTmFtZVwiLCBcImluZGVudFNpemVcIiwgXCJleHBhbmRhYmxlXCIsIFwib25Sb3dcIiwgXCJyb3dDbGFzc05hbWVcIiwgXCJzdW1tYXJ5XCIsIFwic2hvd0hlYWRlclwiLCBcInRhYmxlTGF5b3V0XCIsIFwiY29tcG9uZW50c1wiLCBcImRpcmVjdGlvblwiLCBcInJvd0hvdmVyYWJsZVwiXSk7XG4gICAgY29uc3QgY2xzID0gY2xhc3NuYW1lcyhUQUJMRV9CTE9DSyk7XG4gICAgY29uc3QgZ2V0Um93S2V5ID0gdXNlTWVtb2l6ZWRGbigocmVjb3JkLCBpbmRleCkgPT4geyB2YXIgX2E7IHJldHVybiB0eXBlb2Ygcm93S2V5ID09PSAnZnVuY3Rpb24nID8gcm93S2V5KHJlY29yZCkgOiAoX2EgPSByZWNvcmRbcm93S2V5ICE9PSBudWxsICYmIHJvd0tleSAhPT0gdm9pZCAwID8gcm93S2V5IDogJ2tleSddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleDsgfSk7XG4gICAgY29uc3QgcGlwZWxpbmUgPSB1c2VUYWJsZURhdGFQaXBlbGluZSh7IGNvbHVtbnMsIGRhdGFTb3VyY2UsIHBhZ2luYXRpb24sIG9uQ2hhbmdlIH0pO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHVzZVRhYmxlU2VsZWN0aW9uKHtcbiAgICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgICBkYXRhU291cmNlLFxuICAgICAgICBjdXJyZW50RGF0YVNvdXJjZTogcGlwZWxpbmUuY3VycmVudERhdGFTb3VyY2UsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICB9KTtcbiAgICBjb25zdCBleHBhbmQgPSB1c2VUYWJsZUV4cGFuZCh7IGV4cGFuZGFibGUgfSk7XG4gICAgY29uc3QgcmVuZGVyZWRDb2x1bW5zID0gdXNlVGFibGVDb2x1bW5zKHtcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgZXhwYW5kYWJsZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzOiBleHBhbmQubWVyZ2VkRXhwYW5kZWRSb3dLZXlzLFxuICAgICAgICB0cmlnZ2VyRXhwYW5kOiBleHBhbmQudHJpZ2dlckV4cGFuZCxcbiAgICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgICBtZXJnZWRTZWxlY3RlZFJvd0tleXM6IHNlbGVjdGlvbi5tZXJnZWRTZWxlY3RlZFJvd0tleXMsXG4gICAgICAgIGNoZWNrYm94UHJvcHNNYXA6IHNlbGVjdGlvbi5jaGVja2JveFByb3BzTWFwLFxuICAgICAgICBpc0FsbFNlbGVjdGVkOiBzZWxlY3Rpb24uaXNBbGxTZWxlY3RlZCxcbiAgICAgICAgaXNJbmRldGVybWluYXRlOiBzZWxlY3Rpb24uaXNJbmRldGVybWluYXRlLFxuICAgICAgICB0cmlnZ2VyU2VsZWN0aW9uOiBzZWxlY3Rpb24udHJpZ2dlclNlbGVjdGlvbixcbiAgICAgICAgdHJpZ2dlclNlbGVjdEFsbDogc2VsZWN0aW9uLnRyaWdnZXJTZWxlY3RBbGwsXG4gICAgICAgIHNvcnRlcjogcGlwZWxpbmUuc29ydGVyLFxuICAgICAgICBzZXRTb3J0ZXI6IHBpcGVsaW5lLnNldFNvcnRlcixcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc29sdmVkUGFnaW5hdGlvbiA9IHBpcGVsaW5lLnBhZ2luYXRpb24gPT09IGZhbHNlXG4gICAgICAgID8geyBjdXJyZW50OiAxLCBwYWdlU2l6ZTogMTAgfVxuICAgICAgICA6IHBpcGVsaW5lLnBhZ2luYXRpb247XG4gICAgY29uc3Qga2VybmVsT25FeHBhbmQgPSB1c2VNZW1vaXplZEZuKChleHBhbmRlZCwgcmVjb3JkKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlY29yZEtleSA9IGdldFJvd0tleShyZWNvcmQsIGRhdGFTb3VyY2UuaW5kZXhPZihyZWNvcmQpKTtcbiAgICAgICAgZXhwYW5kLm9uS2VybmVsRXhwYW5kKGV4cGFuZGVkLCByZWNvcmQsIHJlY29yZEtleSk7XG4gICAgfSk7XG4gICAgY29uc3QgbWVyZ2VkRXhwYW5kYWJsZSA9IHVzZU1lbW8oKCkgPT4gZXhwYW5kYWJsZVxuICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZXhwYW5kYWJsZSksIHsgZXhwYW5kZWRSb3dLZXlzOiBleHBhbmQubWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCBleHBhbmRlZFJvd1JlbmRlcjogZXhwYW5kYWJsZS5leHBhbmRlZFJvd1JlbmRlclxuICAgICAgICAgICAgICAgID8gKHJlY29yZCwgaW5kZXgsIGluZGVudCwgZXhwYW5kZWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goRXhwYW5kZWRSb3dDb250YWluZXIsIHsgY2hpbGRyZW46IChfYSA9IGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGV4cGFuZGFibGUsIHJlY29yZCwgaW5kZXgsIGluZGVudCwgZXhwYW5kZWQpIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsIHNob3dFeHBhbmRDb2x1bW46IGZhbHNlLCBvbkV4cGFuZDoga2VybmVsT25FeHBhbmQgfSlcbiAgICAgICAgOiB1bmRlZmluZWQsIFtleHBhbmRhYmxlLCBleHBhbmQubWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCBrZXJuZWxPbkV4cGFuZF0pO1xuICAgIHZvaWQgYm9yZGVyZWQ7XG4gICAgaWYgKHR5cGVvZiBzY3JvbGwueCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIHNjcm9sbC55ICE9PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdWaXJ0dWFsVGFibGUgcmVxdWlyZXMgbnVtZXJpYyBzY3JvbGwueCBhbmQgc2Nyb2xsLnknKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhgJHtwcmVmaXhDbHN9LXdyYXBwZXJgLCBsb2FkaW5nICYmIGAke3ByZWZpeENsc30td3JhcHBlci0tbG9hZGluZ2ApLCBjaGlsZHJlbjogW2xvYWRpbmcgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGAke3ByZWZpeENsc30tbG9hZGluZy1vdmVybGF5YCwgY2hpbGRyZW46IF9qc3goU3Bpbm5lciwge30pIH0pKSwgX2pzeChJbnRlcm5hbFJjVmlydHVhbFRhYmxlLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogcmVmLCBwcmVmaXhDbHM6IHByZWZpeENscywgY2xhc3NOYW1lOiBqb2luQ2xzKGNscygpLCBjbHMoc2l6ZSksIGNscyh2YXJpYW50KSwgY2xhc3NOYW1lKSwgc2Nyb2xsOiBzY3JvbGwsIGNvbHVtbnM6IHJlbmRlcmVkQ29sdW1ucywgZGF0YTogcGlwZWxpbmUuY3VycmVudERhdGFTb3VyY2UsIHJvd0tleTogcm93S2V5LCBlbXB0eVRleHQ6IGxvYWRpbmcgJiYgIWRhdGFTb3VyY2UubGVuZ3RoID8gX2pzeChcInNwYW5cIiwge30pIDogX2pzeChUYWJsZUVtcHR5U3RhdGUsIHsgZW1wdHk6IGVtcHR5IH0pLCBjaGlsZHJlbkNvbHVtbk5hbWU6IGNoaWxkcmVuQ29sdW1uTmFtZSwgaW5kZW50U2l6ZTogaW5kZW50U2l6ZSwgZXhwYW5kYWJsZTogbWVyZ2VkRXhwYW5kYWJsZSwgb25Sb3c6IG9uUm93LCByb3dDbGFzc05hbWU6IHJvd0NsYXNzTmFtZSwgc3VtbWFyeTogc3VtbWFyeSwgc2hvd0hlYWRlcjogc2hvd0hlYWRlciwgdGFibGVMYXlvdXQ6IHRhYmxlTGF5b3V0LCBjb21wb25lbnRzOiBjb21wb25lbnRzLCBkaXJlY3Rpb246IGRpcmVjdGlvbiwgcm93SG92ZXJhYmxlOiByb3dIb3ZlcmFibGUgfSkpLCBwYWdpbmF0aW9uICE9PSBmYWxzZSA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LXBhZ2luYXRpb25gLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwaXBlbGluZS50b3RhbCwgcGFnZVNpemU6IHJlc29sdmVkUGFnaW5hdGlvbi5wYWdlU2l6ZSwgY3VycmVudDogcmVzb2x2ZWRQYWdpbmF0aW9uLmN1cnJlbnQsIG9uQ2hhbmdlOiAobmV4dFBhZ2UsIG5leHRQYWdlU2l6ZSkgPT4gcGlwZWxpbmUuc2V0UGFnaW5hdGlvbigoY3VycmVudFBhZ2luYXRpb24pID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRQYWdpbmF0aW9uKSwgeyBjdXJyZW50OiBuZXh0UGFnZSwgcGFnZVNpemU6IG5leHRQYWdlU2l6ZSB9KSkpIH0pIH0pKSA6IG51bGxdIH0pKTtcbn07XG5jb25zdCBWaXJ0dWFsVGFibGVCYXNlID0gZm9yd2FyZFJlZihWaXJ0dWFsVGFibGVJbm5lcik7XG5WaXJ0dWFsVGFibGVCYXNlLmRpc3BsYXlOYW1lID0gJ1ZpcnR1YWxUYWJsZSc7XG5leHBvcnQgY29uc3QgVmlydHVhbFRhYmxlID0gbWVtbyhWaXJ0dWFsVGFibGVCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFZpcnR1YWxUYWJsZTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
59
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvVmlydHVhbFRhYmxlLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UYWJsZS9WaXJ0dWFsVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9TcGlubmVyIiwiX2ludGVybmFsIiwiX3VzZVRhYmxlU2V0dXAiLCJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIkludGVybmFsUmNWaXJ0dWFsVGFibGUiLCJJbnRlcm5hbFJjVmlydHVhbFRhYmxlUmF3IiwiVmlydHVhbFRhYmxlSW5uZXIiLCJwcm9wcyIsInJlZiIsInNjcm9sbCIsImxpc3RJdGVtSGVpZ2h0IiwicmVzdCIsInNldHVwIiwidXNlVGFibGVTZXR1cCIsInByZWZpeENscyIsIndyYXBwZXJDbGFzc05hbWUiLCJ0YWJsZUNsYXNzTmFtZSIsImxvYWRpbmciLCJyZW5kZXJlZENvbHVtbnMiLCJjdXJyZW50RGF0YVNvdXJjZSIsIm1lcmdlZEV4cGFuZGFibGUiLCJlbXB0eVRleHQiLCJ3cmFwcGVySHRtbFByb3BzIiwiZm9yd2FyZGVkS2VybmVsUHJvcHMiLCJwYWdpbmF0aW9uTm9kZSIsIl9qc3hzIiwiYXNzaWduIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJfanN4IiwiY29uY2F0IiwiU3Bpbm5lciIsImNvbHVtbnMiLCJkYXRhIiwiZXhwYW5kYWJsZSIsIlZpcnR1YWxUYWJsZUJhc2UiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJWaXJ0dWFsVGFibGUiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJ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QjtNQUFBYyxRQUFBLEVBQzVDLElBQUFDLGVBQUEsRUFBQ0UsZ0JBQU8sRUFBQSxDQUFBLENBQUE7SUFBRyxDQUFBLENBRWQsRUFDRCxJQUFBRixlQUFBLEVBQUN6QixzQkFBc0IsRUFBQVQsTUFBQSxDQUFBK0IsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNqQkgsb0JBQW9CLEVBQUE7TUFDeEJmLEdBQUcsRUFBRUEsR0FBcUI7TUFDMUJNLFNBQVMsRUFBRUEsU0FBUztNQUNwQmEsU0FBUyxFQUFFWCxjQUFjO01BQ3pCUCxNQUFNLEVBQUVBLE1BQU07TUFDZEMsY0FBYyxFQUFFQSxjQUFjO01BQzlCc0IsT0FBTyxFQUFFZCxlQUFlO01BQ3hCZSxJQUFJLEVBQUVkLGlCQUFpQjtNQUN2QkUsU0FBUyxFQUFFQSxTQUFTO01BQ3BCYSxVQUFVLEVBQUVkO0lBQWdCLENBQUEsQ0FBQSxDQUM1QixFQUNESSxjQUFjO0VBQUEsQ0FBQSxDQUFBLENBQ1g7QUFFVixDQUFDO0FBTUQsSUFBTVcsZ0JBQWdCLGdCQUFHLElBQUFDLGlCQUFVLEVBQUM5QixpQkFBaUIsQ0FBK0I7QUFFcEY2QixnQkFBZ0IsQ0FBQ0UsV0FBVyxHQUFHLGNBQWM7QUFFdEMsSUFBTUMsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDTCxnQkFBZ0IsQ0FBK0I7QUFBQyxJQUFBTSxRQUFBLEdBQUFGLE9BQUEsY0FFbEVELFlBQVkiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9WaXJ0dWFsVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IEludGVybmFsUmNWaXJ0dWFsVGFibGUgYXMgSW50ZXJuYWxSY1ZpcnR1YWxUYWJsZVJhdyB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgdXNlVGFibGVTZXR1cCB9IGZyb20gJy4vY29yZS91c2VUYWJsZVNldHVwJztcbmNvbnN0IEludGVybmFsUmNWaXJ0dWFsVGFibGUgPSBJbnRlcm5hbFJjVmlydHVhbFRhYmxlUmF3O1xuY29uc3QgVmlydHVhbFRhYmxlSW5uZXIgPSAocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgc2Nyb2xsLCBsaXN0SXRlbUhlaWdodCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInNjcm9sbFwiLCBcImxpc3RJdGVtSGVpZ2h0XCJdKTtcbiAgICBjb25zdCBzZXR1cCA9IHVzZVRhYmxlU2V0dXAocmVzdCk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIHdyYXBwZXJDbGFzc05hbWUsIHRhYmxlQ2xhc3NOYW1lLCBsb2FkaW5nLCByZW5kZXJlZENvbHVtbnMsIGN1cnJlbnREYXRhU291cmNlLCBtZXJnZWRFeHBhbmRhYmxlLCBlbXB0eVRleHQsIHdyYXBwZXJIdG1sUHJvcHMsIGZvcndhcmRlZEtlcm5lbFByb3BzLCBwYWdpbmF0aW9uTm9kZSwgfSA9IHNldHVwO1xuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgd3JhcHBlckh0bWxQcm9wcywgeyBjbGFzc05hbWU6IHdyYXBwZXJDbGFzc05hbWUsIGNoaWxkcmVuOiBbbG9hZGluZyAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1sb2FkaW5nLW92ZXJsYXlgLCBjaGlsZHJlbjogX2pzeChTcGlubmVyLCB7fSkgfSkpLCBfanN4KEludGVybmFsUmNWaXJ0dWFsVGFibGUsIE9iamVjdC5hc3NpZ24oe30sIGZvcndhcmRlZEtlcm5lbFByb3BzLCB7IHJlZjogcmVmLCBwcmVmaXhDbHM6IHByZWZpeENscywgY2xhc3NOYW1lOiB0YWJsZUNsYXNzTmFtZSwgc2Nyb2xsOiBzY3JvbGwsIGxpc3RJdGVtSGVpZ2h0OiBsaXN0SXRlbUhlaWdodCwgY29sdW1uczogcmVuZGVyZWRDb2x1bW5zLCBkYXRhOiBjdXJyZW50RGF0YVNvdXJjZSwgZW1wdHlUZXh0OiBlbXB0eVRleHQsIGV4cGFuZGFibGU6IG1lcmdlZEV4cGFuZGFibGUgfSkpLCBwYWdpbmF0aW9uTm9kZV0gfSkpKTtcbn07XG5jb25zdCBWaXJ0dWFsVGFibGVCYXNlID0gZm9yd2FyZFJlZihWaXJ0dWFsVGFibGVJbm5lcik7XG5WaXJ0dWFsVGFibGVCYXNlLmRpc3BsYXlOYW1lID0gJ1ZpcnR1YWxUYWJsZSc7XG5leHBvcnQgY29uc3QgVmlydHVhbFRhYmxlID0gbWVtbyhWaXJ0dWFsVGFibGVCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFZpcnR1YWxUYWJsZTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,7 +1,8 @@
1
1
  import { type Key } from 'react';
2
- import type { TableColumnType, TableExpandableConfig, TableRowSelection, TableSize, TableSortOrder, TableVariant } from '../interface';
3
- import type { TableSorterState } from './useTableDataPipeline';
4
- interface UseTableColumnsConfig<T> {
2
+ import type { TableCheckboxProps, TableColumnType, TableExpandableConfig, TableRecord, TableRowSelection, TableSize, TableSortOrder, TableVariant } from '../interface';
3
+ import type { TableFilterState, TableSorterState } from './useTableDataPipeline';
4
+ import type { ColumnsType as InternalColumnsType } from '../internal/kernel/interface';
5
+ interface UseTableColumnsConfig<T extends TableRecord = TableRecord> {
5
6
  columns: TableColumnType<T>[];
6
7
  size: TableSize;
7
8
  variant: TableVariant;
@@ -10,9 +11,7 @@ interface UseTableColumnsConfig<T> {
10
11
  triggerExpand: (key: Key, record: T) => void;
11
12
  rowSelection?: TableRowSelection<T>;
12
13
  mergedSelectedRowKeys: Key[];
13
- checkboxPropsMap: Map<Key, Partial<{
14
- disabled: boolean;
15
- }>>;
14
+ checkboxPropsMap: Map<Key, TableCheckboxProps>;
16
15
  isAllSelected: boolean;
17
16
  isIndeterminate: boolean;
18
17
  triggerSelection: (key: Key) => void;
@@ -28,7 +27,22 @@ interface UseTableColumnsConfig<T> {
28
27
  columnKey?: Key;
29
28
  order?: TableSortOrder;
30
29
  })) => void;
30
+ filters: TableFilterState;
31
+ setFilters: (updater: TableFilterState | ((current: TableFilterState) => TableFilterState)) => void;
31
32
  getRowKey: (record: T, index: number) => Key;
32
33
  }
33
- export declare function useTableColumns<T>(config: UseTableColumnsConfig<T>): TableColumnType<T>[];
34
+ /**
35
+ * Returns columns ready to be passed to the rc-table kernel.
36
+ *
37
+ * The returned shape IS structurally the kernel's `ColumnsType<T>`:
38
+ * - Every leaf column's `render` is replaced by `makeRenderTransform`, which
39
+ * always returns a `ReactNode` (BodyCell handles `TableCellContentValue` /
40
+ * `TableRenderedCell` extras and emits ReactNode/RenderedCell).
41
+ * - Every leaf column's `title` is either a ReactNode or replaced by
42
+ * `<HeaderCell />`.
43
+ * Because TS can't track that those replacements have happened across the
44
+ * `transforms.reduce` chain, a single internal cast is required — call sites no
45
+ * longer need their own `as unknown as InternalColumnsType<T>` cast.
46
+ */
47
+ export declare function useTableColumns<T extends TableRecord = TableRecord>(config: UseTableColumnsConfig<T>): InternalColumnsType<T>;
34
48
  export {};