aboutsummaryrefslogtreecommitdiff
path: root/kvision-modules/kvision-tabulator-remote
diff options
context:
space:
mode:
Diffstat (limited to 'kvision-modules/kvision-tabulator-remote')
-rw-r--r--kvision-modules/kvision-tabulator-remote/build.gradle6
-rw-r--r--kvision-modules/kvision-tabulator-remote/build.gradle.kts42
-rw-r--r--kvision-modules/kvision-tabulator-remote/package.json.d/project.info3
-rw-r--r--kvision-modules/kvision-tabulator-remote/src/main/kotlin/pl/treksoft/kvision/tabulator/TabulatorRemote.kt5
-rw-r--r--kvision-modules/kvision-tabulator-remote/webpack.config.d/bootstrap.js3
-rw-r--r--kvision-modules/kvision-tabulator-remote/webpack.config.d/file.js9
6 files changed, 58 insertions, 10 deletions
diff --git a/kvision-modules/kvision-tabulator-remote/build.gradle b/kvision-modules/kvision-tabulator-remote/build.gradle
deleted file mode 100644
index d498e275..00000000
--- a/kvision-modules/kvision-tabulator-remote/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-apply from: "../shared.gradle"
-
-dependencies {
- compile project(":kvision-modules:kvision-tabulator")
- compile project(":kvision-modules:kvision-remote")
-}
diff --git a/kvision-modules/kvision-tabulator-remote/build.gradle.kts b/kvision-modules/kvision-tabulator-remote/build.gradle.kts
new file mode 100644
index 00000000..e6beb1c5
--- /dev/null
+++ b/kvision-modules/kvision-tabulator-remote/build.gradle.kts
@@ -0,0 +1,42 @@
+buildscript {
+ extra.set("production", (findProperty("prod") ?: findProperty("production") ?: "false") == "true")
+}
+
+plugins {
+ kotlin("js")
+ id("maven-publish")
+}
+
+repositories()
+
+kotlin {
+ kotlinJsTargets()
+}
+
+dependencies {
+ implementation(kotlin("stdlib-js"))
+ api(rootProject)
+ api(project(":kvision-modules:kvision-tabulator"))
+ api(project(":kvision-modules:kvision-common-remote"))
+ compileOnly(project(":kvision-modules:kvision-server-javalin"))
+ testImplementation(kotlin("test-js"))
+}
+
+val sourcesJar by tasks.registering(Jar::class) {
+ archiveClassifier.set("sources")
+ from(kotlin.sourceSets.main.get().kotlin)
+}
+
+publishing {
+ publications {
+ create<MavenPublication>("kotlin") {
+ from(components["kotlin"])
+ artifact(tasks["sourcesJar"])
+ pom {
+ defaultPom()
+ }
+ }
+ }
+}
+
+setupPublication()
diff --git a/kvision-modules/kvision-tabulator-remote/package.json.d/project.info b/kvision-modules/kvision-tabulator-remote/package.json.d/project.info
deleted file mode 100644
index c6af34cc..00000000
--- a/kvision-modules/kvision-tabulator-remote/package.json.d/project.info
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "description": "KVision Tabulator remote addon module"
-}
diff --git a/kvision-modules/kvision-tabulator-remote/src/main/kotlin/pl/treksoft/kvision/tabulator/TabulatorRemote.kt b/kvision-modules/kvision-tabulator-remote/src/main/kotlin/pl/treksoft/kvision/tabulator/TabulatorRemote.kt
index b413066e..c9e8e208 100644
--- a/kvision-modules/kvision-tabulator-remote/src/main/kotlin/pl/treksoft/kvision/tabulator/TabulatorRemote.kt
+++ b/kvision-modules/kvision-tabulator-remote/src/main/kotlin/pl/treksoft/kvision/tabulator/TabulatorRemote.kt
@@ -49,7 +49,7 @@ import kotlin.browser.window
* @param types a set of table types
* @param classes a set of CSS class names
*/
-@UseExperimental(ImplicitReflectionSerializer::class)
+@OptIn(ImplicitReflectionSerializer::class)
open class TabulatorRemote<T : Any, E : Any>(
serviceManager: KVServiceManager<E>,
function: suspend E.(Int?, Int?, List<RemoteFilter>?, List<RemoteSorter>?, String?) -> RemoteData<T>,
@@ -72,12 +72,14 @@ open class TabulatorRemote<T : Any, E : Any>(
options.ajaxRequestFunc = { _, _, params ->
val page = params.page
val size = params.size
+
@Suppress("UnsafeCastFromDynamic")
val filters = if (params.filters != null) {
kotlin.js.JSON.stringify(params.filters)
} else {
null
}
+
@Suppress("UnsafeCastFromDynamic")
val sorters = if (params.sorters != null) {
kotlin.js.JSON.stringify(params.sorters)
@@ -85,6 +87,7 @@ open class TabulatorRemote<T : Any, E : Any>(
null
}
val state = stateFunction?.invoke()
+
@Suppress("UnsafeCastFromDynamic")
val data = JSON.plain.stringify(JsonRpcRequest(0, url, listOf(page, size, filters, sorters, state)))
callAgent.remoteCall(url, data, method = HttpMethod.valueOf(method.name)).then { r: dynamic ->
diff --git a/kvision-modules/kvision-tabulator-remote/webpack.config.d/bootstrap.js b/kvision-modules/kvision-tabulator-remote/webpack.config.d/bootstrap.js
new file mode 100644
index 00000000..35b28e6a
--- /dev/null
+++ b/kvision-modules/kvision-tabulator-remote/webpack.config.d/bootstrap.js
@@ -0,0 +1,3 @@
+config.module.rules.push({test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'});
+config.module.rules.push({test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/octet-stream'});
+config.module.rules.push({test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file-loader'});
diff --git a/kvision-modules/kvision-tabulator-remote/webpack.config.d/file.js b/kvision-modules/kvision-tabulator-remote/webpack.config.d/file.js
new file mode 100644
index 00000000..653ca21f
--- /dev/null
+++ b/kvision-modules/kvision-tabulator-remote/webpack.config.d/file.js
@@ -0,0 +1,9 @@
+config.module.rules.push(
+ {
+ test: /\.(jpe?g|png|gif|svg)$/i,
+ loader: 'file-loader',
+ options: {
+ esModule: false,
+ },
+ }
+);