plugins { id 'org.jetbrains.kotlin.multiplatform' id 'org.jetbrains.kotlin.plugin.serialization' id 'dev.icerock.mobile.multiplatform-resources' id 'com.github.gmazzo.buildconfig' } group = rootProject.group version = rootProject.version repositories { mavenCentral() } kotlin { js(IR) { useCommonJs() browser { //Specify distribution bundle output directory - this is used by app-ktor-server as a // resource directory distribution { directory = project.file("build/dist-web/umapp") } commonWebpackConfig { cssSupport { it.enabled.set(true) } } testTask { useKarma { useChromeHeadless() } } } binaries.executable() } sourceSets { commonMain { dependencies { implementation libs.precompose implementation libs.precompose.viewmodel } } jsMain { dependsOn commonMain dependencies { implementation project(":core") implementation project(":lib-util") implementation project(":lib-database") api libs.moko.resources implementation enforcedPlatform("org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:$kotlinWrappersVersion") implementation libs.kotlin.wrappers.kotlin.react implementation libs.kotlin.wrappers.kotlin.react.dom implementation libs.kotlin.wrappers.kotlin.react.router.dom implementation libs.kotlin.wrappers.kotlin.remix.run.router implementation libs.kotlin.wrappers.kotlin.mui.base implementation libs.kotlin.wrappers.kotlin.mui.material implementation libs.kotlin.wrappers.kotlin.mui.lab implementation libs.kotlin.wrappers.kotlin.mui.system implementation libs.kotlin.wrappers.kotlin.mui.icons.material implementation libs.kotlin.wrappers.kotlin.muix.date.pickers implementation libs.kotlin.wrappers.kotlin.emotion implementation libs.kotlin.wrappers.kotlin.tanstack.query.core implementation libs.kotlin.wrappers.kotlin.tanstack.react.query implementation libs.kotlin.wrappers.kotlin.tanstack.virtual.core implementation libs.kotlin.wrappers.kotlin.tanstack.react.virtual implementation libs.kotlinx.datetime implementation libs.multiplatformsettings implementation libs.kotlin.wrappers.kotlin.extensions implementation npm("@js-joda/timezone", "$version_npm_joda_timezone") implementation npm("@date-io/moment","$version_npm_mement_io") implementation npm("date-fns","$version_npm_date_fns") implementation libs.door.room.annotations implementation libs.kodein.di implementation libs.door.runtime implementation libs.ktor.client.content.negotiation implementation libs.ktor.client.js implementation libs.ktor.serialization.kotlinx.json implementation npm("timezones.json","$version_npm_timezones") implementation npm("striptags","$version_npm_striptags") implementation npm("mime-matcher","$version_npm_mime_matcher") implementation npm("react-quill", "$version_npm_react_quill") implementation npm("react-easy-sort","$version_npm_react_easy_sort") implementation npm("mui-chips-input","$version_npm_react_mui_chip") implementation libs.xmlpullparsekmp implementation libs.napier implementation npm("linkifyjs", "$version_npm_linkify") implementation npm("linkify-react", "$version_npm_linkify") implementation npm("mui-tel-input", "$version_npm_mui_tel_input") implementation npm("libphonenumber-js", "$version_npm_libphonenumber_js") implementation npm("dompurify", "$version_npm_dompurify") } } jsTest { dependencies { implementation libs.kotlin.test } } } } buildConfig { packageName("com.ustadmobile") className("BuildConfigJs") buildConfigField("String", "APP_VERSION", "\"${rootProject.version}\"") buildConfigField("String", "APP_PRESET_LOCALE", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.presetlocale")}\"") buildConfigField("String", "APP_UI_LANGUAGES", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.uilanguages")}\"") buildConfigField("String", "APP_UI_GOPTS", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.gopts")}\"") buildConfigField("String", "APP_UI_SHOW_POWERED_BY", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.showpoweredbymsg")}\"") buildConfigField("String", "SYSTEM_URL", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.system.systemBaseUrl")}\"") buildConfigField("String", "PASSKEY_RP_ID", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.system.passkeyRpId")}\"") buildConfigField("String", "PRESET_LEARNING_SPACE_URL", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.system.presetLsUrl")}\"") buildConfigField("String", "NEW_PERSONAL_ACCOUNT_LEARNING_SPACE_URL", "\"${rootProject.ext.buildConfigProperties.getProperty("com.ustadmobile.system.newPersonalAccountsLsUrl")}\"") } multiplatformResources { multiplatformResourcesPackage = "com.ustadmobile.appreact" }