@douyinfe/semi-foundation 2.61.0 → 2.61.1-alpha.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 (51) hide show
  1. package/form/foundation.ts +3 -40
  2. package/form/interface.ts +1 -9
  3. package/lib/cjs/form/foundation.d.ts +0 -7
  4. package/lib/cjs/form/foundation.js +4 -37
  5. package/lib/cjs/form/interface.d.ts +0 -7
  6. package/lib/cjs/select/constants.d.ts +0 -2
  7. package/lib/cjs/select/constants.js +1 -3
  8. package/lib/cjs/select/foundation.d.ts +1 -2
  9. package/lib/cjs/select/foundation.js +3 -15
  10. package/lib/cjs/select/select.css +0 -9
  11. package/lib/cjs/select/select.scss +1 -10
  12. package/lib/cjs/select/variables.scss +0 -7
  13. package/lib/cjs/table/constants.d.ts +0 -1
  14. package/lib/cjs/table/constants.js +0 -1
  15. package/lib/cjs/table/utils.d.ts +0 -1
  16. package/lib/cjs/table/utils.js +0 -22
  17. package/lib/cjs/tooltip/foundation.d.ts +1 -2
  18. package/lib/cjs/tooltip/foundation.js +0 -10
  19. package/lib/cjs/tree/foundation.js +2 -3
  20. package/lib/cjs/treeSelect/foundation.js +2 -3
  21. package/lib/cjs/utils/Event.js +1 -3
  22. package/lib/es/form/foundation.d.ts +0 -7
  23. package/lib/es/form/foundation.js +4 -37
  24. package/lib/es/form/interface.d.ts +0 -7
  25. package/lib/es/select/constants.d.ts +0 -2
  26. package/lib/es/select/constants.js +1 -3
  27. package/lib/es/select/foundation.d.ts +1 -2
  28. package/lib/es/select/foundation.js +3 -15
  29. package/lib/es/select/select.css +0 -9
  30. package/lib/es/select/select.scss +1 -10
  31. package/lib/es/select/variables.scss +0 -7
  32. package/lib/es/table/constants.d.ts +0 -1
  33. package/lib/es/table/constants.js +0 -1
  34. package/lib/es/table/utils.d.ts +0 -1
  35. package/lib/es/table/utils.js +0 -21
  36. package/lib/es/tooltip/foundation.d.ts +1 -2
  37. package/lib/es/tooltip/foundation.js +0 -10
  38. package/lib/es/tree/foundation.js +2 -3
  39. package/lib/es/treeSelect/foundation.js +2 -3
  40. package/lib/es/utils/Event.js +1 -3
  41. package/package.json +3 -3
  42. package/select/constants.ts +0 -2
  43. package/select/foundation.ts +4 -14
  44. package/select/select.scss +1 -10
  45. package/select/variables.scss +0 -7
  46. package/table/constants.ts +0 -1
  47. package/table/utils.ts +0 -25
  48. package/tooltip/foundation.ts +2 -16
  49. package/tree/foundation.ts +2 -2
  50. package/treeSelect/foundation.ts +2 -2
  51. package/utils/Event.ts +1 -3
@@ -9,11 +9,6 @@ import { BaseFormAdapter, FormState, CallOpts, FieldState, FieldStaff, Component
9
9
 
10
10
  export type { BaseFormAdapter };
11
11
 
12
- type ScrollToErrorOpts = {
13
- field?: string;
14
- index?: number;
15
- scrollOpts?: ScrollIntoViewOptions
16
- }
17
12
  export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
18
13
 
19
14
  data: FormState;
@@ -77,7 +72,6 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
77
72
  this.getFormProps = this.getFormProps.bind(this);
78
73
  this.getFieldExist = this.getFieldExist.bind(this);
79
74
  this.scrollToField = this.scrollToField.bind(this);
80
- this.scrollToError = this.scrollToError.bind(this);
81
75
  }
82
76
 
83
77
  init() {
@@ -136,7 +130,7 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
136
130
  this._adapter.forceUpdate();
137
131
  }
138
132
 
139
- // in order to solve bytedance internal issue-289
133
+ // in order to slove byted-issue-289
140
134
  registerArrayField(arrayFieldPath: string, val: any): void {
141
135
  this.updateArrayField(arrayFieldPath, {
142
136
  updateKey: new Date().valueOf(),
@@ -628,7 +622,6 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
628
622
  submitForm: () => this.submit(),
629
623
  getFieldExist: (field: string) => this.getFieldExist(field),
630
624
  scrollToField: (field: string, scrollOpts?: ScrollIntoViewOptions) => this.scrollToField(field, scrollOpts),
631
- scrollToError: (opts?: ScrollToErrorOpts) => this.scrollToError(opts),
632
625
  };
633
626
  }
634
627
 
@@ -708,8 +701,8 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
708
701
  const errorDOM = this._adapter.getAllErrorDOM();
709
702
  if (errorDOM && errorDOM.length) {
710
703
  try {
711
- const fieldDOM = errorDOM[0].parentNode.parentNode;
712
- scrollIntoView(fieldDOM as Element, scrollOpts);
704
+ const fieldDom = errorDOM[0].parentNode.parentNode;
705
+ scrollIntoView(fieldDom as Element, scrollOpts);
713
706
  } catch (error) {}
714
707
  }
715
708
  }
@@ -720,34 +713,4 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
720
713
  scrollIntoView(fieldDOM as Element, scrollOpts);
721
714
  }
722
715
  }
723
-
724
- scrollToError(config?: ScrollToErrorOpts): void {
725
- let scrollOpts: ScrollIntoViewOptions = config && config.scrollOpts ? config.scrollOpts : { behavior: 'smooth', block: 'start' };
726
- let field = config && config.field;
727
- let index = config && config.index;
728
- let fieldDOM, errorDOM;
729
- if (typeof index === 'number') {
730
- const allErrorDOM = this._adapter.getAllErrorDOM();
731
- let errorDOM = allErrorDOM[index];
732
- if (errorDOM) {
733
- fieldDOM = errorDOM.parentNode.parentNode;
734
- }
735
- } else if (field) {
736
- // If field is specified, find the error dom of the corresponding field
737
- errorDOM = this._adapter.getFieldErrorDOM(field);
738
- if (errorDOM) {
739
- fieldDOM = errorDOM.parentNode.parentNode;
740
- }
741
- } else if (typeof field === 'undefined') {
742
- // If field is not specified, find all error doms and scroll to the first one
743
- let allErrorDOM = this._adapter.getAllErrorDOM();
744
- if (allErrorDOM && allErrorDOM.length) {
745
- fieldDOM = allErrorDOM[0].parentNode.parentNode;
746
- }
747
- }
748
-
749
- if (fieldDOM) {
750
- scrollIntoView(fieldDOM as Element, scrollOpts);
751
- }
752
- }
753
716
  }
package/form/interface.ts CHANGED
@@ -22,7 +22,6 @@ export interface BaseFormAdapter<P = Record<string, any>, S = Record<string, any
22
22
  getFormProps: (keys: undefined | string | Array<string>) => any;
23
23
  getAllErrorDOM: () => NodeList;
24
24
  getFieldDOM: (field: string) => Node;
25
- getFieldErrorDOM: (field: string) => Node;
26
25
  initFormId: () => void
27
26
  }
28
27
 
@@ -63,12 +62,6 @@ export type FieldPathValue<T, P extends FieldPath<T>> =
63
62
  ? T[P]
64
63
  : never;
65
64
 
66
- export type ScrollToErrorOptions<K> = {
67
- field?: K;
68
- index?: number;
69
- scrollConfig?: ScrollIntoViewOptions
70
- }
71
-
72
65
  // use object replace Record<string, any>, fix issue 933
