@opensumi/ide-components 2.14.4 → 2.15.0

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 (50) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.js +153 -112
  3. package/lib/icon/iconfont/iconManager.d.ts +1 -0
  4. package/lib/icon/iconfont/iconManager.d.ts.map +1 -1
  5. package/lib/icon/iconfont/iconMap.d.ts +1 -0
  6. package/lib/icon/iconfont/iconMap.d.ts.map +1 -1
  7. package/lib/icon/iconfont/iconMap.js +1 -0
  8. package/lib/icon/iconfont/iconMap.js.map +1 -1
  9. package/lib/icon/iconfont/iconfont.css +14 -6
  10. package/lib/icon/iconfont/iconfont.eot +0 -0
  11. package/lib/icon/iconfont/iconfont.html +2 -2
  12. package/lib/icon/iconfont/iconfont.svg +4 -0
  13. package/lib/icon/iconfont/iconfont.ttf +0 -0
  14. package/lib/icon/iconfont/iconfont.woff +0 -0
  15. package/lib/icon/iconfont/iconfont.woff2 +0 -0
  16. package/lib/input/ValidateInput.d.ts +1 -1
  17. package/lib/input/ValidateInput.d.ts.map +1 -1
  18. package/lib/input/ValidateInput.js +14 -3
  19. package/lib/input/ValidateInput.js.map +1 -1
  20. package/lib/popover/index.d.ts +1 -0
  21. package/lib/popover/index.d.ts.map +1 -1
  22. package/lib/popover/index.js +51 -35
  23. package/lib/popover/index.js.map +1 -1
  24. package/lib/popover/styles.less +0 -2
  25. package/lib/recycle-tree/basic/tree-node.d.ts.map +1 -1
  26. package/lib/recycle-tree/basic/tree-node.define.d.ts +3 -0
  27. package/lib/recycle-tree/basic/tree-node.define.d.ts.map +1 -1
  28. package/lib/recycle-tree/basic/tree-node.define.js +9 -0
  29. package/lib/recycle-tree/basic/tree-node.define.js.map +1 -1
  30. package/lib/recycle-tree/basic/tree-node.js +4 -1
  31. package/lib/recycle-tree/basic/tree-node.js.map +1 -1
  32. package/lib/recycle-tree/basic/types.d.ts +5 -0
  33. package/lib/recycle-tree/basic/types.d.ts.map +1 -1
  34. package/lib/recycle-tree/basic/types.js.map +1 -1
  35. package/lib/select/index.d.ts +6 -1
  36. package/lib/select/index.d.ts.map +1 -1
  37. package/lib/select/index.js +69 -72
  38. package/lib/select/index.js.map +1 -1
  39. package/lib/select/style.less +9 -0
  40. package/lib/style/base.less +1 -1
  41. package/lib/utils/disposable.d.ts.map +1 -1
  42. package/lib/utils/disposable.js +2 -0
  43. package/lib/utils/disposable.js.map +1 -1
  44. package/lib/utils/event.d.ts.map +1 -1
  45. package/lib/utils/event.js +3 -1
  46. package/lib/utils/event.js.map +1 -1
  47. package/lib/utils/warning.d.ts.map +1 -1
  48. package/lib/utils/warning.js +2 -0
  49. package/lib/utils/warning.js.map +1 -1
  50. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -6615,12 +6615,18 @@ class BasicCompositeTreeNode extends tree_1.CompositeTreeNode {
6615
6615
  get icon() {
6616
6616
  return this.raw.icon;
6617
6617
  }
6618
+ get iconClassName() {
6619
+ return this.raw.iconClassName;
6620
+ }
6618
6621
  get description() {
6619
6622
  return this.raw.description;
6620
6623
  }
6621
6624
  get raw() {
6622
6625
  return this._raw;
6623
6626
  }
6627
+ get expandable() {
6628
+ return !!this._raw.expandable;
6629
+ }
6624
6630
  }
6625
6631
  exports.BasicCompositeTreeNode = BasicCompositeTreeNode;
