react-native-external-keyboard 0.8.4 → 0.9.0-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.
Potentially problematic release.
This version of react-native-external-keyboard might be problematic. Click here for more details.
- package/android/src/main/java/com/externalkeyboard/delegates/FocusOrderDelegate.java +2 -4
- package/android/src/main/java/com/externalkeyboard/delegates/FocusOrderDelegateHost.java +14 -0
- package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardView/ExternalKeyboardView.java +2 -1
- package/android/src/main/java/com/externalkeyboard/views/TextInputFocusWrapper/TextInputFocusWrapper.java +150 -3
- package/android/src/main/java/com/externalkeyboard/views/TextInputFocusWrapper/TextInputFocusWrapperManager.java +92 -0
- package/android/src/oldarch/TextInputFocusWrapperManagerSpec.java +24 -0
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusGuideDelegate/RNCEKVFocusGuideDelegate.h +1 -1
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusOrderDelegate.h +5 -0
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusOrderDelegate.mm +84 -48
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusOrderProtocol.h +6 -8
- package/ios/Delegates/RNCEKVGroupIdentifierDelegate/RNCEKVGroupIdentifierDelegate.mm +60 -60
- package/ios/Delegates/RNCEKVHaloDelegate/RNCEKVHaloDelegate.h +4 -3
- package/ios/Delegates/RNCEKVHaloDelegate/RNCEKVHaloDelegate.mm +110 -87
- package/ios/Delegates/RNCEKVHaloDelegate/RNCEKVHaloProtocol.h +1 -1
- package/ios/Extensions/RCTEnhancedScrollView+RNCEKVExternalKeyboard.mm +1 -1
- package/ios/Extensions/RCTTextInputComponentView+RNCEKVExternalKeyboard.mm +15 -0
- package/ios/Extensions/RCTViewComponentView+RNCEKVExternalKeyboard.h +1 -1
- package/ios/Extensions/RCTViewComponentView+RNCEKVExternalKeyboard.mm +31 -23
- package/ios/Extensions/UIViewController+RNCEKVExternalKeyboard.h +1 -0
- package/ios/Extensions/UIViewController+RNCEKVExternalKeyboard.mm +8 -0
- package/ios/Helpers/RNCEKVNativeProps/RNCEKVNativeProps.h +123 -0
- package/ios/Protocols/RNCEKVCustomFocusEffectProtocol.h +15 -0
- package/ios/Protocols/RNCEKVCustomGroudIdProtocol.h +15 -0
- package/ios/Views/Base/ContextMenu/RNCEKVViewContextMenuBase.h +33 -0
- package/ios/Views/Base/ContextMenu/RNCEKVViewContextMenuBase.mm +83 -0
- package/ios/Views/Base/FocusChange/RNCEKVViewFocusChangeBase.h +37 -0
- package/ios/Views/Base/FocusChange/RNCEKVViewFocusChangeBase.mm +88 -0
- package/ios/Views/Base/FocusOrderGroup/RNCEKVViewOrderGroupBase.h +49 -0
- package/ios/Views/Base/FocusOrderGroup/RNCEKVViewOrderGroupBase.mm +200 -0
- package/ios/Views/Base/FocusRequest/RNCEKVViewFocusRequestBase.h +34 -0
- package/ios/Views/Base/FocusRequest/RNCEKVViewFocusRequestBase.mm +117 -0
- package/ios/Views/Base/GroupIdentifier/RNCEKVViewGroupIdentifierBase.h +27 -0
- package/ios/Views/Base/GroupIdentifier/RNCEKVViewGroupIdentifierBase.mm +61 -0
- package/ios/Views/Base/KeyPress/RNCEKVViewKeyPress.h +30 -0
- package/ios/Views/Base/KeyPress/RNCEKVViewKeyPress.mm +82 -0
- package/ios/Views/Base/KeyboardHallo/RNCEKVExternalKeyboardHalloBase.h +33 -0
- package/ios/Views/Base/KeyboardHallo/RNCEKVExternalKeyboardHalloBase.mm +102 -0
- package/ios/Views/Base/ViewGroup/RNCEKVViewGroupBase.h +36 -0
- package/ios/Views/Base/ViewGroup/RNCEKVViewGroupBase.mm +63 -0
- package/ios/Views/RNCEKVExternalKeyboardView/RNCEKVExternalKeyboardView.h +75 -74
- package/ios/Views/RNCEKVExternalKeyboardView/RNCEKVExternalKeyboardView.mm +23 -492
- package/ios/Views/RNCEKVExternalKeyboardView/RNCEKVExternalKeyboardViewManager.mm +3 -6
- package/ios/Views/RNCEKVKeyboardFocusGroupView/RNCEKVKeyboardFocusGroup.mm +12 -12
- package/ios/Views/RNCEKVTextInputFocusWrapper/RNCEKVTextInputFocusWrapper.h +44 -6
- package/ios/Views/RNCEKVTextInputFocusWrapper/RNCEKVTextInputFocusWrapper.mm +42 -66
- package/ios/Views/RNCEKVTextInputFocusWrapper/RNCEKVTextInputFocusWrapperManager.mm +76 -7
- package/lib/commonjs/components/KeyboardExtendedInput/KeyboardExtendedInput.js +51 -0
- package/lib/commonjs/components/KeyboardExtendedInput/KeyboardExtendedInput.js.map +1 -1
- package/lib/commonjs/nativeSpec/TextInputFocusWrapperNativeComponent.ts +16 -0
- package/lib/module/components/KeyboardExtendedInput/KeyboardExtendedInput.js +51 -0
- package/lib/module/components/KeyboardExtendedInput/KeyboardExtendedInput.js.map +1 -1
- package/lib/module/nativeSpec/TextInputFocusWrapperNativeComponent.ts +16 -0
- package/lib/typescript/src/components/KeyboardExtendedInput/KeyboardExtendedInput.d.ts.map +1 -1
- package/lib/typescript/src/components/KeyboardExtendedInput/KeyboardExtendedInput.types.d.ts +11 -0
- package/lib/typescript/src/components/KeyboardExtendedInput/KeyboardExtendedInput.types.d.ts.map +1 -1
- package/lib/typescript/src/nativeSpec/TextInputFocusWrapperNativeComponent.d.ts +16 -1
- package/lib/typescript/src/nativeSpec/TextInputFocusWrapperNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/KeyboardExtendedInput/KeyboardExtendedInput.tsx +56 -0
- package/src/components/KeyboardExtendedInput/KeyboardExtendedInput.types.ts +11 -0
- package/src/nativeSpec/TextInputFocusWrapperNativeComponent.ts +16 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVViewKeyPress.m
|
|
3
|
+
// react-native-external-keyboard
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 09/04/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
#import "RNCEKVViewKeyPress.h"
|
|
11
|
+
#import "RNCEKVKeyboardKeyPressHandler.h"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@implementation RNCEKVViewKeyPress {
|
|
17
|
+
RNCEKVKeyboardKeyPressHandler *_keyboardKeyPressHandler;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
- (instancetype)initWithFrame:(CGRect)frame {
|
|
21
|
+
if (self = [super initWithFrame:frame]) {
|
|
22
|
+
// _isAttachedToWindow = NO;
|
|
23
|
+
// _enableA11yFocus = NO;
|
|
24
|
+
_keyboardKeyPressHandler = [[RNCEKVKeyboardKeyPressHandler alloc] init];
|
|
25
|
+
// _autoFocusRequested = NO;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return self;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
- (void)cleanReferences {
|
|
32
|
+
[super cleanReferences];
|
|
33
|
+
|
|
34
|
+
// _isAttachedToWindow = NO;
|
|
35
|
+
// _enableA11yFocus = NO;
|
|
36
|
+
// _autoFocusRequested = NO;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
40
|
+
- (void)updateKeyPressProps:(const RNCEKV::KeyPressProps &)oldProps
|
|
41
|
+
newProps:(const RNCEKV::KeyPressProps &)newProps {
|
|
42
|
+
if (oldProps.hasKeyUpPress != newProps.hasKeyUpPress) {
|
|
43
|
+
[self setHasOnPressUp:newProps.hasKeyUpPress];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (oldProps.hasKeyDownPress != newProps.hasKeyDownPress) {
|
|
47
|
+
[self setHasOnPressDown:newProps.hasKeyDownPress];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
#endif
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
- (void)pressesBegan:(NSSet<UIPress *> *)presses
|
|
55
|
+
withEvent:(UIPressesEvent *)event {
|
|
56
|
+
NSDictionary *eventInfo = [_keyboardKeyPressHandler actionDownHandler:presses
|
|
57
|
+
withEvent:event];
|
|
58
|
+
|
|
59
|
+
if (self.hasOnPressUp || self.hasOnPressDown) {
|
|
60
|
+
[self onKeyDownPressHandler:eventInfo];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[super pressesBegan:presses withEvent:event];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
- (void)pressesEnded:(NSSet<UIPress *> *)presses
|
|
67
|
+
withEvent:(UIPressesEvent *)event {
|
|
68
|
+
NSDictionary *eventInfo = [_keyboardKeyPressHandler actionUpHandler:presses
|
|
69
|
+
withEvent:event];
|
|
70
|
+
|
|
71
|
+
if (self.hasOnPressUp || self.hasOnPressDown) {
|
|
72
|
+
[self onKeyUpPressHandler:eventInfo];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
[super pressesEnded:presses withEvent:event];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
- (void)onKeyDownPressHandler:(NSDictionary *)eventInfo{}
|
|
79
|
+
- (void)onKeyUpPressHandler:(NSDictionary *)eventInfo{}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVExternalKeyboardHalloBase.h
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 08/04/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#ifndef RNCEKVExternalKeyboardHalloBase_h
|
|
9
|
+
#define RNCEKVExternalKeyboardHalloBase_h
|
|
10
|
+
|
|
11
|
+
#import "RNCEKVViewOrderGroupBase.h"
|
|
12
|
+
#import "RNCEKVCustomFocusEffectProtocol.h"
|
|
13
|
+
#import "RNCEKVHaloProtocol.h"
|
|
14
|
+
|
|
15
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
16
|
+
#include "RNCEKVNativeProps.h"
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
@interface RNCEKVExternalKeyboardHalloBase : RNCEKVViewOrderGroupBase<RNCEKVHaloProtocol, RNCEKVCustomFocusEffectProtocol>
|
|
20
|
+
|
|
21
|
+
@property (nonatomic, assign) CGFloat haloCornerRadius;
|
|
22
|
+
@property (nonatomic, assign) CGFloat haloExpendX;
|
|
23
|
+
@property (nonatomic, assign) CGFloat haloExpendY;
|
|
24
|
+
@property BOOL isHaloHidden;
|
|
25
|
+
|
|
26
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
27
|
+
- (void)updateHaloProps:(const RNCEKV::HaloProps &)oldProps
|
|
28
|
+
newProps:(const RNCEKV::HaloProps &)newProps;
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
@end
|
|
32
|
+
|
|
33
|
+
#endif /* RNCEKVExternalKeyboardHalloBase_h */
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVExternakKeyboardHalloBase.m
|
|
3
|
+
// react-native-external-keyboard
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 08/04/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
#import "RNCEKVHaloDelegate.h"
|
|
11
|
+
#import "RNCEKVExternalKeyboardHalloBase.h"
|
|
12
|
+
|
|
13
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
14
|
+
#import <React/RCTConversions.h>
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
@implementation RNCEKVExternalKeyboardHalloBase {
|
|
18
|
+
RNCEKVHaloDelegate *_haloDelegate;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
22
|
+
{
|
|
23
|
+
if (self = [super initWithFrame:frame]) {
|
|
24
|
+
_haloDelegate = [[RNCEKVHaloDelegate alloc] initWithView:self];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return self;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
- (UIFocusEffect*)customFocusEffect {
|
|
31
|
+
return [_haloDelegate getHalo];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
- (void)cleanReferences {
|
|
35
|
+
[super cleanReferences];
|
|
36
|
+
[_haloDelegate clear];
|
|
37
|
+
_isHaloHidden = false;
|
|
38
|
+
// _isHaloActive = @2; // ToDo RNCEKV-0
|
|
39
|
+
_haloExpendX = 0;
|
|
40
|
+
_haloExpendY = 0;
|
|
41
|
+
_haloCornerRadius = 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// ToDo RNCEKV-8 review and find better place for halo calculation
|
|
45
|
+
//- (void)layoutSubviews {
|
|
46
|
+
// [super layoutSubviews];
|
|
47
|
+
//// [_haloDelegate displayHalo];
|
|
48
|
+
//}
|
|
49
|
+
|
|
50
|
+
- (void)setIsHaloHidden:(BOOL)isHaloHidden {
|
|
51
|
+
_isHaloHidden = isHaloHidden;
|
|
52
|
+
// [_haloDelegate displayHalo];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
- (void)setHaloCornerRadius:(CGFloat)haloCornerRadius {
|
|
56
|
+
_haloCornerRadius = haloCornerRadius;
|
|
57
|
+
// if (self.window) {
|
|
58
|
+
// [_haloDelegate updateHalo];
|
|
59
|
+
// }
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
- (void)setHaloExpendX:(CGFloat)haloExpendX {
|
|
63
|
+
_haloExpendX = haloExpendX;
|
|
64
|
+
// if (self.window) {
|
|
65
|
+
// [_haloDelegate updateHalo];
|
|
66
|
+
// }
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
- (void)setHaloExpendY:(CGFloat)haloExpendY {
|
|
70
|
+
_haloExpendY = haloExpendY;
|
|
71
|
+
// if (self.window) {
|
|
72
|
+
//// [_haloDelegate updateHalo];
|
|
73
|
+
// }
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
- (void)updateHaloProps:(const RNCEKV::HaloProps &)oldProps
|
|
77
|
+
newProps:(const RNCEKV::HaloProps &)newProps {
|
|
78
|
+
if (_isHaloHidden == newProps.haloEffect) {
|
|
79
|
+
[self setIsHaloHidden: !newProps.haloEffect];
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (oldProps.haloExpendX != newProps.haloExpendX) {
|
|
83
|
+
[self setHaloExpendX:newProps.haloExpendX];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (oldProps.haloExpendY != newProps.haloExpendY) {
|
|
87
|
+
[self setHaloExpendY:newProps.haloExpendY];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (oldProps.haloCornerRadius != newProps.haloCornerRadius) {
|
|
91
|
+
[self setHaloCornerRadius:newProps.haloCornerRadius];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
UIColor *newColor = RCTUIColorFromSharedColor(newProps.tintColor);
|
|
95
|
+
BOOL renewColor = newColor != nil && self.tintColor == nil;
|
|
96
|
+
BOOL isColorChanged = oldProps.tintColor != newProps.tintColor;
|
|
97
|
+
if (isColorChanged || renewColor) {
|
|
98
|
+
self.tintColor = RCTUIColorFromSharedColor(newProps.tintColor);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVViewGroupBase.h
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 07/04/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#ifndef RNCEKVViewGroupBase_h
|
|
9
|
+
#define RNCEKVViewGroupBase_h
|
|
10
|
+
|
|
11
|
+
#import <UIKit/UIKit.h>
|
|
12
|
+
|
|
13
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
14
|
+
#import <React/RCTViewComponentView.h>
|
|
15
|
+
#define RNCEKVBaseViewClass RCTViewComponentView
|
|
16
|
+
#else
|
|
17
|
+
#import <React/RCTView.h>
|
|
18
|
+
#define RNCEKVBaseViewClass RCTView
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
22
|
+
|
|
23
|
+
@interface RNCEKVViewGroupBase : RNCEKVBaseViewClass
|
|
24
|
+
|
|
25
|
+
- (UIView*)getStoredView;
|
|
26
|
+
- (void)onSubviewAdded:(UIView *)subview;
|
|
27
|
+
- (void)onSubviewRemoved:(UIView *)subview;
|
|
28
|
+
- (void)onSubviewsLayoutUpdated;
|
|
29
|
+
|
|
30
|
+
- (void)cleanReferences;
|
|
31
|
+
|
|
32
|
+
@end
|
|
33
|
+
|
|
34
|
+
NS_ASSUME_NONNULL_END
|
|
35
|
+
|
|
36
|
+
#endif /* RNCEKVViewGroupBase_h */
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVViewGroupBase.m
|
|
3
|
+
// react-native-external-keyboard
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 07/04/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "RNCEKVViewGroupBase.h"
|
|
9
|
+
|
|
10
|
+
@interface RNCEKVViewGroupBase ()
|
|
11
|
+
|
|
12
|
+
@property (nonatomic, weak, nullable) UIView *storedView;
|
|
13
|
+
|
|
14
|
+
@end
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@implementation RNCEKVViewGroupBase
|
|
18
|
+
|
|
19
|
+
- (void)didAddSubview:(UIView *)subview {
|
|
20
|
+
[super didAddSubview:subview];
|
|
21
|
+
|
|
22
|
+
if (self.storedView == nil) {
|
|
23
|
+
self.storedView = subview;
|
|
24
|
+
[self onSubviewAdded:subview];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
- (void)cleanReferences{
|
|
29
|
+
self.storedView = nil;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
- (void)willRemoveSubview:(UIView *)subview {
|
|
33
|
+
[super willRemoveSubview:subview];
|
|
34
|
+
|
|
35
|
+
if (self.storedView == subview) {
|
|
36
|
+
self.storedView = nil;
|
|
37
|
+
[self onSubviewRemoved:subview];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
- (UIView*)getStoredView {
|
|
42
|
+
return self.storedView;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
#pragma mark - Layout updates
|
|
46
|
+
|
|
47
|
+
- (void)layoutSubviews {
|
|
48
|
+
[super layoutSubviews];
|
|
49
|
+
|
|
50
|
+
if (self.storedView != nil) {
|
|
51
|
+
[self onSubviewsLayoutUpdated];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#pragma mark - Hooks (override in subclass)
|
|
56
|
+
|
|
57
|
+
- (void)onSubviewAdded:(UIView *)subview {}
|
|
58
|
+
|
|
59
|
+
- (void)onSubviewRemoved:(UIView *)subview {}
|
|
60
|
+
|
|
61
|
+
- (void)onSubviewsLayoutUpdated {}
|
|
62
|
+
|
|
63
|
+
@end
|
|
@@ -6,49 +6,50 @@
|
|
|
6
6
|
#import "RNCEKVFocusOrderProtocol.h"
|
|
7
7
|
#import "RNCEKVHaloProtocol.h"
|
|
8
8
|
#import "RNCEKVGroupIdentifierProtocol.h"
|
|
9
|
+
#import "RNCEKVExternalKeyboardHalloBase.h"
|
|
10
|
+
#import "RNCEKVViewKeyPress.h"
|
|
9
11
|
|
|
10
12
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
11
13
|
#import "RCTViewComponentView+RNCEKVExternalKeyboard.h"
|
|
12
14
|
|
|
13
15
|
NS_ASSUME_NONNULL_BEGIN
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if ([RNCEKVPropHelper isPropChanged: _##prop stringValue: newProps.prop]) { \
|
|
17
|
-
[self setter: [RNCEKVPropHelper unwrapStringValue: newProps.prop]]; \
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@interface RNCEKVExternalKeyboardView :
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
//
|
|
17
|
+
//#define RKNA_PROP_UPDATE(prop, setter, newProps) \
|
|
18
|
+
//if ([RNCEKVPropHelper isPropChanged: _##prop stringValue: newProps.prop]) { \
|
|
19
|
+
//[self setter: [RNCEKVPropHelper unwrapStringValue: newProps.prop]]; \
|
|
20
|
+
//}
|
|
21
|
+
|
|
22
|
+
@interface RNCEKVExternalKeyboardView : RNCEKVViewKeyPress
|
|
23
|
+
//@property (nonatomic, strong, nullable) NSNumber *isHaloActive;
|
|
24
|
+
//@property BOOL canBeFocused;
|
|
25
|
+
//@property BOOL hasOnPressUp;
|
|
26
|
+
//@property BOOL hasOnPressDown;
|
|
27
|
+
//@property BOOL hasOnFocusChanged;
|
|
26
28
|
@property BOOL isGroup;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- (void)focus;
|
|
29
|
+
//@property BOOL enableA11yFocus;
|
|
30
|
+
//@property (nonatomic, assign) CGFloat haloCornerRadius;
|
|
31
|
+
//@property (nonatomic, assign) CGFloat haloExpendX;
|
|
32
|
+
//@property (nonatomic, assign) CGFloat haloExpendY;
|
|
33
|
+
//@property (nullable, nonatomic, strong) UIView* myPreferredFocusedView;
|
|
34
|
+
//@property (nonatomic, strong, nullable) NSString *customGroupId;
|
|
35
|
+
//@property BOOL enableContextMenu;
|
|
36
|
+
//@property NSNumber* orderPosition;
|
|
37
|
+
//@property NSNumber* lockFocus;
|
|
38
|
+
//@property (nonatomic, strong) NSString* orderGroup;
|
|
39
|
+
//@property (nonatomic, strong) NSString* orderId;
|
|
40
|
+
//@property (nonatomic, strong) NSString* orderLeft;
|
|
41
|
+
//@property (nonatomic, strong) NSString* orderRight;
|
|
42
|
+
//@property (nonatomic, strong) NSString* orderUp;
|
|
43
|
+
//@property (nonatomic, strong) NSString* orderDown;
|
|
44
|
+
//@property NSString* orderForward;
|
|
45
|
+
//@property NSString* orderBackward;
|
|
46
|
+
//@property NSString* orderLast;
|
|
47
|
+
//@property NSString* orderFirst;
|
|
48
|
+
//@property BOOL isLinked;
|
|
49
|
+
|
|
50
|
+
//- (UIView*)getFocusTargetView;
|
|
51
|
+
|
|
52
|
+
//- (void)focus;
|
|
52
53
|
|
|
53
54
|
@end
|
|
54
55
|
|
|
@@ -59,44 +60,44 @@ NS_ASSUME_NONNULL_END
|
|
|
59
60
|
|
|
60
61
|
|
|
61
62
|
#import <React/RCTView.h>
|
|
62
|
-
@interface RNCEKVExternalKeyboardView :
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
@interface RNCEKVExternalKeyboardView : RNCEKVViewKeyPress /*<UIContextMenuInteractionDelegate, RNCEKVHaloProtocol, RNCEKVFocusOrderProtocol, RNCEKVFocusProtocol, RNCEKVGroupIdentifierProtocol>*/
|
|
64
|
+
//
|
|
65
|
+
//@property BOOL autoFocus;
|
|
66
|
+
//@property BOOL canBeFocused;
|
|
67
|
+
//@property BOOL hasOnPressUp;
|
|
68
|
+
//@property BOOL hasOnPressDown;
|
|
69
|
+
//@property BOOL hasOnFocusChanged;
|
|
69
70
|
@property BOOL isGroup;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
71
|
+
//@property BOOL enableA11yFocus;
|
|
72
|
+
//@property UIView* myPreferredFocusedView;
|
|
73
|
+
//@property (nonatomic, assign) CGFloat haloCornerRadius;
|
|
74
|
+
//@property (nonatomic, assign) CGFloat haloExpendX;
|
|
75
|
+
//@property (nonatomic, assign) CGFloat haloExpendY;
|
|
76
|
+
//@property (nonatomic, copy) RCTDirectEventBlock onFocusChange;
|
|
77
|
+
//@property (nonatomic, copy) RCTDirectEventBlock onContextMenuPress;
|
|
78
|
+
//@property (nonatomic, copy) RCTDirectEventBlock onKeyUpPress;
|
|
79
|
+
//@property (nonatomic, copy) RCTDirectEventBlock onKeyDownPress;
|
|
80
|
+
//@property (nonatomic, copy) RCTBubblingEventBlock onBubbledContextMenuPress;
|
|
81
|
+
//@property (nonatomic, strong, nullable) NSString *customGroupId;
|
|
82
|
+
//@property NSNumber* orderPosition;
|
|
83
|
+
//@property NSNumber* lockFocus;
|
|
84
|
+
//@property (nonatomic, strong)NSString* orderGroup;
|
|
85
|
+
//@property (nonatomic, strong) NSString* orderId;
|
|
86
|
+
//@property (nonatomic, strong)NSString* orderLeft;
|
|
87
|
+
//@property (nonatomic, strong)NSString* orderRight;
|
|
88
|
+
//@property (nonatomic, strong) NSString* orderUp;
|
|
89
|
+
//@property (nonatomic, strong) NSString* orderDown;
|
|
90
|
+
//@property NSString* orderForward;
|
|
91
|
+
//@property NSString* orderBackward;
|
|
92
|
+
//@property NSString* orderLast;
|
|
93
|
+
//@property NSString* orderFirst;
|
|
94
|
+
//@property BOOL isLinked;
|
|
95
|
+
//@property BOOL enableContextMenu;
|
|
96
|
+
|
|
97
|
+
//- (UIView*)getFocusTargetView;
|
|
98
|
+
|
|
99
|
+
//@property (nonatomic, strong, nullable) NSNumber *isHaloActive;
|
|
100
|
+
//- (void)focus;
|
|
100
101
|
@end
|
|
101
102
|
|
|
102
103
|
|