73
66
  export interface BaseFormApi<T extends object = any> {
74
67
  /** get value of field */
@@ -98,8 +91,7 @@ export interface BaseFormApi<T extends object = any> {
98
91
  getValues: () => T;
99
92
  /** set value of multiple fields */
100
93
  setValues: (fieldsValue: Partial<T>, config?: setValuesConfig) => void;
101
- scrollToField: <K extends keyof T>(field: K, scrollConfig?: ScrollIntoViewOptions) => void;
102
- scrollToError: <K extends keyof T>(config?: ScrollToErrorOptions<K>) => void
94
+ scrollToField: <K extends keyof T>(field: K, scrollConfig?: ScrollIntoViewOptions) => void
103
95
  }
104
96
 
105
97
  export interface CallOpts {
@@ -2,11 +2,6 @@ import BaseFoundation from '../base/foundation';
2
2
  import { Options as ScrollIntoViewOptions } from 'scroll-into-view-if-needed';
3
3
  import { BaseFormAdapter, FormState, CallOpts, FieldState, FieldStaff, ComponentProps, setValuesConfig, ArrayFieldStaff } from './interface';
4
4
  export type { BaseFormAdapter };
5
- type ScrollToErrorOpts = {
6
- field?: string;
7
- index?: number;
8
- scrollOpts?: ScrollIntoViewOptions;
9
- };
10
5
  export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
11
6
  data: FormState;
12
7
  fields: Map<string, FieldStaff>;
@@ -90,7 +85,6 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
90
85
  submitForm: () => void;
91
86
  getFieldExist: (field: string) => boolean;
92
87
  scrollToField: (field: string, scrollOpts?: ScrollIntoViewOptions) => void;
93
- scrollToError: (opts?: ScrollToErrorOpts) => void;
94
88
  setValue: (field: string, value: any, opts: CallOpts) => void;
95
89
  setError: (field: string, error: any, opts: CallOpts) => void;
96
90
  setTouched: (field: string, isTouched: boolean, opts: CallOpts) => void;
@@ -104,5 +98,4 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
104
98
  _autoScroll(timeout?: boolean | number): void;
105
99
  _getErrorFieldAndScroll(scrollOpts?: ScrollIntoViewOptions | boolean): void;
106
100
  scrollToField(field: string, scrollOpts?: ScrollIntoViewOptions<any>): void;
107
- scrollToError(config?: ScrollToErrorOpts): void;
108
101
  }
@@ -65,7 +65,6 @@ class FormFoundation extends _foundation.default {
65
65
  this.getFormProps = this.getFormProps.bind(this);
66
66
  this.getFieldExist = this.getFieldExist.bind(this);
67
67
  this.scrollToField = this.scrollToField.bind(this);
68
- this.scrollToError = this.scrollToError.bind(this);
69
68
  }
70
69
  init() {
71
70
  this._adapter.initFormId();
@@ -118,7 +117,7 @@ class FormFoundation extends _foundation.default {
118
117
  this._adapter.notifyChange(this.data);
119
118
  this._adapter.forceUpdate();
120
119
  }
121
- // in order to solve bytedance internal issue-289
120
+ // in order to slove byted-issue-289
122
121
  registerArrayField(arrayFieldPath, val) {
123
122
  this.updateArrayField(arrayFieldPath, {
124
123
  updateKey: new Date().valueOf(),
@@ -610,8 +609,7 @@ class FormFoundation extends _foundation.default {
610
609
  }),
611
610
  submitForm: () => this.submit(),
612
611
  getFieldExist: field => this.getFieldExist(field),
613
- scrollToField: (field, scrollOpts) => this.scrollToField(field, scrollOpts),
614
- scrollToError: opts => this.scrollToError(opts)
612
+ scrollToField: (field, scrollOpts) => this.scrollToField(field, scrollOpts)
615
613
  });
616
614
  }
617
615
  getFormState() {
@@ -686,8 +684,8 @@ class FormFoundation extends _foundation.default {
686
684
  const errorDOM = this._adapter.getAllErrorDOM();
687
685
  if (errorDOM && errorDOM.length) {
688
686
  try {
689
- const fieldDOM = errorDOM[0].parentNode.parentNode;
690
- (0, _scrollIntoViewIfNeeded.default)(fieldDOM, scrollOpts);
687
+ const fieldDom = errorDOM[0].parentNode.parentNode;
688
+ (0, _scrollIntoViewIfNeeded.default)(fieldDom, scrollOpts);
691
689
  } catch (error) {}
692
690
  }
693
691
  }
@@ -701,36 +699,5 @@ class FormFoundation extends _foundation.default {
701
699
  (0, _scrollIntoViewIfNeeded.default)(fieldDOM, scrollOpts);
702
700
  }
703
701
  }
704
- scrollToError(config) {
705
- let scrollOpts = config && config.scrollOpts ? config.scrollOpts : {
706
- behavior: 'smooth',
707
- block: 'start'
708
- };
709
- let field = config && config.field;
710
- let index = config && config.index;
711
- let fieldDOM, errorDOM;
712
- if (typeof index === 'number') {
713
- const allErrorDOM = this._adapter.getAllErrorDOM();
714
- let errorDOM = allErrorDOM[index];
715
- if (errorDOM) {
716
- fieldDOM = errorDOM.parentNode.parentNode;
717
- }
718
- } else if (field) {
719
- // If field is specified, find the error dom of the corresponding field
720
- errorDOM = this._adapter.getFieldErrorDOM(field);
721
- if (errorDOM) {
722
- fieldDOM = errorDOM.parentNode.parentNode;
723
- }
724
- } else if (typeof field === 'undefined') {
725
- // If field is not specified, find all error doms and scroll to the first one
726
- let allErrorDOM = this._adapter.getAllErrorDOM();
727
- if (allErrorDOM && allErrorDOM.length) {
728
- fieldDOM = allErrorDOM[0].parentNode.parentNode;
729
- }
730
- }
731
- if (fieldDOM) {
732
- (0, _scrollIntoViewIfNeeded.default)(fieldDOM, scrollOpts);
733
- }
734
- }
735
702
  }
736
703
  exports.default = FormFoundation;
@@ -16,7 +16,6 @@ export interface BaseFormAdapter<P = Record<string, any>, S = Record<string, any
16
16
  getFormProps: (keys: undefined | string | Array<string>) => any;
17
17
  getAllErrorDOM: () => NodeList;
18
18
  getFieldDOM: (field: string) => Node;
19
- getFieldErrorDOM: (field: string) => Node;
20
19
  initFormId: () => void;
21
20
  }