6626
6632
  class BasicTreeNode extends tree_1.TreeNode {
@@ -6642,6 +6648,9 @@ class BasicTreeNode extends tree_1.TreeNode {
6642
6648
  get icon() {
6643
6649
  return this.raw.icon;
6644
6650
  }
6651
+ get iconClassName() {
6652
+ return this.raw.iconClassName;
6653
+ }
6645
6654
  get raw() {
6646
6655
  return this._raw;
6647
6656
  }
@@ -8460,7 +8469,7 @@ class LeakageMonitor {
8460
8469
  // is exceeded by 50% again
8461
8470
  this._warnCountdown = threshold * 0.5;
8462
8471
  // find most frequent listener and print warning
8463
- let topStack;
8472
+ let topStack = '';
8464
8473
  let topCount = 0;
8465
8474
  this._stacks.forEach((count, stack) => {
8466
8475
  if (!topStack || topCount < count) {
@@ -8468,7 +8477,9 @@ class LeakageMonitor {
8468
8477
  topCount = count;
8469
8478
  }
8470
8479
  });
8480
+ // eslint-disable-next-line no-console
8471
8481
  console.warn(`[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`);
8482
+ // eslint-disable-next-line no-console
8472
8483
  console.warn(topStack);
8473
8484
  }
8474
8485
  return () => {
@@ -14644,6 +14655,7 @@ exports.defaultIconfont = {
14644
14655
  'deactivate-breakpoints': 'deactivate-breakpoints',
14645
14656
  'debug': 'debug',
14646
14657
  'debug-restart-frame': 'debug-restart-frame',
14658
+ 'debug-alt-small': 'debug-alt-small',
14647
14659
  'delete': 'delete',
14648
14660
  'deploy': 'deploy',
14649
14661
  'detail': 'detail',
@@ -14912,7 +14924,7 @@ var VALIDATE_TYPE;
14912
14924
  VALIDATE_TYPE[VALIDATE_TYPE["WARNING"] = 3] = "WARNING";
14913
14925
  })(VALIDATE_TYPE = exports.VALIDATE_TYPE || (exports.VALIDATE_TYPE = {}));
14914
14926
  exports.ValidateInput = react_1.default.forwardRef((_a, ref) => {
14915
- var { className, validate, onChange, onValueChange, validateMessage: validateInfo, popup = true } = _a, restProps = (0, tslib_1.__rest)(_a, ["className", "validate", "onChange", "onValueChange", "validateMessage", "popup"]);
14927
+ var { type, className, validate, onChange, onValueChange, validateMessage: validateInfo, popup = true } = _a, restProps = (0, tslib_1.__rest)(_a, ["type", "className", "validate", "onChange", "onValueChange", "validateMessage", "popup"]);
14916
14928
  const [validateMessage, setValidateMessage] = react_1.default.useState();
14917
14929
  react_1.default.useEffect(() => {
14918
14930
  setValidateMessage(validateInfo);
@@ -14938,7 +14950,18 @@ exports.ValidateInput = react_1.default.forwardRef((_a, ref) => {
14938
14950
  value = event.target.value;
14939
14951
  }
14940
14952
  if (typeof validate === 'function') {
14941
- const message = validate(value);
14953
+ let message;
14954
+ if (type === 'number') {
14955
+ if (/^[0-9]+$/.test(value)) {
14956
+ message = validate(Number(value));
14957
+ }
14958
+ else {
14959
+ message = validate(String(value));
14960
+ }
14961
+ }
14962
+ else {
14963
+ message = validate(value);
14964
+ }
14942
14965
  setValidateMessage(message);
14943
14966
  }
14944
14967
  if (typeof onChange === 'function') {
@@ -14952,7 +14975,7 @@ exports.ValidateInput = react_1.default.forwardRef((_a, ref) => {
14952
14975
  react_1.default.createElement(Input_1.Input, Object.assign({ type: 'text', ref: ref, className: (0, classnames_1.default)(className, validateMessage, validateClx), onChange: handleChange }, restProps)),
14953
14976
  renderValidateMessage()));
14954
14977
  });
14955
- exports.ValidateInput.displayName = 'KTValidateInput';
14978
+ exports.ValidateInput.displayName = 'ValidateInput';
14956
14979
 
14957
14980
 
14958
14981
  /***/ }),
@@ -15082,7 +15105,7 @@ exports.CheckBox.displayName = 'KTCheckBox';
15082
15105
  Object.defineProperty(exports, "__esModule", { value: true });
15083
15106
  exports.SelectOptionsList = exports.Select = exports.isDataOptionGroups = exports.isDataOptions = exports.Option = void 0;
15084
15107
  const tslib_1 = __webpack_require__(2);
15085
- const react_1 = (0, tslib_1.__importDefault)(__webpack_require__(1));
15108
+ const react_1 = (0, tslib_1.__importStar)(__webpack_require__(1));
15086
15109
  const react_2 = __webpack_require__(1);
15087
15110
  const classnames_1 = (0, tslib_1.__importDefault)(__webpack_require__(4));
15088
15111
  __webpack_require__(201);
@@ -15114,7 +15137,7 @@ function flatChildren(children, warpper) {
15114
15137
  * 从react node 上获取 props 来比较有点反模式,不符合数据和视图解耦的思想
15115
15138
  */
15116
15139
  function getLabelWithChildrenProps(value, children, equals = (v1, v2) => v1 === v2) {
15117
- var _a, _b, _c, _d;
15140
+ var _a, _b;
15118
15141
  const nodes = react_1.default.Children.toArray(children).filter((v) => react_1.default.isValidElement(v));
15119
15142
  const currentOption = nodes.find((node) => {
15120
15143
  var _a;
@@ -15125,9 +15148,7 @@ function getLabelWithChildrenProps(value, children, equals = (v1, v2) => v1 ===
15125
15148
  }
15126
15149
  return null;
15127
15150
  });
15128
- return currentOption
15129
- ? ((_a = currentOption.props) === null || _a === void 0 ? void 0 : _a.label) || ((_b = currentOption.props) === null || _b === void 0 ? void 0 : _b.value)
15130
- : ((_c = nodes[0].props) === null || _c === void 0 ? void 0 : _c.label) || ((_d = nodes[0].props) === null || _d === void 0 ? void 0 : _d.value);
15151
+ return ((_a = currentOption === null || currentOption === void 0 ? void 0 : currentOption.props) === null || _a === void 0 ? void 0 : _a.label) || ((_b = currentOption === null || currentOption === void 0 ? void 0 : currentOption.props) === null || _b === void 0 ? void 0 : _b.value);
15131
15152
  }
15132
15153
  function isDataOptions(options) {
15133
15154
  if (!options) {
@@ -15180,12 +15201,12 @@ function defaultFilterOption(input, option) {
15180
15201
  }
15181
15202
  return false;
15182
15203
  }
15183
- function Select({ disabled, options, size = 'default', children, value, onChange, onMouseEnter, optionLabelProp, style, optionStyle, className, maxHeight, equals = (v1, v2) => v1 === v2, optionRenderer = defaultOptionRenderer, groupTitleRenderer, footerComponent, headerComponent, setSelectHandle, showSearch = false, filterOption = defaultFilterOption, searchPlaceholder = '', emptyComponent, selectedRenderer, onBeforeShowOptions, allowOptionsOverflow, dropdownRenderType = 'fixed', description, }) {
15204
+ function Select({ disabled, options, size = 'default', children, value, onChange, onMouseEnter, optionLabelProp, style, optionStyle, className, maxHeight, equals = (v1, v2) => v1 === v2, optionRenderer = defaultOptionRenderer, groupTitleRenderer, footerComponent, headerComponent, showSearch = false, filterOption = defaultFilterOption, searchPlaceholder = '', emptyComponent, selectedRenderer, onBeforeShowOptions, allowOptionsOverflow, dropdownRenderType = 'fixed', description, notMatchWarning, }) {
15184
15205
  const [open, setOpen] = (0, react_2.useState)(false);
15185
15206
  const [searchInput, setSearchInput] = (0, react_2.useState)('');
15186
15207
  const selectRef = react_1.default.useRef(null);
15187
15208
  const overlayRef = react_1.default.useRef(null);
15188
- function toggleOpen() {
15209
+ const toggleOpen = (0, react_1.useCallback)(() => {
15189
15210
  const target = !open;
15190
15211
  if (target) {
15191
15212
  if (onBeforeShowOptions && onBeforeShowOptions()) {
@@ -15193,15 +15214,67 @@ function Select({ disabled, options, size = 'default', children, value, onChange
15193
15214
  }
15194
15215
  }
15195
15216
  setOpen(target);
15196
- }
15197
- if (!open && searchInput) {
15198
- setSearchInput('');
15199
- }
15217
+ }, [open, onBeforeShowOptions, onBeforeShowOptions]);
15218
+ const getSelectedValue = (0, react_1.useCallback)(() => {
15219
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
15220
+ if (options && isDataOptions(options)) {
15221
+ for (const option of options) {
15222
+ if (equals(value, option.value)) {
15223
+ return {
15224
+ iconClass: option.iconClass,
15225
+ label: option.label,
15226
+ value: option.value,
15227
+ };
15228
+ }
15229
+ }
15230
+ return {
15231
+ iconClass: (_a = options[0]) === null || _a === void 0 ? void 0 : _a.iconClass,
15232
+ label: (_b = options[0]) === null || _b === void 0 ? void 0 : _b.label,
15233
+ value: (_c = options[0]) === null || _c === void 0 ? void 0 : _c.value,
15234
+ };
15235
+ }
15236
+ else if (options && isDataOptionGroups(options)) {
15237
+ for (const group of options) {
15238
+ for (const option of group.options) {
15239
+ if (equals(value, option.value)) {
15240
+ return {
15241
+ iconClass: option.iconClass,
15242
+ label: option.label,
15243
+ value: option.value,
15244
+ };
15245
+ }
15246
+ }
15247
+ }
15248
+ return {
15249
+ iconClass: (_e = (_d = options[0]) === null || _d === void 0 ? void 0 : _d.options[0]) === null || _e === void 0 ? void 0 : _e.iconClass,
15250
+ label: (_g = (_f = options[0]) === null || _f === void 0 ? void 0 : _f.options[0]) === null || _g === void 0 ? void 0 : _g.label,
15251
+ value: (_j = (_h = options[0]) === null || _h === void 0 ? void 0 : _h.options[0]) === null || _j === void 0 ? void 0 : _j.value,
15252
+ };
15253
+ }
15254
+ else {
15255
+ const text = children && getLabelWithChildrenProps(value, children);
15256
+ if (text) {
15257
+ return {
15258
+ label: text,
15259
+ value: text,
15260
+ };
15261
+ }
15262
+ }
15263
+ // 如果当前 value 和任何一个 option 都不匹配,返回当前 value
15264
+ return {
15265
+ label: value,
15266
+ value: value,
15267
+ notMatch: true,
15268
+ };
15269
+ }, [options, value]);
15270
+ const selected = getSelectedValue();
15200
15271
  const optionsContainerClasses = (0, classnames_1.default)('kt-select-options', {
15201
15272
  ['kt-select-options-visible']: open,
15202
15273
  [`kt-select-options-${size}`]: size,
15203
15274
  });
15275
+ const showWarning = notMatchWarning && selected.notMatch;
15204
15276
  const selectClasses = (0, classnames_1.default)('kt-select-value', {
15277
+ ['kt-select-warning']: showWarning,
15205
15278
  ['kt-select-disabled']: disabled,
15206
15279
  ['kt-select-value-active']: open,
15207
15280
  [`kt-select-value-${size}`]: size,
@@ -15227,6 +15300,11 @@ function Select({ disabled, options, size = 'default', children, value, onChange
15227
15300
  }
15228
15301
  } }, node));
15229
15302
  }
15303
+ (0, react_2.useEffect)(() => {
15304
+ if (!open && searchInput) {
15305
+ setSearchInput('');
15306
+ }
15307
+ }, []);
15230
15308
  (0, react_2.useEffect)(() => {
15231
15309
  if (selectRef.current && overlayRef.current) {
15232
15310
  const boxRect = selectRef.current.getBoundingClientRect();
@@ -15257,56 +15335,6 @@ function Select({ disabled, options, size = 'default', children, value, onChange
15257
15335
  };
15258
15336
  }
15259
15337
  }, [open]);
15260
- function getSelectedValue() {
15261
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
15262
- if (options && isDataOptions(options)) {
15263
- for (const option of options) {
15264
- if (equals(value, option.value)) {
15265
- return {
15266
- iconClass: option.iconClass,
15267
- label: option.label,
15268
- value: option.value,
15269
- };
15270
- }
15271
- }
15272
- return {
15273
- iconClass: (_a = options[0]) === null || _a === void 0 ? void 0 : _a.iconClass,
15274
- label: (_b = options[0]) === null || _b === void 0 ? void 0 : _b.label,
15275
- value: (_c = options[0]) === null || _c === void 0 ? void 0 : _c.value,
15276
- };
15277
- }
15278
- else if (options && isDataOptionGroups(options)) {
15279
- for (const group of options) {
15280
- for (const option of group.options) {
15281
- if (equals(value, option.value)) {
15282
- return {
15283
- iconClass: option.iconClass,
15284
- label: option.label,
15285
- value: option.value,
15286
- };
15287
- }
15288
- }
15289
- }
15290
- return {
15291
- iconClass: (_e = (_d = options[0]) === null || _d === void 0 ? void 0 : _d.options[0]) === null || _e === void 0 ? void 0 : _e.iconClass,
15292
- label: (_g = (_f = options[0]) === null || _f === void 0 ? void 0 : _f.options[0]) === null || _g === void 0 ? void 0 : _g.label,
15293
- value: (_j = (_h = options[0]) === null || _h === void 0 ? void 0 : _h.options[0]) === null || _j === void 0 ? void 0 : _j.value,
15294
- };
15295
- }
15296
- else {
15297
- const text = children && getLabelWithChildrenProps(value, children);
15298
- if (text) {
15299
- return {
15300
- label: text,
15301
- value: text,
15302
- };
15303
- }
15304
- }
15305
- return {
15306
- label: '',
15307
- value: '',
15308
- };
15309
- }
15310
15338
  // 根据搜索输入过滤 options
15311
15339
  if (searchInput) {
15312
15340
  if (options && isDataOptions(options)) {
@@ -15329,10 +15357,9 @@ function Select({ disabled, options, size = 'default', children, value, onChange
15329
15357
  }
15330
15358
  }
15331
15359
  const renderSelected = () => {
15332
- const selected = getSelectedValue();
15333
- const SC = selectedRenderer;
15360
+ const CustomSC = selectedRenderer;
15334
15361
  return (react_1.default.createElement(react_1.default.Fragment, null,
15335
- SC ? (react_1.default.createElement(SC, { data: selected })) : (react_1.default.createElement(react_1.default.Fragment, null,
15362
+ CustomSC ? (react_1.default.createElement(CustomSC, { data: selected })) : (react_1.default.createElement(react_1.default.Fragment, null,
15336
15363
  selected.iconClass ? (react_1.default.createElement("span", { className: (0, classnames_1.default)(selected.iconClass, 'kt-select-option-icon') })) : undefined,
15337
15364
  react_1.default.createElement("span", { className: 'kt-select-option' }, selected.label))),
15338
15365
  react_1.default.createElement(icon_1.Icon, { iconClass: (0, icon_1.getKaitianIcon)('down') })));
@@ -15342,6 +15369,7 @@ function Select({ disabled, options, size = 'default', children, value, onChange
15342
15369
  }, value: searchInput, autoFocus: true, placeholder: searchPlaceholder || '' }));
15343
15370
  return (react_1.default.createElement("div", { className: (0, classnames_1.default)('kt-select-container', className), ref: selectRef },
15344
15371
  react_1.default.createElement("p", { className: selectClasses, onClick: toggleOpen, style: style }, showSearch && open ? renderSearch() : renderSelected()),
15372
+ showWarning && react_1.default.createElement("div", { className: 'kt-select-warning-text' }, notMatchWarning),
15345
15373
  open &&
15346
15374
  (isDataOptions(options) || isDataOptionGroups(options) ? (react_1.default.createElement(exports.SelectOptionsList, { optionRenderer: optionRenderer, options: options, equals: equals, optionStyle: optionStyle, currentValue: value, size: size, onSelect: (value) => {
15347
15375
  if (onChange) {
@@ -15404,14 +15432,6 @@ exports.SelectOptionsList = react_1.default.forwardRef((props, ref) => {
15404
15432
  isEmpty && EC ? (react_1.default.createElement(EC, null)) : ((isDataOptionGroups(options) ? renderWithGroup(options) : renderWithoutGroup(options)) || (EC && react_1.default.createElement(EC, null))),
15405
15433
  FC ? react_1.default.createElement(FC, null) : null));
15406
15434
  });
15407
- // @ts-ignore
15408
- function usePrevious(value) {
15409
- const ref = react_1.default.useRef();
15410
- (0, react_2.useEffect)(() => {
15411
- ref.current = value;
15412
- });
15413
- return ref.current;
15414
- }
15415
15435
 
15416
15436
 
15417
15437
  /***/ }),
@@ -16195,7 +16215,7 @@ var PopoverPosition;
16195
16215
  })(PopoverPosition = exports.PopoverPosition || (exports.PopoverPosition = {}));
16196
16216
  function noop() { }
16197
16217
  const Popover = (_a) => {
16198
- var { delay, children, trigger, display, id, insertClass, popoverClass, content, position = PopoverPosition.top, title, titleClassName, action, onClickAction } = _a, restProps = (0, tslib_1.__rest)(_a, ["delay", "children", "trigger", "display", "id", "insertClass", "popoverClass", "content", "position", "title", "titleClassName", "action", "onClickAction"]);
16218
+ var { delay, children, trigger, display, id, insertClass, popoverClass, content, position = PopoverPosition.top, title, titleClassName, action, onClickAction, disable } = _a, restProps = (0, tslib_1.__rest)(_a, ["delay", "children", "trigger", "display", "id", "insertClass", "popoverClass", "content", "position", "title", "titleClassName", "action", "onClickAction", "disable"]);
16199
16219
  const childEl = react_1.default.useRef(null);
16200
16220
  const contentEl = react_1.default.useRef(null);
16201
16221
  const triggerType = trigger || PopoverTriggerType.hover;
@@ -16219,46 +16239,61 @@ const Popover = (_a) => {
16219
16239
  hideContent();
16220
16240
  }
16221
16241
  }
16242
+ function resizeContent() {
16243
+ if (!contentEl.current || !childEl.current || disable) {
16244
+ return;
16245
+ }
16246
+ const { left, top, width, height } = childEl.current.getBoundingClientRect();
16247
+ const contentRect = contentEl.current.getBoundingClientRect();
16248
+ if (position === PopoverPosition.top) {
16249
+ const contentLeft = contentRect.right - window.innerWidth > 0
16250
+ ? window.innerWidth - contentRect.width
16251
+ : left - contentRect.width / 2 + width / 2;
16252
+ const contentTop = top - contentRect.height - 7;
16253
+ contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16254
+ contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16255
+ contentEl.current.style.visibility = 'visible';
16256
+ }
16257
+ else if (position === PopoverPosition.bottom) {
16258
+ const contentLeft = contentRect.right - window.innerWidth > 0
16259
+ ? window.innerWidth - contentRect.width
16260
+ : left - contentRect.width / 2 + width / 2;
16261
+ const contentTop = top + height + 7;
16262
+ contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16263
+ contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16264
+ contentEl.current.style.visibility = 'visible';
16265
+ }
16266
+ else if (position === PopoverPosition.left) {
16267
+ const contentLeft = left - contentRect.width - 7;
16268
+ const contentTop = top - contentRect.height / 2 + height / 2;
16269
+ contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16270
+ contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16271
+ contentEl.current.style.visibility = 'visible';
16272
+ }
16273
+ else if (position === PopoverPosition.right) {
16274
+ const contentLeft = left + width + 7;
16275
+ const contentTop = top - contentRect.height / 2 + height / 2;
16276
+ contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16277
+ contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16278
+ contentEl.current.style.visibility = 'visible';
16279
+ }
16280
+ }
16222
16281
  function showContent() {
16223
- if (!contentEl.current || !childEl.current) {
16282
+ if (!contentEl.current || !childEl.current || disable) {
16224
16283
  return;
16225
16284
  }
16226
16285
  clearTimeout(hideContentTimer);
16227
16286
  contentEl.current.style.display = 'block';
16228
- setTimeout(() => {
16287
+ window.requestAnimationFrame(() => {
16229
16288
  if (!childEl.current || !contentEl.current) {
16230
16289
  return;
16231
16290
  }
16232
- const { left, top, width, height } = childEl.current.getBoundingClientRect();
16233
- const contentRect = contentEl.current.getBoundingClientRect();
16234
- if (position === PopoverPosition.top) {
16235
- const contentLeft = left - contentRect.width / 2 + width / 2;
16236
- const contentTop = top - contentRect.height - 7;
16237
- contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16238
- contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16239
- contentEl.current.style.visibility = 'visible';
16240
- }
16241
- else if (position === PopoverPosition.bottom) {
16242
- const contentLeft = left - contentRect.width / 2 + width / 2;
16243
- const contentTop = top + height + 7;
16244
- contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16245
- contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16291
+ resizeContent();
16292
+ // 因为 content 是挂在到 Body 上的,第一次渲染后,无法判断是否到达了右边界,需要再加一个补偿逻辑
16293
+ window.requestAnimationFrame(() => {
16294
+ resizeContent();
16246
16295
  contentEl.current.style.visibility = 'visible';
16247
- }
16248
- else if (position === PopoverPosition.left) {
16249
- const contentLeft = left - contentRect.width - 7;
16250
- const contentTop = top - contentRect.height / 2 + height / 2;
16251
- contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16252
- contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16253
- contentEl.current.style.visibility = 'visible';
16254
- }
16255
- else if (position === PopoverPosition.right) {
16256
- const contentLeft = left + width + 7;
16257
- const contentTop = top - contentRect.height / 2 + height / 2;
16258
- contentEl.current.style.left = (contentLeft < 0 ? 0 : contentLeft) + 'px';
16259
- contentEl.current.style.top = (contentTop < 0 ? 0 : contentTop) + 'px';
16260
- contentEl.current.style.visibility = 'visible';
16261
- }
16296
+ });
16262
16297
  });
16263
16298
  }
16264
16299
  function hideContent() {
@@ -16267,13 +16302,14 @@ const Popover = (_a) => {
16267
16302
  }
16268
16303
  hideContentTimer = setTimeout(() => {
16269
16304
  contentEl.current.style.display = 'none';
16270
- }, 500);
16305
+ contentEl.current.style.visibility = 'hidden';
16306
+ }, delay);
16271
16307
  }
16272
16308
  react_1.default.useEffect(() => {
16273
16309
  if (!contentEl.current) {
16274
16310
  return;
16275
16311
  }
16276
- const oldEl = document.body.querySelector(`body > #${id}`);
16312
+ const oldEl = document.body.querySelector(`body > #${CSS.escape(id)}`);
16277
16313
  if (oldEl) {
16278
16314
  document.body.removeChild(oldEl);
16279
16315
  }
@@ -16283,7 +16319,7 @@ const Popover = (_a) => {
16283
16319
  showContent();
16284
16320
  }
16285
16321
  return () => {
16286
- const oldEl = document.body.querySelector(`body > #${id}`);
16322
+ const oldEl = document.body.querySelector(`body > #${CSS.escape(id)}`);
16287
16323
  if (oldEl) {
16288
16324
  document.body.removeChild(oldEl);
16289
16325
  }
@@ -17097,6 +17133,7 @@ class Disposable {
17097
17133
  this.disposables.pop().dispose();
17098
17134
  }
17099
17135
  catch (e) {
17136
+ // eslint-disable-next-line no-console
17100
17137
  console.error(e);
17101
17138
  }
17102
17139
  }
@@ -17168,6 +17205,7 @@ class DisposableCollection {
17168
17205
  this.disposables.pop().dispose();
17169
17206
  }
17170
17207
  catch (e) {
17208
+ // eslint-disable-next-line no-console
17171
17209
  console.error(e);
17172
17210
  }
17173
17211
  }
@@ -22234,7 +22272,7 @@ const BasicTreeNodeRenderer = ({ item, className, itemHeight = 22, indent = 8, o
22234
22272
  lineHeight: `${itemHeight}px`,
22235
22273
  paddingLeft,
22236
22274
  };
22237
- const renderIcon = (0, react_1.useCallback)((node) => (react_1.default.createElement(icon_1.Icon, { icon: node.icon, className: 'icon', style: { height: itemHeight, lineHeight: `${itemHeight}px` } })), []);
22275
+ const renderIcon = (0, react_1.useCallback)((node) => (react_1.default.createElement(icon_1.Icon, { icon: node.icon, className: (0, classnames_1.default)('icon', node.iconClassName), style: { height: itemHeight, lineHeight: `${itemHeight}px` } })), []);
22238
22276
  const getName = (0, react_1.useCallback)((node) => node.displayName.replace(/\n/g, '↵'), []);
22239
22277
  const renderDisplayName = (0, react_1.useCallback)((node) => (react_1.default.createElement("div", { className: (0, classnames_1.default)('segment', 'display_name') }, getName(node))), []);
22240
22278
  const renderDescription = (0, react_1.useCallback)((node) => {
@@ -22275,6 +22313,9 @@ const BasicTreeNodeRenderer = ({ item, className, itemHeight = 22, indent = 8, o
22275
22313
  }), onClick: clickHandler, icon: 'arrow-right' }));
22276
22314
  };
22277
22315
  const renderTwice = (item) => {
22316
+ if (!item.expandable) {
22317
+ return react_1.default.createElement("div", { className: (0, classnames_1.default)('segment', 'expansion_toggle') });
22318
+ }
22278
22319
  if (tree_node_define_1.BasicCompositeTreeNode.is(item)) {
22279
22320
  return renderFolderToggle(item, handlerTwistierClick);
22280
22321
  }
@@ -51,6 +51,7 @@ export declare const defaultIconMap: {
51
51
  'deactivate-breakpoints': string;
52
52
  debug: string;
53
53
  'debug-restart-frame': string;
54
+ 'debug-alt-small': string;
54
55
  delete: string;
55
56
  deploy: string;
56
57
  detail: string;
@@ -1 +1 @@
1
- {"version":3,"file":"iconManager.d.ts","sourceRoot":"","sources":["../../../src/icon/iconfont/iconManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,CAAC;AA4B3B,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzB,CAAC;AAEH,cAAM,WAAW;IACf,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO,CAAC,QAAQ,CAA+D;IAE/E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAKnE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;CAatC;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
1
+ {"version":3,"file":"iconManager.d.ts","sourceRoot":"","sources":["../../../src/icon/iconfont/iconManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,CAAC;AA4B3B,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzB,CAAC;AAEH,cAAM,WAAW;IACf,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO,CAAC,QAAQ,CAA+D;IAE/E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAKnE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;CAatC;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -49,6 +49,7 @@ export declare const defaultIconfont: {
49
49
  'deactivate-breakpoints': string;
50
50
  debug: string;
51
51
  'debug-restart-frame': string;
52
+ 'debug-alt-small': string;
52
53
  delete: string;
53
54
  deploy: string;
54
55
  detail: string;
@@ -1 +1 @@
1
- {"version":3,"file":"iconMap.d.ts","sourceRoot":"","sources":["../../../src/icon/iconfont/iconMap.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgK3B,CAAC"}
1
+ {"version":3,"file":"iconMap.d.ts","sourceRoot":"","sources":["../../../src/icon/iconfont/iconMap.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiK3B,CAAC"}
@@ -54,6 +54,7 @@ exports.defaultIconfont = {
54
54
  'deactivate-breakpoints': 'deactivate-breakpoints',
55
55
  'debug': 'debug',
56
56
  'debug-restart-frame': 'debug-restart-frame',
57
+ 'debug-alt-small': 'debug-alt-small',
57
58
  'delete': 'delete',
58
59
  'deploy': 'deploy',
59
60
  'detail': 'detail',
@@ -1 +1 @@
1
- {"version":3,"file":"iconMap.js","sourceRoot":"","sources":["../../../src/icon/iconfont/iconMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iconMap.js","sourceRoot":"","sources":["../../../src/icon/iconfont/iconMap.ts"],"names":[],"mappings":"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"}