@momo-kits/native-kits 0.157.1-beta.9 → 0.157.1-com.1-debug

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 (481) hide show
  1. package/build.gradle.kts +11 -0
  2. package/compose/build.gradle.kts +180 -0
  3. package/compose/build.gradle.kts.backup +180 -0
  4. package/compose/compose.podspec +54 -0
  5. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +110 -0
  6. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  7. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  8. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  9. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  10. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  11. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  12. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  13. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  14. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  15. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  16. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  17. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  18. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  19. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  20. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
  21. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +107 -0
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +720 -0
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +85 -0
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +198 -0
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +357 -0
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +448 -0
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +255 -0
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +233 -0
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +350 -0
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +360 -0
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +449 -0
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +590 -0
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +185 -0
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +59 -0
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +98 -0
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +161 -0
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -0
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +243 -0
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +279 -0
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +32 -0
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +42 -0
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
  122. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +149 -0
  123. package/gradle/libs.versions.toml +57 -0
  124. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  125. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  126. package/gradle.properties +26 -0
  127. package/gradlew +252 -0
  128. package/gradlew.bat +94 -0
  129. package/ios/Input/Input.swift +4 -0
  130. package/local.properties +8 -0
  131. package/package.json +1 -1
  132. package/settings.gradle.kts +52 -0
  133. package/src/doctor/README.md +73 -0
  134. package/src/doctor/package-lock.json +885 -0
  135. package/src/doctor/package.json +44 -0
  136. package/src/doctor/publish.sh +27 -0
  137. package/src/doctor/src/Users.json +112 -0
  138. package/src/doctor/src/Whitelist.json +6 -0
  139. package/src/doctor/src/commands/check.ts +81 -0
  140. package/src/doctor/src/commands/doctor.ts +193 -0
  141. package/src/doctor/src/index.ts +35 -0
  142. package/src/doctor/src/logger.ts +84 -0
  143. package/src/doctor/src/task/native.ts +21 -0
  144. package/src/doctor/src/task/utils.ts +20 -0
  145. package/src/doctor/src/utils/checkCoreDependencies.ts +138 -0
  146. package/src/doctor/src/utils/checkDeletedPackage.ts +53 -0
  147. package/src/doctor/src/utils/checkDeprecatedPackages.ts +168 -0
  148. package/src/doctor/src/utils/checkDeprecatedVersion.ts +60 -0
  149. package/src/doctor/src/utils/checkShareDependencies.ts +251 -0
  150. package/src/doctor/src/utils/checkWrongVersionCommunityPackage.ts +64 -0
  151. package/src/doctor/src/utils/getErrorMessage.ts +84 -0
  152. package/src/doctor/src/utils/scanComponentUsage.ts +206 -0
  153. package/src/doctor/src/utils/scanFoundationImports.ts +169 -0
  154. package/src/doctor/src/utils/scanMaxApiUsage.ts +86 -0
  155. package/src/doctor/src/utils/scanNativeModulesUsage.ts +78 -0
  156. package/src/doctor/src/utils/sendMessage.ts +28 -0
  157. package/src/doctor/tsconfig.json +14 -0
  158. package/src/doctor/yarn.lock +492 -0
  159. package/src/foundations/Application/BottomSheet.tsx +358 -0
  160. package/src/foundations/Application/BottomTab/BottomTabBar.tsx +320 -0
  161. package/src/foundations/Application/BottomTab/CustomBottomTabItem.tsx +155 -0
  162. package/src/foundations/Application/BottomTab/TabBarIcon.tsx +113 -0
  163. package/src/foundations/Application/BottomTab/index.tsx +449 -0
  164. package/src/foundations/Application/Components/BackgroundImageView.tsx +126 -0
  165. package/src/foundations/Application/Components/HeaderAnimated.tsx +69 -0
  166. package/src/foundations/Application/Components/HeaderBackground.tsx +83 -0
  167. package/src/foundations/Application/Components/HeaderExtendHeader.tsx +225 -0
  168. package/src/foundations/Application/Components/HeaderLeft.tsx +93 -0
  169. package/src/foundations/Application/Components/HeaderRight.tsx +444 -0
  170. package/src/foundations/Application/Components/HeaderTitle.tsx +596 -0
  171. package/src/foundations/Application/Components/NavigationButton.tsx +76 -0
  172. package/src/foundations/Application/Components/SearchHeader.tsx +127 -0
  173. package/src/foundations/Application/Localize.ts +44 -0
  174. package/src/foundations/Application/ModalScreen.tsx +148 -0
  175. package/src/foundations/Application/Navigation.ts +63 -0
  176. package/src/foundations/Application/NavigationContainer.tsx +245 -0
  177. package/src/foundations/Application/Navigator.ts +171 -0
  178. package/src/foundations/Application/ScaleSizeProvider.tsx +16 -0
  179. package/src/foundations/Application/StackScreen.tsx +420 -0
  180. package/src/foundations/Application/TooltipPortal.tsx +127 -0
  181. package/src/foundations/Application/WidgetContainer.tsx +162 -0
  182. package/src/foundations/Application/index.ts +34 -0
  183. package/src/foundations/Application/types.ts +350 -0
  184. package/src/foundations/Application/utils.tsx +239 -0
  185. package/src/foundations/Assets/DotAnimation.json +256 -0
  186. package/src/foundations/Assets/SpinnerAnimation.json +1027 -0
  187. package/src/foundations/Assets/icon.json +4052 -0
  188. package/src/foundations/Assets/icon_bank.json +506 -0
  189. package/src/foundations/Assets/language.json +208 -0
  190. package/src/foundations/Assets/lottie_circle_loader.json +1 -0
  191. package/src/foundations/Assets/pinAnimation.json +1 -0
  192. package/src/foundations/Assets/unpinAnimation.json +1 -0
  193. package/src/foundations/Badge/Badge.tsx +104 -0
  194. package/src/foundations/Badge/BadgeDot.tsx +35 -0
  195. package/src/foundations/Badge/BadgeDotAnimation.tsx +95 -0
  196. package/src/foundations/Badge/BadgeRibbon.tsx +112 -0
  197. package/src/foundations/Badge/Shape.tsx +29 -0
  198. package/src/foundations/Badge/index.tsx +8 -0
  199. package/src/foundations/Badge/styles.ts +125 -0
  200. package/src/foundations/Badge/types.ts +68 -0
  201. package/src/foundations/Button/index.tsx +371 -0
  202. package/src/foundations/Button/styles.ts +65 -0
  203. package/src/foundations/CheckBox/index.tsx +104 -0
  204. package/src/foundations/CheckBox/styles.ts +17 -0
  205. package/src/foundations/CheckBox/types.ts +37 -0
  206. package/src/foundations/Consts/colors+spacing+radius.ts +232 -0
  207. package/src/foundations/Consts/index.ts +4 -0
  208. package/src/foundations/Consts/styles.ts +52 -0
  209. package/src/foundations/Consts/theme.ts +121 -0
  210. package/src/foundations/Context/index.ts +27 -0
  211. package/src/foundations/Divider/DashDivider.tsx +46 -0
  212. package/src/foundations/Divider/index.tsx +45 -0
  213. package/src/foundations/FoundationList/index.tsx +12 -0
  214. package/src/foundations/FoundationList/types.ts +7 -0
  215. package/src/foundations/Icon/index.tsx +57 -0
  216. package/src/foundations/Icon/types.ts +32 -0
  217. package/src/foundations/IconButton/index.tsx +144 -0
  218. package/src/foundations/IconButton/styles.ts +20 -0
  219. package/src/foundations/Image/index.tsx +115 -0
  220. package/src/foundations/Image/styles.ts +7 -0
  221. package/src/foundations/Image/types.ts +7 -0
  222. package/src/foundations/Input/Input.tsx +280 -0
  223. package/src/foundations/Input/InputDropDown.tsx +161 -0
  224. package/src/foundations/Input/InputMoney.tsx +325 -0
  225. package/src/foundations/Input/InputOTP.tsx +299 -0
  226. package/src/foundations/Input/InputPhoneNumber.tsx +287 -0
  227. package/src/foundations/Input/InputSearch.tsx +351 -0
  228. package/src/foundations/Input/InputTextArea.tsx +218 -0
  229. package/src/foundations/Input/SystemTextInput.tsx +44 -0
  230. package/src/foundations/Input/TextTyping.tsx +115 -0
  231. package/src/foundations/Input/common.tsx +243 -0
  232. package/src/foundations/Input/index.tsx +373 -0
  233. package/src/foundations/Input/styles.ts +226 -0
  234. package/src/foundations/Input/utils.ts +97 -0
  235. package/src/foundations/Layout/Card.tsx +108 -0
  236. package/src/foundations/Layout/FloatingButton.tsx +179 -0
  237. package/src/foundations/Layout/GridSystem.tsx +137 -0
  238. package/src/foundations/Layout/Item.tsx +59 -0
  239. package/src/foundations/Layout/ItemList.tsx +66 -0
  240. package/src/foundations/Layout/ItemSectionList.tsx +40 -0
  241. package/src/foundations/Layout/Screen.tsx +644 -0
  242. package/src/foundations/Layout/Section.tsx +103 -0
  243. package/src/foundations/Layout/TrackingScope.tsx +18 -0
  244. package/src/foundations/Layout/index.ts +34 -0
  245. package/src/foundations/Layout/styles.ts +95 -0
  246. package/src/foundations/Layout/types.ts +40 -0
  247. package/src/foundations/Layout/utils.ts +47 -0
  248. package/src/foundations/Loader/DotLoader.tsx +37 -0
  249. package/src/foundations/Loader/Loader.tsx +13 -0
  250. package/src/foundations/Loader/ProgressBar.tsx +45 -0
  251. package/src/foundations/Loader/Spinner.tsx +29 -0
  252. package/src/foundations/Loader/index.tsx +6 -0
  253. package/src/foundations/Loader/styles.ts +10 -0
  254. package/src/foundations/Loader/types.ts +35 -0
  255. package/src/foundations/Loader/utils.ts +25 -0
  256. package/src/foundations/Pagination/Dot.tsx +19 -0
  257. package/src/foundations/Pagination/PaginationDot.tsx +44 -0
  258. package/src/foundations/Pagination/PaginationNumber.tsx +31 -0
  259. package/src/foundations/Pagination/PaginationScroll.tsx +99 -0
  260. package/src/foundations/Pagination/PaginationWhiteDot.tsx +43 -0
  261. package/src/foundations/Pagination/index.tsx +25 -0
  262. package/src/foundations/Pagination/styles.ts +51 -0
  263. package/src/foundations/Pagination/types.ts +40 -0
  264. package/src/foundations/Popup/PopupNotify.tsx +276 -0
  265. package/src/foundations/Popup/PopupPromotion.tsx +118 -0
  266. package/src/foundations/Popup/index.tsx +4 -0
  267. package/src/foundations/Popup/types.ts +96 -0
  268. package/src/foundations/Radio/index.tsx +108 -0
  269. package/src/foundations/Radio/styles.ts +15 -0
  270. package/src/foundations/Radio/types.ts +31 -0
  271. package/src/foundations/Skeleton/index.tsx +118 -0
  272. package/src/foundations/Skeleton/styles.ts +5 -0
  273. package/src/foundations/Skeleton/types.ts +6 -0
  274. package/src/foundations/Switch/index.tsx +68 -0
  275. package/src/foundations/Switch/styles.ts +25 -0
  276. package/src/foundations/Switch/types.ts +19 -0
  277. package/src/foundations/Tag/index.tsx +128 -0
  278. package/src/foundations/Tag/types.ts +41 -0
  279. package/src/foundations/Text/index.tsx +241 -0
  280. package/src/foundations/Text/styles.ts +78 -0
  281. package/src/foundations/Text/types.ts +53 -0
  282. package/src/foundations/Text/utils.ts +63 -0
  283. package/src/foundations/Title/index.tsx +285 -0
  284. package/src/foundations/Title/styles.ts +55 -0
  285. package/src/foundations/Title/types.ts +21 -0
  286. package/src/foundations/index.ts +50 -0
  287. package/src/foundations/package.json +35 -0
  288. package/src/foundations/publish.sh +17 -0
  289. package/src/libs/AutoComplete/index.tsx +88 -0
  290. package/src/libs/AutoComplete/package.json +16 -0
  291. package/src/libs/AutoComplete/publish.sh +16 -0
  292. package/src/libs/AutoComplete/styles.ts +15 -0
  293. package/src/libs/AutoComplete/types.ts +60 -0
  294. package/src/libs/Avatar/index.tsx +146 -0
  295. package/src/libs/Avatar/package.json +16 -0
  296. package/src/libs/Avatar/publish.sh +20 -0
  297. package/src/libs/Avatar/styles.ts +18 -0
  298. package/src/libs/Avatar/types.ts +57 -0
  299. package/src/libs/Badge/Badge.tsx +70 -0
  300. package/src/libs/Badge/BadgeDot.tsx +11 -0
  301. package/src/libs/Badge/BadgeRibbon.tsx +122 -0
  302. package/src/libs/Badge/Shape.tsx +29 -0
  303. package/src/libs/Badge/index.tsx +7 -0
  304. package/src/libs/Badge/package.json +16 -0
  305. package/src/libs/Badge/publish.sh +18 -0
  306. package/src/libs/Badge/styles.ts +55 -0
  307. package/src/libs/Badge/types.ts +63 -0
  308. package/src/libs/Calendar/CalendarPro.tsx +307 -0
  309. package/src/libs/Calendar/Day.tsx +150 -0
  310. package/src/libs/Calendar/HeaderControl.tsx +55 -0
  311. package/src/libs/Calendar/LunarDateConverter.ts +228 -0
  312. package/src/libs/Calendar/LunarService.ts +206 -0
  313. package/src/libs/Calendar/Month.tsx +118 -0
  314. package/src/libs/Calendar/MonthList.tsx +226 -0
  315. package/src/libs/Calendar/TabHeader.tsx +91 -0
  316. package/src/libs/Calendar/Util.ts +288 -0
  317. package/src/libs/Calendar/holidayData.ts +118 -0
  318. package/src/libs/Calendar/index.tsx +383 -0
  319. package/src/libs/Calendar/package.json +18 -0
  320. package/src/libs/Calendar/publish.sh +18 -0
  321. package/src/libs/Calendar/styles.ts +122 -0
  322. package/src/libs/Calendar/types.ts +212 -0
  323. package/src/libs/Carousel/animation.ts +62 -0
  324. package/src/libs/Carousel/index.tsx +517 -0
  325. package/src/libs/Carousel/package.json +18 -0
  326. package/src/libs/Carousel/publish.sh +16 -0
  327. package/src/libs/Carousel/types.ts +71 -0
  328. package/src/libs/Chip/index.tsx +164 -0
  329. package/src/libs/Chip/package.json +16 -0
  330. package/src/libs/Chip/publish.sh +16 -0
  331. package/src/libs/Chip/styles.ts +20 -0
  332. package/src/libs/Chip/types.ts +72 -0
  333. package/src/libs/Collapse/index.tsx +305 -0
  334. package/src/libs/Collapse/package.json +16 -0
  335. package/src/libs/Collapse/publish.sh +18 -0
  336. package/src/libs/Collapse/styles.ts +37 -0
  337. package/src/libs/Collapse/types.ts +84 -0
  338. package/src/libs/DateTimePicker/WheelPicker.tsx +163 -0
  339. package/src/libs/DateTimePicker/WheelPickerItem.tsx +58 -0
  340. package/src/libs/DateTimePicker/index.tsx +188 -0
  341. package/src/libs/DateTimePicker/package.json +16 -0
  342. package/src/libs/DateTimePicker/publish.sh +17 -0
  343. package/src/libs/DateTimePicker/styles.ts +31 -0
  344. package/src/libs/DateTimePicker/types.ts +102 -0
  345. package/src/libs/DateTimePicker/utils.ts +114 -0
  346. package/src/libs/Information/index.tsx +129 -0
  347. package/src/libs/Information/package.json +16 -0
  348. package/src/libs/Information/publish.sh +18 -0
  349. package/src/libs/Information/styles.ts +34 -0
  350. package/src/libs/Information/types.ts +79 -0
  351. package/src/libs/Logo/index.tsx +39 -0
  352. package/src/libs/Logo/package.json +17 -0
  353. package/src/libs/Logo/publish.sh +16 -0
  354. package/src/libs/Logo/styles.ts +25 -0
  355. package/src/libs/Logo/types.ts +13 -0
  356. package/src/libs/ProgressInfo/ProgressInfoHorizontal.tsx +128 -0
  357. package/src/libs/ProgressInfo/ProgressInfoIcon.tsx +88 -0
  358. package/src/libs/ProgressInfo/ProgressInfoVertical.tsx +85 -0
  359. package/src/libs/ProgressInfo/index.tsx +22 -0
  360. package/src/libs/ProgressInfo/package.json +16 -0
  361. package/src/libs/ProgressInfo/publish.sh +16 -0
  362. package/src/libs/ProgressInfo/styles.ts +46 -0
  363. package/src/libs/ProgressInfo/types.ts +60 -0
  364. package/src/libs/ProgressInfo/yarn.lock +8 -0
  365. package/src/libs/Rating/index.tsx +74 -0
  366. package/src/libs/Rating/package.json +16 -0
  367. package/src/libs/Rating/publish.sh +18 -0
  368. package/src/libs/Rating/type.ts +25 -0
  369. package/src/libs/Slider/Label.tsx +33 -0
  370. package/src/libs/Slider/helpers.ts +35 -0
  371. package/src/libs/Slider/hooks.tsx +218 -0
  372. package/src/libs/Slider/index.tsx +453 -0
  373. package/src/libs/Slider/package.json +16 -0
  374. package/src/libs/Slider/publish.sh +18 -0
  375. package/src/libs/Slider/styles.ts +36 -0
  376. package/src/libs/Stepper/NumberView.tsx +64 -0
  377. package/src/libs/Stepper/StepperButton.tsx +37 -0
  378. package/src/libs/Stepper/index.tsx +139 -0
  379. package/src/libs/Stepper/package.json +16 -0
  380. package/src/libs/Stepper/publish.sh +17 -0
  381. package/src/libs/Stepper/styles.ts +44 -0
  382. package/src/libs/Stepper/types.ts +154 -0
  383. package/src/libs/Steps/StepIcon.tsx +86 -0
  384. package/src/libs/Steps/StepsHorizontal.tsx +189 -0
  385. package/src/libs/Steps/StepsVertical.tsx +133 -0
  386. package/src/libs/Steps/index.tsx +20 -0
  387. package/src/libs/Steps/package.json +16 -0
  388. package/src/libs/Steps/publish.sh +16 -0
  389. package/src/libs/Steps/styles.ts +46 -0
  390. package/src/libs/Steps/types.ts +159 -0
  391. package/src/libs/Steps/utils.ts +175 -0
  392. package/src/libs/SuggestAction/SuggestActionView.tsx +124 -0
  393. package/src/libs/SuggestAction/index.tsx +3 -0
  394. package/src/libs/SuggestAction/package.json +16 -0
  395. package/src/libs/SuggestAction/publish.sh +16 -0
  396. package/src/libs/SuggestAction/styles.ts +30 -0
  397. package/src/libs/SuggestAction/types.ts +36 -0
  398. package/src/libs/Swipe/SwipeView.tsx +151 -0
  399. package/src/libs/Swipe/index.tsx +5 -0
  400. package/src/libs/Swipe/package.json +16 -0
  401. package/src/libs/Swipe/publish.sh +16 -0
  402. package/src/libs/Swipe/styles.ts +16 -0
  403. package/src/libs/Swipe/types.ts +109 -0
  404. package/src/libs/TabView/assets/Path.tsx +29 -0
  405. package/src/libs/TabView/index.tsx +184 -0
  406. package/src/libs/TabView/package.json +16 -0
  407. package/src/libs/TabView/publish.sh +16 -0
  408. package/src/libs/TabView/styles.ts +96 -0
  409. package/src/libs/TabView/tabBar/CardTabBar.tsx +137 -0
  410. package/src/libs/TabView/tabBar/SrollableTabBar.tsx +218 -0
  411. package/src/libs/TabView/tabBar/TabBar.tsx +67 -0
  412. package/src/libs/TabView/tabItem/CardTabItem.tsx +118 -0
  413. package/src/libs/TabView/tabItem/TabItem.tsx +180 -0
  414. package/src/libs/TabView/types.ts +166 -0
  415. package/src/libs/Template/HeaderSliderBanner/index.tsx +86 -0
  416. package/src/libs/Template/HeaderSliderBanner/types.ts +16 -0
  417. package/src/libs/Template/TrustBanner/CustomAvatar.tsx +39 -0
  418. package/src/libs/Template/TrustBanner/index.tsx +161 -0
  419. package/src/libs/Template/TrustBanner/styles.ts +48 -0
  420. package/src/libs/Template/TrustBanner/types.ts +50 -0
  421. package/src/libs/Template/index.tsx +4 -0
  422. package/src/libs/Template/package.json +18 -0
  423. package/src/libs/Template/publish.sh +17 -0
  424. package/src/libs/Title/index.tsx +284 -0
  425. package/src/libs/Title/package.json +17 -0
  426. package/src/libs/Title/publish.sh +16 -0
  427. package/src/libs/Title/styles.ts +54 -0
  428. package/src/libs/Title/types.ts +21 -0
  429. package/src/libs/Tooltip/TooltipButtons.tsx +54 -0
  430. package/src/libs/Tooltip/index.tsx +608 -0
  431. package/src/libs/Tooltip/package.json +16 -0
  432. package/src/libs/Tooltip/publish.sh +18 -0
  433. package/src/libs/Tooltip/styles.ts +70 -0
  434. package/src/libs/Tooltip/types.ts +61 -0
  435. package/src/libs/Uploader/index.tsx +87 -0
  436. package/src/libs/Uploader/package.json +17 -0
  437. package/src/libs/Uploader/publish.sh +18 -0
  438. package/src/libs/Uploader/styles.ts +30 -0
  439. package/src/libs/Uploader/types.ts +69 -0
  440. package/src/native/MoMoNative.podspec +18 -0
  441. package/src/native/calculator/android/build.gradle +61 -0
  442. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  443. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  444. package/src/native/calculator/android/gradlew +172 -0
  445. package/src/native/calculator/android/gradlew.bat +84 -0
  446. package/src/native/calculator/android/src/main/AndroidManifest.xml +5 -0
  447. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewModule.java +22 -0
  448. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewPackage.java +35 -0
  449. package/src/native/calculator/android/src/main/java/com/calculator/modules/CalculatorKeyboardModule.java +157 -0
  450. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/CalculatorEditText.java +36 -0
  451. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/FixedRelativeLayout.java +45 -0
  452. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/MomoTextInputCalculatorManager.java +173 -0
  453. package/src/native/calculator/android/src/main/java/com/calculator/views/customkeyboard/RNCustomKeyboardModule.java +417 -0
  454. package/src/native/calculator/ios/Helper/MomoHelper.swift +16 -0
  455. package/src/native/calculator/ios/KeyboardView-Bridging-Header.h +60 -0
  456. package/src/native/calculator/ios/KeyboardView.h +19 -0
  457. package/src/native/calculator/ios/KeyboardView.m +56 -0
  458. package/src/native/calculator/ios/MomoTextInputCalculator.swift +144 -0
  459. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.h +6 -0
  460. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.m +143 -0
  461. package/src/native/package.json +14 -0
  462. package/src/native/publish.sh +29 -0
  463. package/src/native/resource/android/build.gradle +57 -0
  464. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  465. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  466. package/src/native/resource/android/src/main/AndroidManifest.xml +6 -0
  467. package/src/native/resource/android/src/main/java/com/resource/RNResourceModule.java +90 -0
  468. package/src/native/resource/android/src/main/java/com/resource/RNResourcePackage.java +22 -0
  469. package/src/native/resource/ios/RNResouce.m +71 -0
  470. package/src/native/resource/ios/RNResource.h +5 -0
  471. package/example/ios/Example.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  472. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  473. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  474. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
  475. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
  476. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
  477. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
  478. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
  479. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
  480. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
  481. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
