diff options
Diffstat (limited to 'src/main')
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"), - vw("vw"), - vh("vh"), - vmin("vmin"), - vmax("vmax"), - perc("%"), - auto("auto") -} - -/** - * Definitions of CSS border styles. - */ -enum class BorderStyle(internal val borderStyle: String) { - NONE("none"), - HIDDEN("hidden"), - DOTTED("dotted"), - DASHED("dashed"), - SOLID("solid"), - DOUBLE("double"), - GROOVE("groove"), - RIDGE("ridge"), - INSET("inset"), - OUTSET("outset"), - INITIAL("initial"), - INHERIT("inherit") -} - -/** - * Definitions of CSS color names. - */ -enum class Col(internal val color: String) { - ALICEBLUE("aliceblue"), - ANTIQUEWHITE("antiquewhite"), - AQUA("aqua"), - AQUAMARINE("aquamarine"), - AZURE("azure"), - BEIGE("beige"), - BISQUE("bisque"), - BLACK("black"), - BLANCHEDALMOND("blanchedalmond"), - BLUE("blue"), - BLUEVIOLET("blueviolet"), - BROWN("brown"), - BURLYWOOD("burlywood" |
