@rc-component/util 1.3.1 → 1.4.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/es/Dom/focus.d.ts +7 -0
- package/es/Dom/focus.js +26 -0
- package/lib/Dom/focus.d.ts +7 -0
- package/lib/Dom/focus.js +27 -0
- package/package.json +2 -2
package/es/Dom/focus.d.ts
CHANGED
|
@@ -6,3 +6,10 @@ export declare function clearLastFocusNode(): void;
|
|
|
6
6
|
/** @deprecated Do not use since this may failed when used in async */
|
|
7
7
|
export declare function backLastFocusNode(): void;
|
|
8
8
|
export declare function limitTabRange(node: HTMLElement, e: KeyboardEvent): void;
|
|
9
|
+
export interface InputFocusOptions extends FocusOptions {
|
|
10
|
+
cursor?: 'start' | 'end' | 'all';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Focus element and set cursor position for input/textarea elements.
|
|
14
|
+
*/
|
|
15
|
+
export declare function triggerFocus(element?: HTMLElement, option?: InputFocusOptions): void;
|
package/es/Dom/focus.js
CHANGED
|
@@ -76,4 +76,30 @@ export function limitTabRange(node, e) {
|
|
|
76
76
|
e.preventDefault();
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
+
}
|
|
80
|
+
// Used for `rc-input` `rc-textarea` `rc-input-number`
|
|
81
|
+
/**
|
|
82
|
+
* Focus element and set cursor position for input/textarea elements.
|
|
83
|
+
*/
|
|
84
|
+
export function triggerFocus(element, option) {
|
|
85
|
+
if (!element) return;
|
|
86
|
+
element.focus(option);
|
|
87
|
+
|
|
88
|
+
// Selection content
|
|
89
|
+
const {
|
|
90
|
+
cursor
|
|
91
|
+
} = option || {};
|
|
92
|
+
if (cursor && (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement)) {
|
|
93
|
+
const len = element.value.length;
|
|
94
|
+
switch (cursor) {
|
|
95
|
+
case 'start':
|
|
96
|
+
element.setSelectionRange(0, 0);
|
|
97
|
+
break;
|
|
98
|
+
case 'end':
|
|
99
|
+
element.setSelectionRange(len, len);
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
element.setSelectionRange(0, len);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
79
105
|
}
|
package/lib/Dom/focus.d.ts
CHANGED
|
@@ -6,3 +6,10 @@ export declare function clearLastFocusNode(): void;
|
|
|
6
6
|
/** @deprecated Do not use since this may failed when used in async */
|
|
7
7
|
export declare function backLastFocusNode(): void;
|
|
8
8
|
export declare function limitTabRange(node: HTMLElement, e: KeyboardEvent): void;
|
|
9
|
+
export interface InputFocusOptions extends FocusOptions {
|
|
10
|
+
cursor?: 'start' | 'end' | 'all';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Focus element and set cursor position for input/textarea elements.
|
|
14
|
+
*/
|
|
15
|
+
export declare function triggerFocus(element?: HTMLElement, option?: InputFocusOptions): void;
|
package/lib/Dom/focus.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.clearLastFocusNode = clearLastFocusNode;
|
|
|
8
8
|
exports.getFocusNodeList = getFocusNodeList;
|
|
9
9
|
exports.limitTabRange = limitTabRange;
|
|
10
10
|
exports.saveLastFocusNode = saveLastFocusNode;
|
|
11
|
+
exports.triggerFocus = triggerFocus;
|
|
11
12
|
var _isVisible = _interopRequireDefault(require("./isVisible"));
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
14
|
function focusable(node, includePositive = false) {
|
|
@@ -87,4 +88,30 @@ function limitTabRange(node, e) {
|
|
|
87
88
|
e.preventDefault();
|
|
88
89
|
}
|
|
89
90
|
}
|
|
91
|
+
}
|
|
92
|
+
// Used for `rc-input` `rc-textarea` `rc-input-number`
|
|
93
|
+
/**
|
|
94
|
+
* Focus element and set cursor position for input/textarea elements.
|
|
95
|
+
*/
|
|
96
|
+
function triggerFocus(element, option) {
|
|
97
|
+
if (!element) return;
|
|
98
|
+
element.focus(option);
|
|
99
|
+
|
|
100
|
+
// Selection content
|
|
101
|
+
const {
|
|
102
|
+
cursor
|
|
103
|
+
} = option || {};
|
|
104
|
+
if (cursor && (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement)) {
|
|
105
|
+
const len = element.value.length;
|
|
106
|
+
switch (cursor) {
|
|
107
|
+
case 'start':
|
|
108
|
+
element.setSelectionRange(0, 0);
|
|
109
|
+
break;
|
|
110
|
+
case 'end':
|
|
111
|
+
element.setSelectionRange(len, len);
|
|
112
|
+
break;
|
|
113
|
+
default:
|
|
114
|
+
element.setSelectionRange(0, len);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
90
117
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rc-component/util",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Common Utils For React Component",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"cross-env": "^7.0.2",
|
|
57
57
|
"dumi": "^2.1.3",
|
|
58
58
|
"eslint": "^8.54.0",
|
|
59
|
-
"eslint-plugin-jest": "^
|
|
59
|
+
"eslint-plugin-jest": "^29.0.1",
|
|
60
60
|
"eslint-plugin-unicorn": "^56.0.1",
|
|
61
61
|
"father": "^4.1.3",
|
|
62
62
|
"glob": "^11.0.3",
|