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,639 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import Constants from "../../../commons/Constants";
4
+ import Assets from "../../../assets";
5
+ import View from "../../../components/view";
6
+ import { TextFieldDriver } from "../TextField.driver.new";
7
+ import TextField from "../index";
8
+ const TEXT_FIELD_TEST_ID = 'text_field_test_id';
9
+ const placeholder = 'Placeholder';
10
+ const label = 'Label';
11
+ const hint = 'Hint';
12
+ const helperText = 'Helper Text';
13
+ function TestCase(textFieldProps) {
14
+ const [value, setValue] = useState(textFieldProps?.value);
15
+ useEffect(() => {
16
+ setValue(textFieldProps?.value);
17
+ }, [textFieldProps?.value]);
18
+ return <View>
19
+ <TextField {...textFieldProps} testID={TEXT_FIELD_TEST_ID} value={value} onChangeText={setValue} />
20
+ </View>;
21
+ }
22
+ const validate = jest.fn(value => {
23
+ return !!value;
24
+ });
25
+ describe('TextField', () => {
26
+ afterEach(() => {
27
+ jest.clearAllMocks();
28
+ });
29
+ describe.each(['outline', 'underline', undefined])('on %s preset', preset => {
30
+ const defaultProps = {
31
+ preset
32
+ };
33
+ describe('sanity', () => {
34
+ it('should render textField', () => {
35
+ const renderTree = render(<TestCase {...defaultProps} />);
36
+ const textFieldDriver = TextFieldDriver({
37
+ renderTree,
38
+ testID: TEXT_FIELD_TEST_ID
39
+ });
40
+ expect(textFieldDriver.exists()).toBe(true);
41
+ });
42
+ it('should render textField with correct content', () => {
43
+ const renderTree = render(<TestCase {...defaultProps} value={'aa'} />);
44
+ const textFieldDriver = TextFieldDriver({
45
+ renderTree,
46
+ testID: TEXT_FIELD_TEST_ID
47
+ });
48
+ expect(textFieldDriver.getValue()).toEqual('aa');
49
+ });
50
+ it('should change the text correctly', () => {
51
+ const renderTree = render(<TestCase {...defaultProps} value={'aa'} />);
52
+ const textFieldDriver = TextFieldDriver({
53
+ renderTree,
54
+ testID: TEXT_FIELD_TEST_ID
55
+ });
56
+ expect(textFieldDriver.getValue()).toEqual('aa');
57
+ textFieldDriver.changeText('bb');
58
+ expect(textFieldDriver.getValue()).toEqual('bb');
59
+ });
60
+ });
61
+ describe('editable', () => {
62
+ it('should be editable', () => {
63
+ const renderTree = render(<TestCase {...defaultProps} />);
64
+ const textFieldDriver = TextFieldDriver({
65
+ renderTree,
66
+ testID: TEXT_FIELD_TEST_ID
67
+ });
68
+ expect(textFieldDriver.isEnabled()).toBe(true);
69
+ });
70
+ it('should render textField that is not editable', () => {
71
+ const renderTree = render(<TestCase {...defaultProps} editable={false} />);
72
+ const textFieldDriver = TextFieldDriver({
73
+ renderTree,
74
+ testID: TEXT_FIELD_TEST_ID
75
+ });
76
+ expect(textFieldDriver.isEnabled()).toBe(false);
77
+ });
78
+ });
79
+ describe('readonly', () => {
80
+ it('should render textField that is not readonly', () => {
81
+ const renderTree = render(<TestCase {...defaultProps} />);
82
+ const textFieldDriver = TextFieldDriver({
83
+ renderTree,
84
+ testID: TEXT_FIELD_TEST_ID
85
+ });
86
+ expect(textFieldDriver.isEnabled()).toBe(true);
87
+ });
88
+ it('should be readonly', () => {
89
+ const renderTree = render(<TestCase {...defaultProps} readonly />);
90
+ const textFieldDriver = TextFieldDriver({
91
+ renderTree,
92
+ testID: TEXT_FIELD_TEST_ID
93
+ });
94
+ expect(textFieldDriver.isEnabled()).toBe(false);
95
+ });
96
+ });
97
+ describe('placeholder', () => {
98
+ it('should render placeholder with correct text', () => {
99
+ const renderTree = render(<TestCase {...defaultProps} placeholder={'mock placeholder'} />);
100
+ const textFieldDriver = TextFieldDriver({
101
+ renderTree,
102
+ testID: TEXT_FIELD_TEST_ID
103
+ });
104
+ expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
105
+ expect(textFieldDriver.getPlaceholder().getText()).toEqual('mock placeholder');
106
+ });
107
+ it('should not render placeholder', () => {
108
+ const renderTree = render(<TestCase {...defaultProps} />);
109
+ const textFieldDriver = TextFieldDriver({
110
+ renderTree,
111
+ testID: TEXT_FIELD_TEST_ID
112
+ });
113
+ expect(textFieldDriver.getPlaceholder().exists()).toBe(false);
114
+ });
115
+ it('should not render placeholder after user changing the input text (no floating prop)', () => {
116
+ const renderTree = render(<TestCase {...defaultProps} placeholder={'mock placeholder'} />);
117
+ const textFieldDriver = TextFieldDriver({
118
+ renderTree,
119
+ testID: TEXT_FIELD_TEST_ID
120
+ });
121
+ expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
122
+ textFieldDriver.changeText('mock input value');
123
+ expect(textFieldDriver.getPlaceholder().exists()).toBe(false);
124
+ });
125
+ it('should render placeholder (floating) after user changing text if floatingPlaceholder prop sent', () => {
126
+ const renderTree = render(<TestCase {...defaultProps} placeholder={'mock placeholder'} floatingPlaceholder />);
127
+ const textFieldDriver = TextFieldDriver({
128
+ renderTree,
129
+ testID: TEXT_FIELD_TEST_ID
130
+ });
131
+ expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
132
+ textFieldDriver.changeText('mock input value');
133
+ expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
134
+ expect(textFieldDriver.getPlaceholder().getText()).toEqual('mock placeholder');
135
+ });
136
+ });
137
+ describe('label', () => {
138
+ it('should not render label if prop is not passed', () => {
139
+ const renderTree = render(<TestCase {...defaultProps} />);
140
+ const textFieldDriver = TextFieldDriver({
141
+ renderTree,
142
+ testID: TEXT_FIELD_TEST_ID
143
+ });
144
+ expect(textFieldDriver.getLabel().exists()).toBe(false);
145
+ });
146
+ it('should render a label', () => {
147
+ const renderTree = render(<TestCase {...defaultProps} label={'mock label'} />);
148
+ const textFieldDriver = TextFieldDriver({
149
+ renderTree,
150
+ testID: TEXT_FIELD_TEST_ID
151
+ });
152
+ expect(textFieldDriver.getLabel().exists()).toBe(true);
153
+ expect(textFieldDriver.getLabel().getText()).toEqual('mock label');
154
+ });
155
+ it('should not render label if floatingPlaceholder prop is passed', () => {
156
+ const renderTree = render(<TestCase {...defaultProps} label={'mock label'} floatingPlaceholder />);
157
+ const textFieldDriver = TextFieldDriver({
158
+ renderTree,
159
+ testID: TEXT_FIELD_TEST_ID
160
+ });
161
+ expect(textFieldDriver.getLabel().exists()).toBe(false);
162
+ });
163
+ });
164
+ describe('validation message', () => {
165
+ it('should not render validationMessage if enableErrors is undefined', () => {
166
+ const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} validateOnStart enableErrors={undefined} />);
167
+ const textFieldDriver = TextFieldDriver({
168
+ renderTree,
169
+ testID: TEXT_FIELD_TEST_ID
170
+ });
171
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
172
+ });
173
+ it('should not render validationMessage if enableErrors is not passed (passed by the preset)', () => {
174
+ const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} validateOnStart />);
175
+ const textFieldDriver = TextFieldDriver({
176
+ renderTree,
177
+ testID: TEXT_FIELD_TEST_ID
178
+ });
179
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(!!defaultProps?.preset);
180
+ });
181
+ it('should render validationMessage if validationMessage passed and remove it when validationMessage is changed to undefined', () => {
182
+ const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} enableErrors />);
183
+ const textFieldDriver = TextFieldDriver({
184
+ renderTree,
185
+ testID: TEXT_FIELD_TEST_ID
186
+ });
187
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
188
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
189
+ renderTree.rerender(<TestCase {...defaultProps} value={''} validationMessage={undefined} enableErrors />);
190
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
191
+ });
192
+ it('should not render validationMessage if validationMessage is undefined and add it when validationMessage is passed', () => {
193
+ const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={undefined} enableErrors />);
194
+ const textFieldDriver = TextFieldDriver({
195
+ renderTree,
196
+ testID: TEXT_FIELD_TEST_ID
197
+ });
198
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
199
+ renderTree.rerender(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} enableErrors />);
200
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
201
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
202
+ });
203
+ it('should render validationMessage on start if input required and validateOnStart passed', () => {
204
+ const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} enableErrors validateOnStart />);
205
+ const textFieldDriver = TextFieldDriver({
206
+ renderTree,
207
+ testID: TEXT_FIELD_TEST_ID
208
+ });
209
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
210
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
211
+ });
212
+ it('should render validationMessage when input is requires after changing the input to empty string', () => {
213
+ const renderTree = render(<TestCase {...defaultProps} value={''} validate={'required'} validationMessage={'mock message'} enableErrors validateOnChange />);
214
+ const textFieldDriver = TextFieldDriver({
215
+ renderTree,
216
+ testID: TEXT_FIELD_TEST_ID
217
+ });
218
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
219
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('');
220
+ textFieldDriver.changeText('');
221
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
222
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
223
+ });
224
+ it('should render validationMessage when input is requires after changing the value to undefined', () => {
225
+ const renderTree = render(<TestCase {...defaultProps} value={'Some text'} validate={'required'} validationMessage={'mock message'} enableErrors validateOnChange />);
226
+ const textFieldDriver = TextFieldDriver({
227
+ renderTree,
228
+ testID: TEXT_FIELD_TEST_ID
229
+ });
230
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
231
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('');
232
+ renderTree.rerender(<TestCase {...defaultProps} validate={'required'} validationMessage={'mock message'} enableErrors validateOnChange />);
233
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
234
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
235
+ });
236
+ it('should display validation error message when validation fail after blur', () => {
237
+ const renderTree = render(<TestCase {...defaultProps} validate={'email'} validationMessage={'email is invalid'} enableErrors validateOnBlur />);
238
+ const textFieldDriver = TextFieldDriver({
239
+ renderTree,
240
+ testID: TEXT_FIELD_TEST_ID
241
+ });
242
+ textFieldDriver.changeText('invalidEmail');
243
+ textFieldDriver.blur();
244
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('email is invalid');
245
+ });
246
+ it('should remove validation error message after entering a valid input', () => {
247
+ const renderTree = render(<TestCase {...defaultProps} value={'invalid'} validate={'email'} validationMessage={'email is invalid'} enableErrors validateOnStart validateOnChange />);
248
+ const textFieldDriver = TextFieldDriver({
249
+ renderTree,
250
+ testID: TEXT_FIELD_TEST_ID
251
+ });
252
+ expect(textFieldDriver.getValidationMessage().getText()).toEqual('email is invalid');
253
+ textFieldDriver.changeText('mail@mail.com');
254
+ expect(textFieldDriver.getValidationMessage().exists()).toEqual(false);
255
+ });
256
+ });
257
+ describe('validateOnBlur', () => {
258
+ it('validate is called with undefined when defaultValue is not passed', () => {
259
+ const renderTree = render(<TestCase {...defaultProps} validateOnBlur validationMessage={'Not valid'} validate={[validate]} />);
260
+ const textFieldDriver = TextFieldDriver({
261
+ renderTree,
262
+ testID: TEXT_FIELD_TEST_ID
263
+ });
264
+ textFieldDriver.focus();
265
+ textFieldDriver.blur();
266
+ expect(validate).toHaveBeenCalledTimes(1);
267
+ expect(validate).toHaveBeenCalledWith(undefined);
268
+ });
269
+ it('validate is called with defaultValue when defaultValue is passed', () => {
270
+ const defaultValue = '1';
271
+ const renderTree = render(<TestCase {...defaultProps} validateOnBlur validationMessage={'Not valid'} validate={[validate]} defaultValue={defaultValue} />);
272
+ const textFieldDriver = TextFieldDriver({
273
+ renderTree,
274
+ testID: TEXT_FIELD_TEST_ID
275
+ });
276
+ textFieldDriver.focus();
277
+ textFieldDriver.blur();
278
+ expect(validate).toHaveBeenCalledTimes(1);
279
+ expect(validate).toHaveBeenCalledWith(defaultValue);
280
+ });
281
+ });
282
+ describe('validationIcon', () => {
283
+ it('should display validationIcon', () => {
284
+ const renderTree = render(<TestCase {...defaultProps} enableErrors validateOnStart validate={'required'} validationMessage={'This field is required'} validationIcon={{
285
+ source: Assets.internal.icons.check
286
+ }} />);
287
+ const textFieldDriver = TextFieldDriver({
288
+ renderTree,
289
+ testID: TEXT_FIELD_TEST_ID
290
+ });
291
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
292
+ expect(textFieldDriver.getValidationIcon().exists()).toBe(true);
293
+ });
294
+ it('should not display validationIcon', () => {
295
+ const renderTree = render(<TestCase {...defaultProps} enableErrors validateOnStart validate={'required'} validationMessage={'This field is required'} />);
296
+ const textFieldDriver = TextFieldDriver({
297
+ renderTree,
298
+ testID: TEXT_FIELD_TEST_ID
299
+ });
300
+ expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
301
+ expect(textFieldDriver.getValidationIcon().exists()).toBe(false);
302
+ });
303
+ });
304
+ describe('defaultValue', () => {
305
+ const props = {
306
+ ...defaultProps,
307
+ testID: TEXT_FIELD_TEST_ID,
308
+ placeholder: 'Placeholder',
309
+ defaultValue: 'someDefaultValue',
310
+ value: 'someValue'
311
+ };
312
+ it('value should equal defaultValue on first render when value not passed', () => {
313
+ const renderTree = render(<TestCase {...props} value={undefined} />);
314
+ const textFieldDriver = TextFieldDriver({
315
+ renderTree,
316
+ testID: TEXT_FIELD_TEST_ID
317
+ });
318
+ expect(textFieldDriver.getValue()).toEqual('someDefaultValue');
319
+ });
320
+ it('value should equal value on first render when passed', () => {
321
+ const renderTree = render(<TestCase {...props} defaultValue={undefined} />);
322
+ const textFieldDriver = TextFieldDriver({
323
+ renderTree,
324
+ testID: TEXT_FIELD_TEST_ID
325
+ });
326
+ expect(textFieldDriver.getValue()).toEqual('someValue');
327
+ });
328
+ it.each`
329
+ platform | isWeb
330
+ ${'web'} | ${true}
331
+ ${'native'} | ${false}
332
+ `('on $platform should reset defaultValue when prop changed after first render', args => {
333
+ Constants.isWeb = args.isWeb;
334
+ const renderTree = render(<TestCase {...props} value={undefined} />);
335
+ const textFieldDriver = TextFieldDriver({
336
+ renderTree,
337
+ testID: TEXT_FIELD_TEST_ID
338
+ });
339
+ renderTree.rerender(<TestCase {...props} value={undefined} defaultValue={'someUpdatedDefaultValue'} />);
340
+ expect(textFieldDriver.getValue()).toEqual('someUpdatedDefaultValue');
341
+ });
342
+ });
343
+ describe('char counter', () => {
344
+ it('should render char counter', () => {
345
+ const renderTree = render(<TestCase {...defaultProps} maxLength={10} showCharCounter />);
346
+ const textFieldDriver = TextFieldDriver({
347
+ renderTree,
348
+ testID: TEXT_FIELD_TEST_ID
349
+ });
350
+ expect(textFieldDriver.getCharCounter().exists()).toBe(true);
351
+ });
352
+ it('should not render counter if maxLength prop not supplied', () => {
353
+ const renderTree = render(<TestCase {...defaultProps} showCharCounter />);
354
+ const textFieldDriver = TextFieldDriver({
355
+ renderTree,
356
+ testID: TEXT_FIELD_TEST_ID
357
+ });
358
+ expect(textFieldDriver.getCharCounter().exists()).toBe(false);
359
+ });
360
+ it('should not render counter if showCharCounter prop not supplied', () => {
361
+ const renderTree = render(<TestCase {...defaultProps} maxLength={10} />);
362
+ const textFieldDriver = TextFieldDriver({
363
+ renderTree,
364
+ testID: TEXT_FIELD_TEST_ID
365
+ });
366
+ expect(textFieldDriver.getCharCounter().exists()).toBe(false);
367
+ });
368
+ it('should render char counter with "0/10" if value not supplied', () => {
369
+ const renderTree = render(<TestCase {...defaultProps} maxLength={10} showCharCounter />);
370
+ const textFieldDriver = TextFieldDriver({
371
+ renderTree,
372
+ testID: TEXT_FIELD_TEST_ID
373
+ });
374
+ expect(textFieldDriver.getCharCounter().getText()).toEqual('0/10');
375
+ });
376
+ it('should render char counter with correct content', () => {
377
+ const renderTree = render(<TestCase {...defaultProps} value={'abc'} maxLength={10} showCharCounter />);
378
+ const textFieldDriver = TextFieldDriver({
379
+ renderTree,
380
+ testID: TEXT_FIELD_TEST_ID
381
+ });
382
+ expect(textFieldDriver.getCharCounter().getText()).toEqual('3/10');
383
+ });
384
+ it('should update char counter after changing the text', () => {
385
+ const renderTree = render(<TestCase {...defaultProps} value={'ab'} maxLength={10} showCharCounter />);
386
+ const textFieldDriver = TextFieldDriver({
387
+ renderTree,
388
+ testID: TEXT_FIELD_TEST_ID
389
+ });
390
+ expect(textFieldDriver.getCharCounter().getText()).toEqual('2/10');
391
+ textFieldDriver.changeText('abcd');
392
+ expect(textFieldDriver.getCharCounter().getText()).toEqual('4/10');
393
+ });
394
+ });
395
+ describe('hint', () => {
396
+ it('should hint text replace placeholder when input is focused', () => {
397
+ const renderTree = render(<TestCase {...defaultProps} hint={hint} placeholder={placeholder} />);
398
+ const textFieldDriver = TextFieldDriver({
399
+ renderTree,
400
+ testID: TEXT_FIELD_TEST_ID
401
+ });
402
+ expect(textFieldDriver.getPlaceholder().getText()).toEqual(placeholder);
403
+ textFieldDriver.focus();
404
+ expect(textFieldDriver.getPlaceholder().getText()).toEqual(hint);
405
+ });
406
+ it('should not show hint when hint prop not passed', () => {
407
+ const renderTree = render(<TestCase {...defaultProps} placeholder={placeholder} />);
408
+ const textFieldDriver = TextFieldDriver({
409
+ renderTree,
410
+ testID: TEXT_FIELD_TEST_ID
411
+ });
412
+ expect(textFieldDriver.getPlaceholder().getText()).toEqual(placeholder);
413
+ textFieldDriver.focus();
414
+ expect(textFieldDriver.getPlaceholder().getText()).toEqual(placeholder);
415
+ });
416
+ });
417
+ describe('helperText', () => {
418
+ it('should display helperText', () => {
419
+ const renderTree = render(<TestCase {...defaultProps} placeholder={placeholder} hint={hint} helperText={helperText} />);
420
+ const textFieldDriver = TextFieldDriver({
421
+ renderTree,
422
+ testID: TEXT_FIELD_TEST_ID
423
+ });
424
+ expect(textFieldDriver.getHelperText().exists()).toBe(true);
425
+ });
426
+ it('should not display helperText', () => {
427
+ const renderTree = render(<TestCase {...defaultProps} placeholder={placeholder} />);
428
+ const textFieldDriver = TextFieldDriver({
429
+ renderTree,
430
+ testID: TEXT_FIELD_TEST_ID
431
+ });
432
+ expect(textFieldDriver.getHelperText().exists()).toBe(false);
433
+ });
434
+ });
435
+ describe('clear button', () => {
436
+ it('should not render clear button', async () => {
437
+ const renderTree = render(<TestCase {...defaultProps} />);
438
+ const textFieldDriver = TextFieldDriver({
439
+ renderTree,
440
+ testID: TEXT_FIELD_TEST_ID
441
+ });
442
+ expect(await textFieldDriver.getClearButton().exists()).toBe(false);
443
+ });
444
+ it('should not display clear button when value is undefined', async () => {
445
+ const renderTree = render(<TestCase {...defaultProps} showClearButton />);
446
+ const textFieldDriver = TextFieldDriver({
447
+ renderTree,
448
+ testID: TEXT_FIELD_TEST_ID
449
+ });
450
+ const clearButtonDriver = textFieldDriver.getClearButton();
451
+ expect(await clearButtonDriver.exists()).toBe(true);
452
+ expect(await clearButtonDriver.visible()).toBe(false);
453
+ });
454
+ it('should not display clear button when value is empty', async () => {
455
+ const renderTree = render(<TestCase {...defaultProps} showClearButton value={''} />);
456
+ const textFieldDriver = TextFieldDriver({
457
+ renderTree,
458
+ testID: TEXT_FIELD_TEST_ID
459
+ });
460
+ const clearButtonDriver = textFieldDriver.getClearButton();
461
+ expect(await clearButtonDriver.exists()).toBe(true);
462
+ expect(await clearButtonDriver.visible()).toBe(false);
463
+ });
464
+ it('should display clear button when has value', async () => {
465
+ const renderTree = render(<TestCase {...defaultProps} showClearButton value={'value'} />);
466
+ const textFieldDriver = TextFieldDriver({
467
+ renderTree,
468
+ testID: TEXT_FIELD_TEST_ID
469
+ });
470
+ const clearButtonDriver = textFieldDriver.getClearButton();
471
+ expect(await clearButtonDriver.exists()).toBe(true);
472
+ expect(await clearButtonDriver.visible()).toBe(true);
473
+ });
474
+ it('should toggle clear button when value changes', async () => {
475
+ const renderTree = render(<TestCase {...defaultProps} showClearButton />);
476
+ const textFieldDriver = TextFieldDriver({
477
+ renderTree,
478
+ testID: TEXT_FIELD_TEST_ID
479
+ });
480
+ const clearButtonDriver = textFieldDriver.getClearButton();
481
+ expect(clearButtonDriver.exists()).toBe(true);
482
+ expect(await clearButtonDriver.visible()).toBe(false);
483
+ textFieldDriver.changeText('b');
484
+ expect(await clearButtonDriver.visible()).toBe(true);
485
+ textFieldDriver.changeText('');
486
+ expect(await clearButtonDriver.visible()).toBe(false);
487
+ });
488
+ it('should clear value when pressed', () => {
489
+ const renderTree = render(<TestCase {...defaultProps} showClearButton value={'value'} />);
490
+ const textFieldDriver = TextFieldDriver({
491
+ renderTree,
492
+ testID: TEXT_FIELD_TEST_ID
493
+ });
494
+ const clearButtonDriver = textFieldDriver.getClearButton();
495
+ expect(clearButtonDriver.exists()).toBe(true);
496
+ clearButtonDriver.press();
497
+ expect(textFieldDriver.getValue()).toEqual('');
498
+ });
499
+ });
500
+ describe('formatter', () => {
501
+ const priceFormatter = Intl.NumberFormat('en-US');
502
+ const props = {
503
+ ...defaultProps,
504
+ value: '10000',
505
+ formatter: value => priceFormatter.format(Number(value))
506
+ };
507
+ it('should format value while not focused based on formatter prop', () => {
508
+ const renderTree = render(<TestCase {...props} />);
509
+ const textFieldDriver = TextFieldDriver({
510
+ renderTree,
511
+ testID: TEXT_FIELD_TEST_ID
512
+ });
513
+ expect(textFieldDriver.getValue()).toEqual('10,000');
514
+ });
515
+ it('should not format value while focused', () => {
516
+ const renderTree = render(<TestCase {...props} />);
517
+ const textFieldDriver = TextFieldDriver({
518
+ renderTree,
519
+ testID: TEXT_FIELD_TEST_ID
520
+ });
521
+ textFieldDriver.focus();
522
+ expect(textFieldDriver.getValue()).toEqual('10000');
523
+ });
524
+ });
525
+ describe('Mandatory Indication', () => {
526
+ const getTestCaseDriver = props => {
527
+ const renderTree = render(<TestCase {...defaultProps} {...props} />);
528
+ return TextFieldDriver({
529
+ renderTree,
530
+ testID: TEXT_FIELD_TEST_ID
531
+ });
532
+ };
533
+ const starReg = /.*\*$/;
534
+ describe('label', () => {
535
+ it('should show mandatory indication on the label when required validate passed', () => {
536
+ const textFieldDriver = getTestCaseDriver({
537
+ label,
538
+ validate: 'required',
539
+ showMandatoryIndication: true
540
+ });
541
+ const labelContent = textFieldDriver.getLabel().getText();
542
+ expect(labelContent).toMatch(starReg);
543
+ });
544
+ it('should show mandatory indication on the label when required is passed in validate array', () => {
545
+ const textFieldDriver = getTestCaseDriver({
546
+ label,
547
+ validate: ['required'],
548
+ showMandatoryIndication: true
549
+ });
550
+ const labelContent = textFieldDriver.getLabel().getText();
551
+ expect(labelContent).toMatch(starReg);
552
+ });
553
+ it('should show mandatory indication when required is passed in validate array with other validations', () => {
554
+ const textFieldDriver = getTestCaseDriver({
555
+ label,
556
+ validate: ['email', 'required'],
557
+ showMandatoryIndication: true
558
+ });
559
+ const labelContent = textFieldDriver.getLabel().getText();
560
+ expect(labelContent).toMatch(starReg);
561
+ });
562
+ it('should not show mandatory indication on label when validate not passed', () => {
563
+ const textFieldDriver = getTestCaseDriver({
564
+ label,
565
+ showMandatoryIndication: true
566
+ });
567
+ const labelText = textFieldDriver.getLabel().getText();
568
+ expect(labelText).not.toMatch(starReg);
569
+ });
570
+ it('should not show mandatory indication on label when showMandatoryIndication not passed', () => {
571
+ const textFieldDriver = getTestCaseDriver({
572
+ label,
573
+ validate: 'required'
574
+ });
575
+ const labelText = textFieldDriver.getLabel().getText();
576
+ expect(labelText).not.toMatch(starReg);
577
+ });
578
+ it('should have mandatory indication on the label and not on the placeholder', () => {
579
+ const textFieldDriver = getTestCaseDriver({
580
+ placeholder,
581
+ label,
582
+ validate: 'required',
583
+ showMandatoryIndication: true
584
+ });
585
+ const labelText = textFieldDriver.getLabel().getText();
586
+ const placeholderText = textFieldDriver.getPlaceholder().getText();
587
+ expect(labelText).toMatch(starReg);
588
+ expect(placeholderText).not.toMatch(starReg);
589
+ });
590
+ });
591
+ describe('placeholder', () => {
592
+ it('should have mandatory indication on the placeholder', () => {
593
+ const textFieldDriver = getTestCaseDriver({
594
+ placeholder,
595
+ showMandatoryIndication: true,
596
+ validate: 'required'
597
+ });
598
+ const placeholderText = textFieldDriver.getPlaceholder().getText();
599
+ expect(placeholderText).toMatch(starReg);
600
+ });
601
+ it('should not have mandatory indication on the placeholder when validate not passed', () => {
602
+ const textFieldDriver = getTestCaseDriver({
603
+ placeholder,
604
+ label,
605
+ showMandatoryIndication: true
606
+ });
607
+ const placeholderText = textFieldDriver.getPlaceholder().getText();
608
+ const labelText = textFieldDriver.getLabel().getText();
609
+ expect(placeholderText).not.toMatch(starReg);
610
+ expect(labelText).not.toMatch(starReg);
611
+ });
612
+ it('should not have mandatory indication on the placeholder when showMandatoryIndication not passed', () => {
613
+ const textFieldDriver = getTestCaseDriver({
614
+ placeholder,
615
+ label,
616
+ validate: 'required'
617
+ });
618
+ const placeholderText = textFieldDriver.getPlaceholder().getText();
619
+ const labelText = textFieldDriver.getLabel().getText();
620
+ expect(placeholderText).not.toMatch(starReg);
621
+ expect(labelText).not.toMatch(starReg);
622
+ });
623
+ });
624
+ describe('floating placeholder', () => {
625
+ it('should have mandatory indication on the floating placeholder', () => {
626
+ const textFieldDriver = getTestCaseDriver({
627
+ placeholder,
628
+ floatingPlaceholder: true,
629
+ floatOnFocus: true,
630
+ showMandatoryIndication: true,
631
+ validate: 'required'
632
+ });
633
+ const placeholderText = textFieldDriver.getPlaceholder().getText();
634
+ expect(placeholderText).toMatch(starReg);
635
+ });
636
+ });
637
+ });
638
+ });
639
+ });