@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.
- package/form/foundation.ts +3 -40
- package/form/interface.ts +1 -9
- package/lib/cjs/form/foundation.d.ts +0 -7
- package/lib/cjs/form/foundation.js +4 -37
- package/lib/cjs/form/interface.d.ts +0 -7
- package/lib/cjs/select/constants.d.ts +0 -2
- package/lib/cjs/select/constants.js +1 -3
- package/lib/cjs/select/foundation.d.ts +1 -2
- package/lib/cjs/select/foundation.js +3 -15
- package/lib/cjs/select/select.css +0 -9
- package/lib/cjs/select/select.scss +1 -10
- package/lib/cjs/select/variables.scss +0 -7
- package/lib/cjs/table/constants.d.ts +0 -1
- package/lib/cjs/table/constants.js +0 -1
- package/lib/cjs/table/utils.d.ts +0 -1
- package/lib/cjs/table/utils.js +0 -22
- package/lib/cjs/tooltip/foundation.d.ts +1 -2
- package/lib/cjs/tooltip/foundation.js +0 -10
- package/lib/cjs/tree/foundation.js +2 -3
- package/lib/cjs/treeSelect/foundation.js +2 -3
- package/lib/cjs/utils/Event.js +1 -3
- package/lib/es/form/foundation.d.ts +0 -7
- package/lib/es/form/foundation.js +4 -37
- package/lib/es/form/interface.d.ts +0 -7
- package/lib/es/select/constants.d.ts +0 -2
- package/lib/es/select/constants.js +1 -3
- package/lib/es/select/foundation.d.ts +1 -2
- package/lib/es/select/foundation.js +3 -15
- package/lib/es/select/select.css +0 -9
- package/lib/es/select/select.scss +1 -10
- package/lib/es/select/variables.scss +0 -7
- package/lib/es/table/constants.d.ts +0 -1
- package/lib/es/table/constants.js +0 -1
- package/lib/es/table/utils.d.ts +0 -1
- package/lib/es/table/utils.js +0 -21
- package/lib/es/tooltip/foundation.d.ts +1 -2
- package/lib/es/tooltip/foundation.js +0 -10
- package/lib/es/tree/foundation.js +2 -3
- package/lib/es/treeSelect/foundation.js +2 -3
- package/lib/es/utils/Event.js +1 -3
- package/package.json +3 -3
- package/select/constants.ts +0 -2
- package/select/foundation.ts +4 -14
- package/select/select.scss +1 -10
- package/select/variables.scss +0 -7
- package/table/constants.ts +0 -1
- package/table/utils.ts +0 -25
- package/tooltip/foundation.ts +2 -16
- package/tree/foundation.ts +2 -2
- package/treeSelect/foundation.ts +2 -2
- package/utils/Event.ts +1 -3
package/form/foundation.ts
CHANGED
|
@@ -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
|
|
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
|
|
712
|
-
scrollIntoView(
|
|
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
|
|
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
|
|
690
|
-
(0, _scrollIntoViewIfNeeded.default)(
|
|
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(
|
|
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
|
|
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
|
-
|
|
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',
|
package/lib/cjs/table/utils.d.ts
CHANGED
|
@@ -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;
|
package/lib/cjs/table/utils.js
CHANGED
|
@@ -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
|
|
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 =
|
|
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 =
|
|
246
|
+
keyList = (0, _treeUtil.normalizeKeyList)(key, keyEntities, leafOnly, true);
|
|
248
247
|
} else if (checkRelation === 'unRelated') {
|
|
249
248
|
keyList = key;
|
|
250
249
|
}
|
package/lib/cjs/utils/Event.js
CHANGED
|
@@ -50,9 +50,7 @@ class Event {
|
|
|
50
50
|
if (!this._eventMap.has(event)) {
|
|
51
51
|
return false;
|
|
52
52
|
}
|
|
53
|
-
|
|
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
|
|
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
|
|
681
|
-
scrollIntoView(
|
|
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(
|
|
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
|
|
1052
|
+
if (filter) {
|
|
1065
1053
|
this.clearInput(e);
|
|
1066
1054
|
}
|
|
1067
1055
|
// after click showClear button, the select need to be focused
|
package/lib/es/select/select.css
CHANGED
|
@@ -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
|
-
|
|
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',
|
package/lib/es/table/utils.d.ts
CHANGED
|
@@ -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;
|
package/lib/es/table/utils.js
CHANGED
|
@@ -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
|
|
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 =
|
|
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 =
|
|
239
|
+
keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
|
|
241
240
|
} else if (checkRelation === 'unRelated') {
|
|
242
241
|
keyList = key;
|
|
243
242
|
}
|
package/lib/es/utils/Event.js
CHANGED
|
@@ -43,9 +43,7 @@ export default class Event {
|
|
|
43
43
|
if (!this._eventMap.has(event)) {
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
46
|
-
|
|
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": "
|
|
27
|
+
"gitHead": "f71e54e9801ec5202aee97832c772ad73996fcd5",
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@babel/plugin-transform-runtime": "^7.15.8",
|
|
30
30
|
"@babel/preset-env": "^7.15.8",
|
package/select/constants.ts
CHANGED
package/select/foundation.ts
CHANGED
|
@@ -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(
|
|
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
|
|
1058
|
-
if (filter
|
|
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
|
package/select/select.scss
CHANGED
|
@@ -548,13 +548,4 @@ $overflowList: #{$prefix}-overflow-list;
|
|
|
548
548
|
}
|
|
549
549
|
|
|
550
550
|
|
|
551
|
-
|
|
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';
|
package/select/variables.scss
CHANGED
|
@@ -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; // 选择器待选项圆角
|
package/table/constants.ts
CHANGED
|
@@ -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;
|
package/tooltip/foundation.ts
CHANGED
|
@@ -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
|
|
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
|
});
|
package/tree/foundation.ts
CHANGED
|
@@ -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
|
|
459
|
+
const { leafOnly, checkRelation, keyMaps } = this.getProps();
|
|
460
460
|
let value;
|
|
461
461
|
let keyList = [];
|
|
462
462
|
if (checkRelation === 'related') {
|
|
463
|
-
keyList =
|
|
463
|
+
keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
|
|
464
464
|
} else if (checkRelation === 'unRelated') {
|
|
465
465
|
keyList = key;
|
|
466
466
|
}
|
package/treeSelect/foundation.ts
CHANGED
|
@@ -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
|
|
402
|
+
const { leafOnly, checkRelation, keyMaps } = this.getProps();
|
|
403
403
|
let keyList = [];
|
|
404
404
|
if (checkRelation === 'related') {
|
|
405
|
-
keyList =
|
|
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
|
-
|
|
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
|
}
|