react-native-ui-lib 8.0.1 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. package/jestSetup/jest-setup.js +154 -0
  2. package/lib/components/DynamicFonts/FontDownloader.d.js +1 -0
  3. package/lib/components/DynamicFonts/FontLoader.d.js +1 -0
  4. package/lib/components/DynamicFonts/NoPermissionsAcquirer.d.js +1 -0
  5. package/lib/components/DynamicFonts/PermissionsAcquirer.android.d.js +1 -0
  6. package/lib/components/DynamicFonts/PermissionsAcquirer.ios.d.js +2 -0
  7. package/lib/components/DynamicFonts/PermissionsAcquirer.web.d.js +2 -0
  8. package/lib/components/DynamicFonts/RNFSPackage.d.js +1 -0
  9. package/lib/components/DynamicFonts/index.d.js +3 -0
  10. package/lib/components/HighlighterOverlayView/index.d.js +1 -0
  11. package/lib/components/HighlighterOverlayView/index.web.d.js +1 -0
  12. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.d.js +2 -0
  13. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.ios.d.js +2 -0
  14. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardViewBase.d.js +2 -0
  15. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.d.js +1 -0
  16. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.web.d.js +1 -0
  17. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.js +1 -0
  18. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/index.d.js +5 -0
  19. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.js +1 -0
  20. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.android.d.js +1 -0
  21. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.js +1 -0
  22. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/index.d.js +1 -0
  23. package/lib/components/Keyboard/KeyboardAccessoryView/index.d.js +7 -0
  24. package/lib/components/Keyboard/KeyboardAwareInsetsView/index.d.js +1 -0
  25. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.android.d.js +1 -0
  26. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.ios.d.js +10 -0
  27. package/lib/components/Keyboard/KeyboardTrackingView/index.d.js +1 -0
  28. package/lib/components/Keyboard/KeyboardTrackingView/index.web.d.js +1 -0
  29. package/lib/components/Keyboard/index.d.js +4 -0
  30. package/lib/components/SafeArea/SafeAreaInsetsManager.d.js +1 -0
  31. package/lib/components/SafeArea/SafeAreaSpacerView.d.js +1 -0
  32. package/lib/components/SafeArea/SafeAreaSpacerView.web.d.js +1 -0
  33. package/lib/components/SafeArea/index.d.js +1 -0
  34. package/lib/components/index.d.js +6 -0
  35. package/lib/scripts/releaseNative.js +72 -0
  36. package/lib/specs/HighlighterViewNativeComponent.d.js +1 -0
  37. package/lib/specs/HighlighterViewNativeComponent.d.ts +61 -0
  38. package/lib/specs/HighlighterViewNativeComponent.js +8 -0
  39. package/lib/specs/KeyboardTrackingViewNativeComponent.d.js +1 -0
  40. package/lib/specs/KeyboardTrackingViewNativeComponent.d.ts +58 -0
  41. package/lib/specs/KeyboardTrackingViewNativeComponent.js +8 -0
  42. package/package.json +7 -31
  43. package/scripts/build/build.js +35 -0
  44. package/scripts/build/buildPackages/buildComponentsPackages.js +18 -0
  45. package/scripts/build/buildPackages/buildCustomPackages.js +106 -0
  46. package/scripts/build/buildPackages/index.js +6 -0
  47. package/scripts/createCalendarMockData.js +37 -0
  48. package/scripts/docs/buildDocs.js +1 -0
  49. package/scripts/prepush.js +71 -0
  50. package/scripts/release/prReleaseNotes.js +6 -0
  51. package/scripts/release/release.js +99 -0
  52. package/scripts/updateWebAssets.js +88 -0
  53. package/scripts/utils.js +21 -0
  54. package/src/assets/__tests__/Assets.spec.js +110 -0
  55. package/src/commons/__tests__/baseComponent.spec.js +36 -0
  56. package/src/commons/__tests__/constants.spec.js +202 -0
  57. package/src/commons/__tests__/modifiers.spec.js +453 -0
  58. package/src/components/WheelPicker/__tests__/index.spec.js +121 -0
  59. package/src/components/WheelPicker/__tests__/useListMiddleIndex.spec.js +40 -0
  60. package/src/components/WheelPicker/__tests__/usePresenter.spec.js +87 -0
  61. package/src/components/avatar/__tests__/index.spec.js +25 -0
  62. package/src/components/badge/__tests__/index.spec.js +84 -0
  63. package/src/components/button/__tests__/index.driver.spec.js +209 -0
  64. package/src/components/button/__tests__/index.spec.js +287 -0
  65. package/src/components/button/index.js +30 -8
  66. package/src/components/card/__tests__/CardPresenter.spec.js +35 -0
  67. package/src/components/carousel/__tests__/CarouselPresenter.spec.js +52 -0
  68. package/src/components/carousel/__tests__/index.spec.js +89 -0
  69. package/src/components/carousel/index.js +2 -1
  70. package/src/components/checkbox/__tests__/index.spec.js +357 -0
  71. package/src/components/chip/__tests__/index.spec.js +63 -0
  72. package/src/components/colorSwatch/index.js +1 -1
  73. package/src/components/connectionStatusBar/__tests__/index.spec.js +41 -0
  74. package/src/components/dateTimePicker/__tests__/index.spec.js +44 -0
  75. package/src/components/dialog/__tests__/index.new.spec.js +118 -0
  76. package/src/components/featureHighlight/__tests__/index.spec.js +76 -0
  77. package/src/components/floatingButton/__tests__/index.spec.js +229 -0
  78. package/src/components/floatingButton/index.js +66 -35
  79. package/src/components/hint/__tests__/index.spec.js +108 -0
  80. package/src/components/image/__tests__/index.spec.js +56 -0
  81. package/src/components/image/image.api.json +193 -1
  82. package/src/components/maskedInput/__tests__/maskedInput.new.spec.js +19 -0
  83. package/src/components/maskedInput/__tests__/maskedInput.old.spec.js +20 -0
  84. package/src/components/modal/__tests__/index.spec.js +58 -0
  85. package/src/components/numberInput/__tests__/Presenter.spec.js +374 -0
  86. package/src/components/numberInput/__tests__/index.spec.js +38 -0
  87. package/src/components/numberInput/numberInput.api.json +131 -6
  88. package/src/components/overlay/index.js +2 -1
  89. package/src/components/pageControl/pageControl.api.json +175 -1
  90. package/src/components/panView/__tests__/panningUtil.spec.js +693 -0
  91. package/src/components/picker/__tests__/PickerPresenter.spec.js +15 -0
  92. package/src/components/picker/__tests__/index.spec.js +364 -0
  93. package/src/components/picker/helpers/__tests__/usePickerLabel.spec.js +96 -0
  94. package/src/components/radioButton/__tests__/index.spec.js +43 -0
  95. package/src/components/radioGroup/__tests__/index.spec.js +96 -0
  96. package/src/components/sectionsWheelPicker/__tests__/index.spec.js +35 -0
  97. package/src/components/sectionsWheelPicker/__tests__/mockSections.js +28 -0
  98. package/src/components/segmentedControl/__tests__/index.spec.js +25 -0
  99. package/src/components/slider/__tests__/index.spec.js +35 -0
  100. package/src/components/slider/index.js +12 -1
  101. package/src/components/slider/slider.api.json +11 -0
  102. package/src/components/sortableGridList/__tests__/index.spec.js +51 -0
  103. package/src/components/sortableGridList/__tests__/usePresenter.spec.js +231 -0
  104. package/src/components/sortableGridList/sortableGridList.api.json +44 -1
  105. package/src/components/sortableList/SortableList.api.json +51 -3
  106. package/src/components/sortableList/__tests__/index.spec.js +105 -0
  107. package/src/components/stackAggregator/assets/arrow-down.png +0 -0
  108. package/src/components/stackAggregator/assets/arrow-down@2x.png +0 -0
  109. package/src/components/stackAggregator/assets/arrow-down@3x.png +0 -0
  110. package/src/components/switch/__tests__/index.spec.js +96 -0
  111. package/src/components/text/__tests__/index.driver.spec.js +124 -0
  112. package/src/components/text/__tests__/index.spec.js +245 -0
  113. package/src/components/textField/__tests__/Presenter.spec.js +240 -0
  114. package/src/components/textField/__tests__/index.driver.spec.js +639 -0
  115. package/src/components/timeline/__tests__/driver.index.spec.js +133 -0
  116. package/src/helpers/__tests__/AvatarHelper.spec.js +170 -0
  117. package/src/hooks/useDidUpdate/__tests__/useDidUpdate.spec.js +80 -0
  118. package/src/hooks/useOrientation/__tests__/useOrientation.spec.js +70 -0
  119. package/src/hooks/useToggleValue/__tests__/useToggleValue.spec.js +89 -0
  120. package/src/incubator/calendar/__tests__/DateUtils.spec.js +367 -0
  121. package/src/incubator/expandableOverlay/__tests__/index.spec.js +114 -0
  122. package/src/incubator/gradient/__tests__/useAngleTransform.spec.js +126 -0
  123. package/src/incubator/slider/__tests__/SliderPresenter.spec.js +43 -0
  124. package/src/incubator/slider/__tests__/index.spec.js +34 -0
  125. package/src/incubator/slider/slider.api.json +11 -0
  126. package/src/incubator/toast/__tests__/index.spec.js +64 -0
  127. package/src/style/__tests__/colors.spec.js +313 -0
  128. package/src/style/__tests__/scheme.spec.js +119 -0
  129. package/src/style/typographyPresets.js +26 -23
  130. package/src/utils/__tests__/Playground.perf.js +14 -0
  131. package/src/utils/__tests__/imageUtils.spec.js +54 -0
  132. package/src/utils/__tests__/textUtils.spec.js +446 -0
  133. package/.eslintrc.js +0 -56
  134. package/babel.config.js +0 -35
  135. package/index.js +0 -10
  136. package/lib/android/build.gradle +0 -32
  137. package/lib/android/src/main/AndroidManifest.xml +0 -4
  138. package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +0 -28
  139. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontModule.java +0 -139
  140. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontPackage.java +0 -28
  141. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightFrame.java +0 -33
  142. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightViewTagParams.java +0 -50
  143. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterView.java +0 -167
  144. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +0 -131
  145. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewPackage.java +0 -28
  146. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/UiUtils.java +0 -50
  147. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/AppContextHolder.java +0 -52
  148. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java +0 -213
  149. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.java +0 -39
  150. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewManager.java +0 -29
  151. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewShadow.java +0 -29
  152. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.java +0 -34
  153. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputPackage.java +0 -49
  154. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactContextHolder.java +0 -16
  155. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.java +0 -83
  156. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.java +0 -163
  157. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/PredicateFunc.java +0 -5
  158. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +0 -33
  159. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils.java +0 -65
  160. package/lib/android/src/main/java/com/wix/reactnativeuilib/utils/LogForwarder.java +0 -45
  161. package/lib/android/src/main/res/layout/wheel_picker.xml +0 -9
  162. package/lib/android/src/main/res/values/colors.xml +0 -9
  163. package/lib/android/src/main/res/values/styles.xml +0 -9
  164. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/keyboardRegistry.api.json +0 -50
  165. package/lib/components/Keyboard/KeyboardAccessoryView/keyboardAccessoryView.api.json +0 -58
  166. package/lib/components/Keyboard/KeyboardAwareInsetsView/keyboardAwareInsetsView.api.json +0 -14
  167. package/lib/components/Keyboard/KeyboardTrackingView/keyboardTrackingView.api.json +0 -86
  168. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.h +0 -9
  169. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.m +0 -115
  170. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.h +0 -19
  171. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.m +0 -216
  172. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.h +0 -6
  173. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.m +0 -28
  174. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.h +0 -39
  175. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.m +0 -160
  176. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.h +0 -36
  177. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.m +0 -121
  178. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.h +0 -48
  179. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.m +0 -27
  180. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolation.h +0 -16
  181. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.h +0 -19
  182. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.mm +0 -155
  183. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.h +0 -16
  184. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +0 -450
  185. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +0 -18
  186. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +0 -99
  187. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.h +0 -14
  188. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +0 -827
  189. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.h +0 -44
  190. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.m +0 -171
  191. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.h +0 -6
  192. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.m +0 -17
  193. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.h +0 -6
  194. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.m +0 -105
  195. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.h +0 -5
  196. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.m +0 -20
  197. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.h +0 -7
  198. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.m +0 -76
  199. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.h +0 -9
  200. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.m +0 -14
  201. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.h +0 -5
  202. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.m +0 -26
  203. package/lib/ios/reactnativeuilib.xcodeproj/project.pbxproj +0 -435
  204. package/metro.config.js +0 -23
  205. package/src/.babelrc.json +0 -23
  206. package/src/assets/Assets.d.ts +0 -5
  207. package/src/assets/emojis/index.d.ts +0 -1343
  208. package/src/assets/index.d.ts +0 -3
  209. package/src/assets/internal/index.d.ts +0 -4
  210. package/src/commons/Config.d.ts +0 -24
  211. package/src/commons/Constants.d.ts +0 -54
  212. package/src/commons/UIComponent.d.ts +0 -4
  213. package/src/commons/asBaseComponent.d.ts +0 -15
  214. package/src/commons/baseComponent.d.ts +0 -2
  215. package/src/commons/forwardRef.d.ts +0 -8
  216. package/src/commons/modifiers.d.ts +0 -118
  217. package/src/commons/new.d.ts +0 -8
  218. package/src/commons/withScrollEnabler.d.ts +0 -13
  219. package/src/commons/withScrollReached.d.ts +0 -35
  220. package/src/components/WheelPicker/Item.d.ts +0 -28
  221. package/src/components/WheelPicker/WheelPicker.driver.d.ts +0 -18
  222. package/src/components/WheelPicker/WheelPickerItem.driver.d.ts +0 -8
  223. package/src/components/WheelPicker/helpers/useListMiddleIndex.d.ts +0 -6
  224. package/src/components/WheelPicker/index.d.ts +0 -88
  225. package/src/components/WheelPicker/types.d.ts +0 -6
  226. package/src/components/WheelPicker/usePresenter.d.ts +0 -21
  227. package/src/components/actionBar/index.d.ts +0 -35
  228. package/src/components/actionSheet/index.d.ts +0 -80
  229. package/src/components/animatedImage/index.d.ts +0 -28
  230. package/src/components/avatar/index.d.ts +0 -382
  231. package/src/components/badge/index.d.ts +0 -879
  232. package/src/components/baseInput/Validators.d.ts +0 -8
  233. package/src/components/baseInput/index.d.ts +0 -29
  234. package/src/components/button/Button.driver.new.d.ts +0 -34
  235. package/src/components/button/ButtonConstants.d.ts +0 -26
  236. package/src/components/button/index.d.ts +0 -572
  237. package/src/components/button/types.d.ts +0 -153
  238. package/src/components/card/CardContext.d.ts +0 -3
  239. package/src/components/card/CardImage.d.ts +0 -20
  240. package/src/components/card/CardPresenter.d.ts +0 -12
  241. package/src/components/card/CardSection.d.ts +0 -79
  242. package/src/components/card/asCardChild.d.ts +0 -6
  243. package/src/components/card/index.d.ts +0 -120
  244. package/src/components/carousel/Carousel.driver.new.d.ts +0 -9
  245. package/src/components/carousel/CarouselPresenter.d.ts +0 -9
  246. package/src/components/carousel/index.d.ts +0 -73
  247. package/src/components/carousel/types.d.ts +0 -107
  248. package/src/components/checkbox/Checkbox.driver.d.ts +0 -15
  249. package/src/components/checkbox/index.d.ts +0 -129
  250. package/src/components/chip/chip.driver.d.ts +0 -33
  251. package/src/components/chip/index.d.ts +0 -209
  252. package/src/components/chipsInput/index.d.ts +0 -55
  253. package/src/components/colorPalette/index.d.ts +0 -116
  254. package/src/components/colorPicker/ColorPickerDialog.d.ts +0 -39
  255. package/src/components/colorPicker/ColorPickerDialogHeader.d.ts +0 -9
  256. package/src/components/colorPicker/ColorPickerDialogSliders.d.ts +0 -10
  257. package/src/components/colorPicker/ColorPickerPresenter.d.ts +0 -16
  258. package/src/components/colorPicker/ColorPickerPreview.d.ts +0 -12
  259. package/src/components/colorPicker/index.d.ts +0 -45
  260. package/src/components/colorSwatch/index.d.ts +0 -50
  261. package/src/components/connectionStatusBar/index.d.ts +0 -33
  262. package/src/components/connectionStatusBar/types.d.ts +0 -28
  263. package/src/components/dash/index.d.ts +0 -19
  264. package/src/components/dateTimePicker/DateTimePicker.driver.d.ts +0 -7
  265. package/src/components/dateTimePicker/index.d.ts +0 -288
  266. package/src/components/dateTimePicker/useOldApi.d.ts +0 -27
  267. package/src/components/dialog/Dialog.driver.new.d.ts +0 -6
  268. package/src/components/dialog/DialogHeader.d.ts +0 -4
  269. package/src/components/dialog/index.d.ts +0 -15
  270. package/src/components/dialog/types.d.ts +0 -138
  271. package/src/components/dialog/useDialogContent.d.ts +0 -13
  272. package/src/components/drawer/Swipeable.d.ts +0 -94
  273. package/src/components/drawer/index.d.ts +0 -161
  274. package/src/components/expandableSection/index.d.ts +0 -40
  275. package/src/components/fadedScrollView/index.d.ts +0 -59
  276. package/src/components/fader/index.d.ts +0 -37
  277. package/src/components/featureHighlight/index.d.ts +0 -147
  278. package/src/components/floatingButton/index.d.ts +0 -85
  279. package/src/components/gradient/index.d.ts +0 -19
  280. package/src/components/gridList/index.d.ts +0 -5
  281. package/src/components/gridList/types.d.ts +0 -29
  282. package/src/components/gridList/useGridLayout.d.ts +0 -15
  283. package/src/components/gridListItem/index.d.ts +0 -132
  284. package/src/components/gridView/index.d.ts +0 -80
  285. package/src/components/hint/Hint.driver.d.ts +0 -6
  286. package/src/components/hint/Hint.driver.new.d.ts +0 -19
  287. package/src/components/hint/HintAnchor.d.ts +0 -13
  288. package/src/components/hint/HintBubble.d.ts +0 -12
  289. package/src/components/hint/HintMockChildren.d.ts +0 -8
  290. package/src/components/hint/HintOld.d.ts +0 -196
  291. package/src/components/hint/hooks/useHintAccessibility.d.ts +0 -10
  292. package/src/components/hint/hooks/useHintLayout.d.ts +0 -13
  293. package/src/components/hint/hooks/useHintPosition.d.ts +0 -29
  294. package/src/components/hint/hooks/useHintVisibility.d.ts +0 -6
  295. package/src/components/hint/index.d.ts +0 -14
  296. package/src/components/hint/types.d.ts +0 -106
  297. package/src/components/icon/index.d.ts +0 -97
  298. package/src/components/image/Image.driver.d.ts +0 -4
  299. package/src/components/image/Image.driver.new.d.ts +0 -2
  300. package/src/components/image/index.d.ts +0 -192
  301. package/src/components/listItem/ListItemPart.d.ts +0 -15
  302. package/src/components/listItem/index.d.ts +0 -52
  303. package/src/components/listItem/types.d.ts +0 -60
  304. package/src/components/loaderScreen/index.d.ts +0 -13
  305. package/src/components/loaderScreen/types.d.ts +0 -32
  306. package/src/components/marquee/index.d.ts +0 -5
  307. package/src/components/marquee/types.d.ts +0 -35
  308. package/src/components/maskedInput/index.d.ts +0 -5
  309. package/src/components/maskedInput/new.d.ts +0 -22
  310. package/src/components/modal/Modal.driver.new.d.ts +0 -8
  311. package/src/components/modal/TopBar.d.ts +0 -89
  312. package/src/components/modal/index.d.ts +0 -64
  313. package/src/components/numberInput/NumberInput.driver.d.ts +0 -6
  314. package/src/components/numberInput/Presenter.d.ts +0 -21
  315. package/src/components/numberInput/index.d.ts +0 -57
  316. package/src/components/overlay/index.d.ts +0 -68
  317. package/src/components/pageControl/index.d.ts +0 -56
  318. package/src/components/panView/index.d.ts +0 -21
  319. package/src/components/panView/panningUtil.d.ts +0 -38
  320. package/src/components/panView/usePanGesture.d.ts +0 -49
  321. package/src/components/picker/Picker.driver.new.d.ts +0 -44
  322. package/src/components/picker/PickerContext.d.ts +0 -4
  323. package/src/components/picker/PickerItem.d.ts +0 -11
  324. package/src/components/picker/PickerItemsList.d.ts +0 -4
  325. package/src/components/picker/PickerPresenter.d.ts +0 -7
  326. package/src/components/picker/PickerSelectionStatusBar.d.ts +0 -3
  327. package/src/components/picker/helpers/useFieldType.d.ts +0 -373
  328. package/src/components/picker/helpers/useImperativePickerHandle.d.ts +0 -5
  329. package/src/components/picker/helpers/useNewPickerProps.d.ts +0 -3
  330. package/src/components/picker/helpers/usePickerLabel.d.ts +0 -17
  331. package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +0 -4
  332. package/src/components/picker/helpers/usePickerSearch.d.ts +0 -9
  333. package/src/components/picker/helpers/usePickerSelection.d.ts +0 -16
  334. package/src/components/picker/index.d.ts +0 -15
  335. package/src/components/picker/types.d.ts +0 -321
  336. package/src/components/pieChart/PieSegment.d.ts +0 -34
  337. package/src/components/pieChart/index.d.ts +0 -15
  338. package/src/components/progressBar/index.d.ts +0 -65
  339. package/src/components/progressiveImage/index.d.ts +0 -23
  340. package/src/components/radioButton/RadioButton.driver.d.ts +0 -9
  341. package/src/components/radioButton/index.d.ts +0 -121
  342. package/src/components/radioGroup/RadioGroup.driver.d.ts +0 -13
  343. package/src/components/radioGroup/RadioGroupContext.d.ts +0 -14
  344. package/src/components/radioGroup/asRadioGroupChild.d.ts +0 -2
  345. package/src/components/radioGroup/index.d.ts +0 -47
  346. package/src/components/scrollBar/index.d.ts +0 -88
  347. package/src/components/searchInput/index.d.ts +0 -37
  348. package/src/components/searchInput/types.d.ts +0 -66
  349. package/src/components/sectionsWheelPicker/SectionsWheelPicker.driver.d.ts +0 -25
  350. package/src/components/sectionsWheelPicker/index.d.ts +0 -43
  351. package/src/components/segmentedControl/index.d.ts +0 -90
  352. package/src/components/segmentedControl/segment.d.ts +0 -111
  353. package/src/components/segmentedControl/useSegmentedControlPreset.d.ts +0 -10
  354. package/src/components/skeletonView/index.d.ts +0 -163
  355. package/src/components/slider/ColorSliderGroup.d.ts +0 -13
  356. package/src/components/slider/GradientSlider.d.ts +0 -20
  357. package/src/components/slider/SliderContext.d.ts +0 -8
  358. package/src/components/slider/Thumb.d.ts +0 -32
  359. package/src/components/slider/index.d.ts +0 -31
  360. package/src/components/slider/slider.driver.d.ts +0 -5
  361. package/src/components/slider/types.d.ts +0 -197
  362. package/src/components/sortableGridList/SortableItem.d.ts +0 -6
  363. package/src/components/sortableGridList/index.d.ts +0 -5
  364. package/src/components/sortableGridList/types.d.ts +0 -34
  365. package/src/components/sortableGridList/usePresenter.d.ts +0 -21
  366. package/src/components/sortableList/SortableList.driver.new.d.ts +0 -2
  367. package/src/components/sortableList/SortableListContext.d.ts +0 -19
  368. package/src/components/sortableList/SortableListItem.d.ts +0 -8
  369. package/src/components/sortableList/SortableListItem.driver.new.d.ts +0 -11
  370. package/src/components/sortableList/index.d.ts +0 -5
  371. package/src/components/sortableList/types.d.ts +0 -48
  372. package/src/components/sortableList/usePresenter.d.ts +0 -12
  373. package/src/components/stackAggregator/index.d.ts +0 -89
  374. package/src/components/stateScreen/index.d.ts +0 -5
  375. package/src/components/stateScreen/types.d.ts +0 -30
  376. package/src/components/stepper/index.d.ts +0 -47
  377. package/src/components/svgImage/index.d.ts +0 -14
  378. package/src/components/svgImage/index.web.d.ts +0 -18
  379. package/src/components/switch/index.d.ts +0 -102
  380. package/src/components/switch/switch.driver.d.ts +0 -18
  381. package/src/components/tabController/PageCarousel.d.ts +0 -9
  382. package/src/components/tabController/TabBar.d.ts +0 -97
  383. package/src/components/tabController/TabBarContext.d.ts +0 -18
  384. package/src/components/tabController/TabBarItem.d.ts +0 -105
  385. package/src/components/tabController/TabPage.d.ts +0 -33
  386. package/src/components/tabController/index.d.ts +0 -48
  387. package/src/components/tabController/useImperativeTabControllerHandle.d.ts +0 -6
  388. package/src/components/tabController/useScrollToItem.d.ts +0 -79
  389. package/src/components/text/Text.driver.d.ts +0 -7
  390. package/src/components/text/Text.driver.new.d.ts +0 -17
  391. package/src/components/text/index.d.ts +0 -195
  392. package/src/components/textField/CharCounter.d.ts +0 -7
  393. package/src/components/textField/ClearButton.d.ts +0 -4
  394. package/src/components/textField/FieldContext.d.ts +0 -4
  395. package/src/components/textField/FloatingPlaceholder.d.ts +0 -7
  396. package/src/components/textField/Input.d.ts +0 -8
  397. package/src/components/textField/Label.d.ts +0 -7
  398. package/src/components/textField/Presenter.d.ts +0 -7
  399. package/src/components/textField/TextField.driver.new.d.ts +0 -129
  400. package/src/components/textField/ValidationMessage.d.ts +0 -7
  401. package/src/components/textField/index.d.ts +0 -114
  402. package/src/components/textField/presets/outline.d.ts +0 -737
  403. package/src/components/textField/presets/underline.d.ts +0 -735
  404. package/src/components/textField/textInput/index.d.ts +0 -1
  405. package/src/components/textField/textInput/index.web.d.ts +0 -3
  406. package/src/components/textField/types.d.ts +0 -287
  407. package/src/components/textField/useFieldState.d.ts +0 -16
  408. package/src/components/textField/useImperativeInputHandle.d.ts +0 -4
  409. package/src/components/textField/usePreset.d.ts +0 -1696
  410. package/src/components/textField/validators.d.ts +0 -9
  411. package/src/components/textFieldOld/index.d.ts +0 -71
  412. package/src/components/timeline/Line.d.ts +0 -10
  413. package/src/components/timeline/Point.d.ts +0 -9
  414. package/src/components/timeline/index.d.ts +0 -11
  415. package/src/components/timeline/line.driver.d.ts +0 -10
  416. package/src/components/timeline/point.driver.d.ts +0 -8
  417. package/src/components/timeline/timeline.driver.d.ts +0 -25
  418. package/src/components/timeline/types.d.ts +0 -50
  419. package/src/components/touchableOpacity/index.d.ts +0 -50
  420. package/src/components/view/View.driver.new.d.ts +0 -7
  421. package/src/components/view/index.d.ts +0 -46
  422. package/src/components/wizard/WizardStates.d.ts +0 -2
  423. package/src/components/wizard/WizardStep.d.ts +0 -4
  424. package/src/components/wizard/index.d.ts +0 -31
  425. package/src/components/wizard/types.d.ts +0 -90
  426. package/src/helpers/AvatarHelper.d.ts +0 -9
  427. package/src/helpers/FormattingPresenter.d.ts +0 -6
  428. package/src/helpers/Profiler.d.ts +0 -22
  429. package/src/helpers/index.d.ts +0 -3
  430. package/src/hooks/index.d.ts +0 -14
  431. package/src/hooks/useCombinedRefs/index.d.ts +0 -3
  432. package/src/hooks/useDebounce/index.d.ts +0 -5
  433. package/src/hooks/useDidUpdate/index.d.ts +0 -6
  434. package/src/hooks/useHiddenLocation/index.d.ts +0 -13
  435. package/src/hooks/useHiddenLocation/index.web.d.ts +0 -13
  436. package/src/hooks/useKeyboardHeight/index.d.ts +0 -5
  437. package/src/hooks/useMeasure/index.d.ts +0 -15
  438. package/src/hooks/useModifiers/index.d.ts +0 -3
  439. package/src/hooks/useOrientation/index.d.ts +0 -7
  440. package/src/hooks/useScrollEnabler/index.d.ts +0 -23
  441. package/src/hooks/useScrollReached/index.d.ts +0 -28
  442. package/src/hooks/useScrollTo/index.d.ts +0 -37
  443. package/src/hooks/useScrollToItem/index.d.ts +0 -65
  444. package/src/hooks/useThemeProps/index.d.ts +0 -2
  445. package/src/hooks/useToggleValue/index.d.ts +0 -2
  446. package/src/incubator/TouchableOpacity.d.ts +0 -52
  447. package/src/incubator/calendar/Agenda.d.ts +0 -4
  448. package/src/incubator/calendar/CalendarContext.d.ts +0 -4
  449. package/src/incubator/calendar/CalendarItem.d.ts +0 -5
  450. package/src/incubator/calendar/Day.d.ts +0 -4
  451. package/src/incubator/calendar/Day_OLD.d.ts +0 -4
  452. package/src/incubator/calendar/Header.d.ts +0 -4
  453. package/src/incubator/calendar/Month.d.ts +0 -4
  454. package/src/incubator/calendar/TodayButton.d.ts +0 -4
  455. package/src/incubator/calendar/Week.d.ts +0 -4
  456. package/src/incubator/calendar/WeekDaysNames.d.ts +0 -4
  457. package/src/incubator/calendar/helpers/CalendarProcessor.d.ts +0 -2
  458. package/src/incubator/calendar/helpers/DataProcessor.d.ts +0 -2
  459. package/src/incubator/calendar/helpers/DateUtils.d.ts +0 -23
  460. package/src/incubator/calendar/index.d.ts +0 -7
  461. package/src/incubator/calendar/types.d.ts +0 -118
  462. package/src/incubator/expandableOverlay/ExpandableOverlay.driver.d.ts +0 -7
  463. package/src/incubator/expandableOverlay/index.d.ts +0 -83
  464. package/src/incubator/gradient/BorderGradient.d.ts +0 -4
  465. package/src/incubator/gradient/CircleGradient.d.ts +0 -4
  466. package/src/incubator/gradient/RectangleGradient.d.ts +0 -4
  467. package/src/incubator/gradient/index.d.ts +0 -5
  468. package/src/incubator/gradient/types.d.ts +0 -26
  469. package/src/incubator/gradient/useAngleTransform.d.ts +0 -27
  470. package/src/incubator/index.d.ts +0 -9
  471. package/src/incubator/slider/Slider.driver.d.ts +0 -5
  472. package/src/incubator/slider/SliderPresenter.d.ts +0 -6
  473. package/src/incubator/slider/Thumb.d.ts +0 -24
  474. package/src/incubator/slider/Track.d.ts +0 -13
  475. package/src/incubator/slider/index.d.ts +0 -139
  476. package/src/incubator/toast/Toast.driver.new.d.ts +0 -54
  477. package/src/incubator/toast/helpers/useToastAnimation.d.ts +0 -22
  478. package/src/incubator/toast/helpers/useToastPresets.d.ts +0 -8
  479. package/src/incubator/toast/helpers/useToastTimer.d.ts +0 -6
  480. package/src/incubator/toast/index.d.ts +0 -9
  481. package/src/incubator/toast/types.d.ts +0 -111
  482. package/src/index.d.ts +0 -92
  483. package/src/optionalDependencies/BlurViewPackage.d.ts +0 -2
  484. package/src/optionalDependencies/BlurViewPackage.web.d.ts +0 -2
  485. package/src/optionalDependencies/DateTimePickerPackage.d.ts +0 -2
  486. package/src/optionalDependencies/FlashListPackage.d.ts +0 -2
  487. package/src/optionalDependencies/HapticFeedbackPackage.d.ts +0 -2
  488. package/src/optionalDependencies/LinearGradientPackage.d.ts +0 -2
  489. package/src/optionalDependencies/MomentPackage.d.ts +0 -2
  490. package/src/optionalDependencies/NetInfoPackage.d.ts +0 -2
  491. package/src/optionalDependencies/PostCssPackage.d.ts +0 -5
  492. package/src/optionalDependencies/ShimmerPackage.d.ts +0 -2
  493. package/src/optionalDependencies/SvgPackage.d.ts +0 -3
  494. package/src/optionalDependencies/index.d.ts +0 -9
  495. package/src/optionalDependencies/index.web.d.ts +0 -7
  496. package/src/services/HapticService.d.ts +0 -15
  497. package/src/services/LogService.d.ts +0 -35
  498. package/src/services/index.d.ts +0 -2
  499. package/src/style/borderRadiuses.d.ts +0 -30
  500. package/src/style/colorName.d.ts +0 -8
  501. package/src/style/colorNameMap.d.ts +0 -2
  502. package/src/style/colors.d.ts +0 -274
  503. package/src/style/colorsPalette.d.ts +0 -101
  504. package/src/style/components.d.ts +0 -15
  505. package/src/style/componentsColors.d.ts +0 -5
  506. package/src/style/designTokens.d.ts +0 -69
  507. package/src/style/designTokensDM.d.ts +0 -69
  508. package/src/style/dividers.d.ts +0 -11
  509. package/src/style/index.d.ts +0 -13
  510. package/src/style/scheme.d.ts +0 -57
  511. package/src/style/shadows.d.ts +0 -223
  512. package/src/style/spacings.d.ts +0 -32
  513. package/src/style/themeManager.d.ts +0 -22
  514. package/src/style/typography.d.ts +0 -26
  515. package/src/style/typographyPresets.d.ts +0 -7
  516. package/src/testkit/Component.driver.d.ts +0 -30
  517. package/src/testkit/DriverException.d.ts +0 -12
  518. package/src/testkit/UniDriver.d.ts +0 -29
  519. package/src/testkit/drivers/TestingLibraryDriver.d.ts +0 -26
  520. package/src/testkit/index.d.ts +0 -25
  521. package/src/testkit/new/Component.driver.d.ts +0 -16
  522. package/src/testkit/new/useDraggable.driver.d.ts +0 -15
  523. package/src/testkit/new/usePressable.driver.d.ts +0 -14
  524. package/src/testkit/new/useScrollable.driver.d.ts +0 -13
  525. package/src/typings/assets.d.ts +0 -52
  526. package/src/typings/common.d.ts +0 -12
  527. package/src/typings/module.d.ts +0 -13
  528. package/src/typings/recorderTypes.d.ts +0 -13
  529. package/src/uilib-test-renderer/helper.d.ts +0 -8
  530. package/src/uilib-test-renderer/index.d.ts +0 -4
  531. package/src/uilib-test-renderer/scrollViewHelper.d.ts +0 -9
  532. package/src/utils/dateUtils.d.ts +0 -2
  533. package/src/utils/imageUtils.d.ts +0 -5
  534. package/src/utils/index.d.ts +0 -4
  535. package/src/utils/styleUtils.d.ts +0 -7
  536. package/src/utils/textUtils.d.ts +0 -8
  537. /package/{src → scripts/build}/.babelrc.exports.js +0 -0
