104 lines
3.6 KiB
JavaScript
104 lines
3.6 KiB
JavaScript
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
|