@1money/component-ui 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/es/business/Filter/Option/Option.js +6 -2
  2. package/es/business/Filter/Option/interface.d.ts +4 -0
  3. package/es/business/Step/ActivityThread/ActivityThread.d.ts +3 -0
  4. package/es/business/Step/ActivityThread/ActivityThread.js +118 -0
  5. package/es/business/Step/ActivityThread/index.d.ts +2 -0
  6. package/es/business/Step/ActivityThread/index.js +5 -0
  7. package/es/business/Step/ActivityThread/interface.d.ts +27 -0
  8. package/es/business/Step/ActivityThread/interface.js +2 -0
  9. package/es/business/Step/ActivityThread/style/ActivityThread.css +58 -0
  10. package/es/business/Step/ActivityThread/style/css.js +2 -0
  11. package/es/business/Step/ActivityThread/style/index.d.ts +1 -0
  12. package/es/business/Step/ActivityThread/style/index.js +2 -0
  13. package/es/business/Step/index.d.ts +1 -0
  14. package/es/business/Step/index.js +4 -0
  15. package/es/business/index.d.ts +1 -0
  16. package/es/business/index.js +2 -1
  17. package/es/components/Filter/Filter.js +28 -13
  18. package/es/components/Filter/interface.d.ts +4 -0
  19. package/es/components/Step/Step.d.ts +2 -2
  20. package/es/components/Step/Step.js +9 -4
  21. package/es/components/Step/interface.d.ts +3 -0
  22. package/es/components/Step/style/Step.css +31 -0
  23. package/es/index.css +1 -1
  24. package/es/index.d.ts +1 -1
  25. package/es/index.js +1 -1
  26. package/lib/business/Filter/Option/Option.js +6 -2
  27. package/lib/business/Filter/Option/interface.d.ts +4 -0
  28. package/lib/business/Step/ActivityThread/ActivityThread.d.ts +3 -0
  29. package/lib/business/Step/ActivityThread/ActivityThread.js +125 -0
  30. package/lib/business/Step/ActivityThread/index.d.ts +2 -0
  31. package/lib/business/Step/ActivityThread/index.js +29 -0
  32. package/lib/business/Step/ActivityThread/interface.d.ts +27 -0
  33. package/lib/business/Step/ActivityThread/interface.js +6 -0
  34. package/lib/business/Step/ActivityThread/style/ActivityThread.css +58 -0
  35. package/lib/business/Step/ActivityThread/style/css.js +4 -0
  36. package/lib/business/Step/ActivityThread/style/index.d.ts +1 -0
  37. package/lib/business/Step/ActivityThread/style/index.js +4 -0
  38. package/lib/business/Step/index.d.ts +1 -0
  39. package/lib/business/Step/index.js +18 -0
  40. package/lib/business/index.d.ts +1 -0
  41. package/lib/business/index.js +13 -1
  42. package/lib/components/Filter/Filter.js +27 -12
  43. package/lib/components/Filter/interface.d.ts +4 -0
  44. package/lib/components/Step/Step.d.ts +2 -2
  45. package/lib/components/Step/Step.js +9 -4
  46. package/lib/components/Step/interface.d.ts +3 -0
  47. package/lib/components/Step/style/Step.css +31 -0
  48. package/lib/index.css +1 -1
  49. package/lib/index.d.ts +1 -1
  50. package/lib/index.js +1 -1
  51. package/package.json +11 -1
  52. package/scripts/mcp-server/examples.generated.json +6 -0
  53. package/scripts/mcp-server/index.generated.json +49 -5
@@ -8,6 +8,8 @@ exports.Filter = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
+ var _useControlledState3 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
12
+ var _useLayoutEffect = _interopRequireDefault(require("@1money/hooks/useLayoutEffect"));
11
13
  var _react = require("react");
12
14
  var _Button = require("../Button");
13
15
  var _Checkbox = require("../Checkbox");
@@ -85,9 +87,12 @@ var FilterBase = function FilterBase(_a) {
85
87
  filterOption = _a.filterOption,
86
88
  emptyContentProp = _a.emptyContent,
87
89
  renderRow = _a.renderRow,
90
+ value = _a.value,
91
+ _a$defaultValue = _a.defaultValue,
92
+ defaultValue = _a$defaultValue === void 0 ? [] : _a$defaultValue,
88
93
  onApply = _a.onApply,
89
94
  onReset = _a.onReset,
90
- rest = __rest(_a, ["ref", "className", "panelClassName", "size", "label", "placeholder", "options", "allLabel", "search", "searchPlaceholder", "filterOption", "emptyContent", "renderRow", "onApply", "onReset"]);
95
+ rest = __rest(_a, ["ref", "className", "panelClassName", "size", "label", "placeholder", "options", "allLabel", "search", "searchPlaceholder", "filterOption", "emptyContent", "renderRow", "value", "defaultValue", "onApply", "onReset"]);
91
96
  var locale = (0, _ConfigProvider.useLocale)('Filter');
92
97
  var allLabel = allLabelProp !== null && allLabelProp !== void 0 ? allLabelProp : locale.all;
93
98
  var searchPlaceholder = searchPlaceholderProp !== null && searchPlaceholderProp !== void 0 ? searchPlaceholderProp : locale.searchPlaceholder;
@@ -118,14 +123,25 @@ var FilterBase = function FilterBase(_a) {
118
123
  // `temp` is the in-panel draft; `committed` is the last Applied selection.
119
124
  // Only Apply promotes `temp` → `committed` and notifies the parent. With an
120
125
  // "All" row, "all selected" is represented by an empty array.
121
- var _useState5 = (0, _react.useState)([]),
126
+ var _useControlledState = (0, _useControlledState3["default"])(defaultValue, value),
127
+ _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
128
+ committed = _useControlledState2[0],
129
+ setCommitted = _useControlledState2[1];
130
+ var _useState5 = (0, _react.useState)(committed),
122
131
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
123
132
  temp = _useState6[0],
124
133
  setTemp = _useState6[1];
125
- var _useState7 = (0, _react.useState)([]),
126
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
127
- committed = _useState8[0],
128
- setCommitted = _useState8[1];
134
+ var previousCommitted = (0, _react.useRef)(committed);
135
+ (0, _useLayoutEffect["default"])(function () {
136
+ var previous = previousCommitted.current;
137
+ previousCommitted.current = committed;
138
+ // Equivalent array instances must not discard an in-progress draft.
139
+ if (previous.length !== committed.length || previous.some(function (item, index) {
140
+ return item !== committed[index];
141
+ })) {
142
+ setTemp(committed);
143
+ }
144
+ }, [committed]);
129
145
  // The "All" row is checked exactly when nothing specific is selected.
130
146
  var allChecked = temp.length === 0;
131
147
  // While searching, the "All" row is meaningless — hide it so a no-match search
@@ -148,7 +164,7 @@ var FilterBase = function FilterBase(_a) {
148
164
  onReset === null || onReset === void 0 ? void 0 : onReset([]);
149
165
  }
150
166
  };
151
- }, [onReset]);
167
+ }, [onReset, setCommitted]);
152
168
  var handleSelectChange = (0, _react.useCallback)(function (next) {
153
169
  var nextValues = (Array.isArray(next) ? next : []).map(String);
154
170
  // Selecting every concrete option collapses to "all" ([]), matching the
@@ -164,16 +180,15 @@ var FilterBase = function FilterBase(_a) {
164
180
  setCommitted(temp);
165
181
  onApply(temp);
166
182
  setOpen(false);
167
- }, [temp, onApply]);
183
+ }, [temp, onApply, setCommitted]);
168
184
  var handleReset = (0, _react.useCallback)(function () {
169
185
  setTemp([]);
170
186
  setCommitted([]);
171
187
  onReset === null || onReset === void 0 ? void 0 : onReset([]);
172
- }, [onReset]);
188
+ }, [onReset, setCommitted]);
173
189
  var handleOpenChange = (0, _react.useCallback)(function (nextOpen) {
174
190
  setOpen(nextOpen);
175
- if (nextOpen) return;
176
- // Closing without Apply discards the draft.
191
+ // Opening starts from the latest parent value; closing discards the draft.
177
192
  setTemp(committed);
178
193
  setKeyword('');
179
194
  }, [committed]);
@@ -267,4 +282,4 @@ var FilterBase = function FilterBase(_a) {
267
282
  }));
268
283
  };
269
284
  var Filter = exports.Filter = /*#__PURE__*/(0, _react.memo)(FilterBase);
