@draftbit/core 46.4.4-c5d4b3.2 → 46.4.4-caab07.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 (372) hide show
  1. package/lib/commonjs/Provider.js.map +1 -1
  2. package/lib/commonjs/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/lib/commonjs/components/ActionSheet/ActionSheetCancel.js.map +1 -1
  4. package/lib/commonjs/components/ActionSheet/index.js.map +1 -1
  5. package/lib/commonjs/components/AvatarEdit.js +15 -4
  6. package/lib/commonjs/components/AvatarEdit.js.map +1 -1
  7. package/lib/commonjs/components/Banner.js +23 -4
  8. package/lib/commonjs/components/Banner.js.map +1 -1
  9. package/lib/commonjs/components/CardBlock.js +13 -4
  10. package/lib/commonjs/components/CardContainer.js +14 -4
  11. package/lib/commonjs/components/CardContainer.js.map +1 -1
  12. package/lib/commonjs/components/Carousel.js +2 -2
  13. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +22 -5
  14. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js.map +1 -1
  15. package/lib/commonjs/components/Checkbox/CheckboxRow.js.map +1 -1
  16. package/lib/commonjs/components/Checkbox/index.js.map +1 -1
  17. package/lib/commonjs/components/CircleImage.js +16 -2
  18. package/lib/commonjs/components/Config.js.map +1 -1
  19. package/lib/commonjs/components/DatePicker/DatePicker.js +43 -21
  20. package/lib/commonjs/components/DatePicker/DatePicker.js.map +1 -1
  21. package/lib/commonjs/components/DatePicker/DatePickerComponent.js.map +1 -1
  22. package/lib/commonjs/components/DatePicker/DatePickerComponent.web.js.map +1 -1
  23. package/lib/commonjs/components/DeprecatedButton.js +19 -3
  24. package/lib/commonjs/components/DeprecatedButton.js.map +1 -1
  25. package/lib/commonjs/components/Divider.js +12 -1
  26. package/lib/commonjs/components/Divider.js.map +1 -1
  27. package/lib/commonjs/components/FAB.js +19 -4
  28. package/lib/commonjs/components/FAB.js.map +1 -1
  29. package/lib/commonjs/components/FieldSearchBarFull.js.map +1 -1
  30. package/lib/commonjs/components/FormRow.js +17 -3
  31. package/lib/commonjs/components/FormRow.js.map +1 -1
  32. package/lib/commonjs/components/Header.js.map +1 -1
  33. package/lib/commonjs/components/HeaderLarge.js.map +1 -1
  34. package/lib/commonjs/components/Image.js +16 -2
  35. package/lib/commonjs/components/Picker/Picker.js +7 -7
  36. package/lib/commonjs/components/Picker/Picker.js.map +1 -1
  37. package/lib/commonjs/components/Picker/PickerComponent.android.js +19 -5
  38. package/lib/commonjs/components/Picker/PickerComponent.android.js.map +1 -1
  39. package/lib/commonjs/components/Picker/PickerComponent.ios.js +30 -11
  40. package/lib/commonjs/components/Picker/PickerComponent.ios.js.map +1 -1
  41. package/lib/commonjs/components/Portal/PortalHost.js +45 -15
  42. package/lib/commonjs/components/Portal/PortalHost.js.map +1 -1
  43. package/lib/commonjs/components/RadioButton/RadioButton.js.map +1 -1
  44. package/lib/commonjs/components/RadioButton/RadioButtonFieldGroup.js +10 -1
  45. package/lib/commonjs/components/RadioButton/RadioButtonFieldGroup.js.map +1 -1
  46. package/lib/commonjs/components/ResizeMode.js +2 -1
  47. package/lib/commonjs/components/RowBodyIcon.js.map +1 -1
  48. package/lib/commonjs/components/RowHeadlineImageCaption.js.map +1 -1
  49. package/lib/commonjs/components/ScreenContainer.js +20 -4
  50. package/lib/commonjs/components/ScreenContainer.js.map +1 -1
  51. package/lib/commonjs/components/Stepper.js +1 -0
  52. package/lib/commonjs/components/Stepper.js.map +1 -1
  53. package/lib/commonjs/components/Surface.js +13 -2
  54. package/lib/commonjs/components/Swiper/index.js.map +1 -1
  55. package/lib/commonjs/components/Text.js +50 -4
  56. package/lib/commonjs/components/TextField.js +76 -28
  57. package/lib/commonjs/components/ToggleButton.js +14 -2
  58. package/lib/commonjs/components/ToggleButton.js.map +1 -1
  59. package/lib/commonjs/components/Typography.js.map +1 -1
  60. package/lib/commonjs/index.js.map +1 -1
  61. package/lib/commonjs/interfaces/Icon.js.map +1 -1
  62. package/lib/commonjs/mappings/AccordionItem.js.map +1 -1
  63. package/lib/commonjs/mappings/ActionSheet.js.map +1 -1
  64. package/lib/commonjs/mappings/ActionSheetItem.js.map +1 -1
  65. package/lib/commonjs/mappings/AudioPlayer.js.map +1 -1
  66. package/lib/commonjs/mappings/AvatarEdit.js.map +1 -1
  67. package/lib/commonjs/mappings/BlurView.js.map +1 -1
  68. package/lib/commonjs/mappings/Card.js.map +1 -1
  69. package/lib/commonjs/mappings/CardInline.js.map +1 -1
  70. package/lib/commonjs/mappings/Carousel.js.map +1 -1
  71. package/lib/commonjs/mappings/CheckboxRow.js.map +1 -1
  72. package/lib/commonjs/mappings/DatePicker.js +13 -0
  73. package/lib/commonjs/mappings/DatePicker.js.map +1 -1
  74. package/lib/commonjs/mappings/Fetch.js.map +1 -1
  75. package/lib/commonjs/mappings/FieldSearchBarFull.js +1 -1
  76. package/lib/commonjs/mappings/FieldSearchBarFull.js.map +1 -1
  77. package/lib/commonjs/mappings/HeaderLarge.js.map +1 -1
  78. package/lib/commonjs/mappings/HeaderMedium.js.map +1 -1
  79. package/lib/commonjs/mappings/ProgressCircle.js.map +1 -1
  80. package/lib/commonjs/mappings/ProgressIndicator.js.map +1 -1
  81. package/lib/commonjs/mappings/RadioButton.js.map +1 -1
  82. package/lib/commonjs/mappings/RadioButtonGroup.js.map +1 -1
  83. package/lib/commonjs/mappings/RadioButtonRow.js.map +1 -1
  84. package/lib/commonjs/mappings/RowHeadlineImageCaption.js.map +1 -1
  85. package/lib/commonjs/mappings/Stepper.js.map +1 -1
  86. package/lib/commonjs/mappings/Surface.js.map +1 -1
  87. package/lib/commonjs/mappings/Swiper.js.map +1 -1
  88. package/lib/commonjs/mappings/SwiperItem.js.map +1 -1
  89. package/lib/commonjs/mappings/Switch.js.map +1 -1
  90. package/lib/commonjs/mappings/TextArea.js.map +1 -1
  91. package/lib/commonjs/mappings/TextField.js.map +1 -1
  92. package/lib/commonjs/mappings/View.js.map +1 -1
  93. package/lib/commonjs/utilities.js +1 -2
  94. package/lib/commonjs/utilities.js.map +1 -1
  95. package/lib/module/components/Accordion/index.js.map +1 -1
  96. package/lib/module/components/ActionSheet/ActionSheet.js.map +1 -1
  97. package/lib/module/components/ActionSheet/ActionSheetItem.js.map +1 -1
  98. package/lib/module/components/Banner.js.map +1 -1
  99. package/lib/module/components/Button.js.map +1 -1
  100. package/lib/module/components/Card.js.map +1 -1
  101. package/lib/module/components/CardBlock.js +14 -4
  102. package/lib/module/components/CardBlock.js.map +1 -1
  103. package/lib/module/components/CardContainerShortImage.js +16 -4
  104. package/lib/module/components/CardContainerShortImage.js.map +1 -1
  105. package/lib/module/components/Carousel.js +27 -9
  106. package/lib/module/components/Carousel.js.map +1 -1
  107. package/lib/module/components/Checkbox/CheckboxGroup.js +17 -2
  108. package/lib/module/components/Checkbox/CheckboxGroup.js.map +1 -1
  109. package/lib/module/components/Checkbox/index.js.map +1 -1
  110. package/lib/module/components/Container.js +16 -4
  111. package/lib/module/components/Container.js.map +1 -1
  112. package/lib/module/components/DatePicker/DatePicker.js +44 -21
  113. package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
  114. package/lib/module/components/DatePicker/DatePickerComponent.js.map +1 -1
  115. package/lib/module/components/DatePicker/DatePickerComponentType.js.map +1 -1
  116. package/lib/module/components/DeprecatedFAB.js +21 -3
  117. package/lib/module/components/Elevation.js +15 -2
  118. package/lib/module/components/Elevation.js.map +1 -1
  119. package/lib/module/components/HeaderLarge.js.map +1 -1
  120. package/lib/module/components/HeaderMedium.js.map +1 -1
  121. package/lib/module/components/Justification.js +2 -2
  122. package/lib/module/components/Layout.js +41 -21
  123. package/lib/module/components/Layout.js.map +1 -1
  124. package/lib/module/components/NumberInput.js.map +1 -1
  125. package/lib/module/components/Picker/Picker.js +2 -2
  126. package/lib/module/components/Picker/Picker.js.map +1 -1
  127. package/lib/module/components/Picker/PickerComponent.android.js +19 -4
  128. package/lib/module/components/Picker/PickerComponent.android.js.map +1 -1
  129. package/lib/module/components/Picker/PickerComponent.ios.js +32 -11
  130. package/lib/module/components/Picker/PickerComponent.web.js +20 -4
  131. package/lib/module/components/Picker/PickerTypes.js.map +1 -1
  132. package/lib/module/components/Portal/PortalHost.js +45 -15
  133. package/lib/module/components/Portal/PortalHost.js.map +1 -1
  134. package/lib/module/components/Portal/PortalManager.js +34 -7
  135. package/lib/module/components/ProgressBar.js +38 -7
  136. package/lib/module/components/RadioButton/RadioButtonFieldGroup.js +10 -1
  137. package/lib/module/components/RadioButton/RadioButtonFieldGroup.js.map +1 -1
  138. package/lib/module/components/RadioButton/RadioButtonRow.js +23 -6
  139. package/lib/module/components/RadioButton/RadioButtonRow.js.map +1 -1
  140. package/lib/module/components/Row.js.map +1 -1
  141. package/lib/module/components/RowBodyIcon.js.map +1 -1
  142. package/lib/module/components/SVG.js.map +1 -1
  143. package/lib/module/components/ScreenContainer.js +20 -4
  144. package/lib/module/components/ScreenContainer.js.map +1 -1
  145. package/lib/module/components/Stepper.js +2 -2
  146. package/lib/module/components/Stepper.js.map +1 -1
  147. package/lib/module/components/Surface.js +15 -1
  148. package/lib/module/components/Swiper/Swiper.js.map +1 -1
  149. package/lib/module/components/Swiper/SwiperItem.js.map +1 -1
  150. package/lib/module/components/Switch.js +20 -10
  151. package/lib/module/components/Switch.js.map +1 -1
  152. package/lib/module/components/Text.js +50 -4
  153. package/lib/module/components/TextField.js +78 -28
  154. package/lib/module/components/TextField.js.map +1 -1
  155. package/lib/module/components/ToggleButton.js +16 -2
  156. package/lib/module/components/ToggleButton.js.map +1 -1
  157. package/lib/module/constants.js +1 -1
  158. package/lib/module/hooks.js +1 -3
  159. package/lib/module/mappings/Accordion.js.map +1 -1
  160. package/lib/module/mappings/AccordionItem.js.map +1 -1
  161. package/lib/module/mappings/ActionSheetCancel.js.map +1 -1
  162. package/lib/module/mappings/AudioPlayer.js.map +1 -1
  163. package/lib/module/mappings/Banner.js.map +1 -1
  164. package/lib/module/mappings/Button.js.map +1 -1
  165. package/lib/module/mappings/Card.js.map +1 -1
  166. package/lib/module/mappings/CardContainer.js.map +1 -1
  167. package/lib/module/mappings/CardInline.js.map +1 -1
  168. package/lib/module/mappings/Carousel.js.map +1 -1
  169. package/lib/module/mappings/CustomCode.js.map +1 -1
  170. package/lib/module/mappings/DatePicker.js +14 -1
  171. package/lib/module/mappings/DatePicker.js.map +1 -1
  172. package/lib/module/mappings/Divider.js.map +1 -1
  173. package/lib/module/mappings/FAB.js.map +1 -1
  174. package/lib/module/mappings/KeyboardAwareScrollView.js.map +1 -1
  175. package/lib/module/mappings/MapCallout.js.map +1 -1
  176. package/lib/module/mappings/MapMarker.js.map +1 -1
  177. package/lib/module/mappings/Modal.js.map +1 -1
  178. package/lib/module/mappings/RadioButton.js.map +1 -1
  179. package/lib/module/mappings/RowHeadlineImageIcon.js.map +1 -1
  180. package/lib/module/mappings/SVG.js.map +1 -1
  181. package/lib/module/mappings/SafeAreaView.js.map +1 -1
  182. package/lib/module/mappings/ScrollView.js.map +1 -1
  183. package/lib/module/mappings/SwiperItem.js.map +1 -1
  184. package/lib/module/mappings/Text.js.map +1 -1
  185. package/lib/module/mappings/TextArea.js.map +1 -1
  186. package/lib/module/mappings/Video.js.map +1 -1
  187. package/lib/module/styles/DarkTheme.js.map +1 -1
  188. package/lib/module/styles/DefaultTheme.js.map +1 -1
  189. package/lib/module/styles/fonts.js.map +1 -1
  190. package/lib/module/theming.js.map +1 -1
  191. package/lib/module/utilities.js +1 -2
  192. package/lib/module/utilities.js.map +1 -1
  193. package/lib/typescript/src/components/DatePicker/DatePicker.d.ts +4 -0
  194. package/lib/typescript/src/components/DatePicker/DatePicker.d.ts.map +1 -1
  195. package/lib/typescript/src/components/Picker/Picker.d.ts.map +1 -1
  196. package/lib/typescript/src/mappings/DatePicker.d.ts +42 -0
  197. package/lib/typescript/src/mappings/DatePicker.d.ts.map +1 -1
  198. package/package.json +3 -3
  199. package/src/Provider.js +11 -4
  200. package/src/components/Accordion/AccordionGroup.js +80 -36
  201. package/src/components/Accordion/AccordionItem.js +51 -24
  202. package/src/components/ActionSheet/ActionSheet.js +60 -35
  203. package/src/components/ActionSheet/ActionSheetCancel.js +7 -2
  204. package/src/components/ActionSheet/ActionSheetItem.js +35 -24
  205. package/src/components/AnimatedCircularProgress.js +57 -38
  206. package/src/components/AspectRatio.js +21 -13
  207. package/src/components/AvatarEdit.js +46 -23
  208. package/src/components/Banner.js +151 -99
  209. package/src/components/Button.js +152 -97
  210. package/src/components/Card.js +126 -45
  211. package/src/components/CardBlock.js +109 -46
  212. package/src/components/CardContainer.js +140 -58
  213. package/src/components/CardContainerRating.js +152 -67
  214. package/src/components/CardContainerShortImage.js +80 -25
  215. package/src/components/CardInline.js +64 -25
  216. package/src/components/Carousel.js +99 -58
  217. package/src/components/Carousel.tsx +2 -2
  218. package/src/components/Checkbox/Checkbox.js +93 -55
  219. package/src/components/Checkbox/CheckboxGroup.js +28 -15
  220. package/src/components/Checkbox/CheckboxGroupRow.js +104 -59
  221. package/src/components/Checkbox/CheckboxRow.js +107 -61
  222. package/src/components/Checkbox/context.js +6 -6
  223. package/src/components/CircleImage.js +14 -4
  224. package/src/components/CircularProgress.js +146 -75
  225. package/src/components/Config.js +59 -52
  226. package/src/components/Container.js +80 -38
  227. package/src/components/DatePicker/DatePicker.js +480 -337
  228. package/src/components/DatePicker/DatePicker.tsx +23 -7
  229. package/src/components/DatePicker/DatePickerComponent.js +21 -7
  230. package/src/components/DatePicker/DatePickerComponent.web.js +48 -22
  231. package/src/components/DeprecatedButton.js +136 -82
  232. package/src/components/DeprecatedCardWrapper.js +19 -10
  233. package/src/components/DeprecatedFAB.js +146 -101
  234. package/src/components/Divider.js +10 -7
  235. package/src/components/Elevation.js +24 -13
  236. package/src/components/FAB.js +84 -38
  237. package/src/components/FieldSearchBarFull.js +83 -46
  238. package/src/components/FormRow.js +28 -12
  239. package/src/components/Header.js +79 -35
  240. package/src/components/HeaderLarge.js +19 -2
  241. package/src/components/HeaderMedium.js +19 -2
  242. package/src/components/HeaderOverline.js +20 -2
  243. package/src/components/IconButton.js +68 -29
  244. package/src/components/Image.js +52 -38
  245. package/src/components/Layout.js +99 -38
  246. package/src/components/NumberInput.js +46 -42
  247. package/src/components/Picker/Picker.js +411 -238
  248. package/src/components/Picker/Picker.tsx +2 -2
  249. package/src/components/Picker/PickerComponent.android.js +110 -57
  250. package/src/components/Picker/PickerComponent.ios.js +131 -63
  251. package/src/components/Picker/PickerComponent.web.js +111 -58
  252. package/src/components/Portal/Portal.js +10 -5
  253. package/src/components/Portal/PortalConsumer.js +25 -23
  254. package/src/components/Portal/PortalHost.js +83 -72
  255. package/src/components/Portal/PortalManager.js +38 -25
  256. package/src/components/ProgressBar.js +139 -111
  257. package/src/components/ProgressCircle.js +40 -7
  258. package/src/components/ProgressIndicator.js +43 -22
  259. package/src/components/RadioButton/RadioButton.js +37 -10
  260. package/src/components/RadioButton/RadioButtonFieldGroup.js +26 -10
  261. package/src/components/RadioButton/RadioButtonGroup.js +53 -35
  262. package/src/components/RadioButton/RadioButtonRow.js +105 -58
  263. package/src/components/RadioButton/context.js +6 -6
  264. package/src/components/Row.js +81 -41
  265. package/src/components/RowBodyIcon.js +24 -2
  266. package/src/components/RowHeadlineImageCaption.js +30 -6
  267. package/src/components/RowHeadlineImageIcon.js +34 -8
  268. package/src/components/SVG.js +27 -7
  269. package/src/components/ScreenContainer.js +56 -27
  270. package/src/components/Slider.js +95 -49
  271. package/src/components/StarRating.js +85 -44
  272. package/src/components/StepIndicator.js +416 -328
  273. package/src/components/Stepper.js +74 -32
  274. package/src/components/Stepper.tsx +1 -1
  275. package/src/components/Surface.js +40 -25
  276. package/src/components/Swiper/Swiper.js +49 -18
  277. package/src/components/Swiper/SwiperItem.js +5 -4
  278. package/src/components/Switch.js +102 -46
  279. package/src/components/Text.js +37 -23
  280. package/src/components/TextField.js +515 -398
  281. package/src/components/ToggleButton.js +56 -31
  282. package/src/components/Touchable.js +25 -9
  283. package/src/components/Typography.js +45 -27
  284. package/src/components/useAuthState.js +27 -27
  285. package/src/constants.js +7 -5
  286. package/src/hooks.js +9 -9
  287. package/src/index.js +19 -3
  288. package/src/interfaces/Icon.js +2 -1
  289. package/src/mappings/Accordion.js +47 -39
  290. package/src/mappings/AccordionItem.js +19 -14
  291. package/src/mappings/ActionSheet.js +10 -10
  292. package/src/mappings/ActionSheetCancel.js +24 -17
  293. package/src/mappings/ActionSheetItem.js +28 -21
  294. package/src/mappings/ActivityIndicator.js +64 -55
  295. package/src/mappings/AudioPlayer.js +23 -17
  296. package/src/mappings/AvatarEdit.js +40 -34
  297. package/src/mappings/Banner.js +37 -30
  298. package/src/mappings/BlurView.js +46 -38
  299. package/src/mappings/Button.js +86 -77
  300. package/src/mappings/Card.js +61 -50
  301. package/src/mappings/CardBlock.js +125 -114
  302. package/src/mappings/CardContainer.js +108 -98
  303. package/src/mappings/CardContainerRating.js +126 -117
  304. package/src/mappings/CardContainerShortImage.js +125 -116
  305. package/src/mappings/CardInline.js +57 -49
  306. package/src/mappings/Carousel.js +21 -16
  307. package/src/mappings/Checkbox.js +54 -44
  308. package/src/mappings/CheckboxGroup.js +34 -24
  309. package/src/mappings/CheckboxRow.js +71 -59
  310. package/src/mappings/CircleImage.js +29 -22
  311. package/src/mappings/Container.js +37 -27
  312. package/src/mappings/CustomCode.js +5 -5
  313. package/src/mappings/DatePicker.js +181 -149
  314. package/src/mappings/DatePicker.ts +23 -0
  315. package/src/mappings/Divider.js +30 -24
  316. package/src/mappings/FAB.js +45 -35
  317. package/src/mappings/Fetch.js +10 -9
  318. package/src/mappings/FieldSearchBarFull.js +55 -47
  319. package/src/mappings/FlashList.js +38 -31
  320. package/src/mappings/FlatList.js +27 -22
  321. package/src/mappings/HeaderLarge.js +34 -26
  322. package/src/mappings/HeaderMedium.js +59 -52
  323. package/src/mappings/HeaderOverline.js +59 -52
  324. package/src/mappings/Icon.js +36 -29
  325. package/src/mappings/IconButton.js +43 -33
  326. package/src/mappings/Image.js +40 -32
  327. package/src/mappings/ImageBackground.js +38 -27
  328. package/src/mappings/KeyboardAvoidingView.js +46 -38
  329. package/src/mappings/KeyboardAwareScrollView.js +60 -48
  330. package/src/mappings/Layout.js +198 -192
  331. package/src/mappings/LinearGradient.js +79 -74
  332. package/src/mappings/MapCallout.js +27 -19
  333. package/src/mappings/MapMarker.js +53 -45
  334. package/src/mappings/MapView.js +146 -135
  335. package/src/mappings/Modal.js +47 -39
  336. package/src/mappings/NumberInput.js +247 -229
  337. package/src/mappings/Picker.js +153 -140
  338. package/src/mappings/ProgressBar.js +106 -98
  339. package/src/mappings/ProgressCircle.js +112 -105
  340. package/src/mappings/ProgressIndicator.js +186 -178
  341. package/src/mappings/RadioButton.js +59 -49
  342. package/src/mappings/RadioButtonGroup.js +21 -15
  343. package/src/mappings/RadioButtonRow.js +48 -40
  344. package/src/mappings/RowBodyIcon.js +77 -71
  345. package/src/mappings/RowHeadlineImageCaption.js +171 -161
  346. package/src/mappings/RowHeadlineImageIcon.js +98 -84
  347. package/src/mappings/SVG.js +22 -18
  348. package/src/mappings/SafeAreaView.js +35 -30
  349. package/src/mappings/ScrollView.js +36 -29
  350. package/src/mappings/Slider.js +67 -58
  351. package/src/mappings/StarRating.js +49 -41
  352. package/src/mappings/Stepper.js +34 -26
  353. package/src/mappings/Surface.js +16 -12
  354. package/src/mappings/Swiper.js +65 -58
  355. package/src/mappings/SwiperItem.js +5 -5
  356. package/src/mappings/Switch.js +87 -76
  357. package/src/mappings/Text.js +265 -242
  358. package/src/mappings/TextArea.js +273 -259
  359. package/src/mappings/TextField.js +379 -358
  360. package/src/mappings/TextInput.js +388 -362
  361. package/src/mappings/ToggleButton.js +60 -48
  362. package/src/mappings/Touchable.js +20 -15
  363. package/src/mappings/Video.js +92 -79
  364. package/src/mappings/View.js +225 -204
  365. package/src/mappings/WebView.js +104 -86
  366. package/src/styles/DarkTheme.js +17 -17
  367. package/src/styles/DefaultTheme.js +103 -103
  368. package/src/styles/fonts.js +55 -55
  369. package/src/styles/overlay.js +50 -49
  370. package/src/styles/shadow.js +43 -44
  371. package/src/theming.js +2 -1
  372. package/src/utilities.js +97 -76
