@1money/component-ui 0.0.46 → 0.0.48

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 (75) 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 +76 -14
  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 +4 -2
  10. package/es/components/Table/core/useTableExpand.js +30 -5
  11. package/es/components/Table/core/useTableSelection.d.ts +3 -5
  12. package/es/components/Table/core/useTableSelection.js +1 -1
  13. package/es/components/Table/core/useTableSetup.d.ts +42 -0
  14. package/es/components/Table/core/useTableSetup.js +195 -0
  15. package/es/components/Table/features/ExpandTrigger.js +10 -2
  16. package/es/components/Table/features/FilterTrigger.d.ts +9 -0
  17. package/es/components/Table/features/FilterTrigger.js +157 -0
  18. package/es/components/Table/features/SelectionColumn.d.ts +3 -2
  19. package/es/components/Table/features/SelectionColumn.js +19 -6
  20. package/es/components/Table/interface.d.ts +103 -21
  21. package/es/components/Table/internal/kernel/FixedHolder/index.js +1 -2
  22. package/es/components/Table/internal/kernel/Table.d.ts +1 -1
  23. package/es/components/Table/internal/kernel/Table.js +2 -8
  24. package/es/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -2
  25. package/es/components/Table/internal/kernel/VirtualTable/index.js +1 -2
  26. package/es/components/Table/internal/kernel/constant.d.ts +1 -1
  27. package/es/components/Table/internal/kernel/constant.js +1 -1
  28. package/es/components/Table/internal/kernel/hooks/useExpand.js +1 -2
  29. package/es/components/Table/internal/kernel/utils/offsetUtil.js +1 -2
  30. package/es/components/Table/renderers/BodyCell.d.ts +4 -4
  31. package/es/components/Table/renderers/BodyCell.js +1 -1
  32. package/es/components/Table/renderers/HeaderCell.d.ts +8 -4
  33. package/es/components/Table/renderers/HeaderCell.js +13 -3
  34. package/es/components/Table/style/Table.css +1 -1
  35. package/es/components/VirtualList/ScrollBar.js +1 -2
  36. package/es/index.css +1 -1
  37. package/lib/components/Table/Table.d.ts +2 -2
  38. package/lib/components/Table/Table.js +24 -150
  39. package/lib/components/Table/VirtualTable.d.ts +2 -2
  40. package/lib/components/Table/VirtualTable.js +28 -144
  41. package/lib/components/Table/core/useTableColumns.d.ts +21 -7
  42. package/lib/components/Table/core/useTableColumns.js +76 -14
  43. package/lib/components/Table/core/useTableDataPipeline.d.ts +13 -6
  44. package/lib/components/Table/core/useTableDataPipeline.js +192 -26
  45. package/lib/components/Table/core/useTableExpand.d.ts +4 -2
  46. package/lib/components/Table/core/useTableExpand.js +30 -5
  47. package/lib/components/Table/core/useTableSelection.d.ts +3 -5
  48. package/lib/components/Table/core/useTableSelection.js +1 -1
  49. package/lib/components/Table/core/useTableSetup.d.ts +42 -0
  50. package/lib/components/Table/core/useTableSetup.js +204 -0
  51. package/lib/components/Table/features/ExpandTrigger.js +10 -2
  52. package/lib/components/Table/features/FilterTrigger.d.ts +9 -0
  53. package/lib/components/Table/features/FilterTrigger.js +164 -0
  54. package/lib/components/Table/features/SelectionColumn.d.ts +3 -2
  55. package/lib/components/Table/features/SelectionColumn.js +19 -6
  56. package/lib/components/Table/interface.d.ts +103 -21
  57. package/lib/components/Table/internal/kernel/FixedHolder/index.js +1 -2
  58. package/lib/components/Table/internal/kernel/Table.d.ts +1 -1
  59. package/lib/components/Table/internal/kernel/Table.js +2 -8
  60. package/lib/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -2
  61. package/lib/components/Table/internal/kernel/VirtualTable/index.js +1 -2
  62. package/lib/components/Table/internal/kernel/constant.d.ts +1 -1
  63. package/lib/components/Table/internal/kernel/constant.js +1 -1
  64. package/lib/components/Table/internal/kernel/hooks/useExpand.js +1 -2
  65. package/lib/components/Table/internal/kernel/utils/offsetUtil.js +1 -2
  66. package/lib/components/Table/renderers/BodyCell.d.ts +4 -4
  67. package/lib/components/Table/renderers/BodyCell.js +1 -1
  68. package/lib/components/Table/renderers/HeaderCell.d.ts +8 -4
  69. package/lib/components/Table/renderers/HeaderCell.js +13 -3
  70. package/lib/components/Table/style/Table.css +1 -1
  71. package/lib/components/VirtualList/ScrollBar.js +1 -2
  72. package/lib/index.css +1 -1
  73. package/package.json +1 -1
  74. package/scripts/mcp-server/examples.generated.json +132 -0
  75. package/scripts/mcp-server/index.generated.json +344 -14
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FilterTrigger = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ var _react = require("react");
11
+ var _Icons = require("../../Icons");
12
+ var _Dropdown = _interopRequireDefault(require("../../Dropdown"));
13
+ var _Checkbox = require("../../Checkbox");
14
+ var _Button = require("../../Button");
15
+ var _constants = require("../constants");
16
+ var FILTER_TRIGGER_ICON_SIZE = {
17
+ large: 16,
18
+ small: 12
19
+ };
20
+ var toCheckboxValue = function toCheckboxValue(value) {
21
+ if (typeof value === 'string' || typeof value === 'number') return value;
22
+ return String(value);
23
+ };
24
+ var isPrimitive = function isPrimitive(value) {
25
+ return typeof value === 'string' || typeof value === 'number';
26
+ };
27
+ var toCheckboxValues = function toCheckboxValues(value) {
28
+ return value.map(toCheckboxValue).filter(isPrimitive);
29
+ };
30
+ var fromCheckboxValues = function fromCheckboxValues(value, filters) {
31
+ return value.map(function (v) {
32
+ var match = filters.find(function (item) {
33
+ return String(item.value) === String(v);
34
+ });
35
+ return match ? match.value : v;
36
+ });
37
+ };
38
+ var FilterTrigger = exports.FilterTrigger = function FilterTrigger(_ref) {
39
+ var column = _ref.column,
40
+ size = _ref.size,
41
+ selectedKeys = _ref.selectedKeys,
42
+ onChange = _ref.onChange;
43
+ var _a, _b;
44
+ var externallyControlled = column.filterDropdownOpen !== undefined;
45
+ var _useState = (0, _react.useState)((_a = column.defaultFilterDropdownOpen) !== null && _a !== void 0 ? _a : false),
46
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
47
+ internalOpen = _useState2[0],
48
+ setInternalOpen = _useState2[1];
49
+ var open = externallyControlled ? !!column.filterDropdownOpen : internalOpen;
50
+ var handleOpenChange = function handleOpenChange(next) {
51
+ var _a;
52
+ if (!externallyControlled) setInternalOpen(next);
53
+ (_a = column.onFilterDropdownOpenChange) === null || _a === void 0 ? void 0 : _a.call(column, next);
54
+ };
55
+ // Working selection — user can pick before confirming. Sync from external state
56
+ // when it changes (controlled mode) or when the popover (re)opens.
57
+ var _useState3 = (0, _react.useState)(selectedKeys),
58
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
59
+ draft = _useState4[0],
60
+ setDraft = _useState4[1];
61
+ (0, _react.useEffect)(function () {
62
+ setDraft(selectedKeys);
63
+ }, [selectedKeys, open]);
64
+ var filtered = selectedKeys.length > 0;
65
+ var triggerIcon = typeof column.filterIcon === 'function' ? column.filterIcon(filtered) : (_b = column.filterIcon) !== null && _b !== void 0 ? _b : (0, _jsxRuntime.jsx)(_Icons.Icons, {
66
+ name: "filter",
67
+ size: FILTER_TRIGGER_ICON_SIZE[size]
68
+ });
69
+ var close = function close() {
70
+ return handleOpenChange(false);
71
+ };
72
+ var confirm = function confirm() {
73
+ onChange(draft);
74
+ close();
75
+ };
76
+ var clearFilters = function clearFilters() {
77
+ setDraft([]);
78
+ onChange([]);
79
+ close();
80
+ };
81
+ var renderDropdownContent = function renderDropdownContent() {
82
+ if (typeof column.filterDropdown === 'function') {
83
+ var props = {
84
+ prefixCls: _constants.TABLE_DEFAULT_PREFIX,
85
+ setSelectedKeys: setDraft,
86
+ selectedKeys: draft,
87
+ confirm: confirm,
88
+ clearFilters: clearFilters,
89
+ filters: column.filters,
90
+ visible: open,
91
+ close: close,
92
+ column: column
93
+ };
94
+ return column.filterDropdown(props);
95
+ }
96
+ if (column.filterDropdown !== undefined) {
97
+ return column.filterDropdown;
98
+ }
99
+ if (!column.filters || column.filters.length === 0) return null;
100
+ var multiple = column.filterMultiple !== false;
101
+ var filters = column.filters;
102
+ return (0, _jsxRuntime.jsxs)("div", {
103
+ className: "".concat(_constants.TABLE_DEFAULT_PREFIX, "-filter-dropdown"),
104
+ children: [multiple ? (0, _jsxRuntime.jsx)(_Checkbox.CheckboxGroup, {
105
+ value: toCheckboxValues(draft),
106
+ options: filters.map(function (item) {
107
+ return {
108
+ value: toCheckboxValue(item.value),
109
+ label: item.text
110
+ };
111
+ }),
112
+ onChange: function onChange(values) {
113
+ return setDraft(fromCheckboxValues(values, filters));
114
+ },
115
+ direction: "vertical"
116
+ }) : filters.map(function (item) {
117
+ var itemKey = String(item.value);
118
+ var isSelected = draft.some(function (v) {
119
+ return String(v) === itemKey;
120
+ });
121
+ return (0, _jsxRuntime.jsxs)("label", {
122
+ className: "".concat(_constants.TABLE_DEFAULT_PREFIX, "-filter-dropdown__item"),
123
+ children: [(0, _jsxRuntime.jsx)(_Checkbox.Checkbox, {
124
+ checked: isSelected,
125
+ onChange: function onChange() {
126
+ return setDraft(isSelected ? [] : [item.value]);
127
+ }
128
+ }), (0, _jsxRuntime.jsx)("span", {
129
+ children: item.text
130
+ })]
131
+ }, itemKey);
132
+ }), (0, _jsxRuntime.jsxs)("div", {
133
+ className: "".concat(_constants.TABLE_DEFAULT_PREFIX, "-filter-dropdown__footer"),
134
+ children: [(0, _jsxRuntime.jsx)(_Button.Button, {
135
+ size: "small",
136
+ variant: "text",
137
+ onClick: clearFilters,
138
+ children: "Reset"
139
+ }), (0, _jsxRuntime.jsx)(_Button.Button, {
140
+ size: "small",
141
+ color: "primary",
142
+ onClick: confirm,
143
+ children: "OK"
144
+ })]
145
+ })]
146
+ });
147
+ };
148
+ return (0, _jsxRuntime.jsx)(_Dropdown["default"], {
149
+ open: open,
150
+ onOpenChange: handleOpenChange,
151
+ trigger: "click",
152
+ content: renderDropdownContent(),
153
+ placement: "bottom-end",
154
+ portal: true,
155
+ children: (0, _jsxRuntime.jsx)("button", {
156
+ type: "button",
157
+ "aria-label": "Filter ".concat(typeof column.title === 'string' ? column.title : ''),
158
+ "aria-haspopup": "listbox",
159
+ className: "".concat(_constants.TABLE_DEFAULT_PREFIX, "-filter-trigger ").concat(_constants.TABLE_DEFAULT_PREFIX, "-filter-trigger--").concat(size).concat(filtered ? " ".concat(_constants.TABLE_DEFAULT_PREFIX, "-filter-trigger--active") : ''),
160
+ children: triggerIcon
161
+ })
162
+ });
163
+ };
164
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvZmVhdHVyZXMvRmlsdGVyVHJpZ2dlci5qcyIsImNvbXBvbmVudHMvVGFibGUvc3JjL2NvbXBvbmVudHMvVGFibGUvZmVhdHVyZXMvRmlsdGVyVHJpZ2dlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0ljb25zIiwiX0Ryb3Bkb3duIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9DaGVja2JveCIsIl9CdXR0b24iLCJfY29uc3RhbnRzIiwiRklMVEVSX1RSSUdHRVJfSUNPTl9TSVpFIiwibGFyZ2UiLCJzbWFsbCIsInRvQ2hlY2tib3hWYWx1ZSIsInZhbHVlIiwiU3RyaW5nIiwiaXNQcmltaXRpdmUiLCJ0b0NoZWNrYm94VmFsdWVzIiwibWFwIiwiZmlsdGVyIiwiZnJvbUNoZWNrYm94VmFsdWVzIiwiZmlsdGVycyIsInYiLCJtYXRjaCIsImZpbmQiLCJpdGVtIiwiRmlsdGVyVHJpZ2dlciIsImV4cG9ydHMiLCJfcmVmIiwiY29sdW1uIiwic2l6ZSIsInNlbGVjdGVkS2V5cyIsIm9uQ2hhbmdlIiwiX2EiLCJfYiIsImV4dGVybmFsbHlDb250cm9sbGVkIiwiZmlsdGVyRHJvcGRvd25PcGVuIiwidW5kZWZpbmVkIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJkZWZhdWx0RmlsdGVyRHJvcGRvd25PcGVuIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImludGVybmFsT3BlbiIsInNldEludGVybmFsT3BlbiIsIm9wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwibmV4dCIsIm9uRmlsdGVyRHJvcGRvd25PcGVuQ2hhbmdlIiwiY2FsbCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZHJhZnQiLCJzZXREcmFmdCIsInVzZUVmZmVjdCIsImZpbHRlcmVkIiwibGVuZ3RoIiwidHJpZ2dlckljb24iLCJmaWx0ZXJJY29uIiwiX2pzeCIsIkljb25zIiwibmFtZSIsImNsb3NlIiwiY29uZmlybSIsImNsZWFyRmlsdGVycyIsInJlbmRlckRyb3Bkb3duQ29udGVudCIsImZpbHRlckRyb3Bkb3duIiwicHJvcHMiLCJwcmVmaXhDbHMiLCJUQUJMRV9ERUZBVUxUX1BSRUZJWCIsInNldFNlbGVjdGVkS2V5cyIsInZpc2libGUiLCJtdWx0aXBsZSIsImZpbHRlck11bHRpcGxlIiwiX2pzeHMiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJjaGlsZHJlbiIsIkNoZWNrYm94R3JvdXAiLCJvcHRpb25zIiwibGFiZWwiLCJ0ZXh0IiwidmFsdWVzIiwiZGlyZWN0aW9uIiwiaXRlbUtleSIsImlzU2VsZWN0ZWQiLCJzb21lIiwiQ2hlY2tib3giLCJjaGVja2VkIiwiQnV0dG9uIiwidmFyaWFudCIsIm9uQ2xpY2siLCJjb2xvciIsIkRyb3Bkb3duIiwib25PcGVuQ2hhbmdlIiwidHJpZ2dlciIsImNvbnRlbnQiLCJwbGFjZW1lbnQiLCJwb3J0YWwiLCJ0eXBlIiwidGl0bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBU0EsSUFBTVEsd0JBQXdCLEdBQUc7RUFDL0JDLEtBQUssRUFBRSxFQUFFO0VBQ1RDLEtBQUssRUFBRTtBRFJULENDU1U7QUFTVixJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUlDLEtBQWMsRUFBdUI7RUFDNUQsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLEVBQUUsT0FBT0EsS0FBSztFQUN4RSxPQUFPQyxNQUFNLENBQUNELEtBQUssQ0FBQztBQUN0QixDQUFD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QUFDO0VBRUQsT0FDRSxJQUFBbEIsZUFBQSxFQUFDa0Msb0JBQVEsRUFBQTtJQUNQaEQsSUFBSSxFQUFFQSxJQUFJO0lBQ1ZpRCxZQUFZLEVBQUVoRCxnQkFBZ0I7SUFDOUJpRCxPQUFPLEVBQUMsT0FBTztJQUNmQyxPQUFPLEVBQUUvQixxQkFBcUIsQ0FBQSxDQUFFO0lBQ2hDZ0MsU0FBUyxFQUFDLFlBQVk7SUFDdEJDLE1BQU0sRUFBQSxJQUFBO0lBQUFyQixRQUFBLEVBRU4sSUFBQWxCLGVBQUEsRUFBQSxRQUFBLEVBQUE7TUFDRXdDLElBQUksRUFBQyxRQUFRO01BQUEsWUFBQSxZQUFBdkIsTUFBQSxDQUNTLE9BQU8vQyxNQUFNLENBQUN1RSxLQUFLLEtBQUssUUFBUSxHQUFHdkUsTUFBTSxDQUFDdUUsS0FBSyxHQUFHLEVBQUUsQ0FBRTtNQUFBLGVBQUEsRUFDOUQsU0FBUztNQUN2QnpCLFNBQVMsS0FBQUMsTUFBQSxDQUFLUCwrQkFBb0Isc0JBQUFPLE1BQUEsQ0FBbUJQLCtCQUFvQix1QkFBQU8sTUFBQSxDQUFvQjlDLElBQUksRUFBQThDLE1BQUEsQ0FDL0ZyQixRQUFRLE9BQUFxQixNQUFBLENBQU9QLCtCQUFvQiwrQkFBNEIsRUFDakUsQ0FBRTtNQUFBUSxRQUFBLEVBRURwQjtJQUFXLENBQUE7RUFDTCxDQUFBLENBQ0E7QUFFZixDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvZmVhdHVyZXMvRmlsdGVyVHJpZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi9JY29ucyc7XG5pbXBvcnQgRHJvcGRvd24gZnJvbSAnLi4vLi4vRHJvcGRvd24nO1xuaW1wb3J0IHsgQ2hlY2tib3gsIENoZWNrYm94R3JvdXAgfSBmcm9tICcuLi8uLi9DaGVja2JveCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgVEFCTEVfREVGQVVMVF9QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuY29uc3QgRklMVEVSX1RSSUdHRVJfSUNPTl9TSVpFID0ge1xuICAgIGxhcmdlOiAxNixcbiAgICBzbWFsbDogMTIsXG59O1xuY29uc3QgdG9DaGVja2JveFZhbHVlID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xufTtcbmNvbnN0IGlzUHJpbWl0aXZlID0gKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcic7XG5jb25zdCB0b0NoZWNrYm94VmFsdWVzID0gKHZhbHVlKSA9PiB2YWx1ZS5tYXAodG9DaGVja2JveFZhbHVlKS5maWx0ZXIoaXNQcmltaXRpdmUpO1xuY29uc3QgZnJvbUNoZWNrYm94VmFsdWVzID0gKHZhbHVlLCBmaWx0ZXJzKSA9PiB2YWx1ZS5tYXAoKHYpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IGZpbHRlcnMuZmluZCgoaXRlbSkgPT4gU3RyaW5nKGl0ZW0udmFsdWUpID09PSBTdHJpbmcodikpO1xuICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLnZhbHVlIDogdjtcbn0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlclRyaWdnZXIgPSAoeyBjb2x1bW4sIHNpemUsIHNlbGVjdGVkS2V5cywgb25DaGFuZ2UsIH0pID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IGV4dGVybmFsbHlDb250cm9sbGVkID0gY29sdW1uLmZpbHRlckRyb3Bkb3duT3BlbiAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IFtpbnRlcm5hbE9wZW4sIHNldEludGVybmFsT3Blbl0gPSB1c2VTdGF0ZSgoX2EgPSBjb2x1bW4uZGVmYXVsdEZpbHRlckRyb3Bkb3duT3BlbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UpO1xuICAgIGNvbnN0IG9wZW4gPSBleHRlcm5hbGx5Q29udHJvbGxlZCA/ICEhY29sdW1uLmZpbHRlckRyb3Bkb3duT3BlbiA6IGludGVybmFsT3BlbjtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gKG5leHQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWV4dGVybmFsbHlDb250cm9sbGVkKVxuICAgICAgICAgICAgc2V0SW50ZXJuYWxPcGVuKG5leHQpO1xuICAgICAgICAoX2EgPSBjb2x1bW4ub25GaWx0ZXJEcm9wZG93bk9wZW5DaGFuZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbHVtbiwgbmV4dCk7XG4gICAgfTtcbiAgICAvLyBXb3JraW5nIHNlbGVjdGlvbiDigJQgdXNlciBjYW4gcGljayBiZWZvcmUgY29uZmlybWluZy4gU3luYyBmcm9tIGV4dGVybmFsIHN0YXRlXG4gICAgLy8gd2hlbiBpdCBjaGFuZ2VzIChjb250cm9sbGVkIG1vZGUpIG9yIHdoZW4gdGhlIHBvcG92ZXIgKHJlKW9wZW5zLlxuICAgIGNvbnN0IFtkcmFmdCwgc2V0RHJhZnRdID0gdXNlU3RhdGUoc2VsZWN0ZWRLZXlzKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXREcmFmdChzZWxlY3RlZEtleXMpO1xuICAgIH0sIFtzZWxlY3RlZEtleXMsIG9wZW5dKTtcbiAgICBjb25zdCBmaWx0ZXJlZCA9IHNlbGVjdGVkS2V5cy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHRyaWdnZXJJY29uID0gdHlwZW9mIGNvbHVtbi5maWx0ZXJJY29uID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY29sdW1uLmZpbHRlckljb24oZmlsdGVyZWQpXG4gICAgICAgIDogKF9iID0gY29sdW1uLmZpbHRlckljb24pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IF9qc3goSWNvbnMsIHsgbmFtZTogXCJmaWx0ZXJcIiwgc2l6ZTogRklMVEVSX1RSSUdHRVJfSUNPTl9TSVpFW3NpemVdIH0pO1xuICAgIGNvbnN0IGNsb3NlID0gKCkgPT4gaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgY29uc3QgY29uZmlybSA9ICgpID0+IHtcbiAgICAgICAgb25DaGFuZ2UoZHJhZnQpO1xuICAgICAgICBjbG9zZSgpO1xuICAgIH07XG4gICAgY29uc3QgY2xlYXJGaWx0ZXJzID0gKCkgPT4ge1xuICAgICAgICBzZXREcmFmdChbXSk7XG4gICAgICAgIG9uQ2hhbmdlKFtdKTtcbiAgICAgICAgY2xvc2UoKTtcbiAgICB9O1xuICAgIGNvbnN0IHJlbmRlckRyb3Bkb3duQ29udGVudCA9ICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW4uZmlsdGVyRHJvcGRvd24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAgICAgICAgIHByZWZpeENsczogVEFCTEVfREVGQVVMVF9QUkVGSVgsXG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRLZXlzOiBzZXREcmFmdCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEtleXM6IGRyYWZ0LFxuICAgICAgICAgICAgICAgIGNvbmZpcm0sXG4gICAgICAgICAgICAgICAgY2xlYXJGaWx0ZXJzLFxuICAgICAgICAgICAgICAgIGZpbHRlcnM6IGNvbHVtbi5maWx0ZXJzLFxuICAgICAgICAgICAgICAgIHZpc2libGU6IG9wZW4sXG4gICAgICAgICAgICAgICAgY2xvc2UsXG4gICAgICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4uZmlsdGVyRHJvcGRvd24ocHJvcHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2x1bW4uZmlsdGVyRHJvcGRvd24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5maWx0ZXJEcm9wZG93bjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbHVtbi5maWx0ZXJzIHx8IGNvbHVtbi5maWx0ZXJzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCBtdWx0aXBsZSA9IGNvbHVtbi5maWx0ZXJNdWx0aXBsZSAhPT0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBjb2x1bW4uZmlsdGVycztcbiAgICAgICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogYCR7VEFCTEVfREVGQVVMVF9QUkVGSVh9LWZpbHRlci1kcm9wZG93bmAsIGNoaWxkcmVuOiBbbXVsdGlwbGUgPyAoX2pzeChDaGVja2JveEdyb3VwLCB7IHZhbHVlOiB0b0NoZWNrYm94VmFsdWVzKGRyYWZ0KSwgb3B0aW9uczogZmlsdGVycy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9DaGVja2JveFZhbHVlKGl0ZW0udmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgfSkpLCBvbkNoYW5nZTogKHZhbHVlcykgPT4gc2V0RHJhZnQoZnJvbUNoZWNrYm94VmFsdWVzKHZhbHVlcywgZmlsdGVycykpLCBkaXJlY3Rpb246IFwidmVydGljYWxcIiB9KSkgOiAoZmlsdGVycy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbUtleSA9IFN0cmluZyhpdGVtLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGRyYWZ0LnNvbWUoKHYpID0+IFN0cmluZyh2KSA9PT0gaXRlbUtleSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeHMoXCJsYWJlbFwiLCB7IGNsYXNzTmFtZTogYCR7VEFCTEVfREVGQVVMVF9QUkVGSVh9LWZpbHRlci1kcm9wZG93bl9faXRlbWAsIGNoaWxkcmVuOiBbX2pzeChDaGVja2JveCwgeyBjaGVja2VkOiBpc1NlbGVjdGVkLCBvbkNoYW5nZTogKCkgPT4gc2V0RHJhZnQoaXNTZWxlY3RlZCA/IFtdIDogW2l0ZW0udmFsdWVdKSB9KSwgX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogaXRlbS50ZXh0IH0pXSB9LCBpdGVtS2V5KSk7XG4gICAgICAgICAgICAgICAgfSkpLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogYCR7VEFCTEVfREVGQVVMVF9QUkVGSVh9LWZpbHRlci1kcm9wZG93bl9fZm9vdGVyYCwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyBzaXplOiBcInNtYWxsXCIsIHZhcmlhbnQ6IFwidGV4dFwiLCBvbkNsaWNrOiBjbGVhckZpbHRlcnMsIGNoaWxkcmVuOiBcIlJlc2V0XCIgfSksIF9qc3goQnV0dG9uLCB7IHNpemU6IFwic21hbGxcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBvbkNsaWNrOiBjb25maXJtLCBjaGlsZHJlbjogXCJPS1wiIH0pXSB9KV0gfSkpO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KERyb3Bkb3duLCB7IG9wZW46IG9wZW4sIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSwgdHJpZ2dlcjogXCJjbGlja1wiLCBjb250ZW50OiByZW5kZXJEcm9wZG93bkNvbnRlbnQoKSwgcGxhY2VtZW50OiBcImJvdHRvbS1lbmRcIiwgcG9ydGFsOiB0cnVlLCBjaGlsZHJlbjogX2pzeChcImJ1dHRvblwiLCB7IHR5cGU6IFwiYnV0dG9uXCIsIFwiYXJpYS1sYWJlbFwiOiBgRmlsdGVyICR7dHlwZW9mIGNvbHVtbi50aXRsZSA9PT0gJ3N0cmluZycgPyBjb2x1bW4udGl0bGUgOiAnJ31gLCBcImFyaWEtaGFzcG9wdXBcIjogXCJsaXN0Ym94XCIsIGNsYXNzTmFtZTogYCR7VEFCTEVfREVGQVVMVF9QUkVGSVh9LWZpbHRlci10cmlnZ2VyICR7VEFCTEVfREVGQVVMVF9QUkVGSVh9LWZpbHRlci10cmlnZ2VyLS0ke3NpemV9JHtmaWx0ZXJlZCA/IGAgJHtUQUJMRV9ERUZBVUxUX1BSRUZJWH0tZmlsdGVyLXRyaWdnZXItLWFjdGl2ZWAgOiAnJ31gLCBjaGlsZHJlbjogdHJpZ2dlckljb24gfSkgfSkpO1xufTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,7 +1,8 @@
1
- export declare const SelectionControl: ({ checked, type, disabled, onChange, }: {
1
+ import type { TableCheckboxProps } from '../interface';
2
+ export declare const SelectionControl: ({ checked, type, rowProps, onChange, }: {
2
3
  checked: boolean;
3
4
  type: "checkbox" | "radio";
4
- disabled?: boolean;
5
+ rowProps?: TableCheckboxProps;
5
6
  onChange: () => void;
6
7
  }) => import("react/jsx-runtime").JSX.Element;
7
8
  export declare const SelectionHeaderControl: ({ checked, indeterminate, onChange, }: {
@@ -7,11 +7,24 @@ exports.SelectionHeaderControl = exports.SelectionControl = void 0;
7
7
  var _jsxRuntime = require("react/jsx-runtime");
8
8
  var _Checkbox = require("../../Checkbox");
9
9
  var _Radio = require("../../Radio");
10
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
13
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
15
+ }
16
+ return t;
17
+ };
10
18
  var SelectionControl = exports.SelectionControl = function SelectionControl(_ref) {
11
19
  var checked = _ref.checked,
12
20
  type = _ref.type,
13
- disabled = _ref.disabled,
21
+ rowProps = _ref.rowProps,
14
22
  _onChange = _ref.onChange;
23
+ var _a = rowProps !== null && rowProps !== void 0 ? rowProps : {},
24
+ disabled = _a.disabled,
25
+ _a$ariaLabel = _a['aria-label'],
26
+ ariaLabel = _a$ariaLabel === void 0 ? 'Select row' : _a$ariaLabel,
27
+ rest = __rest(_a, ["disabled", 'aria-label']);
15
28
  if (type === 'radio') {
16
29
  return (0, _jsxRuntime.jsx)(_Radio.Radio, {
17
30
  checked: checked,
@@ -19,17 +32,17 @@ var SelectionControl = exports.SelectionControl = function SelectionControl(_ref
19
32
  onChange: function onChange() {
20
33
  return _onChange();
21
34
  },
22
- "aria-label": "Select row"
35
+ "aria-label": ariaLabel
23
36
  });
24
37
  }
25
- return (0, _jsxRuntime.jsx)(_Checkbox.Checkbox, {
38
+ return (0, _jsxRuntime.jsx)(_Checkbox.Checkbox, Object.assign({}, rest, {
26
39
  checked: checked,
27
40
  disabled: disabled,
28
41
  onChange: function onChange() {
29
42
  return _onChange();
30
43
  },
31
- "aria-label": "Select row"
32
- });
44
+ "aria-label": ariaLabel
45
+ }));
33
46
  };
34
47
  var SelectionHeaderControl = exports.SelectionHeaderControl = function SelectionHeaderControl(_ref2) {
35
48
  var checked = _ref2.checked,
@@ -44,4 +57,4 @@ var SelectionHeaderControl = exports.SelectionHeaderControl = function Selection
44
57
  "aria-label": "Select all rows"
45
58
  });
46
59
  };
47
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvZmVhdHVyZXMvU2VsZWN0aW9uQ29sdW1uLmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9mZWF0dXJlcy9TZWxlY3Rpb25Db2x1bW4udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9DaGVja2JveCIsIl9SYWRpbyIsIlNlbGVjdGlvbkNvbnRyb2wiLCJleHBvcnRzIiwiX3JlZiIsImNoZWNrZWQiLCJ0eXBlIiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsIl9qc3giLCJSYWRpbyIsIkNoZWNrYm94IiwiU2VsZWN0aW9uSGVhZGVyQ29udHJvbCIsIl9yZWYyIiwiaW5kZXRlcm1pbmF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBRU8sSUFBTUcsZ0JBQWdCLEdBQUFDLE9BQUEsQ0FBQUQsZ0JBQUEsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBRSxJQUFBLEVBVXhCO0VBQUEsSUFUSEMsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFDUEMsSUFBSSxHQUFBRixJQUFBLENBQUpFLElBQUk7SUFDSkMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7SUFDUkMsU0FBUSxHQUFBSixJQUFBLENBQVJJLFFBQVE7RUFPUixJQUFJRixJQUFJLEtBQUssT0FBTyxFQUFFO0lBQ3BCLE9BQU8sSUFBQUcsZUFBQSxFQUFDQyxZQUFLLEVBQUE7TUFBQ0wsT0FBTyxFQUFFQSxPQUFPO01BQUVFLFFBQVEsRUFBRUEsUUFBUTtNQUFFQyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtRQUFBLE9BQVFBLFNBQVEsQ0FBQSxDQUFFO01BQUE7TUFBQSxZQUFBLEVBQWE7SUFBWSxDQUFBLENBQUc7RUFDNUc7RUFFQSxPQUFPLElBQUFDLGVBQUEsRUFBQ0Usa0JBQVEsRUFBQTtJQUFDTixPQUFPLEVBQUVBLE9BQU87SUFBRUUsUUFBUSxFQUFFQSxRQUFRO0lBQUVDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFBO01BQUEsT0FBUUEsU0FBUSxDQUFBLENBQUU7SUFBQTtJQUFBLFlBQUEsRUFBYTtFQUFZLENBQUEsQ0FBRztBQUMvRyxDQUFDO0FBRU0sSUFBTUksc0JBQXNCLEdBQUFULE9BQUEsQ0FBQVMsc0JBQUEsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBQyxLQUFBO0VBQUEsSUFDakNSLE9BQU8sR0FBQVEsS0FBQSxDQUFQUixPQUFPO0lBQ1BTLGFBQWEsR0FBQUQsS0FBQSxDQUFiQyxhQUFhO0lBQ2JOLFVBQVEsR0FBQUssS0FBQSxDQUFSTCxRQUFRO0VBQUEsT0FNUixJQUFBQyxlQUFBLEVBQUNFLGtCQUFRLEVBQUE7SUFDUE4sT0FBTyxFQUFFQSxPQUFPO0lBQ2hCUyxhQUFhLEVBQUVBLGFBQWE7SUFDNUJOLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFBO01BQUEsT0FBUUEsVUFBUSxDQUFBLENBQUU7SUFBQTtJQUFBLFlBQUEsRUFDZjtFQUFpQixDQUFBLENBQzVCO0FBQUEsQ0FDSCIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2ZlYXR1cmVzL1NlbGVjdGlvbkNvbHVtbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJy4uLy4uL0NoZWNrYm94JztcbmltcG9ydCB7IFJhZGlvIH0gZnJvbSAnLi4vLi4vUmFkaW8nO1xuZXhwb3J0IGNvbnN0IFNlbGVjdGlvbkNvbnRyb2wgPSAoeyBjaGVja2VkLCB0eXBlLCBkaXNhYmxlZCwgb25DaGFuZ2UsIH0pID0+IHtcbiAgICBpZiAodHlwZSA9PT0gJ3JhZGlvJykge1xuICAgICAgICByZXR1cm4gX2pzeChSYWRpbywgeyBjaGVja2VkOiBjaGVja2VkLCBkaXNhYmxlZDogZGlzYWJsZWQsIG9uQ2hhbmdlOiAoKSA9PiBvbkNoYW5nZSgpLCBcImFyaWEtbGFiZWxcIjogXCJTZWxlY3Qgcm93XCIgfSk7XG4gICAgfVxuICAgIHJldHVybiBfanN4KENoZWNrYm94LCB7IGNoZWNrZWQ6IGNoZWNrZWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgb25DaGFuZ2U6ICgpID0+IG9uQ2hhbmdlKCksIFwiYXJpYS1sYWJlbFwiOiBcIlNlbGVjdCByb3dcIiB9KTtcbn07XG5leHBvcnQgY29uc3QgU2VsZWN0aW9uSGVhZGVyQ29udHJvbCA9ICh7IGNoZWNrZWQsIGluZGV0ZXJtaW5hdGUsIG9uQ2hhbmdlLCB9KSA9PiAoX2pzeChDaGVja2JveCwgeyBjaGVja2VkOiBjaGVja2VkLCBpbmRldGVybWluYXRlOiBpbmRldGVybWluYXRlLCBvbkNoYW5nZTogKCkgPT4gb25DaGFuZ2UoKSwgXCJhcmlhLWxhYmVsXCI6IFwiU2VsZWN0IGFsbCByb3dzXCIgfSkpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
60
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvZmVhdHVyZXMvU2VsZWN0aW9uQ29sdW1uLmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9mZWF0dXJlcy9TZWxlY3Rpb25Db2x1bW4udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9DaGVja2JveCIsIl9SYWRpbyIsIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiU2VsZWN0aW9uQ29udHJvbCIsImV4cG9ydHMiLCJfcmVmIiwiY2hlY2tlZCIsInR5cGUiLCJyb3dQcm9wcyIsIm9uQ2hhbmdlIiwiX2EiLCJkaXNhYmxlZCIsIl9hJGFyaWFMYWJlbCIsImFyaWFMYWJlbCIsInJlc3QiLCJfanN4IiwiUmFkaW8iLCJDaGVja2JveCIsImFzc2lnbiIsIlNlbGVjdGlvbkhlYWRlckNvbnRyb2wiLCJfcmVmMiIsImluZGV0ZXJtaW5hdGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBRERBLElBQUlHLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFD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LENBQUEsQ0FBRTtJQUFBO0lBQUEsWUFBQSxFQUNmO0VBQWlCLENBQUEsQ0FDNUI7QUFBQSxDQUNIIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvZmVhdHVyZXMvU2VsZWN0aW9uQ29sdW1uLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vLi4vQ2hlY2tib3gnO1xuaW1wb3J0IHsgUmFkaW8gfSBmcm9tICcuLi8uLi9SYWRpbyc7XG5leHBvcnQgY29uc3QgU2VsZWN0aW9uQ29udHJvbCA9ICh7IGNoZWNrZWQsIHR5cGUsIHJvd1Byb3BzLCBvbkNoYW5nZSwgfSkgPT4ge1xuICAgIGNvbnN0IF9hID0gcm93UHJvcHMgIT09IG51bGwgJiYgcm93UHJvcHMgIT09IHZvaWQgMCA/IHJvd1Byb3BzIDoge30sIHsgZGlzYWJsZWQsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsID0gJ1NlbGVjdCByb3cnIH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wiZGlzYWJsZWRcIiwgJ2FyaWEtbGFiZWwnXSk7XG4gICAgaWYgKHR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFJhZGlvLCB7IGNoZWNrZWQ6IGNoZWNrZWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgb25DaGFuZ2U6ICgpID0+IG9uQ2hhbmdlKCksIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3goQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgY2hlY2tlZDogY2hlY2tlZCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBvbkNoYW5nZTogKCkgPT4gb25DaGFuZ2UoKSwgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBTZWxlY3Rpb25IZWFkZXJDb250cm9sID0gKHsgY2hlY2tlZCwgaW5kZXRlcm1pbmF0ZSwgb25DaGFuZ2UsIH0pID0+IChfanN4KENoZWNrYm94LCB7IGNoZWNrZWQ6IGNoZWNrZWQsIGluZGV0ZXJtaW5hdGU6IGluZGV0ZXJtaW5hdGUsIG9uQ2hhbmdlOiAoKSA9PiBvbkNoYW5nZSgpLCBcImFyaWEtbGFiZWxcIjogXCJTZWxlY3QgYWxsIHJvd3NcIiB9KSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,23 +1,32 @@
1
1
  import type React from 'react';
2
2
  import type { CSSProperties, HTMLAttributes, Key, ReactNode } from 'react';
3
+ import type { CheckboxProps } from "../Checkbox";
3
4
  import type { EmptyProps } from "../Empty";
5
+ import type { DataIndex as InternalDataIndex } from './internal/kernel/interface';
4
6
  export type TableSize = 'large' | 'small';
5
7
  export type TableVariant = 'fill' | 'stroke';
6
8
  export type TableAlign = 'left' | 'center' | 'right';
7
9
  export type TableSortOrder = 'ascend' | 'descend' | null;
8
- export type TableAction = 'paginate' | 'sort';
10
+ export type TableAction = 'paginate' | 'sort' | 'filter';
9
11
  export type TableLayout = 'auto' | 'fixed';
10
12
  export type TableDirection = 'ltr' | 'rtl';
13
+ /** Default record shape. */
14
+ export type TableRecord = Record<string, any>;
15
+ /**
16
+ * Path used to derive a value from a record. Re-exported from the kernel so the
17
+ * recursive deep paths) instead of the previous narrower union.
18
+ */
19
+ export type TableDataIndex<T extends TableRecord = TableRecord> = InternalDataIndex<T>;
11
20
  export interface TablePaginationConfig {
12
21
  current?: number;
13
22
  defaultCurrent?: number;
14
23
  pageSize?: number;
15
24
  defaultPageSize?: number;
16
25
  }
17
- export interface TableCellRenderMeta<T> {
26
+ export interface TableCellRenderMeta<T extends TableRecord = TableRecord> {
18
27
  column: TableColumn<T>;
19
28
  }
20
- export interface TableHeaderRenderMeta<T> {
29
+ export interface TableHeaderRenderMeta<T extends TableRecord = TableRecord> {
21
30
  column: TableColumn<T>;
22
31
  }
23
32
  export interface TableCellContentValue {
@@ -26,7 +35,7 @@ export interface TableCellContentValue {
26
35
  leading?: ReactNode;
27
36
  trailing?: ReactNode;
28
37
  }
29
- export interface TableRenderedCell<T> {
38
+ export interface TableRenderedCell<T extends TableRecord = TableRecord> {
30
39
  children?: ReactNode;
31
40
  props?: {
32
41
  colSpan?: number;
@@ -34,16 +43,18 @@ export interface TableRenderedCell<T> {
34
43
  className?: string;
35
44
  style?: CSSProperties;
36
45
  };
46
+ /** Reserved for future record/column-aware overrides; preserves T for variance. */
47
+ __recordType?: T;
37
48
  }
38
- export interface TableColumnSorterConfig<T> {
49
+ export interface TableColumnSorterConfig<T extends TableRecord = TableRecord> {
39
50
  compare: (a: T, b: T) => number;
40
51
  /** Priority number for multi-column sort. Columns with higher values are compared first. */
41
52
  multiple: number;
42
53
  }
43
54
  export type TableGetComponentProps<T> = (data: T, index?: number) => HTMLAttributes<HTMLElement> & React.TdHTMLAttributes<HTMLElement>;
44
- export type TableRowClassName<T> = string | ((record: T, index: number, indent: number) => string);
55
+ export type TableRowClassName<T extends TableRecord = TableRecord> = string | ((record: T, index: number, indent: number) => string);
45
56
  type TableCustomizeComponent = React.ComponentType<any> | React.ForwardRefExoticComponent<any> | React.FC<any> | keyof React.JSX.IntrinsicElements;
46
- export interface TableComponents<T> {
57
+ export interface TableComponents<T extends TableRecord = TableRecord> {
47
58
  table?: TableCustomizeComponent;
48
59
  header?: {
49
60
  table?: TableCustomizeComponent;
@@ -56,10 +67,31 @@ export interface TableComponents<T> {
56
67
  row?: TableCustomizeComponent;
57
68
  cell?: TableCustomizeComponent;
58
69
  };
70
+ /** Reserved to preserve record-type variance. */
71
+ __recordType?: T;
59
72
  }
60
- export interface TableColumn<T> {
73
+ export type TableFilterValue = (Key | boolean)[];
74
+ export interface TableColumnFilterItem {
75
+ text: ReactNode;
76
+ value: Key | boolean;
77
+ children?: TableColumnFilterItem[];
78
+ }
79
+ export interface TableFilterDropdownProps<T extends TableRecord = TableRecord> {
80
+ prefixCls: string;
81
+ setSelectedKeys: (selectedKeys: TableFilterValue) => void;
82
+ selectedKeys: TableFilterValue;
83
+ /** Apply current selection and close the dropdown. */
84
+ confirm: () => void;
85
+ /** Reset selection for this column. */
86
+ clearFilters?: () => void;
87
+ filters?: TableColumnFilterItem[];
88
+ visible: boolean;
89
+ close: () => void;
90
+ column: TableColumn<T>;
91
+ }
92
+ export interface TableColumn<T extends TableRecord = TableRecord> {
61
93
  key?: Key;
62
- dataIndex?: keyof T | string | string[];
94
+ dataIndex?: TableDataIndex<T>;
63
95
  title?: ReactNode;
64
96
  width?: number | string;
65
97
  minWidth?: number;
@@ -76,6 +108,23 @@ export interface TableColumn<T> {
76
108
  sorter?: boolean | ((a: T, b: T) => number) | TableColumnSorterConfig<T>;
77
109
  sortOrder?: TableSortOrder;
78
110
  defaultSortOrder?: Exclude<TableSortOrder, null>;
111
+ filters?: TableColumnFilterItem[];
112
+ filteredValue?: TableFilterValue | null;
113
+ defaultFilteredValue?: TableFilterValue | null;
114
+ filterMultiple?: boolean;
115
+ filterMode?: 'menu' | 'tree';
116
+ filterSearch?: boolean | ((input: string, item: TableColumnFilterItem) => boolean);
117
+ filterIcon?: ReactNode | ((filtered: boolean) => ReactNode);
118
+ filterDropdown?: ReactNode | ((props: TableFilterDropdownProps<T>) => ReactNode);
119
+ filterDropdownOpen?: boolean;
120
+ defaultFilterDropdownOpen?: boolean;
121
+ /**
122
+ * Predicate used to filter rows when `filters` (built-in UI) or `filteredValue`
123
+ * (controlled) is set. Receives one filter value at a time per row; row is kept
124
+ * if the predicate returns `true` for ANY currently selected value.
125
+ */
126
+ onFilter?: (value: Key | boolean, record: T) => boolean;
127
+ onFilterDropdownOpenChange?: (open: boolean) => void;
79
128
  onCell?: TableGetComponentProps<T>;
80
129
  onHeaderCell?: TableGetComponentProps<TableColumn<T>>;
81
130
  shouldCellUpdate?: (record: T, prevRecord: T) => boolean;
@@ -83,37 +132,60 @@ export interface TableColumn<T> {
83
132
  headerClassName?: string;
84
133
  cellClassName?: string | ((value: unknown, record: T, index: number) => string);
85
134
  }
86
- export interface TableColumnGroup<T> extends Pick<TableColumn<T>, 'key' | 'title' | 'align' | 'className' | 'headerClassName' | 'fixed'> {
135
+ export interface TableColumnGroup<T extends TableRecord = TableRecord> extends Pick<TableColumn<T>, 'key' | 'title' | 'align' | 'className' | 'headerClassName' | 'fixed'> {
87
136
  children: TableColumnType<T>[];
88
137
  }
89
- export type TableColumnType<T> = TableColumn<T> | TableColumnGroup<T>;
90
- export interface TableChangeMeta<T> {
138
+ export type TableColumnType<T extends TableRecord = TableRecord> = TableColumn<T> | TableColumnGroup<T>;
139
+ export interface TableChangeMeta<T extends TableRecord = TableRecord> {
91
140
  currentDataSource: T[];
92
141
  action: TableAction;
142
+ /**
143
+ * Current pagination state after this change. Always present so consumers can
144
+ * mirror the table's state.
145
+ */
146
+ pagination?: {
147
+ current: number;
148
+ pageSize: number;
149
+ } | false;
150
+ /** Current sorter (single-column shape — `{ columnKey, order }`). */
151
+ sorter?: {
152
+ columnKey?: Key;
153
+ order?: TableSortOrder;
154
+ };
155
+ /**
156
+ * Current filter selection keyed by column key. Required for controlled-mode
157
+ * consumers who want clicks inside the built-in filter dropdown to round-trip
158
+ * back to their state — e.g. `onChange={meta => setFilteredValue(meta.filters?.network ?? [])}`.
159
+ */
160
+ filters?: Record<string, TableFilterValue | null>;
93
161
  }
94
162
  export type TableRowSelectMethod = 'all' | 'none' | 'single';
95
- export interface TableRowSelection<T> {
163
+ /**
164
+ * Properties returned from `getCheckboxProps`. Mirrors antd: any prop accepted
165
+ * by the underlying Checkbox EXCEPT `checked` / `defaultChecked` (those are
166
+ * controlled by the table) can be customized per-row.
167
+ */
168
+ export type TableCheckboxProps = Partial<Omit<CheckboxProps, 'checked' | 'defaultChecked' | 'onChange'>>;
169
+ export interface TableRowSelection<T extends TableRecord = TableRecord> {
96
170
  type?: 'checkbox' | 'radio';
97
171
  selectedRowKeys?: Key[];
98
172
  defaultSelectedRowKeys?: Key[];
99
173
  onChange?: (selectedRowKeys: Key[], selectedRows: T[], info: {
100
174
  type: TableRowSelectMethod;
101
175
  }) => void;
102
- getCheckboxProps?: (record: T) => Partial<{
103
- disabled: boolean;
104
- }>;
176
+ getCheckboxProps?: (record: T) => TableCheckboxProps;
105
177
  preserveSelectedRowKeys?: boolean;
106
178
  fixed?: boolean;
107
179
  columnWidth?: number | string;
108
180
  }
109
- export interface TableExpandIconProps<T> {
181
+ export interface TableExpandIconProps<T extends TableRecord = TableRecord> {
110
182
  prefixCls: string;
111
183
  expanded: boolean;
112
184
  record: T;
113
185
  expandable: boolean;
114
186
  onExpand: (record: T, e: React.MouseEvent<HTMLElement>) => void;
115
187
  }
116
- export interface TableExpandableConfig<T> {
188
+ export interface TableExpandableConfig<T extends TableRecord = TableRecord> {
117
189
  expandedRowKeys?: Key[];
118
190
  defaultExpandedRowKeys?: Key[];
119
191
  defaultExpandAllRows?: boolean;
@@ -123,6 +195,8 @@ export interface TableExpandableConfig<T> {
123
195
  expandRowByClick?: boolean;
124
196
  showExpandColumn?: boolean;
125
197
  expandIcon?: (props: TableExpandIconProps<T>) => ReactNode;
198
+ /** Header label rendered on the auto-injected expand column. */
199
+ columnTitle?: ReactNode;
126
200
  columnWidth?: number | string;
127
201
  fixed?: 'left' | 'right' | boolean;
128
202
  onExpand?: (expanded: boolean, record: T) => void;
@@ -137,11 +211,19 @@ export interface TableRef {
137
211
  offset?: number;
138
212
  }) => void;
139
213
  }
140
- export interface TableProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
214
+ export interface TableProps<T extends TableRecord = TableRecord> extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
141
215
  prefixCls?: string;
142
216
  columns: TableColumnType<T>[];
143
217
  dataSource: T[];
144
- rowKey: keyof T | ((record: T) => Key);
218
+ /**
219
+ * Row key for tracking. Accepts:
220
+ * - `string` — a property name, including synthetic keys not statically known on `T`
221
+ * (e.g. records carrying an injected `key` field).
222
+ * - `keyof T` — type-checked property name.
223
+ * - `(record) => Key` — function form for composite or computed keys.
224
+ * Defaults to `'key'` at runtime (kernel falls back to row index if the field is absent).
225
+ */
226
+ rowKey?: string | keyof T | ((record: T) => Key);
145
227
  size?: TableSize;
146
228
  variant?: TableVariant;
147
229
  bordered?: boolean;
@@ -170,7 +252,7 @@ export interface TableProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, 'onC
170
252
  summary?: (data: readonly T[]) => ReactNode;
171
253
  onChange?: (meta: TableChangeMeta<T>) => void;
172
254
  }
173
- export interface VirtualTableProps<T> extends Omit<TableProps<T>, 'scroll'> {
255
+ export interface VirtualTableProps<T extends TableRecord = TableRecord> extends Omit<TableProps<T>, 'scroll'> {
174
256
  scroll: {
175
257
  x: number;
176
258
  y: number;
@@ -169,7 +169,6 @@ var FixedHolder = /*#__PURE__*/React.forwardRef(function (props, ref) {
169
169
  style: {
170
170
  tableLayout: tableLayout,
171
171
  minWidth: '100%',
172
- // https://github.com/ant-design/ant-design/issues/54894
173
172
  width: scrollX
174
173
  },
175
174
  children: [isColGroupEmpty ? colGroup : (0, _jsxRuntime.jsx)(_ColGroup["default"], {
@@ -190,4 +189,4 @@ if (process.env.NODE_ENV !== 'production') {
190
189
  /** Return a table in div as fixed element which contains sticky info */
191
190
  // export default responseImmutable(FixedHolder);
192
191
  var _default = exports["default"] = /*#__PURE__*/React.memo(FixedHolder);
193
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvc3JjL2NvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfc2VsZWN0b3JDb250ZXh0IiwiX2Nsc3gyIiwiX3JlZiIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiUmVhY3QiLCJfQ29sR3JvdXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1RhYmxlQ29udGV4dCIsIl91c2VSZW5kZXJUaW1lcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlQ29sdW1uV2lkdGgiLCJjb2xXaWR0aHMiLCJjb2x1bUNvdW50IiwidXNlTWVtbyIsImNsb25lQ29sdW1ucyIsInZhbCIsInVuZGVmaW5lZCIsImpvaW4iLCJGaXhlZEhvbGRlciIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRldlJlbmRlclRpbWVzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJub0RhdGEiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJjb2xHcm91cCIsInN0aWNreU9mZnNldHMiLCJkaXJlY3Rpb24iLCJmaXhIZWFkZXIiLCJzdGlja3lUb3BPZmZzZXQiLCJzdGlja3lCb3R0b21PZmZzZXQiLCJzdGlja3lDbGFzc05hbWUiLCJzY3JvbGxYIiwiX3Byb3BzJHRhYmxlTGF5b3V0IiwidGFibGVMYXlvdXQiLCJvblNjcm9sbCIsIm1heENvbnRlbnRTY3JvbGwiLCJjaGlsZHJlbiIsInJlc3RQcm9wcyIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIlRhYmxlQ29udGV4dCIsInByZWZpeENscyIsInNjcm9sbGJhclNpemUiLCJpc1N0aWNreSIsImdldENvbXBvbmVudCIsIlRhYmxlQ29tcG9uZW50IiwiY29tYmluYXRpb25TY3JvbGxCYXJTaXplIiwic2Nyb2xsUmVmIiwidXNlUmVmIiwic2V0U2Nyb2xsUmVmIiwidXNlQ2FsbGJhY2siLCJlbGVtZW50IiwiZmlsbFJlZiIsInVzZUVmZmVjdCIsIm9uV2hlZWwiLCJjdXJyZW50VGFyZ2V0IiwiZGVsdGFYIiwic2Nyb2xsTGVmdCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJtYXhTY3JvbGxXaWR0aCIsIm5leHRTY3JvbGwiLCJNYXRoIiwibWF4IiwibWluIiwicHJldmVudERlZmF1bHQiLCJzY3JvbGxFbGUiLCJjdXJyZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibGFzdENvbHVtbiIsIlNjcm9sbEJhckNvbHVtbiIsImZpeGVkIiwic2Nyb2xsYmFyIiwib25IZWFkZXJDZWxsIiwiY29uY2F0IiwiY29sdW1uc1dpdGhTY3JvbGxiYXIiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZmxhdHRlbkNvbHVtbnNXaXRoU2Nyb2xsYmFyIiwiaGVhZGVyU3RpY2t5T2Zmc2V0cyIsInN0YXJ0IiwiZW5kIiwiYXNzaWduIiwibWFwIiwid2lkdGgiLCJtZXJnZWRDb2x1bW5XaWR0aCIsImlzQ29sR3JvdXBFbXB0eSIsIm5vV2lkdGgiLCJldmVyeSIsInciLCJfanN4Iiwib3ZlcmZsb3ciLCJ0b3AiLCJib3R0b20iLCJjbHN4IiwiX2RlZmluZVByb3BlcnR5MiIsIl9qc3hzIiwibWluV2lkdGgiLCJDb2xHcm91cCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1ZBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFBK0IsSUFBQU0sS0FBQSxHQUFBRixNQUFBO0FBRS9CLElBQUFHLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQVIsT0FBQTtBQUVBLElBQUFVLGVBQUEsR0FBQUYsc0JBQUEsQ0FBQVIsT0FBQTtBQUFxRCxTQUFBVyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVAsd0JBQUFPLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FB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LE1BQUE2RSxnQkFBQSxpQkFDdEJsRSxlQUFlLEVBQUcsQ0FBQyxDQUFDQSxlQUFlLENBQ3JDLENBQUM7SUFBQU0sUUFBQSxFQUVGLElBQUE2RCxnQkFBQSxFQUFDcEQsY0FBYyxFQUFBO01BQ2J6QixLQUFLLEVBQUU7UUFDTGEsV0FBVyxFQUFYQSxXQUFXO1FBQ1hpRSxRQUFRLEVBQUUsTUFBTTtRQUNoQjtRQUNBYixLQUFLLEVBQUV0RDtNRHJFTCxDQ3NFSDtNQUFBSyxRQUFBLEVBQUEsQ0FFQW1ELGVBQWUsR0FDZC9ELFFBQVEsR0FFUixJQUFBbUUsZUFBQSxFQUFDUSxvQkFBUSxFQUFBO1FBQ1AvRixTQUFTLEtBQUF3RSxNQUFBLEtBQUFFLG1CQUFBLGFBQU1RLGlCQUFpQixJQUFFeEMsd0JBQXdCLEVBQUM7UUFDM0R6QyxVQUFVLEVBQUVBLFVBQVUsR0FBRyxDQUFDO1FBQzFCaUIsT0FBTyxFQUFFeUQ7TUFBMkIsQ0FBQSxDQUV2QyxFQUNBM0MsUUFBUSxDQUFBakQsTUFBQSxDQUFBZ0csTUFBQSxDQUFBaEcsTUFBQSxDQUFBZ0csTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNKOUMsU0FBUyxDQUFBLEVBQUE7UUFDWlosYUFBYSxFQUFFdUQsbUJBQW1CO1FBQ2xDMUQsT0FBTyxFQUFFdUQsb0JBQW9CO1FBQzdCdEQsY0FBYyxFQUFFd0Q7TUFBMkIsQ0FBQSxDQUFBLENBQzNDO0lBQUEsQ0FBQTtFQUNhLENBQUEsQ0FDYjtBQUVWLENBQUMsQ0FBQztBQUVGLElBQUloRSxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUN6Q04sV0FBVyxDQUFDeUYsV0FBVyxHQUFHLGFBQWE7QUFDekM7QUFFQTtBQUNBO0FBQUEsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLDJCQUNlcEksS0FBSyxDQUFDcUksSUFBSSxDQUFDNUYsV0FBVyxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAnLi4vc2VsZWN0b3ItY29udGV4dCc7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29sR3JvdXAgZnJvbSAnLi4vQ29sR3JvdXAnO1xuaW1wb3J0IFRhYmxlQ29udGV4dCBmcm9tICcuLi9jb250ZXh0L1RhYmxlQ29udGV4dCc7XG5pbXBvcnQgZGV2UmVuZGVyVGltZXMgZnJvbSAnLi4vaG9va3MvdXNlUmVuZGVyVGltZXMnO1xuZnVuY3Rpb24gdXNlQ29sdW1uV2lkdGgoY29sV2lkdGhzLCBjb2x1bUNvdW50KSB7XG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBjbG9uZUNvbHVtbnMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bUNvdW50OyBpICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGNvbFdpZHRoc1tpXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNsb25lQ29sdW1uc1tpXSA9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbG9uZUNvbHVtbnM7XG4gICAgfSwgW2NvbFdpZHRocy5qb2luKCdfJyksIGNvbHVtQ291bnRdKTtcbn1cbmNvbnN0IEZpeGVkSG9sZGVyID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGRldlJlbmRlclRpbWVzKHByb3BzKTtcbiAgICB9XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBub0RhdGEsIGNvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zLCBjb2xXaWR0aHMsIGNvbEdyb3VwLCBjb2x1bUNvdW50LCBzdGlja3lPZmZzZXRzLCBkaXJlY3Rpb24sIGZpeEhlYWRlciwgc3RpY2t5VG9wT2Zmc2V0LCBzdGlja3lCb3R0b21PZmZzZXQsIHN0aWNreUNsYXNzTmFtZSwgc2Nyb2xsWCwgdGFibGVMYXlvdXQgPSAnZml4ZWQnLCBvblNjcm9sbCwgbWF4Q29udGVudFNjcm9sbCwgY2hpbGRyZW4gfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwibm9EYXRhXCIsIFwiY29sdW1uc1wiLCBcImZsYXR0ZW5Db2x1bW5zXCIsIFwiY29sV2lkdGhzXCIsIFwiY29sR3JvdXBcIiwgXCJjb2x1bUNvdW50XCIsIFwic3RpY2t5T2Zmc2V0c1wiLCBcImRpcmVjdGlvblwiLCBcImZpeEhlYWRlclwiLCBcInN0aWNreVRvcE9mZnNldFwiLCBcInN0aWNreUJvdHRvbU9mZnNldFwiLCBcInN0aWNreUNsYXNzTmFtZVwiLCBcInNjcm9sbFhcIiwgXCJ0YWJsZUxheW91dFwiLCBcIm9uU2Nyb2xsXCIsIFwibWF4Q29udGVudFNjcm9sbFwiLCBcImNoaWxkcmVuXCJdKTtcbiAgICBjb25zdCB7IHByZWZpeENscywgc2Nyb2xsYmFyU2l6ZSwgaXNTdGlja3ksIGdldENvbXBvbmVudCB9ID0gdXNlQ29udGV4dChUYWJsZUNvbnRleHQsIFtcbiAgICAgICAgJ3ByZWZpeENscycsXG4gICAgICAgICdzY3JvbGxiYXJTaXplJyxcbiAgICAgICAgJ2lzU3RpY2t5JyxcbiAgICAgICAgJ2dldENvbXBvbmVudCcsXG4gICAgXSk7XG4gICAgY29uc3QgVGFibGVDb21wb25lbnQgPSBnZXRDb21wb25lbnQoWydoZWFkZXInLCAndGFibGUnXSwgJ3RhYmxlJyk7XG4gICAgY29uc3QgY29tYmluYXRpb25TY3JvbGxCYXJTaXplID0gaXNTdGlja3kgJiYgIWZpeEhlYWRlciA/IDAgOiBzY3JvbGxiYXJTaXplO1xuICAgIC8vIFBhc3Mgd2hlZWwgdG8gc2Nyb2xsIGV2ZW50XG4gICAgY29uc3Qgc2Nyb2xsUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNldFNjcm9sbFJlZiA9IFJlYWN0LnVzZUNhbGxiYWNrKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGZpbGxSZWYocmVmLCBlbGVtZW50KTtcbiAgICAgICAgZmlsbFJlZihzY3JvbGxSZWYsIGVsZW1lbnQpO1xuICAgIH0sIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBmdW5jdGlvbiBvbldoZWVsKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3VycmVudFRhcmdldCwgZGVsdGFYIH0gPSBlO1xuICAgICAgICAgICAgaWYgKGRlbHRhWCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH0gPSBjdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heFNjcm9sbFdpZHRoID0gc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dFNjcm9sbCA9IHNjcm9sbExlZnQgKyBkZWx0YVg7XG4gICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dFNjcm9sbCA9IE1hdGgubWF4KC1tYXhTY3JvbGxXaWR0aCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1pbigwLCBuZXh0U2Nyb2xsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1pbihtYXhTY3JvbGxXaWR0aCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1heCgwLCBuZXh0U2Nyb2xsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25TY3JvbGwoe1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiBuZXh0U2Nyb2xsLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3JvbGxFbGUgPSBzY3JvbGxSZWYuY3VycmVudDtcbiAgICAgICAgc2Nyb2xsRWxlID09PSBudWxsIHx8IHNjcm9sbEVsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Nyb2xsRWxlLmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHNjcm9sbEVsZSA9PT0gbnVsbCB8fCBzY3JvbGxFbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbEVsZS5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICAvLyBBZGQgc2Nyb2xsYmFyIGNvbHVtblxuICAgIGNvbnN0IGxhc3RDb2x1bW4gPSBmbGF0dGVuQ29sdW1uc1tmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBTY3JvbGxCYXJDb2x1bW4gPSB7XG4gICAgICAgIGZpeGVkOiBsYXN0Q29sdW1uID8gbGFzdENvbHVtbi5maXhlZCA6IG51bGwsXG4gICAgICAgIHNjcm9sbGJhcjogdHJ1ZSxcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoKSA9PiAoe1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LWNlbGwtc2Nyb2xsYmFyYCxcbiAgICAgICAgfSksXG4gICAgfTtcbiAgICBjb25zdCBjb2x1bW5zV2l0aFNjcm9sbGJhciA9IHVzZU1lbW8oKCkgPT4gKGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSA/IFsuLi5jb2x1bW5zLCBTY3JvbGxCYXJDb2x1bW5dIDogY29sdW1ucyksIFtjb21iaW5hdGlvblNjcm9sbEJhclNpemUsIGNvbHVtbnNdKTtcbiAgICBjb25zdCBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIgPSB1c2VNZW1vKCgpID0+IChjb21iaW5hdGlvblNjcm9sbEJhclNpemUgPyBbLi4uZmxhdHRlbkNvbHVtbnMsIFNjcm9sbEJhckNvbHVtbl0gOiBmbGF0dGVuQ29sdW1ucyksIFtjb21iaW5hdGlvblNjcm9sbEJhclNpemUsIGZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBzdGlja3kgb2Zmc2V0c1xuICAgIGNvbnN0IGhlYWRlclN0aWNreU9mZnNldHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBzdGlja3lPZmZzZXRzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdGlja3lPZmZzZXRzKSwgeyBcbiAgICAgICAgICAgIC8vIGxlZnQ6XG4gICAgICAgICAgICAvLyAgIGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyBbLi4ubGVmdC5tYXAod2lkdGggPT4gd2lkdGggKyBjb21iaW5hdGlvblNjcm9sbEJhclNpemUpLCAwXSA6IGxlZnQsXG4gICAgICAgICAgICAvLyByaWdodDpcbiAgICAgICAgICAgIC8vICAgZGlyZWN0aW9uID09PSAncnRsJyA/IHJpZ2h0IDogWy4uLnJpZ2h0Lm1hcCh3aWR0aCA9PiB3aWR0aCArIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSksIDBdLFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LCBlbmQ6IFsuLi5lbmQubWFwKHdpZHRoID0+IHdpZHRoICsgY29tYmluYXRpb25TY3JvbGxCYXJTaXplKSwgMF0sIGlzU3RpY2t5IH0pO1xuICAgIH0sIFtjb21iaW5hdGlvblNjcm9sbEJhclNpemUsIHN0aWNreU9mZnNldHMsIGlzU3RpY2t5XSk7XG4gICAgY29uc3QgbWVyZ2VkQ29sdW1uV2lkdGggPSB1c2VDb2x1bW5XaWR0aChjb2xXaWR0aHMsIGNvbHVtQ291bnQpO1xuICAgIGNvbnN0IGlzQ29sR3JvdXBFbXB0eSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAvLyB1c2Ugb3JpZ2luYWwgQ29sR3JvdXAgaWYgbm8gZGF0YSBvciBubyBjYWxjdWxhdGVkIGNvbHVtbiB3aWR0aCwgb3RoZXJ3aXNlIHVzZSBjYWxjdWxhdGVkIGNvbHVtbiB3aWR0aFxuICAgICAgICAvLyBSZXR1cm4gb3JpZ2luYWwgY29sR3JvdXAgaWYgbm8gZGF0YSwgb3IgbWVyZ2VkQ29sdW1uV2lkdGggaXMgZW1wdHksIG9yIGFsbCB3aWR0aHMgYXJlIGZhbHN5XG4gICAgICAgIGNvbnN0IG5vV2lkdGggPSAhbWVyZ2VkQ29sdW1uV2lkdGggfHwgIW1lcmdlZENvbHVtbldpZHRoLmxlbmd0aCB8fCBtZXJnZWRDb2x1bW5XaWR0aC5ldmVyeSh3ID0+ICF3KTtcbiAgICAgICAgcmV0dXJuIG5vRGF0YSB8fCBub1dpZHRoO1xuICAgIH0sIFtub0RhdGEsIG1lcmdlZENvbHVtbldpZHRoXSk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IG92ZXJmbG93OiAnaGlkZGVuJyB9LCAoaXNTdGlja3kgPyB7IHRvcDogc3RpY2t5VG9wT2Zmc2V0LCBib3R0b206IHN0aWNreUJvdHRvbU9mZnNldCB9IDoge30pKSwgc3R5bGUpLCByZWY6IHNldFNjcm9sbFJlZiwgY2xhc3NOYW1lOiBjbHN4KGNsYXNzTmFtZSwge1xuICAgICAgICAgICAgW3N0aWNreUNsYXNzTmFtZV06ICEhc3RpY2t5Q2xhc3NOYW1lLFxuICAgICAgICB9KSwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCB7IHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgdGFibGVMYXlvdXQsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy81NDg5NFxuICAgICAgICAgICAgICAgIHdpZHRoOiBzY3JvbGxYLFxuICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtpc0NvbEdyb3VwRW1wdHkgPyAoY29sR3JvdXApIDogKF9qc3goQ29sR3JvdXAsIHsgY29sV2lkdGhzOiBbLi4ubWVyZ2VkQ29sdW1uV2lkdGgsIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZV0sIGNvbHVtQ291bnQ6IGNvbHVtQ291bnQgKyAxLCBjb2x1bW5zOiBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIgfSkpLCBjaGlsZHJlbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3RQcm9wcyksIHsgc3RpY2t5T2Zmc2V0czogaGVhZGVyU3RpY2t5T2Zmc2V0cywgY29sdW1uczogY29sdW1uc1dpdGhTY3JvbGxiYXIsIGZsYXR0ZW5Db2x1bW5zOiBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIgfSkpXSB9KSB9KSk7XG59KTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgRml4ZWRIb2xkZXIuZGlzcGxheU5hbWUgPSAnRml4ZWRIb2xkZXInO1xufVxuLyoqIFJldHVybiBhIHRhYmxlIGluIGRpdiBhcyBmaXhlZCBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIHN0aWNreSBpbmZvICovXG4vLyBleHBvcnQgZGVmYXVsdCByZXNwb25zZUltbXV0YWJsZShGaXhlZEhvbGRlcik7XG5leHBvcnQgZGVmYXVsdCBSZWFjdC5tZW1vKEZpeGVkSG9sZGVyKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
192
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvc3JjL2NvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfc2VsZWN0b3JDb250ZXh0IiwiX2Nsc3gyIiwiX3JlZiIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiUmVhY3QiLCJfQ29sR3JvdXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1RhYmxlQ29udGV4dCIsIl91c2VSZW5kZXJUaW1lcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlQ29sdW1uV2lkdGgiLCJjb2xXaWR0aHMiLCJjb2x1bUNvdW50IiwidXNlTWVtbyIsImNsb25lQ29sdW1ucyIsInZhbCIsInVuZGVmaW5lZCIsImpvaW4iLCJGaXhlZEhvbGRlciIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRldlJlbmRlclRpbWVzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJub0RhdGEiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJjb2xHcm91cCIsInN0aWNreU9mZnNldHMiLCJkaXJlY3Rpb24iLCJmaXhIZWFkZXIiLCJzdGlja3lUb3BPZmZzZXQiLCJzdGlja3lCb3R0b21PZmZzZXQiLCJzdGlja3lDbGFzc05hbWUiLCJzY3JvbGxYIiwiX3Byb3BzJHRhYmxlTGF5b3V0IiwidGFibGVMYXlvdXQiLCJvblNjcm9sbCIsIm1heENvbnRlbnRTY3JvbGwiLCJjaGlsZHJlbiIsInJlc3RQcm9wcyIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIlRhYmxlQ29udGV4dCIsInByZWZpeENscyIsInNjcm9sbGJhclNpemUiLCJpc1N0aWNreSIsImdldENvbXBvbmVudCIsIlRhYmxlQ29tcG9uZW50IiwiY29tYmluYXRpb25TY3JvbGxCYXJTaXplIiwic2Nyb2xsUmVmIiwidXNlUmVmIiwic2V0U2Nyb2xsUmVmIiwidXNlQ2FsbGJhY2siLCJlbGVtZW50IiwiZmlsbFJlZiIsInVzZUVmZmVjdCIsIm9uV2hlZWwiLCJjdXJyZW50VGFyZ2V0IiwiZGVsdGFYIiwic2Nyb2xsTGVmdCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJtYXhTY3JvbGxXaWR0aCIsIm5leHRTY3JvbGwiLCJNYXRoIiwibWF4IiwibWluIiwicHJldmVudERlZmF1bHQiLCJzY3JvbGxFbGUiLCJjdXJyZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibGFzdENvbHVtbiIsIlNjcm9sbEJhckNvbHVtbiIsImZpeGVkIiwic2Nyb2xsYmFyIiwib25IZWFkZXJDZWxsIiwiY29uY2F0IiwiY29sdW1uc1dpdGhTY3JvbGxiYXIiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZmxhdHRlbkNvbHVtbnNXaXRoU2Nyb2xsYmFyIiwiaGVhZGVyU3RpY2t5T2Zmc2V0cyIsInN0YXJ0IiwiZW5kIiwiYXNzaWduIiwibWFwIiwid2lkdGgiLCJtZXJnZWRDb2x1bW5XaWR0aCIsImlzQ29sR3JvdXBFbXB0eSIsIm5vV2lkdGgiLCJldmVyeSIsInciLCJfanN4Iiwib3ZlcmZsb3ciLCJ0b3AiLCJib3R0b20iLCJjbHN4IiwiX2RlZmluZVByb3BlcnR5MiIsIl9qc3hzIiwibWluV2lkdGgiLCJDb2xHcm91cCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1ZBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFBK0IsSUFBQU0sS0FBQSxHQUFBRixNQUFBO0FBRS9CLElBQUFHLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQVIsT0FBQTtBQUVBLElBQUFVLGVBQUEsR0FBQUYsc0JBQUEsQ0FBQVIsT0FBQTtBQUFxRCxTQUFBVyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVAsd0JBQUFPLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FB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LE1BQUE2RSxnQkFBQSxpQkFDdEJsRSxlQUFlLEVBQUcsQ0FBQyxDQUFDQSxlQUFlLENBQ3JDLENBQUM7SUFBQU0sUUFBQSxFQUVGLElBQUE2RCxnQkFBQSxFQUFDcEQsY0FBYyxFQUFBO01BQ2J6QixLQUFLLEVBQUU7UUFDTGEsV0FBVyxFQUFYQSxXQUFXO1FBQ1hpRSxRQUFRLEVBQUUsTUFBTTtRQUNoQmIsS0FBSyxFQUFFdEQ7TURyRUwsQ0NzRUg7TUFBQUssUUFBQSxFQUFBLENBRUFtRCxlQUFlLEdBQ2QvRCxRQUFRLEdBRVIsSUFBQW1FLGVBQUEsRUFBQ1Esb0JBQVEsRUFBQTtRQUNQL0YsU0FBUyxLQUFBd0UsTUFBQSxLQUFBRSxtQkFBQSxhQUFNUSxpQkFBaUIsSUFBRXhDLHdCQUF3QixFQUFDO1FBQzNEekMsVUFBVSxFQUFFQSxVQUFVLEdBQUcsQ0FBQztRQUMxQmlCLE9BQU8sRUFBRXlEO01BQTJCLENBQUEsQ0FFdkMsRUFDQTNDLFFBQVEsQ0FBQWpELE1BQUEsQ0FBQWdHLE1BQUEsQ0FBQWhHLE1BQUEsQ0FBQWdHLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDSjlDLFNBQVMsQ0FBQSxFQUFBO1FBQ1paLGFBQWEsRUFBRXVELG1CQUFtQjtRQUNsQzFELE9BQU8sRUFBRXVELG9CQUFvQjtRQUM3QnRELGNBQWMsRUFBRXdEO01BQTJCLENBQUEsQ0FBQSxDQUMzQztJQUFBLENBQUE7RUFDYSxDQUFBLENBQ2I7QUFFVixDQUFDLENBQUM7QUFFRixJQUFJaEUsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7RUFDekNOLFdBQVcsQ0FBQ3lGLFdBQVcsR0FBRyxhQUFhO0FBQ3pDO0FBRUE7QUFDQTtBQUFBLElBQUFDLFFBQUEsR0FBQUMsT0FBQSwyQkFDZXBJLEtBQUssQ0FBQ3FJLElBQUksQ0FBQzVGLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC9GaXhlZEhvbGRlci9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJy4uL3NlbGVjdG9yLWNvbnRleHQnO1xuaW1wb3J0IHsgY2xzeCB9IGZyb20gJ2Nsc3gnO1xuaW1wb3J0IHsgZmlsbFJlZiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL3JlZic7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4uL0NvbEdyb3VwJztcbmltcG9ydCBUYWJsZUNvbnRleHQgZnJvbSAnLi4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IGRldlJlbmRlclRpbWVzIGZyb20gJy4uL2hvb2tzL3VzZVJlbmRlclRpbWVzJztcbmZ1bmN0aW9uIHVzZUNvbHVtbldpZHRoKGNvbFdpZHRocywgY29sdW1Db3VudCkge1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xvbmVDb2x1bW5zID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1Db3VudDsgaSArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBjb2xXaWR0aHNbaV07XG4gICAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjbG9uZUNvbHVtbnNbaV0gPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xvbmVDb2x1bW5zO1xuICAgIH0sIFtjb2xXaWR0aHMuam9pbignXycpLCBjb2x1bUNvdW50XSk7XG59XG5jb25zdCBGaXhlZEhvbGRlciA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBkZXZSZW5kZXJUaW1lcyhwcm9wcyk7XG4gICAgfVxuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBzdHlsZSwgbm9EYXRhLCBjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucywgY29sV2lkdGhzLCBjb2xHcm91cCwgY29sdW1Db3VudCwgc3RpY2t5T2Zmc2V0cywgZGlyZWN0aW9uLCBmaXhIZWFkZXIsIHN0aWNreVRvcE9mZnNldCwgc3RpY2t5Qm90dG9tT2Zmc2V0LCBzdGlja3lDbGFzc05hbWUsIHNjcm9sbFgsIHRhYmxlTGF5b3V0ID0gJ2ZpeGVkJywgb25TY3JvbGwsIG1heENvbnRlbnRTY3JvbGwsIGNoaWxkcmVuIH0gPSBwcm9wcywgcmVzdFByb3BzID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcIm5vRGF0YVwiLCBcImNvbHVtbnNcIiwgXCJmbGF0dGVuQ29sdW1uc1wiLCBcImNvbFdpZHRoc1wiLCBcImNvbEdyb3VwXCIsIFwiY29sdW1Db3VudFwiLCBcInN0aWNreU9mZnNldHNcIiwgXCJkaXJlY3Rpb25cIiwgXCJmaXhIZWFkZXJcIiwgXCJzdGlja3lUb3BPZmZzZXRcIiwgXCJzdGlja3lCb3R0b21PZmZzZXRcIiwgXCJzdGlja3lDbGFzc05hbWVcIiwgXCJzY3JvbGxYXCIsIFwidGFibGVMYXlvdXRcIiwgXCJvblNjcm9sbFwiLCBcIm1heENvbnRlbnRTY3JvbGxcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIHNjcm9sbGJhclNpemUsIGlzU3RpY2t5LCBnZXRDb21wb25lbnQgfSA9IHVzZUNvbnRleHQoVGFibGVDb250ZXh0LCBbXG4gICAgICAgICdwcmVmaXhDbHMnLFxuICAgICAgICAnc2Nyb2xsYmFyU2l6ZScsXG4gICAgICAgICdpc1N0aWNreScsXG4gICAgICAgICdnZXRDb21wb25lbnQnLFxuICAgIF0pO1xuICAgIGNvbnN0IFRhYmxlQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnaGVhZGVyJywgJ3RhYmxlJ10sICd0YWJsZScpO1xuICAgIGNvbnN0IGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSA9IGlzU3RpY2t5ICYmICFmaXhIZWFkZXIgPyAwIDogc2Nyb2xsYmFyU2l6ZTtcbiAgICAvLyBQYXNzIHdoZWVsIHRvIHNjcm9sbCBldmVudFxuICAgIGNvbnN0IHNjcm9sbFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZXRTY3JvbGxSZWYgPSBSZWFjdC51c2VDYWxsYmFjaygoZWxlbWVudCkgPT4ge1xuICAgICAgICBmaWxsUmVmKHJlZiwgZWxlbWVudCk7XG4gICAgICAgIGZpbGxSZWYoc2Nyb2xsUmVmLCBlbGVtZW50KTtcbiAgICB9LCBbXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZnVuY3Rpb24gb25XaGVlbChlKSB7XG4gICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIGRlbHRhWCB9ID0gZTtcbiAgICAgICAgICAgIGlmIChkZWx0YVgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNjcm9sbExlZnQsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9ID0gY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhTY3JvbGxXaWR0aCA9IHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgbGV0IG5leHRTY3JvbGwgPSBzY3JvbGxMZWZ0ICsgZGVsdGFYO1xuICAgICAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1heCgtbWF4U2Nyb2xsV2lkdGgsIG5leHRTY3JvbGwpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsID0gTWF0aC5taW4oMCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsID0gTWF0aC5taW4obWF4U2Nyb2xsV2lkdGgsIG5leHRTY3JvbGwpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsID0gTWF0aC5tYXgoMCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uU2Nyb2xsKHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogbmV4dFNjcm9sbCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2Nyb2xsRWxlID0gc2Nyb2xsUmVmLmN1cnJlbnQ7XG4gICAgICAgIHNjcm9sbEVsZSA9PT0gbnVsbCB8fCBzY3JvbGxFbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbEVsZS5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzY3JvbGxFbGUgPT09IG51bGwgfHwgc2Nyb2xsRWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY3JvbGxFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBvbldoZWVsKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgLy8gQWRkIHNjcm9sbGJhciBjb2x1bW5cbiAgICBjb25zdCBsYXN0Q29sdW1uID0gZmxhdHRlbkNvbHVtbnNbZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgU2Nyb2xsQmFyQ29sdW1uID0ge1xuICAgICAgICBmaXhlZDogbGFzdENvbHVtbiA/IGxhc3RDb2x1bW4uZml4ZWQgOiBudWxsLFxuICAgICAgICBzY3JvbGxiYXI6IHRydWUsXG4gICAgICAgIG9uSGVhZGVyQ2VsbDogKCkgPT4gKHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1jZWxsLXNjcm9sbGJhcmAsXG4gICAgICAgIH0pLFxuICAgIH07XG4gICAgY29uc3QgY29sdW1uc1dpdGhTY3JvbGxiYXIgPSB1c2VNZW1vKCgpID0+IChjb21iaW5hdGlvblNjcm9sbEJhclNpemUgPyBbLi4uY29sdW1ucywgU2Nyb2xsQmFyQ29sdW1uXSA6IGNvbHVtbnMpLCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBjb2x1bW5zXSk7XG4gICAgY29uc3QgZmxhdHRlbkNvbHVtbnNXaXRoU2Nyb2xsYmFyID0gdXNlTWVtbygoKSA9PiAoY29tYmluYXRpb25TY3JvbGxCYXJTaXplID8gWy4uLmZsYXR0ZW5Db2x1bW5zLCBTY3JvbGxCYXJDb2x1bW5dIDogZmxhdHRlbkNvbHVtbnMpLCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBmbGF0dGVuQ29sdW1uc10pO1xuICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RpY2t5IG9mZnNldHNcbiAgICBjb25zdCBoZWFkZXJTdGlja3lPZmZzZXRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gc3RpY2t5T2Zmc2V0cztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3RpY2t5T2Zmc2V0cyksIHsgXG4gICAgICAgICAgICAvLyBsZWZ0OlxuICAgICAgICAgICAgLy8gICBkaXJlY3Rpb24gPT09ICdydGwnID8gWy4uLmxlZnQubWFwKHdpZHRoID0+IHdpZHRoICsgY29tYmluYXRpb25TY3JvbGxCYXJTaXplKSwgMF0gOiBsZWZ0LFxuICAgICAgICAgICAgLy8gcmlnaHQ6XG4gICAgICAgICAgICAvLyAgIGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyByaWdodCA6IFsuLi5yaWdodC5tYXAod2lkdGggPT4gd2lkdGggKyBjb21iaW5hdGlvblNjcm9sbEJhclNpemUpLCAwXSxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCwgZW5kOiBbLi4uZW5kLm1hcCh3aWR0aCA9PiB3aWR0aCArIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSksIDBdLCBpc1N0aWNreSB9KTtcbiAgICB9LCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBzdGlja3lPZmZzZXRzLCBpc1N0aWNreV0pO1xuICAgIGNvbnN0IG1lcmdlZENvbHVtbldpZHRoID0gdXNlQ29sdW1uV2lkdGgoY29sV2lkdGhzLCBjb2x1bUNvdW50KTtcbiAgICBjb25zdCBpc0NvbEdyb3VwRW1wdHkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgLy8gdXNlIG9yaWdpbmFsIENvbEdyb3VwIGlmIG5vIGRhdGEgb3Igbm8gY2FsY3VsYXRlZCBjb2x1bW4gd2lkdGgsIG90aGVyd2lzZSB1c2UgY2FsY3VsYXRlZCBjb2x1bW4gd2lkdGhcbiAgICAgICAgLy8gUmV0dXJuIG9yaWdpbmFsIGNvbEdyb3VwIGlmIG5vIGRhdGEsIG9yIG1lcmdlZENvbHVtbldpZHRoIGlzIGVtcHR5LCBvciBhbGwgd2lkdGhzIGFyZSBmYWxzeVxuICAgICAgICBjb25zdCBub1dpZHRoID0gIW1lcmdlZENvbHVtbldpZHRoIHx8ICFtZXJnZWRDb2x1bW5XaWR0aC5sZW5ndGggfHwgbWVyZ2VkQ29sdW1uV2lkdGguZXZlcnkodyA9PiAhdyk7XG4gICAgICAgIHJldHVybiBub0RhdGEgfHwgbm9XaWR0aDtcbiAgICB9LCBbbm9EYXRhLCBtZXJnZWRDb2x1bW5XaWR0aF0pO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyBvdmVyZmxvdzogJ2hpZGRlbicgfSwgKGlzU3RpY2t5ID8geyB0b3A6IHN0aWNreVRvcE9mZnNldCwgYm90dG9tOiBzdGlja3lCb3R0b21PZmZzZXQgfSA6IHt9KSksIHN0eWxlKSwgcmVmOiBzZXRTY3JvbGxSZWYsIGNsYXNzTmFtZTogY2xzeChjbGFzc05hbWUsIHtcbiAgICAgICAgICAgIFtzdGlja3lDbGFzc05hbWVdOiAhIXN0aWNreUNsYXNzTmFtZSxcbiAgICAgICAgfSksIGNoaWxkcmVuOiBfanN4cyhUYWJsZUNvbXBvbmVudCwgeyBzdHlsZToge1xuICAgICAgICAgICAgICAgIHRhYmxlTGF5b3V0LFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHNjcm9sbFgsXG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogW2lzQ29sR3JvdXBFbXB0eSA/IChjb2xHcm91cCkgOiAoX2pzeChDb2xHcm91cCwgeyBjb2xXaWR0aHM6IFsuLi5tZXJnZWRDb2x1bW5XaWR0aCwgY29tYmluYXRpb25TY3JvbGxCYXJTaXplXSwgY29sdW1Db3VudDogY29sdW1Db3VudCArIDEsIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zV2l0aFNjcm9sbGJhciB9KSksIGNoaWxkcmVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcmVzdFByb3BzKSwgeyBzdGlja3lPZmZzZXRzOiBoZWFkZXJTdGlja3lPZmZzZXRzLCBjb2x1bW5zOiBjb2x1bW5zV2l0aFNjcm9sbGJhciwgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zV2l0aFNjcm9sbGJhciB9KSldIH0pIH0pKTtcbn0pO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBGaXhlZEhvbGRlci5kaXNwbGF5TmFtZSA9ICdGaXhlZEhvbGRlcic7XG59XG4vKiogUmV0dXJuIGEgdGFibGUgaW4gZGl2IGFzIGZpeGVkIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgc3RpY2t5IGluZm8gKi9cbi8vIGV4cG9ydCBkZWZhdWx0IHJlc3BvbnNlSW1tdXRhYmxlKEZpeGVkSG9sZGVyKTtcbmV4cG9ydCBkZWZhdWx0IFJlYWN0Lm1lbW8oRml4ZWRIb2xkZXIpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -30,7 +30,7 @@ import { FooterComponents } from './Footer';
30
30
  import type { ColumnsType, ColumnType, DefaultRecordType, Direction, ExpandableConfig, GetComponentProps, GetRowKey, LegacyExpandableProps, PanelRender, Reference, RowClassName, TableComponents, TableLayout, TableSticky } from './interface';
31
31
  import Column from './sugar/Column';
32
32
  import ColumnGroup from './sugar/ColumnGroup';
33
- export declare const DEFAULT_PREFIX = "rc-table";
33
+ export declare const DEFAULT_PREFIX = "om-table";
34
34
  export type SemanticName = 'section' | 'title' | 'footer' | 'content';
35
35
  export type ComponentsSemantic = 'wrapper' | 'cell' | 'row';
36
36
  export interface TableProps<RecordType = DefaultRecordType> extends Omit<LegacyExpandableProps<RecordType>, 'showExpandColumn'> {