@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
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.useTableColumns = useTableColumns;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  var _react = require("react");
@@ -22,11 +23,21 @@ function makeExpandTransform(config) {
22
23
  triggerExpand = config.triggerExpand,
23
24
  getRowKey = config.getRowKey;
24
25
  var customExpandIcon = expandable === null || expandable === void 0 ? void 0 : expandable.expandIcon;
26
+ var rowExpandable = expandable === null || expandable === void 0 ? void 0 : expandable.rowExpandable;
25
27
  return function (columns) {
28
+ var _a;
26
29
  return [{
27
30
  key: '__expand__',
28
- width: 48,
31
+ // Honor `expandable.columnWidth` / `columnTitle` / `fixed`;
32
+ // default to a 48px unlabeled column.
33
+ width: (_a = expandable === null || expandable === void 0 ? void 0 : expandable.columnWidth) !== null && _a !== void 0 ? _a : 48,
34
+ title: expandable === null || expandable === void 0 ? void 0 : expandable.columnTitle,
35
+ fixed: (expandable === null || expandable === void 0 ? void 0 : expandable.fixed) === true ? 'left' : (expandable === null || expandable === void 0 ? void 0 : expandable.fixed) === false ? undefined : expandable === null || expandable === void 0 ? void 0 : expandable.fixed,
29
36
  render: function render(_, record, index) {
37
+ // Honor `rowExpandable`: when the predicate denies a record, render no
38
+ // chevron at all (the row is non-expandable).
39
+ var canExpand = rowExpandable ? rowExpandable(record) : true;
40
+ if (!canExpand) return null;
30
41
  var recordKey = getRowKey(record, index);
31
42
  var expanded = mergedExpandedRowKeys.includes(recordKey);
32
43
  if (customExpandIcon) {
@@ -80,11 +91,11 @@ function makeSelectionTransform(config) {
80
91
  } : {}), {
81
92
  render: function render(_, record, index) {
82
93
  var recordKey = getRowKey(record, index);
83
- var checkboxProps = checkboxPropsMap.get(recordKey);
94
+ var rowProps = checkboxPropsMap.get(recordKey);
84
95
  return (0, _jsxRuntime.jsx)(_SelectionColumn.SelectionControl, {
85
96
  type: selectionType,
86
97
  checked: mergedSelectedRowKeys.includes(recordKey),
87
- disabled: checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.disabled,
98
+ rowProps: rowProps,
88
99
  onChange: function onChange() {
89
100
  return triggerSelection(recordKey);
90
101
  }
@@ -93,21 +104,53 @@ function makeSelectionTransform(config) {
93
104
  })].concat((0, _toConsumableArray2["default"])(columns));
94
105
  };
95
106
  }
96
- function makeSortTransform(config) {
107
+ function ariaSortFor(order) {
108
+ if (order === 'ascend') return 'ascending';
109
+ if (order === 'descend') return 'descending';
110
+ return 'none';
111
+ }
112
+ // Stable empty-filter reference. Without this, `filters[key] ?? []` creates a
113
+ // fresh `[]` on every render, which thrashes `FilterTrigger`'s
114
+ // `useEffect([selectedKeys])` and causes an infinite setState loop after
115
+ // confirm / reset.
116
+ var EMPTY_FILTER_VALUE = [];
117
+ function makeHeaderTransform(config) {
97
118
  var size = config.size,
98
119
  sorter = config.sorter,
99
- setSorter = config.setSorter;
120
+ setSorter = config.setSorter,
121
+ filters = config.filters,
122
+ setFilters = config.setFilters;
100
123
  return function (columns) {
101
124
  return columns.map(function (column) {
102
- var _a;
125
+ var _a, _b;
103
126
  if (isColumnGroup(column)) return column;
127
+ var isSortable = Boolean(column.sorter);
128
+ var activeOrder = sorter.columnKey === column.key ? (_a = sorter.order) !== null && _a !== void 0 ? _a : null : null;
129
+ var columnKey = column.key != null ? String(column.key) : undefined;
130
+ var filterSelected = columnKey != null ? (_b = filters[columnKey]) !== null && _b !== void 0 ? _b : EMPTY_FILTER_VALUE : EMPTY_FILTER_VALUE;
131
+ // Compose onHeaderCell so we don't clobber user-provided attributes.
132
+ var userOnHeaderCell = column.onHeaderCell;
133
+ var onHeaderCell = function onHeaderCell(col, index) {
134
+ var _a;
135
+ var userAttrs = (_a = userOnHeaderCell === null || userOnHeaderCell === void 0 ? void 0 : userOnHeaderCell(col, index)) !== null && _a !== void 0 ? _a : {};
136
+ return Object.assign(Object.assign({}, userAttrs), isSortable ? {
137
+ 'aria-sort': ariaSortFor(activeOrder)
138
+ } : null);
139
+ };
140
+ var onFilterChange = function onFilterChange(next) {
141
+ if (columnKey == null) return;
142
+ setFilters(function (current) {
143
+ return Object.assign(Object.assign({}, current), (0, _defineProperty2["default"])({}, columnKey, next.length ? next : null));
144
+ });
145
+ };
104
146
  return Object.assign(Object.assign({}, column), {
147
+ onHeaderCell: onHeaderCell,
105
148
  title: column.renderHeader ? column.renderHeader({
106
149
  column: column
107
150
  }) : (0, _jsxRuntime.jsx)(_HeaderCell.HeaderCell, {
108
151
  column: column,
109
152
  size: size,
110
- sortOrder: sorter.columnKey === column.key ? (_a = sorter.order) !== null && _a !== void 0 ? _a : null : null,
153
+ sortOrder: activeOrder,
111
154
  onSortClick: function onSortClick() {
112
155
  return setSorter(function (currentSorter) {
113
156
  return {
@@ -115,7 +158,9 @@ function makeSortTransform(config) {
115
158
  order: currentSorter.columnKey !== column.key || currentSorter.order === null ? 'ascend' : currentSorter.order === 'ascend' ? 'descend' : null
116
159
  };
117
160
  });
118
- }
161
+ },
162
+ filterSelected: filterSelected,
163
+ onFilterChange: onFilterChange
119
164
  })
120
165
  });
121
166
  });
@@ -160,6 +205,19 @@ function makeRenderTransform() {
160
205
  });
161
206
  };
162
207
  }
208
+ /**
209
+ * Returns columns ready to be passed to the table kernel.
210
+ *
211
+ * The returned shape IS structurally the kernel's `ColumnsType<T>`:
212
+ * - Every leaf column's `render` is replaced by `makeRenderTransform`, which
213
+ * always returns a `ReactNode` (BodyCell handles `TableCellContentValue` /
214
+ * `TableRenderedCell` extras and emits ReactNode/RenderedCell).
215
+ * - Every leaf column's `title` is either a ReactNode or replaced by
216
+ * `<HeaderCell />`.
217
+ * Because TS can't track that those replacements have happened across the
218
+ * `transforms.reduce` chain, a single internal cast is required — call sites no
219
+ * longer need their own `as unknown as InternalColumnsType<T>` cast.
220
+ */
163
221
  function useTableColumns(config) {
164
222
  var columns = config.columns,
165
223
  variant = config.variant,
@@ -175,6 +233,8 @@ function useTableColumns(config) {
175
233
  triggerSelectAll = config.triggerSelectAll,
176
234
  sorter = config.sorter,
177
235
  setSorter = config.setSorter,
236
+ filters = config.filters,
237
+ setFilters = config.setFilters,
178
238
  size = config.size,
179
239
  getRowKey = config.getRowKey;
180
240
  return (0, _react.useMemo)(function () {
@@ -182,17 +242,19 @@ function useTableColumns(config) {
182
242
  if (expandable && expandable.showExpandColumn !== false) {
183
243
  transforms.push(makeExpandTransform(config));
184
244
  }
185
- if (rowSelection) {
186
- transforms.push(makeSelectionTransform(config));
245
+ var selectionTransform = rowSelection ? makeSelectionTransform(config) : null;
246
+ if (selectionTransform) {
247
+ transforms.push(selectionTransform);
187
248
  }
188
- transforms.push(makeSortTransform(config));
249
+ transforms.push(makeHeaderTransform(config));
189
250
  transforms.push(makeRenderTransform());
190
251
  if (variant === 'stroke') {
191
252
  transforms.push(makeSpacerTransform());
192
253
  }
193
- return transforms.reduce(function (cols, fn) {
254
+ var transformed = transforms.reduce(function (cols, fn) {
194
255
  return fn(cols);
195
256
  }, columns);
196
- }, [columns, variant, expandable, rowSelection, mergedExpandedRowKeys, mergedSelectedRowKeys, checkboxPropsMap, isAllSelected, isIndeterminate, triggerExpand, triggerSelection, triggerSelectAll, sorter, setSorter, size, getRowKey]);
257
+ return transformed;
258
+ }, [columns, variant, expandable, rowSelection, mergedExpandedRowKeys, mergedSelectedRowKeys, checkboxPropsMap, isAllSelected, isIndeterminate, triggerExpand, triggerSelection, triggerSelectAll, sorter, setSorter, filters, setFilters, size, getRowKey]);
197
259
  }
198
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZUNvbHVtbnMuanMiLCJjb21wb25lbnRzL1RhYmxlL3NyYy9jb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfU2VsZWN0aW9uQ29sdW1uIiwiX0V4cGFuZFRyaWdnZXIiLCJfSGVhZGVyQ2VsbCIsIl9Cb2R5Q2VsbCIsIl9jb25zdGFudHMiLCJpc0NvbHVtbkdyb3VwIiwiY29sIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGRyZW4iLCJtYWtlRXhwYW5kVHJhbnNmb3JtIiwiY29uZmlnIiwiZXhwYW5kYWJsZSIsIm1lcmdlZEV4cGFuZGVkUm93S2V5cyIsInRyaWdnZXJFeHBhbmQiLCJnZXRSb3dLZXkiLCJjdXN0b21FeHBhbmRJY29uIiwiZXhwYW5kSWNvbiIsImNvbHVtbnMiLCJrZXkiLCJ3aWR0aCIsInJlbmRlciIsIl8iLCJyZWNvcmQiLCJpbmRleCIsInJlY29yZEtleSIsImV4cGFuZGVkIiwiaW5jbHVkZXMiLCJwcmVmaXhDbHMiLCJUQUJMRV9ERUZBVUxUX1BSRUZJWCIsIm9uRXhwYW5kIiwicmVjIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIl9qc3giLCJFeHBhbmRUcmlnZ2VyIiwib25Ub2dnbGUiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibWFrZVNlbGVjdGlvblRyYW5zZm9ybSIsIl9hIiwicm93U2VsZWN0aW9uIiwibWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwiY2hlY2tib3hQcm9wc01hcCIsImlzQWxsU2VsZWN0ZWQiLCJpc0luZGV0ZXJtaW5hdGUiLCJ0cmlnZ2VyU2VsZWN0aW9uIiwidHJpZ2dlclNlbGVjdEFsbCIsInNlbGVjdGlvblR5cGUiLCJ0eXBlIiwiT2JqZWN0IiwiYXNzaWduIiwiY29sdW1uV2lkdGgiLCJmaXhlZCIsInVuZGVmaW5lZCIsInJlbmRlckhlYWRlciIsIlNlbGVjdGlvbkhlYWRlckNvbnRyb2wiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsIm9uQ2hhbmdlIiwiY2hlY2tib3hQcm9wcyIsImdldCIsIlNlbGVjdGlvbkNvbnRyb2wiLCJkaXNhYmxlZCIsIm1ha2VTb3J0VHJhbnNmb3JtIiwic2l6ZSIsInNvcnRlciIsInNldFNvcnRlciIsIm1hcCIsImNvbHVtbiIsInRpdGxlIiwiSGVhZGVyQ2VsbCIsInNvcnRPcmRlciIsImNvbHVtbktleSIsIm9yZGVyIiwib25Tb3J0Q2xpY2siLCJjdXJyZW50U29ydGVyIiwiU1BBQ0VSX0NPTFVNTl9DTFMiLCJtYWtlU3BhY2VyVHJhbnNmb3JtIiwiY2xhc3NOYW1lIiwibWFrZVJlbmRlclRyYW5zZm9ybSIsInZhbHVlIiwiQm9keUNlbGwiLCJ1c2VUYWJsZUNvbHVtbnMiLCJ2YXJpYW50IiwidXNlTWVtbyIsInRyYW5zZm9ybXMiLCJzaG93RXhwYW5kQ29sdW1uIiwicHVzaCIsInJlZHVjZSIsImNvbHMiLCJmbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBZUEsU0FBU08sYUFBYUEsQ0FBSUMsR0FBdUIsRUFBQTtFQUMvQyxPQUFPLFVBQVUsSUFBSUEsR0FBRyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBRUYsR0FBMkIsQ0FBQ0csUUFBUSxDQUFDO0FBQ2xGO0FBeUJBLFNBQVNDLG1CQUFtQkEsQ0FBSUMsTUFBZ0MsRUFBQTtFQUM5RCxJQUFRQyxVQUFVLEdBQXNERCxNQUFNLENBQXRFQyxVQUFVO0lBQUVDLHFCQUFxQixHQUErQkYsTUFBTSxDQUExREUscUJB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QUk4QixZQUFZLEVBQUU7TUFDaEI2QyxVQUFVLENBQUNFLElBQUksQ0FBQ2pELHNCQUFzQixDQUFDNUIsTUFBTSxDQUFDLENBQUM7SUFDakQ7SUFDQTJFLFVBQVUsQ0FBQ0UsSUFBSSxDQUFDeEIsaUJBQWlCLENBQUNyRCxNQUFNLENBQUMsQ0FBQztJQUMxQzJFLFVBQVUsQ0FBQ0UsSUFBSSxDQUFDUixtQkFBbUIsQ0FBQSxDQUFLLENBQUM7SUFDekMsSUFBSUksT0FBTyxLQUFLLFFBQVEsRUFBRTtNQUN4QkUsVUFBVSxDQUFDRSxJQUFJLENBQUNWLG1CQUFtQixDQUFBLENBQUssQ0FBQztJQUMzQztJQUVBLE9BQU9RLFVBQVUsQ0FBQ0csTUFBTSxDQUFDLFVBQUNDLElBQUksRUFBRUMsRUFBRTtNQUFBLE9BQUtBLEVBQUUsQ0FBQ0QsSUFBSSxDQUFDO0lBQUEsR0FBRXhFLE9BQU8sQ0FBQztFQUMzRCxDQUFDLEVBQUUsQ0FDREEsT0FBTyxFQUNQa0UsT0FBTyxFQUNQeEUsVUFBVSxFQUNWNkIsWUFBWSxFQUNaNUIscUJBQXFCLEVBQ3JCNkIscUJBQXFCLEVBQ3JCQyxnQkFBZ0IsRUFDaEJDLGFBQWEsRUFDYkMsZUFBZSxFQUNmL0IsYUFBYSxFQUNiZ0MsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsRUFDaEJtQixNQUFNLEVBQ05DLFNBQVMsRUFDVEYsSUFBSSxFQUNKbEQsU0FBUyxDQUNWLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sLCBTZWxlY3Rpb25IZWFkZXJDb250cm9sIH0gZnJvbSAnLi4vZmVhdHVyZXMvU2VsZWN0aW9uQ29sdW1uJztcbmltcG9ydCB7IEV4cGFuZFRyaWdnZXIgfSBmcm9tICcuLi9mZWF0dXJlcy9FeHBhbmRUcmlnZ2VyJztcbmltcG9ydCB7IEhlYWRlckNlbGwgfSBmcm9tICcuLi9yZW5kZXJlcnMvSGVhZGVyQ2VsbCc7XG5pbXBvcnQgeyBCb2R5Q2VsbCB9IGZyb20gJy4uL3JlbmRlcmVycy9Cb2R5Q2VsbCc7XG5pbXBvcnQgeyBUQUJMRV9ERUZBVUxUX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5mdW5jdGlvbiBpc0NvbHVtbkdyb3VwKGNvbCkge1xuICAgIHJldHVybiAnY2hpbGRyZW4nIGluIGNvbCAmJiBBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbik7XG59XG5mdW5jdGlvbiBtYWtlRXhwYW5kVHJhbnNmb3JtKGNvbmZpZykge1xuICAgIGNvbnN0IHsgZXhwYW5kYWJsZSwgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCB0cmlnZ2VyRXhwYW5kLCBnZXRSb3dLZXkgfSA9IGNvbmZpZztcbiAgICBjb25zdCBjdXN0b21FeHBhbmRJY29uID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmV4cGFuZEljb247XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ19fZXhwYW5kX18nLFxuICAgICAgICAgICAgd2lkdGg6IDQ4LFxuICAgICAgICAgICAgcmVuZGVyOiAoXywgcmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZEtleSA9IGdldFJvd0tleShyZWNvcmQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBleHBhbmRlZCA9IG1lcmdlZEV4cGFuZGVkUm93S2V5cy5pbmNsdWRlcyhyZWNvcmRLZXkpO1xuICAgICAgICAgICAgICAgIGlmIChjdXN0b21FeHBhbmRJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXN0b21FeHBhbmRJY29uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeENsczogVEFCTEVfREVGQVVMVF9QUkVGSVgsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkV4cGFuZDogKHJlYywgZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckV4cGFuZChnZXRSb3dLZXkocmVjLCBpbmRleCksIHJlYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KEV4cGFuZFRyaWdnZXIsIHsgZXhwYW5kZWQ6IGV4cGFuZGVkLCBvblRvZ2dsZTogKCkgPT4gdHJpZ2dlckV4cGFuZChyZWNvcmRLZXksIHJlY29yZCkgfSkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uY29sdW1ucyxcbiAgICBdO1xufVxuZnVuY3Rpb24gbWFrZVNlbGVjdGlvblRyYW5zZm9ybShjb25maWcpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyByb3dTZWxlY3Rpb24sIG1lcmdlZFNlbGVjdGVkUm93S2V5cywgY2hlY2tib3hQcm9wc01hcCwgaXNBbGxTZWxlY3RlZCwgaXNJbmRldGVybWluYXRlLCB0cmlnZ2VyU2VsZWN0aW9uLCB0cmlnZ2VyU2VsZWN0QWxsLCBnZXRSb3dLZXksIH0gPSBjb25maWc7XG4gICAgaWYgKCFyb3dTZWxlY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHNlbGVjdGlvblR5cGUgPSAoX2EgPSByb3dTZWxlY3Rpb24udHlwZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2NoZWNrYm94JztcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsga2V5OiAnX19zZWxlY3Rpb25fXycsIHdpZHRoOiAoX2EgPSByb3dTZWxlY3Rpb24uY29sdW1uV2lkdGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDQ4LCBmaXhlZDogcm93U2VsZWN0aW9uLmZpeGVkID8gJ2xlZnQnIDogdW5kZWZpbmVkIH0sIChzZWxlY3Rpb25UeXBlID09PSAnY2hlY2tib3gnXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckhlYWRlcjogKCkgPT4gKF9qc3goU2VsZWN0aW9uSGVhZGVyQ29udHJvbCwgeyBjaGVja2VkOiBpc0FsbFNlbGVjdGVkLCBpbmRldGVybWluYXRlOiBpc0luZGV0ZXJtaW5hdGUsIG9uQ2hhbmdlOiB0cmlnZ2VyU2VsZWN0QWxsIH0pKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7fSkpLCB7IHJlbmRlcjogKF8sIHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkS2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGVja2JveFByb3BzID0gY2hlY2tib3hQcm9wc01hcC5nZXQocmVjb3JkS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFNlbGVjdGlvbkNvbnRyb2wsIHsgdHlwZTogc2VsZWN0aW9uVHlwZSwgY2hlY2tlZDogbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmluY2x1ZGVzKHJlY29yZEtleSksIGRpc2FibGVkOiBjaGVja2JveFByb3BzID09PSBudWxsIHx8IGNoZWNrYm94UHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoZWNrYm94UHJvcHMuZGlzYWJsZWQsIG9uQ2hhbmdlOiAoKSA9PiB0cmlnZ2VyU2VsZWN0aW9uKHJlY29yZEtleSkgfSkpO1xuICAgICAgICAgICAgICAgIH0gfSksXG4gICAgICAgICAgICAuLi5jb2x1bW5zLFxuICAgICAgICBdO1xuICAgIH07XG59XG5mdW5jdGlvbiBtYWtlU29ydFRyYW5zZm9ybShjb25maWcpIHtcbiAgICBjb25zdCB7IHNpemUsIHNvcnRlciwgc2V0U29ydGVyIH0gPSBjb25maWc7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlzQ29sdW1uR3JvdXAoY29sdW1uKSlcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNvbHVtbiksIHsgdGl0bGU6IGNvbHVtbi5yZW5kZXJIZWFkZXJcbiAgICAgICAgICAgICAgICA/IGNvbHVtbi5yZW5kZXJIZWFkZXIoeyBjb2x1bW4gfSlcbiAgICAgICAgICAgICAgICA6IChfanN4KEhlYWRlckNlbGwsIHsgY29sdW1uOiBjb2x1bW4sIHNpemU6IHNpemUsIHNvcnRPcmRlcjogc29ydGVyLmNvbHVtbktleSA9PT0gY29sdW1uLmtleSA/IChfYSA9IHNvcnRlci5vcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCA6IG51bGwsIG9uU29ydENsaWNrOiAoKSA9PiBzZXRTb3J0ZXIoKGN1cnJlbnRTb3J0ZXIpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5LZXk6IGNvbHVtbi5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogY3VycmVudFNvcnRlci5jb2x1bW5LZXkgIT09IGNvbHVtbi5rZXkgfHwgY3VycmVudFNvcnRlci5vcmRlciA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2FzY2VuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRTb3J0ZXIub3JkZXIgPT09ICdhc2NlbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2Rlc2NlbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgfSkpIH0pKSB9KTtcbiAgICB9KTtcbn1cbmNvbnN0IFNQQUNFUl9DT0xVTU5fQ0xTID0gJ29tLWNvbXBvbmVudC11aS10YWJsZS1jZWxsLS1zcGFjZXInO1xuZnVuY3Rpb24gbWFrZVNwYWNlclRyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IFtcbiAgICAgICAgeyBrZXk6ICdfX3NwYWNlcl9zdGFydF9fJywgd2lkdGg6IDE2LCB0aXRsZTogJycsIGNsYXNzTmFtZTogU1BBQ0VSX0NPTFVNTl9DTFMsIHJlbmRlcjogKCkgPT4gbnVsbCB9LFxuICAgICAgICAuLi5jb2x1bW5zLFxuICAgICAgICB7IGtleTogJ19fc3BhY2VyX2VuZF9fJywgd2lkdGg6IDE2LCB0aXRsZTogJycsIGNsYXNzTmFtZTogU1BBQ0VSX0NPTFVNTl9DTFMsIHJlbmRlcjogKCkgPT4gbnVsbCB9LFxuICAgIF07XG59XG5mdW5jdGlvbiBtYWtlUmVuZGVyVHJhbnNmb3JtKCkge1xuICAgIHJldHVybiAoY29sdW1ucykgPT4gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICBpZiAoaXNDb2x1bW5Hcm91cChjb2x1bW4pKVxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29sdW1uKSwgeyByZW5kZXI6ICh2YWx1ZSwgcmVjb3JkLCBpbmRleCkgPT4gQm9keUNlbGwoe1xuICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHJlY29yZDogcmVjb3JkLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgfSkgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlVGFibGVDb2x1bW5zKGNvbmZpZykge1xuICAgIGNvbnN0IHsgY29sdW1ucywgdmFyaWFudCwgZXhwYW5kYWJsZSwgcm93U2VsZWN0aW9uLCBtZXJnZWRFeHBhbmRlZFJvd0tleXMsIG1lcmdlZFNlbGVjdGVkUm93S2V5cywgY2hlY2tib3hQcm9wc01hcCwgaXNBbGxTZWxlY3RlZCwgaXNJbmRldGVybWluYXRlLCB0cmlnZ2VyRXhwYW5kLCB0cmlnZ2VyU2VsZWN0aW9uLCB0cmlnZ2VyU2VsZWN0QWxsLCBzb3J0ZXIsIHNldFNvcnRlciwgc2l6ZSwgZ2V0Um93S2V5LCB9ID0gY29uZmlnO1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtcyA9IFtdO1xuICAgICAgICBpZiAoZXhwYW5kYWJsZSAmJiBleHBhbmRhYmxlLnNob3dFeHBhbmRDb2x1bW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1zLnB1c2gobWFrZUV4cGFuZFRyYW5zZm9ybShjb25maWcpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm93U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1zLnB1c2gobWFrZVNlbGVjdGlvblRyYW5zZm9ybShjb25maWcpKTtcbiAgICAgICAgfVxuICAgICAgICB0cmFuc2Zvcm1zLnB1c2gobWFrZVNvcnRUcmFuc2Zvcm0oY29uZmlnKSk7XG4gICAgICAgIHRyYW5zZm9ybXMucHVzaChtYWtlUmVuZGVyVHJhbnNmb3JtKCkpO1xuICAgICAgICBpZiAodmFyaWFudCA9PT0gJ3N0cm9rZScpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybXMucHVzaChtYWtlU3BhY2VyVHJhbnNmb3JtKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1zLnJlZHVjZSgoY29scywgZm4pID0+IGZuKGNvbHMpLCBjb2x1bW5zKTtcbiAgICB9LCBbXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIGV4cGFuZGFibGUsXG4gICAgICAgIHJvd1NlbGVjdGlvbixcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLFxuICAgICAgICBtZXJnZWRTZWxlY3RlZFJvd0tleXMsXG4gICAgICAgIGNoZWNrYm94UHJvcHNNYXAsXG4gICAgICAgIGlzQWxsU2VsZWN0ZWQsXG4gICAgICAgIGlzSW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgdHJpZ2dlckV4cGFuZCxcbiAgICAgICAgdHJpZ2dlclNlbGVjdGlvbixcbiAgICAgICAgdHJpZ2dlclNlbGVjdEFsbCxcbiAgICAgICAgc29ydGVyLFxuICAgICAgICBzZXRTb3J0ZXIsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICBdKTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
260
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZUNvbHVtbnMuanMiLCJjb21wb25lbnRzL1RhYmxlL3NyYy9jb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfU2VsZWN0aW9uQ29sdW1uIiwiX0V4cGFuZFRyaWdnZXIiLCJfSGVhZGVyQ2VsbCIsIl9Cb2R5Q2VsbCIsIl9jb25zdGFudHMiLCJpc0NvbHVtbkdyb3VwIiwiY29sIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGRyZW4iLCJtYWtlRXhwYW5kVHJhbnNmb3JtIiwiY29uZmlnIiwiZXhwYW5kYWJsZSIsIm1lcmdlZEV4cGFuZGVkUm93S2V5cyIsInRyaWdnZXJFeHBhbmQiLCJnZXRSb3dLZXkiLCJjdXN0b21FeHBhbmRJY29uIiwiZXhwYW5kSWNvbiIsInJvd0V4cGFuZGFibGUiLCJjb2x1bW5zIiwiX2EiLCJrZXkiLCJ3aWR0aCIsImNvbHVtbldpZHRoIiwidGl0bGUiLCJjb2x1bW5UaXRsZSIsImZpeGVkIiwidW5kZWZpbmVkIiwicmVuZGVyIiwiXyIsInJlY29yZCIsImluZGV4IiwiY2FuRXhwYW5kIiwicmVjb3JkS2V5IiwiZXhwYW5kZWQiLCJpbmNsdWRlcyIsInByZWZpeENscyIsIlRBQkxFX0RFRkFVTFRfUFJFRklYIiwib25FeHBhbmQiLCJyZWMiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiX2pzeCIsIkV4cGFuZFRyaWdnZXIiLCJvblRvZ2dsZSIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJtYWtlU2VsZWN0aW9uVHJhbnNmb3JtIiwicm93U2VsZWN0aW9uIiwibWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwiY2hlY2tib3hQcm9wc01hcCIsImlzQWxsU2VsZWN0ZWQiLCJpc0luZGV0ZXJtaW5hdGUiLCJ0cmlnZ2VyU2VsZWN0aW9uIiwidHJpZ2dlclNlbGVjdEFsbCIsInNlbGVjdGlvblR5cGUiLCJ0eXBlIiwiT2JqZWN0IiwiYXNzaWduIiwicmVuZGVySGVhZGVyIiwiU2VsZWN0aW9uSGVhZGVyQ29udHJvbCIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwib25DaGFuZ2UiLCJyb3dQcm9wcyIsImdldCIsIlNlbGVjdGlvbkNvbnRyb2wiLCJhcmlhU29ydEZvciIsIm9yZGVyIiwiRU1QVFlfRklMVEVSX1ZBTFVFIiwibWFrZUhlYWRlclRyYW5zZm9ybSIsInNpemUiLCJzb3J0ZXIiLCJzZXRTb3J0ZXIiLCJmaWx0ZXJzIiwic2V0RmlsdGVycyIsIm1hcCIsImNvbHVtbiIsIl9iIiwiaXNTb3J0YWJsZSIsIkJvb2xlYW4iLCJhY3RpdmVPcmRlciIsImNvbHVtbktleSIsIlN0cmluZyIsImZpbHRlclNlbGVjdGVkIiwidXNlck9uSGVhZGVyQ2VsbCIsIm9uSGVhZGVyQ2VsbCIsInVzZXJBdHRycyIsIm9uRmlsdGVyQ2hhbmdlIiwibmV4dCIsImN1cnJlbnQiLCJfZGVmaW5lUHJvcGVydHkyIiwibGVuZ3RoIiwiSGVhZGVyQ2VsbCIsInNvcnRPcmRlciIsIm9uU29ydENsaWNrIiwiY3VycmVudFNvcnRlciIsIlNQQUNFUl9DT0xVTU5fQ0xTIiwibWFrZVNwYWNlclRyYW5zZm9ybSIsImNsYXNzTmFtZSIsIm1ha2VSZW5kZXJUcmFuc2Zvcm0iLCJ2YWx1ZSIsIkJvZHlDZWxsIiwidXNlVGFibGVDb2x1bW5zIiwidmFyaWFudCIsInVzZU1lbW8iLCJ0cmFuc2Zvcm1zIiwic2hvd0V4cGFuZENvbHVtbiIsInB1c2giLCJzZWxlY3Rpb25UcmFuc2Zvcm0iLCJ0cmFuc2Zvcm1lZCIsInJlZHVjZSIsImNvbHMiLCJmbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZ0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdB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RCxZQUFZLEdBQUdELHNCQUFzQixDQUFDcEMsTUFBTSxDQUFDLEdBQUcsSUFBSTtJQUMvRSxJQUFJa0csa0JBQWtCLEVBQUU7TUFDdEJILFVBQVUsQ0FBQ0UsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQztJQUNyQztJQUNBSCxVQUFVLENBQUNFLElBQUksQ0FBQ3RDLG1CQUFtQixDQUFDM0QsTUFBTSxDQUFDLENBQUM7SUFDNUMrRixVQUFVLENBQUNFLElBQUksQ0FBQ1IsbUJBQW1CLENBQUEsQ0FBSyxDQUFDO0lBQ3pDLElBQUlJLE9BQU8sS0FBSyxRQUFRLEVBQUU7TUFDeEJFLFVBQVUsQ0FBQ0UsSUFBSSxDQUFDVixtQkFBbUIsQ0FBQSxDQUFLLENBQUM7SUFDM0M7SUFFQSxJQUFNWSxXQUFXLEdBQUdKLFVBQVUsQ0FBQ0ssTUFBTSxDQUFDLFVBQUNDLElBQUksRUFBRUMsRUFBRTtNQUFBLE9BQUtBLEVBQUUsQ0FBQ0QsSUFBSSxDQUFDO0lBQUEsR0FBRTdGLE9BQU8sQ0FBQztJQUN0RSxPQUFPMkYsV0FBZ0Q7RUFDekQsQ0FBQyxFQUFFLENBQ0QzRixPQUFPLEVBQ1BxRixPQUFPLEVBQ1A1RixVQUFVLEVBQ1ZvQyxZQUFZLEVBQ1puQyxxQkFBcUIsRUFDckJvQyxxQkFBcUIsRUFDckJDLGdCQUFnQixFQUNoQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ2Z0QyxhQUFhLEVBQ2J1QyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixFQUNoQmtCLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxPQUFPLEVBQ1BDLFVBQVUsRUFDVkosSUFBSSxFQUNKeEQsU0FBUyxDQUNWLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sLCBTZWxlY3Rpb25IZWFkZXJDb250cm9sIH0gZnJvbSAnLi4vZmVhdHVyZXMvU2VsZWN0aW9uQ29sdW1uJztcbmltcG9ydCB7IEV4cGFuZFRyaWdnZXIgfSBmcm9tICcuLi9mZWF0dXJlcy9FeHBhbmRUcmlnZ2VyJztcbmltcG9ydCB7IEhlYWRlckNlbGwgfSBmcm9tICcuLi9yZW5kZXJlcnMvSGVhZGVyQ2VsbCc7XG5pbXBvcnQgeyBCb2R5Q2VsbCB9IGZyb20gJy4uL3JlbmRlcmVycy9Cb2R5Q2VsbCc7XG5pbXBvcnQgeyBUQUJMRV9ERUZBVUxUX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5mdW5jdGlvbiBpc0NvbHVtbkdyb3VwKGNvbCkge1xuICAgIHJldHVybiAnY2hpbGRyZW4nIGluIGNvbCAmJiBBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbik7XG59XG5mdW5jdGlvbiBtYWtlRXhwYW5kVHJhbnNmb3JtKGNvbmZpZykge1xuICAgIGNvbnN0IHsgZXhwYW5kYWJsZSwgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCB0cmlnZ2VyRXhwYW5kLCBnZXRSb3dLZXkgfSA9IGNvbmZpZztcbiAgICBjb25zdCBjdXN0b21FeHBhbmRJY29uID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmV4cGFuZEljb247XG4gICAgY29uc3Qgcm93RXhwYW5kYWJsZSA9IGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5yb3dFeHBhbmRhYmxlO1xuICAgIHJldHVybiAoY29sdW1ucykgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnX19leHBhbmRfXycsXG4gICAgICAgICAgICAgICAgLy8gSG9ub3IgYGV4cGFuZGFibGUuY29sdW1uV2lkdGhgIC8gYGNvbHVtblRpdGxlYCAvIGBmaXhlZGA7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byBhIDQ4cHggdW5sYWJlbGVkIGNvbHVtbi5cbiAgICAgICAgICAgICAgICB3aWR0aDogKF9hID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmNvbHVtbldpZHRoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiA0OCxcbiAgICAgICAgICAgICAgICB0aXRsZTogZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmNvbHVtblRpdGxlLFxuICAgICAgICAgICAgICAgIGZpeGVkOiAoZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmZpeGVkKSA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICA/ICdsZWZ0J1xuICAgICAgICAgICAgICAgICAgICA6IChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZml4ZWQpID09PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmZpeGVkLFxuICAgICAgICAgICAgICAgIHJlbmRlcjogKF8sIHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSG9ub3IgYHJvd0V4cGFuZGFibGVgOiB3aGVuIHRoZSBwcmVkaWNhdGUgZGVuaWVzIGEgcmVjb3JkLCByZW5kZXIgbm9cbiAgICAgICAgICAgICAgICAgICAgLy8gY2hldnJvbiBhdCBhbGwgKHRoZSByb3cgaXMgbm9uLWV4cGFuZGFibGUpLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW5FeHBhbmQgPSByb3dFeHBhbmRhYmxlID8gcm93RXhwYW5kYWJsZShyZWNvcmQpIDogdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5FeHBhbmQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkS2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHBhbmRlZCA9IG1lcmdlZEV4cGFuZGVkUm93S2V5cy5pbmNsdWRlcyhyZWNvcmRLZXkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VzdG9tRXhwYW5kSWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1c3RvbUV4cGFuZEljb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeENsczogVEFCTEVfREVGQVVMVF9QUkVGSVgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmQ6IChyZWMsIGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckV4cGFuZChnZXRSb3dLZXkocmVjLCBpbmRleCksIHJlYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChFeHBhbmRUcmlnZ2VyLCB7IGV4cGFuZGVkOiBleHBhbmRlZCwgb25Ub2dnbGU6ICgpID0+IHRyaWdnZXJFeHBhbmQocmVjb3JkS2V5LCByZWNvcmQpIH0pKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIF07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG1ha2VTZWxlY3Rpb25UcmFuc2Zvcm0oY29uZmlnKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgcm93U2VsZWN0aW9uLCBtZXJnZWRTZWxlY3RlZFJvd0tleXMsIGNoZWNrYm94UHJvcHNNYXAsIGlzQWxsU2VsZWN0ZWQsIGlzSW5kZXRlcm1pbmF0ZSwgdHJpZ2dlclNlbGVjdGlvbiwgdHJpZ2dlclNlbGVjdEFsbCwgZ2V0Um93S2V5LCB9ID0gY29uZmlnO1xuICAgIGlmICghcm93U2VsZWN0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlID0gKF9hID0gcm93U2VsZWN0aW9uLnR5cGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdjaGVja2JveCc7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IGtleTogJ19fc2VsZWN0aW9uX18nLCB3aWR0aDogKF9hID0gcm93U2VsZWN0aW9uLmNvbHVtbldpZHRoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiA0OCwgZml4ZWQ6IHJvd1NlbGVjdGlvbi5maXhlZCA/ICdsZWZ0JyA6IHVuZGVmaW5lZCB9LCAoc2VsZWN0aW9uVHlwZSA9PT0gJ2NoZWNrYm94J1xuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJIZWFkZXI6ICgpID0+IChfanN4KFNlbGVjdGlvbkhlYWRlckNvbnRyb2wsIHsgY2hlY2tlZDogaXNBbGxTZWxlY3RlZCwgaW5kZXRlcm1pbmF0ZTogaXNJbmRldGVybWluYXRlLCBvbkNoYW5nZTogdHJpZ2dlclNlbGVjdEFsbCB9KSksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDoge30pKSwgeyByZW5kZXI6IChfLCByZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZEtleSA9IGdldFJvd0tleShyZWNvcmQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93UHJvcHMgPSBjaGVja2JveFByb3BzTWFwLmdldChyZWNvcmRLZXkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goU2VsZWN0aW9uQ29udHJvbCwgeyB0eXBlOiBzZWxlY3Rpb25UeXBlLCBjaGVja2VkOiBtZXJnZWRTZWxlY3RlZFJvd0tleXMuaW5jbHVkZXMocmVjb3JkS2V5KSwgcm93UHJvcHM6IHJvd1Byb3BzLCBvbkNoYW5nZTogKCkgPT4gdHJpZ2dlclNlbGVjdGlvbihyZWNvcmRLZXkpIH0pKTtcbiAgICAgICAgICAgICAgICB9IH0pLFxuICAgICAgICAgICAgLi4uY29sdW1ucyxcbiAgICAgICAgXTtcbiAgICB9O1xufVxuZnVuY3Rpb24gYXJpYVNvcnRGb3Iob3JkZXIpIHtcbiAgICBpZiAob3JkZXIgPT09ICdhc2NlbmQnKVxuICAgICAgICByZXR1cm4gJ2FzY2VuZGluZyc7XG4gICAgaWYgKG9yZGVyID09PSAnZGVzY2VuZCcpXG4gICAgICAgIHJldHVybiAnZGVzY2VuZGluZyc7XG4gICAgcmV0dXJuICdub25lJztcbn1cbi8vIFN0YWJsZSBlbXB0eS1maWx0ZXIgcmVmZXJlbmNlLiBXaXRob3V0IHRoaXMsIGBmaWx0ZXJzW2tleV0gPz8gW11gIGNyZWF0ZXMgYVxuLy8gZnJlc2ggYFtdYCBvbiBldmVyeSByZW5kZXIsIHdoaWNoIHRocmFzaGVzIGBGaWx0ZXJUcmlnZ2VyYCdzXG4vLyBgdXNlRWZmZWN0KFtzZWxlY3RlZEtleXNdKWAgYW5kIGNhdXNlcyBhbiBpbmZpbml0ZSBzZXRTdGF0ZSBsb29wIGFmdGVyXG4vLyBjb25maXJtIC8gcmVzZXQuXG5jb25zdCBFTVBUWV9GSUxURVJfVkFMVUUgPSBbXTtcbmZ1bmN0aW9uIG1ha2VIZWFkZXJUcmFuc2Zvcm0oY29uZmlnKSB7XG4gICAgY29uc3QgeyBzaXplLCBzb3J0ZXIsIHNldFNvcnRlciwgZmlsdGVycywgc2V0RmlsdGVycyB9ID0gY29uZmlnO1xuICAgIHJldHVybiAoY29sdW1ucykgPT4gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoaXNDb2x1bW5Hcm91cChjb2x1bW4pKVxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICAgICAgY29uc3QgaXNTb3J0YWJsZSA9IEJvb2xlYW4oY29sdW1uLnNvcnRlcik7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9yZGVyID0gc29ydGVyLmNvbHVtbktleSA9PT0gY29sdW1uLmtleSA/IChfYSA9IHNvcnRlci5vcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9IGNvbHVtbi5rZXkgIT0gbnVsbCA/IFN0cmluZyhjb2x1bW4ua2V5KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmlsdGVyU2VsZWN0ZWQgPSBjb2x1bW5LZXkgIT0gbnVsbCA/ICgoX2IgPSBmaWx0ZXJzW2NvbHVtbktleV0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IEVNUFRZX0ZJTFRFUl9WQUxVRSkgOiBFTVBUWV9GSUxURVJfVkFMVUU7XG4gICAgICAgIC8vIENvbXBvc2Ugb25IZWFkZXJDZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdXNlci1wcm92aWRlZCBhdHRyaWJ1dGVzLlxuICAgICAgICBjb25zdCB1c2VyT25IZWFkZXJDZWxsID0gY29sdW1uLm9uSGVhZGVyQ2VsbDtcbiAgICAgICAgY29uc3Qgb25IZWFkZXJDZWxsID0gKGNvbCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHVzZXJBdHRycyA9IChfYSA9IHVzZXJPbkhlYWRlckNlbGwgPT09IG51bGwgfHwgdXNlck9uSGVhZGVyQ2VsbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdXNlck9uSGVhZGVyQ2VsbChjb2wsIGluZGV4KSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge307XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB1c2VyQXR0cnMpLCAoaXNTb3J0YWJsZSA/IHsgJ2FyaWEtc29ydCc6IGFyaWFTb3J0Rm9yKGFjdGl2ZU9yZGVyKSB9IDogbnVsbCkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvbkZpbHRlckNoYW5nZSA9IChuZXh0KSA9PiB7XG4gICAgICAgICAgICBpZiAoY29sdW1uS2V5ID09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0RmlsdGVycygoY3VycmVudCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudCksIHsgW2NvbHVtbktleV06IG5leHQubGVuZ3RoID8gbmV4dCA6IG51bGwgfSkpKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29sdW1uKSwgeyBvbkhlYWRlckNlbGwsIHRpdGxlOiBjb2x1bW4ucmVuZGVySGVhZGVyXG4gICAgICAgICAgICAgICAgPyBjb2x1bW4ucmVuZGVySGVhZGVyKHsgY29sdW1uIH0pXG4gICAgICAgICAgICAgICAgOiAoX2pzeChIZWFkZXJDZWxsLCB7IGNvbHVtbjogY29sdW1uLCBzaXplOiBzaXplLCBzb3J0T3JkZXI6IGFjdGl2ZU9yZGVyLCBvblNvcnRDbGljazogKCkgPT4gc2V0U29ydGVyKChjdXJyZW50U29ydGVyKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uS2V5OiBjb2x1bW4ua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGN1cnJlbnRTb3J0ZXIuY29sdW1uS2V5ICE9PSBjb2x1bW4ua2V5IHx8IGN1cnJlbnRTb3J0ZXIub3JkZXIgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdhc2NlbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50U29ydGVyLm9yZGVyID09PSAnYXNjZW5kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdkZXNjZW5kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH0pKSwgZmlsdGVyU2VsZWN0ZWQ6IGZpbHRlclNlbGVjdGVkLCBvbkZpbHRlckNoYW5nZTogb25GaWx0ZXJDaGFuZ2UgfSkpIH0pO1xuICAgIH0pO1xufVxuY29uc3QgU1BBQ0VSX0NPTFVNTl9DTFMgPSAnb20tY29tcG9uZW50LXVpLXRhYmxlLWNlbGwtLXNwYWNlcic7XG5mdW5jdGlvbiBtYWtlU3BhY2VyVHJhbnNmb3JtKCkge1xuICAgIHJldHVybiAoY29sdW1ucykgPT4gW1xuICAgICAgICB7IGtleTogJ19fc3BhY2VyX3N0YXJ0X18nLCB3aWR0aDogMTYsIHRpdGxlOiAnJywgY2xhc3NOYW1lOiBTUEFDRVJfQ09MVU1OX0NMUywgcmVuZGVyOiAoKSA9PiBudWxsIH0sXG4gICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIHsga2V5OiAnX19zcGFjZXJfZW5kX18nLCB3aWR0aDogMTYsIHRpdGxlOiAnJywgY2xhc3NOYW1lOiBTUEFDRVJfQ09MVU1OX0NMUywgcmVuZGVyOiAoKSA9PiBudWxsIH0sXG4gICAgXTtcbn1cbmZ1bmN0aW9uIG1ha2VSZW5kZXJUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGlmIChpc0NvbHVtbkdyb3VwKGNvbHVtbikpXG4gICAgICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pLCB7IHJlbmRlcjogKHZhbHVlLCByZWNvcmQsIGluZGV4KSA9PiBCb2R5Q2VsbCh7XG4gICAgICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHJlY29yZCxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIH0pIH0pO1xuICAgIH0pO1xufVxuLyoqXG4gKiBSZXR1cm5zIGNvbHVtbnMgcmVhZHkgdG8gYmUgcGFzc2VkIHRvIHRoZSB0YWJsZSBrZXJuZWwuXG4gKlxuICogVGhlIHJldHVybmVkIHNoYXBlIElTIHN0cnVjdHVyYWxseSB0aGUga2VybmVsJ3MgYENvbHVtbnNUeXBlPFQ+YDpcbiAqICAgLSBFdmVyeSBsZWFmIGNvbHVtbidzIGByZW5kZXJgIGlzIHJlcGxhY2VkIGJ5IGBtYWtlUmVuZGVyVHJhbnNmb3JtYCwgd2hpY2hcbiAqICAgICBhbHdheXMgcmV0dXJucyBhIGBSZWFjdE5vZGVgIChCb2R5Q2VsbCBoYW5kbGVzIGBUYWJsZUNlbGxDb250ZW50VmFsdWVgIC9cbiAqICAgICBgVGFibGVSZW5kZXJlZENlbGxgIGV4dHJhcyBhbmQgZW1pdHMgUmVhY3ROb2RlL1JlbmRlcmVkQ2VsbCkuXG4gKiAgIC0gRXZlcnkgbGVhZiBjb2x1bW4ncyBgdGl0bGVgIGlzIGVpdGhlciBhIFJlYWN0Tm9kZSBvciByZXBsYWNlZCBieVxuICogICAgIGA8SGVhZGVyQ2VsbCAvPmAuXG4gKiBCZWNhdXNlIFRTIGNhbid0IHRyYWNrIHRoYXQgdGhvc2UgcmVwbGFjZW1lbnRzIGhhdmUgaGFwcGVuZWQgYWNyb3NzIHRoZVxuICogYHRyYW5zZm9ybXMucmVkdWNlYCBjaGFpbiwgYSBzaW5nbGUgaW50ZXJuYWwgY2FzdCBpcyByZXF1aXJlZCDigJQgY2FsbCBzaXRlcyBub1xuICogbG9uZ2VyIG5lZWQgdGhlaXIgb3duIGBhcyB1bmtub3duIGFzIEludGVybmFsQ29sdW1uc1R5cGU8VD5gIGNhc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VUYWJsZUNvbHVtbnMoY29uZmlnKSB7XG4gICAgY29uc3QgeyBjb2x1bW5zLCB2YXJpYW50LCBleHBhbmRhYmxlLCByb3dTZWxlY3Rpb24sIG1lcmdlZEV4cGFuZGVkUm93S2V5cywgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLCBjaGVja2JveFByb3BzTWFwLCBpc0FsbFNlbGVjdGVkLCBpc0luZGV0ZXJtaW5hdGUsIHRyaWdnZXJFeHBhbmQsIHRyaWdnZXJTZWxlY3Rpb24sIHRyaWdnZXJTZWxlY3RBbGwsIHNvcnRlciwgc2V0U29ydGVyLCBmaWx0ZXJzLCBzZXRGaWx0ZXJzLCBzaXplLCBnZXRSb3dLZXksIH0gPSBjb25maWc7XG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1zID0gW107XG4gICAgICAgIGlmIChleHBhbmRhYmxlICYmIGV4cGFuZGFibGUuc2hvd0V4cGFuZENvbHVtbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybXMucHVzaChtYWtlRXhwYW5kVHJhbnNmb3JtKGNvbmZpZykpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblRyYW5zZm9ybSA9IHJvd1NlbGVjdGlvbiA/IG1ha2VTZWxlY3Rpb25UcmFuc2Zvcm0oY29uZmlnKSA6IG51bGw7XG4gICAgICAgIGlmIChzZWxlY3Rpb25UcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybXMucHVzaChzZWxlY3Rpb25UcmFuc2Zvcm0pO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zZm9ybXMucHVzaChtYWtlSGVhZGVyVHJhbnNmb3JtKGNvbmZpZykpO1xuICAgICAgICB0cmFuc2Zvcm1zLnB1c2gobWFrZVJlbmRlclRyYW5zZm9ybSgpKTtcbiAgICAgICAgaWYgKHZhcmlhbnQgPT09ICdzdHJva2UnKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1zLnB1c2gobWFrZVNwYWNlclRyYW5zZm9ybSgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZCA9IHRyYW5zZm9ybXMucmVkdWNlKChjb2xzLCBmbikgPT4gZm4oY29scyksIGNvbHVtbnMpO1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWQ7XG4gICAgfSwgW1xuICAgICAgICBjb2x1bW5zLFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICBleHBhbmRhYmxlLFxuICAgICAgICByb3dTZWxlY3Rpb24sXG4gICAgICAgIG1lcmdlZEV4cGFuZGVkUm93S2V5cyxcbiAgICAgICAgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLFxuICAgICAgICBjaGVja2JveFByb3BzTWFwLFxuICAgICAgICBpc0FsbFNlbGVjdGVkLFxuICAgICAgICBpc0luZGV0ZXJtaW5hdGUsXG4gICAgICAgIHRyaWdnZXJFeHBhbmQsXG4gICAgICAgIHRyaWdnZXJTZWxlY3Rpb24sXG4gICAgICAgIHRyaWdnZXJTZWxlY3RBbGwsXG4gICAgICAgIHNvcnRlcixcbiAgICAgICAgc2V0U29ydGVyLFxuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICBzZXRGaWx0ZXJzLFxuICAgICAgICBzaXplLFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgXSk7XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,5 +1,5 @@
1
1
  import type { Key } from 'react';
2
- import type { TableChangeMeta, TableColumnType, TablePaginationConfig, TableSortOrder } from '../interface';
2
+ import type { TableChangeMeta, TableColumnType, TableFilterValue, TablePaginationConfig, TableRecord, TableSortOrder } from '../interface';
3
3
  export interface TableSorterFieldState {
4
4
  columnKey: Key;
5
5
  order: Exclude<TableSortOrder, null>;
@@ -8,30 +8,37 @@ export interface TableSorterState {
8
8
  columnKey?: Key;
9
9
  order?: TableSortOrder;
10
10
  }
11
+ /** Map of column key → currently selected filter values (or null if cleared). */
12
+ export type TableFilterState = Record<string, TableFilterValue | null>;
11
13
  export interface TablePipelineState {
12
14
  sorter: TableSorterState;
15
+ filters: TableFilterState;
13
16
  pagination: false | Required<Pick<TablePaginationConfig, 'current' | 'pageSize'>>;
14
17
  }
15
- export interface ApplyTablePipelineInput<T> extends TablePipelineState {
18
+ export interface ApplyTablePipelineInput<T extends TableRecord> extends Omit<TablePipelineState, 'filters'> {
16
19
  columns: TableColumnType<T>[];
17
20
  dataSource: T[];
21
+ /** Filter state keyed by column key. Defaults to an empty filter map. */
22
+ filters?: TableFilterState;
18
23
  }
19
- export interface UseTableDataPipelineInput<T> {
24
+ export interface UseTableDataPipelineInput<T extends TableRecord> {
20
25
  columns: TableColumnType<T>[];
21
26
  dataSource: T[];
22
27
  pagination?: false | TablePaginationConfig;
23
28
  onChange?: (meta: TableChangeMeta<T>) => void;
24
29
  }
25
- export interface UseTableDataPipelineResult<T> {
30
+ export interface UseTableDataPipelineResult<T extends TableRecord> {
26
31
  currentDataSource: T[];
27
32
  total: number;
28
33
  sorter: TableSorterState;
29
34
  sorterStates: TableSorterFieldState[];
35
+ filters: TableFilterState;
30
36
  pagination: false | {
31
37
  current: number;
32
38
  pageSize: number;
33
39
  };
34
40
  setSorter: (updater: TableSorterState | ((current: TableSorterState) => TableSorterState)) => void;
41
+ setFilters: (updater: TableFilterState | ((current: TableFilterState) => TableFilterState)) => void;
35
42
  setPagination: (updater: {
36
43
  current: number;
37
44
  pageSize: number;
@@ -43,8 +50,8 @@ export interface UseTableDataPipelineResult<T> {
43
50
  pageSize: number;
44
51
  })) => void;
45
52
  }
46
- export declare const applyTablePipeline: <T>({ columns, dataSource, sorter, pagination, }: ApplyTablePipelineInput<T>) => {
53
+ export declare const applyTablePipeline: <T extends TableRecord>({ columns, dataSource, sorter, filters, pagination, }: ApplyTablePipelineInput<T>) => {
47
54
  currentDataSource: T[];
48
55
  total: number;
49
56
  };
50
- export declare const useTableDataPipeline: <T>({ columns, dataSource, pagination, onChange, }: UseTableDataPipelineInput<T>) => UseTableDataPipelineResult<T>;
57
+ export declare const useTableDataPipeline: <T extends TableRecord>({ columns, dataSource, pagination, onChange, }: UseTableDataPipelineInput<T>) => UseTableDataPipelineResult<T>;