@@ -1,346 +1,434 @@
1
1
  // @ts-nocheck
2
2
  import React, { Component } from "react";
3
- import { View, Text, StyleSheet, Animated, TouchableWithoutFeedback, } from "react-native";
3
+ import {
4
+ View,
5
+ Text,
6
+ StyleSheet,
7
+ Animated,
8
+ TouchableWithoutFeedback,
9
+ } from "react-native";
4
10
  const STEP_STATUS = {
5
- CURRENT: "current",
6
- FINISHED: "finished",
7
- UNFINISHED: "unfinished",
11
+ CURRENT: "current",
12
+ FINISHED: "finished",
13
+ UNFINISHED: "unfinished",
8
14
  };
9
15
  export default class StepIndicator extends Component {
10
- constructor(props) {
11
- super(props);
12
- this.renderProgressBarBackground = () => {
13
- const { stepCount, direction } = this.props;
14
- let progressBarBackgroundStyle;
15
- if (direction === "vertical") {
16
- progressBarBackgroundStyle = {
17
- backgroundColor: this.state.customStyles.separatorUnFinishedColor,
18
- position: "absolute",
19
- left: (this.state.width - this.state.customStyles.separatorStrokeWidth) / 2,
20
- top: this.state.height / (2 * stepCount),
21
- bottom: this.state.height / (2 * stepCount),
22
- width: this.state.customStyles.separatorStrokeUnfinishedWidth === 0
23
- ? this.state.customStyles.separatorStrokeWidth
24
- : this.state.customStyles.separatorStrokeUnfinishedWidth,
25
- };
26
- }
27
- else {
28
- progressBarBackgroundStyle = {
29
- backgroundColor: this.state.customStyles.separatorUnFinishedColor,
30
- position: "absolute",
31
- top: (this.state.height - this.state.customStyles.separatorStrokeWidth) /
32
- 2,
33
- left: this.state.width / (2 * stepCount),
34
- right: this.state.width / (2 * stepCount),
35
- height: this.state.customStyles.separatorStrokeUnfinishedWidth === 0
36
- ? this.state.customStyles.separatorStrokeWidth
37
- : this.state.customStyles.separatorStrokeUnfinishedWidth,
38
- };
39
- }
40
- return (React.createElement(View, { onLayout: (event) => {
41
- if (direction === "vertical") {
42
- this.setState({ progressBarSize: event.nativeEvent.layout.height }, () => {
43
- this.onCurrentPositionChanged(this.props.currentPosition);
44
- });
45
- }
46
- else {
47
- this.setState({ progressBarSize: event.nativeEvent.layout.width }, () => {
48
- this.onCurrentPositionChanged(this.props.currentPosition);
49
- });
50
- }
51
- }, style: progressBarBackgroundStyle }));
16
+ constructor(props) {
17
+ super(props);
18
+ this.renderProgressBarBackground = () => {
19
+ const { stepCount, direction } = this.props;
20
+ let progressBarBackgroundStyle;
21
+ if (direction === "vertical") {
22
+ progressBarBackgroundStyle = {
23
+ backgroundColor: this.state.customStyles.separatorUnFinishedColor,
24
+ position: "absolute",
25
+ left:
26
+ (this.state.width - this.state.customStyles.separatorStrokeWidth) /
27
+ 2,
28
+ top: this.state.height / (2 * stepCount),
29
+ bottom: this.state.height / (2 * stepCount),
30
+ width:
31
+ this.state.customStyles.separatorStrokeUnfinishedWidth === 0
32
+ ? this.state.customStyles.separatorStrokeWidth
33
+ : this.state.customStyles.separatorStrokeUnfinishedWidth,
52
34
  };
53
- this.renderProgressBar = () => {
54
- const { stepCount, direction } = this.props;
55
- let progressBarStyle;
56
- if (direction === "vertical") {
57
- progressBarStyle = {
58
- backgroundColor: this.state.customStyles.separatorFinishedColor,
59
- position: "absolute",
60
- left: (this.state.width - this.state.customStyles.separatorStrokeWidth) / 2,
61
- top: this.state.height / (2 * stepCount),
62
- bottom: this.state.height / (2 * stepCount),
63
- width: this.state.customStyles.separatorStrokeFinishedWidth === 0
64
- ? this.state.customStyles.separatorStrokeWidth
65
- : this.state.customStyles.separatorStrokeFinishedWidth,
66
- height: this.progressAnim,
67
- };
68
- }
69
- else {
70
- progressBarStyle = {
71
- backgroundColor: this.state.customStyles.separatorFinishedColor,
72
- position: "absolute",
73
- top: (this.state.height - this.state.customStyles.separatorStrokeWidth) /
74
- 2,
75
- left: this.state.width / (2 * stepCount),
76
- right: this.state.width / (2 * stepCount),
77
- height: this.state.customStyles.separatorStrokeFinishedWidth === 0
78
- ? this.state.customStyles.separatorStrokeWidth
79
- : this.state.customStyles.separatorStrokeFinishedWidth,
80
- width: this.progressAnim,
81
- };
82
- }
83
- return React.createElement(Animated.View, { style: progressBarStyle });
35
+ } else {
36
+ progressBarBackgroundStyle = {
37
+ backgroundColor: this.state.customStyles.separatorUnFinishedColor,
38
+ position: "absolute",
39
+ top:
40
+ (this.state.height - this.state.customStyles.separatorStrokeWidth) /
41
+ 2,
42
+ left: this.state.width / (2 * stepCount),
43
+ right: this.state.width / (2 * stepCount),
44
+ height:
45
+ this.state.customStyles.separatorStrokeUnfinishedWidth === 0
46
+ ? this.state.customStyles.separatorStrokeWidth
47
+ : this.state.customStyles.separatorStrokeUnfinishedWidth,
84
48
  };
85
- this.renderStepIndicator = () => {
86
- let steps = [];
87
- const { stepCount, direction } = this.props;
88
- for (let position = 0; position < stepCount; position++) {
89
- steps.push(React.createElement(TouchableWithoutFeedback, { key: position, onPress: () => this.stepPressed(position) },
90
- React.createElement(View, { style: [
91
- styles.stepContainer,
92
- direction === "vertical"
93
- ? { flexDirection: "column" }
94
- : { flexDirection: "row" },
95
- ] }, this.renderStep(position))));
96
- }
97
- return (React.createElement(View, { onLayout: (event) => this.setState({
98
- width: event.nativeEvent.layout.width,
99
- height: event.nativeEvent.layout.height,
100
- }), style: [
101
- styles.stepIndicatorContainer,
102
- direction === "vertical"
103
- ? {
104
- flexDirection: "column",
105
- width: this.state.customStyles.currentStepIndicatorSize,
106
- }
107
- : {
108
- flexDirection: "row",
109
- height: this.state.customStyles.currentStepIndicatorSize,
110
- },
111
- ] }, steps));
49
+ }
50
+ return React.createElement(View, {
51
+ onLayout: (event) => {
52
+ if (direction === "vertical") {
53
+ this.setState(
54
+ { progressBarSize: event.nativeEvent.layout.height },
55
+ () => {
56
+ this.onCurrentPositionChanged(this.props.currentPosition);
57
+ }
58
+ );
59
+ } else {
60
+ this.setState(
61
+ { progressBarSize: event.nativeEvent.layout.width },
62
+ () => {
63
+ this.onCurrentPositionChanged(this.props.currentPosition);
64
+ }
65
+ );
66
+ }
67
+ },
68
+ style: progressBarBackgroundStyle,
69
+ });
70
+ };
71
+ this.renderProgressBar = () => {
72
+ const { stepCount, direction } = this.props;
73
+ let progressBarStyle;
74
+ if (direction === "vertical") {
75
+ progressBarStyle = {
76
+ backgroundColor: this.state.customStyles.separatorFinishedColor,
77
+ position: "absolute",
78
+ left:
79
+ (this.state.width - this.state.customStyles.separatorStrokeWidth) /
80
+ 2,
81
+ top: this.state.height / (2 * stepCount),
82
+ bottom: this.state.height / (2 * stepCount),
83
+ width:
84
+ this.state.customStyles.separatorStrokeFinishedWidth === 0
85
+ ? this.state.customStyles.separatorStrokeWidth
86
+ : this.state.customStyles.separatorStrokeFinishedWidth,
87
+ height: this.progressAnim,
112
88
  };
113
- this.renderStepLabels = () => {
114
- const { labels, direction, currentPosition, renderLabel } = this.props;
115
- var labelViews = labels.map((label, index) => {
116
- const selectedStepLabelStyle = index === currentPosition
117
- ? { color: this.state.customStyles.currentStepLabelColor }
118
- : { color: this.state.customStyles.labelColor };
119
- return (React.createElement(TouchableWithoutFeedback, { style: styles.stepLabelItem, key: index, onPress: () => this.stepPressed(index) },
120
- React.createElement(View, { style: styles.stepLabelItem }, renderLabel ? (renderLabel({
121
- position: index,
122
- stepStatus: this.getStepStatus(index),
123
- label,
124
- currentPosition,
125
- })) : (React.createElement(Text, { style: [
126
- styles.stepLabel,
127
- selectedStepLabelStyle,
128
- {
129
- fontSize: this.state.customStyles.labelSize,
130
- fontFamily: this.state.customStyles.labelFontFamily,
131
- },
132
- ] }, label)))));
133
- });
134
- return (React.createElement(View, { style: [
135
- styles.stepLabelsContainer,
136
- direction === "vertical"
137
- ? { flexDirection: "column", paddingHorizontal: 4 }
138
- : { flexDirection: "row", paddingVertical: 4 },
139
- { alignItems: this.state.customStyles.labelAlign },
140
- ] }, labelViews));
89
+ } else {
90
+ progressBarStyle = {
91
+ backgroundColor: this.state.customStyles.separatorFinishedColor,
92
+ position: "absolute",
93
+ top:
94
+ (this.state.height - this.state.customStyles.separatorStrokeWidth) /
95
+ 2,
96
+ left: this.state.width / (2 * stepCount),
97
+ right: this.state.width / (2 * stepCount),
98
+ height:
99
+ this.state.customStyles.separatorStrokeFinishedWidth === 0
100
+ ? this.state.customStyles.separatorStrokeWidth
101
+ : this.state.customStyles.separatorStrokeFinishedWidth,
102
+ width: this.progressAnim,
141
103
  };
142
- this.renderStep = (position) => {
143
- const { renderStepIndicator } = this.props;
144
- let stepStyle;
145
- let indicatorLabelStyle;
146
- switch (this.getStepStatus(position)) {
147
- case STEP_STATUS.CURRENT: {
148
- stepStyle = {
149
- backgroundColor: this.state.customStyles.stepIndicatorCurrentColor,
150
- borderWidth: this.state.customStyles.currentStepStrokeWidth,
151
- borderColor: this.state.customStyles.stepStrokeCurrentColor,
152
- height: this.sizeAnim,
153
- width: this.sizeAnim,
154
- borderRadius: this.borderRadiusAnim,
155
- };
156
- indicatorLabelStyle = {
157
- fontSize: this.state.customStyles.currentStepIndicatorLabelFontSize,
158
- color: this.state.customStyles.stepIndicatorLabelCurrentColor,
159
- };
160
- break;
104
+ }
105
+ return React.createElement(Animated.View, { style: progressBarStyle });
106
+ };
107
+ this.renderStepIndicator = () => {
108
+ let steps = [];
109
+ const { stepCount, direction } = this.props;
110
+ for (let position = 0; position < stepCount; position++) {
111
+ steps.push(
112
+ React.createElement(
113
+ TouchableWithoutFeedback,
114
+ { key: position, onPress: () => this.stepPressed(position) },
115
+ React.createElement(
116
+ View,
117
+ {
118
+ style: [
119
+ styles.stepContainer,
120
+ direction === "vertical"
121
+ ? { flexDirection: "column" }
122
+ : { flexDirection: "row" },
123
+ ],
124
+ },
125
+ this.renderStep(position)
126
+ )
127
+ )
128
+ );
129
+ }
130
+ return React.createElement(
131
+ View,
132
+ {
133
+ onLayout: (event) =>
134
+ this.setState({
135
+ width: event.nativeEvent.layout.width,
136
+ height: event.nativeEvent.layout.height,
137
+ }),
138
+ style: [
139
+ styles.stepIndicatorContainer,
140
+ direction === "vertical"
141
+ ? {
142
+ flexDirection: "column",
143
+ width: this.state.customStyles.currentStepIndicatorSize,
161
144
  }
162
- case STEP_STATUS.FINISHED: {
163
- stepStyle = {
164
- backgroundColor: this.state.customStyles.stepIndicatorFinishedColor,
165
- borderWidth: this.state.customStyles.stepStrokeWidth,
166
- borderColor: this.state.customStyles.stepStrokeFinishedColor,
167
- height: this.state.customStyles.stepIndicatorSize,
168
- width: this.state.customStyles.stepIndicatorSize,
169
- borderRadius: this.state.customStyles.stepIndicatorSize / 2,
170
- };
171
- indicatorLabelStyle = {
172
- fontSize: this.state.customStyles.stepIndicatorLabelFontSize,
173
- color: this.state.customStyles.stepIndicatorLabelFinishedColor,
174
- };
175
- break;
176
- }
177
- case STEP_STATUS.UNFINISHED: {
178
- stepStyle = {
179
- backgroundColor: this.state.customStyles.stepIndicatorUnFinishedColor,
180
- borderWidth: this.state.customStyles.stepStrokeWidth,
181
- borderColor: this.state.customStyles.stepStrokeUnFinishedColor,
182
- height: this.state.customStyles.stepIndicatorSize,
183
- width: this.state.customStyles.stepIndicatorSize,
184
- borderRadius: this.state.customStyles.stepIndicatorSize / 2,
185
- };
186
- indicatorLabelStyle = {
187
- overflow: "hidden",
188
- fontSize: this.state.customStyles.stepIndicatorLabelFontSize,
189
- color: this.state.customStyles.stepIndicatorLabelUnFinishedColor,
190
- };
191
- break;
192
- }
193
- default:
194
- }
195
- return (React.createElement(Animated.View, { key: "step-indicator", style: [styles.step, stepStyle] }, renderStepIndicator ? (renderStepIndicator({
196
- position,
197
- stepStatus: this.getStepStatus(position),
198
- })) : (React.createElement(Text, { style: indicatorLabelStyle }, `${position + 1}`))));
199
- };
200
- this.getStepStatus = (stepPosition) => {
201
- const { currentPosition } = this.props;
202
- if (stepPosition === currentPosition) {
203
- return STEP_STATUS.CURRENT;
204
- }
205
- else if (stepPosition < currentPosition) {
206
- return STEP_STATUS.FINISHED;
207
- }
208
- else {
209
- return STEP_STATUS.UNFINISHED;
210
- }
211
- };
212
- this.onCurrentPositionChanged = (position) => {
213
- let { stepCount } = this.props;
214
- if (position > stepCount - 1) {
215
- position = stepCount - 1;
216
- }
217
- const animateToPosition = (this.state.progressBarSize / (stepCount - 1)) * position;
218
- this.sizeAnim.setValue(this.state.customStyles.stepIndicatorSize);
219
- this.borderRadiusAnim.setValue(this.state.customStyles.stepIndicatorSize / 2);
220
- Animated.sequence([
221
- Animated.timing(this.progressAnim, {
222
- toValue: animateToPosition,
223
- duration: 200,
224
- }),
225
- Animated.parallel([
226
- Animated.timing(this.sizeAnim, {
227
- toValue: this.state.customStyles.currentStepIndicatorSize,
228
- duration: 100,
229
- }),
230
- Animated.timing(this.borderRadiusAnim, {
231
- toValue: this.state.customStyles.currentStepIndicatorSize / 2,
232
- duration: 100,
233
- }),
234
- ]),
235
- ]).start();
236
- };
237
- const defaultStyles = {
238
- stepIndicatorSize: 30,
239
- currentStepIndicatorSize: 40,
240
- separatorStrokeWidth: 3,
241
- separatorStrokeUnfinishedWidth: 0,
242
- separatorStrokeFinishedWidth: 0,
243
- currentStepStrokeWidth: 5,
244
- stepStrokeWidth: 0,
245
- stepStrokeCurrentColor: "#4aae4f",
246
- stepStrokeFinishedColor: "#4aae4f",
247
- stepStrokeUnFinishedColor: "#4aae4f",
248
- separatorFinishedColor: "#4aae4f",
249
- separatorUnFinishedColor: "#a4d4a5",
250
- stepIndicatorFinishedColor: "#4aae4f",
251
- stepIndicatorUnFinishedColor: "#a4d4a5",
252
- stepIndicatorCurrentColor: "#ffffff",
253
- stepIndicatorLabelFontSize: 15,
254
- currentStepIndicatorLabelFontSize: 15,
255
- stepIndicatorLabelCurrentColor: "#000000",
256
- stepIndicatorLabelFinishedColor: "#ffffff",
257
- stepIndicatorLabelUnFinishedColor: "rgba(255,255,255,0.5)",
258
- labelColor: "#000000",
259
- labelSize: 13,
260
- labelAlign: "center",
261
- currentStepLabelColor: "#4aae4f",
262
- };
263
- const customStyles = Object.assign(defaultStyles, props.customStyles);
264
- this.state = {
265
- width: 0,
266
- height: 1,
267
- progressBarSize: -2,
268
- customStyles,
269
- };
270
- this.progressAnim = new Animated.Value(0);
271
- this.sizeAnim = new Animated.Value(this.state.customStyles.stepIndicatorSize);
272
- this.borderRadiusAnim = new Animated.Value(this.state.customStyles.stepIndicatorSize / 2);
273
- }
274
- stepPressed(position) {
275
- if (this.props.onPress) {
276
- this.props.onPress(position);
145
+ : {
146
+ flexDirection: "row",
147
+ height: this.state.customStyles.currentStepIndicatorSize,
148
+ },
149
+ ],
150
+ },
151
+ steps
152
+ );
153
+ };
154
+ this.renderStepLabels = () => {
155
+ const { labels, direction, currentPosition, renderLabel } = this.props;
156
+ var labelViews = labels.map((label, index) => {
157
+ const selectedStepLabelStyle =
158
+ index === currentPosition
159
+ ? { color: this.state.customStyles.currentStepLabelColor }
160
+ : { color: this.state.customStyles.labelColor };
161
+ return React.createElement(
162
+ TouchableWithoutFeedback,
163
+ {
164
+ style: styles.stepLabelItem,
165
+ key: index,
166
+ onPress: () => this.stepPressed(index),
167
+ },
168
+ React.createElement(
169
+ View,
170
+ { style: styles.stepLabelItem },
171
+ renderLabel
172
+ ? renderLabel({
173
+ position: index,
174
+ stepStatus: this.getStepStatus(index),
175
+ label,
176
+ currentPosition,
177
+ })
178
+ : React.createElement(
179
+ Text,
180
+ {
181
+ style: [
182
+ styles.stepLabel,
183
+ selectedStepLabelStyle,
184
+ {
185
+ fontSize: this.state.customStyles.labelSize,
186
+ fontFamily: this.state.customStyles.labelFontFamily,
187
+ },
188
+ ],
189
+ },
190
+ label
191
+ )
192
+ )
193
+ );
194
+ });
195
+ return React.createElement(
196
+ View,
197
+ {
198
+ style: [
199
+ styles.stepLabelsContainer,
200
+ direction === "vertical"
201
+ ? { flexDirection: "column", paddingHorizontal: 4 }
202
+ : { flexDirection: "row", paddingVertical: 4 },
203
+ { alignItems: this.state.customStyles.labelAlign },
204
+ ],
205
+ },
206
+ labelViews
207
+ );
208
+ };
209
+ this.renderStep = (position) => {
210
+ const { renderStepIndicator } = this.props;
211
+ let stepStyle;
212
+ let indicatorLabelStyle;
213
+ switch (this.getStepStatus(position)) {
214
+ case STEP_STATUS.CURRENT: {
215
+ stepStyle = {
216
+ backgroundColor: this.state.customStyles.stepIndicatorCurrentColor,
217
+ borderWidth: this.state.customStyles.currentStepStrokeWidth,
218
+ borderColor: this.state.customStyles.stepStrokeCurrentColor,
219
+ height: this.sizeAnim,
220
+ width: this.sizeAnim,
221
+ borderRadius: this.borderRadiusAnim,
222
+ };
223
+ indicatorLabelStyle = {
224
+ fontSize: this.state.customStyles.currentStepIndicatorLabelFontSize,
225
+ color: this.state.customStyles.stepIndicatorLabelCurrentColor,
226
+ };
227
+ break;
277
228
  }
278
- }
279
- render() {
280
- const { labels, direction } = this.props;
281
- return (React.createElement(View, { style: [
282
- styles.container,
283
- direction === "vertical"
284
- ? { flexDirection: "row", flex: 1 }
285
- : { flexDirection: "column" },
286
- ] },
287
- this.state.width !== 0 && this.renderProgressBarBackground(),
288
- this.state.width !== 0 && this.renderProgressBar(),
289
- this.renderStepIndicator(),
290
- labels && this.renderStepLabels()));
291
- }
292
- componentDidUpdate(prevProps) {
293
- // if (prevProps.customStyles !== this.props.customStyles) {
294
- // this.setState((state) => ({
295
- // customStyles: Object.assign(
296
- // state.customStyles,
297
- // this.props.customStyles
298
- // ),
299
- // }));
300
- // }
301
- if (prevProps.currentPosition !== this.props.currentPosition) {
302
- this.onCurrentPositionChanged(this.props.currentPosition);
229
+ case STEP_STATUS.FINISHED: {
230
+ stepStyle = {
231
+ backgroundColor: this.state.customStyles.stepIndicatorFinishedColor,
232
+ borderWidth: this.state.customStyles.stepStrokeWidth,
233
+ borderColor: this.state.customStyles.stepStrokeFinishedColor,
234
+ height: this.state.customStyles.stepIndicatorSize,
235
+ width: this.state.customStyles.stepIndicatorSize,
236
+ borderRadius: this.state.customStyles.stepIndicatorSize / 2,
237
+ };
238
+ indicatorLabelStyle = {
239
+ fontSize: this.state.customStyles.stepIndicatorLabelFontSize,
240
+ color: this.state.customStyles.stepIndicatorLabelFinishedColor,
241
+ };
242
+ break;
243
+ }
244
+ case STEP_STATUS.UNFINISHED: {
245
+ stepStyle = {
246
+ backgroundColor:
247
+ this.state.customStyles.stepIndicatorUnFinishedColor,
248
+ borderWidth: this.state.customStyles.stepStrokeWidth,
249
+ borderColor: this.state.customStyles.stepStrokeUnFinishedColor,
250
+ height: this.state.customStyles.stepIndicatorSize,
251
+ width: this.state.customStyles.stepIndicatorSize,
252
+ borderRadius: this.state.customStyles.stepIndicatorSize / 2,
253
+ };
254
+ indicatorLabelStyle = {
255
+ overflow: "hidden",
256
+ fontSize: this.state.customStyles.stepIndicatorLabelFontSize,
257
+ color: this.state.customStyles.stepIndicatorLabelUnFinishedColor,
258
+ };
259
+ break;
303
260
  }
261
+ default:
262
+ }
263
+ return React.createElement(
264
+ Animated.View,
265
+ { key: "step-indicator", style: [styles.step, stepStyle] },
266
+ renderStepIndicator
267
+ ? renderStepIndicator({
268
+ position,
269
+ stepStatus: this.getStepStatus(position),
270
+ })
271
+ : React.createElement(
272
+ Text,
273
+ { style: indicatorLabelStyle },
274
+ `${position + 1}`
275
+ )
276
+ );
277
+ };
278
+ this.getStepStatus = (stepPosition) => {
279
+ const { currentPosition } = this.props;
280
+ if (stepPosition === currentPosition) {
281
+ return STEP_STATUS.CURRENT;
282
+ } else if (stepPosition < currentPosition) {
283
+ return STEP_STATUS.FINISHED;
284
+ } else {
285
+ return STEP_STATUS.UNFINISHED;
286
+ }
287
+ };
288
+ this.onCurrentPositionChanged = (position) => {
289
+ let { stepCount } = this.props;
290
+ if (position > stepCount - 1) {
291
+ position = stepCount - 1;
292
+ }
293
+ const animateToPosition =
294
+ (this.state.progressBarSize / (stepCount - 1)) * position;
295
+ this.sizeAnim.setValue(this.state.customStyles.stepIndicatorSize);
296
+ this.borderRadiusAnim.setValue(
297
+ this.state.customStyles.stepIndicatorSize / 2
298
+ );
299
+ Animated.sequence([
300
+ Animated.timing(this.progressAnim, {
301
+ toValue: animateToPosition,
302
+ duration: 200,
303
+ }),
304
+ Animated.parallel([
305
+ Animated.timing(this.sizeAnim, {
306
+ toValue: this.state.customStyles.currentStepIndicatorSize,
307
+ duration: 100,
308
+ }),
309
+ Animated.timing(this.borderRadiusAnim, {
310
+ toValue: this.state.customStyles.currentStepIndicatorSize / 2,
311
+ duration: 100,
312
+ }),
313
+ ]),
314
+ ]).start();
315
+ };
316
+ const defaultStyles = {
317
+ stepIndicatorSize: 30,
318
+ currentStepIndicatorSize: 40,
319
+ separatorStrokeWidth: 3,
320
+ separatorStrokeUnfinishedWidth: 0,
321
+ separatorStrokeFinishedWidth: 0,
322
+ currentStepStrokeWidth: 5,
323
+ stepStrokeWidth: 0,
324
+ stepStrokeCurrentColor: "#4aae4f",
325
+ stepStrokeFinishedColor: "#4aae4f",
326
+ stepStrokeUnFinishedColor: "#4aae4f",
327
+ separatorFinishedColor: "#4aae4f",
328
+ separatorUnFinishedColor: "#a4d4a5",
329
+ stepIndicatorFinishedColor: "#4aae4f",
330
+ stepIndicatorUnFinishedColor: "#a4d4a5",
331
+ stepIndicatorCurrentColor: "#ffffff",
332
+ stepIndicatorLabelFontSize: 15,
333
+ currentStepIndicatorLabelFontSize: 15,
334
+ stepIndicatorLabelCurrentColor: "#000000",
335
+ stepIndicatorLabelFinishedColor: "#ffffff",
336
+ stepIndicatorLabelUnFinishedColor: "rgba(255,255,255,0.5)",
337
+ labelColor: "#000000",
338
+ labelSize: 13,
339
+ labelAlign: "center",
340
+ currentStepLabelColor: "#4aae4f",
341
+ };
342
+ const customStyles = Object.assign(defaultStyles, props.customStyles);
343
+ this.state = {
344
+ width: 0,
345
+ height: 1,
346
+ progressBarSize: -2,
347
+ customStyles,
348
+ };
349
+ this.progressAnim = new Animated.Value(0);
350
+ this.sizeAnim = new Animated.Value(
351
+ this.state.customStyles.stepIndicatorSize
352
+ );
353
+ this.borderRadiusAnim = new Animated.Value(
354
+ this.state.customStyles.stepIndicatorSize / 2
355
+ );
356
+ }
357
+ stepPressed(position) {
358
+ if (this.props.onPress) {
359
+ this.props.onPress(position);
360
+ }
361
+ }
362
+ render() {
363
+ const { labels, direction } = this.props;
364
+ return React.createElement(
365
+ View,
366
+ {
367
+ style: [
368
+ styles.container,
369
+ direction === "vertical"
370
+ ? { flexDirection: "row", flex: 1 }
371
+ : { flexDirection: "column" },
372
+ ],
373
+ },
374
+ this.state.width !== 0 && this.renderProgressBarBackground(),
375
+ this.state.width !== 0 && this.renderProgressBar(),
376
+ this.renderStepIndicator(),
377
+ labels && this.renderStepLabels()
378
+ );
379
+ }
380
+ componentDidUpdate(prevProps) {
381
+ // if (prevProps.customStyles !== this.props.customStyles) {
382
+ // this.setState((state) => ({
383
+ // customStyles: Object.assign(
384
+ // state.customStyles,
385
+ // this.props.customStyles
386
+ // ),
387
+ // }));
388
+ // }
389
+ if (prevProps.currentPosition !== this.props.currentPosition) {
390
+ this.onCurrentPositionChanged(this.props.currentPosition);
304
391
  }
392
+ }
305
393
  }
306
394
  const styles = StyleSheet.create({
307
- container: {
308
- backgroundColor: "transparent",
309
- },
310
- stepIndicatorContainer: {
311
- flexDirection: "row",
312
- alignItems: "center",
313
- justifyContent: "space-around",
314
- backgroundColor: "transparent",
315
- },
316
- stepLabelsContainer: {
317
- justifyContent: "space-around",
318
- },
319
- step: {
320
- alignItems: "center",
321
- justifyContent: "center",
322
- zIndex: 2,
323
- },
324
- stepContainer: {
325
- flex: 1,
326
- flexDirection: "row",
327
- alignItems: "center",
328
- justifyContent: "center",
329
- },
330
- stepLabel: {
331
- fontSize: 12,
332
- textAlign: "center",
333
- fontWeight: "500",
334
- },
335
- stepLabelItem: {
336
- flex: 1,
337
- alignItems: "center",
338
- justifyContent: "center",
339
- },
395
+ container: {
396
+ backgroundColor: "transparent",
397
+ },
398
+ stepIndicatorContainer: {
399
+ flexDirection: "row",
400
+ alignItems: "center",
401
+ justifyContent: "space-around",
402
+ backgroundColor: "transparent",
403
+ },
404
+ stepLabelsContainer: {
405
+ justifyContent: "space-around",
406
+ },
407
+ step: {
408
+ alignItems: "center",
409
+ justifyContent: "center",
410
+ zIndex: 2,
411
+ },
412
+ stepContainer: {
413
+ flex: 1,
414
+ flexDirection: "row",
415
+ alignItems: "center",
416
+ justifyContent: "center",
417
+ },
418
+ stepLabel: {
419
+ fontSize: 12,
420
+ textAlign: "center",
421
+ fontWeight: "500",
422
+ },
423
+ stepLabelItem: {
424
+ flex: 1,
425
+ alignItems: "center",
426
+ justifyContent: "center",
427
+ },
340
428
  });
341
429
  StepIndicator.defaultProps = {
342
- currentPosition: 0,
343
- stepCount: 5,
344
- customStyles: {},
345
- direction: "horizontal",
430
+ currentPosition: 0,
431
+ stepCount: 5,
432
+ customStyles: {},
433
+ direction: "horizontal",
346
434
  };