Initial commit
This commit is contained in:
103
web/js/kotlin/komp.js
Normal file
103
web/js/kotlin/komp.js
Normal file
@@ -0,0 +1,103 @@
|
||||
if (typeof kotlin === 'undefined') {
|
||||
throw new Error("Error loading module 'komp'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'komp'.");
|
||||
}
|
||||
if (typeof this['kotlinx-html-js'] === 'undefined') {
|
||||
throw new Error("Error loading module 'komp'. Its dependency 'kotlinx-html-js' was not found. Please, check whether 'kotlinx-html-js' is loaded prior to 'komp'.");
|
||||
}
|
||||
var komp = function (_, Kotlin, $module$kotlinx_html_js) {
|
||||
'use strict';
|
||||
var TagConsumer = $module$kotlinx_html_js.kotlinx.html.TagConsumer;
|
||||
var get_create = $module$kotlinx_html_js.kotlinx.html.dom.get_create_4wc2mh$;
|
||||
var HashMap_init = Kotlin.kotlin.collections.HashMap_init_q3lmfv$;
|
||||
function include($receiver, component) {
|
||||
var tmp$;
|
||||
var result = component.render_q0cphf$(Kotlin.isType(tmp$ = $receiver.consumer, TagConsumer) ? tmp$ : Kotlin.throwCCE());
|
||||
component.element = result;
|
||||
Komp_getInstance().define_eho435$(result, component);
|
||||
}
|
||||
function HtmlComponent() {
|
||||
this.element = null;
|
||||
}
|
||||
HtmlComponent.prototype.create = function () {
|
||||
var elem = this.element;
|
||||
if (elem != null) {
|
||||
Komp_getInstance().remove_lt8gi4$(elem);
|
||||
}
|
||||
elem = this.render_q0cphf$(get_create(document));
|
||||
Komp_getInstance().define_eho435$(elem, this);
|
||||
this.element = elem;
|
||||
return elem;
|
||||
};
|
||||
HtmlComponent.prototype.refresh = function () {
|
||||
Komp_getInstance().refresh_y4uc7f$(this.element);
|
||||
};
|
||||
HtmlComponent.$metadata$ = {
|
||||
kind: Kotlin.Kind.CLASS,
|
||||
simpleName: 'HtmlComponent',
|
||||
interfaces: []
|
||||
};
|
||||
function Komp() {
|
||||
Komp_instance = this;
|
||||
this.elements_0 = HashMap_init();
|
||||
}
|
||||
Komp.prototype.define_eho435$ = function (element, component) {
|
||||
this.elements_0.put_xwzc9p$(element, component);
|
||||
};
|
||||
Komp.prototype.create_eho435$ = function (parent, component) {
|
||||
var element = component.create();
|
||||
parent.appendChild(element);
|
||||
this.elements_0.put_xwzc9p$(element, component);
|
||||
};
|
||||
Komp.prototype.remove_lt8gi4$ = function (element) {
|
||||
this.elements_0.remove_11rb$(element);
|
||||
};
|
||||
Komp.prototype.remove = function (component) {
|
||||
var tmp$_0;
|
||||
tmp$_0 = this.elements_0.entries.iterator();
|
||||
while (tmp$_0.hasNext()) {
|
||||
var tmp$ = tmp$_0.next();
|
||||
var key = tmp$.key;
|
||||
var value = tmp$.value;
|
||||
if (Kotlin.equals(value, component)) {
|
||||
this.elements_0.remove_11rb$(key);
|
||||
}
|
||||
}
|
||||
};
|
||||
Komp.prototype.refresh_ap2bc9$ = function (component) {
|
||||
this.refresh_y4uc7f$(component.element);
|
||||
};
|
||||
Komp.prototype.refresh_y4uc7f$ = function (element) {
|
||||
if (element != null) {
|
||||
var comp = this.elements_0.get_11rb$(element);
|
||||
if (Kotlin.isType(element, HTMLElement) && comp != null) {
|
||||
var parent = element.parentElement;
|
||||
var newElement = comp.create();
|
||||
parent != null ? parent.replaceChild(newElement, element) : null;
|
||||
}
|
||||
}
|
||||
};
|
||||
Komp.$metadata$ = {
|
||||
kind: Kotlin.Kind.OBJECT,
|
||||
simpleName: 'Komp',
|
||||
interfaces: []
|
||||
};
|
||||
var Komp_instance = null;
|
||||
function Komp_getInstance() {
|
||||
if (Komp_instance === null) {
|
||||
new Komp();
|
||||
}
|
||||
return Komp_instance;
|
||||
}
|
||||
var package$nl = _.nl || (_.nl = {});
|
||||
var package$astraeus = package$nl.astraeus || (package$nl.astraeus = {});
|
||||
var package$komp = package$astraeus.komp || (package$astraeus.komp = {});
|
||||
package$komp.include_dqcce7$ = include;
|
||||
package$komp.HtmlComponent = HtmlComponent;
|
||||
Object.defineProperty(package$komp, 'Komp', {
|
||||
get: Komp_getInstance
|
||||
});
|
||||
Kotlin.defineModule('komp', _);
|
||||
return _;
|
||||
}(typeof komp === 'undefined' ? {} : komp, kotlin, this['kotlinx-html-js']);
|
||||
|
||||
//@ sourceMappingURL=komp.js.map
|
||||
Reference in New Issue
Block a user