@1money/react-ui 1.9.5-alpha.0 → 1.10.1

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 (35) hide show
  1. package/es/components/InputAmount/InputAmount.js +56 -16
  2. package/es/components/InputAmount/interface.d.ts +1 -0
  3. package/es/components/Sidebar/SimplySidebar.d.ts +8 -0
  4. package/es/components/Sidebar/SimplySidebar.js +129 -0
  5. package/es/components/Sidebar/index.d.ts +1 -0
  6. package/es/components/Sidebar/index.js +2 -1
  7. package/es/components/Sidebar/interface.d.ts +4 -1
  8. package/es/components/Sidebar/style/SimplySidebar.css +1 -0
  9. package/es/components/Sidebar/style/SimplySidebar.scss +304 -0
  10. package/es/components/Sidebar/style/css.js +2 -1
  11. package/es/components/Sidebar/style/index.d.ts +1 -0
  12. package/es/components/Sidebar/style/index.js +2 -1
  13. package/es/components/Table/Table.d.ts +3 -3
  14. package/es/components/Table/Table.js +1 -1
  15. package/es/index.css +1 -1
  16. package/es/index.d.ts +5 -2
  17. package/es/index.js +4 -3
  18. package/lib/components/InputAmount/InputAmount.js +56 -16
  19. package/lib/components/InputAmount/interface.d.ts +1 -0
  20. package/lib/components/Sidebar/SimplySidebar.d.ts +8 -0
  21. package/lib/components/Sidebar/SimplySidebar.js +135 -0
  22. package/lib/components/Sidebar/index.d.ts +1 -0
  23. package/lib/components/Sidebar/index.js +9 -1
  24. package/lib/components/Sidebar/interface.d.ts +4 -1
  25. package/lib/components/Sidebar/style/SimplySidebar.css +1 -0
  26. package/lib/components/Sidebar/style/SimplySidebar.scss +304 -0
  27. package/lib/components/Sidebar/style/css.js +2 -1
  28. package/lib/components/Sidebar/style/index.d.ts +1 -0
  29. package/lib/components/Sidebar/style/index.js +2 -1
  30. package/lib/components/Table/Table.d.ts +3 -3
  31. package/lib/components/Table/Table.js +1 -1
  32. package/lib/index.css +1 -1
  33. package/lib/index.d.ts +5 -2
  34. package/lib/index.js +8 -1
  35. package/package.json +1 -1