@@ -0,0 +1,96 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import Switch from "../index";
4
+ import { SwitchDriver } from "../Switch.driver";
5
+ const testID = 'switch';
6
+ const defaultProps = {
7
+ value: false,
8
+ onValueChange: jest.fn(),
9
+ disabled: false
10
+ };
11
+ const onColor = 'red';
12
+ const offColor = 'grey';
13
+ const testCase = (testID, props) => {
14
+ const renderTree = render(<Switch testID={testID} {...defaultProps} {...props} />);
15
+ return SwitchDriver({
16
+ renderTree,
17
+ testID
18
+ });
19
+ };
20
+ describe('Switch', () => {
21
+ it('Should fire onChange event', async () => {
22
+ const onChange = jest.fn();
23
+ const driver = testCase(testID, {
24
+ onValueChange: onChange
25
+ });
26
+ driver.press();
27
+ expect(onChange).toHaveBeenCalled();
28
+ });
29
+ it('Should fire onChange event with false value when toggling off', async () => {
30
+ const onChange = jest.fn();
31
+ const driver = testCase(testID, {
32
+ onValueChange: onChange,
33
+ value: true
34
+ });
35
+ driver.press();
36
+ expect(onChange).toHaveBeenCalledWith(false);
37
+ });
38
+ it('Should fire onChange event with true value when toggling on', async () => {
39
+ const onChange = jest.fn();
40
+ const driver = testCase(testID, {
41
+ onValueChange: onChange,
42
+ value: false
43
+ });
44
+ driver.press();
45
+ expect(onChange).toHaveBeenCalledWith(true);
46
+ });
47
+ it('Should not fire onChange when disabled', async () => {
48
+ const onValueChange = jest.fn();
49
+ const driver = testCase(testID, {
50
+ disabled: true,
51
+ onValueChange
52
+ });
53
+ driver.press();
54
+ expect(onValueChange).not.toHaveBeenCalled();
55
+ });
56
+ it('Accessibility value should be false when not checked', async () => {
57
+ const driver = testCase(testID, {
58
+ value: false
59
+ });
60
+ expect(driver.isChecked()).toBe(false);
61
+ });
62
+ it('Accessibility value should be checked when checked', async () => {
63
+ const driver = testCase(testID, {
64
+ value: true
65
+ });
66
+ expect(driver.isChecked()).toBe(true);
67
+ });
68
+ it('Should be disabled', async () => {
69
+ const driver = testCase(testID, {
70
+ disabled: true
71
+ });
72
+ expect(driver.isDisabled()).toBe(true);
73
+ });
74
+ it('Should be disabled', async () => {
75
+ const driver = testCase(testID, {
76
+ disabled: false
77
+ });
78
+ expect(driver.isDisabled()).toBe(false);
79
+ });
80
+ it('Should pass correct color when on', async () => {
81
+ const driver = testCase(testID, {
82
+ value: true,
83
+ onColor,
84
+ offColor
85
+ });
86
+ expect(driver.getStyle()?.backgroundColor).toBe(onColor);
87
+ });
88
+ it('Should pass correct color when off', async () => {
89
+ const driver = testCase(testID, {
90
+ value: false,
91
+ onColor,
92
+ offColor
93
+ });
94
+ expect(driver.getStyle()?.backgroundColor).toBe(offColor);
95
+ });
96
+ });
@@ -0,0 +1,124 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import { TextDriver } from "../Text.driver.new";
4
+ import { StyleSheet } from 'react-native';
5
+ const TEXT_ID = 'text_test_id';
6
+ const TEXT_CONTENT = 'text content';
7
+ function WrapperScreenWithText(textProps = {}) {
8
+ const {
9
+ onPress
10
+ } = textProps;
11
+ const Text = require("../index").default;
12
+ return <Text testID={TEXT_ID} onPress={onPress}>
13
+ {TEXT_CONTENT}
14
+ </Text>;
15
+ }
16
+ const getDriver = (textProps = {}) => {
17
+ const {
18
+ onPress
19
+ } = textProps;
20
+ const renderTree = render(<WrapperScreenWithText onPress={onPress} />);
21
+ const textDriver = TextDriver({
22
+ renderTree,
23
+ testID: TEXT_ID
24
+ });
25
+ return {
26
+ textDriver
27
+ };
28
+ };
29
+ describe('Text', () => {
30
+ it('should render Text Component', () => {
31
+ const {
32
+ textDriver
33
+ } = getDriver();
34
+ const content = textDriver.getText();
35
+ expect(content).toEqual(TEXT_CONTENT);
36
+ });
37
+ it('should return empty string', () => {
38
+ const Text = require("../").default;
39
+ const renderTree = render(<Text testID={TEXT_ID} />);
40
+ const textDriver = TextDriver({
41
+ renderTree,
42
+ testID: TEXT_ID
43
+ });
44
+ const content = textDriver.getText();
45
+ expect(content).toEqual('');
46
+ });
47
+ it('should not return a string as text', () => {
48
+ const Text = require("../").default;
49
+ const renderTree = render(<Text testID={TEXT_ID}><Text>This is a text</Text></Text>);
50
+ const textDriver = TextDriver({
51
+ renderTree,
52
+ testID: TEXT_ID
53
+ });
54
+ const content = textDriver.getText();
55
+ expect(content.length).toBe(1);
56
+ expect(typeof content[0]).not.toBe('string');
57
+ });
58
+ describe('onPress', () => {
59
+ it('should press the text, and run callback', () => {
60
+ const onPressCallback = jest.fn();
61
+ const {
62
+ textDriver
63
+ } = getDriver({
64
+ onPress: onPressCallback
65
+ });
66
+ textDriver.press();
67
+ expect(onPressCallback).toHaveBeenCalledTimes(1);
68
+ });
69
+ it('should not be pressable if onPress prop is not supplied', () => {
70
+ const {
71
+ textDriver
72
+ } = getDriver();
73
+ expect(textDriver.hasOnPress()).toBeFalsy();
74
+ });
75
+ });
76
+ const setConstants = (isAndroid, isRTL) => {
77
+ const {
78
+ Constants
79
+ } = require("../../../commons/new");
80
+ Constants.isAndroid = isAndroid;
81
+ Constants.isIOS = !isAndroid;
82
+ Constants.isRTL = isRTL;
83
+ };
84
+ describe('Text alignment', () => {
85
+ it('Should always align text to left on Android (LTR/RTL)', () => {
86
+ jest.isolateModules(() => {
87
+ setConstants(true, true);
88
+ const {
89
+ textDriver
90
+ } = getDriver();
91
+ const textStyle = textDriver.getElement().props.style;
92
+ expect(StyleSheet.flatten(textStyle).textAlign).toEqual(undefined);
93
+ });
94
+ jest.isolateModules(() => {
95
+ setConstants(true, false);
96
+ const {
97
+ textDriver
98
+ } = getDriver();
99
+ const textStyle = textDriver.getElement().props.style;
100
+ expect(StyleSheet.flatten(textStyle).textAlign).toEqual(undefined);
101
+ });
102
+ });
103
+ it('Should have text of right on iOS RTL', () => {
104
+ jest.isolateModules(() => {
105
+ setConstants(false, true);
106
+ const {
107
+ textDriver
108
+ } = getDriver();
109
+ const textStyle = textDriver.getElement().props.style;
110
+ expect(StyleSheet.flatten(textStyle).writingDirection).toEqual('rtl');
111
+ });
112
+ });
113
+ it('Should have text of left on iOS LTR', () => {
114
+ jest.isolateModules(() => {
115
+ setConstants(false, false);
116
+ const {
117
+ textDriver
118
+ } = getDriver();
119
+ const textStyle = textDriver.getElement().props.style;
120
+ expect(StyleSheet.flatten(textStyle).writingDirection).toEqual('ltr');
121
+ });
122
+ });
123
+ });
124
+ });
@@ -0,0 +1,245 @@
1
+ import React from 'react';
2
+ import View from "../../view";
3
+ import Text from "../index";
4
+ import { TextDriver } from "../Text.driver";
5
+ import { Colors } from "../../../style";
6
+ const TEXT_ID = 'text_test_id';
7
+ const TEXT_CONTENT = 'text content';
8
+ describe('Text', () => {
9
+ afterEach(() => {
10
+ TextDriver.clear();
11
+ });
12
+ describe('highlightString', () => {
13
+ const HIGHLIGHT_STRING_TEST_ID = 'highlight-string-test-id';
14
+ describe('single highlightString', () => {
15
+ describe('style', () => {
16
+ it('should render highlight string with a given style', async () => {
17
+ const component = WrapperScreenWithText({
18
+ highlightString: {
19
+ string: 'content',
20
+ style: {
21
+ color: Colors.red30,
22
+ textDecorationLine: 'underline'
23
+ },
24
+ testID: HIGHLIGHT_STRING_TEST_ID
25
+ }
26
+ });
27
+ const textDriver = new TextDriver({
28
+ component,
29
+ testID: TEXT_ID
30
+ });
31
+ const {
32
+ style
33
+ } = await textDriver.getPropsByTestId(HIGHLIGHT_STRING_TEST_ID);
34
+ expect(style).toEqual({
35
+ color: Colors.red30,
36
+ textDecorationLine: 'underline'
37
+ });
38
+ });
39
+ it('should render highlight string with the general highlightStyle prop style if no specific style given', async () => {
40
+ const component = WrapperScreenWithText({
41
+ highlightString: {
42
+ string: 'content',
43
+ testID: HIGHLIGHT_STRING_TEST_ID
44
+ },
45
+ highlightStyle: {
46
+ color: Colors.blue50
47
+ }
48
+ });
49
+ const textDriver = new TextDriver({
50
+ component,
51
+ testID: TEXT_ID
52
+ });
53
+ const {
54
+ style
55
+ } = await textDriver.getPropsByTestId(HIGHLIGHT_STRING_TEST_ID);
56
+ expect(style).toEqual([{
57
+ color: Colors.grey30
58
+ }, {
59
+ color: Colors.blue50
60
+ }]);
61
+ });
62
+ });
63
+ describe('onPress', () => {
64
+ it('should press on highlighted text and run its callback', async () => {
65
+ const onPressCallback = jest.fn();
66
+ const component = WrapperScreenWithText({
67
+ highlightString: {
68
+ string: 'content',
69
+ onPress: onPressCallback,
70
+ testID: HIGHLIGHT_STRING_TEST_ID
71
+ }
72
+ });
73
+ const textDriver = new TextDriver({
74
+ component,
75
+ testID: HIGHLIGHT_STRING_TEST_ID
76
+ });
77
+ await textDriver.press();
78
+ expect(onPressCallback).toHaveBeenCalledTimes(1);
79
+ });
80
+ it('should not be pressable if onPress prop is not supplied for a highlightString', async () => {
81
+ const component = WrapperScreenWithText({
82
+ highlightString: {
83
+ string: 'content',
84
+ testID: HIGHLIGHT_STRING_TEST_ID
85
+ }
86
+ });
87
+ const textDriver = new TextDriver({
88
+ component,
89
+ testID: HIGHLIGHT_STRING_TEST_ID
90
+ });
91
+ expect(await textDriver.isPressable()).toBeFalsy();
92
+ });
93
+ });
94
+ });
95
+ describe('highlightString array', () => {
96
+ const LONGER_TEXT_CONTENT = 'a longer text content to test';
97
+ const HIGHLIGHT_STRING_2_TEST_ID = 'highlight-string-2-test-id';
98
+ describe('style', () => {
99
+ it('should render multiple highlight strings, each with its given style', async () => {
100
+ const component = WrapperScreenWithText({
101
+ text: LONGER_TEXT_CONTENT,
102
+ highlightString: [{
103
+ string: 'longer',
104
+ style: {
105
+ color: Colors.red30,
106
+ textDecorationLine: 'underline'
107
+ },
108
+ testID: HIGHLIGHT_STRING_TEST_ID
109
+ }, {
110
+ string: 'test',
111
+ style: {
112
+ color: Colors.yellow40,
113
+ textDecorationLine: 'line-through'
114
+ },
115
+ testID: HIGHLIGHT_STRING_2_TEST_ID
116
+ }]
117
+ });
118
+ const textDriver = new TextDriver({
119
+ component,
120
+ testID: TEXT_ID
121
+ });
122
+ const {
123
+ style: style1
124
+ } = await textDriver.getPropsByTestId(HIGHLIGHT_STRING_TEST_ID);
125
+ const {
126
+ style: style2
127
+ } = await textDriver.getPropsByTestId(HIGHLIGHT_STRING_2_TEST_ID);
128
+ expect(style1).toEqual({
129
+ color: Colors.red30,
130
+ textDecorationLine: 'underline'
131
+ });
132
+ expect(style2).toEqual({
133
+ color: Colors.yellow40,
134
+ textDecorationLine: 'line-through'
135
+ });
136
+ });
137
+ it('should render highlight string with the general highlightStyle prop style if no specific style given', async () => {
138
+ const component = WrapperScreenWithText({
139
+ text: LONGER_TEXT_CONTENT,
140
+ highlightString: [{
141
+ string: 'longer',
142
+ style: {
143
+ color: Colors.red30,
144
+ textDecorationLine: 'underline'
145
+ },
146
+ testID: HIGHLIGHT_STRING_TEST_ID
147
+ }, {
148
+ string: 'test',
149
+ testID: HIGHLIGHT_STRING_2_TEST_ID
150
+ }],
151
+ highlightStyle: {
152
+ color: Colors.blue50
153
+ }
154
+ });
155
+ const textDriver = new TextDriver({
156
+ component,
157
+ testID: TEXT_ID
158
+ });
159
+ const {
160
+ style
161
+ } = await textDriver.getPropsByTestId(HIGHLIGHT_STRING_TEST_ID);
162
+ const {
163
+ style: style2
164
+ } = await textDriver.getPropsByTestId(HIGHLIGHT_STRING_2_TEST_ID);
165
+ expect(style).toEqual({
166
+ color: Colors.red30,
167
+ textDecorationLine: 'underline'
168
+ });
169
+ expect(style2).toEqual([{
170
+ color: Colors.grey30
171
+ }, {
172
+ color: Colors.blue50
173
+ }]);
174
+ });
175
+ });
176
+ describe('onPress', () => {
177
+ it('should press on highlighted texts and run their respective callbacks', async () => {
178
+ const onPressCallback1 = jest.fn();
179
+ const onPressCallback2 = jest.fn();
180
+ const component = WrapperScreenWithText({
181
+ text: LONGER_TEXT_CONTENT,
182
+ highlightString: [{
183
+ string: 'longer',
184
+ onPress: onPressCallback1,
185
+ testID: HIGHLIGHT_STRING_TEST_ID
186
+ }, {
187
+ string: 'test',
188
+ onPress: onPressCallback2,
189
+ testID: HIGHLIGHT_STRING_2_TEST_ID
190
+ }]
191
+ });
192
+ const textDriver1 = new TextDriver({
193
+ component,
194
+ testID: HIGHLIGHT_STRING_TEST_ID
195
+ });
196
+ await textDriver1.press();
197
+ expect(onPressCallback1).toHaveBeenCalledTimes(1);
198
+ const textDriver2 = new TextDriver({
199
+ component,
200
+ testID: HIGHLIGHT_STRING_2_TEST_ID
201
+ });
202
+ await textDriver2.press();
203
+ expect(onPressCallback2).toHaveBeenCalledTimes(1);
204
+ });
205
+ it('should not be pressable if onPress prop is not supplied for a highlightString', async () => {
206
+ const onPressCallback = jest.fn();
207
+ const component = WrapperScreenWithText({
208
+ text: LONGER_TEXT_CONTENT,
209
+ highlightString: [{
210
+ string: 'longer',
211
+ onPress: onPressCallback,
212
+ testID: HIGHLIGHT_STRING_TEST_ID
213
+ }, {
214
+ string: 'test',
215
+ testID: HIGHLIGHT_STRING_2_TEST_ID
216
+ }]
217
+ });
218
+ const textDriver1 = new TextDriver({
219
+ component,
220
+ testID: HIGHLIGHT_STRING_TEST_ID
221
+ });
222
+ const textDriver2 = new TextDriver({
223
+ component,
224
+ testID: HIGHLIGHT_STRING_2_TEST_ID
225
+ });
226
+ expect(await textDriver1.isPressable()).toBeTruthy();
227
+ expect(await textDriver2.isPressable()).toBeFalsy();
228
+ });
229
+ });
230
+ });
231
+ });
232
+ });
233
+ function WrapperScreenWithText(textProps = {}) {
234
+ const {
235
+ onPress,
236
+ highlightString,
237
+ text,
238
+ highlightStyle
239
+ } = textProps;
240
+ return <View>
241
+ <Text testID={TEXT_ID} onPress={onPress} highlightString={highlightString} highlightStyle={highlightStyle}>
242
+ {text ?? TEXT_CONTENT}
243
+ </Text>
244
+ </View>;
245
+ }
@@ -0,0 +1,240 @@
1
+ import _ from 'lodash';
2
+ import Colors from '../../../style/colors';
3
+ import * as uut from '../Presenter';
4
+
5
+ describe('TextField:Presenter', () => {
6
+ describe('get color by state', () => {
7
+ const colorsByState = {
8
+ default: 'purple',
9
+ focus: 'green',
10
+ error: 'orange',
11
+ readonly: 'pink',
12
+ disabled: 'lightblue'
13
+ };
14
+
15
+ const defaultContext = {
16
+ isFocused: false,
17
+ hasValue: false,
18
+ isValid: true,
19
+ failingValidatorIndex: undefined,
20
+ disabled: false,
21
+ readonly: false,
22
+ validateField: _.noop,
23
+ checkValidity: () => true,
24
+ isMandatory: false
25
+ };
26
+
27
+ it('should return passed color when is a string', () => {
28
+ expect(uut.getColorByState('blue', defaultContext)).toEqual('blue');
29
+ });
30
+
31
+ it('should return passed color when is design token', () => {
32
+ expect(uut.getColorByState(Colors.$backgroundDark, defaultContext)).toEqual(Colors.$backgroundDark);
33
+ });
34
+
35
+ it('should return textDefault color when color is an empty object', () => {
36
+ expect(uut.getColorByState({}, defaultContext)).toEqual(Colors.$textDefault);
37
+ });
38
+
39
+ it('should return textDefault color when no default color passed in color object', () => {
40
+ expect(uut.getColorByState({error: 'red'}, defaultContext)).toEqual(Colors.$textDefault);
41
+ });
42
+
43
+ it('should return default color', () => {
44
+ expect(uut.getColorByState(colorsByState, defaultContext)).toEqual(colorsByState.default);
45
+ });
46
+
47
+ it('should return focused color', () => {
48
+ const context = {...defaultContext, isFocused: true};
49
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.focus);
50
+ });
51
+
52
+ it('should return error color', () => {
53
+ const context = {...defaultContext, isValid: false};
54
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.error);
55
+ });
56
+
57
+ it('should return readonly color', () => {
58
+ const context = {...defaultContext, readonly: true};
59
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.readonly);
60
+ });
61
+
62
+ it('should return disabled color', () => {
63
+ const context = {...defaultContext, disabled: true};
64
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.disabled);
65
+ });
66
+
67
+ it('should return disabled color, over readonly', () => {
68
+ const context = {...defaultContext, disabled: true, readonly: true};
69
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.disabled);
70
+ });
71
+
72
+ it('should return disabled color, over error', () => {
73
+ const context = {...defaultContext, disabled: true, isValid: false};
74
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.disabled);
75
+ });
76
+
77
+ it('should return disabled color, over focused', () => {
78
+ const context = {...defaultContext, disabled: true, isFocused: false};
79
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.disabled);
80
+ });
81
+
82
+ it('should return readonly color, over error', () => {
83
+ const context = {...defaultContext, readonly: true, isValid: false};
84
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.readonly);
85
+ });
86
+
87
+ it('should return readonly color, over focused', () => {
88
+ const context = {...defaultContext, readonly: true, isFocused: false};
89
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.readonly);
90
+ });
91
+
92
+ it('should return error color, over focused', () => {
93
+ const context = {...defaultContext, isValid: false, isFocused: true};
94
+ expect(uut.getColorByState(colorsByState, context)).toEqual(colorsByState.error);
95
+ });
96
+ });
97
+
98
+ describe('validate', () => {
99
+ it('should return true if validator is undefined', () => {
100
+ expect(uut.validate('value', undefined)).toEqual([true, undefined]);
101
+ });
102
+
103
+ it('should validate email', () => {
104
+ const validator = 'email';
105
+
106
+ expect(uut.validate('value', validator)).toEqual([false, 0]);
107
+ expect(uut.validate('', validator)).toEqual([false, 0]);
108
+ expect(uut.validate('test@mail', validator)).toEqual([false, 0]);
109
+ expect(uut.validate('test@mail.com', validator)).toEqual([true, undefined]);
110
+ });
111
+
112
+ it('should validate required', () => {
113
+ const validator = 'required';
114
+
115
+ expect(uut.validate('', validator)).toEqual([false, 0]);
116
+ expect(uut.validate(undefined, validator)).toEqual([false, 0]);
117
+ expect(uut.validate('value', validator)).toEqual([true, undefined]);
118
+ });
119
+
120
+ it('should validate a function validator', () => {
121
+ const validator = value => value.length > 3;
122
+
123
+ expect(uut.validate('', validator)).toEqual([false, 0]);
124
+ expect(uut.validate('abc', validator)).toEqual([false, 0]);
125
+ expect(uut.validate('abcd', validator)).toEqual([true, undefined]);
126
+ });
127
+
128
+ it('should validate both required and email', () => {
129
+ const validator = ['required', 'email'];
130
+
131
+ expect(uut.validate('', validator)).toEqual([false, 0]);
132
+ expect(uut.validate('value', validator)).toEqual([false, 1]);
133
+ expect(uut.validate('test@mail.com', validator)).toEqual([true, undefined]);
134
+ });
135
+ });
136
+
137
+ describe('getValidationMessage', () => {
138
+ it('should return undefined when there is no validationMessage', () => {
139
+ expect(uut.getRelevantValidationMessage(undefined, 0)).toBeUndefined();
140
+ });
141
+
142
+ it('should return the validation message when there is no validate method', () => {
143
+ expect(uut.getRelevantValidationMessage('error message', undefined)).toBe('error message');
144
+ });
145
+
146
+ it('should return the relevant validation message when there is a single message', () => {
147
+ expect(uut.getRelevantValidationMessage('error message', 0)).toBe('error message');
148
+ });
149
+
150
+ it('should return the relevant validation message when there are multiple messages', () => {
151
+ const messages = ['Field is required', 'Email is invalid'];
152
+ expect(uut.getRelevantValidationMessage(messages, 0)).toBe(messages[0]);
153
+ expect(uut.getRelevantValidationMessage(messages, 1)).toBe(messages[1]);
154
+ });
155
+ });
156
+
157
+ describe('Should hide placeholder', () => {
158
+ it('should keep it visible when floatingPlaceholder is false', () => {
159
+ expect(uut.shouldHidePlaceholder({floatingPlaceholder: false})).toBe(false);
160
+ });
161
+
162
+ it('should hide it when using floatingPlaceholder', () => {
163
+ expect(uut.shouldHidePlaceholder({floatingPlaceholder: true})).toBe(true);
164
+ });
165
+
166
+ it('should show it when floatingPlaceholder is true, user passed a hint text, the field is focused and floatOnFocus is true', () => {
167
+ expect(uut.shouldHidePlaceholder({floatingPlaceholder: true, hint: 'Hint text', floatOnFocus: true}, true)).toBe(false);
168
+ });
169
+
170
+ it('should hide it when floatingPlaceholder is true, user passed a hint text, the field is focused but floatOnFocus is false', () => {
171
+ expect(uut.shouldHidePlaceholder({floatingPlaceholder: true, hint: 'Hint text', floatOnFocus: false}, true)).toBe(true);
172
+ });
173
+ });
174
+
175
+ describe('Should float placeholder', () => {
176
+ it('should not float when isFocused is false', () => {
177
+ const props = {floatOnFocus: true};
178
+ const isFocused = false;
179
+ const hasValue = undefined;
180
+ const value = undefined;
181
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(false);
182
+ });
183
+
184
+ it('should not float when isFocused is false', () => {
185
+ const props = {floatOnFocus: false};
186
+ const isFocused = true;
187
+ const hasValue = undefined;
188
+ const value = undefined;
189
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(false);
190
+ });
191
+
192
+ it('should float when floatOnFocus and isFocused is true', () => {
193
+ const props = {floatOnFocus: true};
194
+ const isFocused = true;
195
+ const hasValue = undefined;
196
+ const value = undefined;
197
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(true);
198
+ });
199
+
200
+ it('should float when hasValue is true', () => {
201
+ const props = {floatOnFocus: false};
202
+ const isFocused = false;
203
+ const hasValue = true;
204
+ const value = undefined;
205
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(true);
206
+ });
207
+
208
+ it('should not float when hasValue is false', () => {
209
+ const props = {floatOnFocus: false};
210
+ const isFocused = false;
211
+ const hasValue = false;
212
+ const value = undefined;
213
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(false);
214
+ });
215
+
216
+ it('should float when defaultValue and value is undefined', () => {
217
+ const props = {floatOnFocus: false, defaultValue: 'default value'};
218
+ const isFocused = false;
219
+ const hasValue = false;
220
+ const value = undefined;
221
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(true);
222
+ });
223
+
224
+ it('should not float when defaultValue and value', () => {
225
+ const props = {floatOnFocus: false, defaultValue: 'default value'};
226
+ const isFocused = false;
227
+ const hasValue = false;
228
+ const value = 'value';
229
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(false);
230
+ });
231
+
232
+ it('should not float when no defaultValue and value', () => {
233
+ const props = {floatOnFocus: false, defaultValue: undefined};
234
+ const isFocused = false;
235
+ const hasValue = false;
236
+ const value = 'value';
237
+ expect(uut.shouldPlaceholderFloat(props, isFocused, hasValue, value)).toBe(false);
238
+ });
239
+ });
240
+ });