@@ -0,0 +1,228 @@
1
+ function Lunar(this: any) {
2
+ this.isleap = false;
3
+ this.lunarDay = 0;
4
+ this.lunarMonth = 0;
5
+ this.lunarYear = 0;
6
+ }
7
+
8
+ function Solar(this: any) {
9
+ this.solarDay = 0;
10
+ this.solarMonth = 0;
11
+ this.solarYear = 0;
12
+ }
13
+
14
+ function LunarSolarConverter(this: any) {
15
+ this.lunar_month_days = [
16
+ 1887, 0x1694, 0x16aa, 0x4ad5, 0xab6, 0xc4b7, 0x4ae, 0xa56, 0xb52a, 0x1d2a,
17
+ 0xd54, 0x75aa, 0x156a, 0x1096d, 0x95c, 0x14ae, 0xaa4d, 0x1a4c, 0x1b2a,
18
+ 0x8d55, 0xad4, 0x135a, 0x495d, 0x95c, 0xd49b, 0x149a, 0x1a4a, 0xbaa5,
19
+ 0x16a8, 0x1ad4, 0x52da, 0x12b6, 0xe937, 0x92e, 0x1496, 0xb64b, 0xd4a, 0xda8,
20
+ 0x95b5, 0x56c, 0x12ae, 0x492f, 0x92e, 0xcc96, 0x1a94, 0x1d4a, 0xada9, 0xb5a,
21
+ 0x56c, 0x726e, 0x125c, 0xf92d, 0x192a, 0x1a94, 0xdb4a, 0x16aa, 0xad4,
22
+ 0x955b, 0x4ba, 0x125a, 0x592b, 0x152a, 0xf695, 0xd94, 0x16aa, 0xaab5, 0x9b4,
23
+ 0x14b6, 0x6a57, 0xa56, 0x1152a, 0x1d2a, 0xd54, 0xd5aa, 0x156a, 0x96c,
24
+ 0x94ae, 0x14ae, 0xa4c, 0x7d26, 0x1b2a, 0xeb55, 0xad4, 0x12da, 0xa95d, 0x95a,
25
+ 0x149a, 0x9a4d, 0x1a4a, 0x11aa5, 0x16a8, 0x16d4, 0xd2da, 0x12b6, 0x936,
26
+ 0x9497, 0x1496, 0x1564b, 0xd4a, 0xda8, 0xd5b4, 0x156c, 0x12ae, 0xa92f,
27
+ 0x92e, 0xc96, 0x6d4a, 0x1d4a, 0x10d65, 0xb58, 0x156c, 0xb26d, 0x125c,
28
+ 0x192c, 0x9a95, 0x1a94, 0x1b4a, 0x4b55, 0xad4, 0xf55b, 0x4ba, 0x125a,
29
+ 0xb92b, 0x152a, 0x1694, 0x96aa, 0x15aa, 0x12ab5, 0x974, 0x14b6, 0xca57,
30
+ 0xa56, 0x1526, 0x8e95, 0xd54, 0x15aa, 0x49b5, 0x96c, 0xd4ae, 0x149c, 0x1a4c,
31
+ 0xbd26, 0x1aa6, 0xb54, 0x6d6a, 0x12da, 0x1695d, 0x95a, 0x149a, 0xda4b,
32
+ 0x1a4a, 0x1aa4, 0xbb54, 0x16b4, 0xada, 0x495b, 0x936, 0xf497, 0x1496,
33
+ 0x154a, 0xb6a5, 0xda4, 0x15b4, 0x6ab6, 0x126e, 0x1092f, 0x92e, 0xc96,
34
+ 0xcd4a, 0x1d4a, 0xd64, 0x956c, 0x155c, 0x125c, 0x792e, 0x192c, 0xfa95,
35
+ 0x1a94, 0x1b4a, 0xab55, 0xad4, 0x14da, 0x8a5d, 0xa5a, 0x1152b, 0x152a,
36
+ 0x1694, 0xd6aa, 0x15aa, 0xab4, 0x94ba, 0x14b6, 0xa56, 0x7527, 0xd26, 0xee53,
37
+ 0xd54, 0x15aa, 0xa9b5, 0x96c, 0x14ae, 0x8a4e, 0x1a4c, 0x11d26, 0x1aa4,
38
+ 0x1b54, 0xcd6a, 0xada, 0x95c, 0x949d, 0x149a, 0x1a2a, 0x5b25, 0x1aa4,
39
+ 0xfb52, 0x16b4, 0xaba, 0xa95b, 0x936, 0x1496, 0x9a4b, 0x154a, 0x136a5,
40
+ 0xda4, 0x15ac,
41
+ ];
42
+
43
+ this.solar_1_1 = [
44
+ 1887, 0xec04c, 0xec23f, 0xec435, 0xec649, 0xec83e, 0xeca51, 0xecc46,
45
+ 0xece3a, 0xed04d, 0xed242, 0xed436, 0xed64a, 0xed83f, 0xeda53, 0xedc48,
46
+ 0xede3d, 0xee050, 0xee244, 0xee439, 0xee64d, 0xee842, 0xeea36, 0xeec4a,
47
+ 0xeee3e, 0xef052, 0xef246, 0xef43a, 0xef64e, 0xef843, 0xefa37, 0xefc4b,
48
+ 0xefe41, 0xf0054, 0xf0248, 0xf043c, 0xf0650, 0xf0845, 0xf0a38, 0xf0c4d,
49
+ 0xf0e42, 0xf1037, 0xf124a, 0xf143e, 0xf1651, 0xf1846, 0xf1a3a, 0xf1c4e,
50
+ 0xf1e44, 0xf2038, 0xf224b, 0xf243f, 0xf2653, 0xf2848, 0xf2a3b, 0xf2c4f,
51
+ 0xf2e45, 0xf3039, 0xf324d, 0xf3442, 0xf3636, 0xf384a, 0xf3a3d, 0xf3c51,
52
+ 0xf3e46, 0xf403b, 0xf424e, 0xf4443, 0xf4638, 0xf484c, 0xf4a3f, 0xf4c52,
53
+ 0xf4e48, 0xf503c, 0xf524f, 0xf5445, 0xf5639, 0xf584d, 0xf5a42, 0xf5c35,
54
+ 0xf5e49, 0xf603e, 0xf6251, 0xf6446, 0xf663b, 0xf684f, 0xf6a43, 0xf6c37,
55
+ 0xf6e4b, 0xf703f, 0xf7252, 0xf7447, 0xf763c, 0xf7850, 0xf7a45, 0xf7c39,
56
+ 0xf7e4d, 0xf8042, 0xf8254, 0xf8449, 0xf863d, 0xf8851, 0xf8a46, 0xf8c3b,
57
+ 0xf8e4f, 0xf9044, 0xf9237, 0xf944a, 0xf963f, 0xf9853, 0xf9a47, 0xf9c3c,
58
+ 0xf9e50, 0xfa045, 0xfa238, 0xfa44c, 0xfa641, 0xfa836, 0xfaa49, 0xfac3d,
59
+ 0xfae52, 0xfb047, 0xfb23a, 0xfb44e, 0xfb643, 0xfb837, 0xfba4a, 0xfbc3f,
60
+ 0xfbe53, 0xfc048, 0xfc23c, 0xfc450, 0xfc645, 0xfc839, 0xfca4c, 0xfcc41,
61
+ 0xfce36, 0xfd04a, 0xfd23d, 0xfd451, 0xfd646, 0xfd83a, 0xfda4d, 0xfdc43,
62
+ 0xfde37, 0xfe04b, 0xfe23f, 0xfe453, 0xfe648, 0xfe83c, 0xfea4f, 0xfec44,
63
+ 0xfee38, 0xff04c, 0xff241, 0xff436, 0xff64a, 0xff83e, 0xffa51, 0xffc46,
64
+ 0xffe3a, 0x10004e, 0x100242, 0x100437, 0x10064b, 0x100841, 0x100a53,
65
+ 0x100c48, 0x100e3c, 0x10104f, 0x101244, 0x101438, 0x10164c, 0x101842,
66
+ 0x101a35, 0x101c49, 0x101e3d, 0x102051, 0x102245, 0x10243a, 0x10264e,
67
+ 0x102843, 0x102a37, 0x102c4b, 0x102e3f, 0x103053, 0x103247, 0x10343b,
68
+ 0x10364f, 0x103845, 0x103a38, 0x103c4c, 0x103e42, 0x104036, 0x104249,
69
+ 0x10443d, 0x104651, 0x104846, 0x104a3a, 0x104c4e, 0x104e43, 0x105038,
70
+ 0x10524a, 0x10543e, 0x105652, 0x105847, 0x105a3b, 0x105c4f, 0x105e45,
71
+ 0x106039, 0x10624c, 0x106441, 0x106635, 0x106849, 0x106a3d, 0x106c51,
72
+ 0x106e47, 0x10703c, 0x10724f, 0x107444, 0x107638, 0x10784c, 0x107a3f,
73
+ 0x107c53, 0x107e48,
74
+ ];
75
+
76
+ /**
77
+ * @return {number}
78
+ */
79
+ this.GetBitInt = function (data: number, length: number, shift: number) {
80
+ return (data & (((1 << length) - 1) << shift)) >> shift;
81
+ };
82
+
83
+ // WARNING: Dates before Oct. 1582 are inaccurate
84
+ /**
85
+ * @return {number}
86
+ */
87
+ this.SolarToInt = function (y: number, m: number, d: number) {
88
+ m = (m + 9) % 12;
89
+ y = parseInt(String(y)) - parseInt(String(m / 10));
90
+ return (
91
+ 365 * y +
92
+ parseInt(String(y / 4)) -
93
+ parseInt(String(y / 100)) +
94
+ parseInt(String(y / 400)) +
95
+ parseInt(String((m * 306 + 5) / 10)) +
96
+ (d - 1)
97
+ );
98
+ };
99
+
100
+ this.SolarFromInt = function (g: number) {
101
+ let y = parseInt(String((10000 * g + 14780) / 3652425));
102
+ let ddd =
103
+ g -
104
+ (365 * y +
105
+ parseInt(String(y / 4)) -
106
+ parseInt(String(y / 100)) +
107
+ parseInt(String(y / 400)));
108
+ if (ddd < 0) {
109
+ y--;
110
+ ddd =
111
+ g -
112
+ (365 * y +
113
+ parseInt(String(y / 4)) -
114
+ parseInt(String(y / 100)) +
115
+ parseInt(String(y / 400)));
116
+ }
117
+ const mi = parseInt(String((100 * ddd + 52) / 3060));
118
+ const mm = ((mi + 2) % 12) + 1;
119
+ y += parseInt(String((mi + 2) / 12));
120
+ const dd = ddd - parseInt(String((mi * 306 + 5) / 10)) + 1;
121
+ // @ts-ignore
122
+ const solar = new Solar();
123
+ solar.solarYear = parseInt(String(y));
124
+ solar.solarMonth = parseInt(String(mm));
125
+ solar.solarDay = parseInt(String(dd));
126
+ return solar;
127
+ };
128
+
129
+ this.LunarToSolar = function (lunar: {
130
+ lunarYear: number;
131
+ isleap: any;
132
+ lunarMonth: number;
133
+ lunarDay: number;
134
+ }) {
135
+ // year range check: only support lunar calendar from 1900
136
+ const minLunarYear = 1900;
137
+ // using converter data, maximum supported lunar year
138
+ const maxLunarYear = this.lunar_month_days[0] + this.lunar_month_days.length - 1;
139
+ if (lunar.lunarYear < minLunarYear || lunar.lunarYear > maxLunarYear) {
140
+ throw new Error(`LunarToSolar: year ${lunar.lunarYear} out of supported range ${minLunarYear}-${maxLunarYear}`);
141
+ }
142
+ const days =
143
+ this.lunar_month_days[lunar.lunarYear - this.lunar_month_days[0]];
144
+ const leap = this.GetBitInt(days, 4, 13);
145
+ let offset = 0;
146
+ let loopend = leap;
147
+ if (!lunar.isleap) {
148
+ if (lunar.lunarMonth <= leap || leap === 0) {
149
+ loopend = lunar.lunarMonth - 1;
150
+ } else {
151
+ loopend = lunar.lunarMonth;
152
+ }
153
+ }
154
+ for (let i = 0; i < loopend; i++) {
155
+ offset += this.GetBitInt(days, 1, 12 - i) === 1 ? 30 : 29;
156
+ }
157
+ offset += lunar.lunarDay;
158
+
159
+ const solar11 = this.solar_1_1[lunar.lunarYear - this.solar_1_1[0]];
160
+
161
+ const y = this.GetBitInt(solar11, 12, 9);
162
+ const m = this.GetBitInt(solar11, 4, 5);
163
+ const d = this.GetBitInt(solar11, 5, 0);
164
+
165
+ return this.SolarFromInt(this.SolarToInt(y, m, d) + offset - 1);
166
+ };
167
+
168
+ this.SolarToLunar = function (solar: {
169
+ solarYear: number;
170
+ solarMonth: number;
171
+ solarDay: number;
172
+ }) {
173
+ // year range check: only support solar dates from 1900
174
+ const minSolarYear = 1900;
175
+ // using converter data, maximum supported solar year
176
+ const maxSolarYear = this.solar_1_1[0] + this.solar_1_1.length - 1;
177
+ if (solar.solarYear < minSolarYear || solar.solarYear > maxSolarYear) {
178
+ throw new Error(`SolarToLunar: year ${solar.solarYear} out of supported range ${minSolarYear}-${maxSolarYear}`);
179
+ }
180
+ // @ts-ignore
181
+ const lunar = new Lunar();
182
+ let index = solar.solarYear - this.solar_1_1[0];
183
+ const data =
184
+ (solar.solarYear << 9) | (solar.solarMonth << 5) | solar.solarDay;
185
+ if (this.solar_1_1[index] > data) {
186
+ index--;
187
+ }
188
+ const solar11 = this.solar_1_1[index];
189
+ const y = this.GetBitInt(solar11, 12, 9);
190
+ const m = this.GetBitInt(solar11, 4, 5);
191
+ const d = this.GetBitInt(solar11, 5, 0);
192
+ let offset =
193
+ this.SolarToInt(solar.solarYear, solar.solarMonth, solar.solarDay) -
194
+ this.SolarToInt(y, m, d);
195
+
196
+ const days = this.lunar_month_days[index];
197
+ const leap = this.GetBitInt(days, 4, 13);
198
+
199
+ const lunarY = index + this.solar_1_1[0];
200
+ let lunarM = 1;
201
+ offset += 1;
202
+
203
+ for (let i = 0; i < 13; i++) {
204
+ const dm = this.GetBitInt(days, 1, 12 - i) === 1 ? 30 : 29;
205
+ if (offset > dm) {
206
+ lunarM++;
207
+ offset -= dm;
208
+ } else {
209
+ break;
210
+ }
211
+ }
212
+ const lunarD = parseInt(String(offset));
213
+ lunar.lunarYear = lunarY;
214
+ lunar.lunarMonth = lunarM;
215
+ lunar.isleap = false;
216
+ if (leap !== 0 && lunarM > leap) {
217
+ lunar.lunarMonth = lunarM - 1;
218
+ if (lunarM === leap + 1) {
219
+ lunar.isleap = true;
220
+ }
221
+ }
222
+
223
+ lunar.lunarDay = lunarD;
224
+ return lunar;
225
+ };
226
+ }
227
+
228
+ export default LunarSolarConverter;
@@ -0,0 +1,206 @@
1
+ const removeFractionalPart = (number: string | number) =>
2
+ parseInt(String(number));
3
+
4
+ /* Compute the (integral) Julian day number of day dd/mm/yyyy, i.e., the number
5
+ * of days between 1/1/4713 BC (Julian calendar) and dd/mm/yyyy.
6
+ * Formula from http://www.tondering.dk/claus/calendar.html
7
+ */
8
+ const jdFromDate = (dd: number, mm: number, yy: number) => {
9
+ let a, y, m, jd;
10
+ a = removeFractionalPart((14 - mm) / 12);
11
+ y = yy + 4800 - a;
12
+ m = mm + 12 * a - 3;
13
+ jd =
14
+ dd +
15
+ removeFractionalPart((153 * m + 2) / 5) +
16
+ 365 * y +
17
+ removeFractionalPart(y / 4) -
18
+ removeFractionalPart(y / 100) +
19
+ removeFractionalPart(y / 400) -
20
+ 32045;
21
+ if (jd < 2299161) {
22
+ jd =
23
+ dd +
24
+ removeFractionalPart((153 * m + 2) / 5) +
25
+ 365 * y +
26
+ removeFractionalPart(y / 4) -
27
+ 32083;
28
+ }
29
+ return jd;
30
+ };
31
+
32
+ /* Compute the time of the k-th new moon after the new moon of 1/1/1900 13:52 UCT
33
+ * (measured as the number of days since 1/1/4713 BC noon UCT, e.g., 2451545.125 is 1/1/2000 15:00 UTC).
34
+ * Returns a floating number, e.g., 2415079.9758617813 for k=2 or 2414961.935157746 for k=-2
35
+ * Algorithm from: "Astronomical Algorithms" by Jean Meeus, 1998
36
+ */
37
+ const NewMoon = (k: number) => {
38
+ let T, T2, T3, dr, Jd1, M, Mpr, F, C1, deltat, JdNew;
39
+ T = k / 1236.85; // Time in Julian centuries from 1900 January 0.5
40
+ T2 = T * T;
41
+ T3 = T2 * T;
42
+ dr = Math.PI / 180;
43
+ Jd1 = 2415020.75933 + 29.53058868 * k + 0.0001178 * T2 - 0.000000155 * T3;
44
+ Jd1 = Jd1 + 0.00033 * Math.sin((166.56 + 132.87 * T - 0.009173 * T2) * dr); // Mean new moon
45
+ M = 359.2242 + 29.10535608 * k - 0.0000333 * T2 - 0.00000347 * T3; // Sun's mean anomaly
46
+ Mpr = 306.0253 + 385.81691806 * k + 0.0107306 * T2 + 0.00001236 * T3; // Moon's mean anomaly
47
+ F = 21.2964 + 390.67050646 * k - 0.0016528 * T2 - 0.00000239 * T3; // Moon's argument of latitude
48
+ C1 =
49
+ (0.1734 - 0.000393 * T) * Math.sin(M * dr) + 0.0021 * Math.sin(2 * dr * M);
50
+ C1 = C1 - 0.4068 * Math.sin(Mpr * dr) + 0.0161 * Math.sin(dr * 2 * Mpr);
51
+ C1 = C1 - 0.0004 * Math.sin(dr * 3 * Mpr);
52
+ C1 = C1 + 0.0104 * Math.sin(dr * 2 * F) - 0.0051 * Math.sin(dr * (M + Mpr));
53
+ C1 =
54
+ C1 -
55
+ 0.0074 * Math.sin(dr * (M - Mpr)) +
56
+ 0.0004 * Math.sin(dr * (2 * F + M));
57
+ C1 =
58
+ C1 -
59
+ 0.0004 * Math.sin(dr * (2 * F - M)) -
60
+ 0.0006 * Math.sin(dr * (2 * F + Mpr));
61
+ C1 =
62
+ C1 +
63
+ 0.001 * Math.sin(dr * (2 * F - Mpr)) +
64
+ 0.0005 * Math.sin(dr * (2 * Mpr + M));
65
+ if (T < -11) {
66
+ deltat =
67
+ 0.001 +
68
+ 0.000839 * T +
69
+ 0.0002261 * T2 -
70
+ 0.00000845 * T3 -
71
+ 0.000000081 * T * T3;
72
+ } else {
73
+ deltat = -0.000278 + 0.000265 * T + 0.000262 * T2;
74
+ }
75
+ JdNew = Jd1 + C1 - deltat;
76
+ return JdNew;
77
+ };
78
+
79
+ /* Compute the longitude of the sun at any time.
80
+ * Parameter: floating number jdn, the number of days since 1/1/4713 BC noon
81
+ * Algorithm from: "Astronomical Algorithms" by Jean Meeus, 1998
82
+ */
83
+ const SunLongitude = (jdn: number) => {
84
+ let T, T2, dr, M, L0, DL, L;
85
+ T = (jdn - 2451545.0) / 36525; // Time in Julian centuries from 2000-01-01 12:00:00 GMT
86
+ T2 = T * T;
87
+ dr = Math.PI / 180; // degree to radian
88
+ M = 357.5291 + 35999.0503 * T - 0.0001559 * T2 - 0.00000048 * T * T2; // mean anomaly, degree
89
+ L0 = 280.46645 + 36000.76983 * T + 0.0003032 * T2; // mean longitude, degree
90
+ DL = (1.9146 - 0.004817 * T - 0.000014 * T2) * Math.sin(dr * M);
91
+ DL =
92
+ DL +
93
+ (0.019993 - 0.000101 * T) * Math.sin(dr * 2 * M) +
94
+ 0.00029 * Math.sin(dr * 3 * M);
95
+ L = L0 + DL; // true longitude, degree
96
+ L = L * dr;
97
+ L = L - Math.PI * 2 * Math.sin(L / (Math.PI * 2)); // Normalize to (0, 2*PI)
98
+ return L;
99
+ };
100
+
101
+ /* Compute sun position at midnight of the day with the given Julian day number.
102
+ * The time zone if the time difference between local time and UTC: 7.0 for UTC+7:00.
103
+ * The returns a number between 0 and 11.
104
+ * From the day after March equinox and the 1st major term after March equinox, 0 is returned.
105
+ * After that, return 1, 2, 3 ...
106
+ */
107
+ const getSunLongitude = (dayNumber: number, timeZone: number) => {
108
+ return removeFractionalPart(
109
+ (SunLongitude(dayNumber - 0.5 - timeZone / 24) / Math.PI) * 6
110
+ );
111
+ };
112
+
113
+ /* Compute the day of the k-th new moon in the given time zone.
114
+ * The time zone if the time difference between local time and UTC: 7.0 for UTC+7:00
115
+ */
116
+ const getNewMoonDay = (k: number, timeZone: number) => {
117
+ return removeFractionalPart(NewMoon(k) + 0.5 + timeZone / 24);
118
+ };
119
+
120
+ /* Find the day that starts the luner month 11 of the given year for the given time zone */
121
+ const getLunarMonth11 = (yy: number, timeZone: number) => {
122
+ let k, off, nm, sunLong;
123
+ //off = jdFromDate(31, 12, yy) - 2415021.076998695;
124
+ off = jdFromDate(31, 12, yy) - 2415021;
125
+ k = removeFractionalPart(off / 29.530588853);
126
+ nm = getNewMoonDay(k, timeZone);
127
+ sunLong = getSunLongitude(nm, timeZone); // sun longitude at local midnight
128
+ if (sunLong >= 9) {
129
+ nm = getNewMoonDay(k - 1, timeZone);
130
+ }
131
+ return nm;
132
+ };
133
+
134
+ /* Find the index of the leap month after the month starting on the day a11. */
135
+ const getLeapMonthOffset = (a11: number, timeZone: number) => {
136
+ let k, last, arc, i;
137
+ k = removeFractionalPart((a11 - 2415021.076998695) / 29.530588853 + 0.5);
138
+ last = 0;
139
+ i = 1; // We start with the month following lunar month 11
140
+ arc = getSunLongitude(getNewMoonDay(k + i, timeZone), timeZone);
141
+ do {
142
+ last = arc;
143
+ i++;
144
+ arc = getSunLongitude(getNewMoonDay(k + i, timeZone), timeZone);
145
+ } while (arc !== last && i < 14);
146
+ return i - 1;
147
+ };
148
+
149
+ /* Comvert solar date dd/mm/yyyy to the corresponding lunar date */
150
+ export const convertSolar2Lunar = (
151
+ dd: number,
152
+ mm: number,
153
+ yy: number,
154
+ timeZone: number
155
+ ) => {
156
+ let k,
157
+ dayNumber,
158
+ monthStart,
159
+ a11,
160
+ b11,
161
+ lunarDay,
162
+ lunarMonth,
163
+ lunarYear,
164
+ lunarLeap;
165
+ dayNumber = jdFromDate(dd, mm, yy);
166
+ k = removeFractionalPart((dayNumber - 2415021.076998695) / 29.530588853);
167
+ monthStart = getNewMoonDay(k + 1, timeZone);
168
+ if (monthStart > dayNumber) {
169
+ monthStart = getNewMoonDay(k, timeZone);
170
+ }
171
+ //alert(dayNumber+" -> "+monthStart);
172
+ a11 = getLunarMonth11(yy, timeZone);
173
+ b11 = a11;
174
+ if (a11 >= monthStart) {
175
+ lunarYear = yy;
176
+ a11 = getLunarMonth11(yy - 1, timeZone);
177
+ } else {
178
+ lunarYear = yy + 1;
179
+ b11 = getLunarMonth11(yy + 1, timeZone);
180
+ }
181
+ lunarDay = dayNumber - monthStart + 1;
182
+ let diff = removeFractionalPart((monthStart - a11) / 29);
183
+ lunarLeap = 0;
184
+ lunarMonth = diff + 10;
185
+ if (b11 - a11 > 365) {
186
+ let leapMonthDiff = getLeapMonthOffset(a11, timeZone);
187
+ if (diff >= leapMonthDiff) {
188
+ lunarMonth = diff + 10;
189
+ if (diff === leapMonthDiff) {
190
+ lunarLeap = 1;
191
+ }
192
+ }
193
+ }
194
+ if (lunarMonth > 12) {
195
+ lunarMonth = lunarMonth - 12;
196
+ }
197
+ if (lunarMonth >= 11 && diff < 4) {
198
+ lunarYear -= 1;
199
+ }
200
+ return {
201
+ lunarDay,
202
+ lunarMonth: lunarMonth,
203
+ lunarYear,
204
+ isleap: lunarLeap,
205
+ };
206
+ };
@@ -0,0 +1,118 @@
1
+ import React, {useContext, useMemo} from 'react';
2
+ import {View} from 'react-native';
3
+ import moment, {Moment} from 'moment';
4
+ import Day from './Day';
5
+ import {useScaleSize, Spacing} from '@momo-kits/foundation';
6
+ import {MonthProps} from './types';
7
+ import {ContainerContext} from './index';
8
+
9
+ const Month: React.FC<MonthProps> = ({
10
+ dateList,
11
+ holidays,
12
+ priceListDate,
13
+ minDate,
14
+ maxDate,
15
+ startDate,
16
+ endDate,
17
+ isShowLunar,
18
+ isDoubleDateMode,
19
+ disabledDays,
20
+ month,
21
+ ...props
22
+ }) => {
23
+ const rows = useMemo(() => {
24
+ const rowCount = dateList.length / 7;
25
+ const rowArray = new Array(rowCount).fill('');
26
+ return rowArray.map((_, i) => dateList.slice(i * 7, i * 7 + 7));
27
+ }, [dateList]);
28
+
29
+ const findHoliday = (date?: Moment) => {
30
+ if (!date || !holidays || holidays.length === 0) {
31
+ return null;
32
+ }
33
+ const day = date.date();
34
+ const monthNum = date.month() + 1;
35
+ return (
36
+ holidays.find(item => item.day === day && item.month === monthNum) || null
37
+ );
38
+ };
39
+
40
+ const checkHoliday = (date?: Moment) => {
41
+ const holiday = findHoliday(date);
42
+ return {
43
+ isSolarHoliday: !!(holiday && !holiday.lunar),
44
+ isLunarHoliday: !!(holiday && holiday.lunar),
45
+ };
46
+ };
47
+
48
+ const size = useContext(ContainerContext);
49
+ const scaledHeight = useScaleSize(48);
50
+
51
+ // Precompute disabled dates set for fast lookup (format: YYYY-MM-DD)
52
+ const disabledSet = useMemo(
53
+ () => new Set((disabledDays || []).map(d => moment(d).format('YYYY-MM-DD'))),
54
+ [disabledDays]
55
+ );
56
+
57
+ if (!month) {
58
+ return <View />;
59
+ }
60
+
61
+ return (
62
+ <View style={{width: size.width}}>
63
+ <View
64
+ style={{
65
+ paddingHorizontal: Spacing.S,
66
+ width: '100%',
67
+ alignItems: 'center',
68
+ }}>
69
+ {rows.map((dayList, rowIndex) => (
70
+ <View
71
+ key={`row${rowIndex}`}
72
+ style={{
73
+ flexDirection: 'row',
74
+ alignItems: 'center',
75
+ marginBottom: Spacing.XS,
76
+ height: scaledHeight,
77
+ }}>
78
+ {dayList.map((item, i) => {
79
+ const {isEmpty, date: dateMoment, lunarDate} = item;
80
+ // compute key for price/disabled only if not empty
81
+ const keyDay = !isEmpty && dateMoment
82
+ ? dateMoment.format('YYYY-MM-DD')
83
+ : '';
84
+ const priceInfo = keyDay ? priceListDate?.[keyDay] : undefined;
85
+ const isDisabled = keyDay
86
+ ? disabledSet.has(keyDay)
87
+ : false;
88
+
89
+ return (
90
+ <Day
91
+ {...props}
92
+ minDate={minDate}
93
+ maxDate={maxDate}
94
+ isShowLunar={isShowLunar}
95
+ isDoubleDateMode={isDoubleDateMode}
96
+ startDate={startDate}
97
+ endDate={endDate}
98
+ {...checkHoliday(dateMoment)}
99
+ date={dateMoment}
100
+ havePriceList={!!priceListDate}
101
+ lunarDate={lunarDate}
102
+ isEmpty={isEmpty}
103
+ key={`day${i}`}
104
+ index={i}
105
+ price={priceInfo?.priceAsString}
106
+ isBestPrice={priceInfo?.isBestPrice}
107
+ isDisabled={isDisabled}
108
+ />
109
+ );
110
+ })}
111
+ </View>
112
+ ))}
113
+ </View>
114
+ </View>
115
+ );
116
+ };
117
+
118
+ export default React.memo(Month);