react-native-ui-lib 8.1.1 → 8.1.5
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/lib/android/build.gradle +32 -0
- package/lib/android/src/main/AndroidManifest.xml +4 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +28 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontModule.java +139 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontPackage.java +28 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightFrame.java +33 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightViewTagParams.java +50 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterView.java +167 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +131 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewPackage.java +28 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/UiUtils.java +50 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/AppContextHolder.java +52 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java +213 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.java +39 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewManager.java +29 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewShadow.java +29 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.java +34 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputPackage.java +49 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactContextHolder.java +16 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.java +83 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.java +163 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/PredicateFunc.java +5 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +33 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils.java +65 -0
- package/lib/android/src/main/java/com/wix/reactnativeuilib/utils/LogForwarder.java +45 -0
- package/lib/android/src/main/res/layout/wheel_picker.xml +9 -0
- package/lib/android/src/main/res/values/colors.xml +9 -0
- package/lib/android/src/main/res/values/styles.xml +9 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/keyboardRegistry.api.json +50 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/keyboardAccessoryView.api.json +58 -0
- package/lib/components/Keyboard/KeyboardAwareInsetsView/keyboardAwareInsetsView.api.json +14 -0
- package/lib/components/Keyboard/KeyboardTrackingView/keyboardTrackingView.api.json +86 -0
- package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.h +9 -0
- package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.m +115 -0
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.h +19 -0
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.m +216 -0
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.h +6 -0
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.m +28 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.h +39 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.m +160 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.h +36 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.m +121 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.h +48 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.m +27 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolation.h +16 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.h +19 -0
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.mm +155 -0
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.h +16 -0
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +450 -0
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +18 -0
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +99 -0
- package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.h +14 -0
- package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +827 -0
- package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.h +44 -0
- package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.m +171 -0
- package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.h +6 -0
- package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.m +17 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.h +6 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.m +105 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.h +5 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.m +20 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.h +7 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.m +76 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.h +9 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.m +14 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.h +5 -0
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.m +26 -0
- package/lib/specs/HighlighterViewNativeComponent.ts +78 -0
- package/lib/specs/KeyboardTrackingViewNativeComponent.ts +74 -0
- package/package.json +2 -25
- package/src/assets/Assets.d.ts +5 -0
- package/src/assets/emojis/index.d.ts +1343 -0
- package/src/assets/index.d.ts +3 -0
- package/src/assets/internal/index.d.ts +4 -0
- package/src/commons/Config.d.ts +24 -0
- package/src/commons/Constants.d.ts +54 -0
- package/src/commons/UIComponent.d.ts +4 -0
- package/src/commons/asBaseComponent.d.ts +15 -0
- package/src/commons/baseComponent.d.ts +2 -0
- package/src/commons/forwardRef.d.ts +8 -0
- package/src/commons/modifiers.d.ts +118 -0
- package/src/commons/new.d.ts +8 -0
- package/src/commons/withScrollEnabler.d.ts +13 -0
- package/src/commons/withScrollReached.d.ts +35 -0
- package/src/components/WheelPicker/Item.d.ts +28 -0
- package/src/components/WheelPicker/WheelPicker.driver.d.ts +18 -0
- package/src/components/WheelPicker/WheelPickerItem.driver.d.ts +8 -0
- package/src/components/WheelPicker/helpers/useListMiddleIndex.d.ts +6 -0
- package/src/components/WheelPicker/index.d.ts +88 -0
- package/src/components/WheelPicker/types.d.ts +6 -0
- package/src/components/WheelPicker/usePresenter.d.ts +21 -0
- package/src/components/actionBar/index.d.ts +35 -0
- package/src/components/actionSheet/index.d.ts +80 -0
- package/src/components/animatedImage/index.d.ts +28 -0
- package/src/components/avatar/index.d.ts +382 -0
- package/src/components/badge/index.d.ts +879 -0
- package/src/components/baseInput/Validators.d.ts +8 -0
- package/src/components/baseInput/index.d.ts +29 -0
- package/src/components/button/Button.driver.new.d.ts +34 -0
- package/src/components/button/ButtonConstants.d.ts +26 -0
- package/src/components/button/index.d.ts +573 -0
- package/src/components/button/types.d.ts +157 -0
- package/src/components/card/CardContext.d.ts +3 -0
- package/src/components/card/CardImage.d.ts +20 -0
- package/src/components/card/CardPresenter.d.ts +12 -0
- package/src/components/card/CardSection.d.ts +79 -0
- package/src/components/card/asCardChild.d.ts +6 -0
- package/src/components/card/index.d.ts +120 -0
- package/src/components/carousel/Carousel.driver.new.d.ts +9 -0
- package/src/components/carousel/CarouselPresenter.d.ts +9 -0
- package/src/components/carousel/index.d.ts +73 -0
- package/src/components/carousel/types.d.ts +107 -0
- package/src/components/checkbox/Checkbox.driver.d.ts +15 -0
- package/src/components/checkbox/index.d.ts +129 -0
- package/src/components/chip/chip.driver.d.ts +33 -0
- package/src/components/chip/index.d.ts +209 -0
- package/src/components/chipsInput/index.d.ts +55 -0
- package/src/components/colorPalette/index.d.ts +116 -0
- package/src/components/colorPicker/ColorPickerDialog.d.ts +39 -0
- package/src/components/colorPicker/ColorPickerDialogHeader.d.ts +9 -0
- package/src/components/colorPicker/ColorPickerDialogSliders.d.ts +10 -0
- package/src/components/colorPicker/ColorPickerPresenter.d.ts +16 -0
- package/src/components/colorPicker/ColorPickerPreview.d.ts +12 -0
- package/src/components/colorPicker/index.d.ts +45 -0
- package/src/components/colorSwatch/index.d.ts +50 -0
- package/src/components/connectionStatusBar/index.d.ts +33 -0
- package/src/components/connectionStatusBar/types.d.ts +28 -0
- package/src/components/dash/index.d.ts +19 -0
- package/src/components/dateTimePicker/DateTimePicker.driver.d.ts +7 -0
- package/src/components/dateTimePicker/index.d.ts +288 -0
- package/src/components/dateTimePicker/useOldApi.d.ts +27 -0
- package/src/components/dialog/Dialog.driver.new.d.ts +6 -0
- package/src/components/dialog/DialogHeader.d.ts +4 -0
- package/src/components/dialog/index.d.ts +15 -0
- package/src/components/dialog/types.d.ts +138 -0
- package/src/components/dialog/useDialogContent.d.ts +13 -0
- package/src/components/drawer/Swipeable.d.ts +94 -0
- package/src/components/drawer/index.d.ts +161 -0
- package/src/components/expandableSection/index.d.ts +40 -0
- package/src/components/fadedScrollView/index.d.ts +59 -0
- package/src/components/fader/index.d.ts +37 -0
- package/src/components/featureHighlight/index.d.ts +147 -0
- package/src/components/floatingButton/index.d.ts +89 -0
- package/src/components/gradient/index.d.ts +19 -0
- package/src/components/gridList/index.d.ts +5 -0
- package/src/components/gridList/types.d.ts +29 -0
- package/src/components/gridList/useGridLayout.d.ts +15 -0
- package/src/components/gridListItem/index.d.ts +132 -0
- package/src/components/gridView/index.d.ts +80 -0
- package/src/components/hint/Hint.driver.d.ts +6 -0
- package/src/components/hint/Hint.driver.new.d.ts +19 -0
- package/src/components/hint/HintAnchor.d.ts +13 -0
- package/src/components/hint/HintBubble.d.ts +12 -0
- package/src/components/hint/HintMockChildren.d.ts +8 -0
- package/src/components/hint/HintOld.d.ts +196 -0
- package/src/components/hint/hooks/useHintAccessibility.d.ts +10 -0
- package/src/components/hint/hooks/useHintLayout.d.ts +13 -0
- package/src/components/hint/hooks/useHintPosition.d.ts +29 -0
- package/src/components/hint/hooks/useHintVisibility.d.ts +6 -0
- package/src/components/hint/index.d.ts +14 -0
- package/src/components/hint/types.d.ts +106 -0
- package/src/components/icon/index.d.ts +97 -0
- package/src/components/image/Image.driver.d.ts +4 -0
- package/src/components/image/Image.driver.new.d.ts +2 -0
- package/src/components/image/index.d.ts +192 -0
- package/src/components/listItem/ListItemPart.d.ts +15 -0
- package/src/components/listItem/index.d.ts +52 -0
- package/src/components/listItem/types.d.ts +60 -0
- package/src/components/loaderScreen/index.d.ts +13 -0
- package/src/components/loaderScreen/types.d.ts +32 -0
- package/src/components/marquee/index.d.ts +5 -0
- package/src/components/marquee/types.d.ts +35 -0
- package/src/components/maskedInput/index.d.ts +5 -0
- package/src/components/maskedInput/new.d.ts +22 -0
- package/src/components/modal/Modal.driver.new.d.ts +8 -0
- package/src/components/modal/TopBar.d.ts +89 -0
- package/src/components/modal/index.d.ts +64 -0
- package/src/components/numberInput/NumberInput.driver.d.ts +6 -0
- package/src/components/numberInput/Presenter.d.ts +21 -0
- package/src/components/numberInput/index.d.ts +57 -0
- package/src/components/overlay/index.d.ts +68 -0
- package/src/components/pageControl/index.d.ts +56 -0
- package/src/components/panView/index.d.ts +21 -0
- package/src/components/panView/panningUtil.d.ts +38 -0
- package/src/components/panView/usePanGesture.d.ts +49 -0
- package/src/components/picker/Picker.driver.new.d.ts +44 -0
- package/src/components/picker/PickerContext.d.ts +4 -0
- package/src/components/picker/PickerItem.d.ts +11 -0
- package/src/components/picker/PickerItemsList.d.ts +4 -0
- package/src/components/picker/PickerPresenter.d.ts +7 -0
- package/src/components/picker/PickerSelectionStatusBar.d.ts +3 -0
- package/src/components/picker/helpers/useFieldType.d.ts +373 -0
- package/src/components/picker/helpers/useImperativePickerHandle.d.ts +5 -0
- package/src/components/picker/helpers/useNewPickerProps.d.ts +3 -0
- package/src/components/picker/helpers/usePickerLabel.d.ts +17 -0
- package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +4 -0
- package/src/components/picker/helpers/usePickerSearch.d.ts +9 -0
- package/src/components/picker/helpers/usePickerSelection.d.ts +16 -0
- package/src/components/picker/index.d.ts +15 -0
- package/src/components/picker/types.d.ts +321 -0
- package/src/components/pieChart/PieSegment.d.ts +34 -0
- package/src/components/pieChart/index.d.ts +15 -0
- package/src/components/progressBar/index.d.ts +65 -0
- package/src/components/progressiveImage/index.d.ts +23 -0
- package/src/components/radioButton/RadioButton.driver.d.ts +9 -0
- package/src/components/radioButton/index.d.ts +121 -0
- package/src/components/radioGroup/RadioGroup.driver.d.ts +13 -0
- package/src/components/radioGroup/RadioGroupContext.d.ts +14 -0
- package/src/components/radioGroup/asRadioGroupChild.d.ts +2 -0
- package/src/components/radioGroup/index.d.ts +47 -0
- package/src/components/scrollBar/index.d.ts +88 -0
- package/src/components/searchInput/index.d.ts +37 -0
- package/src/components/searchInput/types.d.ts +66 -0
- package/src/components/sectionsWheelPicker/SectionsWheelPicker.driver.d.ts +25 -0
- package/src/components/sectionsWheelPicker/index.d.ts +43 -0
- package/src/components/segmentedControl/index.d.ts +90 -0
- package/src/components/segmentedControl/segment.d.ts +111 -0
- package/src/components/segmentedControl/useSegmentedControlPreset.d.ts +10 -0
- package/src/components/skeletonView/index.d.ts +163 -0
- package/src/components/slider/ColorSliderGroup.d.ts +13 -0
- package/src/components/slider/GradientSlider.d.ts +20 -0
- package/src/components/slider/SliderContext.d.ts +8 -0
- package/src/components/slider/Thumb.d.ts +32 -0
- package/src/components/slider/index.d.ts +31 -0
- package/src/components/slider/slider.driver.d.ts +5 -0
- package/src/components/slider/types.d.ts +197 -0
- package/src/components/sortableGridList/SortableItem.d.ts +6 -0
- package/src/components/sortableGridList/index.d.ts +5 -0
- package/src/components/sortableGridList/types.d.ts +34 -0
- package/src/components/sortableGridList/usePresenter.d.ts +21 -0
- package/src/components/sortableList/SortableList.driver.new.d.ts +2 -0
- package/src/components/sortableList/SortableListContext.d.ts +19 -0
- package/src/components/sortableList/SortableListItem.d.ts +8 -0
- package/src/components/sortableList/SortableListItem.driver.new.d.ts +11 -0
- package/src/components/sortableList/index.d.ts +5 -0
- package/src/components/sortableList/types.d.ts +48 -0
- package/src/components/sortableList/usePresenter.d.ts +12 -0
- package/src/components/stackAggregator/index.d.ts +89 -0
- package/src/components/stateScreen/index.d.ts +5 -0
- package/src/components/stateScreen/types.d.ts +30 -0
- package/src/components/stepper/index.d.ts +47 -0
- package/src/components/svgImage/index.d.ts +14 -0
- package/src/components/svgImage/index.web.d.ts +18 -0
- package/src/components/switch/index.d.ts +102 -0
- package/src/components/switch/switch.driver.d.ts +18 -0
- package/src/components/tabController/PageCarousel.d.ts +9 -0
- package/src/components/tabController/TabBar.d.ts +97 -0
- package/src/components/tabController/TabBarContext.d.ts +18 -0
- package/src/components/tabController/TabBarItem.d.ts +105 -0
- package/src/components/tabController/TabPage.d.ts +33 -0
- package/src/components/tabController/index.d.ts +48 -0
- package/src/components/tabController/useImperativeTabControllerHandle.d.ts +6 -0
- package/src/components/tabController/useScrollToItem.d.ts +79 -0
- package/src/components/text/Text.driver.d.ts +7 -0
- package/src/components/text/Text.driver.new.d.ts +17 -0
- package/src/components/text/index.d.ts +195 -0
- package/src/components/textField/CharCounter.d.ts +7 -0
- package/src/components/textField/ClearButton.d.ts +4 -0
- package/src/components/textField/FieldContext.d.ts +4 -0
- package/src/components/textField/FloatingPlaceholder.d.ts +7 -0
- package/src/components/textField/Input.d.ts +8 -0
- package/src/components/textField/Label.d.ts +7 -0
- package/src/components/textField/Presenter.d.ts +7 -0
- package/src/components/textField/TextField.driver.new.d.ts +129 -0
- package/src/components/textField/ValidationMessage.d.ts +7 -0
- package/src/components/textField/index.d.ts +114 -0
- package/src/components/textField/presets/outline.d.ts +737 -0
- package/src/components/textField/presets/underline.d.ts +735 -0
- package/src/components/textField/textInput/index.d.ts +1 -0
- package/src/components/textField/textInput/index.web.d.ts +3 -0
- package/src/components/textField/types.d.ts +287 -0
- package/src/components/textField/useFieldState.d.ts +16 -0
- package/src/components/textField/useImperativeInputHandle.d.ts +4 -0
- package/src/components/textField/usePreset.d.ts +1696 -0
- package/src/components/textField/validators.d.ts +9 -0
- package/src/components/textFieldOld/index.d.ts +71 -0
- package/src/components/timeline/Line.d.ts +10 -0
- package/src/components/timeline/Point.d.ts +9 -0
- package/src/components/timeline/index.d.ts +11 -0
- package/src/components/timeline/line.driver.d.ts +10 -0
- package/src/components/timeline/point.driver.d.ts +8 -0
- package/src/components/timeline/timeline.driver.d.ts +25 -0
- package/src/components/timeline/types.d.ts +50 -0
- package/src/components/touchableOpacity/index.d.ts +50 -0
- package/src/components/view/View.driver.new.d.ts +7 -0
- package/src/components/view/index.d.ts +46 -0
- package/src/components/wizard/WizardStates.d.ts +2 -0
- package/src/components/wizard/WizardStep.d.ts +4 -0
- package/src/components/wizard/index.d.ts +31 -0
- package/src/components/wizard/types.d.ts +90 -0
- package/src/helpers/AvatarHelper.d.ts +9 -0
- package/src/helpers/FormattingPresenter.d.ts +6 -0
- package/src/helpers/Profiler.d.ts +22 -0
- package/src/helpers/index.d.ts +3 -0
- package/src/hooks/index.d.ts +14 -0
- package/src/hooks/useCombinedRefs/index.d.ts +3 -0
- package/src/hooks/useDebounce/index.d.ts +5 -0
- package/src/hooks/useDidUpdate/index.d.ts +6 -0
- package/src/hooks/useHiddenLocation/index.d.ts +13 -0
- package/src/hooks/useHiddenLocation/index.web.d.ts +13 -0
- package/src/hooks/useKeyboardHeight/index.d.ts +5 -0
- package/src/hooks/useMeasure/index.d.ts +15 -0
- package/src/hooks/useModifiers/index.d.ts +3 -0
- package/src/hooks/useOrientation/index.d.ts +7 -0
- package/src/hooks/useScrollEnabler/index.d.ts +23 -0
- package/src/hooks/useScrollReached/index.d.ts +28 -0
- package/src/hooks/useScrollTo/index.d.ts +37 -0
- package/src/hooks/useScrollToItem/index.d.ts +65 -0
- package/src/hooks/useThemeProps/index.d.ts +2 -0
- package/src/hooks/useToggleValue/index.d.ts +2 -0
- package/src/incubator/TouchableOpacity.d.ts +52 -0
- package/src/incubator/calendar/Agenda.d.ts +4 -0
- package/src/incubator/calendar/CalendarContext.d.ts +4 -0
- package/src/incubator/calendar/CalendarItem.d.ts +5 -0
- package/src/incubator/calendar/Day.d.ts +4 -0
- package/src/incubator/calendar/Day_OLD.d.ts +4 -0
- package/src/incubator/calendar/Header.d.ts +4 -0
- package/src/incubator/calendar/Month.d.ts +4 -0
- package/src/incubator/calendar/TodayButton.d.ts +4 -0
- package/src/incubator/calendar/Week.d.ts +4 -0
- package/src/incubator/calendar/WeekDaysNames.d.ts +4 -0
- package/src/incubator/calendar/helpers/CalendarProcessor.d.ts +2 -0
- package/src/incubator/calendar/helpers/DataProcessor.d.ts +2 -0
- package/src/incubator/calendar/helpers/DateUtils.d.ts +23 -0
- package/src/incubator/calendar/index.d.ts +7 -0
- package/src/incubator/calendar/types.d.ts +118 -0
- package/src/incubator/expandableOverlay/ExpandableOverlay.driver.d.ts +7 -0
- package/src/incubator/expandableOverlay/index.d.ts +83 -0
- package/src/incubator/gradient/BorderGradient.d.ts +4 -0
- package/src/incubator/gradient/CircleGradient.d.ts +4 -0
- package/src/incubator/gradient/RectangleGradient.d.ts +4 -0
- package/src/incubator/gradient/index.d.ts +5 -0
- package/src/incubator/gradient/types.d.ts +26 -0
- package/src/incubator/gradient/useAngleTransform.d.ts +27 -0
- package/src/incubator/index.d.ts +9 -0
- package/src/incubator/slider/Slider.driver.d.ts +5 -0
- package/src/incubator/slider/SliderPresenter.d.ts +6 -0
- package/src/incubator/slider/Thumb.d.ts +24 -0
- package/src/incubator/slider/Track.d.ts +13 -0
- package/src/incubator/slider/index.d.ts +139 -0
- package/src/incubator/toast/Toast.driver.new.d.ts +54 -0
- package/src/incubator/toast/helpers/useToastAnimation.d.ts +22 -0
- package/src/incubator/toast/helpers/useToastPresets.d.ts +8 -0
- package/src/incubator/toast/helpers/useToastTimer.d.ts +6 -0
- package/src/incubator/toast/index.d.ts +9 -0
- package/src/incubator/toast/index.js +4 -1
- package/src/incubator/toast/types.d.ts +111 -0
- package/src/index.d.ts +92 -0
- package/src/optionalDependencies/BlurViewPackage.d.ts +2 -0
- package/src/optionalDependencies/BlurViewPackage.web.d.ts +2 -0
- package/src/optionalDependencies/DateTimePickerPackage.d.ts +2 -0
- package/src/optionalDependencies/FlashListPackage.d.ts +2 -0
- package/src/optionalDependencies/HapticFeedbackPackage.d.ts +2 -0
- package/src/optionalDependencies/LinearGradientPackage.d.ts +2 -0
- package/src/optionalDependencies/MomentPackage.d.ts +2 -0
- package/src/optionalDependencies/NetInfoPackage.d.ts +2 -0
- package/src/optionalDependencies/PostCssPackage.d.ts +5 -0
- package/src/optionalDependencies/ShimmerPackage.d.ts +2 -0
- package/src/optionalDependencies/SvgPackage.d.ts +3 -0
- package/src/optionalDependencies/index.d.ts +9 -0
- package/src/optionalDependencies/index.web.d.ts +7 -0
- package/src/services/HapticService.d.ts +15 -0
- package/src/services/LogService.d.ts +35 -0
- package/src/services/index.d.ts +2 -0
- package/src/style/borderRadiuses.d.ts +30 -0
- package/src/style/colorName.d.ts +8 -0
- package/src/style/colorNameMap.d.ts +2 -0
- package/src/style/colors.d.ts +274 -0
- package/src/style/colorsPalette.d.ts +101 -0
- package/src/style/components.d.ts +15 -0
- package/src/style/componentsColors.d.ts +5 -0
- package/src/style/designTokens.d.ts +69 -0
- package/src/style/designTokensDM.d.ts +69 -0
- package/src/style/dividers.d.ts +11 -0
- package/src/style/index.d.ts +13 -0
- package/src/style/scheme.d.ts +57 -0
- package/src/style/shadows.d.ts +223 -0
- package/src/style/spacings.d.ts +32 -0
- package/src/style/themeManager.d.ts +22 -0
- package/src/style/typography.d.ts +26 -0
- package/src/style/typographyPresets.d.ts +7 -0
- package/src/testkit/Component.driver.d.ts +30 -0
- package/src/testkit/DriverException.d.ts +12 -0
- package/src/testkit/UniDriver.d.ts +29 -0
- package/src/testkit/drivers/TestingLibraryDriver.d.ts +26 -0
- package/src/testkit/index.d.ts +25 -0
- package/src/testkit/new/Component.driver.d.ts +16 -0
- package/src/testkit/new/useDraggable.driver.d.ts +15 -0
- package/src/testkit/new/usePressable.driver.d.ts +14 -0
- package/src/testkit/new/useScrollable.driver.d.ts +13 -0
- package/src/typings/assets.d.ts +52 -0
- package/src/typings/common.d.ts +12 -0
- package/src/typings/module.d.ts +13 -0
- package/src/typings/recorderTypes.d.ts +13 -0
- package/src/uilib-test-renderer/helper.d.ts +8 -0
- package/src/uilib-test-renderer/index.d.ts +4 -0
- package/src/uilib-test-renderer/scrollViewHelper.d.ts +9 -0
- package/src/utils/dateUtils.d.ts +2 -0
- package/src/utils/imageUtils.d.ts +5 -0
- package/src/utils/index.d.ts +4 -0
- package/src/utils/styleUtils.d.ts +7 -0
- package/src/utils/textUtils.d.ts +8 -0
- package/jestSetup/jest-setup.js +0 -154
- package/lib/components/DynamicFonts/FontDownloader.d.js +0 -1
- package/lib/components/DynamicFonts/FontLoader.d.js +0 -1
- package/lib/components/DynamicFonts/NoPermissionsAcquirer.d.js +0 -1
- package/lib/components/DynamicFonts/PermissionsAcquirer.android.d.js +0 -1
- package/lib/components/DynamicFonts/PermissionsAcquirer.ios.d.js +0 -2
- package/lib/components/DynamicFonts/PermissionsAcquirer.web.d.js +0 -2
- package/lib/components/DynamicFonts/RNFSPackage.d.js +0 -1
- package/lib/components/DynamicFonts/index.d.js +0 -3
- package/lib/components/HighlighterOverlayView/index.d.js +0 -1
- package/lib/components/HighlighterOverlayView/index.web.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.d.js +0 -2
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.ios.d.js +0 -2
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardViewBase.d.js +0 -2
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.web.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/index.d.js +0 -5
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.android.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/index.d.js +0 -1
- package/lib/components/Keyboard/KeyboardAccessoryView/index.d.js +0 -7
- package/lib/components/Keyboard/KeyboardAwareInsetsView/index.d.js +0 -1
- package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.android.d.js +0 -1
- package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.ios.d.js +0 -10
- package/lib/components/Keyboard/KeyboardTrackingView/index.d.js +0 -1
- package/lib/components/Keyboard/KeyboardTrackingView/index.web.d.js +0 -1
- package/lib/components/Keyboard/index.d.js +0 -4
- package/lib/components/SafeArea/SafeAreaInsetsManager.d.js +0 -1
- package/lib/components/SafeArea/SafeAreaSpacerView.d.js +0 -1
- package/lib/components/SafeArea/SafeAreaSpacerView.web.d.js +0 -1
- package/lib/components/SafeArea/index.d.js +0 -1
- package/lib/components/index.d.js +0 -6
- package/lib/scripts/releaseNative.js +0 -72
- package/lib/specs/HighlighterViewNativeComponent.d.js +0 -1
- package/lib/specs/HighlighterViewNativeComponent.js +0 -8
- package/lib/specs/KeyboardTrackingViewNativeComponent.d.js +0 -1
- package/lib/specs/KeyboardTrackingViewNativeComponent.js +0 -8
- package/scripts/build/.babelrc.exports.js +0 -6
- package/scripts/build/build.js +0 -35
- package/scripts/build/buildPackages/buildComponentsPackages.js +0 -18
- package/scripts/build/buildPackages/buildCustomPackages.js +0 -106
- package/scripts/build/buildPackages/index.js +0 -6
- package/scripts/createCalendarMockData.js +0 -37
- package/scripts/docs/buildDocs.js +0 -1
- package/scripts/prepush.js +0 -71
- package/scripts/release/prReleaseNotes.js +0 -6
- package/scripts/release/release.js +0 -99
- package/scripts/updateWebAssets.js +0 -88
- package/scripts/utils.js +0 -21
- package/src/assets/__tests__/Assets.spec.js +0 -110
- package/src/commons/__tests__/baseComponent.spec.js +0 -36
- package/src/commons/__tests__/constants.spec.js +0 -202
- package/src/commons/__tests__/modifiers.spec.js +0 -453
- package/src/components/WheelPicker/__tests__/index.spec.js +0 -121
- package/src/components/WheelPicker/__tests__/useListMiddleIndex.spec.js +0 -40
- package/src/components/WheelPicker/__tests__/usePresenter.spec.js +0 -87
- package/src/components/avatar/__tests__/index.spec.js +0 -25
- package/src/components/badge/__tests__/index.spec.js +0 -84
- package/src/components/button/__tests__/index.driver.spec.js +0 -209
- package/src/components/button/__tests__/index.spec.js +0 -287
- package/src/components/card/__tests__/CardPresenter.spec.js +0 -35
- package/src/components/carousel/__tests__/CarouselPresenter.spec.js +0 -52
- package/src/components/carousel/__tests__/index.spec.js +0 -89
- package/src/components/checkbox/__tests__/index.spec.js +0 -357
- package/src/components/chip/__tests__/index.spec.js +0 -63
- package/src/components/connectionStatusBar/__tests__/index.spec.js +0 -41
- package/src/components/dateTimePicker/__tests__/index.spec.js +0 -44
- package/src/components/dialog/__tests__/index.new.spec.js +0 -118
- package/src/components/featureHighlight/__tests__/index.spec.js +0 -76
- package/src/components/floatingButton/__tests__/index.spec.js +0 -229
- package/src/components/hint/__tests__/index.spec.js +0 -108
- package/src/components/image/__tests__/index.spec.js +0 -56
- package/src/components/maskedInput/__tests__/maskedInput.new.spec.js +0 -19
- package/src/components/maskedInput/__tests__/maskedInput.old.spec.js +0 -20
- package/src/components/modal/__tests__/index.spec.js +0 -58
- package/src/components/numberInput/__tests__/Presenter.spec.js +0 -374
- package/src/components/numberInput/__tests__/index.spec.js +0 -38
- package/src/components/panView/__tests__/panningUtil.spec.js +0 -693
- package/src/components/picker/__tests__/PickerPresenter.spec.js +0 -15
- package/src/components/picker/__tests__/index.spec.js +0 -364
- package/src/components/picker/helpers/__tests__/usePickerLabel.spec.js +0 -96
- package/src/components/radioButton/__tests__/index.spec.js +0 -43
- package/src/components/radioGroup/__tests__/index.spec.js +0 -96
- package/src/components/sectionsWheelPicker/__tests__/index.spec.js +0 -35
- package/src/components/sectionsWheelPicker/__tests__/mockSections.js +0 -28
- package/src/components/segmentedControl/__tests__/index.spec.js +0 -25
- package/src/components/slider/__tests__/index.spec.js +0 -35
- package/src/components/sortableGridList/__tests__/index.spec.js +0 -51
- package/src/components/sortableGridList/__tests__/usePresenter.spec.js +0 -231
- package/src/components/sortableList/__tests__/index.spec.js +0 -105
- package/src/components/switch/__tests__/index.spec.js +0 -96
- package/src/components/text/__tests__/index.driver.spec.js +0 -124
- package/src/components/text/__tests__/index.spec.js +0 -245
- package/src/components/textField/__tests__/Presenter.spec.js +0 -240
- package/src/components/textField/__tests__/index.driver.spec.js +0 -639
- package/src/components/timeline/__tests__/driver.index.spec.js +0 -133
- package/src/helpers/__tests__/AvatarHelper.spec.js +0 -170
- package/src/hooks/useDidUpdate/__tests__/useDidUpdate.spec.js +0 -80
- package/src/hooks/useOrientation/__tests__/useOrientation.spec.js +0 -70
- package/src/hooks/useToggleValue/__tests__/useToggleValue.spec.js +0 -89
- package/src/incubator/calendar/__tests__/DateUtils.spec.js +0 -367
- package/src/incubator/expandableOverlay/__tests__/index.spec.js +0 -114
- package/src/incubator/gradient/__tests__/useAngleTransform.spec.js +0 -126
- package/src/incubator/slider/__tests__/SliderPresenter.spec.js +0 -43
- package/src/incubator/slider/__tests__/index.spec.js +0 -34
- package/src/incubator/toast/__tests__/index.spec.js +0 -64
- package/src/style/__tests__/colors.spec.js +0 -313
- package/src/style/__tests__/scheme.spec.js +0 -119
- package/src/utils/__tests__/Playground.perf.js +0 -14
- package/src/utils/__tests__/imageUtils.spec.js +0 -54
- package/src/utils/__tests__/textUtils.spec.js +0 -446
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
package com.wix.reactnativeuilib.keyboardinput;
|
|
2
|
+
|
|
3
|
+
import android.graphics.Rect;
|
|
4
|
+
import android.view.ViewTreeObserver;
|
|
5
|
+
import android.view.Window;
|
|
6
|
+
|
|
7
|
+
import androidx.annotation.Nullable;
|
|
8
|
+
|
|
9
|
+
import com.facebook.react.ReactRootView;
|
|
10
|
+
import com.wix.reactnativeuilib.keyboardinput.utils.RuntimeUtils;
|
|
11
|
+
|
|
12
|
+
import static com.wix.reactnativeuilib.keyboardinput.utils.ViewUtils.getWindow;
|
|
13
|
+
|
|
14
|
+
public class ReactSoftKeyboardMonitor implements ReactScreenMonitor.Listener {
|
|
15
|
+
|
|
16
|
+
public interface Listener {
|
|
17
|
+
void onSoftKeyboardVisible(boolean distinct);
|
|
18
|
+
void onSoftKeyboardHidden();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
private final ViewTreeObserver.OnGlobalLayoutListener mInnerLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
|
|
22
|
+
@Override
|
|
23
|
+
public void onGlobalLayout() {
|
|
24
|
+
Integer viewportVisibleHeight = getViewportVisibleHeight();
|
|
25
|
+
if (viewportVisibleHeight == null || viewportVisibleHeight.equals(mLastViewportVisibleHeight)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
mLastViewportVisibleHeight = viewportVisibleHeight;
|
|
30
|
+
if (mMaxViewportVisibleHeight == null) {
|
|
31
|
+
mMaxViewportVisibleHeight = viewportVisibleHeight;
|
|
32
|
+
} else if (viewportVisibleHeight < mMaxViewportVisibleHeight) {
|
|
33
|
+
mExternalListener.onSoftKeyboardVisible(!mSoftKeyboardUp);
|
|
34
|
+
refreshKeyboardHeight();
|
|
35
|
+
mSoftKeyboardUp = true;
|
|
36
|
+
} else {
|
|
37
|
+
mSoftKeyboardUp = false;
|
|
38
|
+
mExternalListener.onSoftKeyboardHidden();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Soft-keyboard appearance (yes or no) is deduced according to <b>view-port</b> (window-level display-frame), as
|
|
45
|
+
* root-view height normally remains unaffected during immediate layout. We therefore keep the maximal view-port size so we could
|
|
46
|
+
* concurrently compare heights in each layout.
|
|
47
|
+
*/
|
|
48
|
+
private Integer mMaxViewportVisibleHeight;
|
|
49
|
+
|
|
50
|
+
private Integer mLastViewportVisibleHeight;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Soft-keyboard *height* (when visible) is deduced by the effect on the root react-view height. This is ineffective in trying to
|
|
54
|
+
* monitor keyboard appearance -- only for height measuring.
|
|
55
|
+
*/
|
|
56
|
+
private Integer mLocallyVisibleHeight;
|
|
57
|
+
|
|
58
|
+
private boolean mSoftKeyboardUp;
|
|
59
|
+
private Integer mKeyboardHeight;
|
|
60
|
+
private Listener mExternalListener;
|
|
61
|
+
private ReactRootView mLastReactRootView;
|
|
62
|
+
|
|
63
|
+
public ReactSoftKeyboardMonitor(ReactScreenMonitor screenMonitor) {
|
|
64
|
+
screenMonitor.addListener(this);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@Override
|
|
68
|
+
public void onNewReactScreen(ReactRootView reactRootView) {
|
|
69
|
+
removeReactRootViewLayoutListener();
|
|
70
|
+
mLastReactRootView = reactRootView;
|
|
71
|
+
|
|
72
|
+
if (mLastReactRootView != null) { // 'Null' is applicable when activity is going down (e.g. bundle reload in RN dev mode)
|
|
73
|
+
registerReactRootViewLayoutListener();
|
|
74
|
+
|
|
75
|
+
initViewportVisibleHeight(); // TODO: running this each time might be redundant
|
|
76
|
+
initLocallyVisibleHeight();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public void setListener(Listener listener) {
|
|
81
|
+
mExternalListener = listener;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@Nullable
|
|
85
|
+
public Integer getKeyboardHeight() {
|
|
86
|
+
if (mKeyboardHeight != null) {
|
|
87
|
+
return mKeyboardHeight;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (mLocallyVisibleHeight != null) {
|
|
91
|
+
return (int) (.5f * mLocallyVisibleHeight);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
private void registerReactRootViewLayoutListener() {
|
|
98
|
+
final ViewTreeObserver viewTreeObserver = mLastReactRootView.getViewTreeObserver();
|
|
99
|
+
viewTreeObserver.addOnGlobalLayoutListener(mInnerLayoutListener);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
private void removeReactRootViewLayoutListener() {
|
|
103
|
+
if (mLastReactRootView != null) {
|
|
104
|
+
final ViewTreeObserver viewTreeObserver = mLastReactRootView.getViewTreeObserver();
|
|
105
|
+
viewTreeObserver.removeOnGlobalLayoutListener(mInnerLayoutListener);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
private void initViewportVisibleHeight() {
|
|
110
|
+
mMaxViewportVisibleHeight = getViewportVisibleHeight();
|
|
111
|
+
mLastViewportVisibleHeight = null;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
private void initLocallyVisibleHeight() {
|
|
115
|
+
mLocallyVisibleHeight = getLocallyVisibleHeight();
|
|
116
|
+
mKeyboardHeight = null; // Reset so the keyboard would be measured in the next opportunity.
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
private void refreshKeyboardHeight() {
|
|
120
|
+
if (mKeyboardHeight != null) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
RuntimeUtils.runOnUIThread(new Runnable() {
|
|
125
|
+
@Override
|
|
126
|
+
public void run() {
|
|
127
|
+
final Integer locallyVisibleHeight = getLocallyVisibleHeight();
|
|
128
|
+
if (locallyVisibleHeight == null) {
|
|
129
|
+
// Too late to join the party - react-view seems to be gone...
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (mLocallyVisibleHeight == null) {
|
|
134
|
+
mLocallyVisibleHeight = locallyVisibleHeight;
|
|
135
|
+
mKeyboardHeight = mLocallyVisibleHeight;
|
|
136
|
+
} else if (mLocallyVisibleHeight > locallyVisibleHeight) {
|
|
137
|
+
mKeyboardHeight = mLocallyVisibleHeight - locallyVisibleHeight;
|
|
138
|
+
} else {
|
|
139
|
+
mKeyboardHeight = locallyVisibleHeight;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private Integer getViewportVisibleHeight() {
|
|
146
|
+
Integer visibleHeight = null;
|
|
147
|
+
final Rect visibleArea = new Rect();
|
|
148
|
+
Window window = getWindow();
|
|
149
|
+
if (window != null) {
|
|
150
|
+
window.getDecorView().getWindowVisibleDisplayFrame(visibleArea);
|
|
151
|
+
visibleHeight = visibleArea.height();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return visibleHeight;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
private Integer getLocallyVisibleHeight() {
|
|
158
|
+
if (mLastReactRootView != null) {
|
|
159
|
+
return mLastReactRootView.getHeight();
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
}
|
package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
package com.wix.reactnativeuilib.keyboardinput.utils;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.uimanager.UIManagerModule;
|
|
4
|
+
import com.wix.reactnativeuilib.keyboardinput.ReactContextHolder;
|
|
5
|
+
|
|
6
|
+
public class RuntimeUtils {
|
|
7
|
+
|
|
8
|
+
// TODO Switch to GuardedRunnable when upgrading RN's minimal ver
|
|
9
|
+
private static final Runnable sUIUpdateClosure = new Runnable() {
|
|
10
|
+
@Override
|
|
11
|
+
public void run() {
|
|
12
|
+
// ReactContextHolder.getContext().getNativeModule(UIManagerModule.class).onBatchComplete();
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
public static void runOnUIThread(Runnable runnable) {
|
|
17
|
+
if (ReactContextHolder.getContext() != null) {
|
|
18
|
+
ReactContextHolder.getContext().runOnUiQueueThread(runnable);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public static void dispatchUIUpdates(final Runnable userRunnable) {
|
|
23
|
+
runOnUIThread(new Runnable() {
|
|
24
|
+
@Override
|
|
25
|
+
public void run() {
|
|
26
|
+
userRunnable.run();
|
|
27
|
+
if (ReactContextHolder.getContext() != null) {
|
|
28
|
+
ReactContextHolder.getContext().runOnNativeModulesQueueThread(sUIUpdateClosure);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
package com.wix.reactnativeuilib.keyboardinput.utils;
|
|
2
|
+
|
|
3
|
+
import android.app.Activity;
|
|
4
|
+
import android.view.View;
|
|
5
|
+
import android.view.ViewGroup;
|
|
6
|
+
import android.view.Window;
|
|
7
|
+
|
|
8
|
+
import androidx.annotation.Nullable;
|
|
9
|
+
|
|
10
|
+
import com.facebook.react.ReactRootView;
|
|
11
|
+
|
|
12
|
+
import static com.wix.reactnativeuilib.keyboardinput.AppContextHolder.getCurrentActivity;
|
|
13
|
+
|
|
14
|
+
public class ViewUtils {
|
|
15
|
+
|
|
16
|
+
private static class VisibleViewClassMatchPredicate implements PredicateFunc<View> {
|
|
17
|
+
private final Class mClazz;
|
|
18
|
+
|
|
19
|
+
private VisibleViewClassMatchPredicate(Class clazz) {
|
|
20
|
+
mClazz = clazz;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Override
|
|
24
|
+
public boolean invoke(View view) {
|
|
25
|
+
return mClazz.isAssignableFrom(view.getClass()) && view.isShown();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
private static final VisibleViewClassMatchPredicate sVisibleReactRootViewMatcher = new VisibleViewClassMatchPredicate(ReactRootView.class);
|
|
29
|
+
|
|
30
|
+
public static Window getWindow() {
|
|
31
|
+
final Activity activity = getCurrentActivity();
|
|
32
|
+
return (activity == null ? null : activity.getWindow());
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public static ReactRootView getReactRootView() {
|
|
36
|
+
final Window window = getWindow();
|
|
37
|
+
if (window == null) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
final ReactRootView view = findChildByClass((ViewGroup) window.getDecorView(), sVisibleReactRootViewMatcher);
|
|
42
|
+
return view;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Returns the first instance of clazz in root for which <code>predicate</code> is evaluated as <code>true</code>.
|
|
47
|
+
*/
|
|
48
|
+
@Nullable
|
|
49
|
+
public static <T> T findChildByClass(ViewGroup root, PredicateFunc<View> predicate) {
|
|
50
|
+
for (int i = 0; i < root.getChildCount(); i++) {
|
|
51
|
+
View view = root.getChildAt(i);
|
|
52
|
+
if (predicate.invoke(view)) {
|
|
53
|
+
return ((T) view);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (view instanceof ViewGroup) {
|
|
57
|
+
view = findChildByClass((ViewGroup) view, predicate);
|
|
58
|
+
if (view != null) {
|
|
59
|
+
return (T) view;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
package com.wix.reactnativeuilib.utils;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments;
|
|
4
|
+
import com.facebook.react.bridge.ReactContext;
|
|
5
|
+
import com.facebook.react.bridge.WritableMap;
|
|
6
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
7
|
+
|
|
8
|
+
public class LogForwarder {
|
|
9
|
+
|
|
10
|
+
public enum LogType {
|
|
11
|
+
log,
|
|
12
|
+
warn,
|
|
13
|
+
error
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
private DeviceEventManagerModule.RCTDeviceEventEmitter eventEmitter;
|
|
17
|
+
|
|
18
|
+
public LogForwarder(ReactContext reactContext) {
|
|
19
|
+
eventEmitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@SuppressWarnings("unused")
|
|
23
|
+
public void e(String TAG, String text) {
|
|
24
|
+
log(LogType.error, TAG, text);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@SuppressWarnings("unused")
|
|
28
|
+
public void w(String TAG, String text) {
|
|
29
|
+
log(LogType.warn, TAG, text);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@SuppressWarnings("unused")
|
|
33
|
+
public void d(String TAG, String text) {
|
|
34
|
+
log(LogType.log, TAG, text);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private void log(LogType logType, String TAG, String text) {
|
|
38
|
+
WritableMap payload = Arguments.createMap();
|
|
39
|
+
payload.putString("LogType", logType.name());
|
|
40
|
+
payload.putString("TAG", TAG);
|
|
41
|
+
payload.putString("text", text);
|
|
42
|
+
eventEmitter.emit("log", payload);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<com.wix.reactnativeuilib.wheelpicker.ThemedNumberPicker
|
|
3
|
+
android:id="@+id/numberPicker"
|
|
4
|
+
android:layout_height="148dp"
|
|
5
|
+
android:layout_width="56dp"
|
|
6
|
+
android:divider="@color/dividerColor"
|
|
7
|
+
android:editTextColor="@color/dividerColor"
|
|
8
|
+
android:textSize="20dp"
|
|
9
|
+
xmlns:android="http://schemas.android.com/apk/res/android" />
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<resources>
|
|
3
|
+
<color name="colorPrimary">#3F51B5</color>
|
|
4
|
+
<color name="colorPrimaryDark">#303F9F</color>
|
|
5
|
+
<color name="colorAccent">#FF4081</color>
|
|
6
|
+
<color name="dividerColor">#459FED</color>
|
|
7
|
+
<color name="numberPickerDivider">#FF4081</color>
|
|
8
|
+
<color name="title">#20303c</color>
|
|
9
|
+
</resources>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<resources>
|
|
3
|
+
<style name="NumberPickerTextColorStyle">
|
|
4
|
+
<item name="android:textColorPrimary">@color/dividerColor</item>
|
|
5
|
+
<item name="android:editTextColor">@color/dividerColor</item>
|
|
6
|
+
<item name="android:textSize">20dp</item>
|
|
7
|
+
<item name="colorControlNormal">@color/dividerColor</item>
|
|
8
|
+
</style>
|
|
9
|
+
</resources>
|
package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/keyboardRegistry.api.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "KeyboardRegistry",
|
|
3
|
+
"category": "infra",
|
|
4
|
+
"description": "used for registering keyboards and performing certain actions on the keyboards",
|
|
5
|
+
"example": "https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/nativeComponentScreens/keyboardAccessory/demoKeyboards.js",
|
|
6
|
+
"props": [
|
|
7
|
+
{
|
|
8
|
+
"name": "registerKeyboard",
|
|
9
|
+
"type": "static function",
|
|
10
|
+
"description": "Register a new keyboard.\ncomponentID (string) - the ID of the keyboard.\ngenerator (function) - a function for the creation of the keyboard.\nparams (object) - to be returned when using other methods (i.e. getKeyboards and getAllKeyboards)"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "getKeyboard",
|
|
14
|
+
"type": "static function",
|
|
15
|
+
"description": "Get a specific keyboard\ncomponentID (string) - the ID of the keyboard"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "getKeyboards",
|
|
19
|
+
"type": "static function",
|
|
20
|
+
"description": "Get keyboards by IDs\ncomponentIDs (string[]) - the ID of the keyboard"
|
|
21
|
+
},
|
|
22
|
+
{"name": "getAllKeyboards", "type": "static function", "description": "Get all keyboards"},
|
|
23
|
+
{
|
|
24
|
+
"name": "addListener",
|
|
25
|
+
"type": "static function",
|
|
26
|
+
"description": "Add a listener for a callback.\nglobalID (string) - ID that includes the componentID and the event name\n(i.e. if componentID='kb1' globalID='kb1.onItemSelected')\ncallback (function) - the callback to be called when the said event happens"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "notifyListeners",
|
|
30
|
+
"type": "static function",
|
|
31
|
+
"description": "Notify that an event has occurred.\nglobalID (string) - ID that includes the componentID and the event name\n(i.e. if componentID='kb1' globalID='kb1.onItemSelected')\nargs (object) - data to be sent to the listener"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "removeListeners",
|
|
35
|
+
"type": "static function",
|
|
36
|
+
"description": "Remove a listener for a callback.\nglobalID (string) - ID that includes the componentID and the event name\n(i.e. if componentID='kb1' globalID='kb1.onItemSelected')"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "onItemSelected",
|
|
40
|
+
"type": "static function",
|
|
41
|
+
"description": "Default event to be used for when an item on the keyboard has been pressed.\ncomponentID (string) - the ID of the keyboard.\nargs (object) - data to be sent to the listener"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "requestShowKeyboard",
|
|
45
|
+
"type": "static function",
|
|
46
|
+
"description": "Request to show the keyboard\ncomponentID (string) - the ID of the keyboard"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"snippet": ["KeyboardRegistry.registerKeyboard('keyboardName$1', () => KeyboardComponent$2)"]
|
|
50
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "KeyboardAccessoryView",
|
|
3
|
+
"category": "infra",
|
|
4
|
+
"description": "View that allows replacing the default keyboard with other components",
|
|
5
|
+
"example": "https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/nativeComponentScreens/keyboardAccessory/KeyboardAccessoryViewScreen.js",
|
|
6
|
+
"images": [
|
|
7
|
+
"https://github.com/wix/react-native-ui-lib/blob/master/demo/showcase/KeyboardAccessoryView/KeyboardAccessoryView.gif?raw=true"
|
|
8
|
+
],
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "renderContent",
|
|
12
|
+
"type": "() => React.ReactElement",
|
|
13
|
+
"description": "Content to be rendered above the keyboard"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "kbInputRef",
|
|
17
|
+
"type": "any",
|
|
18
|
+
"description": "The reference to the actual text input (or the keyboard may not reset when instructed to, etc.)",
|
|
19
|
+
"note": "iOS only",
|
|
20
|
+
"required": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "kbComponent",
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "The keyboard ID (the componentID sent to KeyboardRegistry)"
|
|
26
|
+
},
|
|
27
|
+
{"name": "kbInitialProps", "type": "any", "description": "The props that will be sent to the KeyboardComponent"},
|
|
28
|
+
{
|
|
29
|
+
"name": "onHeightChanged",
|
|
30
|
+
"type": "(height: number) => void",
|
|
31
|
+
"description": "A callback for when the height is changed"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "onItemSelected",
|
|
35
|
+
"type": "() => void",
|
|
36
|
+
"description": "Callback that will be called when an item on the keyboard has been pressed"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "onRequestShowKeyboard",
|
|
40
|
+
"type": "() => void",
|
|
41
|
+
"description": "Callback that will be called if KeyboardRegistry.requestShowKeyboard is called"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "onKeyboardResigned",
|
|
45
|
+
"type": "() => void",
|
|
46
|
+
"description": "Callback that will be called once the keyboard has been closed"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"snippet": [
|
|
50
|
+
"<KeyboardAccessoryView",
|
|
51
|
+
" renderContent={this.renderContent()}",
|
|
52
|
+
" kbInputRef={this.inputRef}",
|
|
53
|
+
" kbComponent={$1}",
|
|
54
|
+
" kbInitialProps={$2}",
|
|
55
|
+
" onHeightChanged={this.onHeightChanged()}",
|
|
56
|
+
" scrollBehavior={KeyboardAccessoryView.scrollBehaviors.NONE$3}",
|
|
57
|
+
"/>"
|
|
58
|
+
]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "KeyboardAwareInsetsView",
|
|
3
|
+
"category": "infra",
|
|
4
|
+
"description": "Used to add an inset when a keyboard is used and might hide part of the screen.",
|
|
5
|
+
"note": "This view is useful only for iOS.",
|
|
6
|
+
"extends": ["infra/KeyboardTrackingView"],
|
|
7
|
+
"example": "https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/componentScreens/TextFieldScreen.tsx",
|
|
8
|
+
"snippet": ["<ScrollView>",
|
|
9
|
+
" <TextField/>",
|
|
10
|
+
" <TextField/>",
|
|
11
|
+
" <KeyboardAwareInsetsView/>",
|
|
12
|
+
"<ScrollView>"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "KeyboardTrackingView",
|
|
3
|
+
"category": "infra",
|
|
4
|
+
"description": "A UI component that enables 'keyboard tracking' for this view and it's sub-views.\nWould typically be used when you have a TextField or TextInput inside this view",
|
|
5
|
+
"note": "This view is useful only for iOS",
|
|
6
|
+
"example": "https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/nativeComponentScreens/KeyboardTrackingViewScreen.js",
|
|
7
|
+
"images": [
|
|
8
|
+
"https://github.com/wix/react-native-ui-lib/blob/master/demo/showcase/KeyboardTrackingView/KeyboardTrackingView.gif?raw=true"
|
|
9
|
+
],
|
|
10
|
+
"props": [
|
|
11
|
+
{
|
|
12
|
+
"name": "trackInteractive",
|
|
13
|
+
"type": "boolean",
|
|
14
|
+
"description": "Enables tracking of the keyboard when it's dismissed interactively (false by default).\nWhy? When using an external keyboard (BT),\nyou still get the keyboard events and the view just hovers when you focus the input.\nAlso, if you're not using interactive style of dismissing the keyboard\n(or if you don't have an input inside this view) it doesn't make sense to track it anyway.\n(This is caused because of the usage of inputAccessory to be able to track the keyboard interactive change and it introduces this bug)"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "scrollToFocusedInput",
|
|
18
|
+
"type": "boolean",
|
|
19
|
+
"description": "Should the scrollView scroll to the focused input"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "scrollBehavior",
|
|
23
|
+
"type": "number",
|
|
24
|
+
"description": "The scrolling behavior (use KeyboardTrackingView.scrollBehaviors.NONE | SCROLL_TO_BOTTOM_INVERTED_ONLY | FIXED_OFFSET)"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "revealKeyboardInteractive",
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"description": "Show the keyboard on a negative scroll",
|
|
30
|
+
"default": "false"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "manageScrollView",
|
|
34
|
+
"type": "boolean",
|
|
35
|
+
"description": "Set to false to turn off inset management and manage it yourself",
|
|
36
|
+
"default": "true"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "requiresSameParentToManageScrollView",
|
|
40
|
+
"type": "boolean",
|
|
41
|
+
"description": "Set to true manageScrollView is set to true and still does not work,\nit means that the ScrollView found is the wrong one and you'll have\nto have the KeyboardAccessoryView and the ScrollView as siblings\nand set this to true",
|
|
42
|
+
"default": "false"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "allowHitsOutsideBounds",
|
|
46
|
+
"type": "boolean",
|
|
47
|
+
"description": "Allow hitting sub-views that are placed beyond the view bounds",
|
|
48
|
+
"default": "false"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "addBottomView",
|
|
52
|
+
"type": "boolean",
|
|
53
|
+
"description": "Add a view beneath the KeyboardAccessoryView",
|
|
54
|
+
"default": "false"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "bottomViewColor",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "The bottom view's color",
|
|
60
|
+
"default": "white"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "useSafeArea",
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"description": "Whether or not to handle SafeArea",
|
|
66
|
+
"default": "true"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "usesBottomTabs",
|
|
70
|
+
"type": "boolean",
|
|
71
|
+
"description": "Whether or not to include bottom tab bar inset",
|
|
72
|
+
"default": "false"
|
|
73
|
+
},
|
|
74
|
+
{"name": "ref", "type": "any", "description": ""},
|
|
75
|
+
{"name": "style", "type": "ViewStyle", "description": ""}
|
|
76
|
+
],
|
|
77
|
+
"snippet": [
|
|
78
|
+
"<KeyboardTrackingView",
|
|
79
|
+
" style={$1}",
|
|
80
|
+
" trackInteractive",
|
|
81
|
+
" useSafeArea",
|
|
82
|
+
">",
|
|
83
|
+
" $2",
|
|
84
|
+
"</KeyboardTrackingView>"
|
|
85
|
+
]
|
|
86
|
+
}
|