aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorRobert Jaros <rjaros@finn.pl>2018-03-01 14:21:24 +0100
committerRobert Jaros <rjaros@finn.pl>2018-03-01 14:21:24 +0100
commit107481f9ad5783daed68de8dadea65be57a6266b (patch)
tree7f8063e5516585c12c599ce026c0d542b49ff985 /src/main
parent8163f730f4b195160b5b9ca4202c1f304ac68b27 (diff)
downloadkvision-107481f9ad5783daed68de8dadea65be57a6266b.tar.gz
kvision-107481f9ad5783daed68de8dadea65be57a6266b.tar.bz2
kvision-107481f9ad5783daed68de8dadea65be57a6266b.zip
Site initial commit
Diffstat (limited to 'src/main')
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/KVManager.kt157
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/Component.kt116
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/Container.kt69
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/Css.kt455
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt349
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/Types.kt44
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/Widget.kt585
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/WidgetWrapper.kt74
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/data/DataComponent.kt54
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt144
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/data/DataUpdatable.kt29
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/dropdown/DropDown.kt276
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/FieldLabel.kt49
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/Form.kt212
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/FormControl.kt163
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/FormPanel.kt234
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/HelpBlock.kt37
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/CheckBox.kt207
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/CheckInput.kt170
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/Radio.kt227
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/RadioGroup.kt171
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/AjaxOptions.kt125
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/Select.kt291
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt349
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt91
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt103
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/spinner/Spinner.kt262
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt307
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/AbstractText.kt183
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/AbstractTextInput.kt172
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/Password.kt52
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/RichText.kt71
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/RichTextInput.kt127
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/Text.kt81
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/TextArea.kt90
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/TextAreaInput.kt88
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/TextInput.kt96
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt252
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt272
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/hmr/ApplicationBase.kt41
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/hmr/HMR.kt47
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Button.kt150
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Div.kt65
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Image.kt118
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Label.kt48
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Link.kt85
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/List.kt150
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Tag.kt155
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/modal/Alert.kt121
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/modal/CloseIcon.kt48
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/modal/Confirm.kt143
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/modal/Modal.kt282
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/DockPanel.kt202
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/FlexPanel.kt269
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/GridPanel.kt316
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/HPanel.kt70
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/ResponsiveGridPanel.kt185
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/Root.kt96
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/SimplePanel.kt116
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/SplitPanel.kt137
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/StackPanel.kt115
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/TabPanel.kt152
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/VPanel.kt65
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/routing/Routing.kt51
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/utils/Keys.kt31
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/utils/Snabbdom.kt163
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/utils/Utils.kt201
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/window/Window.kt312
-rw-r--r--src/main/resources/css/style.css133
-rw-r--r--src/main/resources/img/placeholder.png0
-rw-r--r--src/main/resources/js/bootstrap-select-i18n.min.js1
-rw-r--r--src/main/resources/js/bootstrap.config.js64
-rw-r--r--src/main/resources/js/bootstrap.config.less0
-rw-r--r--src/main/web/index.html40
74 files changed, 0 insertions, 11006 deletions
diff --git a/src/main/kotlin/pl/treksoft/kvision/KVManager.kt b/src/main/kotlin/pl/treksoft/kvision/KVManager.kt
deleted file mode 100644
index 0030cf9d..00000000
--- a/src/main/kotlin/pl/treksoft/kvision/KVManager.kt
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2017-present Robert Jaros
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package pl.treksoft.kvision
-
-import com.github.snabbdom.Snabbdom
-import com.github.snabbdom.VNode
-import com.github.snabbdom.attributesModule
-import com.github.snabbdom.classModule
-import com.github.snabbdom.datasetModule
-import com.github.snabbdom.eventListenersModule
-import com.github.snabbdom.propsModule
-import com.github.snabbdom.styleModule
-import pl.treksoft.kvision.core.Component
-import pl.treksoft.kvision.utils.isIE11
-import kotlin.browser.document
-import kotlin.dom.clear
-
-/**
- * @suppress
- * External function for loading CommonJS modules.
- */
-external fun require(name: String): dynamic
-
-/**
- * Internal singleton object which initializes and configures KVision framework.
- */
-@Suppress("EmptyCatchBlock")
-internal object KVManager {
- internal const val AJAX_REQUEST_DELAY = 300
- internal const val KVNULL = "#kvnull"
-
- private val bootstrapWebpack = try {
- require("bootstrap-webpack")
- } catch (e: Throwable) {
- }
- private val fontAwesomeWebpack = try {
- require("font-awesome-webpack")
- } catch (e: Throwable) {
- }
- private val awesomeBootstrapCheckbox = try {
- require("awesome-bootstrap-checkbox")
- } catch (e: Throwable) {
- }
- private val bootstrapSelectCss = try {
- require("bootstrap-select/dist/css/bootstrap-select.min.css")
- } catch (e: Throwable) {
- }
- private val bootstrapSelect = try {
- require("bootstrap-select/dist/js/bootstrap-select.min.js")
- } catch (e: Throwable) {
- }
- private val bootstrapSelectI18n = try {
- require("./js/bootstrap-select-i18n.min.js")
- } catch (e: Throwable) {
- }
- private val bootstrapSelectAjaxCss = try {
- require("ajax-bootstrap-select/dist/css/ajax-bootstrap-select.min.css")
- } catch (e: Throwable) {
- }
- private val bootstrapSelectAjax = try {
- require("ajax-bootstrap-select/dist/js/ajax-bootstrap-select.min.js")
- } catch (e: Throwable) {
- }
- private val trixCss = try {
- require("trix/dist/trix.css")
- } catch (e: Throwable) {
- }
- private val trix = try {
- require("trix")
- } catch (e: Throwable) {
- }
- private val bootstrapDateTimePickerCss = try {
- require("bootstrap-datetime-picker/css/bootstrap-datetimepicker.min.css")
- } catch (e: Throwable) {
- }
- private val bootstrapDateTimePicker = try {
- require("bootstrap-datetime-picker/js/bootstrap-datetimepicker.min.js")
- } catch (e: Throwable) {
- }
- private val bootstrapTouchspinCss = try {
- require("bootstrap-touchspin/dist/jquery.bootstrap-touchspin.min.css")
- } catch (e: Throwable) {
- }
- private val bootstrapTouchspin = try {
- require("bootstrap-touchspin/dist/jquery.bootstrap-touchspin.min.js")
- } catch (e: Throwable) {
- }
- private val elementResizeEvent = try {
- require("element-resize-event")
- } catch (e: Throwable) {
- }
-
- private val resizable = require("jquery-resizable-dom")
- internal val fecha = require("fecha")
- private val sdPatch = Snabbdom.init(
- arrayOf(
- classModule, attributesModule, propsModule, styleModule,
- eventListenersModule, datasetModule
- )
- )
- private val sdVirtualize = require("snabbdom-virtualize/strings").default
- private val styleCss = require("./css/style.css")
-
- internal fun patch(id: String, vnode: VNode): VNode {
- val container = document.getElementById(id)
- container?.clear()
- return sdPatch(container, vnode)
- }
-
- internal fun patch(oldVNode: VNode, newVNode: VNode): VNode {
- return sdPatch(oldVNode, newVNode)
- }
-
- @Suppress("UnsafeCastFromDynamic")
- internal fun virtualize(html: String): VNode {
- return sdVirtualize(html)
- }
-
- @Suppress("UnsafeCastFromDynamic")
- internal fun setResizeEvent(component: Component, callback: () -> Unit) {
- if (!isIE11()) {
- component.getElement()?.let {
- elementResizeEvent(it, callback)
- }
- }
- }
-
- @Suppress("UnsafeCastFromDynamic")
- internal fun clearResizeEvent(component: Component) {
- if (!isIE11()) {
- if (component.getElement()?.asDynamic()?.__resizeTrigger__?.contentDocument != null) {
- component.getElement()?.let {
- elementResizeEvent.unbind(it)
- }
- }
- }
- }
-}
diff --git a/src/main/kotlin/pl/treksoft/kvision/core/Component.kt b/src/main/kotlin/pl/treksoft/kvision/core/Component.kt
deleted file mode 100644
index 7125536a..00000000
--- a/src/main/kotlin/pl/treksoft/kvision/core/Component.kt
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2017-present Robert Jaros
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package pl.treksoft.kvision.core
-
-import com.github.snabbdom.VNode
-import org.w3c.dom.Node
-import pl.treksoft.jquery.JQuery
-import pl.treksoft.kvision.panel.Root
-
-/**
- * Base interface for all components.
- */
-interface Component {
- /**
- * Parent of the current component.
- */
- var parent: Component?
- /**
- * Visibility state of the current component.
- */
- var visible: Boolean
-
- /**
- * Adds given value to the set of CSS classes generated in html code of current component.
- * @param css CSS class name
- * @return current component
- */
- fun addCssClass(css: String): Component
-
- /**
- * Removes given value from the set of CSS classes generated in html code of current component.
- * @param css CSS class name
- * @return current component
- */
- fun removeCssClass(css: String): Component
-
- /**
- * Adds given value to the set of CSS classes generated in html code of parent component.
- * @param css CSS class name
- * @return current component
- */
- fun addSurroundingCssClass(css: String): Component
-
- /**
- * Removes given value from the set of CSS classes generated in html code of parent component.
- * @param css CSS class name
- * @return current component
- */
- fun removeSurroundingCssClass(css: String): Component
-
- /**
- * @suppress
- * Internal function
- * Renders current component as a Snabbdom vnode.
- * @return Snabbdom vnode
- */
- fun renderVNode(): VNode
-
- /**
- * Returns DOM element bound to the current component.
- * @return DOM element
- */
- fun getElement(): Node?
-
- /**
- * Returns JQuery element bound to the current component.
- * @return JQuery element
- */
- fun getElementJQuery(): JQuery?
-
- /**
- * Returns JQuery element bound to the current component as a *dynamic* type.
- * @return JQuery element as a *dynamic* type
- */
- fun getElementJQueryD(): dynamic
-
- /**
- * @suppress
- * Internal function.
- * Sets **parent** property of current component to null.
- * @return current component
- */
- fun clearParent(): Component
- /**
- * @suppress
- * Internal function.
- * Returns root component - the root node of components tree
- * @return root component
- */
- fun getRoot(): Root?
- /**
- * @suppress
- * Internal function
- * Cleans resources allocated by the current component.
- */
- fun dispose()
-}
diff --git a/src/main/kotlin/pl/treksoft/kvision/core/Container.kt b/src/main/kotlin/pl/treksoft/kvision/core/Container.kt
deleted file mode 100644
index 653f4a79..00000000
--- a/src/main/kotlin/pl/treksoft/kvision/core/Container.kt
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2017-present Robert Jaros
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package pl.treksoft.kvision.core
-
-/**
- * Base interface for all containers.
- */
-interface Container : Component {
- /**
- * Adds given component to the current container.
- * @param child child component
- * @return current container
- */
- fun add(child: Component): Container
-
- /**
- * Adds a list of components to the current container.
- * @param children list of child components
- * @return current container
- */
- fun addAll(children: List<Component>): Container
-
- /**
- * Operator function for adding children in a DSL style.
- * @param children children components
- * @return current container
- */
- operator fun invoke(vararg children: Component): Container {
- return addAll(children.asList())
- }
-
- /**
- * Removes given component from the current container.
- * @param child child component
- * @return current container
- */
- fun remove(child: Component): Container
-
- /**
- * Removes all children from the current container.
- * @return current container
- */
- fun removeAll(): Container
-
- /**
- * Returns a list of children of the current container.
- * @return list of children
- */
- fun getChildren(): List<Component>
-}
diff --git a/src/main/kotlin/pl/treksoft/kvision/core/Css.kt b/src/main/kotlin/pl/treksoft/kvision/core/Css.kt
deleted file mode 100644
index ff01cc9f..00000000
--- a/src/main/kotlin/pl/treksoft/kvision/core/Css.kt
+++ /dev/null
@@ -1,455 +0,0 @@
-/*
- * Copyright (c) 2017-present Robert Jaros
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package pl.treksoft.kvision.core
-
-import pl.treksoft.kvision.utils.asString
-import pl.treksoft.kvision.utils.toHexString
-
-/**
- * Definitions of CSS units.
- */
-@Suppress("EnumNaming", "EnumEntryName")
-enum class UNIT(internal val unit: String) {
- px("px"),
- pt("pt"),
- em("em"),
- cm("cm"),
- mm("mm"),
- `in`("in"),
- pc("pc"),
- ch("ch"),
- rem("rem"),
-