22
21
  export type AllErrors<T> = T extends Record<string, any> ? {
@@ -36,11 +35,6 @@ export type FieldPath<T> = T extends object ? {
36
35
  [K in keyof T]: T[K] extends object ? `${string & K}.${FieldPath<T[K]>}` | `${string & K}` : `${string & K}`;
37
36
  }[keyof T] : never;
38
37
  export type FieldPathValue<T, P extends FieldPath<T>> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? Rest extends FieldPath<T[K]> ? FieldPathValue<T[K], Rest> : never : never : P extends keyof T ? T[P] : never;
39
- export type ScrollToErrorOptions<K> = {
40
- field?: K;
41
- index?: number;
42
- scrollConfig?: ScrollIntoViewOptions;
43
- };
44
38
  export interface BaseFormApi<T extends object = any> {
45
39
  /** get value of field */
46
40
  getValue: <P extends FieldPath<T>>(field?: P) => FieldPathValue<T, P>;
@@ -72,7 +66,6 @@ export interface BaseFormApi<T extends object = any> {
72
66
  /** set value of multiple fields */
73
67
  setValues: (fieldsValue: Partial<T>, config?: setValuesConfig) => void;
74
68
  scrollToField: <K extends keyof T>(field: K, scrollConfig?: ScrollIntoViewOptions) => void;
75
- scrollToError: <K extends keyof T>(config?: ScrollToErrorOptions<K>) => void;
76
69
  }
77
70
  export interface CallOpts {
78
71
  [x: string]: any;
@@ -9,8 +9,6 @@ declare const strings: {
9
9
  readonly MODE_SELECT: "select";
10
10
  readonly MODE_AUTOCOMPLETE: "autoComplete";
11
11
  readonly STATUS: readonly ["default", "error", "warning", "success"];
12
- readonly SEARCH_POSITION_TRIGGER: "trigger";
13
- readonly SEARCH_POSITION_DROPDOWN: "dropdown";
14
12
  };
15
13
  declare const numbers: {
16
14
  LIST_HEIGHT: number;
@@ -18,9 +18,7 @@ const strings = {
18
18
  MODE_SELECT: 'select',
19
19
  MODE_AUTOCOMPLETE: 'autoComplete',
20
20
  // MODE_TAGS: 'tags',
21
- STATUS: _constants.VALIDATE_STATUS,
22
- SEARCH_POSITION_TRIGGER: 'trigger',
23
- SEARCH_POSITION_DROPDOWN: 'dropdown'
21
+ STATUS: _constants.VALIDATE_STATUS
24
22
  };
25
23
  exports.strings = strings;
26
24
  const numbers = {
@@ -11,7 +11,7 @@ export interface SelectAdapter<P = Record<string, any>, S = Record<string, any>>
11
11
  rePositionDropdown(): void;
12
12
  updateFocusIndex(index: number): void;
13
13
  updateSelection(selection: Map<any, any>): void;
14
- openMenu(cb?: () => void): void;
14
+ openMenu(): void;
15
15
  notifyDropdownVisibleChange(visible: boolean): void;
16
16
  registerClickOutsideHandler(event: any): void;
17
17
  toggleInputShow(show: boolean, cb: () => void): void;
@@ -23,7 +23,6 @@ export interface SelectAdapter<P = Record<string, any>, S = Record<string, any>>
23
23
  notifyClear(): void;
24
24
  updateInputValue(inputValue: string): void;
25
25
  focusInput(): void;
26
- focusDropdownInput(): void;
27
26
  notifySearch(inputValue: string, event?: any): void;
28
27
  registerKeyDown(handler: () => void): void;
29
28
  unregisterKeyDown(): void;
@@ -14,7 +14,6 @@ var _warning = _interopRequireDefault(require("../utils/warning"));
14
14
  var _isNullOrUndefined = _interopRequireDefault(require("../utils/isNullOrUndefined"));
15
15
  var _isEnterPress = _interopRequireDefault(require("../utils/isEnterPress"));
16
16
  var _a11y = require("../utils/a11y");
17
- var _constants = require("./constants");
18
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -346,15 +345,7 @@ class SelectFoundation extends _foundation.default {
346
345
  // whether it is a filter or not, isFocus is guaranteed to be true when open
347
346
  this._adapter.updateFocusState(true);
348
347
  }
349
- this._adapter.openMenu(() => {
350
- const {
351
- searchPosition,
352
- autoFocus
353
- } = this.getProps();
354
- if (autoFocus && searchPosition === _constants.strings.SEARCH_POSITION_DROPDOWN) {
355
- this._adapter.focusDropdownInput();
356
- }
357
- });
348
+ this._adapter.openMenu();
358
349
  this._setDropdownWidth();
359
350
  this._adapter.notifyDropdownVisibleChange(true);
360
351
  this.bindKeyBoardEvent();
@@ -724,8 +715,6 @@ class SelectFoundation extends _foundation.default {
724
715
  this._adapter.unregisterKeyDown();
725
716
  }
726
717
  }
727
- // When searchPosition is trigger, the keyboard events bind to the outer trigger div
728
- // When searchPosition is dropdown, the popup and the outer trigger div are not parent- child relationships, keyboard events bind to the dorpdown input
729
718
  _handleKeyDown(event) {
730
719
  const key = event.keyCode;
731
720
  const {
@@ -1067,10 +1056,9 @@ class SelectFoundation extends _foundation.default {
1067
1056
  }
1068
1057
  handleClearClick(e) {
1069
1058
  const {
1070
- filter,
1071
- searchPosition
1059
+ filter
1072
1060
  } = this.getProps();
1073
- if (filter && searchPosition === _constants.strings.SEARCH_POSITION_TRIGGER) {
1061
+ if (filter) {
1074
1062
  this.clearInput(e);
1075
1063
  }
1076
1064
  // after click showClear button, the select need to be focused
@@ -488,15 +488,6 @@
488
488
  border-color: var(--semi-color-warning);
489
489
  }
490
490
 
491
- .semi-select-dropdown-search-wrapper {
492
- padding-top: 8px;
493
- padding-right: 12px;
494
- padding-bottom: 8px;
495
- padding-top: 8px;
496
- padding-left: 12px;
497
- border-bottom: 1px solid transparent;
498
- }
499
-
500
491
  .semi-rtl .semi-select,
501
492
  .semi-portal-rtl .semi-select {
502
493
  direction: rtl;
@@ -548,13 +548,4 @@ $overflowList: #{$prefix}-overflow-list;
548
548
  }
549
549
 
550
550
 
551
- .#{$module}-dropdown-search-wrapper {
552
- padding-top: $spacing-select_dropdown_input_paddingTop;
553
- padding-right: $spacing-select_dropdown_input_paddingRight;
554
- padding-bottom: $spacing-select_dropdown_input_paddingBottom;
555
- padding-top: $spacing-select_dropdown_input_paddingTop;
556
- padding-left: $spacing-select_dropdown_input_paddingLeft;
557
- border-bottom: 1px solid $color-select_dropdown_input-border;
558
- }
559
-
560
- @import './rtl.scss';
551
+ @import './rtl.scss';
@@ -8,8 +8,6 @@ $color-select-border-hover: $color-select-border-default; // 选择器输入框
8
8
  $color-select-border-active: var(--semi-color-focus-border); // 选择器输入框描边颜色 - 按下态
9
9
  $color-select-border-focus: $color-select-border-active;// 选择器输入框描边颜色 - 选中态
10
10
 
11
- $color-select_dropdown_input-border: $color-select-border-default; // 下拉搜索框底部描边颜色
12
-
13
11
  $color-select_warning-bg-default: var(--semi-color-warning-light-default); // 警示选择器输入框背景色 - 默认态
14
12
  $color-select_warning-border-default: var(--semi-color-warning-light-default); // 警示选择器输入框描边颜色 - 默认态
15
13
  $color-select_warning-bg-hover: var(--semi-color-warning-light-hover); // 警示选择器输入框背景色 - 悬停态
@@ -111,11 +109,6 @@ $spacing-select_option_list-paddingRight: 0px; // 选择器内容区右侧内边
111
109
  $spacing-select_option_list-paddingBottom: $spacing-extra-tight; // 选择器内容区底部内边距
112
110
  $spacing-select_option_list-paddingLeft: 0px; // 选择器内容区左侧内边距
113
111
 
114
- $spacing-select_dropdown_input_paddingTop: 8px; // 下拉搜索框顶部内边距
115
- $spacing-select_dropdown_input_paddingBottom: 8px; // 下拉搜索框底部内边距
116
- $spacing-select_dropdown_input_paddingRight: 12px; // 下拉搜索框右侧内边距
117
- $spacing-select_dropdown_input_paddingLeft: 12px; // 下拉搜索框左侧内边距
118
-
119
112
  // Radius
120
113
  $radius-select: var(--semi-border-radius-small); // 选择器输入框圆角
121
114
  $radius-select_option: 0px; // 选择器待选项圆角
@@ -17,7 +17,6 @@ declare const strings: {
17
17
  readonly SORT_DIRECTIONS: readonly ["ascend", "descend"];
18
18
  readonly FIXED_SET: readonly [false, true, "left", "right"];
19
19
  readonly ALIGNS: readonly ["left", "right", "center"];
20
- readonly JUSTIFY_CONTENT: readonly ["flex-start", "flex-end", "center"];
21
20
  readonly SCROLL_HORIZONTAL_POSITIONS: readonly ["left", "middle", "right"];
22
21
  readonly DEFAULT_KEY_COLUMN_SELECTION: "column-selection";
23
22
  readonly DEFAULT_KEY_COLUMN_EXPAND: "column-expand";
@@ -25,7 +25,6 @@ const strings = {
25
25
  SORT_DIRECTIONS: ['ascend', 'descend'],
26
26
  FIXED_SET: [false, true, 'left', 'right'],
27
27
  ALIGNS: ['left', 'right', 'center'],
28
- JUSTIFY_CONTENT: ['flex-start', 'flex-end', 'center'],
29
28
  SCROLL_HORIZONTAL_POSITIONS: ['left', 'middle', 'right'],
30
29
  DEFAULT_KEY_COLUMN_SELECTION: 'column-selection',
31
30
  DEFAULT_KEY_COLUMN_EXPAND: 'column-expand',
@@ -101,5 +101,4 @@ export declare function isTreeTable({ dataSource, childrenRecordName }: {
101
101
  childrenRecordName?: string;
102
102
  }): boolean;
103
103
  export declare function getRTLAlign(align: typeof strings.ALIGNS[number], direction?: 'ltr' | 'rtl'): typeof strings.ALIGNS[number];
104
- export declare function getRTLFlexAlign(align: typeof strings.ALIGNS[number], direction?: 'ltr' | 'rtl'): typeof strings.JUSTIFY_CONTENT[number];
105
104
  export declare function shouldShowEllipsisTitle(ellipsis: BaseEllipsis): true;
@@ -18,7 +18,6 @@ exports.getColumnKey = getColumnKey;
18
18
  exports.getColumnsByLevel = getColumnsByLevel;
19
19
  exports.getDefaultVirtualizedRowConfig = getDefaultVirtualizedRowConfig;
20
20
  exports.getRTLAlign = getRTLAlign;
21
- exports.getRTLFlexAlign = getRTLFlexAlign;
22
21
  exports.getRecord = getRecord;
23
22
  exports.getRecordChildren = getRecordChildren;
24
23
  exports.getRecordKey = getRecordKey;
@@ -479,27 +478,6 @@ function getRTLAlign(align, direction) {
479
478
  }
480
479
  return align;
481
480
  }
482
- function getRTLFlexAlign(align, direction) {
483
- if (direction === 'rtl') {
484
- switch (align) {
485
- case 'left':
486
- return 'flex-end';
487
- case 'right':
488
- return 'flex-start';
489
- default:
490
- return align;
491
- }
492
- } else {
493
- switch (align) {
494
- case 'left':
495
- return 'flex-start';
496
- case 'right':
497
- return 'flex-end';
498
- default:
499
- return align;
500
- }
501
- }
502
- }
503
481
  function shouldShowEllipsisTitle(ellipsis) {
504
482
  const shouldShowTitle = ellipsis === true || (0, _get2.default)(ellipsis, 'showTitle', true);
505
483
  return shouldShowTitle;
@@ -10,7 +10,7 @@ export interface TooltipAdapter<P = Record<string, any>, S = Record<string, any>
10
10
  notifyVisibleChange(isVisible: any): void;
11
11
  getPopupContainerRect(): PopupContainerDOMRect;
12
12
  containerIsBody(): boolean;
13
- off(arg0: string, arg1?: () => void): void;
13
+ off(arg0: string): void;
14
14
  canMotion(): boolean;
15
15
  registerScrollHandler(arg: () => Record<string, any>): void;
16
16
  unregisterScrollHandler(): void;
@@ -48,7 +48,6 @@ export interface TooltipAdapter<P = Record<string, any>, S = Record<string, any>
48
48
  notifyEscKeydown(event: any): void;
49
49
  getTriggerNode(): any;
50
50
  setId(): void;
51
- getTriggerDOM(): HTMLElement | null;
52
51
  }
53
52
  export type Position = ArrayElement<typeof strings.POSITION_SET>;
54
53
  export interface PopupContainerDOMRect extends DOMRectLikeType {
@@ -82,16 +82,6 @@ class Tooltip extends _foundation.default {
82
82
  this._adapter.on('portalInserted', () => {
83
83
  this.calcPosition();
84
84
  });
85
- if (trigger === "hover") {
86
- const checkTriggerIsHover = () => {
87
- const triggerDOM = this._adapter.getTriggerDOM();
88
- if (trigger && !triggerDOM.matches(":hover")) {
89
- this.hide();
90
- }
91
- this._adapter.off("portalInserted", checkTriggerIsHover);
92
- };
93
- this._adapter.on('portalInserted', checkTriggerIsHover);
94
- }
95
85
  this._adapter.on('positionUpdated', () => {
96
86
  this._togglePortalVisible(true);
97
87
  });
@@ -161,13 +161,12 @@ class TreeFoundation extends _foundation.default {
161
161
  const {
162
162
  leafOnly,
163
163
  checkRelation,
164
- keyMaps,
165
- autoMergeValue
164
+ keyMaps
166
165
  } = this.getProps();
167
166
  let value;
168
167
  let keyList = [];
169
168
  if (checkRelation === 'related') {
170
- keyList = autoMergeValue ? (0, _treeUtil.normalizeKeyList)(key, keyEntities, leafOnly, true) : key;
169
+ keyList = (0, _treeUtil.normalizeKeyList)(key, keyEntities, leafOnly, true);
171
170
  } else if (checkRelation === 'unRelated') {
172
171
  keyList = key;
173
172
  }
@@ -239,12 +239,11 @@ class TreeSelectFoundation extends _foundation.default {
239
239
  const {
240
240
  leafOnly,
241
241
  checkRelation,
242
- keyMaps,
243
- autoMergeValue
242
+ keyMaps
244
243
  } = this.getProps();
245
244
  let keyList = [];
246
245
  if (checkRelation === 'related') {
247
- keyList = autoMergeValue ? (0, _treeUtil.normalizeKeyList)(key, keyEntities, leafOnly, true) : key;
246
+ keyList = (0, _treeUtil.normalizeKeyList)(key, keyEntities, leafOnly, true);
248
247
  } else if (checkRelation === 'unRelated') {
249
248
  keyList = key;
250
249
  }
@@ -50,9 +50,7 @@ class Event {
50
50
  if (!this._eventMap.has(event)) {
51
51
  return false;
52
52
  }
53
- const callbacks = [...this._eventMap.get(event)];
54
- // clone to avoid someone writing the logic of deleting callback in callbacks into his or her callback code, for example the once func above
55
- callbacks.forEach(callback => callback(...args));
53
+ this._eventMap.get(event).forEach(callback => callback(...args));
56
54
  return true;
57
55
  }
58
56
  }
@@ -2,11 +2,6 @@ import BaseFoundation from '../base/foundation';
2
2
  import { Options as ScrollIntoViewOptions } from 'scroll-into-view-if-needed';
3
3
  import { BaseFormAdapter, FormState, CallOpts, FieldState, FieldStaff, ComponentProps, setValuesConfig, ArrayFieldStaff } from './interface';
4
4
  export type { BaseFormAdapter };
5
- type ScrollToErrorOpts = {
6
- field?: string;
7
- index?: number;
8
- scrollOpts?: ScrollIntoViewOptions;
9
- };
10
5
  export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
11
6
  data: FormState;
12
7
  fields: Map<string, FieldStaff>;
@@ -90,7 +85,6 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
90
85
  submitForm: () => void;
91
86
  getFieldExist: (field: string) => boolean;
92
87
  scrollToField: (field: string, scrollOpts?: ScrollIntoViewOptions) => void;
93
- scrollToError: (opts?: ScrollToErrorOpts) => void;
94
88
  setValue: (field: string, value: any, opts: CallOpts) => void;
95
89
  setError: (field: string, error: any, opts: CallOpts) => void;
96
90
  setTouched: (field: string, isTouched: boolean, opts: CallOpts) => void;
@@ -104,5 +98,4 @@ export default class FormFoundation extends BaseFoundation<BaseFormAdapter> {
104
98
  _autoScroll(timeout?: boolean | number): void;
105
99
  _getErrorFieldAndScroll(scrollOpts?: ScrollIntoViewOptions | boolean): void;
106
100
  scrollToField(field: string, scrollOpts?: ScrollIntoViewOptions<any>): void;
107
- scrollToError(config?: ScrollToErrorOpts): void;
108
101
  }
@@ -56,7 +56,6 @@ export default class FormFoundation extends BaseFoundation {
56
56
  this.getFormProps = this.getFormProps.bind(this);
57
57
  this.getFieldExist = this.getFieldExist.bind(this);
58
58
  this.scrollToField = this.scrollToField.bind(this);
59
- this.scrollToError = this.scrollToError.bind(this);
60
59
  }
61
60
  init() {
62
61
  this._adapter.initFormId();
@@ -109,7 +108,7 @@ export default class FormFoundation extends BaseFoundation {
109
108
  this._adapter.notifyChange(this.data);
110
109
  this._adapter.forceUpdate();
111
110
  }
112
- // in order to solve bytedance internal issue-289
111
+ // in order to slove byted-issue-289
113
112
  registerArrayField(arrayFieldPath, val) {
114
113
  this.updateArrayField(arrayFieldPath, {
115
114
  updateKey: new Date().valueOf(),
@@ -601,8 +600,7 @@ export default class FormFoundation extends BaseFoundation {
601
600
  }),
602
601
  submitForm: () => this.submit(),
603
602
  getFieldExist: field => this.getFieldExist(field),
604
- scrollToField: (field, scrollOpts) => this.scrollToField(field, scrollOpts),
605
- scrollToError: opts => this.scrollToError(opts)
603
+ scrollToField: (field, scrollOpts) => this.scrollToField(field, scrollOpts)
606
604
  });
607
605
  }
608
606
  getFormState() {
@@ -677,8 +675,8 @@ export default class FormFoundation extends BaseFoundation {
677
675
  const errorDOM = this._adapter.getAllErrorDOM();
678
676
  if (errorDOM && errorDOM.length) {
679
677
  try {
680
- const fieldDOM = errorDOM[0].parentNode.parentNode;
681
- scrollIntoView(fieldDOM, scrollOpts);
678
+ const fieldDom = errorDOM[0].parentNode.parentNode;
679
+ scrollIntoView(fieldDom, scrollOpts);
682
680
  } catch (error) {}
683
681
  }
684
682
  }
@@ -692,35 +690,4 @@ export default class FormFoundation extends BaseFoundation {
692
690
  scrollIntoView(fieldDOM, scrollOpts);
693
691
  }
694
692
  }
695
- scrollToError(config) {
696
- let scrollOpts = config && config.scrollOpts ? config.scrollOpts : {
697
- behavior: 'smooth',
698
- block: 'start'
699
- };
700
- let field = config && config.field;
701
- let index = config && config.index;
702
- let fieldDOM, errorDOM;
703
- if (typeof index === 'number') {
704
- const allErrorDOM = this._adapter.getAllErrorDOM();
705
- let errorDOM = allErrorDOM[index];
706
- if (errorDOM) {
707
- fieldDOM = errorDOM.parentNode.parentNode;
708
- }
709
- } else if (field) {
710
- // If field is specified, find the error dom of the corresponding field
711
- errorDOM = this._adapter.getFieldErrorDOM(field);
712
- if (errorDOM) {
713
- fieldDOM = errorDOM.parentNode.parentNode;
714
- }
715
- } else if (typeof field === 'undefined') {
716
- // If field is not specified, find all error doms and scroll to the first one
717
- let allErrorDOM = this._adapter.getAllErrorDOM();
718
- if (allErrorDOM && allErrorDOM.length) {
719
- fieldDOM = allErrorDOM[0].parentNode.parentNode;
720
- }
721
- }
722
- if (fieldDOM) {
723
- scrollIntoView(fieldDOM, scrollOpts);
724
- }
725
- }
726
693
  }
@@ -16,7 +16,6 @@ export interface BaseFormAdapter<P = Record<string, any>, S = Record<string, any
16
16
  getFormProps: (keys: undefined | string | Array<string>) => any;
17
17
  getAllErrorDOM: () => NodeList;
18
18
  getFieldDOM: (field: string) => Node;
19
- getFieldErrorDOM: (field: string) => Node;
20
19
  initFormId: () => void;
21
20
  }
22
21
  export type AllErrors<T> = T extends Record<string, any> ? {
@@ -36,11 +35,6 @@ export type FieldPath<T> = T extends object ? {
36
35
  [K in keyof T]: T[K] extends object ? `${string & K}.${FieldPath<T[K]>}` | `${string & K}` : `${string & K}`;
37
36
  }[keyof T] : never;
38
37
  export type FieldPathValue<T, P extends FieldPath<T>> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? Rest extends FieldPath<T[K]> ? FieldPathValue<T[K], Rest> : never : never : P extends keyof T ? T[P] : never;
39
- export type ScrollToErrorOptions<K> = {
40
- field?: K;
41
- index?: number;
42
- scrollConfig?: ScrollIntoViewOptions;
43
- };
44
38
  export interface BaseFormApi<T extends object = any> {
45
39
  /** get value of field */
46
40
  getValue: <P extends FieldPath<T>>(field?: P) => FieldPathValue<T, P>;
@@ -72,7 +66,6 @@ export interface BaseFormApi<T extends object = any> {
72
66
  /** set value of multiple fields */
73
67
  setValues: (fieldsValue: Partial<T>, config?: setValuesConfig) => void;
74
68
  scrollToField: <K extends keyof T>(field: K, scrollConfig?: ScrollIntoViewOptions) => void;
75
- scrollToError: <K extends keyof T>(config?: ScrollToErrorOptions<K>) => void;
76
69
  }
77
70
  export interface CallOpts {
78
71
  [x: string]: any;
@@ -9,8 +9,6 @@ declare const strings: {
9
9
  readonly MODE_SELECT: "select";
10
10
  readonly MODE_AUTOCOMPLETE: "autoComplete";
11
11
  readonly STATUS: readonly ["default", "error", "warning", "success"];
12
- readonly SEARCH_POSITION_TRIGGER: "trigger";
13
- readonly SEARCH_POSITION_DROPDOWN: "dropdown";
14
12
  };
15
13
  declare const numbers: {
16
14
  LIST_HEIGHT: number;
@@ -11,9 +11,7 @@ const strings = {
11
11
  MODE_SELECT: 'select',
12
12
  MODE_AUTOCOMPLETE: 'autoComplete',
13
13
  // MODE_TAGS: 'tags',
14
- STATUS: VALIDATE_STATUS,
15
- SEARCH_POSITION_TRIGGER: 'trigger',
16
- SEARCH_POSITION_DROPDOWN: 'dropdown'
14
+ STATUS: VALIDATE_STATUS
17
15
  };
18
16
  const numbers = {
19
17
  LIST_HEIGHT: 270
@@ -11,7 +11,7 @@ export interface SelectAdapter<P = Record<string, any>, S = Record<string, any>>
11
11
  rePositionDropdown(): void;
12
12
  updateFocusIndex(index: number): void;
13
13
  updateSelection(selection: Map<any, any>): void;
14
- openMenu(cb?: () => void): void;
14
+ openMenu(): void;
15
15
  notifyDropdownVisibleChange(visible: boolean): void;
16
16
  registerClickOutsideHandler(event: any): void;
17
17
  toggleInputShow(show: boolean, cb: () => void): void;
@@ -23,7 +23,6 @@ export interface SelectAdapter<P = Record<string, any>, S = Record<string, any>>
23
23
  notifyClear(): void;
24
24
  updateInputValue(inputValue: string): void;
25
25
  focusInput(): void;
26
- focusDropdownInput(): void;
27
26
  notifySearch(inputValue: string, event?: any): void;
28
27
  registerKeyDown(handler: () => void): void;
29
28
  unregisterKeyDown(): void;
@@ -16,7 +16,6 @@ import warning from '../utils/warning';
16
16
  import isNullOrUndefined from '../utils/isNullOrUndefined';
17
17
  import isEnterPress from '../utils/isEnterPress';
18
18
  import { handlePrevent } from '../utils/a11y';
19
- import { strings } from './constants';
20
19
  export default class SelectFoundation extends BaseFoundation {
21
20
  constructor(adapter) {
22
21
  super(Object.assign({}, adapter));
@@ -337,15 +336,7 @@ export default class SelectFoundation extends BaseFoundation {
337
336
  // whether it is a filter or not, isFocus is guaranteed to be true when open
338
337
  this._adapter.updateFocusState(true);
339
338
  }
340
- this._adapter.openMenu(() => {
341
- const {
342
- searchPosition,
343
- autoFocus
344
- } = this.getProps();
345
- if (autoFocus && searchPosition === strings.SEARCH_POSITION_DROPDOWN) {
346
- this._adapter.focusDropdownInput();
347
- }
348
- });
339
+ this._adapter.openMenu();
349
340
  this._setDropdownWidth();
350
341
  this._adapter.notifyDropdownVisibleChange(true);
351
342
  this.bindKeyBoardEvent();
@@ -715,8 +706,6 @@ export default class SelectFoundation extends BaseFoundation {
715
706
  this._adapter.unregisterKeyDown();
716
707
  }
717
708
  }
718
- // When searchPosition is trigger, the keyboard events bind to the outer trigger div
719
- // When searchPosition is dropdown, the popup and the outer trigger div are not parent- child relationships, keyboard events bind to the dorpdown input
720
709
  _handleKeyDown(event) {
721
710
  const key = event.keyCode;
722
711
  const {
@@ -1058,10 +1047,9 @@ export default class SelectFoundation extends BaseFoundation {
1058
1047
  }
1059
1048
  handleClearClick(e) {
1060
1049
  const {
1061
- filter,
1062
- searchPosition
1050
+ filter
1063
1051
  } = this.getProps();
1064
- if (filter && searchPosition === strings.SEARCH_POSITION_TRIGGER) {
1052
+ if (filter) {
1065
1053
  this.clearInput(e);
1066
1054
  }
1067
1055
  // after click showClear button, the select need to be focused
@@ -488,15 +488,6 @@
488
488
  border-color: var(--semi-color-warning);
489
489
  }
490
490
 
491
- .semi-select-dropdown-search-wrapper {
492
- padding-top: 8px;
493
- padding-right: 12px;
494
- padding-bottom: 8px;
495
- padding-top: 8px;
496
- padding-left: 12px;
497
- border-bottom: 1px solid transparent;
498
- }
499
-
500
491
  .semi-rtl .semi-select,
501
492
  .semi-portal-rtl .semi-select {
502
493
  direction: rtl;
@@ -548,13 +548,4 @@ $overflowList: #{$prefix}-overflow-list;
548
548
  }
549
549
 
550
550
 
551
- .#{$module}-dropdown-search-wrapper {
552
- padding-top: $spacing-select_dropdown_input_paddingTop;
553
- padding-right: $spacing-select_dropdown_input_paddingRight;
554
- padding-bottom: $spacing-select_dropdown_input_paddingBottom;
555
- padding-top: $spacing-select_dropdown_input_paddingTop;
556
- padding-left: $spacing-select_dropdown_input_paddingLeft;
557
- border-bottom: 1px solid $color-select_dropdown_input-border;
558
- }
559
-
560
- @import './rtl.scss';
551
+ @import './rtl.scss';
@@ -8,8 +8,6 @@ $color-select-border-hover: $color-select-border-default; // 选择器输入框
8
8
  $color-select-border-active: var(--semi-color-focus-border); // 选择器输入框描边颜色 - 按下态
9
9
  $color-select-border-focus: $color-select-border-active;// 选择器输入框描边颜色 - 选中态
10
10
 
11
- $color-select_dropdown_input-border: $color-select-border-default; // 下拉搜索框底部描边颜色
12
-
13
11
  $color-select_warning-bg-default: var(--semi-color-warning-light-default); // 警示选择器输入框背景色 - 默认态
14
12
  $color-select_warning-border-default: var(--semi-color-warning-light-default); // 警示选择器输入框描边颜色 - 默认态
15
13
  $color-select_warning-bg-hover: var(--semi-color-warning-light-hover); // 警示选择器输入框背景色 - 悬停态
@@ -111,11 +109,6 @@ $spacing-select_option_list-paddingRight: 0px; // 选择器内容区右侧内边
111
109
  $spacing-select_option_list-paddingBottom: $spacing-extra-tight; // 选择器内容区底部内边距
112
110
  $spacing-select_option_list-paddingLeft: 0px; // 选择器内容区左侧内边距
113
111
 
114
- $spacing-select_dropdown_input_paddingTop: 8px; // 下拉搜索框顶部内边距
115
- $spacing-select_dropdown_input_paddingBottom: 8px; // 下拉搜索框底部内边距
116
- $spacing-select_dropdown_input_paddingRight: 12px; // 下拉搜索框右侧内边距
117
- $spacing-select_dropdown_input_paddingLeft: 12px; // 下拉搜索框左侧内边距
118
-
119
112
  // Radius
120
113
  $radius-select: var(--semi-border-radius-small); // 选择器输入框圆角
121
114
  $radius-select_option: 0px; // 选择器待选项圆角
@@ -17,7 +17,6 @@ declare const strings: {
17
17
  readonly SORT_DIRECTIONS: readonly ["ascend", "descend"];
18
18
  readonly FIXED_SET: readonly [false, true, "left", "right"];
19
19
  readonly ALIGNS: readonly ["left", "right", "center"];
20
- readonly JUSTIFY_CONTENT: readonly ["flex-start", "flex-end", "center"];
21
20
  readonly SCROLL_HORIZONTAL_POSITIONS: readonly ["left", "middle", "right"];
22
21
  readonly DEFAULT_KEY_COLUMN_SELECTION: "column-selection";
23
22
  readonly DEFAULT_KEY_COLUMN_EXPAND: "column-expand";
@@ -18,7 +18,6 @@ const strings = {
18
18
  SORT_DIRECTIONS: ['ascend', 'descend'],
19
19
  FIXED_SET: [false, true, 'left', 'right'],
20
20
  ALIGNS: ['left', 'right', 'center'],
21
- JUSTIFY_CONTENT: ['flex-start', 'flex-end', 'center'],
22
21
  SCROLL_HORIZONTAL_POSITIONS: ['left', 'middle', 'right'],
23
22
  DEFAULT_KEY_COLUMN_SELECTION: 'column-selection',
24
23
  DEFAULT_KEY_COLUMN_EXPAND: 'column-expand',
@@ -101,5 +101,4 @@ export declare function isTreeTable({ dataSource, childrenRecordName }: {
101
101
  childrenRecordName?: string;
102
102
  }): boolean;
103
103
  export declare function getRTLAlign(align: typeof strings.ALIGNS[number], direction?: 'ltr' | 'rtl'): typeof strings.ALIGNS[number];
104
- export declare function getRTLFlexAlign(align: typeof strings.ALIGNS[number], direction?: 'ltr' | 'rtl'): typeof strings.JUSTIFY_CONTENT[number];
105
104
  export declare function shouldShowEllipsisTitle(ellipsis: BaseEllipsis): true;
@@ -433,27 +433,6 @@ export function getRTLAlign(align, direction) {
433
433
  }
434
434
  return align;
435
435
  }
436
- export function getRTLFlexAlign(align, direction) {
437
- if (direction === 'rtl') {
438
- switch (align) {
439
- case 'left':
440
- return 'flex-end';
441
- case 'right':
442
- return 'flex-start';
443
- default:
444
- return align;
445
- }
446
- } else {
447
- switch (align) {
448
- case 'left':
449
- return 'flex-start';
450
- case 'right':
451
- return 'flex-end';
452
- default:
453
- return align;
454
- }
455
- }
456
- }
457
436
  export function shouldShowEllipsisTitle(ellipsis) {
458
437
  const shouldShowTitle = ellipsis === true || _get(ellipsis, 'showTitle', true);
459
438
  return shouldShowTitle;
@@ -10,7 +10,7 @@ export interface TooltipAdapter<P = Record<string, any>, S = Record<string, any>
10
10
  notifyVisibleChange(isVisible: any): void;
11
11
  getPopupContainerRect(): PopupContainerDOMRect;
12
12
  containerIsBody(): boolean;
13
- off(arg0: string, arg1?: () => void): void;
13
+ off(arg0: string): void;
14
14
  canMotion(): boolean;
15
15
  registerScrollHandler(arg: () => Record<string, any>): void;
16
16
  unregisterScrollHandler(): void;
@@ -48,7 +48,6 @@ export interface TooltipAdapter<P = Record<string, any>, S = Record<string, any>
48
48
  notifyEscKeydown(event: any): void;
49
49
  getTriggerNode(): any;
50
50
  setId(): void;
51
- getTriggerDOM(): HTMLElement | null;
52
51
  }
53
52
  export type Position = ArrayElement<typeof strings.POSITION_SET>;
54
53
  export interface PopupContainerDOMRect extends DOMRectLikeType {
@@ -75,16 +75,6 @@ export default class Tooltip extends BaseFoundation {
75
75
  this._adapter.on('portalInserted', () => {
76
76
  this.calcPosition();
77
77
  });
78
- if (trigger === "hover") {
79
- const checkTriggerIsHover = () => {
80
- const triggerDOM = this._adapter.getTriggerDOM();
81
- if (trigger && !triggerDOM.matches(":hover")) {
82
- this.hide();
83
- }
84
- this._adapter.off("portalInserted", checkTriggerIsHover);
85
- };
86
- this._adapter.on('portalInserted', checkTriggerIsHover);
87
- }
88
78
  this._adapter.on('positionUpdated', () => {
89
79
  this._togglePortalVisible(true);
90
80
  });
@@ -153,13 +153,12 @@ export default class TreeFoundation extends BaseFoundation {
153
153
  const {
154
154
  leafOnly,
155
155
  checkRelation,
156
- keyMaps,
157
- autoMergeValue
156
+ keyMaps
158
157
  } = this.getProps();
159
158
  let value;
160
159
  let keyList = [];
161
160
  if (checkRelation === 'related') {
162
- keyList = autoMergeValue ? normalizeKeyList(key, keyEntities, leafOnly, true) : key;
161
+ keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
163
162
  } else if (checkRelation === 'unRelated') {
164
163
  keyList = key;
165
164
  }
@@ -232,12 +232,11 @@ export default class TreeSelectFoundation extends BaseFoundation {
232
232
  const {
233
233
  leafOnly,
234
234
  checkRelation,
235
- keyMaps,
236
- autoMergeValue
235
+ keyMaps
237
236
  } = this.getProps();
238
237
  let keyList = [];
239
238
  if (checkRelation === 'related') {
240
- keyList = autoMergeValue ? normalizeKeyList(key, keyEntities, leafOnly, true) : key;
239
+ keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
241
240
  } else if (checkRelation === 'unRelated') {
242
241
  keyList = key;
243
242
  }
@@ -43,9 +43,7 @@ export default class Event {
43
43
  if (!this._eventMap.has(event)) {
44
44
  return false;
45
45
  }
46
- const callbacks = [...this._eventMap.get(event)];
47
- // clone to avoid someone writing the logic of deleting callback in callbacks into his or her callback code, for example the once func above
48
- callbacks.forEach(callback => callback(...args));
46
+ this._eventMap.get(event).forEach(callback => callback(...args));
49
47
  return true;
50
48
  }
51
49
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-foundation",
3
- "version": "2.61.0",
3
+ "version": "2.61.1-alpha.0",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build:lib": "node ./scripts/compileLib.js",
7
7
  "prepublishOnly": "npm run build:lib"
8
8
  },
9
9
  "dependencies": {
10
- "@douyinfe/semi-animation": "2.61.0",
10
+ "@douyinfe/semi-animation": "2.61.1-alpha.0",
11
11
  "async-validator": "^3.5.0",
12
12
  "classnames": "^2.2.6",
13
13
  "date-fns": "^2.29.3",
@@ -24,7 +24,7 @@
24
24
  "*.scss",
25
25
  "*.css"
26
26
  ],
27
- "gitHead": "8f2bdc04e4622628802f4e4469446ca275ebba8f",
27
+ "gitHead": "f71e54e9801ec5202aee97832c772ad73996fcd5",
28
28
  "devDependencies": {
29
29
  "@babel/plugin-transform-runtime": "^7.15.8",
30
30
  "@babel/preset-env": "^7.15.8",
@@ -14,8 +14,6 @@ const strings = {
14
14
  MODE_AUTOCOMPLETE: 'autoComplete',
15
15
  // MODE_TAGS: 'tags',
16
16
  STATUS: VALIDATE_STATUS,
17
- SEARCH_POSITION_TRIGGER: 'trigger',
18
- SEARCH_POSITION_DROPDOWN: 'dropdown'
19
17
  } as const;
20
18
 
21
19
  const numbers = { LIST_HEIGHT: 270 };
@@ -6,7 +6,6 @@ import isNullOrUndefined from '../utils/isNullOrUndefined';
6
6
  import { BasicOptionProps } from './optionFoundation';
7
7
  import isEnterPress from '../utils/isEnterPress';
8
8
  import { handlePrevent } from '../utils/a11y';
9
- import { strings } from './constants';
10
9
 
11
10
  export interface SelectAdapter<P = Record<string, any>, S = Record<string, any>> extends DefaultAdapter<P, S> {
12
11
  getTriggerWidth(): number;
@@ -19,7 +18,7 @@ export interface SelectAdapter<P = Record<string, any>, S = Record<string, any>>
19
18
  rePositionDropdown(): void;
20
19
  updateFocusIndex(index: number): void;
21
20
  updateSelection(selection: Map<any, any>): void;
22
- openMenu(cb?: () => void): void;
21
+ openMenu(): void;
23
22
  notifyDropdownVisibleChange(visible: boolean): void;
24
23
  registerClickOutsideHandler(event: any): void;
25
24
  toggleInputShow(show: boolean, cb: () => void): void;
@@ -31,7 +30,6 @@ export interface SelectAdapter<P = Record<string, any>, S = Record<string, any>>
31
30
  notifyClear(): void;
32
31
  updateInputValue(inputValue: string): void;
33
32
  focusInput(): void;
34
- focusDropdownInput(): void;
35
33
  notifySearch(inputValue: string, event?: any): void;
36
34
  registerKeyDown(handler: () => void): void;
37
35
  unregisterKeyDown(): void;
@@ -369,12 +367,7 @@ export default class SelectFoundation extends BaseFoundation<SelectAdapter> {
369
367
  // whether it is a filter or not, isFocus is guaranteed to be true when open
370
368
  this._adapter.updateFocusState(true);
371
369
  }
372
- this._adapter.openMenu(() => {
373
- const { searchPosition, autoFocus } = this.getProps();
374
- if (autoFocus && searchPosition === strings.SEARCH_POSITION_DROPDOWN) {
375
- this._adapter.focusDropdownInput();
376
- }
377
- });
370
+ this._adapter.openMenu();
378
371
  this._setDropdownWidth();
379
372
  this._adapter.notifyDropdownVisibleChange(true);
380
373
 
@@ -385,7 +378,6 @@ export default class SelectFoundation extends BaseFoundation<SelectAdapter> {
385
378
  this._notifyBlur(e);
386
379
  this._adapter.updateFocusState(false);
387
380
  });
388
-
389
381
  }
390
382
 
391
383
  toggle2SearchInput(isShow: boolean) {
@@ -722,8 +714,6 @@ export default class SelectFoundation extends BaseFoundation<SelectAdapter> {
722
714
  }
723
715
  }
724
716
 
725
- // When searchPosition is trigger, the keyboard events bind to the outer trigger div
726
- // When searchPosition is dropdown, the popup and the outer trigger div are not parent- child relationships, keyboard events bind to the dorpdown input
727
717
  _handleKeyDown(event: KeyboardEvent) {
728
718
  const key = event.keyCode;
729
719
  const { loading, filter, multiple, disabled } = this.getProps();
@@ -1054,8 +1044,8 @@ export default class SelectFoundation extends BaseFoundation<SelectAdapter> {
1054
1044
  }
1055
1045
 
1056
1046
  handleClearClick(e: MouseEvent) {
1057
- const { filter, searchPosition } = this.getProps();
1058
- if (filter && searchPosition === strings.SEARCH_POSITION_TRIGGER) {
1047
+ const { filter } = this.getProps();
1048
+ if (filter) {
1059
1049
  this.clearInput(e);
1060
1050
  }
1061
1051
  // after click showClear button, the select need to be focused
@@ -548,13 +548,4 @@ $overflowList: #{$prefix}-overflow-list;
548
548
  }
549
549
 
550
550
 
551
- .#{$module}-dropdown-search-wrapper {
552
- padding-top: $spacing-select_dropdown_input_paddingTop;
553
- padding-right: $spacing-select_dropdown_input_paddingRight;
554
- padding-bottom: $spacing-select_dropdown_input_paddingBottom;
555
- padding-top: $spacing-select_dropdown_input_paddingTop;
556
- padding-left: $spacing-select_dropdown_input_paddingLeft;
557
- border-bottom: 1px solid $color-select_dropdown_input-border;
558
- }
559
-
560
- @import './rtl.scss';
551
+ @import './rtl.scss';
@@ -8,8 +8,6 @@ $color-select-border-hover: $color-select-border-default; // 选择器输入框
8
8
  $color-select-border-active: var(--semi-color-focus-border); // 选择器输入框描边颜色 - 按下态
9
9
  $color-select-border-focus: $color-select-border-active;// 选择器输入框描边颜色 - 选中态
10
10
 
11
- $color-select_dropdown_input-border: $color-select-border-default; // 下拉搜索框底部描边颜色
12
-
13
11
  $color-select_warning-bg-default: var(--semi-color-warning-light-default); // 警示选择器输入框背景色 - 默认态
14
12
  $color-select_warning-border-default: var(--semi-color-warning-light-default); // 警示选择器输入框描边颜色 - 默认态
15
13
  $color-select_warning-bg-hover: var(--semi-color-warning-light-hover); // 警示选择器输入框背景色 - 悬停态
@@ -111,11 +109,6 @@ $spacing-select_option_list-paddingRight: 0px; // 选择器内容区右侧内边
111
109
  $spacing-select_option_list-paddingBottom: $spacing-extra-tight; // 选择器内容区底部内边距
112
110
  $spacing-select_option_list-paddingLeft: 0px; // 选择器内容区左侧内边距
113
111
 
114
- $spacing-select_dropdown_input_paddingTop: 8px; // 下拉搜索框顶部内边距
115
- $spacing-select_dropdown_input_paddingBottom: 8px; // 下拉搜索框底部内边距
116
- $spacing-select_dropdown_input_paddingRight: 12px; // 下拉搜索框右侧内边距
117
- $spacing-select_dropdown_input_paddingLeft: 12px; // 下拉搜索框左侧内边距
118
-
119
112
  // Radius
120
113
  $radius-select: var(--semi-border-radius-small); // 选择器输入框圆角
121
114
  $radius-select_option: 0px; // 选择器待选项圆角
@@ -20,7 +20,6 @@ const strings = {
20
20
  SORT_DIRECTIONS: ['ascend', 'descend'],
21
21
  FIXED_SET: [false, true, 'left', 'right'],
22
22
  ALIGNS: ['left', 'right', 'center'],
23
- JUSTIFY_CONTENT: ['flex-start', 'flex-end', 'center'],
24
23
  SCROLL_HORIZONTAL_POSITIONS: ['left', 'middle', 'right'],
25
24
  DEFAULT_KEY_COLUMN_SELECTION: 'column-selection',
26
25
  DEFAULT_KEY_COLUMN_EXPAND: 'column-expand',
package/table/utils.ts CHANGED
@@ -479,31 +479,6 @@ export function getRTLAlign(align: typeof strings.ALIGNS[number], direction?: 'l
479
479
  return align;
480
480
  }
481
481
 
482
- export function getRTLFlexAlign(align: typeof strings.ALIGNS[number], direction?: 'ltr' | 'rtl'): typeof strings.JUSTIFY_CONTENT[number] {
483
- if (direction === 'rtl') {
484
- switch (align) {
485
- case 'left':
486
- return 'flex-end';
487
- case 'right':
488
- return 'flex-start';
489
- default:
490
- return align;
491
- }
492
- }
493
- else
494
- {
495
- switch (align) {
496
- case 'left':
497
- return 'flex-start';
498
- case 'right':
499
- return 'flex-end';
500
- default:
501
- return align;
502
- }
503
- }
504
- }
505
-
506
-
507
482
  export function shouldShowEllipsisTitle(ellipsis: BaseEllipsis) {
508
483
  const shouldShowTitle = ellipsis === true || get(ellipsis, 'showTitle', true);
509
484
  return shouldShowTitle;
@@ -29,7 +29,7 @@ export interface TooltipAdapter<P = Record<string, any>, S = Record<string, any>
29
29
  notifyVisibleChange(isVisible: any): void;
30
30
  getPopupContainerRect(): PopupContainerDOMRect;
31
31
  containerIsBody(): boolean;
32
- off(arg0: string, arg1?: () => void): void;
32
+ off(arg0: string): void;
33
33
  canMotion(): boolean;
34
34
  registerScrollHandler(arg: () => Record<string, any>): void;
35
35
  unregisterScrollHandler(): void;
@@ -66,8 +66,7 @@ export interface TooltipAdapter<P = Record<string, any>, S = Record<string, any>
66
66
  setInitialFocus(): void;
67
67
  notifyEscKeydown(event: any): void;
68
68
  getTriggerNode(): any;
69
- setId(): void;
70
- getTriggerDOM(): HTMLElement|null
69
+ setId(): void
71
70
  }
72
71
 
73
72
  export type Position = ArrayElement<typeof strings.POSITION_SET>;
@@ -313,7 +312,6 @@ export default class Tooltip<P = Record<string, any>, S = Record<string, any>> e
313
312
  show = () => {
314
313
  const content = this.getProp('content');
315
314
  const trigger = this.getProp('trigger');
316
-
317
315
  const clickTriggerToHide = this.getProp('clickTriggerToHide');
318
316
  const { visible, displayNone } = this.getStates();
319
317
  if (displayNone) {
@@ -334,18 +332,6 @@ export default class Tooltip<P = Record<string, any>, S = Record<string, any>> e
334
332
  this.calcPosition();
335
333
  });
336
334
 
337
- if (trigger==="hover") {
338
- const checkTriggerIsHover = () => {
339
- const triggerDOM = this._adapter.getTriggerDOM();
340
- if (trigger && !triggerDOM.matches(":hover")) {
341
- this.hide();
342
- }
343
- this._adapter.off("portalInserted", checkTriggerIsHover);
344
- };
345
- this._adapter.on('portalInserted', checkTriggerIsHover);
346
- }
347
-
348
-
349
335
  this._adapter.on('positionUpdated', () => {
350
336
  this._togglePortalVisible(true);
351
337
  });
@@ -456,11 +456,11 @@ export default class TreeFoundation extends BaseFoundation<TreeAdapter, BasicTre
456
456
 
457
457
  notifyMultipleChange(key: string[], e: any) {
458
458
  const { keyEntities } = this.getStates();
459
- const { leafOnly, checkRelation, keyMaps, autoMergeValue } = this.getProps();
459
+ const { leafOnly, checkRelation, keyMaps } = this.getProps();
460
460
  let value;
461
461
  let keyList = [];
462
462
  if (checkRelation === 'related') {
463
- keyList = autoMergeValue ? normalizeKeyList(key, keyEntities, leafOnly, true) : key;
463
+ keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
464
464
  } else if (checkRelation === 'unRelated') {
465
465
  keyList = key;
466
466
  }
@@ -399,10 +399,10 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
399
399
 
400
400
  _notifyMultipleChange(key: string[], e: any) {
401
401
  const { keyEntities } = this.getStates();
402
- const { leafOnly, checkRelation, keyMaps, autoMergeValue } = this.getProps();
402
+ const { leafOnly, checkRelation, keyMaps } = this.getProps();
403
403
  let keyList = [];
404
404
  if (checkRelation === 'related') {
405
- keyList = autoMergeValue ? normalizeKeyList(key, keyEntities, leafOnly, true) : key;
405
+ keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
406
406
  } else if (checkRelation === 'unRelated') {
407
407
  keyList = key as string[];
408
408
  }
package/utils/Event.ts CHANGED
@@ -44,9 +44,7 @@ export default class Event {
44
44
  if (!this._eventMap.has(event)) {
45
45
  return false;
46
46
  }
47
- const callbacks = [...this._eventMap.get(event)];
48
- // clone to avoid someone writing the logic of deleting callback in callbacks into his or her callback code, for example the once func above
49
- callbacks.forEach(callback => callback(...args));
47
+ this._eventMap.get(event).forEach(callback => callback(...args));
50
48
  return true;
51
49
  }
52
50
  }