@@ -26,6 +26,7 @@ export var InputAmount = function InputAmount(props) {
26
26
  invalid = props.invalid,
27
27
  _props$placeholder = props.placeholder,
28
28
  placeholder = _props$placeholder === void 0 ? '0' : _props$placeholder,
29
+ negative = props.negative,
29
30
  prefix = props.prefix,
30
31
  currency = props.currency,
31
32
  suffix = props.suffix,
@@ -34,7 +35,7 @@ export var InputAmount = function InputAmount(props) {
34
35
  onChange = props.onChange,
35
36
  _onBlur = props.onBlur,
36
37
  _onFocus = props.onFocus,
37
- rest = __rest(props, ["value", "maxFractionDigits", "children", "className", "wrapperCls", "prefixCls", "messageCls", "footnoteCls", "invalid", "placeholder", "prefix", "currency", "suffix", "message", "footnote", "onChange", "onBlur", "onFocus"]);
38
+ rest = __rest(props, ["value", "maxFractionDigits", "children", "className", "wrapperCls", "prefixCls", "messageCls", "footnoteCls", "invalid", "placeholder", "negative", "prefix", "currency", "suffix", "message", "footnote", "onChange", "onBlur", "onFocus"]);
38
39
  var classes = classnames(prefixCls);
39
40
  var inputRef = useRef(null);
40
41
  var fakeEleRef = useRef(null);
@@ -62,9 +63,9 @@ export var InputAmount = function InputAmount(props) {
62
63
  var formattedValue = useMemo(function () {
63
64
  return numericFormatter('' + (_value == null ? '' : _value), {
64
65
  thousandSeparator: true,
65
- allowNegative: true
66
+ allowNegative: negative
66
67
  });
67
- }, [_value]);
68
+ }, [_value, negative]);
68
69
  var scrollToEnd = useCallback(function () {
69
70
  var sticky = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
70
71
  var _a;
@@ -82,9 +83,11 @@ export var InputAmount = function InputAmount(props) {
82
83
  var _a, _b, _c, _d, _e;
83
84
  var val = e.target.value;
84
85
  if (val != null) val = val.split(',').join('');
85
- var hasDecimalPoint = val.lastIndexOf('.') === val.length - 1;
86
+ var hasDecimalPoint = !!val && val.endsWith('.');
86
87
  if (hasDecimalPoint) val = val.slice(0, -1);
87
- if (isNaN(+val)) return;
88
+ if (!negative && (val === null || val === void 0 ? void 0 : val.includes('-'))) return;
89
+ var isStandaloneMinus = negative && val === '-';
90
+ if (!isStandaloneMinus && isNaN(+val)) return;
88
91
  if (val === _value && !hasDecimalPoint) return;
89
92
  if (typeof maxFractionDigits === 'number' || typeof maxFractionDigits === 'bigint') {
90
93
  var _val$split = val.split('.'),
@@ -95,7 +98,7 @@ export var InputAmount = function InputAmount(props) {
95
98
  if (inputRef.current) {
96
99
  var formattedNewVal = numericFormatter(val, {
97
100
  thousandSeparator: true,
98
- allowNegative: true
101
+ allowNegative: negative
99
102
  });
100
103
  var isAdd = val.length > ((_a = _value === null || _value === void 0 ? void 0 : _value.length) !== null && _a !== void 0 ? _a : 0);
101
104
  var position = (_b = inputRef.current.selectionStart) !== null && _b !== void 0 ? _b : 0;
@@ -115,13 +118,20 @@ export var InputAmount = function InputAmount(props) {
115
118
  if (typeof value === 'undefined') {
116
119
  if (val === '') {
117
120
  setValue(null);
121
+ } else if (isStandaloneMinus) {
122
+ setValue('-');
118
123
  } else {
119
124
  var decimals = (_e = (_d = (_c = val.match(/\.(\d+)$/)) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0;
120
- setValue("".concat(BigNumber(val).toFixed(decimals)).concat(hasDecimalPoint ? '.' : '').trim());
125
+ var bn = BigNumber(val);
126
+ var normalized = bn.toFixed(decimals);
127
+ if (negative && val.trim().startsWith('-') && bn.isZero()) {
128
+ normalized = normalized.startsWith('-') ? normalized : "-".concat(normalized);
129
+ }
130
+ setValue("".concat(normalized).concat(hasDecimalPoint ? '.' : '').trim());
121
131
  }
122
132
  }
123
133
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
124
- }, [onChange, _value, value, formattedValue, maxFractionDigits]);
134
+ }, [onChange, _value, value, formattedValue, maxFractionDigits, negative]);
125
135
  useEffect(function () {
126
136
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
127
137
  var containerWidth = (_b = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) !== null && _b !== void 0 ? _b : MIN_INPUT_WIDTH;
@@ -134,8 +144,19 @@ export var InputAmount = function InputAmount(props) {
134
144
  var isMax = fakeWidth >= maxWidth;
135
145
  setWidth(Math.min(maxWidth, Math.max(fakeWidth, MIN_INPUT_WIDTH)));
136
146
  setIsMaxWidth(isMax);
137
- scrollToEnd(true);
138
- }, [_value]);
147
+ if (isFocus) scrollToEnd(true);
148
+ }, [_value, prefix, suffix, currency, isFocus]);
149
+ useEffect(function () {
150
+ // clear negative sign if not allowed
151
+ if (negative) return;
152
+ if (typeof value !== 'undefined') return;
153
+ if (_value == null) return;
154
+ if (_value === '-') {
155
+ setValue(null);
156
+ return;
157
+ }
158
+ if (_value.startsWith('-')) setValue(_value.slice(1));
159
+ }, [negative, value, _value]);
139
160
  useEffect(function () {
140
161
  var _a, _b, _c;
141
162
  var val = value;
@@ -145,11 +166,24 @@ export var InputAmount = function InputAmount(props) {
145
166
  val = null;
146
167
  } else {
147
168
  val = val.split(',').join('');
148
- hasDecimalPoint = val.lastIndexOf('.') === val.length - 1;
169
+ hasDecimalPoint = !!val && val.endsWith('.');
149
170
  if (hasDecimalPoint) val = val.slice(0, -1);
171
+ if (!negative) val = val.replace(/-/g, '');
172
+ if (negative && val === '-') {
173
+ setValue('-');
174
+ return;
175
+ }
150
176
  if (isNaN(+val)) return;
151
177
  }
152
178
  } else if (val !== null && typeof val !== 'number' && typeof val !== 'bigint') return;
179
+ if (!negative) {
180
+ if (typeof val === 'number') {
181
+ val = Math.abs(val);
182
+ } else if (typeof val === 'bigint') {
183
+ var zero = BigInt(0);
184
+ val = val < zero ? -val : val;
185
+ }
186
+ }
153
187
  if ((typeof val === 'string' || typeof val === 'number') && (typeof maxFractionDigits === 'number' || typeof maxFractionDigits === 'bigint')) {
154
188
  var _split = ('' + val).split('.'),
155
189
  _split2 = _slicedToArray(_split, 2),
@@ -162,10 +196,16 @@ export var InputAmount = function InputAmount(props) {
162
196
  if (val === '' || val == null) {
163
197
  setValue(null);
164
198
  } else {
165
- var decimals = (_c = (_b = (_a = ('' + val).match(/\.(\d+)$/)) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
166
- setValue("".concat(BigNumber(val).toFixed(decimals)).concat(hasDecimalPoint ? '.' : '').trim());
199
+ var strVal = '' + val;
200
+ var decimals = (_c = (_b = (_a = strVal.match(/\.(\d+)$/)) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
201
+ var bn = BigNumber(strVal);
202
+ var normalized = bn.toFixed(decimals);
203
+ if (negative && strVal.trim().startsWith('-') && bn.isZero()) {
204
+ normalized = normalized.startsWith('-') ? normalized : "-".concat(normalized);
205
+ }
206
+ setValue("".concat(normalized).concat(hasDecimalPoint ? '.' : '').trim());
167
207
  }
168
- }, [value, maxFractionDigits]);
208
+ }, [value, maxFractionDigits, negative]);
169
209
  return _jsxs("div", {
170
210
  className: classes('wrapper', [wrapperCls, invalid ? classes('invalid') : undefined].join(' ').trim()),
171
211
  children: [_jsxs("div", {
@@ -216,7 +256,7 @@ export var InputAmount = function InputAmount(props) {
216
256
  },
217
257
  children: numericFormatter('' + (_value == null ? '' : _value), {
218
258
  thousandSeparator: true,
219
- allowNegative: true
259
+ allowNegative: negative
220
260
  })
221
261
  })]
222
262
  }), (message || footnote) && _jsxs("div", {
@@ -232,4 +272,4 @@ export var InputAmount = function InputAmount(props) {
232
272
  });
233
273
  };
234
274
  export default /*#__PURE__*/memo(InputAmount);
235
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiY2xhc3NuYW1lcyIsIk1JTl9JTlBVVF9XSURUSCIsIklucHV0QW1vdW50IiwicHJvcHMiLCJ2YWx1ZSIsIm1heEZyYWN0aW9uRGlnaXRzIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJ3cmFwcGVyQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJmb290bm90ZUNscyIsImludmFsaWQiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsInByZWZpeCIsImN1cnJlbmN5Iiwic3VmZml4IiwibWVzc2FnZSIsImZvb3Rub3RlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIl92YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJfd2lkdGgiLCJzZXRXaWR0aCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNNYXhXaWR0aCIsInNldElzTWF4V2lkdGgiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwiZm9ybWF0dGVkVmFsdWUiLCJ0aG91c2FuZFNlcGFyYXRvciIsImFsbG93TmVnYXRpdmUiLCJzY3JvbGxUb0VuZCIsInN0aWNreSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9hIiwiaW5wdXQiLCJjdXJyZW50IiwibGVuIiwicG9zaXRpb24iLCJzY3JvbGxMZWZ0Iiwic2hvdWxkVG9FbmQiLCJzdGFydCIsInNldFNlbGVjdGlvblJhbmdlIiwic2Nyb2xsV2lkdGgiLCJmb2N1cyIsImhhbmRsZUNoYW5nZSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwidmFsIiwidGFyZ2V0Iiwic3BsaXQiLCJqb2luIiwiaGFzRGVjaW1hbFBvaW50IiwibGFzdEluZGV4T2YiLCJzbGljZSIsImlzTmFOIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiZGVjaW1hbCIsIk51bWJlciIsImZvcm1hdHRlZE5ld1ZhbCIsImlzQWRkIiwic2VsZWN0aW9uU3RhcnQiLCJvbGRQb3NWYWwiLCJwb3NWYWwiLCJyZWR1Y2UiLCJhY2MiLCJjaGFyIiwiaW5kIiwicHVzaCIsImRlY2ltYWxzIiwibWF0Y2giLCJjb25jYXQiLCJ0b0ZpeGVkIiwidHJpbSIsIl9mIiwiX2ciLCJfaCIsIl9qIiwiX2siLCJjb250YWluZXJXaWR0aCIsIm9mZnNldFdpZHRoIiwicHJlZml4V2lkdGgiLCJzdWZmaXhXaWR0aCIsImN1cnJlbmN5V2lkdGgiLCJmYWtlV2lkdGgiLCJnYXBXaWR0aCIsIm1heFdpZHRoIiwiaXNNYXgiLCJNYXRoIiwibWluIiwibWF4IiwiX3NwbGl0IiwiX3NwbGl0MiIsImludCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJzdG9wUHJvcGFnYXRpb24iXSwi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M0U7RUFBQSxDQUFBLENBRUo7QUFDUixDQUFDO0FBRUQsNEJBQWU1QixJQUFJLENBQUNVLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuZXhwb3J0IGNvbnN0IElucHV0QW1vdW50ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBjaGlsZHJlbiwgY2xhc3NOYW1lLCB3cmFwcGVyQ2xzLCBwcmVmaXhDbHMgPSAnaW5wdXQtYW1vdW50JywgbWVzc2FnZUNscywgZm9vdG5vdGVDbHMsIGludmFsaWQsIHBsYWNlaG9sZGVyID0gJzAnLCBwcmVmaXgsIGN1cnJlbmN5LCBzdWZmaXgsIG1lc3NhZ2UsIGZvb3Rub3RlLCBvbkNoYW5nZSwgb25CbHVyLCBvbkZvY3VzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1widmFsdWVcIiwgXCJtYXhGcmFjdGlvbkRpZ2l0c1wiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcInByZWZpeENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJmb290bm90ZUNsc1wiLCBcImludmFsaWRcIiwgXCJwbGFjZWhvbGRlclwiLCBcInByZWZpeFwiLCBcImN1cnJlbmN5XCIsIFwic3VmZml4XCIsIFwibWVzc2FnZVwiLCBcImZvb3Rub3RlXCIsIFwib25DaGFuZ2VcIiwgXCJvbkJsdXJcIiwgXCJvbkZvY3VzXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZha2VFbGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJlZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjdXJyZW5jeVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaW5wdXRDYXJldFBvc2l0aW9uUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IFtfdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtfd2lkdGgsIHNldFdpZHRoXSA9IHVzZVN0YXRlKE1JTl9JTlBVVF9XSURUSCk7XG4gICAgY29uc3QgW2lzTWF4V2lkdGgsIHNldElzTWF4V2lkdGhdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LCBbX3ZhbHVlXSk7XG4gICAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VDYWxsYmFjaygoc3RpY2t5ID0gZmFsc2UpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghaW5wdXQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxlbiA9IChfYSA9IGlucHV0LnZhbHVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGlucHV0LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZFRvRW5kID0gIXN0aWNreTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzaG91bGRUb0VuZCA/IGxlbiA6IGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50O1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgc3RhcnQpO1xuICAgICAgICBpbnB1dC5zY3JvbGxMZWZ0ID0gc2hvdWxkVG9FbmQgPyBpbnB1dC5zY3JvbGxXaWR0aCA6IHBvc2l0aW9uO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICBsZXQgdmFsID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgIGlmICh2YWwgIT0gbnVsbClcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICBjb25zdCBoYXNEZWNpbWFsUG9pbnQgPSB2YWwubGFzdEluZGV4T2YoJy4nKSA9PT0gdmFsLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICBpZiAoaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWwgPT09IF92YWx1ZSAmJiAhaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBbLCBkZWNpbWFsXSA9IHZhbC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQWRkID0gdmFsLmxlbmd0aCA+ICgoX2EgPSBfdmFsdWUgPT09IG51bGwgfHwgX3ZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdmFsdWUubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKTtcbiAgICAgICAgICAgIGxldCBwb3NpdGlvbiA9IChfYiA9IGlucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDA7XG4gICAgICAgICAgICBjb25zdCBvbGRQb3NWYWwgPSBmb3JtYXR0ZWRWYWx1ZS5zbGljZSgwLCAocG9zaXRpb24gLSAoaXNBZGQgPyAxIDogLTEpKSk7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IG9sZFBvc1ZhbC5zcGxpdCgnLCcpLmpvaW4oJycpLmxlbmd0aCArIChpc0FkZCA/IDEgOiAtMSk7XG4gICAgICAgICAgICBjb25zdCBwb3NWYWwgPSB2YWwuc2xpY2UoMCwgcG9zaXRpb24pO1xuICAgICAgICAgICAgZm9ybWF0dGVkTmV3VmFsLnNwbGl0KCcnKS5yZWR1Y2UoKGFjYywgY2hhciwgaW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09ICcsJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGNoYXIpO1xuICAgICAgICAgICAgICAgIGlmIChhY2Muam9pbignJykgPT09IHBvc1ZhbCkge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGluZCArIDE7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICBpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCA9IHBvc2l0aW9uICsgKGhhc0RlY2ltYWxQb2ludCA/IDIgOiAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKHZhbCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gKF9lID0gKF9kID0gKF9jID0gdmFsLm1hdGNoKC9cXC4oXFxkKykkLykpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY1sxXSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmxlbmd0aCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogMDtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShgJHtCaWdOdW1iZXIodmFsKS50b0ZpeGVkKGRlY2ltYWxzKX0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlLCBfdmFsdWUsIHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2s7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKF9iID0gKF9hID0gY29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogTUlOX0lOUFVUX1dJRFRIO1xuICAgICAgICBjb25zdCBwcmVmaXhXaWR0aCA9IChfZCA9IChfYyA9IHByZWZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Mub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgIGNvbnN0IHN1ZmZpeFdpZHRoID0gKF9mID0gKF9lID0gc3VmZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMDtcbiAgICAgICAgY29uc3QgY3VycmVuY3lXaWR0aCA9IChfaCA9IChfZyA9IGN1cnJlbmN5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2ggIT09IHZvaWQgMCA/IF9oIDogMDtcbiAgICAgICAgY29uc3QgZmFrZVdpZHRoID0gKF9rID0gKF9qID0gZmFrZUVsZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2oub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6IDA7XG4gICAgICAgIGNvbnN0IGdhcFdpZHRoID0gcHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgPyAyNFxuICAgICAgICAgICAgOiAocHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGgpIHx8IChwcmVmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKSB8fCAoc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aClcbiAgICAgICAgICAgICAgICA/IDE2XG4gICAgICAgICAgICAgICAgOiBwcmVmaXhXaWR0aCB8fCBzdWZmaXhXaWR0aCB8fCBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICAgICAgICA6IDA7XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gY29udGFpbmVyV2lkdGggLSBwcmVmaXhXaWR0aCAtIHN1ZmZpeFdpZHRoIC0gY3VycmVuY3lXaWR0aCAtIGdhcFdpZHRoO1xuICAgICAgICBjb25zdCBpc01heCA9IGZha2VXaWR0aCA+PSBtYXhXaWR0aDtcbiAgICAgICAgc2V0V2lkdGgoTWF0aC5taW4obWF4V2lkdGgsIE1hdGgubWF4KGZha2VXaWR0aCwgTUlOX0lOUFVUX1dJRFRIKSkpO1xuICAgICAgICBzZXRJc01heFdpZHRoKGlzTWF4KTtcbiAgICAgICAgc2Nyb2xsVG9FbmQodHJ1ZSk7XG4gICAgfSwgW192YWx1ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBoYXNEZWNpbWFsUG9pbnQgPSB2YWwubGFzdEluZGV4T2YoJy4nKSA9PT0gdmFsLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbCAhPT0gJ2JpZ2ludCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICgodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpICYmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9ICgnJyArIHZhbCkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gaW50ICsgJy4nICsgZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfYyA9IChfYiA9IChfYSA9ICgnJyArIHZhbCkubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgc2V0VmFsdWUoYCR7QmlnTnVtYmVyKHZhbCkudG9GaXhlZChkZWNpbWFscyl9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzXSk7XG4gICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3cmFwcGVyJywgW3dyYXBwZXJDbHMsIGludmFsaWQgPyBjbGFzc2VzKCdpbnZhbGlkJykgOiB1bmRlZmluZWRdLmpvaW4oJyAnKS50cmltKCkpLCBjaGlsZHJlbjogW19qc3hzKFwiZGl2XCIsIHsgcmVmOiBjb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIFtjbGFzc05hbWUsIGlzRm9jdXMgPyBjbGFzc2VzKCdmb2N1cycpIDogJyddLmpvaW4oJyAnKS50cmltKCkpLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXhXaWR0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IHByZWZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZWxlbWVudCcsICghaXNGb2N1cyAmJiBpc01heFdpZHRoKSA/IGNsYXNzZXMoJ2VsZW1lbnQtbWF4JykgOiAnJyksIGNoaWxkcmVuOiBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgc3R5bGU6IHsgJy0taW5wdXQtd2lkdGgnOiBgJHtfd2lkdGh9cHhgIH0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uRm9jdXM6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzID09PSBudWxsIHx8IG9uRm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRm9jdXMoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgb25CbHVyOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pKSB9KSwgY3VycmVuY3kgJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IGN1cnJlbmN5UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1cnJlbmN5JyksIGNoaWxkcmVuOiBjdXJyZW5jeSB9KSwgc3VmZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBzdWZmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBmYWtlRWxlUmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zha2UnKSwgb25DbGljazogZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpLCBjaGlsZHJlbjogbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
275
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiY2xhc3NuYW1lcyIsIk1JTl9JTlBVVF9XSURUSCIsIklucHV0QW1vdW50IiwicHJvcHMiLCJ2YWx1ZSIsIm1heEZyYWN0aW9uRGlnaXRzIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJ3cmFwcGVyQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJmb290bm90ZUNscyIsImludmFsaWQiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIm5lZ2F0aXZlIiwicHJlZml4IiwiY3VycmVuY3kiLCJzdWZmaXgiLCJtZXNzYWdlIiwiZm9vdG5vdGUiLCJvbkNoYW5nZSIsIm9uQmx1ciIsIm9uRm9jdXMiLCJyZXN0IiwiY2xhc3NlcyIsImlucHV0UmVmIiwiZmFrZUVsZVJlZiIsInByZWZpeFJlZiIsInN1ZmZpeFJlZiIsImN1cnJlbmN5UmVmIiwiY29udGFpbmVyUmVmIiwiaW5wdXRDYXJldFBvc2l0aW9uUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc01heFdpZHRoIiwic2V0SXNNYXhXaWR0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNGb2N1cyIsInNldElzRm9jdXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInRob3VzYW5kU2VwYXJhdG9yIiwiYWxsb3dOZWdhdGl2ZSIsInNjcm9sbFRvRW5kIiwic3RpY2t5IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX2EiLCJpbnB1dCIsImN1cnJlbnQiLCJsZW4iLCJwb3NpdGlvbiIsInNjcm9sbExlZnQiLCJzaG91bGRUb0VuZCIsInN0YXJ0Iiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJzY3JvbGxXaWR0aCIsImZvY3VzIiwiaGFuZGxlQ2hhbmdlIiwiX2IiLCJfYyIsIl9kIiwiX2UiLCJ2YWwiLCJ0YXJnZXQiLCJzcGxpdCIsImpvaW4iLCJoYXNEZWNpbWFsUG9pbnQiLCJlbmRzV2l0aCIsInNsaWNlIiwiaW5jbHVkZXMiLCJpc1N0YW5kYWxvbmVNaW51cyIsImlzTmFOIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiZGVjaW1hbCIsIk51bWJlciIsImZvcm1hdHRlZE5ld1ZhbCIsImlzQWRkIiwic2VsZWN0aW9uU3RhcnQiLCJvbGRQb3NWYWwiLCJwb3NWYWwiLCJyZWR1Y2UiLCJhY2MiLCJjaGFyIiwiaW5kIiwicHVzaCIsImRlY2ltYWxzIiwibWF0Y2giLCJibiIsIm5vcm1hbGl6ZWQiLCJ0b0ZpeGVkIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJpc1plcm8iLCJjb25jYXQiLCJfZiIsIl9nIiwiX2giLCJfaiIsIl9rIiwiY29udGFpbmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsInByZWZpeFdpZHRoIiwic3VmZml4V2lkdGgiLCJjdXJyZW5jeVdpZHRoIiwiZmFrZVdpZHRoIiwiZ2FwV2lkdGgiLCJtYXhXaWR0aCIsImlzTWF4IiwiTWF0aCIsIm1pbiIsIm1heCIsInJlcGxhY2UiLCJhYnMiLCJ6ZXJvIiwiQmlnSW50IiwiX3NwbGl0IiwiX3NwbGl0MiIsImludCIsInN0clZhbCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJzdG9wUHJvcGFnYXRpb24iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FB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QUFVLEVBQUVkLFdBQVcsQ0FBQztRQUFBTixRQUFBLEVBQUdlO01BQVEsQ0FBQSxDQUFPO0lBQUEsQ0FBQSxDQUMzRTtFQUFBLENBQUEsQ0FFSjtBQUNSLENBQUM7QUFFRCw0QkFBZTdCLElBQUksQ0FBQ1UsV0FBVyxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IG51bWVyaWNGb3JtYXR0ZXIgfSBmcm9tICdyZWFjdC1udW1iZXItZm9ybWF0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuY29uc3QgTUlOX0lOUFVUX1dJRFRIID0gMzM7XG5leHBvcnQgY29uc3QgSW5wdXRBbW91bnQgPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIGNoaWxkcmVuLCBjbGFzc05hbWUsIHdyYXBwZXJDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBmb290bm90ZUNscywgaW52YWxpZCwgcGxhY2Vob2xkZXIgPSAnMCcsIG5lZ2F0aXZlLCBwcmVmaXgsIGN1cnJlbmN5LCBzdWZmaXgsIG1lc3NhZ2UsIGZvb3Rub3RlLCBvbkNoYW5nZSwgb25CbHVyLCBvbkZvY3VzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1widmFsdWVcIiwgXCJtYXhGcmFjdGlvbkRpZ2l0c1wiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcInByZWZpeENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJmb290bm90ZUNsc1wiLCBcImludmFsaWRcIiwgXCJwbGFjZWhvbGRlclwiLCBcIm5lZ2F0aXZlXCIsIFwicHJlZml4XCIsIFwiY3VycmVuY3lcIiwgXCJzdWZmaXhcIiwgXCJtZXNzYWdlXCIsIFwiZm9vdG5vdGVcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQmx1clwiLCBcIm9uRm9jdXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZmFrZUVsZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmVmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc3VmZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGN1cnJlbmN5UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBpbnB1dENhcmV0UG9zaXRpb25SZWYgPSB1c2VSZWYoMCk7XG4gICAgY29uc3QgW192YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW193aWR0aCwgc2V0V2lkdGhdID0gdXNlU3RhdGUoTUlOX0lOUFVUX1dJRFRIKTtcbiAgICBjb25zdCBbaXNNYXhXaWR0aCwgc2V0SXNNYXhXaWR0aF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2lzRm9jdXMsIHNldElzRm9jdXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBudW1lcmljRm9ybWF0dGVyKCcnICsgKF92YWx1ZSA9PSBudWxsID8gJycgOiBfdmFsdWUpLCB7XG4gICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICB9KTtcbiAgICB9LCBbX3ZhbHVlLCBuZWdhdGl2ZV0pO1xuICAgIGNvbnN0IHNjcm9sbFRvRW5kID0gdXNlQ2FsbGJhY2soKHN0aWNreSA9IGZhbHNlKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWlucHV0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBsZW4gPSAoX2EgPSBpbnB1dC52YWx1ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSBpbnB1dC5zY3JvbGxMZWZ0O1xuICAgICAgICBjb25zdCBzaG91bGRUb0VuZCA9ICFzdGlja3k7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc2hvdWxkVG9FbmQgPyBsZW4gOiBpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudDtcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0YXJ0KTtcbiAgICAgICAgaW5wdXQuc2Nyb2xsTGVmdCA9IHNob3VsZFRvRW5kID8gaW5wdXQuc2Nyb2xsV2lkdGggOiBwb3NpdGlvbjtcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgbGV0IHZhbCA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICBpZiAodmFsICE9IG51bGwpXG4gICAgICAgICAgICB2YWwgPSB2YWwuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgY29uc3QgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlICYmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWwuaW5jbHVkZXMoJy0nKSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlzU3RhbmRhbG9uZU1pbnVzID0gbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgIGlmICghaXNTdGFuZGFsb25lTWludXMgJiYgaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWwgPT09IF92YWx1ZSAmJiAhaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBbLCBkZWNpbWFsXSA9IHZhbC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0FkZCA9IHZhbC5sZW5ndGggPiAoKF9hID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCk7XG4gICAgICAgICAgICBsZXQgcG9zaXRpb24gPSAoX2IgPSBpbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwO1xuICAgICAgICAgICAgY29uc3Qgb2xkUG9zVmFsID0gZm9ybWF0dGVkVmFsdWUuc2xpY2UoMCwgKHBvc2l0aW9uIC0gKGlzQWRkID8gMSA6IC0xKSkpO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBvbGRQb3NWYWwuc3BsaXQoJywnKS5qb2luKCcnKS5sZW5ndGggKyAoaXNBZGQgPyAxIDogLTEpO1xuICAgICAgICAgICAgY29uc3QgcG9zVmFsID0gdmFsLnNsaWNlKDAsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgIGZvcm1hdHRlZE5ld1ZhbC5zcGxpdCgnJykucmVkdWNlKChhY2MsIGNoYXIsIGluZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjaGFyID09PSAnLCcpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChjaGFyKTtcbiAgICAgICAgICAgICAgICBpZiAoYWNjLmpvaW4oJycpID09PSBwb3NWYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBpbmQgKyAxO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW10pO1xuICAgICAgICAgICAgaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQgPSBwb3NpdGlvbiArIChoYXNEZWNpbWFsUG9pbnQgPyAyIDogMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfZSA9IChfZCA9IChfYyA9IHZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NbMV0pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5sZW5ndGgpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIodmFsKTtcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplZCA9IGJuLnRvRml4ZWQoZGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiB2YWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlLCBfdmFsdWUsIHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG5lZ2F0aXZlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2osIF9rO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IChfYiA9IChfYSA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1JTl9JTlBVVF9XSURUSDtcbiAgICAgICAgY29uc3QgcHJlZml4V2lkdGggPSAoX2QgPSAoX2MgPSBwcmVmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICBjb25zdCBzdWZmaXhXaWR0aCA9IChfZiA9IChfZSA9IHN1ZmZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5V2lkdGggPSAoX2ggPSAoX2cgPSBjdXJyZW5jeVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDA7XG4gICAgICAgIGNvbnN0IGZha2VXaWR0aCA9IChfayA9IChfaiA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfayAhPT0gdm9pZCAwID8gX2sgOiAwO1xuICAgICAgICBjb25zdCBnYXBXaWR0aCA9IHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgID8gMjRcbiAgICAgICAgICAgIDogKHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoKSB8fCAocHJlZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aCkgfHwgKHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpXG4gICAgICAgICAgICAgICAgPyAxNlxuICAgICAgICAgICAgICAgIDogcHJlZml4V2lkdGggfHwgc3VmZml4V2lkdGggfHwgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gcHJlZml4V2lkdGggLSBzdWZmaXhXaWR0aCAtIGN1cnJlbmN5V2lkdGggLSBnYXBXaWR0aDtcbiAgICAgICAgY29uc3QgaXNNYXggPSBmYWtlV2lkdGggPj0gbWF4V2lkdGg7XG4gICAgICAgIHNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBNYXRoLm1heChmYWtlV2lkdGgsIE1JTl9JTlBVVF9XSURUSCkpKTtcbiAgICAgICAgc2V0SXNNYXhXaWR0aChpc01heCk7XG4gICAgICAgIGlmIChpc0ZvY3VzKVxuICAgICAgICAgICAgc2Nyb2xsVG9FbmQodHJ1ZSk7XG4gICAgfSwgW192YWx1ZSwgcHJlZml4LCBzdWZmaXgsIGN1cnJlbmN5LCBpc0ZvY3VzXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gY2xlYXIgbmVnYXRpdmUgc2lnbiBpZiBub3QgYWxsb3dlZFxuICAgICAgICBpZiAobmVnYXRpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoX3ZhbHVlID09IG51bGwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChfdmFsdWUgPT09ICctJykge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF92YWx1ZS5zdGFydHNXaXRoKCctJykpXG4gICAgICAgICAgICBzZXRWYWx1ZShfdmFsdWUuc2xpY2UoMSkpO1xuICAgIH0sIFtuZWdhdGl2ZSwgdmFsdWUsIF92YWx1ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKC8tL2csICcnKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgdmFsID09PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoJy0nKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbCAhPT0gJ2JpZ2ludCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghbmVnYXRpdmUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IE1hdGguYWJzKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnYmlnaW50Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHplcm8gPSBCaWdJbnQoMCk7XG4gICAgICAgICAgICAgICAgdmFsID0gdmFsIDwgemVybyA/IC12YWwgOiB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykgJiYgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gKCcnICsgdmFsKS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBpbnQgKyAnLicgKyBkZWNpbWFsLnNsaWNlKDAsIE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0clZhbCA9ICcnICsgdmFsO1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIoc3RyVmFsKTtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBuZWdhdGl2ZV0pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIFt3cmFwcGVyQ2xzLCBpbnZhbGlkID8gY2xhc3NlcygnaW52YWxpZCcpIDogdW5kZWZpbmVkXS5qb2luKCcgJykudHJpbSgpKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IHJlZjogY29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsYXNzZXModm9pZCAwLCBbY2xhc3NOYW1lLCBpc0ZvY3VzID8gY2xhc3NlcygnZm9jdXMnKSA6ICcnXS5qb2luKCcgJykudHJpbSgpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF4V2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBwcmVmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VsZW1lbnQnLCAoIWlzRm9jdXMgJiYgaXNNYXhXaWR0aCkgPyBjbGFzc2VzKCdlbGVtZW50LW1heCcpIDogJycpLCBjaGlsZHJlbjogX2pzeChcImlucHV0XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBpbnB1dFJlZiwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHN0eWxlOiB7ICctLWlucHV0LXdpZHRoJzogYCR7X3dpZHRofXB4YCB9LCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvbkZvY3VzOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQmx1cjogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB9KSkgfSksIGN1cnJlbmN5ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBjdXJyZW5jeVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXJyZW5jeScpLCBjaGlsZHJlbjogY3VycmVuY3kgfSksIHN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogc3VmZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pLCBfanN4KFwic3BhblwiLCB7IHJlZjogZmFrZUVsZVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmYWtlJyksIG9uQ2xpY2s6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSwgY2hpbGRyZW46IG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0pXSB9KSwgKG1lc3NhZ2UgfHwgZm9vdG5vdGUpICYmIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdleHRyYScpLCBjaGlsZHJlbjogW21lc3NhZ2UgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIG1lc3NhZ2VDbHMpLCBjaGlsZHJlbjogbWVzc2FnZSB9KSwgZm9vdG5vdGUgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZm9vdG5vdGUnLCBmb290bm90ZUNscyksIGNoaWxkcmVuOiBmb290bm90ZSB9KV0gfSldIH0pO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oSW5wdXRBbW91bnQpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -10,6 +10,7 @@ export interface InputAmountProps {
10
10
  messageCls?: string;
11
11
  footnoteCls?: string;
12
12
  invalid?: boolean;
13
+ negative?: boolean;
13
14
  prefix?: ReactNode;
14
15
  currency?: ReactNode;
15
16
  suffix?: ReactNode;
@@ -0,0 +1,8 @@
1
+ import type { SidebarProps } from './interface';
2
+ export declare const SimplySidebar: import("react").ForwardRefExoticComponent<SidebarProps & {
3
+ children?: import("react").ReactNode | undefined;
4
+ } & import("react").RefAttributes<HTMLDivElement>>;
5
+ declare const _default: import("react").NamedExoticComponent<SidebarProps & {
6
+ children?: import("react").ReactNode | undefined;
7
+ } & import("react").RefAttributes<HTMLDivElement>>;
8
+ export default _default;
@@ -0,0 +1,129 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { memo, forwardRef } from 'react';
5
+ import { Sidebar as ProSidebar, Menu as ProMenu, MenuItem as ProMenuItem, SubMenu as ProSubMenu } from 'react-pro-sidebar';
6
+ import classnames from '../../utils/classnames';
7
+ import Icons from '../Icons';
8
+ export var SimplySidebar = /*#__PURE__*/forwardRef(function (props, ref) {
9
+ var id = props.id,
10
+ children = props.children,
11
+ menus = props.menus,
12
+ className = props.className,
13
+ _props$prefixCls = props.prefixCls,
14
+ prefixCls = _props$prefixCls === void 0 ? 'simply-sidebar' : _props$prefixCls,
15
+ headerCls = props.headerCls,
16
+ bodyCls = props.bodyCls,
17
+ betaLogo = props.betaLogo,
18
+ onLogoClick = props.onLogoClick;
19
+ var classes = classnames(prefixCls);
20
+ // Type guard to check if menu item is SimpleMenuItem
21
+ var isSimpleMenuItem = function isSimpleMenuItem(menu) {
22
+ return 'children' in menu && Array.isArray(menu.children);
23
+ };
24
+ // Render child items (non-top-level)
25
+ var _renderChildMenuItem = function renderChildMenuItem(menu, index) {
26
+ var key = menu.key,
27
+ label = menu.label,
28
+ icon = menu.icon,
29
+ suffix = menu.suffix,
30
+ link = menu.link,
31
+ active = menu.active,
32
+ disabled = menu.disabled,
33
+ onClick = menu.onClick;
34
+ if (isSimpleMenuItem(menu)) {
35
+ var defaultOpen = menu.defaultOpen,
36
+ onOpenChange = menu.onOpenChange,
37
+ _children = menu.children;
38
+ return _jsx(ProSubMenu, {
39
+ label: label,
40
+ icon: icon,
41
+ suffix: suffix,
42
+ component: link,
43
+ defaultOpen: defaultOpen,
44
+ onOpenChange: onOpenChange,
45
+ onClick: onClick,
46
+ active: active,
47
+ disabled: disabled,
48
+ children: _children === null || _children === void 0 ? void 0 : _children.map(function (child, childIndex) {
49
+ return _renderChildMenuItem(child, childIndex);
50
+ })
51
+ }, key !== null && key !== void 0 ? key : index);
52
+ }
53
+ return _jsx(ProMenuItem, {
54
+ icon: icon,
55
+ suffix: suffix,
56
+ component: link,
57
+ active: active,
58
+ disabled: disabled,
59
+ onClick: onClick,
60
+ children: label
61
+ }, key !== null && key !== void 0 ? key : index);
62
+ };
63
+ // Render top-level menu items
64
+ var renderTopLevelMenu = function renderTopLevelMenu(menu, index) {
65
+ if (!isSimpleMenuItem(menu)) {
66
+ return _renderChildMenuItem(menu, index);
67
+ }
68
+ var key = menu.key,
69
+ label = menu.label,
70
+ icon = menu.icon,
71
+ children = menu.children;
72
+ return _jsxs("div", {
73
+ children: [index > 0 && _jsx("div", {
74
+ className: classes('hr-line')
75
+ }), _jsxs("div", {
76
+ className: classes('group-label'),
77
+ children: [icon && _jsx("span", {
78
+ className: classes('group-icon'),
79
+ children: icon
80
+ }), _jsx("span", {
81
+ className: classes('group-label-text'),
82
+ children: label
83
+ })]
84
+ }), children === null || children === void 0 ? void 0 : children.map(function (child, childIndex) {
85
+ return _renderChildMenuItem(child, childIndex);
86
+ })]
87
+ }, key !== null && key !== void 0 ? key : index);
88
+ };
89
+ return _jsxs(ProSidebar, {
90
+ id: id,
91
+ className: classes(void 0, className),
92
+ width: '280px',
93
+ children: [_jsx("div", {
94
+ className: classes('header', headerCls),
95
+ children: _jsx("span", {
96
+ className: classes('logo'),
97
+ onClick: onLogoClick,
98
+ children: _jsx(Icons, {
99
+ name: betaLogo ? 'logoWithBeta' : 'logoWithWords',
100
+ // @ts-ignore
101
+ logoColor: '#073387',
102
+ // @ts-ignore
103
+ wordColor: '#131313',
104
+ // @ts-ignore
105
+ betaColor: '#073387',
106
+ color: '#073387',
107
+ width: betaLogo ? 152 : 131,
108
+ height: betaLogo ? 22 : 24
109
+ })
110
+ })
111
+ }), _jsx(ProMenu, {
112
+ className: classes('menu', bodyCls),
113
+ renderExpandIcon: function renderExpandIcon(_ref) {
114
+ var open = _ref.open;
115
+ return _jsx(Icons, {
116
+ name: 'chevronDown',
117
+ size: 16,
118
+ color: '#646465',
119
+ wrapperCls: [classes('expand-icon'), open ? classes('expand-icon-open') : ''].join(' ')
120
+ });
121
+ },
122
+ children: menus.map(function (menu, index) {
123
+ return renderTopLevelMenu(menu, index);
124
+ })
125
+ }), children]
126
+ });
127
+ });
128
+ export default /*#__PURE__*/memo(SimplySidebar);
129
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2lkZWJhci9TaW1wbHlTaWRlYmFyLnRzeCIsImNvbXBvbmVudHMvU2lkZWJhci9TaW1wbHlTaWRlYmFyLmpzIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwiZm9yd2FyZFJlZiIsIlNpZGViYXIiLCJQcm9TaWRlYmFyIiwiTWVudSIsIlByb01lbnUiLCJNZW51SXRlbSIsIlByb01lbnVJdGVtIiwiU3ViTWVudSIsIlByb1N1Yk1lbnUiLCJjbGFzc25hbWVzIiwiSWNvbnMiLCJTaW1wbHlTaWRlYmFyIiwicHJvcHMiLCJyZWYiLCJpZCIsImNoaWxkcmVuIiwibWVudXMiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiaGVhZGVyQ2xzIiwiYm9keUNscyIsImJldGFMb2dvIiwib25Mb2dvQ2xpY2siLCJjbGFzc2VzIiwiaXNTaW1wbGVNZW51SXRlbSIsIm1lbnUiLCJBcnJheSIsImlzQXJyYXkiLCJyZW5kZXJDaGlsZE1lbnVJdGVtIiwiaW5kZXgiLCJrZXkiLCJsYWJlbCIsImljb24iLCJzdWZmaXgiLCJsaW5rIiwiYWN0aXZlIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwiZGVmYXVsdE9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJjb21wb25lbnQiLCJtYXAiLCJjaGlsZCIsImNoaWxkSW5kZXgiLCJyZW5kZXJUb3BMZXZlbE1lbnUiLCJ3aWR0aCIsIm5hbWUiLCJsb2dvQ29sb3IiLCJ3b3JkQ29sb3IiLCJiZXRhQ29sb3IiLCJjb2xvciIsImhlaWdodCIsInJlbmRlckV4cGFuZEljb24iLCJfcmVmIiwib3BlbiIsInNpemUiLCJ3cmFwcGVyQ2xzIiwiam9pbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUNDWixTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FEQTlELFNBQVNDLElBQUksRUFBRUMsVUFBVSxRQUFRLE9BQU87QUFDeEMsU0FDRUMsT0FBTyxJQUFJQyxVQUFVLEVBQ3JCQyxJQUFJLElBQUlDLE9BQU8sRUFDZkMsUUFBUSxJQUFJQyxXQUFXLEVBQ3ZCQyxPQUFPLElBQUlDLFVBQVUsUUFDaEIsbUJBQW1CO0FBQzFCLE9BQU9DLFVBQVUsTUFBTSx3QkFBd0I7QUFDL0MsT0FBT0MsS0FBSyxNQUFNLFVBQVU7QUFLNUIsT0FBTyxJQUFNQyxhQUFhLGdCQUFHWCxVQUFVLENBQWtELFVBQUNZLEtBQUssRUFBRUMsR0FBRyxFQUFJO0VBQ3RHLElBQVFDLEVBQUUsR0FBMEdGLEtBQUssQ0FBakhFLEVBQUU7SUFBRUMsUUFBUSxHQUFnR0gsS0FBSyxDQUE3R0csUUFBUTtJQUFFQyxLQUFLLEdBQXlGSixLQUFLLENBQW5HSSxLQUFLO0lBQUVDLFNBQVMsR0FBOEVMLEtBQUssQ0FBNUZLLFNBQVM7SUFBQUMsZ0JBQUEsR0FBOEVOLEtBQUssQ0FBakZPLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLGdCQUFnQixHQUFBQSxnQkFBQTtJQUFFRSxTQUFTLEdBQXFDUixLQUFLLENBQW5EUSxTQUFTO0lBQUVDLE9BQU8sR0FBNEJULEtBQUssQ0FBeENTLE9BQU87SUFBRUMsUUFBUSxHQUFrQlYsS0FBSyxDQUEvQlUsUUFBUTtJQUFFQyxXQUFXLEdBQUtYLEtBQUssQ0FBckJXLFdBQVc7RUFDL0csSUFBTUMsT0FBTyxHQUFHZixVQUFVLENBQUNVLFNBQVMsQ0FBQztFQUVyQztFQUNBLElBQU1NLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLElBQStCLEVBQTRCO0lBQ25GLE9BQU8sVUFBVSxJQUFJQSxJQUFJLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUNYLFFBQVEsQ0FBQztFQUMzRCxDQUFDO0VBRUQ7RUFDQSxJQUFNYyxvQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJSCxJQUErQixFQUFFSSxLQUFhLEVBQWtCO0lBQzNGLElBQVFDLEdBQUcsR0FBMkRMLElBQUksQ0FBbEVLLEdBQUc7TUFBRUMsS0FBSyxHQUFvRE4sSUFBSSxDQUE3RE0sS0FBSztNQUFFQyxJQUFJLEdBQThDUCxJQUFJLENBQXRETyxJQUFJO01BQUVDLE1BQU0sR0FBc0NSLElBQUksQ0FBaERRLE1BQU07TUFBRUMsSUFBSSxHQUFnQ1QsSUFBSSxDQUF4Q1MsSUFBSTtNQUFFQyxNQUFNLEdBQXdCVixJQUFJLENBQWxDVSxNQUFNO01BQUVDLFFBQVEsR0FBY1gsSUFBSSxDQUExQlcsUUFBUTtNQUFFQyxPQUFPLEdBQUtaLElBQUksQ0FBaEJZLE9BQU87SUFFakUsSUFBSWIsZ0JBQWdCLENBQUNDLElBQUksQ0FBQyxFQUFFO01BQzFCLElBQVFhLFdBQVcsR0FBNkJiLElBQUksQ0FBNUNhLFdBQVc7UUFBRUMsWUFBWSxHQUFlZCxJQUFJLENBQS9CYyxZQUFZO1FBQUV6QixTQUFRLEdBQUtXLElBQUksQ0FBakJYLFFBQVE7TUFDM0MsT0FDRW5CLElBQUEsQ0FBQ1ksVUFBVSxFQUFBO1FBRVR3QixLQUFLLEVBQUVBLEtBQUs7UUFDWkMsSUFBSSxFQUFFQSxJQUFJO1FBQ1ZDLE1BQU0sRUFBRUEsTUFBTTtRQUNkTyxTQUFTLEVBQUVOLElBQUk7UUFDZkksV0FBVyxFQUFFQSxXQUFXO1FBQ3hCQyxZQUFZLEVBQUVBLFlBQVk7UUFDMUJGLE9BQU8sRUFBRUEsT0FBTztRQUNoQkYsTUFBTSxFQUFFQSxNQUFNO1FBQ2RDLFFBQVEsRUFBRUEsUUFBUTtRQUFBdEIsUUFBQSxFQUVqQkEsU0FBUSxLQUFBLElBQUEsSUFBUkEsU0FBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxTQUFRLENBQUUyQixHQUFHLENBQUMsVUFBQ0MsS0FBSyxFQUFFQyxVQUFVO1VBQUEsT0FBS2Ysb0JBQW1CLENBQUNjLEtBQUssRUFBRUMsVUFBVSxDQUFDO1FBQUE7TUFBQyxDQUFBLEVBWHhFYixHQUFHLEtBQUEsSUFBQSxJQUFIQSxHQUFHLEtBQUEsS0FBQSxDQUFBLEdBQUhBLEdBQUcsR0FBSUQsS0FBSyxDQVlOO0lBRWpCO0lBRUEsT0FDRWxDLElBQUEsQ0FBQ1UsV0FBVyxFQUFBO01BRVYyQixJQUFJLEVBQUVBLElBQUk7TUFDVkMsTUFBTSxFQUFFQSxNQUFNO01BQ2RPLFNBQVMsRUFBRU4sSUFBSTtNQUNmQyxNQUFNLEVBQUVBLE1BQU07TUFDZEMsUUFBUSxFQUFFQSxRQUFRO01BQ2xCQyxPQUFPLEVBQUVBLE9BQU87TUFBQXZCLFFBQUEsRUFFZmlCO0lBQUssQ0FBQSxFQVJERCxHQUFHLEtBQUEsSUFBQSxJQUFIQSxHQUFHLEtBQUEsS0FBQSxDQUFBLEdBQUhBLEdBQUcsR0FBSUQsS0FBSyxDQVNMO0VBRWxCLENBQUM7RUFFRDtFQUNBLElBQU1lLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUluQixJQUErQixFQUFFSSxLQUFhLEVBQUk7SUFDNUUsSUFBSSxDQUFDTCxnQkFBZ0IsQ0FBQ0MsSUFBSSxDQUFDLEVBQUU7TUFDM0IsT0FBT0csb0JBQW1CLENBQUNILElBQUksRUFBRUksS0FBSyxDQUFDO0lBQ3pDO0lBQ0EsSUFBUUMsR0FBRyxHQUE0QkwsSUFBSSxDQUFuQ0ssR0FBRztNQUFFQyxLQUFLLEdBQXFCTixJQUFJLENBQTlCTSxLQUFLO01BQUVDLElBQUksR0FBZVAsSUFBSSxDQUF2Qk8sSUFBSTtNQUFFbEIsUUFBUSxHQUFLVyxJQUFJLENBQWpCWCxRQUFRO0lBQ2xDLE9BQ0VqQixLQUFBLENBQUEsS0FBQSxFQUFBO01BQUFpQixRQUFBLEVBQUEsQ0FDR2UsS0FBSyxHQUFHLENBQUMsSUFBSWxDLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS3FCLFNBQVMsRUFBRU8sT0FBTyxDQUFDLFNBQVM7TUFBQyxDQUFBLENBQVEsRUFDeEQxQixLQUFBLENBQUEsS0FBQSxFQUFBO1FBQUttQixTQUFTLEVBQUVPLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFBQVQsUUFBQSxFQUFBLENBQ25Da0IsSUFBSSxJQUFJckMsSUFBQSxDQUFBLE1BQUEsRUFBQTtVQUFNcUIsU0FBUyxFQUFFTyxPQUFPLENBQUMsWUFBWSxDQUFDO1VBQUFULFFBQUEsRUFBR2tCO1FBQUksQ0FBQSxDQUFRLEVBQzlEckMsSUFBQSxDQUFBLE1BQUEsRUFBQTtVQUFNcUIsU0FBUyxFQUFFTyxPQUFPLENBQUMsa0JBQWtCLENBQUM7VUFBQVQsUUFBQSxFQUFHaUI7UUFBSyxDQUFBLENBQVE7TUFBQSxDQUFBLENBQ3hELEVBQ0xqQixRQUFRLEtBQUEsSUFBQSxJQUFSQSxRQUFRLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVJBLFFBQVEsQ0FBRTJCLEdBQUcsQ0FBQyxVQUFDQyxLQUFLLEVBQUVDLFVBQVU7UUFBQSxPQUFLZixvQkFBbUIsQ0FBQ2MsS0FBSyxFQUFFQyxVQUFVLENBQUM7TUFBQSxFQUFDO0lBQUEsQ0FBQSxFQU5yRWIsR0FBRyxLQUFBLElBQUEsSUFBSEEsR0FBRyxLQUFBLEtBQUEsQ0FBQSxHQUFIQSxHQUFHLEdBQUlELEtBQUssQ0FPaEI7RUFFVixDQUFDO0VBRUQsT0FDRWhDLEtBQUEsQ0FBQ0ksVUFBVSxFQUFBO0lBQ1RZLEVBQUUsRUFBRUEsRUFBRTtJQUNORyxTQUFTLEVBQUVPLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRVAsU0FBUyxDQUFDO0lBQ3JDNkIsS0FBSyxFQUFDLE9BQU87SUFBQS9CLFFBQUEsRUFBQSxDQUVibkIsSUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLcUIsU0FBUyxFQUFFTyxPQUFPLENBQUMsUUFBUSxFQUFFSixTQUFTLENBQUM7TUFBQUwsUUFBQSxFQUMxQ25CLElBQUEsQ0FBQSxNQUFBLEVBQUE7UUFDRXFCLFNBQVMsRUFBRU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUMxQmMsT0FBTyxFQUFFZixXQUFXO1FBQUFSLFFBQUEsRUFFcEJuQixJQUFBLENBQUNjLEtBQUssRUFBQTtVQUNKcUMsSUFBSSxFQUFFekIsUUFBUSxHQUFHLGNBQWMsR0FBRyxlQUFlO1VBQ2pEO1VBQ0EwQixTQUFTLEVBQUMsU0FBUztVQUNuQjtVQUNBQyxTQUFTLEVBQUMsU0FBUztVQUNuQjtVQUNBQyxTQUFTLEVBQUMsU0FBUztVQUNuQkMsS0FBSyxFQUFDLFNBQVM7VUFDZkwsS0FBSyxFQUFFeEIsUUFBUSxHQUFHLEdBQUcsR0FBRyxHQUFHO1VBQzNCOEIsTUFBTSxFQUFFOUIsUUFBUSxHQUFHLEVBQUUsR0FBRztRQUFFLENBQUE7TUFDMUIsQ0FBQTtJQUNHLENBQUEsQ0FDSCxFQUNOMUIsSUFBQSxDQUFDUSxPQUFPLEVBQUE7TUFDTmEsU0FBUyxFQUFFTyxPQUFPLENBQUMsTUFBTSxFQUFFSCxPQUFPLENBQUM7TUFDbkNnQyxnQkFBZ0IsRUFBRSxTQUFsQkEsZ0JBQWdCQSxDQUFBQyxJQUFBO1FBQUEsSUFBS0MsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7UUFBQSxPQUFPM0QsSUFBQSxDQUFDYyxLQUFLLEVBQUE7VUFBQ3FDLElBQUksRUFBQyxhQUFhO1VBQUNTLElBQUksRUFBRSxFQUFFO1VBQUVMLEtBQUssRUFBQyxTQUFTO1VBQUNNLFVBQVUsRUFBRSxDQUFDakMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFK0IsSUFBSSxHQUFHL0IsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUNrQyxJQUFJLENBQUMsR0FBRztRQUFDLENBQUEsQ0FBSTtNQUFBO01BQUEzQyxRQUFBLEVBRTlLQyxLQUFLLENBQUMwQixHQUFHLENBQUMsVUFBQ2hCLElBQUksRUFBRUksS0FBSztRQUFBLE9BQUtlLGtCQUFrQixDQUFDbkIsSUFBSSxFQUFFSSxLQUFLLENBQUM7TUFBQTtJQUFDLENBQUEsQ0FDcEQsRUFDVGYsUUFBUTtFQUFBLENBQUEsQ0FDRTtBQUVqQixDQUFDLENBQUM7QUFFRiw0QkFBZWhCLElBQUksQ0FBQ1ksYUFBYSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2lkZWJhci9TaW1wbHlTaWRlYmFyLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNpZGViYXIgYXMgUHJvU2lkZWJhciwgTWVudSBhcyBQcm9NZW51LCBNZW51SXRlbSBhcyBQcm9NZW51SXRlbSwgU3ViTWVudSBhcyBQcm9TdWJNZW51IH0gZnJvbSAncmVhY3QtcHJvLXNpZGViYXInO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgSWNvbnMgZnJvbSAnLi4vSWNvbnMnO1xuZXhwb3J0IGNvbnN0IFNpbXBseVNpZGViYXIgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBpZCwgY2hpbGRyZW4sIG1lbnVzLCBjbGFzc05hbWUsIHByZWZpeENscyA9ICdzaW1wbHktc2lkZWJhcicsIGhlYWRlckNscywgYm9keUNscywgYmV0YUxvZ28sIG9uTG9nb0NsaWNrIH0gPSBwcm9wcztcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIC8vIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgbWVudSBpdGVtIGlzIFNpbXBsZU1lbnVJdGVtXG4gICAgY29uc3QgaXNTaW1wbGVNZW51SXRlbSA9IChtZW51KSA9PiB7XG4gICAgICAgIHJldHVybiAnY2hpbGRyZW4nIGluIG1lbnUgJiYgQXJyYXkuaXNBcnJheShtZW51LmNoaWxkcmVuKTtcbiAgICB9O1xuICAgIC8vIFJlbmRlciBjaGlsZCBpdGVtcyAobm9uLXRvcC1sZXZlbClcbiAgICBjb25zdCByZW5kZXJDaGlsZE1lbnVJdGVtID0gKG1lbnUsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHsga2V5LCBsYWJlbCwgaWNvbiwgc3VmZml4LCBsaW5rLCBhY3RpdmUsIGRpc2FibGVkLCBvbkNsaWNrIH0gPSBtZW51O1xuICAgICAgICBpZiAoaXNTaW1wbGVNZW51SXRlbShtZW51KSkge1xuICAgICAgICAgICAgY29uc3QgeyBkZWZhdWx0T3Blbiwgb25PcGVuQ2hhbmdlLCBjaGlsZHJlbiB9ID0gbWVudTtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChQcm9TdWJNZW51LCB7IGxhYmVsOiBsYWJlbCwgaWNvbjogaWNvbiwgc3VmZml4OiBzdWZmaXgsIGNvbXBvbmVudDogbGluaywgZGVmYXVsdE9wZW46IGRlZmF1bHRPcGVuLCBvbk9wZW5DaGFuZ2U6IG9uT3BlbkNoYW5nZSwgb25DbGljazogb25DbGljaywgYWN0aXZlOiBhY3RpdmUsIGRpc2FibGVkOiBkaXNhYmxlZCwgY2hpbGRyZW46IGNoaWxkcmVuID09PSBudWxsIHx8IGNoaWxkcmVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZHJlbi5tYXAoKGNoaWxkLCBjaGlsZEluZGV4KSA9PiByZW5kZXJDaGlsZE1lbnVJdGVtKGNoaWxkLCBjaGlsZEluZGV4KSkgfSwga2V5ICE9PSBudWxsICYmIGtleSAhPT0gdm9pZCAwID8ga2V5IDogaW5kZXgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKF9qc3goUHJvTWVudUl0ZW0sIHsgaWNvbjogaWNvbiwgc3VmZml4OiBzdWZmaXgsIGNvbXBvbmVudDogbGluaywgYWN0aXZlOiBhY3RpdmUsIGRpc2FibGVkOiBkaXNhYmxlZCwgb25DbGljazogb25DbGljaywgY2hpbGRyZW46IGxhYmVsIH0sIGtleSAhPT0gbnVsbCAmJiBrZXkgIT09IHZvaWQgMCA/IGtleSA6IGluZGV4KSk7XG4gICAgfTtcbiAgICAvLyBSZW5kZXIgdG9wLWxldmVsIG1lbnUgaXRlbXNcbiAgICBjb25zdCByZW5kZXJUb3BMZXZlbE1lbnUgPSAobWVudSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFpc1NpbXBsZU1lbnVJdGVtKG1lbnUpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyQ2hpbGRNZW51SXRlbShtZW51LCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBrZXksIGxhYmVsLCBpY29uLCBjaGlsZHJlbiB9ID0gbWVudTtcbiAgICAgICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNoaWxkcmVuOiBbaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2hyLWxpbmUnKSB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBbaWNvbiAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtaWNvbicpLCBjaGlsZHJlbjogaWNvbiB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsLXRleHQnKSwgY2hpbGRyZW46IGxhYmVsIH0pXSB9KSwgY2hpbGRyZW4gPT09IG51bGwgfHwgY2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkcmVuLm1hcCgoY2hpbGQsIGNoaWxkSW5kZXgpID0+IHJlbmRlckNoaWxkTWVudUl0ZW0oY2hpbGQsIGNoaWxkSW5kZXgpKV0gfSwga2V5ICE9PSBudWxsICYmIGtleSAhPT0gdm9pZCAwID8ga2V5IDogaW5kZXgpKTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeHMoUHJvU2lkZWJhciwgeyBpZDogaWQsIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGNsYXNzTmFtZSksIHdpZHRoOiAnMjgwcHgnLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2hlYWRlcicsIGhlYWRlckNscyksIGNoaWxkcmVuOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbG9nbycpLCBvbkNsaWNrOiBvbkxvZ29DbGljaywgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogYmV0YUxvZ28gPyAnbG9nb1dpdGhCZXRhJyA6ICdsb2dvV2l0aFdvcmRzJywgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dvQ29sb3I6ICcjMDczMzg3JywgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JkQ29sb3I6ICcjMTMxMzEzJywgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICBiZXRhQ29sb3I6ICcjMDczMzg3JywgY29sb3I6ICcjMDczMzg3Jywgd2lkdGg6IGJldGFMb2dvID8gMTUyIDogMTMxLCBoZWlnaHQ6IGJldGFMb2dvID8gMjIgOiAyNCB9KSB9KSB9KSwgX2pzeChQcm9NZW51LCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVudScsIGJvZHlDbHMpLCByZW5kZXJFeHBhbmRJY29uOiAoeyBvcGVuIH0pID0+IF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZXZyb25Eb3duJywgc2l6ZTogMTYsIGNvbG9yOiAnIzY0NjQ2NScsIHdyYXBwZXJDbHM6IFtjbGFzc2VzKCdleHBhbmQtaWNvbicpLCBvcGVuID8gY2xhc3NlcygnZXhwYW5kLWljb24tb3BlbicpIDogJyddLmpvaW4oJyAnKSB9KSwgY2hpbGRyZW46IG1lbnVzLm1hcCgobWVudSwgaW5kZXgpID0+IHJlbmRlclRvcExldmVsTWVudShtZW51LCBpbmRleCkpIH0pLCBjaGlsZHJlbl0gfSkpO1xufSk7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNpbXBseVNpZGViYXIpOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,5 +1,6 @@
1
1
  import Sidebar from './Sidebar';
2
2
  export { Sidebar } from './Sidebar';
3
+ export { SimplySidebar } from './SimplySidebar';
3
4
  export { Stepper } from './Stepper';
4
5
  export default Sidebar;
5
6
  export * from './interface';
@@ -1,6 +1,7 @@
1
1
  import Sidebar from './Sidebar';
2
2
  export { Sidebar } from './Sidebar';
3
+ export { SimplySidebar } from './SimplySidebar';
3
4
  export { Stepper } from './Stepper';
4
5
  export default Sidebar;
5
6
  export * from './interface';
6
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2lkZWJhci9pbmRleC50cyJdLCJuYW1lcyI6WyJTaWRlYmFyIiwiU3RlcHBlciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsT0FBTyxNQUFNLFdBQVc7QUFFL0IsU0FBU0EsT0FBTyxRQUFRLFdBQVc7QUFDbkMsU0FBU0MsT0FBTyxRQUFRLFdBQVc7QUFFbkMsZUFBZUQsT0FBTztBQUV0QixjQUFjLGFBQWEiLCJmaWxlIjoiY29tcG9uZW50cy9TaWRlYmFyL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
7
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2lkZWJhci9pbmRleC50cyJdLCJuYW1lcyI6WyJTaWRlYmFyIiwiU2ltcGx5U2lkZWJhciIsIlN0ZXBwZXIiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE9BQU8sTUFBTSxXQUFXO0FBRS9CLFNBQVNBLE9BQU8sUUFBUSxXQUFXO0FBQ25DLFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsT0FBTyxRQUFRLFdBQVc7QUFFbkMsZUFBZUYsT0FBTztBQUV0QixjQUFjLGFBQWEiLCJmaWxlIjoiY29tcG9uZW50cy9TaWRlYmFyL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -12,6 +12,9 @@ export interface MenuItem {
12
12
  onClick?: (e: MouseEvent<HTMLAnchorElement>) => any;
13
13
  children?: Omit<MenuItem, 'children'>[];
14
14
  }
15
+ export interface SimpleMenuItem extends MenuItem {
16
+ children?: SimpleMenuItem[];
17
+ }
15
18
  export interface SidebarProps {
16
19
  id?: string;
17
20
  className?: string;
@@ -24,7 +27,7 @@ export interface SidebarProps {
24
27
  betaLogo?: boolean;
25
28
  onCollapse?: (collapsed: boolean) => any;
26
29
  onLogoClick?: () => any;
27
- menus: MenuItem[];
30
+ menus: (MenuItem | SimpleMenuItem)[];
28
31
  }
29
32
  export interface SidebarHandlers {
30
33
  toggle: () => any;
@@ -0,0 +1 @@
1
+ .om-react-ui-simply-sidebar{height:100vh;padding:40px 16px 24px;background-color:#fefefe;border-right:1px solid #e3e4e4}.om-react-ui-simply-sidebar-expand-icon-open{transform:rotate(180deg)}.om-react-ui-simply-sidebar-group-label{display:flex;gap:8px;align-items:center;height:40px;padding:16px 12px}.om-react-ui-simply-sidebar-group-icon{display:inline-flex;gap:8px;align-items:center;justify-content:center;width:20px;height:20px}.om-react-ui-simply-sidebar-group-label-text{color:#404042;font-weight:700;font-size:14px;font-style:normal;line-height:108%}.om-react-ui-simply-sidebar-hr-line{width:100%;height:1px;margin:4px 0;background-color:#e3e4e4}.om-react-ui-simply-sidebar .ps-sidebar-container{display:flex;flex-direction:column;background-color:transparent}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu{margin-top:32px}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu>ul{display:flex;flex-direction:column}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-menu-button{display:inline-flex;gap:8px;align-items:center;width:100%;height:40px;padding:8px 12px 8px 40px;color:#404042;font-weight:500;font-size:14px;font-family:Inter;font-style:normal;line-height:108%}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-menu-button:hover{color:#073387;background-color:#fff}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-menu-button.ps-active{color:#073387}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-menu-button .ps-menu-icon{display:inline-flex;align-items:center;justify-content:start;width:16px;min-width:16px;height:16px;margin-right:0;color:inherit}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-menu-button .ps-submenu-expand-icon{display:inline-flex;align-items:center}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-menu-button .ps-menu-suffix{height:16px;margin:0 0 0 auto}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-menu-button.ps-disabled{cursor:not-allowed;opacity:.4}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-submenu-content{background-color:#fefefe;border-radius:8px}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root .ps-submenu-content.ps-open{padding:4px 0 8px}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root.ps-submenu-root .ps-submenu-content ul{display:flex;flex-direction:column;gap:4px}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root.ps-submenu-root .ps-submenu-content ul .ps-menu-button{height:36px;padding:8px 16px 8px 64px;color:#404042}.om-react-ui-simply-sidebar .ps-sidebar-container .om-react-ui-simply-sidebar-menu .ps-menuitem-root.ps-submenu-root .ps-submenu-content ul .ps-menu-button.ps-active{color:#073387}.om-react-ui-simply-sidebar-header{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 0 8px 8px}.om-react-ui-simply-sidebar-logo{height:100%}.om-react-ui-simply-sidebar-collapse,.om-react-ui-simply-sidebar-logo{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.om-react-ui-simply-sidebar-collapse{gap:8px;margin:32px auto 0;padding:8px 12px;background-color:#f0f0f0;border-radius:12px}.om-react-ui-simply-sidebar-collapse-collapsed{width:36px;height:36px}.om-react-ui-simply-sidebar-collapse-collapsed .om-react-ui-simply-sidebar-collapse-text{display:none}.om-react-ui-simply-sidebar-collapse-text{color:#646465;font-weight:500;font-size:14px}.om-react-ui-simply-sidebar.ps-collapsed{padding:40px 8px 24px}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container{align-items:center;overflow:visible}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .om-react-ui-simply-sidebar-header{padding:0}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .om-react-ui-simply-sidebar-menu{margin-top:32px}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .om-react-ui-simply-sidebar-menu>ul{gap:8px}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root .ps-menu-button{flex-direction:column;gap:4px;height:auto;padding:8px;color:red;font-size:10px}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root .ps-menu-button .ps-menu-label{line-height:108%;white-space:pre-line;text-align:center}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content{padding:0;background-color:#f8f8f8;border-radius:12px;box-shadow:0 255px 71px 0 transparent,0 10px 22px 0 rgba(0,0,0,.1)}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content>ul{gap:0}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menuitem-root{padding:0 12px}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menuitem-root:hover{background-color:#f0f0f0}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menuitem-root:has(.ps-menu-button.ps-active){background-color:#edf2f9}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menuitem-root:first-child .ps-menu-button{margin-top:4px}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menuitem-root:last-child .ps-menu-button{margin-bottom:4px;border-bottom:none}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menuitem-root .ps-menu-button{height:40px;padding:12px 0;color:green;font-size:14px;border:none;border-bottom:1px solid #e3e4e4;border-radius:0}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menuitem-root .ps-menu-button.ps-active{background-color:inherit}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menu-button{flex-direction:row;gap:8px}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menu-button span{flex-grow:0}.om-react-ui-simply-sidebar.ps-collapsed .ps-sidebar-container .ps-menu-root .ps-menuitem-root.ps-submenu-root .ps-submenu-content .ps-menu-button span:only-child{padding-left:28px}.om-react-ui-simply-sidebar.ps-collapsed .om-react-ui-simply-sidebar-header{padding-left:22px}.om-react-ui-simply-sidebar.ps-collapsed .om-react-ui-simply-sidebar-footer{padding-left:16px}.om-react-ui-simply-sidebar.ps-collapsed .om-react-ui-simply-sidebar-footer-logout-text{display:none}