react-native-external-keyboard 0.6.8 → 0.7.1
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/README.md +37 -129
- package/android/src/main/java/com/externalkeyboard/ExternalKeyboardViewPackage.java +2 -0
- package/android/src/main/java/com/externalkeyboard/helper/FocusHelper.java +70 -0
- package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardLockView/ExternalKeyboardLockView.java +115 -0
- package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardLockView/ExternalKeyboardLockViewManager.java +32 -0
- package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardLockView/LockService.java +44 -0
- package/android/src/newarch/ExternalKeyboardLockViewManagerSpec.java +8 -0
- package/android/src/oldarch/ExternalKeyboardLockViewManagerSpec.java +12 -0
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusGuideDelegate/RNCEKVFocusGuideDelegate.h +36 -0
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusGuideDelegate/RNCEKVFocusGuideDelegate.mm +150 -0
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusOrderDelegate.h +14 -0
- package/ios/Delegates/RNCEKVFocusOrderDelegate/RNCEKVFocusOrderDelegate.mm +98 -349
- package/ios/Extensions/RCTTextInputComponentView+RNCEKVExternalKeyboard.h +1 -1
- package/ios/Extensions/RCTTextInputComponentView+RNCEKVExternalKeyboard.mm +11 -3
- package/ios/Extensions/UIViewController+RNCEKVExternalKeyboard.h +1 -1
- package/ios/Extensions/UIViewController+RNCEKVExternalKeyboard.mm +17 -17
- package/ios/Helpers/RNCEKVFocusGuideHelper/RNCEKVFocusGuideHelper.h +32 -0
- package/ios/Helpers/RNCEKVFocusGuideHelper/RNCEKVFocusGuideHelper.mm +81 -0
- package/ios/Helpers/RNCEKVSwizzlingHelper/RNCEKVSwizzlingHelper.h +16 -0
- package/ios/Helpers/RNCEKVSwizzlingHelper/RNCEKVSwizzlingHelper.mm +27 -0
- package/ios/Modules/RNCEKVExternalKeyboardModule.mm +3 -3
- package/ios/Services/RNCEKVFocusLinkObserver.h +7 -1
- package/ios/Services/RNCEKVFocusLinkObserver.mm +31 -6
- package/ios/Services/RNCEKVKeyboardOrderManager/RNCEKVKeyboardOrderManager.h +17 -0
- package/ios/Services/RNCEKVKeyboardOrderManager/RNCEKVKeyboardOrderManager.mm +15 -0
- package/ios/Services/{RNCEKVRelashioship.h → RNCEKVKeyboardOrderManager/RNCEKVOrderRelationship/RNCEKVOrderRelationship.h} +8 -7
- package/ios/Services/{RNCEKVRelashioship.mm → RNCEKVKeyboardOrderManager/RNCEKVOrderRelationship/RNCEKVOrderRelationship.mm} +36 -13
- package/ios/Services/RNCEKVOrderLinking.h +2 -7
- package/ios/Services/RNCEKVOrderLinking.mm +27 -64
- package/ios/Services/RNCEKVOrderSubscriber.h +4 -3
- package/ios/Services/RNCEKVOrderSubscriber.mm +2 -1
- package/ios/Views/RNCEKVExternalKeyboardLockView/RNCEKVExternalKeyboardLockView.h +38 -0
- package/ios/Views/RNCEKVExternalKeyboardLockView/RNCEKVExternalKeyboardLockView.mm +62 -0
- package/ios/Views/RNCEKVExternalKeyboardLockView/RNCEKVExternalKeyboardLockViewManager.h +14 -0
- package/ios/Views/RNCEKVExternalKeyboardLockView/RNCEKVExternalKeyboardLockViewManager.mm +25 -0
- package/ios/Views/RNCEKVExternalKeyboardView/Helpers/RNCEKVFabricEventHelper/RNCEKVFabricEventHelper.mm +6 -4
- package/ios/Views/RNCEKVExternalKeyboardView/RNCEKVExternalKeyboardView.mm +2 -2
- package/ios/Views/RNCEKVKeyboardFocusGroupView/RNCEKVKeyboardFocusGroup.mm +0 -1
- package/ios/Views/RNCEKVTextInputFocusWrapper/RNCEKVTextInputFocusWrapper.mm +1 -15
- package/lib/commonjs/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js +21 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js.map +1 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusFrame/FocusFrame.js +11 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusFrame/FocusFrame.js.map +1 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js +19 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js.map +1 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrap.js +15 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrap.js.map +1 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.js +46 -0
- package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.js.map +1 -0
- package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.js +21 -0
- package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.js.map +1 -0
- package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js +9 -0
- package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js.map +1 -0
- package/lib/commonjs/context/FocusFrameProviderContext.js +28 -0
- package/lib/commonjs/context/FocusFrameProviderContext.js.map +1 -0
- package/lib/commonjs/index.js +7 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/nativeSpec/ExternalKeyboardLockViewNativeComponent.js +10 -0
- package/lib/commonjs/nativeSpec/ExternalKeyboardLockViewNativeComponent.js.map +1 -0
- package/lib/commonjs/types/KeyboardFocusLock.types.js +6 -0
- package/lib/commonjs/types/KeyboardFocusLock.types.js.map +1 -0
- package/lib/module/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js +14 -0
- package/lib/module/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js.map +1 -0
- package/lib/module/components/KeyboardFocusLock/FocusFrame/FocusFrame.js +4 -0
- package/lib/module/components/KeyboardFocusLock/FocusFrame/FocusFrame.js.map +1 -0
- package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js +12 -0
- package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js.map +1 -0
- package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrap.js +8 -0
- package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrap.js.map +1 -0
- package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.js +39 -0
- package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.js.map +1 -0
- package/lib/module/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.js +14 -0
- package/lib/module/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.js.map +1 -0
- package/lib/module/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js +3 -0
- package/lib/module/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js.map +1 -0
- package/lib/module/context/FocusFrameProviderContext.js +20 -0
- package/lib/module/context/FocusFrameProviderContext.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/nativeSpec/ExternalKeyboardLockViewNativeComponent.js +3 -0
- package/lib/module/nativeSpec/ExternalKeyboardLockViewNativeComponent.js.map +1 -0
- package/lib/module/types/KeyboardFocusLock.types.js +2 -0
- package/lib/module/types/KeyboardFocusLock.types.js.map +1 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.d.ts +4 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.d.ts.map +1 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.d.ts +3 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.d.ts.map +1 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.d.ts +4 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.d.ts.map +1 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.d.ts +3 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.d.ts.map +1 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.d.ts +3 -0
- package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.d.ts.map +1 -0
- package/lib/typescript/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.d.ts +4 -0
- package/lib/typescript/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.d.ts.map +1 -0
- package/lib/typescript/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.d.ts +3 -0
- package/lib/typescript/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.d.ts.map +1 -0
- package/lib/typescript/src/components/Touchable/Pressable.d.ts +1 -1
- package/lib/typescript/src/context/FocusFrameProviderContext.d.ts +12 -0
- package/lib/typescript/src/context/FocusFrameProviderContext.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/nativeSpec/ExternalKeyboardLockViewNativeComponent.d.ts +9 -0
- package/lib/typescript/src/nativeSpec/ExternalKeyboardLockViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/types/KeyboardFocusLock.types.d.ts +6 -0
- package/lib/typescript/src/types/KeyboardFocusLock.types.d.ts.map +1 -0
- package/lib/typescript/src/utils/withKeyboardFocus.d.ts +1 -1
- package/package.json +4 -3
- package/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.tsx +18 -0
- package/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.tsx +8 -0
- package/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.tsx +17 -0
- package/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.tsx +9 -0
- package/src/components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.ts +40 -0
- package/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.tsx +16 -0
- package/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.tsx +5 -0
- package/src/context/FocusFrameProviderContext.tsx +36 -0
- package/src/index.tsx +8 -0
- package/src/nativeSpec/ExternalKeyboardLockViewNativeComponent.ts +13 -0
- package/src/types/KeyboardFocusLock.types.ts +6 -0
- package/ios/Services/RNCEKVFocusLinkObserverManager.h +0 -23
- package/ios/Services/RNCEKVFocusLinkObserverManager.mm +0 -30
- /package/ios/Services/{RNCEKVSortedMap.h → RNCEKVKeyboardOrderManager/RNCEKVOrderRelationship/RNCEKVSortedMap/RNCEKVSortedMap.h} +0 -0
- /package/ios/Services/{RNCEKVSortedMap.mm → RNCEKVKeyboardOrderManager/RNCEKVOrderRelationship/RNCEKVSortedMap/RNCEKVSortedMap.mm} +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVExternalKeyboardLockView.m
|
|
3
|
+
// react-native-external-keyboard
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 27/01/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
#import <UIKit/UIKit.h>
|
|
12
|
+
#import <React/RCTViewManager.h>
|
|
13
|
+
#import "RNCEKVExternalKeyboardLockView.h"
|
|
14
|
+
|
|
15
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
16
|
+
|
|
17
|
+
#include <string>
|
|
18
|
+
#import <react/renderer/components/RNExternalKeyboardViewSpec/ComponentDescriptors.h>
|
|
19
|
+
#import <react/renderer/components/RNExternalKeyboardViewSpec/EventEmitters.h>
|
|
20
|
+
#import <react/renderer/components/RNExternalKeyboardViewSpec/Props.h>
|
|
21
|
+
#import <react/renderer/components/RNExternalKeyboardViewSpec/RCTComponentViewHelpers.h>
|
|
22
|
+
#import "RCTFabricComponentsPlugins.h"
|
|
23
|
+
|
|
24
|
+
using namespace facebook::react;
|
|
25
|
+
|
|
26
|
+
@interface RNCEKVExternalKeyboardLockView () <RCTExternalKeyboardLockViewViewProtocol>
|
|
27
|
+
|
|
28
|
+
@end
|
|
29
|
+
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@implementation RNCEKVExternalKeyboardLockView
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
38
|
+
|
|
39
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
40
|
+
{
|
|
41
|
+
return concreteComponentDescriptorProvider<ExternalKeyboardLockViewComponentDescriptor>();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
46
|
+
{
|
|
47
|
+
if (self = [super initWithFrame:frame]) {
|
|
48
|
+
static const auto defaultProps = std::make_shared<const ExternalKeyboardLockViewProps>();
|
|
49
|
+
_props = defaultProps;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return self;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
Class<RCTComponentViewProtocol> ExternalKeyboardLockViewCls(void)
|
|
56
|
+
{
|
|
57
|
+
return RNCEKVExternalKeyboardLockView.class;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
#endif
|
|
61
|
+
|
|
62
|
+
@end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVExternalKeyboardLockViewManager.h
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 27/01/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#ifndef RNCEKVExternalKeyboardLockViewManager_h
|
|
9
|
+
#define RNCEKVExternalKeyboardLockViewManager_h
|
|
10
|
+
|
|
11
|
+
@interface RNCEKVExternalKeyboardLockViewManager : RCTViewManager
|
|
12
|
+
@end
|
|
13
|
+
|
|
14
|
+
#endif /* RNCEKVExternalKeyboardLockViewManager_h */
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCEKVExternalKeyboardLockViewManager.m
|
|
3
|
+
// react-native-external-keyboard
|
|
4
|
+
//
|
|
5
|
+
// Created by Artur Kalach on 27/01/2026.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
#import <React/RCTViewManager.h>
|
|
12
|
+
#import <React/RCTUIManager.h>
|
|
13
|
+
#import "RNCEKVExternalKeyboardLockView.h"
|
|
14
|
+
#import "RNCEKVExternalKeyboardLockViewManager.h"
|
|
15
|
+
|
|
16
|
+
@implementation RNCEKVExternalKeyboardLockViewManager
|
|
17
|
+
|
|
18
|
+
RCT_EXPORT_MODULE(ExternalKeyboardLockView)
|
|
19
|
+
|
|
20
|
+
- (UIView *)view
|
|
21
|
+
{
|
|
22
|
+
return [[RNCEKVExternalKeyboardLockView alloc] init];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@end
|
|
@@ -21,7 +21,8 @@ using namespace facebook::react;
|
|
|
21
21
|
+ (void)onKeyDownPressEventEmmiter:(NSDictionary*) dictionary withEmitter:(facebook::react::SharedViewEventEmitter) _eventEmitter {
|
|
22
22
|
if (_eventEmitter) {
|
|
23
23
|
auto viewEventEmitter = std::static_pointer_cast<ExternalKeyboardViewEventEmitter const>(_eventEmitter);
|
|
24
|
-
|
|
24
|
+
|
|
25
|
+
NSString* unicodeChar = [dictionary valueForKey:@"unicodeChar"];
|
|
25
26
|
facebook::react::ExternalKeyboardViewEventEmitter::OnKeyDownPress data = {
|
|
26
27
|
.keyCode = [[dictionary valueForKey:@"keyCode"] intValue],
|
|
27
28
|
.isLongPress = [[dictionary valueForKey:@"isLongPress"] boolValue],
|
|
@@ -31,7 +32,7 @@ using namespace facebook::react;
|
|
|
31
32
|
.isCapsLockOn = [[dictionary valueForKey:@"isCapsLockOn"] boolValue],
|
|
32
33
|
.hasNoModifiers = [[dictionary valueForKey:@"hasNoModifiers"] boolValue],
|
|
33
34
|
.unicode = [[dictionary valueForKey:@"unicode"] intValue],
|
|
34
|
-
.unicodeChar = [
|
|
35
|
+
.unicodeChar = [unicodeChar UTF8String],
|
|
35
36
|
};
|
|
36
37
|
viewEventEmitter->onKeyDownPress(data);
|
|
37
38
|
};
|
|
@@ -40,7 +41,8 @@ using namespace facebook::react;
|
|
|
40
41
|
+ (void)onKeyUpPressEventEmmiter:(NSDictionary*) dictionary withEmitter:(facebook::react::SharedViewEventEmitter) _eventEmitter {
|
|
41
42
|
if (_eventEmitter) {
|
|
42
43
|
auto viewEventEmitter = std::static_pointer_cast<ExternalKeyboardViewEventEmitter const>(_eventEmitter);
|
|
43
|
-
|
|
44
|
+
|
|
45
|
+
NSString* unicodeChar = [dictionary valueForKey:@"unicodeChar"];
|
|
44
46
|
facebook::react::ExternalKeyboardViewEventEmitter::OnKeyUpPress data = {
|
|
45
47
|
.keyCode = [[dictionary valueForKey:@"keyCode"] intValue],
|
|
46
48
|
.isLongPress = [[dictionary valueForKey:@"isLongPress"] boolValue],
|
|
@@ -50,7 +52,7 @@ using namespace facebook::react;
|
|
|
50
52
|
.isCapsLockOn = [[dictionary valueForKey:@"isCapsLockOn"] boolValue],
|
|
51
53
|
.hasNoModifiers = [[dictionary valueForKey:@"hasNoModifiers"] boolValue],
|
|
52
54
|
.unicode = [[dictionary valueForKey:@"unicode"] intValue],
|
|
53
|
-
.unicodeChar = [
|
|
55
|
+
.unicodeChar = [unicodeChar UTF8String],
|
|
54
56
|
};
|
|
55
57
|
viewEventEmitter->onKeyUpPress(data);
|
|
56
58
|
};
|
|
@@ -37,7 +37,7 @@ using namespace facebook::react;
|
|
|
37
37
|
RNCEKVFocusDelegate *_focusDelegate;
|
|
38
38
|
RNCEKVGroupIdentifierDelegate *_gIdDelegate;
|
|
39
39
|
RNCEKVFocusOrderDelegate *_focusOrderDelegate;
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
NSNumber *_isFocused;
|
|
42
42
|
BOOL _isAttachedToWindow;
|
|
43
43
|
BOOL _isAttachedToController;
|
|
@@ -371,7 +371,7 @@ Class<RCTComponentViewProtocol> ExternalKeyboardViewCls(void) {
|
|
|
371
371
|
UIView *focusingView = self; // [_focusDelegate getFocusingView];
|
|
372
372
|
|
|
373
373
|
if (self.superview != nil && controller != nil) {
|
|
374
|
-
controller.
|
|
374
|
+
controller.rncekvCustomFocusView = focusingView;
|
|
375
375
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
376
376
|
[controller setNeedsFocusUpdate];
|
|
377
377
|
[controller updateFocusIfNeeded];
|
|
@@ -206,7 +206,7 @@ Class<RCTComponentViewProtocol> TextInputFocusWrapperCls(void)
|
|
|
206
206
|
|
|
207
207
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
208
208
|
if([input isKindOfClass: [RCTTextInputComponentView class]]) {
|
|
209
|
-
backedTextInputView = ((RCTTextInputComponentView *)input).
|
|
209
|
+
backedTextInputView = ((RCTTextInputComponentView *)input).rncekbBackedTextInputView;
|
|
210
210
|
}
|
|
211
211
|
#else
|
|
212
212
|
if([input isKindOfClass: [RCTMultilineTextInputView class]]) {
|
|
@@ -242,20 +242,6 @@ Class<RCTComponentViewProtocol> TextInputFocusWrapperCls(void)
|
|
|
242
242
|
return isTextInput;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
- (UIView*)getMultilineTextView: (UIView*)view {
|
|
246
|
-
UIView* textView = nil;
|
|
247
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
248
|
-
if([view isKindOfClass: [RCTTextInputComponentView class]]) {
|
|
249
|
-
textView = ((RCTTextInputComponentView *)view).backedTextInputView;
|
|
250
|
-
}
|
|
251
|
-
#else
|
|
252
|
-
if([view isKindOfClass: [RCTMultilineTextInputView class]]) {
|
|
253
|
-
textView = ((RCTMultilineTextInputView *)view).backedTextInputView;
|
|
254
|
-
}
|
|
255
|
-
#endif
|
|
256
|
-
return textView;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
245
|
- (void)updateHalo {
|
|
260
246
|
if(self.subviews.count == 0) {
|
|
261
247
|
return;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FocusFrame = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _FocusFrameProviderContext = require("../../../context/FocusFrameProviderContext");
|
|
9
|
+
var _KeyboardFocusLockBase = require("../KeyboardFocusLockBase/KeyboardFocusLockBase");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
const FocusFrame = exports.FocusFrame = /*#__PURE__*/_react.default.memo(({
|
|
13
|
+
lockDisabled = false,
|
|
14
|
+
...props
|
|
15
|
+
}) => {
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement(_FocusFrameProviderContext.FrameProvider, null, /*#__PURE__*/_react.default.createElement(_KeyboardFocusLockBase.KeyboardFocusLockBase, _extends({}, props, {
|
|
17
|
+
componentType: 1,
|
|
18
|
+
lockDisabled: lockDisabled
|
|
19
|
+
})));
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=FocusFrame.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_FocusFrameProviderContext","_KeyboardFocusLockBase","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","FocusFrame","exports","React","memo","lockDisabled","props","createElement","FrameProvider","KeyboardFocusLockBase","componentType"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusFrame/FocusFrame.android.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAAuF,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAGhF,MAAMO,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAGE,cAAK,CAACC,IAAI,CAClC,CAAC;EAAEC,YAAY,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EACtC,oBACEzB,MAAA,CAAAO,OAAA,CAAAmB,aAAA,CAACvB,0BAAA,CAAAwB,aAAa,qBACZ3B,MAAA,CAAAO,OAAA,CAAAmB,aAAA,CAACtB,sBAAA,CAAAwB,qBAAqB,EAAApB,QAAA,KAChBiB,KAAK;IACTI,aAAa,EAAE,CAAE;IACjBL,YAAY,EAAEA;EAAa,EAC5B,CACY,CAAC;AAEpB,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FocusFrame = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _FocusFrameProviderContext = require("../../../context/FocusFrameProviderContext");
|
|
9
|
+
const FocusFrame = props => /*#__PURE__*/React.createElement(_FocusFrameProviderContext.FrameProvider, null, /*#__PURE__*/React.createElement(_reactNative.View, props));
|
|
10
|
+
exports.FocusFrame = FocusFrame;
|
|
11
|
+
//# sourceMappingURL=FocusFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_FocusFrameProviderContext","FocusFrame","props","React","createElement","FrameProvider","View","exports"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusFrame/FocusFrame.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAEO,MAAME,UAAU,GAAIC,KAAgB,iBACzCC,KAAA,CAAAC,aAAA,CAACJ,0BAAA,CAAAK,aAAa,qBACZF,KAAA,CAAAC,aAAA,CAACN,YAAA,CAAAQ,IAAI,EAAKJ,KAAQ,CACL,CAChB;AAACK,OAAA,CAAAN,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FocusTrap = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _FocusTrapMountWrapper = require("./FocusTrapMountWrapper");
|
|
9
|
+
var _KeyboardFocusLockBase = require("../KeyboardFocusLockBase/KeyboardFocusLockBase");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
const FocusTrap = exports.FocusTrap = /*#__PURE__*/_react.default.memo(({
|
|
13
|
+
lockDisabled = false,
|
|
14
|
+
...props
|
|
15
|
+
}) => /*#__PURE__*/_react.default.createElement(_FocusTrapMountWrapper.FocusTrapMountWrapper, null, /*#__PURE__*/_react.default.createElement(_KeyboardFocusLockBase.KeyboardFocusLockBase, _extends({}, props, {
|
|
16
|
+
componentType: 0,
|
|
17
|
+
lockDisabled: lockDisabled
|
|
18
|
+
}))));
|
|
19
|
+
//# sourceMappingURL=FocusTrap.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_FocusTrapMountWrapper","_KeyboardFocusLockBase","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","FocusTrap","exports","React","memo","lockDisabled","props","createElement","FocusTrapMountWrapper","KeyboardFocusLockBase","componentType"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusTrap/FocusTrap.android.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAAuF,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAGhF,MAAMO,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAGE,cAAK,CAACC,IAAI,CACjC,CAAC;EAAEC,YAAY,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,kBACjCzB,MAAA,CAAAO,OAAA,CAAAmB,aAAA,CAACvB,sBAAA,CAAAwB,qBAAqB,qBACpB3B,MAAA,CAAAO,OAAA,CAAAmB,aAAA,CAACtB,sBAAA,CAAAwB,qBAAqB,EAAApB,QAAA,KAChBiB,KAAK;EACTI,aAAa,EAAE,CAAE;EACjBL,YAAY,EAAEA;AAAa,EAC5B,CACoB,CAE3B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FocusTrap = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _FocusTrapMountWrapper = require("./FocusTrapMountWrapper");
|
|
9
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
10
|
+
const FocusTrap = props => /*#__PURE__*/React.createElement(_FocusTrapMountWrapper.FocusTrapMountWrapper, null, /*#__PURE__*/React.createElement(_reactNative.View, _extends({
|
|
11
|
+
collapsable: false,
|
|
12
|
+
accessibilityViewIsModal: true
|
|
13
|
+
}, props)));
|
|
14
|
+
exports.FocusTrap = FocusTrap;
|
|
15
|
+
//# sourceMappingURL=FocusTrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_FocusTrapMountWrapper","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","FocusTrap","props","React","createElement","FocusTrapMountWrapper","View","collapsable","accessibilityViewIsModal","exports"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusTrap/FocusTrap.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAAgE,SAAAE,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,CAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAL,CAAA,CAAAK,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAL,CAAA,KAAAJ,QAAA,CAAAY,KAAA,OAAAN,SAAA;AAGzD,MAAMO,SAAS,GAAIC,KAA6B,iBACrDC,KAAA,CAAAC,aAAA,CAACjB,sBAAA,CAAAkB,qBAAqB,qBACpBF,KAAA,CAAAC,aAAA,CAACnB,YAAA,CAAAqB,IAAI,EAAAlB,QAAA;EAACmB,WAAW,EAAE,KAAM;EAACC,wBAAwB,EAAE;AAAK,GAAKN,KAAK,CAAG,CACjD,CACxB;AAACO,OAAA,CAAAR,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FocusTrapMountWrapper = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _FocusFrameProviderContext = require("../../../context/FocusFrameProviderContext");
|
|
9
|
+
const FocusTrapMountWrapper = ({
|
|
10
|
+
children
|
|
11
|
+
}) => {
|
|
12
|
+
const a11yFrameContext = (0, _FocusFrameProviderContext.useFocusFrameContext)();
|
|
13
|
+
const instanceId = (0, _react.useRef)(Symbol('FocusLock'));
|
|
14
|
+
if (!a11yFrameContext) {
|
|
15
|
+
console.warn('Focus.Trap must be used within a Focus.Frame');
|
|
16
|
+
return children;
|
|
17
|
+
}
|
|
18
|
+
const {
|
|
19
|
+
hasFocusLock,
|
|
20
|
+
setHasFocusLock,
|
|
21
|
+
focusLockId,
|
|
22
|
+
setFocusLockId
|
|
23
|
+
} = a11yFrameContext;
|
|
24
|
+
const isActive = !hasFocusLock || focusLockId === instanceId.current;
|
|
25
|
+
|
|
26
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
27
|
+
(0, _react.useEffect)(() => {
|
|
28
|
+
const id = instanceId.current;
|
|
29
|
+
if (!hasFocusLock) {
|
|
30
|
+
setHasFocusLock(true);
|
|
31
|
+
setFocusLockId(id);
|
|
32
|
+
}
|
|
33
|
+
return () => {
|
|
34
|
+
if (focusLockId === id) {
|
|
35
|
+
setHasFocusLock(false);
|
|
36
|
+
setFocusLockId(null);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}, [hasFocusLock, setHasFocusLock, focusLockId, setFocusLockId]);
|
|
40
|
+
if (!isActive) {
|
|
41
|
+
console.warn('Multiple Focus.Trap components may cause unstable behavior');
|
|
42
|
+
}
|
|
43
|
+
return children;
|
|
44
|
+
};
|
|
45
|
+
exports.FocusTrapMountWrapper = FocusTrapMountWrapper;
|
|
46
|
+
//# sourceMappingURL=FocusTrapMountWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_FocusFrameProviderContext","FocusTrapMountWrapper","children","a11yFrameContext","useFocusFrameContext","instanceId","useRef","Symbol","console","warn","hasFocusLock","setHasFocusLock","focusLockId","setFocusLockId","isActive","current","useEffect","id","exports"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAEO,MAAME,qBAAkD,GAAGA,CAAC;EACjEC;AACF,CAAC,KAAK;EACJ,MAAMC,gBAAgB,GAAG,IAAAC,+CAAoB,EAAC,CAAC;EAC/C,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACC,MAAM,CAAC,WAAW,CAAC,CAAC;EAE9C,IAAI,CAACJ,gBAAgB,EAAE;IACrBK,OAAO,CAACC,IAAI,CAAC,8CAA8C,CAAC;IAC5D,OAAOP,QAAQ;EACjB;EAEA,MAAM;IAAEQ,YAAY;IAAEC,eAAe;IAAEC,WAAW;IAAEC;EAAe,CAAC,GAClEV,gBAAgB;EAClB,MAAMW,QAAQ,GAAG,CAACJ,YAAY,IAAIE,WAAW,KAAKP,UAAU,CAACU,OAAO;;EAEpE;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,EAAE,GAAGZ,UAAU,CAACU,OAAO;IAE7B,IAAI,CAACL,YAAY,EAAE;MACjBC,eAAe,CAAC,IAAI,CAAC;MACrBE,cAAc,CAACI,EAAE,CAAC;IACpB;IACA,OAAO,MAAM;MACX,IAAIL,WAAW,KAAKK,EAAE,EAAE;QACtBN,eAAe,CAAC,KAAK,CAAC;QACtBE,cAAc,CAAC,IAAI,CAAC;MACtB;IACF,CAAC;EACH,CAAC,EAAE,CAACH,YAAY,EAAEC,eAAe,EAAEC,WAAW,EAAEC,cAAc,CAAC,CAAC;EAEhE,IAAI,CAACC,QAAQ,EAAE;IACbN,OAAO,CAACC,IAAI,CAAC,4DAA4D,CAAC;EAC5E;EAEA,OAAOP,QAAQ;AACjB,CAAC;AAACgB,OAAA,CAAAjB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.KeyboardFocusLockBase = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _ExternalKeyboardLockViewNativeComponent = _interopRequireDefault(require("../../../nativeSpec/ExternalKeyboardLockViewNativeComponent"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
|
+
const KeyboardFocusLockBase = exports.KeyboardFocusLockBase = /*#__PURE__*/_react.default.memo(({
|
|
12
|
+
lockDisabled = false,
|
|
13
|
+
componentType = 0,
|
|
14
|
+
...props
|
|
15
|
+
}) => {
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement(_ExternalKeyboardLockViewNativeComponent.default, _extends({}, props, {
|
|
17
|
+
componentType: componentType,
|
|
18
|
+
lockDisabled: lockDisabled
|
|
19
|
+
}));
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=KeyboardFocusLockBase.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_ExternalKeyboardLockViewNativeComponent","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","KeyboardFocusLockBase","exports","React","memo","lockDisabled","componentType","props","createElement"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.android.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,wCAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAmG,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAI5F,MAAMO,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,gBAAGE,cAAK,CAACC,IAAI,CAC7C,CAAC;EAAEC,YAAY,GAAG,KAAK;EAAEC,aAAa,GAAG,CAAC;EAAE,GAAGC;AAAM,CAAC,KAAK;EACzD,oBACEzB,MAAA,CAAAM,OAAA,CAAAoB,aAAA,CAACvB,wCAAA,CAAAG,OAAwB,EAAAC,QAAA,KACnBkB,KAAK;IACTD,aAAa,EAAEA,aAAc;IAC7BD,YAAY,EAAEA;EAAa,EAC5B,CAAC;AAEN,CACF,CAAC","ignoreList":[]}
|
package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.KeyboardFocusLockBase = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
const KeyboardFocusLockBase = exports.KeyboardFocusLockBase = _reactNative.View;
|
|
9
|
+
//# sourceMappingURL=KeyboardFocusLockBase.js.map
|
package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","KeyboardFocusLockBase","exports","View"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGO,MAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAChCE,iBAAgE","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useFocusFrameContext = exports.FrameProvider = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
9
|
+
const FocusFrameProviderContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
10
|
+
const useFocusFrameContext = () => (0, _react.useContext)(FocusFrameProviderContext);
|
|
11
|
+
exports.useFocusFrameContext = useFocusFrameContext;
|
|
12
|
+
const FrameProvider = ({
|
|
13
|
+
children
|
|
14
|
+
}) => {
|
|
15
|
+
const [hasFocusLock, setHasFocusLock] = (0, _react.useState)(false);
|
|
16
|
+
const [focusLockId, setFocusLockId] = (0, _react.useState)(null);
|
|
17
|
+
const state = (0, _react.useMemo)(() => ({
|
|
18
|
+
hasFocusLock,
|
|
19
|
+
focusLockId,
|
|
20
|
+
setHasFocusLock,
|
|
21
|
+
setFocusLockId
|
|
22
|
+
}), [hasFocusLock, focusLockId, setHasFocusLock, setFocusLockId]);
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(FocusFrameProviderContext.Provider, {
|
|
24
|
+
value: state
|
|
25
|
+
}, children);
|
|
26
|
+
};
|
|
27
|
+
exports.FrameProvider = FrameProvider;
|
|
28
|
+
//# sourceMappingURL=FocusFrameProviderContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FocusFrameProviderContext","createContext","undefined","useFocusFrameContext","useContext","exports","FrameProvider","children","hasFocusLock","setHasFocusLock","useState","focusLockId","setFocusLockId","state","useMemo","createElement","Provider","value"],"sourceRoot":"../../../src","sources":["context/FocusFrameProviderContext.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAuC,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAevC,MAAMkB,yBAAyB,gBAAG,IAAAC,oBAAa,EAE7CC,SAAS,CAAC;AAEL,MAAMC,oBAAoB,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACJ,yBAAyB,CAAC;AAACK,OAAA,CAAAF,oBAAA,GAAAA,oBAAA;AAEzE,MAAMG,aAA0C,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC1E,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACvD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAF,eAAQ,EAAgB,IAAI,CAAC;EAEnE,MAAMG,KAAK,GAAG,IAAAC,cAAO,EACnB,OAAO;IAAEN,YAAY;IAAEG,WAAW;IAAEF,eAAe;IAAEG;EAAe,CAAC,CAAC,EACtE,CAACJ,YAAY,EAAEG,WAAW,EAAEF,eAAe,EAAEG,cAAc,CAC7D,CAAC;EAED,oBACElC,MAAA,CAAAa,OAAA,CAAAwB,aAAA,CAACf,yBAAyB,CAACgB,QAAQ;IAACC,KAAK,EAAEJ;EAAM,GAC9CN,QACiC,CAAC;AAEzC,CAAC;AAACF,OAAA,CAAAC,aAAA,GAAAA,aAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -21,7 +21,7 @@ Object.defineProperty(exports, "ExternalKeyboardViewNative", {
|
|
|
21
21
|
return _nativeSpec.ExternalKeyboardViewNative;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
exports.Keyboard = void 0;
|
|
24
|
+
exports.Keyboard = exports.Focus = void 0;
|
|
25
25
|
Object.defineProperty(exports, "KeyboardExtendedBaseView", {
|
|
26
26
|
enumerable: true,
|
|
27
27
|
get: function () {
|
|
@@ -106,6 +106,8 @@ Object.defineProperty(exports, "withKeyboardFocus", {
|
|
|
106
106
|
return _withKeyboardFocus.withKeyboardFocus;
|
|
107
107
|
}
|
|
108
108
|
});
|
|
109
|
+
var _FocusFrame = require("./components/KeyboardFocusLock/FocusFrame/FocusFrame");
|
|
110
|
+
var _FocusTrap = require("./components/KeyboardFocusLock/FocusTrap/FocusTrap");
|
|
109
111
|
var _nativeSpec = require("./nativeSpec");
|
|
110
112
|
var _components = require("./components");
|
|
111
113
|
var _Pressable = require("./components/Touchable/Pressable");
|
|
@@ -117,4 +119,8 @@ var _OrderFocusContext = require("./context/OrderFocusContext");
|
|
|
117
119
|
var Keyboard = _interopRequireWildcard(require("./modules/Keyboard"));
|
|
118
120
|
exports.Keyboard = Keyboard;
|
|
119
121
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
122
|
+
const Focus = exports.Focus = {
|
|
123
|
+
Frame: _FocusFrame.FocusFrame,
|
|
124
|
+
Trap: _FocusTrap.FocusTrap
|
|
125
|
+
};
|
|
120
126
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_FocusFrame","require","_FocusTrap","_nativeSpec","_components","_Pressable","_KeyboardExtendedInput","_KeyboardFocusGroup","_withKeyboardFocus","_IsViewFocusedContext","_OrderFocusContext","Keyboard","_interopRequireWildcard","exports","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Focus","Frame","FocusFrame","Trap","FocusTrap"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAcA,IAAAG,WAAA,GAAAH,OAAA;AAOA,IAAAI,UAAA,GAAAJ,OAAA;AAIA,IAAAK,sBAAA,GAAAL,OAAA;AAIA,IAAAM,mBAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AAKA,IAAAU,QAAA,GAAAC,uBAAA,CAAAX,OAAA;AAA+CY,OAAA,CAAAF,QAAA,GAAAA,QAAA;AAAA,SAAAC,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGxC,MAAMkB,KAAK,GAAApB,OAAA,CAAAoB,KAAA,GAAG;EACnBC,KAAK,EAAEC,sBAAU;EACjBC,IAAI,EAAEC;AACR,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('ExternalKeyboardLockView');
|
|
10
|
+
//# sourceMappingURL=ExternalKeyboardLockViewNativeComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["nativeSpec/ExternalKeyboardLockViewNativeComponent.ts"],"mappings":";;;;;;AAEA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAQ9E,IAAAG,+BAAsB,EACnC,0BACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/KeyboardFocusLock.types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { FrameProvider } from '../../../context/FocusFrameProviderContext';
|
|
4
|
+
import { KeyboardFocusLockBase } from '../KeyboardFocusLockBase/KeyboardFocusLockBase';
|
|
5
|
+
export const FocusFrame = /*#__PURE__*/React.memo(({
|
|
6
|
+
lockDisabled = false,
|
|
7
|
+
...props
|
|
8
|
+
}) => {
|
|
9
|
+
return /*#__PURE__*/React.createElement(FrameProvider, null, /*#__PURE__*/React.createElement(KeyboardFocusLockBase, _extends({}, props, {
|
|
10
|
+
componentType: 1,
|
|
11
|
+
lockDisabled: lockDisabled
|
|
12
|
+
})));
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=FocusFrame.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","FrameProvider","KeyboardFocusLockBase","FocusFrame","memo","lockDisabled","props","createElement","_extends","componentType"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusFrame/FocusFrame.android.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAQ,4CAA4C;AAC1E,SAASC,qBAAqB,QAAQ,gDAAgD;AAGtF,OAAO,MAAMC,UAAU,gBAAGH,KAAK,CAACI,IAAI,CAClC,CAAC;EAAEC,YAAY,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EACtC,oBACEN,KAAA,CAAAO,aAAA,CAACN,aAAa,qBACZD,KAAA,CAAAO,aAAA,CAACL,qBAAqB,EAAAM,QAAA,KAChBF,KAAK;IACTG,aAAa,EAAE,CAAE;IACjBJ,YAAY,EAAEA;EAAa,EAC5B,CACY,CAAC;AAEpB,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { View } from 'react-native';
|
|
2
|
+
import { FrameProvider } from '../../../context/FocusFrameProviderContext';
|
|
3
|
+
export const FocusFrame = props => /*#__PURE__*/React.createElement(FrameProvider, null, /*#__PURE__*/React.createElement(View, props));
|
|
4
|
+
//# sourceMappingURL=FocusFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","FrameProvider","FocusFrame","props","React","createElement"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusFrame/FocusFrame.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAwB,cAAc;AACnD,SAASC,aAAa,QAAQ,4CAA4C;AAE1E,OAAO,MAAMC,UAAU,GAAIC,KAAgB,iBACzCC,KAAA,CAAAC,aAAA,CAACJ,aAAa,qBACZG,KAAA,CAAAC,aAAA,CAACL,IAAI,EAAKG,KAAQ,CACL,CAChB","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { FocusTrapMountWrapper } from './FocusTrapMountWrapper';
|
|
4
|
+
import { KeyboardFocusLockBase } from '../KeyboardFocusLockBase/KeyboardFocusLockBase';
|
|
5
|
+
export const FocusTrap = /*#__PURE__*/React.memo(({
|
|
6
|
+
lockDisabled = false,
|
|
7
|
+
...props
|
|
8
|
+
}) => /*#__PURE__*/React.createElement(FocusTrapMountWrapper, null, /*#__PURE__*/React.createElement(KeyboardFocusLockBase, _extends({}, props, {
|
|
9
|
+
componentType: 0,
|
|
10
|
+
lockDisabled: lockDisabled
|
|
11
|
+
}))));
|
|
12
|
+
//# sourceMappingURL=FocusTrap.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","FocusTrapMountWrapper","KeyboardFocusLockBase","FocusTrap","memo","lockDisabled","props","createElement","_extends","componentType"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusTrap/FocusTrap.android.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,qBAAqB,QAAQ,gDAAgD;AAGtF,OAAO,MAAMC,SAAS,gBAAGH,KAAK,CAACI,IAAI,CACjC,CAAC;EAAEC,YAAY,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,kBACjCN,KAAA,CAAAO,aAAA,CAACN,qBAAqB,qBACpBD,KAAA,CAAAO,aAAA,CAACL,qBAAqB,EAAAM,QAAA,KAChBF,KAAK;EACTG,aAAa,EAAE,CAAE;EACjBJ,YAAY,EAAEA;AAAa,EAC5B,CACoB,CAE3B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { FocusTrapMountWrapper } from './FocusTrapMountWrapper';
|
|
4
|
+
export const FocusTrap = props => /*#__PURE__*/React.createElement(FocusTrapMountWrapper, null, /*#__PURE__*/React.createElement(View, _extends({
|
|
5
|
+
collapsable: false,
|
|
6
|
+
accessibilityViewIsModal: true
|
|
7
|
+
}, props)));
|
|
8
|
+
//# sourceMappingURL=FocusTrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","FocusTrapMountWrapper","FocusTrap","props","React","createElement","_extends","collapsable","accessibilityViewIsModal"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusTrap/FocusTrap.tsx"],"mappings":";AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,SAASC,qBAAqB,QAAQ,yBAAyB;AAG/D,OAAO,MAAMC,SAAS,GAAIC,KAA6B,iBACrDC,KAAA,CAAAC,aAAA,CAACJ,qBAAqB,qBACpBG,KAAA,CAAAC,aAAA,CAACL,IAAI,EAAAM,QAAA;EAACC,WAAW,EAAE,KAAM;EAACC,wBAAwB,EAAE;AAAK,GAAKL,KAAK,CAAG,CACjD,CACxB","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { useFocusFrameContext } from '../../../context/FocusFrameProviderContext';
|
|
3
|
+
export const FocusTrapMountWrapper = ({
|
|
4
|
+
children
|
|
5
|
+
}) => {
|
|
6
|
+
const a11yFrameContext = useFocusFrameContext();
|
|
7
|
+
const instanceId = useRef(Symbol('FocusLock'));
|
|
8
|
+
if (!a11yFrameContext) {
|
|
9
|
+
console.warn('Focus.Trap must be used within a Focus.Frame');
|
|
10
|
+
return children;
|
|
11
|
+
}
|
|
12
|
+
const {
|
|
13
|
+
hasFocusLock,
|
|
14
|
+
setHasFocusLock,
|
|
15
|
+
focusLockId,
|
|
16
|
+
setFocusLockId
|
|
17
|
+
} = a11yFrameContext;
|
|
18
|
+
const isActive = !hasFocusLock || focusLockId === instanceId.current;
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
const id = instanceId.current;
|
|
23
|
+
if (!hasFocusLock) {
|
|
24
|
+
setHasFocusLock(true);
|
|
25
|
+
setFocusLockId(id);
|
|
26
|
+
}
|
|
27
|
+
return () => {
|
|
28
|
+
if (focusLockId === id) {
|
|
29
|
+
setHasFocusLock(false);
|
|
30
|
+
setFocusLockId(null);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}, [hasFocusLock, setHasFocusLock, focusLockId, setFocusLockId]);
|
|
34
|
+
if (!isActive) {
|
|
35
|
+
console.warn('Multiple Focus.Trap components may cause unstable behavior');
|
|
36
|
+
}
|
|
37
|
+
return children;
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=FocusTrapMountWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useFocusFrameContext","FocusTrapMountWrapper","children","a11yFrameContext","instanceId","Symbol","console","warn","hasFocusLock","setHasFocusLock","focusLockId","setFocusLockId","isActive","current","id"],"sourceRoot":"../../../../../src","sources":["components/KeyboardFocusLock/FocusTrap/FocusTrapMountWrapper.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAgC,OAAO;AACjE,SAASC,oBAAoB,QAAQ,4CAA4C;AAEjF,OAAO,MAAMC,qBAAkD,GAAGA,CAAC;EACjEC;AACF,CAAC,KAAK;EACJ,MAAMC,gBAAgB,GAAGH,oBAAoB,CAAC,CAAC;EAC/C,MAAMI,UAAU,GAAGL,MAAM,CAACM,MAAM,CAAC,WAAW,CAAC,CAAC;EAE9C,IAAI,CAACF,gBAAgB,EAAE;IACrBG,OAAO,CAACC,IAAI,CAAC,8CAA8C,CAAC;IAC5D,OAAOL,QAAQ;EACjB;EAEA,MAAM;IAAEM,YAAY;IAAEC,eAAe;IAAEC,WAAW;IAAEC;EAAe,CAAC,GAClER,gBAAgB;EAClB,MAAMS,QAAQ,GAAG,CAACJ,YAAY,IAAIE,WAAW,KAAKN,UAAU,CAACS,OAAO;;EAEpE;EACAf,SAAS,CAAC,MAAM;IACd,MAAMgB,EAAE,GAAGV,UAAU,CAACS,OAAO;IAE7B,IAAI,CAACL,YAAY,EAAE;MACjBC,eAAe,CAAC,IAAI,CAAC;MACrBE,cAAc,CAACG,EAAE,CAAC;IACpB;IACA,OAAO,MAAM;MACX,IAAIJ,WAAW,KAAKI,EAAE,EAAE;QACtBL,eAAe,CAAC,KAAK,CAAC;QACtBE,cAAc,CAAC,IAAI,CAAC;MACtB;IACF,CAAC;EACH,CAAC,EAAE,CAACH,YAAY,EAAEC,eAAe,EAAEC,WAAW,EAAEC,cAAc,CAAC,CAAC;EAEhE,IAAI,CAACC,QAAQ,EAAE;IACbN,OAAO,CAACC,IAAI,CAAC,4DAA4D,CAAC;EAC5E;EAEA,OAAOL,QAAQ;AACjB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import ExternalKeyboardLockView from '../../../nativeSpec/ExternalKeyboardLockViewNativeComponent';
|
|
4
|
+
export const KeyboardFocusLockBase = /*#__PURE__*/React.memo(({
|
|
5
|
+
lockDisabled = false,
|
|
6
|
+
componentType = 0,
|
|
7
|
+
...props
|
|
8
|
+
}) => {
|
|
9
|
+
return /*#__PURE__*/React.createElement(ExternalKeyboardLockView, _extends({}, props, {
|
|
10
|
+
componentType: componentType,
|
|
11
|
+
lockDisabled: lockDisabled
|
|
12
|
+
}));
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=KeyboardFocusLockBase.android.js.map
|