From 22a8d5c35db97d65a90b21d97e6835380191845d Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Wed, 25 Sep 2019 22:14:22 +0200 Subject: Upgrade Bootstrap to version 4 --- build.gradle | 28 +++++----- gradle.properties | 2 +- kvision-modules/kvision-bootstrap/build.gradle | 10 +--- .../pl/treksoft/kvision/KVManagerBootstrap.kt | 7 +-- .../src/main/resources/js/bootstrap.config.js | 64 ---------------------- .../src/main/resources/js/bootstrap.config.less | 0 kvision-modules/kvision-chart/build.gradle | 4 -- kvision-modules/kvision-datacontainer/build.gradle | 11 ---- kvision-modules/kvision-datetime/build.gradle | 4 -- kvision-modules/kvision-dialog/build.gradle | 11 ---- kvision-modules/kvision-handlebars/build.gradle | 6 +- kvision-modules/kvision-i18n/build.gradle | 4 -- kvision-modules/kvision-pace/build.gradle | 4 -- kvision-modules/kvision-redux-kotlin/build.gradle | 11 ---- kvision-modules/kvision-redux/build.gradle | 8 +-- kvision-modules/kvision-richtext/build.gradle | 6 +- kvision-modules/kvision-select/build.gradle | 4 -- kvision-modules/kvision-spinner/build.gradle | 4 -- kvision-modules/kvision-tabulator/build.gradle | 4 -- kvision-modules/kvision-upload/build.gradle | 4 -- kvision-modules/shared.gradle | 7 +++ settings.gradle | 46 ++++++++-------- 22 files changed, 55 insertions(+), 194 deletions(-) delete mode 100644 kvision-modules/kvision-bootstrap/src/main/resources/js/bootstrap.config.js delete mode 100644 kvision-modules/kvision-bootstrap/src/main/resources/js/bootstrap.config.less diff --git a/build.gradle b/build.gradle index 1a8952bb..af9c8ac6 100644 --- a/build.gradle +++ b/build.gradle @@ -122,25 +122,25 @@ dependencies { if (!project.gradle.startParameter.taskNames.contains("dokka")) { kotlinFrontend { npm { - dependency("css-loader", "2.0.1") - dependency("style-loader", "0.23.1") - dependency("less", "3.9.0") - dependency("less-loader", "4.1.0") + dependency("css-loader", "3.2.0") + dependency("style-loader", "1.0.0") + dependency("less", "3.10.3") + dependency("less-loader", "5.0.0") dependency("imports-loader", "0.8.0") - dependency("uglifyjs-webpack-plugin", "2.0.1") - dependency("file-loader", "2.0.0") - dependency("url-loader", "1.1.2") - dependency("jquery", "3.2.1") - dependency("fecha", "2.3.2") + dependency("uglifyjs-webpack-plugin", "2.2.0") + dependency("file-loader", "4.2.0") + dependency("url-loader", "2.1.0") + dependency("jquery", "3.4.1") + dependency("fecha", "3.0.3") dependency("snabbdom", "0.7.3") dependency("snabbdom-virtualize", "0.7.0") dependency("jquery-resizable-dom", "0.32.0") dependency("element-resize-event", "3.0.3") - dependency("navigo", "7.0.0") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") + dependency("navigo", "7.1.2") + devDependency("karma", "4.3.0") + devDependency("karma-chrome-launcher", "3.1.0") + devDependency("karma-webpack", "4.0.2") + devDependency("qunit", "2.9.2") } webpackBundle { diff --git a/gradle.properties b/gradle.properties index 87af4512..5e3d2fe1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=pl.treksoft -version=1.0.0-SNAPSHOT +version=2.0.0-SNAPSHOT kotlinVersion=1.3.50 javaVersion=1.8 coroutinesVersion=1.3.1 diff --git a/kvision-modules/kvision-bootstrap/build.gradle b/kvision-modules/kvision-bootstrap/build.gradle index 6c504c17..2f8efeb8 100644 --- a/kvision-modules/kvision-bootstrap/build.gradle +++ b/kvision-modules/kvision-bootstrap/build.gradle @@ -3,16 +3,12 @@ apply from: "../shared.gradle" kotlinFrontend { npm { - dependency("bootstrap", "3.4.1") - dependency("bootstrap-webpack", "0.0.6") + dependency("popper.js", "1.15.0") + dependency("bootstrap", "4.3.1") dependency("font-awesome", "4.7.0") dependency("font-awesome-webpack-4", "1.0.0") - dependency("awesome-bootstrap-checkbox", "0.3.7") + dependency("awesome-bootstrap-checkbox", "1.0.1") dependency("bootstrap-vertical-tabs", "1.2.2") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/KVManagerBootstrap.kt b/kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/KVManagerBootstrap.kt index 01e1f3c3..678ad33e 100644 --- a/kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/KVManagerBootstrap.kt +++ b/kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/KVManagerBootstrap.kt @@ -32,16 +32,15 @@ internal object KVManagerBootstrap { private val links = document.getElementsByTagName("link") private val bootstrapWebpack = try { val bootswatch = links.asList().find { it.getAttribute("href")?.contains("bootstrap.min.css") ?: false } + require("bootstrap") if (bootswatch != null) { - require("bootstrap-webpack!./js/bootstrap.config.js") if (bootswatch.getAttribute("href")?.contains("/paper/") == true) { require("./css/paper.css") } - require("./css/style.css") } else { - require("bootstrap-webpack") - require("./css/style.css") + require("bootstrap/dist/css/bootstrap.min.css") } + require("./css/style.css") } catch (e: Throwable) { } private val fontAwesomeWebpack = try { diff --git a/kvision-modules/kvision-bootstrap/src/main/resources/js/bootstrap.config.js b/kvision-modules/kvision-bootstrap/src/main/resources/js/bootstrap.config.js deleted file mode 100644 index 906942d1..00000000 --- a/kvision-modules/kvision-bootstrap/src/main/resources/js/bootstrap.config.js +++ /dev/null @@ -1,64 +0,0 @@ -module.exports = { - - // Default for the style loading - styleLoader: 'style-loader!css-loader!less-loader', - - scripts: { - 'transition': true, - 'alert': true, - 'button': true, - 'carousel': true, - 'collapse': true, - 'dropdown': true, - 'modal': true, - 'tooltip': true, - 'popover': true, - 'scrollspy': true, - 'tab': true, - 'affix': true - }, - styles: { - "mixins": false, - - "normalize": false, - "print": false, - - "scaffolding": false, - "type": false, - "code": false, - "grid": false, - "tables": false, - "forms": false, - "buttons": false, - - "component-animations": false, - "glyphicons": false, - "dropdowns": false, - "button-groups": false, - "input-groups": false, - "navs": false, - "navbar": false, - "breadcrumbs": false, - "pagination": false, - "pager": false, - "labels": false, - "badges": false, - "jumbotron": false, - "thumbnails": false, - "alerts": false, - "progress-bars": false, - "media": false, - "list-group": false, - "panels": false, - "wells": false, - "close": false, - - "modals": false, - "tooltip": false, - "popovers": false, - "carousel": false, - - "utilities": false, - "responsive-utilities": false - } -}; diff --git a/kvision-modules/kvision-bootstrap/src/main/resources/js/bootstrap.config.less b/kvision-modules/kvision-bootstrap/src/main/resources/js/bootstrap.config.less deleted file mode 100644 index e69de29b..00000000 diff --git a/kvision-modules/kvision-chart/build.gradle b/kvision-modules/kvision-chart/build.gradle index d90de6ce..6733a4ab 100644 --- a/kvision-modules/kvision-chart/build.gradle +++ b/kvision-modules/kvision-chart/build.gradle @@ -4,10 +4,6 @@ kotlinFrontend { npm { dependency("chart.js", "2.7.3") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-datacontainer/build.gradle b/kvision-modules/kvision-datacontainer/build.gradle index a10a048f..6779c309 100644 --- a/kvision-modules/kvision-datacontainer/build.gradle +++ b/kvision-modules/kvision-datacontainer/build.gradle @@ -1,12 +1 @@ apply from: "../shared.gradle" - -kotlinFrontend { - - npm { - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") - } - -} diff --git a/kvision-modules/kvision-datetime/build.gradle b/kvision-modules/kvision-datetime/build.gradle index bbd4bb79..b853d2f4 100644 --- a/kvision-modules/kvision-datetime/build.gradle +++ b/kvision-modules/kvision-datetime/build.gradle @@ -4,10 +4,6 @@ kotlinFrontend { npm { dependency("bootstrap-datetime-picker", "2.4.4") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-dialog/build.gradle b/kvision-modules/kvision-dialog/build.gradle index 292a228f..4aaef76d 100644 --- a/kvision-modules/kvision-dialog/build.gradle +++ b/kvision-modules/kvision-dialog/build.gradle @@ -3,14 +3,3 @@ apply from: "../shared.gradle" dependencies { compile "org.jetbrains.kotlinx:kotlinx-coroutines-core-js:$coroutinesVersion" } - -kotlinFrontend { - - npm { - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") - } - -} diff --git a/kvision-modules/kvision-handlebars/build.gradle b/kvision-modules/kvision-handlebars/build.gradle index a971427e..3864067c 100644 --- a/kvision-modules/kvision-handlebars/build.gradle +++ b/kvision-modules/kvision-handlebars/build.gradle @@ -3,12 +3,8 @@ apply from: "../shared.gradle" kotlinFrontend { npm { - dependency("handlebars", "4.1.0") + dependency("handlebars", "4.3.1") dependency("handlebars-loader", "1.7.1") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-i18n/build.gradle b/kvision-modules/kvision-i18n/build.gradle index 72870169..a2b6d3f8 100644 --- a/kvision-modules/kvision-i18n/build.gradle +++ b/kvision-modules/kvision-i18n/build.gradle @@ -4,10 +4,6 @@ kotlinFrontend { npm { dependency("jed", "1.1.1") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-pace/build.gradle b/kvision-modules/kvision-pace/build.gradle index 238f9efa..d577df20 100644 --- a/kvision-modules/kvision-pace/build.gradle +++ b/kvision-modules/kvision-pace/build.gradle @@ -4,10 +4,6 @@ kotlinFrontend { npm { dependency("pace-progressbar", "1.0.8") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } \ No newline at end of file diff --git a/kvision-modules/kvision-redux-kotlin/build.gradle b/kvision-modules/kvision-redux-kotlin/build.gradle index 78bfda21..0b00ddd8 100644 --- a/kvision-modules/kvision-redux-kotlin/build.gradle +++ b/kvision-modules/kvision-redux-kotlin/build.gradle @@ -4,14 +4,3 @@ dependencies { compile ("org.reduxkotlin:redux-kotlin-js:$reduxKotlinVersion") compile ("org.reduxkotlin:redux-kotlin-thunk-js:$reduxKotlinThunkVersion") } - -kotlinFrontend { - - npm { - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") - } - -} diff --git a/kvision-modules/kvision-redux/build.gradle b/kvision-modules/kvision-redux/build.gradle index 3394095f..7acecd2f 100644 --- a/kvision-modules/kvision-redux/build.gradle +++ b/kvision-modules/kvision-redux/build.gradle @@ -9,13 +9,9 @@ dependencies { kotlinFrontend { npm { - dependency("redux", "4.0.0") + dependency("redux", "4.0.4") dependency("redux-thunk", "2.3.0") - dependency("core-js", "3.0.0") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") + dependency("core-js", "3.2.1") } } diff --git a/kvision-modules/kvision-richtext/build.gradle b/kvision-modules/kvision-richtext/build.gradle index fde9ff17..489113a7 100644 --- a/kvision-modules/kvision-richtext/build.gradle +++ b/kvision-modules/kvision-richtext/build.gradle @@ -3,11 +3,7 @@ apply from: "../shared.gradle" kotlinFrontend { npm { - dependency("trix", "1.1.0") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") + dependency("trix", "1.2.0") } } diff --git a/kvision-modules/kvision-select/build.gradle b/kvision-modules/kvision-select/build.gradle index 7525f037..f8fcbc8a 100644 --- a/kvision-modules/kvision-select/build.gradle +++ b/kvision-modules/kvision-select/build.gradle @@ -5,10 +5,6 @@ kotlinFrontend { npm { dependency("bootstrap-select", "1.12.4") dependency("ajax-bootstrap-select", "1.4.3") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-spinner/build.gradle b/kvision-modules/kvision-spinner/build.gradle index 4569b8bc..0c3a2940 100644 --- a/kvision-modules/kvision-spinner/build.gradle +++ b/kvision-modules/kvision-spinner/build.gradle @@ -4,10 +4,6 @@ kotlinFrontend { npm { dependency("bootstrap-touchspin", "4.2.5") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-tabulator/build.gradle b/kvision-modules/kvision-tabulator/build.gradle index 19da0553..0712c1e6 100644 --- a/kvision-modules/kvision-tabulator/build.gradle +++ b/kvision-modules/kvision-tabulator/build.gradle @@ -8,10 +8,6 @@ kotlinFrontend { npm { dependency("tabulator-tables", "4.4.1") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/kvision-upload/build.gradle b/kvision-modules/kvision-upload/build.gradle index 2ac20c32..2a843308 100644 --- a/kvision-modules/kvision-upload/build.gradle +++ b/kvision-modules/kvision-upload/build.gradle @@ -8,10 +8,6 @@ kotlinFrontend { npm { dependency("bootstrap-fileinput", "4.5.2") - devDependency("karma", "3.1.4") - devDependency("karma-chrome-launcher", "2.2.0") - devDependency("karma-webpack", "3.0.5") - devDependency("qunit", "2.8.0") } } diff --git a/kvision-modules/shared.gradle b/kvision-modules/shared.gradle index 2b45f630..640d8478 100644 --- a/kvision-modules/shared.gradle +++ b/kvision-modules/shared.gradle @@ -4,6 +4,13 @@ apply plugin: 'kotlinx-serialization' kotlinFrontend { + npm { + devDependency("karma", "4.3.0") + devDependency("karma-chrome-launcher", "3.1.0") + devDependency("karma-webpack", "4.0.2") + devDependency("qunit", "2.9.2") + } + webpackBundle { bundleName = "main" contentPath = file('src/main/web') diff --git a/settings.gradle b/settings.gradle index 39b26428..3fc250ff 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,26 +4,26 @@ include 'kvision-modules:kvision-base', 'kvision-modules:kvision-common-remote', 'kvision-modules:kvision-common-types', 'kvision-modules:kvision-bootstrap', - 'kvision-modules:kvision-select', - 'kvision-modules:kvision-datetime', - 'kvision-modules:kvision-spinner', - 'kvision-modules:kvision-richtext', - 'kvision-modules:kvision-upload', - 'kvision-modules:kvision-handlebars', - 'kvision-modules:kvision-i18n', - 'kvision-modules:kvision-chart', - 'kvision-modules:kvision-datacontainer', - 'kvision-modules:kvision-dialog', - 'kvision-modules:kvision-redux', - 'kvision-modules:kvision-redux-kotlin', - 'kvision-modules:kvision-tabulator', - 'kvision-modules:kvision-moment', - 'kvision-modules:kvision-pace', - 'kvision-modules:kvision-remote', - 'kvision-modules:kvision-select-remote', - 'kvision-modules:kvision-tabulator-remote', - 'kvision-modules:kvision-server-jooby', - 'kvision-modules:kvision-server-ktor', - 'kvision-modules:kvision-server-spring-boot', - 'kvision-modules:kvision-electron', - 'kvision-modules:kvision-cordova' +// 'kvision-modules:kvision-select', +// 'kvision-modules:kvision-datetime', +// 'kvision-modules:kvision-spinner', +// 'kvision-modules:kvision-richtext', +// 'kvision-modules:kvision-upload', +// 'kvision-modules:kvision-handlebars', + 'kvision-modules:kvision-i18n' +// 'kvision-modules:kvision-chart', +// 'kvision-modules:kvision-datacontainer', +// 'kvision-modules:kvision-dialog', +// 'kvision-modules:kvision-redux', +// 'kvision-modules:kvision-redux-kotlin', +// 'kvision-modules:kvision-tabulator', +// 'kvision-modules:kvision-moment', +// 'kvision-modules:kvision-pace', +// 'kvision-modules:kvision-remote', +// 'kvision-modules:kvision-select-remote', +// 'kvision-modules:kvision-tabulator-remote', +// 'kvision-modules:kvision-server-jooby', +// 'kvision-modules:kvision-server-ktor', +// 'kvision-modules:kvision-server-spring-boot', +// 'kvision-modules:kvision-electron', +// 'kvision-modules:kvision-cordova' -- cgit From 6b53324c97bfc80ed14dfca6a5dbc879950715b9 Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Thu, 3 Oct 2019 19:03:21 +0200 Subject: Upgrade to Bootstrap 4. Upgrade to Font Awesome 5. Restructure modules. --- build.gradle | 15 +- kvision-modules/kvision-bootstrap-css/build.gradle | 5 + .../package.json.d/project.info | 3 + .../pl/treksoft/kvision/KVManagerBootstrapCss.kt | 35 ++ .../src/main/resources/css/paper.css | 16 + .../webpack.config.d/bootstrap.js | 4 + .../kvision-bootstrap-css/webpack.config.d/css.js | 2 + .../webpack.config.d/jquery.js | 5 + .../kvision-bootstrap-datetime/build.gradle | 13 + .../package.json.d/project.info | 3 + .../pl/treksoft/kvision/KVManagerDatetime.kt | 75 ++++ .../pl/treksoft/kvision/form/time/DateTime.kt | 246 +++++++++++ .../pl/treksoft/kvision/form/time/DateTimeInput.kt | 328 +++++++++++++++ .../bootstrap-datetimepicker.ar.js | 18 + .../bootstrap-datetimepicker.az.js | 17 + .../bootstrap-datetimepicker.bg.js | 17 + .../bootstrap-datetimepicker.bn.js | 17 + .../bootstrap-datetimepicker.ca.js | 17 + .../bootstrap-datetimepicker.cs.js | 20 + .../bootstrap-datetimepicker.da.js | 17 + .../bootstrap-datetimepicker.de.js | 19 + .../bootstrap-datetimepicker.ee.js | 19 + .../bootstrap-datetimepicker.el.js | 16 + .../bootstrap-datetimepicker.es.js | 17 + .../bootstrap-datetimepicker.fi.js | 17 + .../bootstrap-datetimepicker.fr.js | 19 + .../bootstrap-datetimepicker.he.js | 18 + .../bootstrap-datetimepicker.hr.js | 16 + .../bootstrap-datetimepicker.hu.js | 18 + .../bootstrap-datetimepicker.hy.js | 17 + .../bootstrap-datetimepicker.id.js | 20 + .../bootstrap-datetimepicker.is.js | 17 + .../bootstrap-datetimepicker.it.js | 19 + .../bootstrap-datetimepicker.ja.js | 17 + .../bootstrap-datetimepicker.ka.js | 17 + .../bootstrap-datetimepicker.ko.js | 18 + .../bootstrap-datetimepicker.lt.js | 19 + .../bootstrap-datetimepicker.lv.js | 19 + .../bootstrap-datetimepicker.ms.js | 17 + .../bootstrap-datetimepicker.nb.js | 17 + .../bootstrap-datetimepicker.nl.js | 17 + .../bootstrap-datetimepicker.no.js | 17 + .../bootstrap-datetimepicker.pl.js | 18 + .../bootstrap-datetimepicker.pt-BR.js | 18 + .../bootstrap-datetimepicker.pt.js | 18 + .../bootstrap-datetimepicker.ro.js | 18 + .../bootstrap-datetimepicker.rs-latin.js | 17 + .../bootstrap-datetimepicker.rs.js | 17 + .../bootstrap-datetimepicker.ru.js | 17 + .../bootstrap-datetimepicker.sk.js | 20 + .../bootstrap-datetimepicker.sl.js | 17 + .../bootstrap-datetimepicker.sv.js | 17 + .../bootstrap-datetimepicker.sw.js | 18 + .../bootstrap-datetimepicker.th.js | 17 + .../bootstrap-datetimepicker.tr.js | 18 + .../bootstrap-datetimepicker.ua.js | 16 + .../bootstrap-datetimepicker.uk.js | 17 + .../bootstrap-datetimepicker.zh-TW.js | 17 + .../bootstrap-datetimepicker.zh.js | 17 + .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 +++++ .../kvision/form/time/DateTimeInputSpec.kt | 53 +++ .../pl/treksoft/kvision/form/time/DateTimeSpec.kt | 62 +++ .../webpack.config.d/css.js | 2 + .../kvision-bootstrap-dialog/build.gradle | 6 + .../package.json.d/project.info | 3 + .../kotlin/pl/treksoft/kvision/modal/Dialog.kt | 76 ++++ .../kvision-bootstrap-select-remote/build.gradle | 6 + .../package.json.d/project.info | 3 + .../treksoft/kvision/form/select/SelectRemote.kt | 276 +++++++++++++ .../kvision/form/select/SelectRemoteInput.kt | 140 +++++++ .../kvision-bootstrap-select/build.gradle | 14 + .../package.json.d/project.info | 3 + .../kotlin/pl/treksoft/kvision/KVManagerSelect.kt | 53 +++ .../pl/treksoft/kvision/form/select/AjaxOptions.kt | 140 +++++++ .../pl/treksoft/kvision/form/select/Select.kt | 285 +++++++++++++ .../pl/treksoft/kvision/form/select/SelectInput.kt | 375 +++++++++++++++++ .../treksoft/kvision/form/select/SelectOptGroup.kt | 123 ++++++ .../treksoft/kvision/form/select/SelectOption.kt | 170 ++++++++ .../ajax-bootstrap-select.de-DE.min.js | 22 + .../ajax-bootstrap-select.en-US.min.js | 22 + .../ajax-bootstrap-select.es-ES.min.js | 22 + .../ajax-bootstrap-select.fr-FR.min.js | 22 + .../ajax-bootstrap-select.it-IT.min.js | 22 + .../ajax-bootstrap-select.ja-JP.min.js | 22 + .../ajax-bootstrap-select.ko-KR.min.js | 22 + .../ajax-bootstrap-select.nl-NL.min.js | 22 + .../ajax-bootstrap-select.pl-PL.min.js | 22 + .../ajax-bootstrap-select.pt-BR.min.js | 22 + .../ajax-bootstrap-select.ru-RU.min.js | 22 + .../ajax-bootstrap-select.tr-TR.min.js | 22 + .../bootstrap-select/bootstrap-select-i18n.min.js | 1 + .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 +++++ .../kvision/form/select/SelectInputSpec.kt | 53 +++ .../kvision/form/select/SelectOptGroupSpec.kt | 54 +++ .../kvision/form/select/SelectOptionSpec.kt | 59 +++ .../pl/treksoft/kvision/form/select/SelectSpec.kt | 58 +++ .../webpack.config.d/css.js | 2 + .../kvision-bootstrap-spinner/build.gradle | 13 + .../package.json.d/project.info | 3 + .../kotlin/pl/treksoft/kvision/KVManagerSpinner.kt | 36 ++ .../pl/treksoft/kvision/form/spinner/Spinner.kt | 263 ++++++++++++ .../treksoft/kvision/form/spinner/SpinnerInput.kt | 336 +++++++++++++++ .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 +++++ .../kvision/form/spinner/SpinnerInputSpec.kt | 75 ++++ .../treksoft/kvision/form/spinner/SpinnerSpec.kt | 82 ++++ .../webpack.config.d/css.js | 2 + .../webpack.config.d/jquery.js | 5 + .../kvision-bootstrap-upload/build.gradle | 14 + .../package.json.d/project.info | 3 + .../kotlin/pl/treksoft/kvision/KVManagerUpload.kt | 75 ++++ .../pl/treksoft/kvision/form/upload/Upload.kt | 333 +++++++++++++++ .../pl/treksoft/kvision/form/upload/UploadInput.kt | 375 +++++++++++++++++ .../main/kotlin/pl/treksoft/kvision/utils/Utils.kt | 73 ++++ .../resources/js/locales/bootstrap-fileinput/ar.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/az.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/bg.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/ca.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/cr.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/cs.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/da.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/de.js | 98 +++++ .../resources/js/locales/bootstrap-fileinput/el.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/es.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/et.js | 99 +++++ .../resources/js/locales/bootstrap-fileinput/fa.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/fi.js | 91 +++++ .../resources/js/locales/bootstrap-fileinput/fr.js | 99 +++++ .../resources/js/locales/bootstrap-fileinput/gl.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/he.js | 97 +++++ .../resources/js/locales/bootstrap-fileinput/hu.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/id.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/it.js | 102 +++++ .../resources/js/locales/bootstrap-fileinput/ja.js | 109 +++++ .../resources/js/locales/bootstrap-fileinput/ka.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/ko.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/kz.js | 88 ++++ .../resources/js/locales/bootstrap-fileinput/lt.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/nl.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/no.js | 99 +++++ .../resources/js/locales/bootstrap-fileinput/pl.js | 90 +++++ .../js/locales/bootstrap-fileinput/pt-BR.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/pt.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/ro.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/ru.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/sk.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/sl.js | 98 +++++ .../resources/js/locales/bootstrap-fileinput/sv.js | 99 +++++ .../resources/js/locales/bootstrap-fileinput/th.js | 100 +++++ .../resources/js/locales/bootstrap-fileinput/tr.js | 99 +++++ .../resources/js/locales/bootstrap-fileinput/uk.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/uz.js | 101 +++++ .../resources/js/locales/bootstrap-fileinput/vi.js | 101 +++++ .../js/locales/bootstrap-fileinput/zh-TW.js | 102 +++++ .../resources/js/locales/bootstrap-fileinput/zh.js | 101 +++++ .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 +++++ .../kvision/form/upload/UploadInputSpec.kt | 57 +++ .../pl/treksoft/kvision/form/upload/UploadSpec.kt | 56 +++ .../webpack.config.d/css.js | 2 + .../webpack.config.d/file.js | 6 + kvision-modules/kvision-bootstrap/build.gradle | 5 +- .../pl/treksoft/kvision/KVManagerBootstrap.kt | 55 +-- .../kotlin/pl/treksoft/kvision/core/Component.kt | 133 ++++++ .../pl/treksoft/kvision/dropdown/ContextMenu.kt | 112 +++++ .../pl/treksoft/kvision/dropdown/DropDown.kt | 417 +++++++++++++++++++ .../kotlin/pl/treksoft/kvision/dropdown/Header.kt | 61 +++ .../pl/treksoft/kvision/dropdown/Separator.kt | 57 +++ .../main/kotlin/pl/treksoft/kvision/modal/Alert.kt | 121 ++++++ .../kotlin/pl/treksoft/kvision/modal/CloseIcon.kt | 48 +++ .../kotlin/pl/treksoft/kvision/modal/Confirm.kt | 176 ++++++++ .../main/kotlin/pl/treksoft/kvision/modal/Modal.kt | 292 ++++++++++++++ .../main/kotlin/pl/treksoft/kvision/navbar/Nav.kt | 110 +++++ .../kotlin/pl/treksoft/kvision/navbar/NavForm.kt | 72 ++++ .../kotlin/pl/treksoft/kvision/navbar/Navbar.kt | 229 +++++++++++ .../treksoft/kvision/panel/ResponsiveGridPanel.kt | 185 +++++++++ .../kotlin/pl/treksoft/kvision/panel/TabPanel.kt | 273 +++++++++++++ .../pl/treksoft/kvision/progress/ProgressBar.kt | 162 ++++++++ .../treksoft/kvision/progress/ProgressIndicator.kt | 125 ++++++ .../pl/treksoft/kvision/toolbar/ButtonGroup.kt | 109 +++++ .../kotlin/pl/treksoft/kvision/toolbar/Toolbar.kt | 63 +++ .../pl/treksoft/kvision/window/MaximizeIcon.kt | 48 +++ .../pl/treksoft/kvision/window/MinimizeIcon.kt | 48 +++ .../kotlin/pl/treksoft/kvision/window/Window.kt | 449 +++++++++++++++++++++ .../src/main/resources/css/kvbootstrap.css | 291 +++++++++++++ .../src/main/resources/css/paper.css | 16 - .../src/main/resources/css/style.css | 226 ----------- .../treksoft/kvision/dropdown/ContextMenuSpec.kt | 75 ++++ .../pl/treksoft/kvision/dropdown/HeaderSpec.kt | 46 +++ .../pl/treksoft/kvision/dropdown/SeparatorSpec.kt | 46 +++ .../test/pl/treksoft/kvision/navbar/NavFormSpec.kt | 54 +++ .../test/pl/treksoft/kvision/navbar/NavSpec.kt | 54 +++ .../test/pl/treksoft/kvision/navbar/NavbarSpec.kt | 70 ++++ .../kvision/panel/ResponsiveGridPanelSpec.kt | 50 +++ .../test/pl/treksoft/kvision/panel/TabPanelSpec.kt | 117 ++++++ .../treksoft/kvision/progress/ProgressBarSpec.kt | 56 +++ .../kvision/progress/ProgressIndicatorSpec.kt | 55 +++ .../pl/treksoft/kvision/toolbar/ButtonGroupSpec.kt | 57 +++ .../pl/treksoft/kvision/toolbar/ToolbarSpec.kt | 47 +++ .../kotlin/pl/treksoft/kvision/KVManagerChart.kt | 6 +- kvision-modules/kvision-datetime/build.gradle | 9 - .../kvision-datetime/package.json.d/project.info | 3 - .../pl/treksoft/kvision/KVManagerDatetime.kt | 81 ---- .../pl/treksoft/kvision/form/time/DateTime.kt | 246 ----------- .../pl/treksoft/kvision/form/time/DateTimeInput.kt | 320 --------------- .../bootstrap-datetimepicker.ar.js | 18 - .../bootstrap-datetimepicker.az.js | 17 - .../bootstrap-datetimepicker.bg.js | 17 - .../bootstrap-datetimepicker.bn.js | 17 - .../bootstrap-datetimepicker.ca.js | 17 - .../bootstrap-datetimepicker.cs.js | 20 - .../bootstrap-datetimepicker.da.js | 17 - .../bootstrap-datetimepicker.de.js | 19 - .../bootstrap-datetimepicker.ee.js | 19 - .../bootstrap-datetimepicker.el.js | 16 - .../bootstrap-datetimepicker.es.js | 17 - .../bootstrap-datetimepicker.fi.js | 17 - .../bootstrap-datetimepicker.fr.js | 19 - .../bootstrap-datetimepicker.he.js | 18 - .../bootstrap-datetimepicker.hr.js | 16 - .../bootstrap-datetimepicker.hu.js | 18 - .../bootstrap-datetimepicker.hy.js | 17 - .../bootstrap-datetimepicker.id.js | 20 - .../bootstrap-datetimepicker.is.js | 17 - .../bootstrap-datetimepicker.it.js | 19 - .../bootstrap-datetimepicker.ja.js | 17 - .../bootstrap-datetimepicker.ka.js | 17 - .../bootstrap-datetimepicker.ko.js | 18 - .../bootstrap-datetimepicker.lt.js | 19 - .../bootstrap-datetimepicker.lv.js | 19 - .../bootstrap-datetimepicker.ms.js | 17 - .../bootstrap-datetimepicker.nb.js | 17 - .../bootstrap-datetimepicker.nl.js | 17 - .../bootstrap-datetimepicker.no.js | 17 - .../bootstrap-datetimepicker.pl.js | 18 - .../bootstrap-datetimepicker.pt-BR.js | 18 - .../bootstrap-datetimepicker.pt.js | 18 - .../bootstrap-datetimepicker.ro.js | 18 - .../bootstrap-datetimepicker.rs-latin.js | 17 - .../bootstrap-datetimepicker.rs.js | 17 - .../bootstrap-datetimepicker.ru.js | 17 - .../bootstrap-datetimepicker.sk.js | 20 - .../bootstrap-datetimepicker.sl.js | 17 - .../bootstrap-datetimepicker.sv.js | 17 - .../bootstrap-datetimepicker.sw.js | 18 - .../bootstrap-datetimepicker.th.js | 17 - .../bootstrap-datetimepicker.tr.js | 18 - .../bootstrap-datetimepicker.ua.js | 16 - .../bootstrap-datetimepicker.uk.js | 17 - .../bootstrap-datetimepicker.zh-TW.js | 17 - .../bootstrap-datetimepicker.zh.js | 17 - .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 ----- .../kvision/form/time/DateTimeInputSpec.kt | 53 --- .../pl/treksoft/kvision/form/time/DateTimeSpec.kt | 62 --- .../kvision-datetime/webpack.config.d/css.js | 2 - kvision-modules/kvision-dialog/build.gradle | 5 - .../kvision-dialog/package.json.d/project.info | 3 - .../kotlin/pl/treksoft/kvision/modal/Dialog.kt | 76 ---- kvision-modules/kvision-fontawesome/build.gradle | 9 + .../package.json.d/project.info | 3 + .../pl/treksoft/kvision/KVManagerFontAwesome.kt | 35 ++ .../webpack.config.d/bootstrap.js | 4 + .../kvision-fontawesome/webpack.config.d/css.js | 2 + .../kvision-fontawesome/webpack.config.d/jquery.js | 5 + .../pl/treksoft/kvision/KVManagerHandlebars.kt | 6 +- .../kotlin/pl/treksoft/kvision/KVManagerI18n.kt | 6 +- .../kotlin/pl/treksoft/kvision/KVManagerMoment.kt | 8 +- .../kotlin/pl/treksoft/kvision/KVManagerPace.kt | 8 +- .../kotlin/pl/treksoft/kvision/KVManagerRedux.kt | 14 +- .../kotlin/pl/treksoft/kvision/remote/Profile.kt | 8 - .../pl/treksoft/kvision/KVManagerRichText.kt | 10 +- .../pl/treksoft/kvision/form/text/RichText.kt | 2 +- kvision-modules/kvision-select-remote/build.gradle | 6 - .../package.json.d/project.info | 3 - .../treksoft/kvision/form/select/SelectRemote.kt | 276 ------------- .../kvision/form/select/SelectRemoteInput.kt | 140 ------- kvision-modules/kvision-select/build.gradle | 10 - .../kvision-select/package.json.d/project.info | 3 - .../kotlin/pl/treksoft/kvision/KVManagerSelect.kt | 65 --- .../pl/treksoft/kvision/form/select/AjaxOptions.kt | 140 ------- .../pl/treksoft/kvision/form/select/Select.kt | 285 ------------- .../pl/treksoft/kvision/form/select/SelectInput.kt | 367 ----------------- .../treksoft/kvision/form/select/SelectOptGroup.kt | 123 ------ .../treksoft/kvision/form/select/SelectOption.kt | 174 -------- .../ajax-bootstrap-select.de-DE.min.js | 22 - .../ajax-bootstrap-select.en-US.min.js | 22 - .../ajax-bootstrap-select.es-ES.min.js | 22 - .../ajax-bootstrap-select.fr-FR.min.js | 22 - .../ajax-bootstrap-select.it-IT.min.js | 22 - .../ajax-bootstrap-select.ja-JP.min.js | 22 - .../ajax-bootstrap-select.ko-KR.min.js | 22 - .../ajax-bootstrap-select.nl-NL.min.js | 22 - .../ajax-bootstrap-select.pl-PL.min.js | 22 - .../ajax-bootstrap-select.pt-BR.min.js | 22 - .../ajax-bootstrap-select.ru-RU.min.js | 22 - .../ajax-bootstrap-select.tr-TR.min.js | 22 - .../bootstrap-select/bootstrap-select-i18n.min.js | 1 - .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 ----- .../kvision/form/select/SelectInputSpec.kt | 53 --- .../kvision/form/select/SelectOptGroupSpec.kt | 54 --- .../kvision/form/select/SelectOptionSpec.kt | 59 --- .../pl/treksoft/kvision/form/select/SelectSpec.kt | 58 --- .../kvision-select/webpack.config.d/css.js | 2 - kvision-modules/kvision-spinner/build.gradle | 9 - .../kvision-spinner/package.json.d/project.info | 3 - .../kotlin/pl/treksoft/kvision/KVManagerSpinner.kt | 42 -- .../pl/treksoft/kvision/form/spinner/Spinner.kt | 263 ------------ .../treksoft/kvision/form/spinner/SpinnerInput.kt | 328 --------------- .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 ----- .../kvision/form/spinner/SpinnerInputSpec.kt | 75 ---- .../treksoft/kvision/form/spinner/SpinnerSpec.kt | 82 ---- .../kvision-spinner/webpack.config.d/css.js | 2 - .../kvision-spinner/webpack.config.d/jquery.js | 5 - .../pl/treksoft/kvision/KVManagerTabulator.kt | 14 +- kvision-modules/kvision-upload/build.gradle | 13 - .../kvision-upload/package.json.d/project.info | 3 - .../kotlin/pl/treksoft/kvision/KVManagerUpload.kt | 86 ---- .../pl/treksoft/kvision/form/upload/Upload.kt | 333 --------------- .../pl/treksoft/kvision/form/upload/UploadInput.kt | 367 ----------------- .../main/kotlin/pl/treksoft/kvision/utils/Utils.kt | 73 ---- .../resources/js/locales/bootstrap-fileinput/ar.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/az.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/bg.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/ca.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/cr.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/cs.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/da.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/de.js | 98 ----- .../resources/js/locales/bootstrap-fileinput/el.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/es.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/et.js | 99 ----- .../resources/js/locales/bootstrap-fileinput/fa.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/fi.js | 91 ----- .../resources/js/locales/bootstrap-fileinput/fr.js | 99 ----- .../resources/js/locales/bootstrap-fileinput/gl.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/he.js | 97 ----- .../resources/js/locales/bootstrap-fileinput/hu.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/id.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/it.js | 102 ----- .../resources/js/locales/bootstrap-fileinput/ja.js | 109 ----- .../resources/js/locales/bootstrap-fileinput/ka.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/ko.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/kz.js | 88 ---- .../resources/js/locales/bootstrap-fileinput/lt.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/nl.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/no.js | 99 ----- .../resources/js/locales/bootstrap-fileinput/pl.js | 90 ----- .../js/locales/bootstrap-fileinput/pt-BR.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/pt.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/ro.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/ru.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/sk.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/sl.js | 98 ----- .../resources/js/locales/bootstrap-fileinput/sv.js | 99 ----- .../resources/js/locales/bootstrap-fileinput/th.js | 100 ----- .../resources/js/locales/bootstrap-fileinput/tr.js | 99 ----- .../resources/js/locales/bootstrap-fileinput/uk.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/uz.js | 101 ----- .../resources/js/locales/bootstrap-fileinput/vi.js | 101 ----- .../js/locales/bootstrap-fileinput/zh-TW.js | 102 ----- .../resources/js/locales/bootstrap-fileinput/zh.js | 101 ----- .../kotlin/test/pl/treksoft/kvision/TestUtil.kt | 100 ----- .../kvision/form/upload/UploadInputSpec.kt | 57 --- .../pl/treksoft/kvision/form/upload/UploadSpec.kt | 56 --- .../kvision-upload/webpack.config.d/css.js | 2 - .../kvision-upload/webpack.config.d/file.js | 6 - settings.gradle | 48 +-- src/main/kotlin/pl/treksoft/kvision/KVManager.kt | 57 +-- src/main/kotlin/pl/treksoft/kvision/core/Widget.kt | 66 ++- .../pl/treksoft/kvision/dropdown/ContextMenu.kt | 98 ----- .../pl/treksoft/kvision/dropdown/DropDown.kt | 333 --------------- .../kotlin/pl/treksoft/kvision/dropdown/Header.kt | 62 --- .../pl/treksoft/kvision/dropdown/Separator.kt | 63 --- .../kotlin/pl/treksoft/kvision/form/FormControl.kt | 45 ++- .../kotlin/pl/treksoft/kvision/form/FormPanel.kt | 46 ++- .../kotlin/pl/treksoft/kvision/form/HelpBlock.kt | 37 -- .../kotlin/pl/treksoft/kvision/form/HelpText.kt | 37 ++ .../pl/treksoft/kvision/form/InvalidFeedback.kt | 37 ++ .../pl/treksoft/kvision/form/check/CheckBox.kt | 32 +- .../pl/treksoft/kvision/form/check/CheckInput.kt | 8 + .../kotlin/pl/treksoft/kvision/form/check/Radio.kt | 40 +- .../pl/treksoft/kvision/form/check/RadioGroup.kt | 60 ++- .../treksoft/kvision/form/check/RadioGroupInput.kt | 14 + .../treksoft/kvision/form/select/SimpleSelect.kt | 8 +- .../kvision/form/select/SimpleSelectInput.kt | 8 + .../pl/treksoft/kvision/form/text/AbstractText.kt | 6 +- .../kvision/form/text/AbstractTextInput.kt | 8 + .../kotlin/pl/treksoft/kvision/form/text/Text.kt | 2 +- .../pl/treksoft/kvision/form/text/TextArea.kt | 2 +- src/main/kotlin/pl/treksoft/kvision/html/Button.kt | 35 +- src/main/kotlin/pl/treksoft/kvision/html/Icon.kt | 8 +- src/main/kotlin/pl/treksoft/kvision/html/Image.kt | 6 +- src/main/kotlin/pl/treksoft/kvision/html/Label.kt | 51 --- src/main/kotlin/pl/treksoft/kvision/html/Link.kt | 33 -- src/main/kotlin/pl/treksoft/kvision/html/List.kt | 5 +- src/main/kotlin/pl/treksoft/kvision/html/Tag.kt | 6 + src/main/kotlin/pl/treksoft/kvision/modal/Alert.kt | 121 ------ .../kotlin/pl/treksoft/kvision/modal/CloseIcon.kt | 48 --- .../kotlin/pl/treksoft/kvision/modal/Confirm.kt | 176 -------- src/main/kotlin/pl/treksoft/kvision/modal/Modal.kt | 298 -------------- src/main/kotlin/pl/treksoft/kvision/navbar/Nav.kt | 73 ---- .../kotlin/pl/treksoft/kvision/navbar/NavForm.kt | 74 ---- .../kotlin/pl/treksoft/kvision/navbar/Navbar.kt | 195 --------- .../treksoft/kvision/panel/ResponsiveGridPanel.kt | 185 --------- src/main/kotlin/pl/treksoft/kvision/panel/Root.kt | 26 +- .../pl/treksoft/kvision/panel/SimplePanel.kt | 4 +- .../kotlin/pl/treksoft/kvision/panel/TabPanel.kt | 270 ------------- .../pl/treksoft/kvision/progress/ProgressBar.kt | 162 -------- .../treksoft/kvision/progress/ProgressIndicator.kt | 125 ------ src/main/kotlin/pl/treksoft/kvision/table/Cell.kt | 16 + .../kotlin/pl/treksoft/kvision/table/HeaderCell.kt | 13 +- src/main/kotlin/pl/treksoft/kvision/table/Table.kt | 46 ++- .../pl/treksoft/kvision/toolbar/ButtonGroup.kt | 103 ----- .../kotlin/pl/treksoft/kvision/toolbar/Toolbar.kt | 58 --- .../pl/treksoft/kvision/window/MaximizeIcon.kt | 48 --- .../pl/treksoft/kvision/window/MinimizeIcon.kt | 48 --- .../kotlin/pl/treksoft/kvision/window/Window.kt | 446 -------------------- src/main/resources/css/style.css | 78 ++++ .../treksoft/kvision/dropdown/ContextMenuSpec.kt | 75 ---- .../pl/treksoft/kvision/dropdown/HeaderSpec.kt | 46 --- .../pl/treksoft/kvision/dropdown/SeparatorSpec.kt | 46 --- .../test/pl/treksoft/kvision/form/HelpBlockSpec.kt | 47 --- .../test/pl/treksoft/kvision/form/HelpTextSpec.kt | 47 +++ .../pl/treksoft/kvision/form/check/RadioSpec.kt | 2 +- .../test/pl/treksoft/kvision/form/text/TextSpec.kt | 2 +- .../test/pl/treksoft/kvision/navbar/NavFormSpec.kt | 54 --- .../test/pl/treksoft/kvision/navbar/NavSpec.kt | 54 --- .../test/pl/treksoft/kvision/navbar/NavbarSpec.kt | 70 ---- .../kvision/panel/ResponsiveGridPanelSpec.kt | 50 --- .../test/pl/treksoft/kvision/panel/TabPanelSpec.kt | 117 ------ .../treksoft/kvision/progress/ProgressBarSpec.kt | 56 --- .../kvision/progress/ProgressIndicatorSpec.kt | 55 --- .../test/pl/treksoft/kvision/table/TableSpec.kt | 3 +- .../pl/treksoft/kvision/toolbar/ButtonGroupSpec.kt | 57 --- .../pl/treksoft/kvision/toolbar/ToolbarSpec.kt | 47 --- 433 files changed, 15142 insertions(+), 14482 deletions(-) create mode 100644 kvision-modules/kvision-bootstrap-css/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-css/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-css/src/main/kotlin/pl/treksoft/kvision/KVManagerBootstrapCss.kt create mode 100644 kvision-modules/kvision-bootstrap-css/src/main/resources/css/paper.css create mode 100644 kvision-modules/kvision-bootstrap-css/webpack.config.d/bootstrap.js create mode 100644 kvision-modules/kvision-bootstrap-css/webpack.config.d/css.js create mode 100644 kvision-modules/kvision-bootstrap-css/webpack.config.d/jquery.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-datetime/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/KVManagerDatetime.kt create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ar.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.az.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.bg.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.bn.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ca.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.cs.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.da.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.de.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ee.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.el.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.es.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.fi.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.fr.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.he.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.hr.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.hu.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.hy.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.id.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.is.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.it.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ja.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ka.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ko.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.lt.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.lv.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ms.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.nb.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.nl.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.no.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.pl.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.pt-BR.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.pt.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ro.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.rs-latin.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.rs.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ru.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.sk.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.sl.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.sv.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.sw.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.th.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.tr.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.ua.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.uk.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.zh-TW.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/main/resources/js/locales/bootstrap-datetime-picker/bootstrap-datetimepicker.zh.js create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/test/kotlin/test/pl/treksoft/kvision/TestUtil.kt create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeInputSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-datetime/webpack.config.d/css.js create mode 100644 kvision-modules/kvision-bootstrap-dialog/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-dialog/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-dialog/src/main/kotlin/pl/treksoft/kvision/modal/Dialog.kt create mode 100644 kvision-modules/kvision-bootstrap-select-remote/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-select-remote/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemote.kt create mode 100644 kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemoteInput.kt create mode 100644 kvision-modules/kvision-bootstrap-select/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-select/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/KVManagerSelect.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/AjaxOptions.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/Select.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.de-DE.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.en-US.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.es-ES.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.fr-FR.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.it-IT.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.ja-JP.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.ko-KR.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.nl-NL.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.pl-PL.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.pt-BR.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.ru-RU.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/ajax-bootstrap-select/ajax-bootstrap-select.tr-TR.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/main/resources/js/locales/bootstrap-select/bootstrap-select-i18n.min.js create mode 100644 kvision-modules/kvision-bootstrap-select/src/test/kotlin/test/pl/treksoft/kvision/TestUtil.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/test/kotlin/test/pl/treksoft/kvision/form/select/SelectInputSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/test/kotlin/test/pl/treksoft/kvision/form/select/SelectOptGroupSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/test/kotlin/test/pl/treksoft/kvision/form/select/SelectOptionSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-select/src/test/kotlin/test/pl/treksoft/kvision/form/select/SelectSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-select/webpack.config.d/css.js create mode 100644 kvision-modules/kvision-bootstrap-spinner/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-spinner/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-spinner/src/main/kotlin/pl/treksoft/kvision/KVManagerSpinner.kt create mode 100644 kvision-modules/kvision-bootstrap-spinner/src/main/kotlin/pl/treksoft/kvision/form/spinner/Spinner.kt create mode 100644 kvision-modules/kvision-bootstrap-spinner/src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt create mode 100644 kvision-modules/kvision-bootstrap-spinner/src/test/kotlin/test/pl/treksoft/kvision/TestUtil.kt create mode 100644 kvision-modules/kvision-bootstrap-spinner/src/test/kotlin/test/pl/treksoft/kvision/form/spinner/SpinnerInputSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-spinner/src/test/kotlin/test/pl/treksoft/kvision/form/spinner/SpinnerSpec.kt create mode 100644 kvision-modules/kvision-bootstrap-spinner/webpack.config.d/css.js create mode 100644 kvision-modules/kvision-bootstrap-spinner/webpack.config.d/jquery.js create mode 100644 kvision-modules/kvision-bootstrap-upload/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-upload/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/kotlin/pl/treksoft/kvision/KVManagerUpload.kt create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/Upload.kt create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/UploadInput.kt create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/kotlin/pl/treksoft/kvision/utils/Utils.kt create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/ar.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/az.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/bg.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/ca.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/cr.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/cs.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/da.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/de.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/el.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/es.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/et.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/fa.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/fi.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/fr.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/gl.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/he.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/hu.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/id.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/it.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/ja.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/ka.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/ko.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/kz.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/lt.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/nl.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/no.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/pl.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/pt-BR.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/pt.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/ro.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/ru.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/sk.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/sl.js create mode 100644 kvision-modules/kvision-bootstrap-upload/src/main/resources/js/locales/bootstrap-fileinput/sv.js create mode 100644 k