@momo-kits/native-kits 0.156.6-tooltip.3 → 0.156.6-tooltip.4-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 (119) 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 +113 -0
  6. package/compose/src/commonMain/composeResources/files/anim_processing_transaction.json +1 -0
  7. package/compose/src/commonMain/composeResources/files/dot_loading.json +558 -0
  8. package/compose/src/commonMain/composeResources/files/face_loading.json +1 -0
  9. package/compose/src/commonMain/composeResources/files/lottie_circle_loader.json +1 -0
  10. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  11. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  12. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  13. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  14. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  15. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  16. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  17. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  18. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  19. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  20. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  21. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  22. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  23. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +95 -0
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +715 -0
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +83 -0
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +348 -0
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -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 +447 -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 +234 -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/PaginationDot.kt +56 -0
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +576 -0
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +189 -0
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +59 -0
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +98 -0
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +163 -0
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -0
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +226 -0
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +277 -0
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +31 -0
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +42 -0
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
  111. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +152 -0
  112. package/gradle/libs.versions.toml +57 -0
  113. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  114. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  115. package/gradle.properties +26 -0
  116. package/gradlew +252 -0
  117. package/gradlew.bat +94 -0
  118. package/package.json +1 -1
  119. package/settings.gradle.kts +52 -0
@@ -0,0 +1,11 @@
1
+ plugins {
2
+ // this is necessary to avoid the plugins to be loaded multiple times
3
+ // in each subproject's classloader
4
+ alias(libs.plugins.android.application) apply false
5
+ alias(libs.plugins.android.library) apply false
6
+ alias(libs.plugins.compose) apply false
7
+ alias(libs.plugins.kotlin.compose.compiler) apply false
8
+ alias(libs.plugins.jetbrains.kotlin.multiplatform) apply false
9
+ alias(libs.plugins.jetbrains.kotlin.serialization) apply false
10
+ alias(libs.plugins.vanniktech.mavenPublish) apply false
11
+ }
@@ -0,0 +1,180 @@
1
+ // import com.vanniktech.maven.publish.JavadocJar
2
+ // import com.vanniktech.maven.publish.KotlinMultiplatform
3
+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
4
+
5
+ plugins {
6
+ alias(libs.plugins.jetbrains.kotlin.multiplatform)
7
+ alias(libs.plugins.android.library)
8
+ alias(libs.plugins.compose)
9
+ alias(libs.plugins.kotlin.compose.compiler)
10
+ // alias(libs.plugins.vanniktech.mavenPublish)
11
+ id(libs.plugins.jetbrains.kotlin.cocoapods.get().pluginId)
12
+ kotlin("plugin.serialization")
13
+ }
14
+
15
+ val gitlabName: String? = findProperty("name") as String? ?: ""
16
+ val gitlabRepo: String? = findProperty("repo") as String? ?: ""
17
+ val gitlabUrl: String? = findProperty("url") as String? ?: ""
18
+ val gitlabGroup: String? = findProperty("group") as String? ?: ""
19
+ val gitlabArtifactId: String = findProperty("artifact.id") as String? ?: ""
20
+ val gitlabVersion: String? = findProperty("version") as String? ?: ""
21
+ val gitlabUser: String? = findProperty("gitlab.user") as String? ?: ""
22
+ val gitlabKey: String? = findProperty("gitlab.password") as String? ?: ""
23
+
24
+ kotlin {
25
+ androidTarget {
26
+ compilerOptions {
27
+ jvmTarget.set(JvmTarget.JVM_17)
28
+ }
29
+ publishLibraryVariants("release")
30
+ }
31
+
32
+ val fwName = gitlabArtifactId
33
+ val iosTargets = listOf(iosX64(), iosArm64(), iosSimulatorArm64())
34
+ iosTargets.forEach {
35
+ it.binaries.framework {
36
+ baseName = fwName
37
+ binaryOption("bundleId", "$gitlabGroup.$fwName")
38
+ isStatic = true
39
+ }
40
+ }
41
+
42
+ cocoapods {
43
+ version = "0.156.6-tooltip.4-debug"
44
+ summary = "IOS Shared module"
45
+ homepage = "https://momo.vn"
46
+ ios.deploymentTarget = "15.0"
47
+
48
+ framework {
49
+ baseName = fwName
50
+ isStatic = true
51
+ }
52
+
53
+ pod("lottie-ios") {
54
+ moduleName = "Lottie"
55
+ version = "4.4.3"
56
+ extraOpts += listOf("-compiler-option", "-fmodules")
57
+ }
58
+ }
59
+
60
+ sourceSets {
61
+ commonMain.dependencies {
62
+ implementation(compose.runtime)
63
+ implementation(compose.material)
64
+ implementation(compose.material3)
65
+ implementation(compose.components.resources)
66
+ implementation(libs.ktor.client.core)
67
+ implementation(libs.jetbrains.coroutines.core)
68
+ implementation(libs.navigation.multiplatform)
69
+ implementation(libs.coil.multiplatform.compose)
70
+ implementation(libs.coil.multiplatform.core)
71
+ implementation(libs.coil.multiplatform.network.ktor)
72
+ implementation(libs.jetbrains.serialization.json)
73
+ implementation(libs.kotlinx.datetime)
74
+ api(libs.native.max.api)
75
+ }
76
+ androidMain.dependencies {
77
+ implementation(libs.ktor.client.okhttp)
78
+ implementation(libs.airbnb.lottie)
79
+ }
80
+ iosMain.dependencies {
81
+ implementation(libs.ktor.client.darwin)
82
+ }
83
+ }
84
+ }
85
+
86
+ android {
87
+ namespace = "vn.momo.kits.kits"
88
+ compileSdk = 35
89
+ compileOptions {
90
+ sourceCompatibility = JavaVersion.VERSION_17
91
+ targetCompatibility = JavaVersion.VERSION_17
92
+ }
93
+ defaultConfig {
94
+ minSdk = 24
95
+ }
96
+ }
97
+
98
+ dependencies {
99
+ }
100
+
101
+ repositories {
102
+ google {
103
+ mavenContent {
104
+ includeGroupAndSubgroups("androidx")
105
+ includeGroupAndSubgroups("com.android")
106
+ includeGroupAndSubgroups("com.google")
107
+ }
108
+ }
109
+ mavenCentral()
110
+ maven {
111
+ url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
112
+ credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
113
+ }
114
+ maven {
115
+ url = uri("http://nexus.mservice.com.vn:8081/repository/maven-public/")
116
+ isAllowInsecureProtocol = true
117
+ }
118
+ }
119
+
120
+ compose {
121
+ resources {
122
+ publicResClass = true
123
+ packageOfResClass = "vn.momo.uikits.resources"
124
+ generateResClass = always
125
+ }
126
+ }
127
+
128
+ // publishing {
129
+ // repositories {
130
+ // maven {
131
+ // name = "${gitlabRepo}Packages"
132
+ // credentials {
133
+ // username = gitlabUser
134
+ // password = gitlabKey
135
+ // }
136
+ // url = uri("$gitlabUrl")
137
+ // }
138
+ // }
139
+ // }
140
+
141
+ // mavenPublishing {
142
+ // configure(
143
+ // KotlinMultiplatform(
144
+ // javadocJar = JavadocJar.Empty(),
145
+ // sourcesJar = true,
146
+ // androidVariantsToPublish = listOf("release")
147
+ // )
148
+ // )
149
+ //
150
+ // repositories {
151
+ // maven {
152
+ // name = "${gitlabRepo}Packages"
153
+ // credentials { username = gitlabUser; password = gitlabKey }
154
+ // url = uri("$gitlabUrl")
155
+ // }
156
+ // }
157
+ //
158
+ // coordinates(gitlabGroup.toString(), gitlabArtifactId, gitlabVersion.toString())
159
+ //
160
+ // pom {
161
+ // name = "$gitlabName Klib"
162
+ // description = "$gitlabName"
163
+ // url = "https://gitlab.mservice.com.vn"
164
+ // licenses {
165
+ // license {
166
+ // name = "The Apache License, Version 2.0"
167
+ // url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
168
+ // distribution = "https://www.apache.org/licenses/LICENSE-2.0.txt"
169
+ // }
170
+ // }
171
+ // developers {
172
+ // developer {
173
+ // id = "kotlin-hands-on"
174
+ // name = "Kotlin Developer Advocate"
175
+ // url = "https://github.com/kotlin-hands-on/"
176
+ // }
177
+ // }
178
+ // }
179
+ // }
180
+
@@ -0,0 +1,180 @@
1
+ import com.vanniktech.maven.publish.JavadocJar
2
+ import com.vanniktech.maven.publish.KotlinMultiplatform
3
+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
4
+
5
+ plugins {
6
+ alias(libs.plugins.jetbrains.kotlin.multiplatform)
7
+ alias(libs.plugins.android.library)
8
+ alias(libs.plugins.compose)
9
+ alias(libs.plugins.kotlin.compose.compiler)
10
+ alias(libs.plugins.vanniktech.mavenPublish)
11
+ id(libs.plugins.jetbrains.kotlin.cocoapods.get().pluginId)
12
+ kotlin("plugin.serialization")
13
+ }
14
+
15
+ val gitlabName: String? = findProperty("name") as String? ?: ""
16
+ val gitlabRepo: String? = findProperty("repo") as String? ?: ""
17
+ val gitlabUrl: String? = findProperty("url") as String? ?: ""
18
+ val gitlabGroup: String? = findProperty("group") as String? ?: ""
19
+ val gitlabArtifactId: String = findProperty("artifact.id") as String? ?: ""
20
+ val gitlabVersion: String? = findProperty("version") as String? ?: ""
21
+ val gitlabUser: String? = findProperty("gitlab.user") as String? ?: ""
22
+ val gitlabKey: String? = findProperty("gitlab.password") as String? ?: ""
23
+
24
+ kotlin {
25
+ androidTarget {
26
+ compilerOptions {
27
+ jvmTarget.set(JvmTarget.JVM_17)
28
+ }
29
+ publishLibraryVariants("release")
30
+ }
31
+
32
+ val fwName = gitlabArtifactId
33
+ val iosTargets = listOf(iosX64(), iosArm64(), iosSimulatorArm64())
34
+ iosTargets.forEach {
35
+ it.binaries.framework {
36
+ baseName = fwName
37
+ binaryOption("bundleId", "$gitlabGroup.$fwName")
38
+ isStatic = true
39
+ }
40
+ }
41
+
42
+ cocoapods {
43
+ version = gitlabVersion
44
+ summary = "IOS Shared module"
45
+ homepage = "https://momo.vn"
46
+ ios.deploymentTarget = "15.0"
47
+
48
+ framework {
49
+ baseName = fwName
50
+ isStatic = true
51
+ }
52
+
53
+ pod("lottie-ios") {
54
+ moduleName = "Lottie"
55
+ version = "4.4.3"
56
+ extraOpts += listOf("-compiler-option", "-fmodules")
57
+ }
58
+ }
59
+
60
+ sourceSets {
61
+ commonMain.dependencies {
62
+ implementation(compose.runtime)
63
+ implementation(compose.material)
64
+ implementation(compose.material3)
65
+ implementation(compose.components.resources)
66
+ implementation(libs.ktor.client.core)
67
+ implementation(libs.jetbrains.coroutines.core)
68
+ implementation(libs.navigation.multiplatform)
69
+ implementation(libs.coil.multiplatform.compose)
70
+ implementation(libs.coil.multiplatform.core)
71
+ implementation(libs.coil.multiplatform.network.ktor)
72
+ implementation(libs.jetbrains.serialization.json)
73
+ implementation(libs.kotlinx.datetime)
74
+ api(libs.native.max.api)
75
+ }
76
+ androidMain.dependencies {
77
+ implementation(libs.ktor.client.okhttp)
78
+ implementation(libs.airbnb.lottie)
79
+ }
80
+ iosMain.dependencies {
81
+ implementation(libs.ktor.client.darwin)
82
+ }
83
+ }
84
+ }
85
+
86
+ android {
87
+ namespace = "$gitlabGroup.$gitlabArtifactId"
88
+ compileSdk = libs.versions.android.compileSdk.get().toInt()
89
+ compileOptions {
90
+ sourceCompatibility = JavaVersion.VERSION_17
91
+ targetCompatibility = JavaVersion.VERSION_17
92
+ }
93
+ defaultConfig {
94
+ minSdk = libs.versions.android.minSdk.get().toInt()
95
+ }
96
+ }
97
+
98
+ dependencies {
99
+ }
100
+
101
+ repositories {
102
+ google {
103
+ mavenContent {
104
+ includeGroupAndSubgroups("androidx")
105
+ includeGroupAndSubgroups("com.android")
106
+ includeGroupAndSubgroups("com.google")
107
+ }
108
+ }
109
+ mavenCentral()
110
+ maven {
111
+ url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
112
+ credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
113
+ }
114
+ maven {
115
+ url = uri("http://nexus.mservice.com.vn:8081/repository/maven-public/")
116
+ isAllowInsecureProtocol = true
117
+ }
118
+ }
119
+
120
+ compose {
121
+ resources {
122
+ publicResClass = true
123
+ packageOfResClass = "vn.momo.uikits.resources"
124
+ generateResClass = always
125
+ }
126
+ }
127
+
128
+ publishing {
129
+ repositories {
130
+ maven {
131
+ name = "${gitlabRepo}Packages"
132
+ credentials {
133
+ username = gitlabUser
134
+ password = gitlabKey
135
+ }
136
+ url = uri("$gitlabUrl")
137
+ }
138
+ }
139
+ }
140
+
141
+ mavenPublishing {
142
+ configure(
143
+ KotlinMultiplatform(
144
+ javadocJar = JavadocJar.Empty(),
145
+ sourcesJar = true,
146
+ androidVariantsToPublish = listOf("release")
147
+ )
148
+ )
149
+
150
+ repositories {
151
+ maven {
152
+ name = "${gitlabRepo}Packages"
153
+ credentials { username = gitlabUser; password = gitlabKey }
154
+ url = uri("$gitlabUrl")
155
+ }
156
+ }
157
+
158
+ coordinates(gitlabGroup.toString(), gitlabArtifactId, gitlabVersion.toString())
159
+
160
+ pom {
161
+ name = "$gitlabName Klib"
162
+ description = "$gitlabName"
163
+ url = "https://gitlab.mservice.com.vn"
164
+ licenses {
165
+ license {
166
+ name = "The Apache License, Version 2.0"
167
+ url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
168
+ distribution = "https://www.apache.org/licenses/LICENSE-2.0.txt"
169
+ }
170
+ }
171
+ developers {
172
+ developer {
173
+ id = "kotlin-hands-on"
174
+ name = "Kotlin Developer Advocate"
175
+ url = "https://github.com/kotlin-hands-on/"
176
+ }
177
+ }
178
+ }
179
+ }
180
+
@@ -0,0 +1,54 @@
1
+ Pod::Spec.new do |spec|
2
+ spec.name = 'compose'
3
+ spec.version = '0.156.1-beta.2'
4
+ spec.homepage = 'https://momo.vn'
5
+ spec.source = { :http=> ''}
6
+ spec.authors = ''
7
+ spec.license = ''
8
+ spec.summary = 'IOS Shared module'
9
+ spec.vendored_frameworks = 'build/cocoapods/framework/kits.framework'
10
+ spec.libraries = 'c++'
11
+ spec.ios.deployment_target = '15.0'
12
+ spec.dependency 'lottie-ios', '4.4.3'
13
+
14
+ if !Dir.exist?('build/cocoapods/framework/kits.framework') || Dir.empty?('build/cocoapods/framework/kits.framework')
15
+ raise "
16
+
17
+ Kotlin framework 'kits' doesn't exist yet, so a proper Xcode project can't be generated.
18
+ 'pod install' should be executed after running ':generateDummyFramework' Gradle task:
19
+
20
+ ./gradlew :compose:generateDummyFramework
21
+
22
+ Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)"
23
+ end
24
+
25
+ spec.xcconfig = {
26
+ 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO',
27
+ }
28
+
29
+ spec.pod_target_xcconfig = {
30
+ 'KOTLIN_PROJECT_PATH' => ':compose',
31
+ 'PRODUCT_MODULE_NAME' => 'kits',
32
+ }
33
+
34
+ spec.script_phases = [
35
+ {
36
+ :name => 'Build compose',
37
+ :execution_position => :before_compile,
38
+ :shell_path => '/bin/sh',
39
+ :script => <<-SCRIPT
40
+ if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
41
+ echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
42
+ exit 0
43
+ fi
44
+ set -ev
45
+ REPO_ROOT="$PODS_TARGET_SRCROOT"
46
+ "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
47
+ -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
48
+ -Pkotlin.native.cocoapods.archs="$ARCHS" \
49
+ -Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
50
+ SCRIPT
51
+ }
52
+ ]
53
+ spec.resources = ['build/compose/cocoapods/compose-resources']
54
+ end
@@ -0,0 +1,113 @@
1
+ package vn.momo.kits.platform
2
+
3
+ import android.annotation.SuppressLint
4
+ import android.content.res.Resources
5
+ import android.graphics.BlurMaskFilter
6
+ import android.graphics.PorterDuff
7
+ import android.graphics.PorterDuffColorFilter
8
+ import android.os.Build
9
+ import androidx.compose.foundation.layout.Box
10
+ import androidx.compose.runtime.Composable
11
+ import androidx.compose.runtime.getValue
12
+ import androidx.compose.ui.Modifier
13
+ import androidx.compose.ui.draw.drawBehind
14
+ import androidx.compose.ui.graphics.Color
15
+ import androidx.compose.ui.graphics.NativePaint
16
+ import androidx.compose.ui.graphics.Paint
17
+ import androidx.compose.ui.graphics.drawscope.drawIntoCanvas
18
+ import androidx.compose.ui.graphics.toArgb
19
+ import androidx.compose.ui.platform.LocalConfiguration
20
+ import androidx.compose.ui.unit.Dp
21
+ import androidx.compose.ui.unit.dp
22
+ import com.airbnb.lottie.LottieProperty
23
+ import com.airbnb.lottie.compose.LottieAnimation
24
+ import com.airbnb.lottie.compose.LottieCompositionSpec
25
+ import com.airbnb.lottie.compose.LottieConstants
26
+ import com.airbnb.lottie.compose.rememberLottieComposition
27
+ import com.airbnb.lottie.compose.rememberLottieDynamicProperties
28
+ import com.airbnb.lottie.compose.rememberLottieDynamicProperty
29
+ import vn.momo.kits.const.AppNavigationBar
30
+ import vn.momo.kits.const.AppStatusBar
31
+ import vn.momo.kits.utils.readJson
32
+ import androidx.activity.compose.BackHandler as AndroidBackHandler
33
+
34
+ actual fun getPlatformName(): String = "Android"
35
+
36
+ @Composable
37
+ actual fun getScreenDimensions(): ScreenDimension {
38
+ val config = LocalConfiguration.current
39
+ return ScreenDimension(
40
+ config.screenWidthDp, config.screenHeightDp
41
+ )
42
+ }
43
+
44
+ actual fun NativePaint.setMaskFilter(blurRadius: Float) {
45
+ this.maskFilter = BlurMaskFilter(blurRadius, BlurMaskFilter.Blur.NORMAL)
46
+ }
47
+
48
+ @SuppressLint("InternalInsetResource")
49
+ @Composable
50
+ actual fun getStatusBarHeight(): Dp {
51
+ val resourceId = Resources.getSystem().getIdentifier(
52
+ "status_bar_height",
53
+ "dimen",
54
+ "android"
55
+ )
56
+ return if(resourceId > 0) Resources.getSystem().getDimensionPixelSize(resourceId).dp else 0.dp
57
+ }
58
+
59
+ @Composable
60
+ actual fun BackHandler(enabled: Boolean, onBack: () -> Unit) {
61
+ AndroidBackHandler(enabled = enabled, onBack = onBack)
62
+ }
63
+
64
+ @Composable
65
+ actual fun getScreenHeight(): Dp {
66
+ return getScreenDimensions().height.dp + if (getAndroidBuildVersion() >= 35) 0.dp else AppStatusBar.current + AppNavigationBar.current
67
+ }
68
+
69
+ actual fun getAndroidBuildVersion(): Int = Build.VERSION.SDK_INT
70
+
71
+ @Composable
72
+ actual fun LottieAnimation(
73
+ path: String,
74
+ tintColor: Color?,
75
+ bgColor: Color?,
76
+ modifier: Modifier
77
+ ) {
78
+ val json = readJson(path)
79
+
80
+ if (json.isEmpty()) {
81
+ Box(modifier)
82
+ return
83
+ }
84
+
85
+ val composition by rememberLottieComposition(
86
+ LottieCompositionSpec.JsonString(json)
87
+ )
88
+
89
+ val colorFilter = PorterDuffColorFilter(
90
+ tintColor?.toArgb() ?: Color.White.toArgb(),
91
+ PorterDuff.Mode.SRC_ATOP
92
+ )
93
+
94
+ val dynamicProperties = rememberLottieDynamicProperties(
95
+ rememberLottieDynamicProperty(
96
+ property = LottieProperty.COLOR_FILTER,
97
+ value = colorFilter,
98
+ keyPath = arrayOf("**")
99
+ )
100
+ )
101
+
102
+ LottieAnimation(
103
+ composition = composition,
104
+ iterations = LottieConstants.IterateForever,
105
+ dynamicProperties = if (tintColor != null) dynamicProperties else null,
106
+ modifier = modifier
107
+ )
108
+ }
109
+
110
+ actual fun NativePaint.setColor(color: Color){
111
+ this.color = color.toArgb()
112
+ }
113
+
@@ -0,0 +1 @@
1
+ {"v":"5.7.4","fr":29.9700012207031,"ip":0,"op":151.000006150356,"w":60,"h":60,"nm":"load 2","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[29.971,29.945,0],"ix":2,"l":2},"a":{"a":0,"k":[23.523,24.577,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.813,-0.707],[0,0],[0,0],[-2.503,-1.99],[0,0],[0,0],[-1.325,-2.235],[0,0],[0,0],[-0.397,-2.6],[0.873,-3.034],[2.882,-2.842],[3.588,-1.032],[0,0],[0.068,-0.125],[0.346,0.145],[0,0],[0,0],[0.063,0.079],[-0.275,0.255],[0,0],[0,0],[-0.141,0.012],[-0.065,-0.367],[0,0],[0,0],[-2.001,1.972],[-0.363,0.431],[0,0],[-0.658,2.331],[0.385,2.499],[0.138,0.544],[0.667,1.251],[0,0],[0,0],[0,0],[1.141,1.125],[0.44,0.359],[0,0],[2.328,0.673],[0,0],[0,0],[2.476,-0.367],[0,0],[0,0],[0.499,-0.123],[1.262,-0.652],[0,0],[0,0],[1.145,-1.128],[0.247,-0.274],[0,0],[0.697,-2.494],[-0.177,-2.094],[-0.241,-0.95],[-3.899,-2.377],[0,0],[0,0],[0.641,-1.052],[1.099,0.526],[0,0],[0,0],[0,0],[1.508,5.959],[-1.018,3.636],[-2.035,2.481],[0,0],[0,0],[-2.168,1.285],[0,0],[0,0],[0,0],[-2.534,0.409],[0,0],[-0.079,0.012],[0,0]],"o":[[0,0],[0,0],[2.958,0.803],[0,0],[0,0],[1.957,1.634],[0,0],[0,0],[1.315,2.362],[0.507,3.275],[-1.032,3.612],[-2.83,2.789],[0,0],[0.013,0.142],[-0.182,0.334],[0,0],[0,0],[-0.09,-0.048],[-0.237,-0.298],[0,0],[0,0],[0.112,-0.087],[0.385,-0.034],[0,0],[0,0],[2.504,-0.863],[0.409,-0.403],[0,0],[1.519,-1.884],[0.686,-2.449],[-0.085,-0.544],[-0.362,-1.432],[0,0],[0,0],[0,0],[-0.776,-1.314],[-0.413,-0.406],[0,0],[-1.876,-1.499],[0,0],[0,0],[-2.429,-0.641],[0,0],[0,0],[-0.499,0.08],[-1.445,0.355],[0,0],[0,0],[-1.337,0.765],[-0.267,0.263],[0,0],[-1.676,1.973],[-0.566,2.039],[0.079,0.946],[1.196,4.731],[0,0],[0,0],[0.986,0.71],[-0.641,1.052],[0,0],[0,0],[0,0],[-4.906,-3.001],[-0.991,-3.921],[0.816,-2.935],[0,0],[0,0],[1.597,-1.861],[0,0],[0,0],[0,0],[2.308,-1.248],[0,0],[0.078,-0.012],[0,0],[3.01,-0.415]],"v":[[5.687,-23.432],[6.074,-23.331],[6.158,-23.308],[14.447,-19.119],[14.781,-18.849],[14.911,-18.739],[19.883,-12.907],[20.09,-12.548],[20.197,-12.358],[22.766,-4.852],[22.161,4.704],[16.29,14.567],[6.488,20.297],[6.77,23.448],[6.684,23.856],[5.749,24.182],[5.688,24.152],[-3.189,19.464],[-3.421,19.272],[-3.348,18.295],[-3.296,18.252],[4.618,12.134],[5.007,11.982],[5.798,12.579],[5.805,12.642],[6.059,15.493],[12.915,11.24],[14.072,9.988],[14.286,9.728],[17.592,3.339],[18.044,-4.172],[17.71,-5.805],[16.154,-9.836],[15.96,-10.189],[15.842,-10.395],[15.79,-10.483],[12.915,-14.16],[11.635,-15.307],[11.514,-15.405],[5.143,-18.702],[4.79,-18.8],[4.753,-18.809],[-2.691,-19.22],[-2.812,-19.202],[-2.88,-19.191],[-4.378,-18.887],[-8.447,-17.364],[-8.827,-17.161],[-9.115,-17],[-12.855,-14.16],[-13.626,-13.353],[-13.936,-12.999],[-17.546,-6.216],[-18.13,0.037],[-17.652,2.885],[-9.559,13.814],[-9.355,13.936],[-9.361,13.943],[-8.725,17.053],[-11.809,17.959],[-11.814,17.968],[-11.999,17.858],[-12.096,17.797],[-22.283,4.024],[-22.146,-7.47],[-17.87,-15.69],[-17.611,-15.999],[-17.51,-16.119],[-11.833,-20.882],[-11.521,-21.064],[-11.195,-21.247],[-11.023,-21.341],[-3.704,-23.826],[-3.406,-23.871],[-3.171,-23.906],[-3.12,-23.912]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.09411764705882353,0.5647058823529412,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.523,24.577],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":9890.00040282796,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,30.25,0],"ix":2,"l":2},"a":{"a":0,"k":[30.25,30.25,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.05,-1.255],[0,0],[0,0],[0.159,-0.16],[0,0],[0.924,0.913],[-0.837,0.927],[0,0],[0,0],[0,0.225],[0,0],[-1.256,0.05]],"o":[[1.268,0],[0,0],[0,0],[0,0.225],[0,0],[-0.913,0.924],[-0.898,-0.888],[0,0],[0,0],[0.159,-0.161],[0,0],[0,-1.268],[0,0]],"v":[[2.856,-11.391],[5.207,-9.133],[5.209,-9.038],[5.209,3.872],[4.961,4.473],[-0.952,10.458],[-4.278,10.478],[-4.372,7.23],[-4.298,7.152],[0.257,2.542],[0.504,1.941],[0.504,-9.038],[2.762,-11.389]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.09411764705882353,0.5647058823529412,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.621,28.759],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.217,0],[0,-10.217],[10.217,0],[0,10.217]],"o":[[10.217,0],[0,10.217],[-10.217,0],[0,-10.217]],"v":[[0,-18.5],[18.5,0],[0,18.5],[-18.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996285651712,0.956456502279,0.908333512848,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.25,29.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-16.568,0],[0,-16.568],[16.568,0],[0,16.568]],"o":[[16.568,0],[0,16.568],[-16.568,0],[0,-16.568]],"v":[[0,-30],[30,0],[0,30],[-30,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.999998922909,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.25,30.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":9890.00040282796,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"load 3","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0],"e":[360]},{"t":150.000006109625}],"ix":10},"p":{"a":0,"k":[30.25,29.5,0],"ix":2,"l":2},"a":{"a":0,"k":[30.25,28.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":60,"h":60,"ip":0,"op":9890.00040282796,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"load","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,30,0],"ix":2,"l":2},"a":{"a":0,"k":[30,30,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":60,"h":60,"ip":0,"op":9890.00040282796,"st":0,"bm":0}],"markers":[]}