270
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRmlsdGVyL0ZpbHRlci5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRmlsdGVyL0ZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0J1dHRvbiIsIl9DaGVja2JveCIsIl9Db25maWdQcm92aWRlciIsIl9FbXB0eSIsIl9GbGV4IiwiX0ljb25zIiwiX1NlbGVjdCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldSQVBfQ0xTIiwiUEFORUxfQ0xTIiwiY29uY2F0IiwicmVuZGVyRGVmYXVsdEVtcHR5Iiwibm9SZXN1bHRzIiwiaGludCIsIl9qc3giLCJFbXB0eSIsInZhcmlhbnQiLCJpY29uIiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsImNvbG9yIiwidGl0bGUiLCJUeXBvZ3JhcGh5Qm9keSIsInN0cm9uZyIsImNoaWxkcmVuIiwiZGVzY3JpcHRpb24iLCJzdHlsZSIsInBhZGRpbmciLCJGVUxMX1dJRFRIX1NUWUxFIiwiZmxleCIsImlzR3JvdXAiLCJpdGVtIiwiX3R5cGVvZjIiLCJBcnJheSIsImlzQXJyYXkiLCJvcHRpb25zIiwiZmxhdHRlbk9wdGlvbnMiLCJkYXRhIiwiZmxhdE1hcCIsIkZpbHRlckJhc2UiLCJfYSIsInJlZiIsImNsYXNzTmFtZSIsInBhbmVsQ2xhc3NOYW1lIiwiX2Ekc2l6ZSIsImxhYmVsIiwicGxhY2Vob2xkZXIiLCJhbGxMYWJlbFByb3AiLCJhbGxMYWJlbCIsIl9hJHNlYXJjaCIsInNlYXJjaCIsInNlYXJjaFBsYWNlaG9sZGVyUHJvcCIsInNlYXJjaFBsYWNlaG9sZGVyIiwiZmlsdGVyT3B0aW9uIiwiZW1wdHlDb250ZW50UHJvcCIsImVtcHR5Q29udGVudCIsInJlbmRlclJvdyIsIm9uQXBwbHkiLCJvblJlc2V0IiwicmVzdCIsImxvY2FsZSIsInVzZUxvY2FsZSIsImFsbCIsIm5vUmVzdWx0c0hpbnQiLCJmbGF0T3B0aW9ucyIsInVzZU1lbW8iLCJhbGxWYWx1ZXMiLCJtYXAiLCJvcHRpb24iLCJTdHJpbmciLCJ2YWx1ZSIsIm9wdGlvbkJ5VmFsdWUiLCJNYXAiLCJmb3JFYWNoIiwic2V0IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwib3BlbiIsInNldE9wZW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImtleXdvcmQiLCJzZXRLZXl3b3JkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ0ZW1wIiwic2V0VGVtcCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiY29tbWl0dGVkIiwic2V0Q29tbWl0dGVkIiwiYWxsQ2hlY2tlZCIsInNlYXJjaGluZyIsInRyaW0iLCJkZWZhdWx0RmlsdGVyT3B0aW9uIiwidXNlQ2FsbGJhY2siLCJzZWFyY2hWYWx1ZSIsInRlcm0iLCJ0b0xvd2VyQ2FzZSIsInNlYXJjaFRleHQiLCJpbmNsdWRlcyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJjbGVhciIsInJlc2V0IiwiaGFuZGxlU2VsZWN0Q2hhbmdlIiwibmV4dCIsIm5leHRWYWx1ZXMiLCJjb2xsYXBzZSIsImhhbmRsZUFsbENsaWNrIiwiaGFuZGxlQXBwbHkiLCJoYW5kbGVSZXNldCIsImhhbmRsZU9wZW5DaGFuZ2UiLCJuZXh0T3BlbiIsInJlbmRlclZhbHVlIiwiX29wdGlvbiIsIm1ldGEiLCJmb250U2l6ZSIsImZpcnN0IiwiZ2V0IiwiZmlyc3RMYWJlbCIsImV4dHJhIiwiX2pzeHMiLCJtb3JlU3VmZml4IiwicmVwbGFjZSIsIlNlbGVjdCIsImFzc2lnbiIsIm11bHRpcGxlIiwiam9pbkNscyIsIm9uT3BlbkNoYW5nZSIsIm9uQ2hhbmdlIiwic2VhcmNoYWJsZSIsIm9uU2VhcmNoQ2hhbmdlIiwicGFuZWxIZWFkZXIiLCJ1bmRlZmluZWQiLCJ0eXBlIiwib25DbGljayIsIkNoZWNrYm94IiwiY2hlY2tlZCIsInJlYWRPbmx5IiwicmVuZGVyT3B0aW9uIiwic2VsZWN0ZWQiLCJwYW5lbEZvb3RlciIsIkZsZXgiLCJnYXAiLCJCdXR0b24iLCJhcHBseSIsIkZpbHRlciIsImV4cG9ydHMiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxlQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxXQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFWLE9BQUE7QURUQSxJQUFJVyxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUss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LEVBQUVpRCxJQUFJLENBQUN5QixRQUFRLENBQUM7SUFBQTtJQUNoRUMsV0FBVyxFQUNULElBQUFwQixnQkFBQSxFQUFDcUIsVUFBSSxFQUFBO01BQUNDLEdBQUcsRUFBRSxDQUFDO01BQUV2RyxTQUFTLEtBQUFqQyxNQUFBLENBQUtGLFFBQVEsYUFBVTtNQUFBaUIsUUFBQSxFQUFBLENBQzVDLElBQUFYLGVBQUEsRUFBQ3FJLGNBQU0sRUFBQTtRQUFDOUgsS0FBSyxFQUFDLE1BQU07UUFBQ0QsSUFBSSxFQUFDLE9BQU87UUFBQ08sS0FBSyxFQUFFRSxnQkFBZ0I7UUFBRTZHLE9BQU8sRUFBRXpCLFdBQVc7UUFBQXhGLFFBQUEsRUFDNUVvQyxNQUFNLENBQUM2QztNQUFLLENBQUEsQ0FDTixFQUNULElBQUE1RixlQUFBLEVBQUNxSSxjQUFNLEVBQUE7UUFBQzlILEtBQUssRUFBQyxTQUFTO1FBQUNELElBQUksRUFBQyxPQUFPO1FBQUNPLEtBQUssRUFBRUUsZ0JBQWdCO1FBQUU2RyxPQUFPLEVBQUUxQixXQUFXO1FBQUF2RixRQUFBLEVBQy9Fb0MsTUFBTSxDQUFDdUY7TUFBSyxDQUFBLENBQ047SUFBQSxDQUFBO0VBQ0osQ0FBQSxDQUFBLENBRVQ7QUFFTixDQUFDO0FBRU0sSUFBTUMsTUFBTSxHQUFBQyxPQUFBLENBQUFELE1BQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDL0csVUFBVSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvRmlsdGVyL0ZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi9Db25maWdQcm92aWRlcic7XG5pbXBvcnQgeyBFbXB0eSB9IGZyb20gJy4uL0VtcHR5JztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi9GbGV4JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5jb25zdCBXUkFQX0NMUyA9ICdvbS1maWx0ZXInO1xuLy8gVGhlIHBhbmVsIGlzIHBvcnRhbGVkIHRvIDxib2R5Piwgc28gcGFuZWwtc2NvcGVkIG92ZXJyaWRlcyBhcmUga2V5ZWQgb2ZmIHRoaXNcbi8vIGNsYXNzIChwYXNzZWQgYXMgYHBhbmVsQ2xhc3NOYW1lYCkgcmF0aGVyIHRoYW4gdGhlIHRyaWdnZXIgcm9vdC5cbmNvbnN0IFBBTkVMX0NMUyA9IGAke1dSQVBfQ0xTfS1wYW5lbGA7XG5jb25zdCByZW5kZXJEZWZhdWx0RW1wdHkgPSAobm9SZXN1bHRzLCBoaW50KSA9PiAoX2pzeChFbXB0eSwgeyB2YXJpYW50OiAnZmlsbCcsIGljb246IF9qc3goSWNvbnMsIHsgbmFtZTogJ3NlYXJjaCcsIHNpemU6IDE2LCBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfSksIFxuICAgIC8vIEZpZ21hIGVtcHR5LXN0YXRlIHRleHQgaXMgQm9keSBTbWFsbCAoMTJweCk7IEVtcHR5J3Mgc3RyaW5nIHBhdGggd291bGRcbiAgICAvLyByZW5kZXIgVGl0bGUgc20gLyBCb2R5IG1kICgxNHB4KSwgc28gcGFzcyAxMnB4IG5vZGVzIGV4cGxpY2l0bHkuXG4gICAgdGl0bGU6IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgc3Ryb25nOiB0cnVlLCBjb2xvcjogJ25ldXRyYWwtc2Vjb25kYXJ5JywgY2hpbGRyZW46IG5vUmVzdWx0cyB9KSwgZGVzY3JpcHRpb246IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgY29sb3I6ICduZXV0cmFsLXNlY29uZGFyeScsIGNoaWxkcmVuOiBoaW50IH0pLCBzdHlsZTogeyBwYWRkaW5nOiAwIH0gfSkpO1xuY29uc3QgRlVMTF9XSURUSF9TVFlMRSA9IHsgZmxleDogMSB9O1xuY29uc3QgaXNHcm91cCA9IChpdGVtKSA9PiAhIWl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkoaXRlbS5vcHRpb25zKTtcbi8vIEZsYXR0ZW4gZmxhdC9ncm91cGVkIG9wdGlvbnMgaW50byBhIHNpbmdsZSBvcmRlcmVkIG9wdGlvbiBsaXN0IOKAlCB1c2VkIGZvciB0aGVcbi8vIHZhbHVl4oaSbGFiZWwgbG9va3VwIGFuZCB0aGUgXCJldmVyeSBvcHRpb24gc2VsZWN0ZWRcIiBjb3VudC5cbmNvbnN0IGZsYXR0ZW5PcHRpb25zID0gKGRhdGEpID0+IGRhdGEuZmxhdE1hcCgoaXRlbSkgPT4gKGlzR3JvdXAoaXRlbSkgPyBpdGVtLm9wdGlvbnMgOiBbaXRlbV0pKTtcbmNvbnN0IEZpbHRlckJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyByZWYsIGNsYXNzTmFtZSwgcGFuZWxDbGFzc05hbWUsIHNpemUgPSAnZXh0cmEtc21hbGwnLCBsYWJlbCwgcGxhY2Vob2xkZXIsIG9wdGlvbnMsIGFsbExhYmVsOiBhbGxMYWJlbFByb3AsIHNlYXJjaCA9IHRydWUsIHNlYXJjaFBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlclByb3AsIGZpbHRlck9wdGlvbiwgZW1wdHlDb250ZW50OiBlbXB0eUNvbnRlbnRQcm9wLCByZW5kZXJSb3csIG9uQXBwbHksIG9uUmVzZXQgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJyZWZcIiwgXCJjbGFzc05hbWVcIiwgXCJwYW5lbENsYXNzTmFtZVwiLCBcInNpemVcIiwgXCJsYWJlbFwiLCBcInBsYWNlaG9sZGVyXCIsIFwib3B0aW9uc1wiLCBcImFsbExhYmVsXCIsIFwic2VhcmNoXCIsIFwic2VhcmNoUGxhY2Vob2xkZXJcIiwgXCJmaWx0ZXJPcHRpb25cIiwgXCJlbXB0eUNvbnRlbnRcIiwgXCJyZW5kZXJSb3dcIiwgXCJvbkFwcGx5XCIsIFwib25SZXNldFwiXSk7XG4gICAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCdGaWx0ZXInKTtcbiAgICBjb25zdCBhbGxMYWJlbCA9IGFsbExhYmVsUHJvcCAhPT0gbnVsbCAmJiBhbGxMYWJlbFByb3AgIT09IHZvaWQgMCA/IGFsbExhYmVsUHJvcCA6IGxvY2FsZS5hbGw7XG4gICAgY29uc3Qgc2VhcmNoUGxhY2Vob2xkZXIgPSBzZWFyY2hQbGFjZWhvbGRlclByb3AgIT09IG51bGwgJiYgc2VhcmNoUGxhY2Vob2xkZXJQcm9wICE9PSB2b2lkIDAgPyBzZWFyY2hQbGFjZWhvbGRlclByb3AgOiBsb2NhbGUuc2VhcmNoUGxhY2Vob2xkZXI7XG4gICAgY29uc3QgZW1wdHlDb250ZW50ID0gZW1wdHlDb250ZW50UHJvcCAhPT0gbnVsbCAmJiBlbXB0eUNvbnRlbnRQcm9wICE9PSB2b2lkIDAgPyBlbXB0eUNvbnRlbnRQcm9wIDogcmVuZGVyRGVmYXVsdEVtcHR5KGxvY2FsZS5ub1Jlc3VsdHMsIGxvY2FsZS5ub1Jlc3VsdHNIaW50KTtcbiAgICBjb25zdCBmbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbnMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsVmFsdWVzID0gdXNlTWVtbygoKSA9PiBmbGF0T3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gU3RyaW5nKG9wdGlvbi52YWx1ZSkpLCBbZmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBvcHRpb25CeVZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgZmxhdE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBtYXAuc2V0KFN0cmluZyhvcHRpb24udmFsdWUpLCBvcHRpb24pKTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9LCBbZmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2tleXdvcmQsIHNldEtleXdvcmRdID0gdXNlU3RhdGUoJycpO1xuICAgIC8vIGB0ZW1wYCBpcyB0aGUgaW4tcGFuZWwgZHJhZnQ7IGBjb21taXR0ZWRgIGlzIHRoZSBsYXN0IEFwcGxpZWQgc2VsZWN0aW9uLlxuICAgIC8vIE9ubHkgQXBwbHkgcHJvbW90ZXMgYHRlbXBgIOKGkiBgY29tbWl0dGVkYCBhbmQgbm90aWZpZXMgdGhlIHBhcmVudC4gV2l0aCBhblxuICAgIC8vIFwiQWxsXCIgcm93LCBcImFsbCBzZWxlY3RlZFwiIGlzIHJlcHJlc2VudGVkIGJ5IGFuIGVtcHR5IGFycmF5LlxuICAgIGNvbnN0IFt0ZW1wLCBzZXRUZW1wXSA9IHVzZVN0YXRlKFtdKTtcbiAgICBjb25zdCBbY29tbWl0dGVkLCBzZXRDb21taXR0ZWRdID0gdXNlU3RhdGUoW10pO1xuICAgIC8vIFRoZSBcIkFsbFwiIHJvdyBpcyBjaGVja2VkIGV4YWN0bHkgd2hlbiBub3RoaW5nIHNwZWNpZmljIGlzIHNlbGVjdGVkLlxuICAgIGNvbnN0IGFsbENoZWNrZWQgPSB0ZW1wLmxlbmd0aCA9PT0gMDtcbiAgICAvLyBXaGlsZSBzZWFyY2hpbmcsIHRoZSBcIkFsbFwiIHJvdyBpcyBtZWFuaW5nbGVzcyDigJQgaGlkZSBpdCBzbyBhIG5vLW1hdGNoIHNlYXJjaFxuICAgIC8vIHNob3dzIHRoZSBlbXB0eSBzdGF0ZSBpbnN0ZWFkIG9mIGEgbG9uZSBcIkFsbFwiIHJvdy5cbiAgICBjb25zdCBzZWFyY2hpbmcgPSBzZWFyY2ggJiYga2V5d29yZC50cmltKCkubGVuZ3RoID4gMDtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyT3B0aW9uID0gdXNlQ2FsbGJhY2soKHNlYXJjaFZhbHVlLCBvcHRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdGVybSA9IHNlYXJjaFZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRlcm0pXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvcHRpb24uc2VhcmNoVGV4dCA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gb3B0aW9uLnNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKVxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICB9LCBbXSk7XG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XG4gICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgICAgICBzZXRUZW1wKFtdKTtcbiAgICAgICAgICAgIHNldENvbW1pdHRlZChbXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlc2V0OiAoKSA9PiB7XG4gICAgICAgICAgICBzZXRUZW1wKFtdKTtcbiAgICAgICAgICAgIHNldENvbW1pdHRlZChbXSk7XG4gICAgICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoW10pO1xuICAgICAgICB9LFxuICAgIH0pLCBbb25SZXNldF0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdENoYW5nZSA9IHVzZUNhbGxiYWNrKChuZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZXMgPSAoQXJyYXkuaXNBcnJheShuZXh0KSA/IG5leHQgOiBbXSkubWFwKFN0cmluZyk7XG4gICAgICAgIC8vIFNlbGVjdGluZyBldmVyeSBjb25jcmV0ZSBvcHRpb24gY29sbGFwc2VzIHRvIFwiYWxsXCIgKFtdKSwgbWF0Y2hpbmcgdGhlXG4gICAgICAgIC8vIGJhY2tlbmQgY29udmVudGlvbiB0aGF0IGVtcHR5ID09IG5vIGZpbHRlci5cbiAgICAgICAgY29uc3QgY29sbGFwc2UgPSBuZXh0VmFsdWVzLmxlbmd0aCA9PT0gYWxsVmFsdWVzLmxlbmd0aDtcbiAgICAgICAgc2V0VGVtcChjb2xsYXBzZSA/IFtdIDogbmV4dFZhbHVlcyk7XG4gICAgfSwgW2FsbFZhbHVlc10pO1xuICAgIGNvbnN0IGhhbmRsZUFsbENsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICAvLyBUaGUgXCJBbGxcIiByb3cgaXMgZXhjbHVzaXZlOiB0dXJuaW5nIGl0IG9uIGNsZWFycyBzcGVjaWZpYyBwaWNrcy5cbiAgICAgICAgc2V0VGVtcChbXSk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZUFwcGx5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBzZXRDb21taXR0ZWQodGVtcCk7XG4gICAgICAgIG9uQXBwbHkodGVtcCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0sIFt0ZW1wLCBvbkFwcGx5XSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNldFRlbXAoW10pO1xuICAgICAgICBzZXRDb21taXR0ZWQoW10pO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoW10pO1xuICAgIH0sIFtvblJlc2V0XSk7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUNhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBzZXRPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgaWYgKG5leHRPcGVuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBDbG9zaW5nIHdpdGhvdXQgQXBwbHkgZGlzY2FyZHMgdGhlIGRyYWZ0LlxuICAgICAgICBzZXRUZW1wKGNvbW1pdHRlZCk7XG4gICAgICAgIHNldEtleXdvcmQoJycpO1xuICAgIH0sIFtjb21taXR0ZWRdKTtcbiAgICAvLyBUaGUgdHJpZ2dlciByZWZsZWN0cyB0aGUgQ09NTUlUVEVEIHNlbGVjdGlvbiBvbmx5IOKAlCBgdGVtcGAgaXMgdGhlIGluLXBhbmVsXG4gICAgLy8gZHJhZnQgYW5kIG11c3Qgbm90IGxlYWsgaW50byB0aGUgdHJpZ2dlciBiZWZvcmUgQXBwbHkuIEFuIGVtcHR5IGBjb21taXR0ZWRgXG4gICAgLy8gbWVhbnMgXCJhbGxcIiAodGhlIGBhbGxMYWJlbGApLiBgcmVuZGVyVmFsdWVgIHNob3J0LWNpcmN1aXRzIFNlbGVjdCdzIG93blxuICAgIC8vIHBsYWNlaG9sZGVyIGhhbmRsaW5nLCBzbyB0aGUgZW1wdHkgc3RhdGUgbXVzdCByZXR1cm4gYGFsbExhYmVsYCBleHBsaWNpdGx5LlxuICAgIGNvbnN0IHJlbmRlclZhbHVlID0gdXNlQ2FsbGJhY2soKF9vcHRpb24sIG1ldGEpID0+IHtcbiAgICAgICAgaWYgKGNvbW1pdHRlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIGBhbGxMYWJlbGAgaXMgdGhlIGRlZmF1bHQgZmlsdGVyIHZhbHVlLCBub3QgYW4gZW1wdHkgcGxhY2Vob2xkZXIuIFRoZVxuICAgICAgICAgICAgLy8gdHJpZ2dlcidzIGVtcHR5IGB2YWx1ZWAgbWFrZXMgU2VsZWN0IHdyYXAgdGhpcyBpbiBpdHMgZ3JleSBwbGFjZWhvbGRlclxuICAgICAgICAgICAgLy8gY2xhc3MsIHNvIGZvcmNlIHRoZSBkZWZhdWx0IGRhcmsgdGV4dCB0byBtYXRjaCBEYXRlUmFuZ2UuXG4gICAgICAgICAgICByZXR1cm4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogbWV0YS5mb250U2l6ZSwgY29sb3I6ICdkZWZhdWx0JywgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlYCwgY2hpbGRyZW46IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlLWxhYmVsYCwgY2hpbGRyZW46IGFsbExhYmVsIH0pIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaXJzdCA9IG9wdGlvbkJ5VmFsdWUuZ2V0KGNvbW1pdHRlZFswXSk7XG4gICAgICAgIGNvbnN0IGZpcnN0TGFiZWwgPSBmaXJzdCA/IGZpcnN0LmxhYmVsIDogY29tbWl0dGVkWzBdO1xuICAgICAgICBjb25zdCBleHRyYSA9IGNvbW1pdHRlZC5sZW5ndGggLSAxO1xuICAgICAgICByZXR1cm4gKF9qc3hzKFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IG1ldGEuZm9udFNpemUsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZWAsIGNoaWxkcmVuOiBbX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fdmFsdWUtbGFiZWxgLCBjaGlsZHJlbjogZmlyc3RMYWJlbCB9KSwgZXh0cmEgPiAwICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlLW1vcmVgLCBjaGlsZHJlbjogbG9jYWxlLm1vcmVTdWZmaXgucmVwbGFjZSgne2NvdW50fScsIFN0cmluZyhleHRyYSkpIH0pXSB9KSk7XG4gICAgfSwgW2FsbExhYmVsLCBjb21taXR0ZWQsIG9wdGlvbkJ5VmFsdWVdKTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0LCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IG11bHRpcGxlOiB0cnVlLCBzaXplOiBzaXplLCBsYWJlbDogbGFiZWwsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgY2xhc3NOYW1lOiBqb2luQ2xzKFdSQVBfQ0xTLCBjbGFzc05hbWUpLCBwYW5lbENsYXNzTmFtZTogam9pbkNscyhQQU5FTF9DTFMsIHBhbmVsQ2xhc3NOYW1lKSwgdmFsdWU6IHRlbXAsIG9wZW46IG9wZW4sIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSwgb25DaGFuZ2U6IGhhbmRsZVNlbGVjdENoYW5nZSwgc2VhcmNoYWJsZTogc2VhcmNoLCBzZWFyY2hQbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHNlYXJjaFZhbHVlOiBrZXl3b3JkLCBvblNlYXJjaENoYW5nZTogc2V0S2V5d29yZCwgZmlsdGVyT3B0aW9uOiBmaWx0ZXJPcHRpb24gIT09IG51bGwgJiYgZmlsdGVyT3B0aW9uICE9PSB2b2lkIDAgPyBmaWx0ZXJPcHRpb24gOiBkZWZhdWx0RmlsdGVyT3B0aW9uLCBvcHRpb25zOiBvcHRpb25zLCBwYW5lbEhlYWRlcjogc2VhcmNoaW5nID8gdW5kZWZpbmVkIDogKF9qc3hzKFwiYnV0dG9uXCIsIHsgdHlwZTogJ2J1dHRvbicsIGNsYXNzTmFtZTogam9pbkNscyhgJHtXUkFQX0NMU31fX2FsbGAsIGFsbENoZWNrZWQgJiYgYCR7V1JBUF9DTFN9X19hbGwtLWNoZWNrZWRgKSwgb25DbGljazogaGFuZGxlQWxsQ2xpY2ssIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBhbGxMYWJlbCB9KSwgX2pzeChDaGVja2JveCwgeyBjaGVja2VkOiBhbGxDaGVja2VkLCByZWFkT25seTogdHJ1ZSwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3Jvdy1jaGVja2AgfSldIH0pKSwgZW1wdHlDb250ZW50OiBlbXB0eUNvbnRlbnQsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyT3B0aW9uOiAob3B0aW9uLCBtZXRhKSA9PiByZW5kZXJSb3cob3B0aW9uLCBtZXRhLnNlbGVjdGVkKSwgcGFuZWxGb290ZXI6IF9qc3hzKEZsZXgsIHsgZ2FwOiA4LCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fZm9vdGVyYCwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ2dyZXknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgb25DbGljazogaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiBsb2NhbGUucmVzZXQgfSksIF9qc3goQnV0dG9uLCB7IGNvbG9yOiAncHJpbWFyeScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBvbkNsaWNrOiBoYW5kbGVBcHBseSwgY2hpbGRyZW46IGxvY2FsZS5hcHBseSB9KV0gfSkgfSkpKTtcbn07XG5leHBvcnQgY29uc3QgRmlsdGVyID0gbWVtbyhGaWx0ZXJCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
285
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRmlsdGVyL0ZpbHRlci5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRmlsdGVyL0ZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZUxheW91dEVmZmVjdCIsIl9yZWFjdCIsIl9CdXR0b24iLCJfQ2hlY2tib3giLCJfQ29uZmlnUHJvdmlkZXIiLCJfRW1wdHkiLCJfRmxleCIsIl9JY29ucyIsIl9TZWxlY3QiLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJXUkFQX0NMUyIsIlBBTkVMX0NMUyIsImNvbmNhdCIsInJlbmRlckRlZmF1bHRFbXB0eSIsIm5vUmVzdWx0cyIsImhpbnQiLCJfanN4IiwiRW1wdHkiLCJ2YXJpYW50IiwiaWNvbiIsIkljb25zIiwibmFtZSIsInNpemUiLCJjb2xvciIsInRpdGxlIiwiVHlwb2dyYXBoeUJvZHkiLCJzdHJvbmciLCJjaGlsZHJlbiIsImRlc2NyaXB0aW9uIiwic3R5bGUiLCJwYWRkaW5nIiwiRlVMTF9XSURUSF9TVFlMRSIsImZsZXgiLCJpc0dyb3VwIiwiaXRlbSIsIl90eXBlb2YyIiwiQXJyYXkiLCJpc0FycmF5Iiwib3B0aW9ucyIsImZsYXR0ZW5PcHRpb25zIiwiZGF0YSIsImZsYXRNYXAiLCJGaWx0ZXJCYXNlIiwiX2EiLCJyZWYiLCJjbGFzc05hbWUiLCJwYW5lbENsYXNzTmFtZSIsIl9hJHNpemUiLCJsYWJlbCIsInBsYWNlaG9sZGVyIiwiYWxsTGFiZWxQcm9wIiwiYWxsTGFiZWwiLCJfYSRzZWFyY2giLCJzZWFyY2giLCJzZWFyY2hQbGFjZWhvbGRlclByb3AiLCJzZWFyY2hQbGFjZWhvbGRlciIsImZpbHRlck9wdGlvbiIsImVtcHR5Q29udGVudFByb3AiLCJlbXB0eUNvbnRlbnQiLCJyZW5kZXJSb3ciLCJ2YWx1ZSIsIl9hJGRlZmF1bHRWYWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQXBwbHkiLCJvblJlc2V0IiwicmVzdCIsImxvY2FsZSIsInVzZUxvY2FsZSIsImFsbCIsIm5vUmVzdWx0c0hpbnQiLCJmbGF0T3B0aW9ucyIsInVzZU1lbW8iLCJhbGxWYWx1ZXMiLCJtYXAiLCJvcHRpb24iLCJTdHJpbmciLCJvcHRpb25CeVZhbHVlIiwiTWFwIiwiZm9yRWFjaCIsInNldCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm9wZW4iLCJzZXRPcGVuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJrZXl3b3JkIiwic2V0S2V5d29yZCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsImNvbW1pdHRlZCIsInNldENvbW1pdHRlZCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwidGVtcCIsInNldFRlbXAiLCJwcmV2aW91c0NvbW1pdHRlZCIsInVzZVJlZiIsInVzZUxheW91dEVmZmVjdCIsInByZXZpb3VzIiwiY3VycmVudCIsInNvbWUiLCJpbmRleCIsImFsbENoZWNrZWQiLCJzZWFyY2hpbmciLCJ0cmltIiwiZGVmYXVsdEZpbHRlck9wdGlvbiIsInVzZUNhbGxiYWNrIiwic2VhcmNoVmFsdWUiLCJ0ZXJtIiwidG9Mb3dlckNhc2UiLCJzZWFyY2hUZXh0IiwiaW5jbHVkZXMiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiY2xlYXIiLCJyZXNldCIsImhhbmRsZVNlbGVjdENoYW5nZSIsIm5leHQiLCJuZXh0VmFsdWVzIiwiY29sbGFwc2UiLCJoYW5kbGVBbGxDbGljayIsImhhbmRsZUFwcGx5IiwiaGFuZGxlUmVzZXQiLCJoYW5kbGVPcGVuQ2hhbmdlIiwibmV4dE9wZW4iLCJyZW5kZXJWYWx1ZSIsIl9vcHRpb24iLCJtZXRhIiwiZm9udFNpemUiLCJmaXJzdCIsImdldCIsImZpcnN0TGFiZWwiLCJleHRyYSIsIl9qc3hzIiwibW9yZVN1ZmZpeCIsInJlcGxhY2UiLCJTZWxlY3QiLCJhc3NpZ24iLCJtdWx0aXBsZSIsImpvaW5DbHMiLCJvbk9wZW5DaGFuZ2UiLCJvbkNoYW5nZSIsInNlYXJjaGFibGUiLCJvblNlYXJjaENoYW5nZSIsInBhbmVsSGVhZGVyIiwidW5kZWZpbmVkIiwidHlwZSIsIm9uQ2xpY2siLCJDaGVja2JveCIsImNoZWNrZWQiLCJyZWFkT25seSIsInJlbmRlck9wdGlvbiIsInNlbGVjdGVkIiwicGFuZWxGb290ZXIiLCJGbGV4IiwiZ2FwIiwiQnV0dG9uIiwiYXBwbHkiLCJGaWx0ZXIiLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxPQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxXQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxXQUFBLEdBQUFiLE9BQUE7QURYQSxJQUFJYyxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7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QUFRLENBQUM7SUFBQTtJQUNoRUMsV0FBVyxFQUNULElBQUFwQixnQkFBQSxFQUFDcUIsVUFBSSxFQUFBO01BQUNDLEdBQUcsRUFBRSxDQUFDO01BQUVqSCxTQUFTLEtBQUFqQyxNQUFBLENBQUtGLFFBQVEsYUFBVTtNQUFBaUIsUUFBQSxFQUFBLENBQzVDLElBQUFYLGVBQUEsRUFBQytJLGNBQU0sRUFBQTtRQUFDeEksS0FBSyxFQUFDLE1BQU07UUFBQ0QsSUFBSSxFQUFDLE9BQU87UUFBQ08sS0FBSyxFQUFFRSxnQkFBZ0I7UUFBRXVILE9BQU8sRUFBRXpCLFdBQVc7UUFBQWxHLFFBQUEsRUFDNUV1QyxNQUFNLENBQUNvRDtNQUFLLENBQUEsQ0FDTixFQUNULElBQUF0RyxlQUFBLEVBQUMrSSxjQUFNLEVBQUE7UUFBQ3hJLEtBQUssRUFBQyxTQUFTO1FBQUNELElBQUksRUFBQyxPQUFPO1FBQUNPLEtBQUssRUFBRUUsZ0JBQWdCO1FBQUV1SCxPQUFPLEVBQUUxQixXQUFXO1FBQUFqRyxRQUFBLEVBQy9FdUMsTUFBTSxDQUFDOEY7TUFBSyxDQUFBLENBQ047SUFBQSxDQUFBO0VBQ0osQ0FBQSxDQUFBLENBRVQ7QUFFTixDQUFDO0FBRU0sSUFBTUMsTUFBTSxHQUFBQyxPQUFBLENBQUFELE1BQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDekgsVUFBVSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvRmlsdGVyL0ZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlQ29udHJvbGxlZFN0YXRlJztcbmltcG9ydCB1c2VMYXlvdXRFZmZlY3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXlvdXRFZmZlY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi9Db25maWdQcm92aWRlcic7XG5pbXBvcnQgeyBFbXB0eSB9IGZyb20gJy4uL0VtcHR5JztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi9GbGV4JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5jb25zdCBXUkFQX0NMUyA9ICdvbS1maWx0ZXInO1xuLy8gVGhlIHBhbmVsIGlzIHBvcnRhbGVkIHRvIDxib2R5Piwgc28gcGFuZWwtc2NvcGVkIG92ZXJyaWRlcyBhcmUga2V5ZWQgb2ZmIHRoaXNcbi8vIGNsYXNzIChwYXNzZWQgYXMgYHBhbmVsQ2xhc3NOYW1lYCkgcmF0aGVyIHRoYW4gdGhlIHRyaWdnZXIgcm9vdC5cbmNvbnN0IFBBTkVMX0NMUyA9IGAke1dSQVBfQ0xTfS1wYW5lbGA7XG5jb25zdCByZW5kZXJEZWZhdWx0RW1wdHkgPSAobm9SZXN1bHRzLCBoaW50KSA9PiAoX2pzeChFbXB0eSwgeyB2YXJpYW50OiAnZmlsbCcsIGljb246IF9qc3goSWNvbnMsIHsgbmFtZTogJ3NlYXJjaCcsIHNpemU6IDE2LCBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfSksIFxuICAgIC8vIEZpZ21hIGVtcHR5LXN0YXRlIHRleHQgaXMgQm9keSBTbWFsbCAoMTJweCk7IEVtcHR5J3Mgc3RyaW5nIHBhdGggd291bGRcbiAgICAvLyByZW5kZXIgVGl0bGUgc20gLyBCb2R5IG1kICgxNHB4KSwgc28gcGFzcyAxMnB4IG5vZGVzIGV4cGxpY2l0bHkuXG4gICAgdGl0bGU6IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgc3Ryb25nOiB0cnVlLCBjb2xvcjogJ25ldXRyYWwtc2Vjb25kYXJ5JywgY2hpbGRyZW46IG5vUmVzdWx0cyB9KSwgZGVzY3JpcHRpb246IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgY29sb3I6ICduZXV0cmFsLXNlY29uZGFyeScsIGNoaWxkcmVuOiBoaW50IH0pLCBzdHlsZTogeyBwYWRkaW5nOiAwIH0gfSkpO1xuY29uc3QgRlVMTF9XSURUSF9TVFlMRSA9IHsgZmxleDogMSB9O1xuY29uc3QgaXNHcm91cCA9IChpdGVtKSA9PiAhIWl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkoaXRlbS5vcHRpb25zKTtcbi8vIEZsYXR0ZW4gZmxhdC9ncm91cGVkIG9wdGlvbnMgaW50byBhIHNpbmdsZSBvcmRlcmVkIG9wdGlvbiBsaXN0IOKAlCB1c2VkIGZvciB0aGVcbi8vIHZhbHVl4oaSbGFiZWwgbG9va3VwIGFuZCB0aGUgXCJldmVyeSBvcHRpb24gc2VsZWN0ZWRcIiBjb3VudC5cbmNvbnN0IGZsYXR0ZW5PcHRpb25zID0gKGRhdGEpID0+IGRhdGEuZmxhdE1hcCgoaXRlbSkgPT4gKGlzR3JvdXAoaXRlbSkgPyBpdGVtLm9wdGlvbnMgOiBbaXRlbV0pKTtcbmNvbnN0IEZpbHRlckJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyByZWYsIGNsYXNzTmFtZSwgcGFuZWxDbGFzc05hbWUsIHNpemUgPSAnZXh0cmEtc21hbGwnLCBsYWJlbCwgcGxhY2Vob2xkZXIsIG9wdGlvbnMsIGFsbExhYmVsOiBhbGxMYWJlbFByb3AsIHNlYXJjaCA9IHRydWUsIHNlYXJjaFBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlclByb3AsIGZpbHRlck9wdGlvbiwgZW1wdHlDb250ZW50OiBlbXB0eUNvbnRlbnRQcm9wLCByZW5kZXJSb3csIHZhbHVlLCBkZWZhdWx0VmFsdWUgPSBbXSwgb25BcHBseSwgb25SZXNldCB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInJlZlwiLCBcImNsYXNzTmFtZVwiLCBcInBhbmVsQ2xhc3NOYW1lXCIsIFwic2l6ZVwiLCBcImxhYmVsXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJvcHRpb25zXCIsIFwiYWxsTGFiZWxcIiwgXCJzZWFyY2hcIiwgXCJzZWFyY2hQbGFjZWhvbGRlclwiLCBcImZpbHRlck9wdGlvblwiLCBcImVtcHR5Q29udGVudFwiLCBcInJlbmRlclJvd1wiLCBcInZhbHVlXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwib25BcHBseVwiLCBcIm9uUmVzZXRcIl0pO1xuICAgIGNvbnN0IGxvY2FsZSA9IHVzZUxvY2FsZSgnRmlsdGVyJyk7XG4gICAgY29uc3QgYWxsTGFiZWwgPSBhbGxMYWJlbFByb3AgIT09IG51bGwgJiYgYWxsTGFiZWxQcm9wICE9PSB2b2lkIDAgPyBhbGxMYWJlbFByb3AgOiBsb2NhbGUuYWxsO1xuICAgIGNvbnN0IHNlYXJjaFBsYWNlaG9sZGVyID0gc2VhcmNoUGxhY2Vob2xkZXJQcm9wICE9PSBudWxsICYmIHNlYXJjaFBsYWNlaG9sZGVyUHJvcCAhPT0gdm9pZCAwID8gc2VhcmNoUGxhY2Vob2xkZXJQcm9wIDogbG9jYWxlLnNlYXJjaFBsYWNlaG9sZGVyO1xuICAgIGNvbnN0IGVtcHR5Q29udGVudCA9IGVtcHR5Q29udGVudFByb3AgIT09IG51bGwgJiYgZW1wdHlDb250ZW50UHJvcCAhPT0gdm9pZCAwID8gZW1wdHlDb250ZW50UHJvcCA6IHJlbmRlckRlZmF1bHRFbXB0eShsb2NhbGUubm9SZXN1bHRzLCBsb2NhbGUubm9SZXN1bHRzSGludCk7XG4gICAgY29uc3QgZmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25zKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4gZmxhdE9wdGlvbnMubWFwKChvcHRpb24pID0+IFN0cmluZyhvcHRpb24udmFsdWUpKSwgW2ZsYXRPcHRpb25zXSk7XG4gICAgY29uc3Qgb3B0aW9uQnlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZsYXRPcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gbWFwLnNldChTdHJpbmcob3B0aW9uLnZhbHVlKSwgb3B0aW9uKSk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfSwgW2ZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtrZXl3b3JkLCBzZXRLZXl3b3JkXSA9IHVzZVN0YXRlKCcnKTtcbiAgICAvLyBgdGVtcGAgaXMgdGhlIGluLXBhbmVsIGRyYWZ0OyBgY29tbWl0dGVkYCBpcyB0aGUgbGFzdCBBcHBsaWVkIHNlbGVjdGlvbi5cbiAgICAvLyBPbmx5IEFwcGx5IHByb21vdGVzIGB0ZW1wYCDihpIgYGNvbW1pdHRlZGAgYW5kIG5vdGlmaWVzIHRoZSBwYXJlbnQuIFdpdGggYW5cbiAgICAvLyBcIkFsbFwiIHJvdywgXCJhbGwgc2VsZWN0ZWRcIiBpcyByZXByZXNlbnRlZCBieSBhbiBlbXB0eSBhcnJheS5cbiAgICBjb25zdCBbY29tbWl0dGVkLCBzZXRDb21taXR0ZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSwgdmFsdWUpO1xuICAgIGNvbnN0IFt0ZW1wLCBzZXRUZW1wXSA9IHVzZVN0YXRlKGNvbW1pdHRlZCk7XG4gICAgY29uc3QgcHJldmlvdXNDb21taXR0ZWQgPSB1c2VSZWYoY29tbWl0dGVkKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91cyA9IHByZXZpb3VzQ29tbWl0dGVkLmN1cnJlbnQ7XG4gICAgICAgIHByZXZpb3VzQ29tbWl0dGVkLmN1cnJlbnQgPSBjb21taXR0ZWQ7XG4gICAgICAgIC8vIEVxdWl2YWxlbnQgYXJyYXkgaW5zdGFuY2VzIG11c3Qgbm90IGRpc2NhcmQgYW4gaW4tcHJvZ3Jlc3MgZHJhZnQuXG4gICAgICAgIGlmIChwcmV2aW91cy5sZW5ndGggIT09IGNvbW1pdHRlZC5sZW5ndGggfHwgcHJldmlvdXMuc29tZSgoaXRlbSwgaW5kZXgpID0+IGl0ZW0gIT09IGNvbW1pdHRlZFtpbmRleF0pKSB7XG4gICAgICAgICAgICBzZXRUZW1wKGNvbW1pdHRlZCk7XG4gICAgICAgIH1cbiAgICB9LCBbY29tbWl0dGVkXSk7XG4gICAgLy8gVGhlIFwiQWxsXCIgcm93IGlzIGNoZWNrZWQgZXhhY3RseSB3aGVuIG5vdGhpbmcgc3BlY2lmaWMgaXMgc2VsZWN0ZWQuXG4gICAgY29uc3QgYWxsQ2hlY2tlZCA9IHRlbXAubGVuZ3RoID09PSAwO1xuICAgIC8vIFdoaWxlIHNlYXJjaGluZywgdGhlIFwiQWxsXCIgcm93IGlzIG1lYW5pbmdsZXNzIOKAlCBoaWRlIGl0IHNvIGEgbm8tbWF0Y2ggc2VhcmNoXG4gICAgLy8gc2hvd3MgdGhlIGVtcHR5IHN0YXRlIGluc3RlYWQgb2YgYSBsb25lIFwiQWxsXCIgcm93LlxuICAgIGNvbnN0IHNlYXJjaGluZyA9IHNlYXJjaCAmJiBrZXl3b3JkLnRyaW0oKS5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGRlZmF1bHRGaWx0ZXJPcHRpb24gPSB1c2VDYWxsYmFjaygoc2VhcmNoVmFsdWUsIG9wdGlvbikgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtID0gc2VhcmNoVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGVybSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdHlwZW9mIG9wdGlvbi5zZWFyY2hUZXh0ID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBvcHRpb24uc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pXG4gICAgICAgICAgICA6IGZhbHNlO1xuICAgIH0sIFtdKTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFRlbXAoW10pO1xuICAgICAgICAgICAgc2V0Q29tbWl0dGVkKFtdKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFRlbXAoW10pO1xuICAgICAgICAgICAgc2V0Q29tbWl0dGVkKFtdKTtcbiAgICAgICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChbXSk7XG4gICAgICAgIH0sXG4gICAgfSksIFtvblJlc2V0LCBzZXRDb21taXR0ZWRdKTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3RDaGFuZ2UgPSB1c2VDYWxsYmFjaygobmV4dCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0VmFsdWVzID0gKEFycmF5LmlzQXJyYXkobmV4dCkgPyBuZXh0IDogW10pLm1hcChTdHJpbmcpO1xuICAgICAgICAvLyBTZWxlY3RpbmcgZXZlcnkgY29uY3JldGUgb3B0aW9uIGNvbGxhcHNlcyB0byBcImFsbFwiIChbXSksIG1hdGNoaW5nIHRoZVxuICAgICAgICAvLyBiYWNrZW5kIGNvbnZlbnRpb24gdGhhdCBlbXB0eSA9PSBubyBmaWx0ZXIuXG4gICAgICAgIGNvbnN0IGNvbGxhcHNlID0gbmV4dFZhbHVlcy5sZW5ndGggPT09IGFsbFZhbHVlcy5sZW5ndGg7XG4gICAgICAgIHNldFRlbXAoY29sbGFwc2UgPyBbXSA6IG5leHRWYWx1ZXMpO1xuICAgIH0sIFthbGxWYWx1ZXNdKTtcbiAgICBjb25zdCBoYW5kbGVBbGxDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgLy8gVGhlIFwiQWxsXCIgcm93IGlzIGV4Y2x1c2l2ZTogdHVybmluZyBpdCBvbiBjbGVhcnMgc3BlY2lmaWMgcGlja3MuXG4gICAgICAgIHNldFRlbXAoW10pO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVBcHBseSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0Q29tbWl0dGVkKHRlbXApO1xuICAgICAgICBvbkFwcGx5KHRlbXApO1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICB9LCBbdGVtcCwgb25BcHBseSwgc2V0Q29tbWl0dGVkXSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNldFRlbXAoW10pO1xuICAgICAgICBzZXRDb21taXR0ZWQoW10pO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoW10pO1xuICAgIH0sIFtvblJlc2V0LCBzZXRDb21taXR0ZWRdKTtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlQ2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE9wZW4obmV4dE9wZW4pO1xuICAgICAgICAvLyBPcGVuaW5nIHN0YXJ0cyBmcm9tIHRoZSBsYXRlc3QgcGFyZW50IHZhbHVlOyBjbG9zaW5nIGRpc2NhcmRzIHRoZSBkcmFmdC5cbiAgICAgICAgc2V0VGVtcChjb21taXR0ZWQpO1xuICAgICAgICBzZXRLZXl3b3JkKCcnKTtcbiAgICB9LCBbY29tbWl0dGVkXSk7XG4gICAgLy8gVGhlIHRyaWdnZXIgcmVmbGVjdHMgdGhlIENPTU1JVFRFRCBzZWxlY3Rpb24gb25seSDigJQgYHRlbXBgIGlzIHRoZSBpbi1wYW5lbFxuICAgIC8vIGRyYWZ0IGFuZCBtdXN0IG5vdCBsZWFrIGludG8gdGhlIHRyaWdnZXIgYmVmb3JlIEFwcGx5LiBBbiBlbXB0eSBgY29tbWl0dGVkYFxuICAgIC8vIG1lYW5zIFwiYWxsXCIgKHRoZSBgYWxsTGFiZWxgKS4gYHJlbmRlclZhbHVlYCBzaG9ydC1jaXJjdWl0cyBTZWxlY3QncyBvd25cbiAgICAvLyBwbGFjZWhvbGRlciBoYW5kbGluZywgc28gdGhlIGVtcHR5IHN0YXRlIG11c3QgcmV0dXJuIGBhbGxMYWJlbGAgZXhwbGljaXRseS5cbiAgICBjb25zdCByZW5kZXJWYWx1ZSA9IHVzZUNhbGxiYWNrKChfb3B0aW9uLCBtZXRhKSA9PiB7XG4gICAgICAgIGlmIChjb21taXR0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBgYWxsTGFiZWxgIGlzIHRoZSBkZWZhdWx0IGZpbHRlciB2YWx1ZSwgbm90IGFuIGVtcHR5IHBsYWNlaG9sZGVyLiBUaGVcbiAgICAgICAgICAgIC8vIHRyaWdnZXIncyBlbXB0eSBgdmFsdWVgIG1ha2VzIFNlbGVjdCB3cmFwIHRoaXMgaW4gaXRzIGdyZXkgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgIC8vIGNsYXNzLCBzbyBmb3JjZSB0aGUgZGVmYXVsdCBkYXJrIHRleHQgdG8gbWF0Y2ggRGF0ZVJhbmdlLlxuICAgICAgICAgICAgcmV0dXJuIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IG1ldGEuZm9udFNpemUsIGNvbG9yOiAnZGVmYXVsdCcsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZWAsIGNoaWxkcmVuOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZS1sYWJlbGAsIGNoaWxkcmVuOiBhbGxMYWJlbCB9KSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlyc3QgPSBvcHRpb25CeVZhbHVlLmdldChjb21taXR0ZWRbMF0pO1xuICAgICAgICBjb25zdCBmaXJzdExhYmVsID0gZmlyc3QgPyBmaXJzdC5sYWJlbCA6IGNvbW1pdHRlZFswXTtcbiAgICAgICAgY29uc3QgZXh0cmEgPSBjb21taXR0ZWQubGVuZ3RoIC0gMTtcbiAgICAgICAgcmV0dXJuIChfanN4cyhUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBtZXRhLmZvbnRTaXplLCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fdmFsdWVgLCBjaGlsZHJlbjogW19qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlLWxhYmVsYCwgY2hpbGRyZW46IGZpcnN0TGFiZWwgfSksIGV4dHJhID4gMCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZS1tb3JlYCwgY2hpbGRyZW46IGxvY2FsZS5tb3JlU3VmZml4LnJlcGxhY2UoJ3tjb3VudH0nLCBTdHJpbmcoZXh0cmEpKSB9KV0gfSkpO1xuICAgIH0sIFthbGxMYWJlbCwgY29tbWl0dGVkLCBvcHRpb25CeVZhbHVlXSk7XG4gICAgcmV0dXJuIChfanN4KFNlbGVjdCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBtdWx0aXBsZTogdHJ1ZSwgc2l6ZTogc2l6ZSwgbGFiZWw6IGxhYmVsLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgcGFuZWxDbGFzc05hbWU6IGpvaW5DbHMoUEFORUxfQ0xTLCBwYW5lbENsYXNzTmFtZSksIHZhbHVlOiB0ZW1wLCBvcGVuOiBvcGVuLCBvbk9wZW5DaGFuZ2U6IGhhbmRsZU9wZW5DaGFuZ2UsIG9uQ2hhbmdlOiBoYW5kbGVTZWxlY3RDaGFuZ2UsIHNlYXJjaGFibGU6IHNlYXJjaCwgc2VhcmNoUGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCBzZWFyY2hWYWx1ZToga2V5d29yZCwgb25TZWFyY2hDaGFuZ2U6IHNldEtleXdvcmQsIGZpbHRlck9wdGlvbjogZmlsdGVyT3B0aW9uICE9PSBudWxsICYmIGZpbHRlck9wdGlvbiAhPT0gdm9pZCAwID8gZmlsdGVyT3B0aW9uIDogZGVmYXVsdEZpbHRlck9wdGlvbiwgb3B0aW9uczogb3B0aW9ucywgcGFuZWxIZWFkZXI6IHNlYXJjaGluZyA/IHVuZGVmaW5lZCA6IChfanN4cyhcImJ1dHRvblwiLCB7IHR5cGU6ICdidXR0b24nLCBjbGFzc05hbWU6IGpvaW5DbHMoYCR7V1JBUF9DTFN9X19hbGxgLCBhbGxDaGVja2VkICYmIGAke1dSQVBfQ0xTfV9fYWxsLS1jaGVja2VkYCksIG9uQ2xpY2s6IGhhbmRsZUFsbENsaWNrLCBjaGlsZHJlbjogW19qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogYWxsTGFiZWwgfSksIF9qc3goQ2hlY2tib3gsIHsgY2hlY2tlZDogYWxsQ2hlY2tlZCwgcmVhZE9ubHk6IHRydWUsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19yb3ctY2hlY2tgIH0pXSB9KSksIGVtcHR5Q29udGVudDogZW1wdHlDb250ZW50LCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlck9wdGlvbjogKG9wdGlvbiwgbWV0YSkgPT4gcmVuZGVyUm93KG9wdGlvbiwgbWV0YS5zZWxlY3RlZCksIHBhbmVsRm9vdGVyOiBfanN4cyhGbGV4LCB7IGdhcDogOCwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2Zvb3RlcmAsIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgY29sb3I6ICdncmV5Jywgc2l6ZTogJ3NtYWxsJywgc3R5bGU6IEZVTExfV0lEVEhfU1RZTEUsIG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogbG9jYWxlLnJlc2V0IH0pLCBfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ3ByaW1hcnknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgb25DbGljazogaGFuZGxlQXBwbHksIGNoaWxkcmVuOiBsb2NhbGUuYXBwbHkgfSldIH0pIH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IEZpbHRlciA9IG1lbW8oRmlsdGVyQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -18,6 +18,10 @@ export interface FilterHandler {
18
18
  */
19
19
  export interface FilterProps extends Omit<SelectProps, 'ref' | 'options' | 'multiple' | 'value' | 'defaultValue' | 'onChange' | 'searchable' | 'searchValue' | 'defaultSearchValue' | 'onSearchChange' | 'renderOption' | 'renderOptionContent' | 'renderValue' | 'panelHeader' | 'panelFooter' | 'open' | 'defaultOpen' | 'onOpenChange' | 'allowDeselect' | 'maxVisibleValues' | 'size' | 'onReset'> {
20
20
  ref?: RefObject<FilterHandler | null>;
21
+ /** Committed selection controlled by the parent. Update it in onApply/onReset; [] means all. */
22
+ value?: string[];
23
+ /** Initial committed selection when uncontrolled. Reset still clears to []. */
24
+ defaultValue?: string[];
21
25
  /**
22
26
  * Trigger size. Defaults to the native `Select` `extra-small` (32px) size;
23
27
  * override with `'small'` / `'large'` for a taller trigger.
@@ -1,5 +1,5 @@
1
1
  import './style';
2
2
  import type { StepProps } from './interface';
3
- export declare const Step: ({ className, prefixCls, items, ...rest }: StepProps) => import("react/jsx-runtime").JSX.Element;
4
- declare const _default: import("react").MemoExoticComponent<({ className, prefixCls, items, ...rest }: StepProps) => import("react/jsx-runtime").JSX.Element>;
3
+ export declare const Step: ({ className, prefixCls, items, variant, ...rest }: StepProps) => import("react/jsx-runtime").JSX.Element;
4
+ declare const _default: import("react").MemoExoticComponent<({ className, prefixCls, items, variant, ...rest }: StepProps) => import("react/jsx-runtime").JSX.Element>;
5
5
  export default _default;
@@ -87,16 +87,21 @@ var Step = exports.Step = function Step(_a) {
87
87
  _a$prefixCls = _a.prefixCls,
88
88
  prefixCls = _a$prefixCls === void 0 ? _constants.STEP_DEFAULT_PREFIX : _a$prefixCls,
89
89
  items = _a.items,
90
- rest = __rest(_a, ["className", "prefixCls", "items"]);
90
+ _a$variant = _a.variant,
91
+ variant = _a$variant === void 0 ? 'default' : _a$variant,
92
+ rest = __rest(_a, ["className", "prefixCls", "items", "variant"]);
91
93
  var cls = (0, _classnames["default"])(prefixCls);
92
- return (0, _jsxRuntime.jsx)("div", Object.assign({}, rest, {
93
- className: cls(undefined, className),
94
+ return (0, _jsxRuntime.jsx)("div", Object.assign({
95
+ role: variant === 'timeline' ? 'list' : undefined
96
+ }, rest, {
97
+ className: cls(undefined, (0, _classnames.joinCls)(variant === 'timeline' && cls('timeline'), className)),
94
98
  children: items.map(function (item, index) {
95
99
  var _a;
96
100
  var status = (_a = item.status) !== null && _a !== void 0 ? _a : _constants.STEP_STATUS["default"];
97
101
  var isLast = index === items.length - 1;
98
102
  var tag = resolveTag(item.tag, status);
99
103
  return (0, _jsxRuntime.jsxs)("div", {
104
+ role: variant === 'timeline' ? 'listitem' : undefined,
100
105
  className: cls('item', cls("item-".concat(status))),
101
106
  children: [(0, _jsxRuntime.jsxs)("div", {
102
107
  className: cls('indicator-column'),
@@ -122,4 +127,4 @@ var Step = exports.Step = function Step(_a) {
122
127
  }));
123
128
  };
124
129
  var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(Step);
125
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU3RlcC9TdGVwLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9TdGVwL1N0ZXAudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9JY29ucyIsIl9UYWciLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfY29uc3RhbnRzIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJpc1ByaW1pdGl2ZSIsInZhbHVlIiwiaXNUYWdDb25maWciLCJfdHlwZW9mMiIsImlzVmFsaWRFbGVtZW50Iiwid3JhcFByaW1pdGl2ZSIsIndyYXBwZXIiLCJyZXNvbHZlVGFnIiwidGFnIiwic3RhdHVzIiwiX2EiLCJfanN4IiwiVGFnIiwibGFiZWwiLCJTdHJpbmciLCJjb2xvciIsIlNURVBfU1RBVFVTX1RBR19DT0xPUiIsInNpemUiLCJpY29uIiwicmVzb2x2ZUluZGljYXRvciIsImNscyIsImluZGV4IiwiY3VzdG9tIiwiU1RFUF9TVEFUVVNfSUNPTiIsIkljb25zIiwibmFtZSIsIlNURVBfSU5ESUNBVE9SX1NJWkUiLCJpbm5lckNvbG9yIiwiY2xhc3NOYW1lIiwiam9pbkNscyIsImNvbmNhdCIsImNoaWxkcmVuIiwicmVuZGVyVGl0bGUiLCJjb250ZW50IiwiVHlwb2dyYXBoeUhlYWRsaW5lIiwiYXNzaWduIiwiU1RFUF9USVRMRV9UWVBPR1JBUEhZIiwicmVuZGVyRGVzY3JpcHRpb24iLCJUeXBvZ3JhcGh5Qm9keSIsIlNURVBfREVTQ1JJUFRJT05fVFlQT0dSQVBIWSIsIlN0ZXAiLCJleHBvcnRzIiwiX2EkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiU1RFUF9ERUZBVUxUX1BSRUZJWCIsIml0ZW1zIiwicmVzdCIsImNsYXNzbmFtZXMiLCJ1bmRlZmluZWQiLCJtYXAiLCJpdGVtIiwiU1RFUF9TVEFUVVMiLCJpc0xhc3QiLCJfanN4cyIsImluZGljYXRvciIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJrZXkiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLElBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUdBQSxPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBUXFCLFNBQUFNLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxRQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxD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dXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCwgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgVGFnIH0gZnJvbSAnLi4vVGFnJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5SGVhZGxpbmUgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmltcG9ydCB7IFNURVBfREVGQVVMVF9QUkVGSVgsIFNURVBfREVTQ1JJUFRJT05fVFlQT0dSQVBIWSwgU1RFUF9JTkRJQ0FUT1JfU0laRSwgU1RFUF9TVEFUVVMsIFNURVBfU1RBVFVTX0lDT04sIFNURVBfU1RBVFVTX1RBR19DT0xPUiwgU1RFUF9USVRMRV9UWVBPR1JBUEhZLCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGlzUHJpbWl0aXZlID0gKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcic7XG5jb25zdCBpc1RhZ0NvbmZpZyA9ICh2YWx1ZSkgPT4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFpc1ZhbGlkRWxlbWVudCh2YWx1ZSkgJiYgJ2xhYmVsJyBpbiB2YWx1ZTtcbi8qIOKUgOKUgCBSZW5kZXIgaGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbmNvbnN0IHdyYXBQcmltaXRpdmUgPSAodmFsdWUsIHdyYXBwZXIpID0+IChpc1ByaW1pdGl2ZSh2YWx1ZSkgPyB3cmFwcGVyKHZhbHVlKSA6IHZhbHVlKTtcbmNvbnN0IHJlc29sdmVUYWcgPSAodGFnLCBzdGF0dXMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRhZyA9PSBudWxsKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAoaXNWYWxpZEVsZW1lbnQodGFnKSlcbiAgICAgICAgcmV0dXJuIHRhZztcbiAgICBpZiAoaXNQcmltaXRpdmUodGFnKSkge1xuICAgICAgICByZXR1cm4gX2pzeChUYWcsIHsgbGFiZWw6IFN0cmluZyh0YWcpLCBjb2xvcjogU1RFUF9TVEFUVVNfVEFHX0NPTE9SW3N0YXR1c10gfSk7XG4gICAgfVxuICAgIGlmIChpc1RhZ0NvbmZpZyh0YWcpKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChUYWcsIHsgbGFiZWw6IHRhZy5sYWJlbCwgY29sb3I6IChfYSA9IHRhZy5jb2xvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogU1RFUF9TVEFUVVNfVEFHX0NPTE9SW3N0YXR1c10sIHNpemU6IHRhZy5zaXplLCBpY29uOiB0YWcuaWNvbiB9KSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbmNvbnN0IHJlc29sdmVJbmRpY2F0b3IgPSAoY2xzLCBzdGF0dXMsIGluZGV4LCBjdXN0b20pID0+IHtcbiAgICBpZiAoY3VzdG9tICE9IG51bGwpXG4gICAgICAgIHJldHVybiBjdXN0b207XG4gICAgY29uc3QgaWNvbiA9IFNURVBfU1RBVFVTX0lDT05bc3RhdHVzXTtcbiAgICBpZiAoaWNvbikge1xuICAgICAgICByZXR1cm4gKF9qc3goSWNvbnMsIHsgbmFtZTogaWNvbi5uYW1lLCBzaXplOiBTVEVQX0lORElDQVRPUl9TSVpFLCBjb2xvcjogaWNvbi5jb2xvciwgaW5uZXJDb2xvcjogaWNvbi5pbm5lckNvbG9yLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xzKCdpbmRpY2F0b3ItaWNvbicpLCBjbHMoYGluZGljYXRvci1pY29uLSR7c3RhdHVzfWApKSB9KSk7XG4gICAgfVxuICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xzKCdpbmRpY2F0b3ItbnVtYmVyJyksIGNoaWxkcmVuOiBpbmRleCArIDEgfSk7XG59O1xuY29uc3QgcmVuZGVyVGl0bGUgPSAoY29udGVudCkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCBPYmplY3QuYXNzaWduKHt9LCBTVEVQX1RJVExFX1RZUE9HUkFQSFksIHsgY2hpbGRyZW46IGNvbnRlbnQgfSkpKTtcbmNvbnN0IHJlbmRlckRlc2NyaXB0aW9uID0gKGNvbnRlbnQpID0+IChfanN4KFR5cG9ncmFwaHlCb2R5LCBPYmplY3QuYXNzaWduKHt9LCBTVEVQX0RFU0NSSVBUSU9OX1RZUE9HUkFQSFksIHsgY2hpbGRyZW46IGNvbnRlbnQgfSkpKTtcbi8qIOKUgOKUgCBDb21wb25lbnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5leHBvcnQgY29uc3QgU3RlcCA9IChfYSkgPT4ge1xuICAgIHZhciB7IGNsYXNzTmFtZSwgcHJlZml4Q2xzID0gU1RFUF9ERUZBVUxUX1BSRUZJWCwgaXRlbXMgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJpdGVtc1wiXSk7XG4gICAgY29uc3QgY2xzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IGNsYXNzTmFtZTogY2xzKHVuZGVmaW5lZCwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IChfYSA9IGl0ZW0uc3RhdHVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBTVEVQX1NUQVRVUy5kZWZhdWx0O1xuICAgICAgICAgICAgY29uc3QgaXNMYXN0ID0gaW5kZXggPT09IGl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBjb25zdCB0YWcgPSByZXNvbHZlVGFnKGl0ZW0udGFnLCBzdGF0dXMpO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xzKCdpdGVtJywgY2xzKGBpdGVtLSR7c3RhdHVzfWApKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xzKCdpbmRpY2F0b3ItY29sdW1uJyksIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xzKCdpbmRpY2F0b3InKSwgY2hpbGRyZW46IHJlc29sdmVJbmRpY2F0b3IoY2xzLCBzdGF0dXMsIGluZGV4LCBpdGVtLmluZGljYXRvcikgfSksICFpc0xhc3QgJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNscygnY29ubmVjdG9yJykgfSldIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xzKCdjb250ZW50JywgaXNMYXN0ID8gdW5kZWZpbmVkIDogY2xzKCdjb250ZW50LWNvbnRpbnVhdGlvbicpKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xzKCdjb3B5JyksIGNoaWxkcmVuOiBbd3JhcFByaW1pdGl2ZShpdGVtLnRpdGxlLCByZW5kZXJUaXRsZSksIGl0ZW0uZGVzY3JpcHRpb24gIT0gbnVsbCAmJiB3cmFwUHJpbWl0aXZlKGl0ZW0uZGVzY3JpcHRpb24sIHJlbmRlckRlc2NyaXB0aW9uKV0gfSksIHRhZyAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbHMoJ3RhZycpLCBjaGlsZHJlbjogdGFnIH0pXSB9KV0gfSwgaXRlbS5rZXkpKTtcbiAgICAgICAgfSkgfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKFN0ZXApOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
130
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU3RlcC9TdGVwLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9TdGVwL1N0ZXAudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9JY29ucyIsIl9UYWciLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfY29uc3RhbnRzIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJpc1ByaW1pdGl2ZSIsInZhbHVlIiwiaXNUYWdDb25maWciLCJfdHlwZW9mMiIsImlzVmFsaWRFbGVtZW50Iiwid3JhcFByaW1pdGl2ZSIsIndyYXBwZXIiLCJyZXNvbHZlVGFnIiwidGFnIiwic3RhdHVzIiwiX2EiLCJfanN4IiwiVGFnIiwibGFiZWwiLCJTdHJpbmciLCJjb2xvciIsIlNURVBfU1RBVFVTX1RBR19DT0xPUiIsInNpemUiLCJpY29uIiwicmVzb2x2ZUluZGljYXRvciIsImNscyIsImluZGV4IiwiY3VzdG9tIiwiU1RFUF9TVEFUVVNfSUNPTiIsIkljb25zIiwibmFtZSIsIlNURVBfSU5ESUNBVE9SX1NJWkUiLCJpbm5lckNvbG9yIiwiY2xhc3NOYW1lIiwiam9pbkNscyIsImNvbmNhdCIsImNoaWxkcmVuIiwicmVuZGVyVGl0bGUiLCJjb250ZW50IiwiVHlwb2dyYXBoeUhlYWRsaW5lIiwiYXNzaWduIiwiU1RFUF9USVRMRV9UWVBPR1JBUEhZIiwicmVuZGVyRGVzY3JpcHRpb24iLCJUeXBvZ3JhcGh5Qm9keSIsIlNURVBfREVTQ1JJUFRJT05fVFlQT0dSQVBIWSIsIlN0ZXAiLCJleHBvcnRzIiwiX2EkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiU1RFUF9ERUZBVUxUX1BSRUZJWCIsIml0ZW1zIiwiX2EkdmFyaWFudCIsInZhcmlhbnQiLCJyZXN0IiwiY2xhc3NuYW1lcyIsInJvbGUiLCJ1bmRlZmluZWQiLCJtYXAiLCJpdGVtIiwiU1RFUF9TVEFUVVMiLCJpc0xhc3QiLCJfanN4cyIsImluZGljYXRvciIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJrZXkiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLElBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUdBQSxPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBUXFCLFNBQUFNLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxRQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFB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LElBQUFHLGVBQUEsRUFBQSxLQUFBLEVBQUE7WUFBS2lCLFNBQVMsRUFBRVIsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUFBVyxRQUFBLEVBQUd2QjtVQUFHLENBQUEsQ0FBTztRQUFBLENBQUEsQ0FDM0M7TUFBQSxDQUFBLEVBZEU2QyxJQUFJLENBQUNPLEdBQUcsQ0FlWjtJQUVWLENBQUM7RUFBQyxDQUFBLENBQUEsQ0FDRTtBQUVWLENBQUM7QUFBQyxJQUFBQyxRQUFBLEdBQUFwQixPQUFBLDJCQUVhLElBQUFxQixXQUFJLEVBQUN0QixJQUFJLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TdGVwL1N0ZXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgaXNWYWxpZEVsZW1lbnQsIG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFRhZyB9IGZyb20gJy4uL1RhZyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5pbXBvcnQgeyBTVEVQX0RFRkFVTFRfUFJFRklYLCBTVEVQX0RFU0NSSVBUSU9OX1RZUE9HUkFQSFksIFNURVBfSU5ESUNBVE9SX1NJWkUsIFNURVBfU1RBVFVTLCBTVEVQX1NUQVRVU19JQ09OLCBTVEVQX1NUQVRVU19UQUdfQ09MT1IsIFNURVBfVElUTEVfVFlQT0dSQVBIWSwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCBpc1ByaW1pdGl2ZSA9ICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInO1xuY29uc3QgaXNUYWdDb25maWcgPSAodmFsdWUpID0+ICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhaXNWYWxpZEVsZW1lbnQodmFsdWUpICYmICdsYWJlbCcgaW4gdmFsdWU7XG4vKiDilIDilIAgUmVuZGVyIGhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5jb25zdCB3cmFwUHJpbWl0aXZlID0gKHZhbHVlLCB3cmFwcGVyKSA9PiAoaXNQcmltaXRpdmUodmFsdWUpID8gd3JhcHBlcih2YWx1ZSkgOiB2YWx1ZSk7XG5jb25zdCByZXNvbHZlVGFnID0gKHRhZywgc3RhdHVzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0YWcgPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKGlzVmFsaWRFbGVtZW50KHRhZykpXG4gICAgICAgIHJldHVybiB0YWc7XG4gICAgaWYgKGlzUHJpbWl0aXZlKHRhZykpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goVGFnLCB7IGxhYmVsOiBTdHJpbmcodGFnKSwgY29sb3I6IFNURVBfU1RBVFVTX1RBR19DT0xPUltzdGF0dXNdIH0pO1xuICAgIH1cbiAgICBpZiAoaXNUYWdDb25maWcodGFnKSkge1xuICAgICAgICByZXR1cm4gKF9qc3goVGFnLCB7IGxhYmVsOiB0YWcubGFiZWwsIGNvbG9yOiAoX2EgPSB0YWcuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFNURVBfU1RBVFVTX1RBR19DT0xPUltzdGF0dXNdLCBzaXplOiB0YWcuc2l6ZSwgaWNvbjogdGFnLmljb24gfSkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5jb25zdCByZXNvbHZlSW5kaWNhdG9yID0gKGNscywgc3RhdHVzLCBpbmRleCwgY3VzdG9tKSA9PiB7XG4gICAgaWYgKGN1c3RvbSAhPSBudWxsKVxuICAgICAgICByZXR1cm4gY3VzdG9tO1xuICAgIGNvbnN0IGljb24gPSBTVEVQX1NUQVRVU19JQ09OW3N0YXR1c107XG4gICAgaWYgKGljb24pIHtcbiAgICAgICAgcmV0dXJuIChfanN4KEljb25zLCB7IG5hbWU6IGljb24ubmFtZSwgc2l6ZTogU1RFUF9JTkRJQ0FUT1JfU0laRSwgY29sb3I6IGljb24uY29sb3IsIGlubmVyQ29sb3I6IGljb24uaW5uZXJDb2xvciwgY2xhc3NOYW1lOiBqb2luQ2xzKGNscygnaW5kaWNhdG9yLWljb24nKSwgY2xzKGBpbmRpY2F0b3ItaWNvbi0ke3N0YXR1c31gKSkgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNscygnaW5kaWNhdG9yLW51bWJlcicpLCBjaGlsZHJlbjogaW5kZXggKyAxIH0pO1xufTtcbmNvbnN0IHJlbmRlclRpdGxlID0gKGNvbnRlbnQpID0+IChfanN4KFR5cG9ncmFwaHlIZWFkbGluZSwgT2JqZWN0LmFzc2lnbih7fSwgU1RFUF9USVRMRV9UWVBPR1JBUEhZLCB7IGNoaWxkcmVuOiBjb250ZW50IH0pKSk7XG5jb25zdCByZW5kZXJEZXNjcmlwdGlvbiA9IChjb250ZW50KSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgT2JqZWN0LmFzc2lnbih7fSwgU1RFUF9ERVNDUklQVElPTl9UWVBPR1JBUEhZLCB7IGNoaWxkcmVuOiBjb250ZW50IH0pKSk7XG4vKiDilIDilIAgQ29tcG9uZW50IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuZXhwb3J0IGNvbnN0IFN0ZXAgPSAoX2EpID0+IHtcbiAgICB2YXIgeyBjbGFzc05hbWUsIHByZWZpeENscyA9IFNURVBfREVGQVVMVF9QUkVGSVgsIGl0ZW1zLCB2YXJpYW50ID0gJ2RlZmF1bHQnIH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wiY2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwiaXRlbXNcIiwgXCJ2YXJpYW50XCJdKTtcbiAgICBjb25zdCBjbHMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oeyByb2xlOiB2YXJpYW50ID09PSAndGltZWxpbmUnID8gJ2xpc3QnIDogdW5kZWZpbmVkIH0sIHJlc3QsIHsgY2xhc3NOYW1lOiBjbHModW5kZWZpbmVkLCBqb2luQ2xzKHZhcmlhbnQgPT09ICd0aW1lbGluZScgJiYgY2xzKCd0aW1lbGluZScpLCBjbGFzc05hbWUpKSwgY2hpbGRyZW46IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IChfYSA9IGl0ZW0uc3RhdHVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBTVEVQX1NUQVRVUy5kZWZhdWx0O1xuICAgICAgICAgICAgY29uc3QgaXNMYXN0ID0gaW5kZXggPT09IGl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBjb25zdCB0YWcgPSByZXNvbHZlVGFnKGl0ZW0udGFnLCBzdGF0dXMpO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IHJvbGU6IHZhcmlhbnQgPT09ICd0aW1lbGluZScgPyAnbGlzdGl0ZW0nIDogdW5kZWZpbmVkLCBjbGFzc05hbWU6IGNscygnaXRlbScsIGNscyhgaXRlbS0ke3N0YXR1c31gKSksIGNoaWxkcmVuOiBbX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNscygnaW5kaWNhdG9yLWNvbHVtbicpLCBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNscygnaW5kaWNhdG9yJyksIGNoaWxkcmVuOiByZXNvbHZlSW5kaWNhdG9yKGNscywgc3RhdHVzLCBpbmRleCwgaXRlbS5pbmRpY2F0b3IpIH0pLCAhaXNMYXN0ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbHMoJ2Nvbm5lY3RvcicpIH0pXSB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNscygnY29udGVudCcsIGlzTGFzdCA/IHVuZGVmaW5lZCA6IGNscygnY29udGVudC1jb250aW51YXRpb24nKSksIGNoaWxkcmVuOiBbX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNscygnY29weScpLCBjaGlsZHJlbjogW3dyYXBQcmltaXRpdmUoaXRlbS50aXRsZSwgcmVuZGVyVGl0bGUpLCBpdGVtLmRlc2NyaXB0aW9uICE9IG51bGwgJiYgd3JhcFByaW1pdGl2ZShpdGVtLmRlc2NyaXB0aW9uLCByZW5kZXJEZXNjcmlwdGlvbildIH0pLCB0YWcgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xzKCd0YWcnKSwgY2hpbGRyZW46IHRhZyB9KV0gfSldIH0sIGl0ZW0ua2V5KSk7XG4gICAgICAgIH0pIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTdGVwKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -2,6 +2,7 @@ import type { HTMLAttributes, ReactNode } from 'react';
2
2
  import type { TagProps } from "../Tag";
3
3
  import type { StepStatus } from './constants';
4
4
  export type { StepStatus } from './constants';
5
+ export type StepVariant = 'default' | 'timeline';
5
6
  export interface StepTagConfig {
6
7
  label: string;
7
8
  color?: TagProps['color'];
@@ -19,4 +20,6 @@ export interface StepItem {
19
20
  export interface StepProps extends HTMLAttributes<HTMLDivElement> {
20
21
  prefixCls?: string;
21
22
  items: StepItem[];
23
+ /** Timeline uses neutral circular nodes and connectors for activity history. */
24
+ variant?: StepVariant;
22
25
  }
@@ -104,4 +104,35 @@
104
104
  .om-component-ui-step-tag {
105
105
  display: flex;
106
106
  align-items: center;
107
+ }
108
+ .om-component-ui-step-timeline {
109
+ gap: var(--om-spacing-500, 20px);
110
+ }
111
+ .om-component-ui-step-timeline .om-component-ui-step-indicator-column {
112
+ gap: var(--om-spacing-400, 16px);
113
+ width: var(--om-spacing-800, 32px);
114
+ }
115
+ .om-component-ui-step-timeline .om-component-ui-step-indicator {
116
+ box-sizing: border-box;
117
+ width: var(--om-spacing-800, 32px);
118
+ height: var(--om-spacing-800, 32px);
119
+ color: var(--om-icon-neutral-secondary, #9fa3a3);
120
+ background-color: var(--om-bg-default, #fff);
121
+ border: 1px solid var(--om-border-default, #d1d2d2);
122
+ border-radius: var(--om-radius-full, 9999px);
123
+ }
124
+ .om-component-ui-step-timeline .om-component-ui-step-indicator-number {
125
+ width: auto;
126
+ height: auto;
127
+ color: inherit;
128
+ background-color: transparent;
129
+ }
130
+ .om-component-ui-step-timeline .om-component-ui-step-connector {
131
+ background-color: var(--om-border-default, #d1d2d2);
132
+ }
133
+ .om-component-ui-step-timeline .om-component-ui-step-copy {
134
+ gap: var(--om-spacing-200, 8px);
135
+ }
136
+ .om-component-ui-step-timeline .om-component-ui-step-content-continuation {
137
+ padding-bottom: calc(var(--om-spacing-500, 20px) / 2);
107
138
  }