diff --git a/mol/-/web.css b/mol/-/web.css deleted file mode 100644 index 56117459..00000000 --- a/mol/-/web.css +++ /dev/null @@ -1,217 +0,0 @@ -[mol_view] { - transition-property: background-color, height, width, min-height, min-width, max-width, max-height, transform; - transition-duration: .2s; - -webkit-appearance: none; - word-break: break-word -} -[mol_view] > * { - word-break: inherit -} -[mol_view_root] { - margin: 0; - padding: 0; - width: 100%; - height: 100%; - box-sizing: border-box; - font: 1rem/1.5 "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; - background: #fcfcfc; - touch-action: manipulation -} -[mol_view][mol_view_error]:not([mol_view_error="$mol_atom_wait"]) { - background-image: repeating-linear-gradient( - 135deg, - rgba(255, 220, 220, 1), - rgba(255, 220, 220, 1) 11px, - rgba(255, 255, 220, 1) 10px, - rgba(255, 255, 220, 1) 20px - ); - background-size: 28px 28px; - color: black -} -[mol_view][mol_view_error] * { - background: none -} -@keyframes mol_view_wait_show { - from { - background: none - } -} -@keyframes mol_view_wait_move { - from { - background-position: 0 0 - } - to { - background-position: 28px 0 - } -} -[mol_view][mol_view_error="$mol_atom_wait"] { - background-image: repeating-linear-gradient( - 45deg, - rgba(58, 140, 203, 0.025), - rgba(58, 140, 203, 0.025) 9px, - rgba(255, 255, 255, .015) 10px, - rgba(255, 255, 255, .015) 20px - ); - background-size: 28px 28px; - animation: mol_view_wait_show .5s ease-in , mol_view_wait_move .25s steps(6) infinite -} -[mol_view][mol_view_error="$mol_atom_wait"] * { - background: none -} -[mol_scroll] { - display: block; - overflow: auto; - flex: 1 1 auto; - -ms-grid-row-align: stretch; - align-self: stretch; - box-sizing: border-box; - will-change: scroll-position; - transform: translateZ(0); - box-shadow: 0 0 0 1px rgba(230, 230, 230, .75); - max-height: 100%; - max-width: 100%; - -webkit-overflow-scrolling: touch -} -[mol_scroll] > * { - transform: translateZ(0) -} -@media print { - [mol_scroll] { - overflow: visible - } -} -[mol_scroll_strut] { - position: absolute; - display: block; - padding: 1px; - margin: -1px; - z-index: 0; - transition: none -} -[mol_list] { - will-change: contents; - display: block -} -[mol_pop] { - position: relative; - display: inline-flex -} -[mol_pop]:hover { - z-index: 4 -} -[mol_pop_bubble] { - box-shadow: 0 0 0 1px rgba(0, 0, 0, .2); - border-radius: 2px; - position: absolute; - z-index: 3; - background: white; - color: rgba(0, 0, 0, .9); - max-width: none; - max-height: none; - overflow: hidden; - overflow-y: auto; - word-break: normal -} -[mol_pop_bubble]:focus { - outline: none -} -[mol_pop_align="left_top"] { - transform: translate(-100%); - left: 0; - bottom: 0 -} -[mol_pop_align="left_center"] { - transform: translate(-100%, -50%); - left: 0; - top: 50% -} -[mol_pop_align="left_bottom"] { - transform: translate(-100%); - left: 0; - top: 0 -} -[mol_pop_align="right_top"] { - transform: translate(100%); - right: 0; - bottom: 0 -} -[mol_pop_align="right_center"] { - transform: translate(100%, -50%); - right: 0; - top: 50% -} -[mol_pop_align="right_bottom"] { - transform: translate(100%); - right: 0; - top: 0 -} -[mol_pop_align="center"] { - left: 50%; - top: 50%; - transform: translate(-50%, -50%) -} -[mol_pop_align="top_left"] { - right: 0; - bottom: 100% -} -[mol_pop_align="top_center"] { - transform: translate(-50%); - left: 50%; - bottom: 100% -} -[mol_pop_align="top_right"] { - left: 0; - bottom: 100% -} -[mol_pop_align="bottom_left"] { - right: 0; - top: 100% -} -[mol_pop_align="bottom_center"] { - transform: translate(-50%); - left: 50%; - top: 100% -} -[mol_pop_align="bottom_right"] { - left: 0; - top: 100% -} -[mol_pop_over]:focus { - outline: none -} -[mol_perf_dbmon_databases] { - display: table; - table-layout: fixed; - width: 100% -} -[mol_perf_dbmon_database] { - display: table-row; - background: white -} -[mol_perf_dbmon_database] > * { - display: table-cell; - padding: .5rem; - border-top: 1px solid #ddd -} -[mol_perf_dbmon_database]:nth-child(odd) { - background: #f9f9f9 -} -[mol_perf_dbmon_query_count_label] { - border-radius: .25em; - color: #fff; - font-size: 75%; - font-weight: 700; - line-height: 1; - padding: .25em .5em -} -[mol_perf_dbmon_query_count_label~="label-success"] { - background-color: #5cb85c -} -[mol_perf_dbmon_query_count_label~="label-warning"] { - background-color: #f0ad4e -} -[mol_perf_dbmon_query_bubble] { - padding: .5rem -} - -/*# sourceMappingURL=web.css.map */ \ No newline at end of file diff --git a/mol/-/web.css.map b/mol/-/web.css.map deleted file mode 100644 index 0ae7625a..00000000 --- a/mol/-/web.css.map +++ /dev/null @@ -1,22 +0,0 @@ -{ - "version": 3, - "sources": [ - "../../../view/view.css", - "../../../scroll/scroll.view.css", - "../../../list/list.view.css", - "../../../pop/pop.view.css", - "../../../pop/over/over.view.css", - "../dbmon.view.css" - ], - "names": [], - "mappings": "AAAA;IACC,8GAA8G;IAC9G,yBAAyB;IACzB,yBAAyB;IACzB,sBAAuB;CACvB;AAED;IACC,mBAAoB;CACpB;AAED;IACC,UAAU;IACV,WAAW;IACX,YAAY;IACZ,aAAa;IACb,uBAAuB;IACvB,qGAA2B;IAC3B,oBAAkC;IAClC,0BAA2B;CAC3B;AAED;IACC;;;;;;GAME;IACF,2BAA2B;IAC3B,YAAa;CACb;AACD;IACC,gBAAiB;CACjB;AAED;IACC;QACC,gBAAiB;KACjB;CACD;AAED;IACC;QACC,wBAAyB;KACzB;IACD;QACC,2BAA4B;KAC5B;CACD;AAED;IACC;;;;;;GAME;IACF,2BAA2B;IAC3B,qFAAsF;CACtF;AAED;IACC,gBAAiB;CACjB;AClED;IACC,eAAe;IACf,eAAe;IACf,eAAe;IACf,4BAAoB;QAApB,oBAAoB;IACpB,uBAAuB;IACvB,6BAA6B;IAC7B,yBAAyB;IACzB,+CAA0C;IAC1C,iBAAiB;IACjB,gBAAgB;IAChB,iCAAkC;CAClC;AAED;IACC,wBAAyB;CACzB;AAED;IACC;QACC,iBAAkB;KAClB;CACD;AAED;IACC,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,aAAa;IACb,WAAW;IACX,gBAAiB;CACjB;AC/BD;IACC,sBAAsB;IACtB,cAAe;CACf;ACHD;IACC,mBAAmB;IACnB,oBAAqB;CACrB;AAED;IACC,UAAW;CACX;AAED;IACC,wCAAkC;IAClC,mBAAqC;IACrC,mBAAmB;IACnB,WAAW;IACX,kBAAiC;IACjC,yBAAiC;IACjC,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAmB;CACnB;AAED;IACC,aAAc;CACd;AAED;IACC,4BAA4B;IAC5B,QAAQ;IACR,SAAU;CACV;AAED;IACC,kCAAkC;IAClC,QAAQ;IACR,QAAS;CACT;AAED;IACC,4BAA4B;IAC5B,QAAQ;IACR,MAAO;CACP;AAED;IACC,2BAA2B;IAC3B,SAAS;IACT,SAAU;CACV;AAED;IACC,iCAAiC;IACjC,SAAS;IACT,QAAS;CACT;AAED;IACC,2BAA2B;IAC3B,SAAS;IACT,MAAO;CACP;AAED;IACC,UAAU;IACV,SAAS;IACT,gCAAiC;CACjC;AAED;IACC,SAAS;IACT,YAAa;CACb;AAED;IACC,2BAA2B;IAC3B,UAAU;IACV,YAAa;CACb;AAED;IACC,QAAQ;IACR,YAAa;CACb;AAED;IACC,SAAS;IACT,SAAU;CACV;AAED;IACC,2BAA2B;IAC3B,UAAU;IACV,SAAU;CACV;AAED;IACC,QAAQ;IACR,SAAU;CACV;ACnGD;IACC,aAAc;CACd;ACFD;IACC,eAAe;IACf,oBAAoB;IACpB,WAAY;CACZ;AAED;IACC,mBAAmB;IACnB,iBAAkB;CAClB;AAED;IACC,oBAAoB;IACpB,eAAe;IACf,0BAA2B;CAC3B;AAED;IACC,mBAAoB;CACpB;AAED;IACC,qBAAqB;IACrB,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,mBAAoB;CACpB;AAED;IACC,yBAA0B;CAC1B;AAED;IACC,yBAA0B;CAC1B;AAED;IACC,cAAe;CACf", - "file": "web.css", - "sourcesContent": [ - "[mol_view] {\n\ttransition-property: background-color, height, width, min-height, min-width, max-width, max-height, transform;\n\ttransition-duration: .2s;\n\t-webkit-appearance: none;\n\tword-break: break-word;\n}\n\n[mol_view] > * {\n\tword-break: inherit;\n}\n\n[mol_view_root] {\n\tmargin: 0;\n\tpadding: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbox-sizing: border-box;\n\tfont: var(--mol_skin_font);\n\tbackground: var(--mol_skin_light);\n\ttouch-action: manipulation;\n}\n\n[mol_view][mol_view_error]:not([mol_view_error=\"$mol_atom_wait\"]) {\n\tbackground-image: repeating-linear-gradient(\n\t\t135deg,\n\t\trgba(255,220,220,1),\n\t\trgba(255,220,220,1) 11px,\n\t\trgba(255,255,220,1) 10px,\n\t\trgba(255,255,220,1) 20px\n\t);\n\tbackground-size: 28px 28px;\n\tcolor: black;\n}\n[mol_view][mol_view_error] * {\n\tbackground: none;\n}\n\n@keyframes mol_view_wait_show {\n\tfrom {\n\t\tbackground: none;\n\t}\n}\n\n@keyframes mol_view_wait_move {\n\tfrom {\n\t\tbackground-position: 0 0;\n\t}\n\tto {\n\t\tbackground-position: 28px 0;\n\t}\n}\n\n[mol_view][mol_view_error=\"$mol_atom_wait\"] {\n\tbackground-image: repeating-linear-gradient(\n\t\t45deg,\n\t\tcolor( var(--mol_skin_base) alpha(.025) ),\n\t\tcolor( var(--mol_skin_base) alpha(.025) ) 9px,\n\t\trgba(255,255,255,.015) 10px,\n\t\trgba(255,255,255,.015) 20px\n\t);\n\tbackground-size: 28px 28px;\n\tanimation: mol_view_wait_show .5s ease-in , mol_view_wait_move .25s steps(6) infinite;\n}\n\n[mol_view][mol_view_error=\"$mol_atom_wait\"] * {\n\tbackground: none;\n}\n", - "[mol_scroll] {\n\tdisplay: block;\n\toverflow: auto;\n\tflex: 1 1 auto;\n\talign-self: stretch;\n\tbox-sizing: border-box;\n\twill-change: scroll-position;\n\ttransform: translateZ(0);\n\tbox-shadow: var(--mol_skin_light_outline);\n\tmax-height: 100%;\n\tmax-width: 100%;\n\t-webkit-overflow-scrolling: touch;\n}\n\n[mol_scroll] > * {\n\ttransform: translateZ(0);\n}\n\n@media print {\n\t[mol_scroll] {\n\t\toverflow: visible;\n\t}\n}\n\n[mol_scroll_strut] {\n\tposition: absolute;\n\tdisplay: block;\n\tpadding: 1px;\n\tmargin: -1px;\n\tz-index: 0; \n\ttransition: none;\n}\n", - "[mol_list] {\n\twill-change: contents;\n\tdisplay: block;\n}\n", - "[mol_pop] {\n\tposition: relative;\n\tdisplay: inline-flex;\n}\n\n[mol_pop]:hover {\n\tz-index: 4;\n}\n\n[mol_pop_bubble] {\n\tbox-shadow: var(--mol_skin_float);\n\tborder-radius: var(--mol_skin_round);\n\tposition: absolute;\n\tz-index: 3;\n\tbackground: var(--mol_skin_card);\n\tcolor: var(--mol_skin_card_text);\n\tmax-width: none;\n\tmax-height: none;\n\toverflow: hidden;\n\toverflow-y: auto;\n\tword-break: normal;\n}\n\n[mol_pop_bubble]:focus {\n\toutline: none;\n}\n\n[mol_pop_align=\"left_top\"] {\n\ttransform: translate(-100%);\n\tleft: 0;\n\tbottom: 0;\n}\n\n[mol_pop_align=\"left_center\"] {\n\ttransform: translate(-100%, -50%);\n\tleft: 0;\n\ttop: 50%;\n}\n\n[mol_pop_align=\"left_bottom\"] {\n\ttransform: translate(-100%);\n\tleft: 0;\n\ttop: 0;\n}\n\n[mol_pop_align=\"right_top\"] {\n\ttransform: translate(100%);\n\tright: 0;\n\tbottom: 0;\n}\n\n[mol_pop_align=\"right_center\"] {\n\ttransform: translate(100%, -50%);\n\tright: 0;\n\ttop: 50%;\n}\n\n[mol_pop_align=\"right_bottom\"] {\n\ttransform: translate(100%);\n\tright: 0;\n\ttop: 0;\n}\n\n[mol_pop_align=\"center\"] {\n\tleft: 50%;\n\ttop: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n[mol_pop_align=\"top_left\"] {\n\tright: 0;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"top_center\"] {\n\ttransform: translate(-50%);\n\tleft: 50%;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"top_right\"] {\n\tleft: 0;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"bottom_left\"] {\n\tright: 0;\n\ttop: 100%;\n}\n\n[mol_pop_align=\"bottom_center\"] {\n\ttransform: translate(-50%);\n\tleft: 50%;\n\ttop: 100%;\n}\n\n[mol_pop_align=\"bottom_right\"] {\n\tleft: 0;\n\ttop: 100%;\n}\n", - "[mol_pop_over]:focus {\r\n\toutline: none;\r\n}", - "[mol_perf_dbmon_databases] {\n\tdisplay: table;\n\ttable-layout: fixed;\n\twidth: 100%;\n}\n\n[mol_perf_dbmon_database] {\n\tdisplay: table-row;\n\tbackground: white;\n}\n\n[mol_perf_dbmon_database] > * {\n\tdisplay: table-cell;\n\tpadding: .5rem;\n\tborder-top: 1px solid #ddd;\n}\n\n[mol_perf_dbmon_database]:nth-child(odd) {\n\tbackground: #f9f9f9;\n}\n\n[mol_perf_dbmon_query_count_label] {\n\tborder-radius: .25em;\n\tcolor: #fff;\n\tfont-size: 75%;\n\tfont-weight: 700;\n\tline-height: 1;\n\tpadding: .25em .5em;\n}\n\n[mol_perf_dbmon_query_count_label~=\"label-success\"] {\n\tbackground-color: #5cb85c;\n}\n\n[mol_perf_dbmon_query_count_label~=\"label-warning\"] {\n\tbackground-color: #f0ad4e;\n}\n\n[mol_perf_dbmon_query_bubble] {\n\tpadding: .5rem;\n}\n" - ] -} \ No newline at end of file diff --git a/mol/-/web.js b/mol/-/web.js deleted file mode 100644 index ec4be048..00000000 --- a/mol/-/web.js +++ /dev/null @@ -1,2385 +0,0 @@ -/// Fake namespace for optional overrides -/// -/// namespace $ { export var x = 1 , y = 1 } // defaults -/// namespace $.$$ { export var x = 2 } // overrides -/// namespace $.$$ { console.log( x , y ) } // usage -/// -this.$ = this.$ || this -var $ = this.$ -$.$$ = $ - -$.$mol = $ // deprecated -console.warn( 'namespace $.$mol is deprecated. Use namespace $.$$ instead.' ) - -; -//mol.js.map -; -var $; -(function ($) { - $.$mol_func_name_dict = new WeakMap(); - function $mol_func_name(func) { - if (func.name) - return func.name; - var name = $.$mol_func_name_dict.get(func); - if (name != null) - return name; - name = Function.prototype.toString.call(func).match(/^function ([a-z0-9_$]*)/)[1]; - $.$mol_func_name_dict.set(func, name); - return name; - } - $.$mol_func_name = $mol_func_name; -})($ || ($ = {})); -//func.js.map -; -var $; -(function ($) { - function $mol_deprecated(message) { - return function (host, field, descr) { - var value = descr.value; - descr.value = function $mol_deprecated_wrapper() { - console.warn(host.constructor + "::" + field + " is deprecated. " + message); - return value.apply(this, arguments); - }; - }; - } - $.$mol_deprecated = $mol_deprecated; -})($ || ($ = {})); -//deprecated.js.map -; -var $; -(function ($) { - function $mol_log(path, values) { - var filter = $mol_log.filter(); - if (filter == null) - return; - if (path.indexOf(filter) === -1) - return; - var time = new Date().toLocaleTimeString(); - console.log(time, path, values); - var debug = $mol_log.debug(); - if (debug == null) - return; - if (path.indexOf(debug) === -1) - return; - debugger; - } - $.$mol_log = $mol_log; - (function ($mol_log) { - var _filter; - function filter(next) { - if (next !== void 0) { - if (next == null) { - sessionStorage.removeItem('$mol_log.filter()'); - } - else { - sessionStorage.setItem('$mol_log.filter()', next); - } - _filter = next; - } - if (_filter !== void 0) - return _filter; - return _filter = sessionStorage.getItem('$mol_log.filter()'); - } - $mol_log.filter = filter; - var _debug; - function debug(next) { - if (next === void 0) { next = _debug; } - return _debug = next; - } - $mol_log.debug = debug; - })($mol_log = $.$mol_log || ($.$mol_log = {})); -})($ || ($ = {})); -//log.web.js.map -; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_object = (function () { - function $mol_object() { - this['destroyed()'] = false; - } - $mol_object.prototype.Class = function () { - return this.constructor; - }; - $mol_object.toString = function () { - return $.$mol_func_name(this); - }; - $mol_object.prototype.object_owner = function (next) { - if (this['object_owner()']) - return this['object_owner()']; - return this['object_owner()'] = next; - }; - $mol_object.prototype.object_field = function (next) { - if (this['object_field()']) - return this['object_field()'] || ''; - return this['object_field()'] = next; - }; - $mol_object.prototype.toString = function () { - var path = ''; - var owner = this.object_owner(); - if (owner) - path = owner.toString(); - var field = this.object_field(); - if (field) - path += '.' + field; - return path; - }; - $mol_object.prototype.toJSON = function () { - return this.toString(); - }; - $mol_object.make = function (config) { - var instance = new this; - for (var key in config) - instance[key] = config[key]; - return instance; - }; - $mol_object.prototype.setup = function (script) { - script(this); - return this; - }; - $mol_object.prototype.destroyed = function (next) { - if (next === void 0) - return this['destroyed()']; - this['destroyed()'] = next; - this.log(['.destroyed()', next]); - return next; - }; - $mol_object.prototype.log = function (values) { - if ($.$mol_log.filter() == null) - return; - $.$mol_log(this.toString(), values); - }; - __decorate([ - $.$mol_deprecated("Use $mol_object.make() instead.") - ], $mol_object.prototype, "setup", null); - return $mol_object; - }()); - $.$mol_object = $mol_object; -})($ || ($ = {})); -//object.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var $; -(function ($) { - var $mol_defer = (function (_super) { - __extends($mol_defer, _super); - function $mol_defer(run) { - var _this = _super.call(this) || this; - _this.run = run; - $mol_defer.add(_this); - return _this; - } - $mol_defer.prototype.destroyed = function (next) { - if (next) - $mol_defer.drop(this); - return _super.prototype.destroyed.call(this, next); - }; - $mol_defer.schedule = function () { - var _this = this; - if (this.timer) - return; - this.timer = this.scheduleNative(function () { - _this.timer = 0; - _this.run(); - }); - }; - $mol_defer.unschedule = function () { - if (!this.timer) - return; - cancelAnimationFrame(this.timer); - this.timer = 0; - }; - $mol_defer.add = function (defer) { - this.all.push(defer); - this.schedule(); - }; - $mol_defer.drop = function (defer) { - var index = this.all.indexOf(defer); - if (index >= 0) - this.all.splice(index, 1); - }; - $mol_defer.run = function () { - if (this.all.length === 0) - return; - this.schedule(); - for (var defer; defer = this.all.pop();) - defer.run(); - }; - $mol_defer.all = []; - $mol_defer.timer = 0; - $mol_defer.scheduleNative = (typeof requestAnimationFrame == 'function') - ? function (handler) { return requestAnimationFrame(handler); } - : function (handler) { return setTimeout(handler, 16); }; - return $mol_defer; - }($.$mol_object)); - $.$mol_defer = $mol_defer; -})($ || ($ = {})); -//defer.js.map -; -var $; -(function ($) { - $.$mol_state_stack = new Map(); -})($ || ($ = {})); -//stack.js.map -; -void function() { - - if( typeof alert === 'function' ) { - var nativeAlert = alert - window.alert = function alert( message ) { - console.warn( 'Alerts causes atom synchronization problems in IE. Use custom notificator instead.' ) - return nativeAlert( message ) - } - } - - if( typeof confirm === 'function' ) { - var nativeConfirm = confirm - window.confirm = function confirm( question ) { - console.warn( 'Confirms causes atom synchronization problems in IE. Use custom dialog instead.' ) - return nativeConfirm( question ) - } - } - - if( typeof confirm === 'function' ) { - var nativePrompt = prompt - window.prompt = function prompt( question , def ) { - console.warn( 'Prompts causes atom synchronization problems in IE. Use custom dialog instead.' ) - return nativePrompt( question , def ) - } - } - -}() - -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var $; -(function ($) { - var $mol_atom_status; - (function ($mol_atom_status) { - $mol_atom_status["obsolete"] = "obsolete"; - $mol_atom_status["checking"] = "checking"; - $mol_atom_status["pulling"] = "pulling"; - $mol_atom_status["actual"] = "actual"; - })($mol_atom_status = $.$mol_atom_status || ($.$mol_atom_status = {})); - var $mol_atom = (function (_super) { - __extends($mol_atom, _super); - function $mol_atom(host, handler, field) { - if (handler === void 0) { handler = function () { return undefined; }; } - if (field === void 0) { field = ''; } - var _this = _super.call(this) || this; - _this.masters = null; - _this.slaves = null; - _this.status = $mol_atom_status.obsolete; - _this.autoFresh = true; - _this.handler = handler; - _this.host = Object(host); - _this.field = field; - return _this; - } - $mol_atom.prototype.destroyed = function (next) { - if (next) { - this.unlink(); - var host = this.host; - var value = this['value()']; - if (value instanceof $.$mol_object) { - if ((value.object_owner() === host) && (value.object_field() === this.field)) { - value.destroyed(true); - } - } - this.status = $mol_atom_status.obsolete; - } - return _super.prototype.destroyed.call(this, next); - }; - $mol_atom.prototype.unlink = function () { - this.disobey_all(); - this.check_slaves(); - }; - $mol_atom.prototype.toString = function () { - return this.host + "." + this.field + "@"; - }; - $mol_atom.prototype.get = function (force) { - if (this.status === $mol_atom_status.pulling) { - throw new Error("Cyclic atom dependency of " + this); - } - this.actualize(force); - var slave = $mol_atom.stack[0]; - if (slave) { - this.lead(slave); - slave.obey(this); - } - var value = this['value()']; - if (typeof Proxy !== 'function' && value instanceof Error) { - throw value; - } - return value; - }; - $mol_atom.prototype.actualize = function (force) { - var _this = this; - if (!force && this.status === $mol_atom_status.actual) - return; - var slave = $mol_atom.stack[0]; - $mol_atom.stack[0] = this; - if (!force && this.status === $mol_atom_status.checking) { - this.masters.forEach(function (master) { - if (_this.status !== $mol_atom_status.checking) - return; - master.actualize(); - }); - if (this.status === $mol_atom_status.checking) { - this.status = $mol_atom_status.actual; - } - } - if (force || this.status !== $mol_atom_status.actual) { - var oldMasters = this.masters; - this.masters = null; - if (oldMasters) - oldMasters.forEach(function (master) { - master.dislead(_this); - }); - this.status = $mol_atom_status.pulling; - var next = this.pull(force); - this.push(next); - } - $mol_atom.stack[0] = slave; - }; - $mol_atom.prototype.pull = function (force) { - try { - return this.handler(this._next, force); - } - catch (error) { - if (error['$mol_atom_catched']) - return error; - if (error instanceof $mol_atom_wait) - return error; - console.error(error.stack || error); - if (!(error instanceof Error)) { - error = new Error(error.stack || error); - } - error['$mol_atom_catched'] = true; - return error; - } - }; - $mol_atom.prototype.set = function (next) { - var next_normal = this.normalize(next, this._next); - if (next_normal === this._next) - return this.get(); - if (next_normal === this['value()']) - return this.get(); - this._next = next_normal; - this.obsolete(); - return this.get(); - }; - $mol_atom.prototype.normalize = function (next, prev) { - if (next === prev) - return next; - if ((next instanceof Array) && (prev instanceof Array) && (next.length === prev.length)) { - for (var i = 0; i < next.length; ++i) { - if (next[i] !== prev[i]) - return next; - } - return prev; - } - return next; - }; - $mol_atom.prototype.push = function (next_raw) { - this._next = undefined; - this.status = $mol_atom_status.actual; - var host = this.host; - var prev = this['value()']; - if (next_raw === undefined) - return prev; - var next = (next_raw instanceof Error) ? next_raw : this.normalize(next_raw, prev); - if (next === prev) - return prev; - if (next instanceof $.$mol_object) { - next.object_field(this.field); - next.object_owner(host); - } - if ((typeof Proxy === 'function') && (next instanceof Error)) { - next = new Proxy(next, { - get: function (target) { - throw target.valueOf(); - }, - ownKeys: function (target) { - throw target.valueOf(); - }, - }); - } - this['value()'] = next; - this.log(['push', next, prev]); - this.obsolete_slaves(); - return next; - }; - $mol_atom.prototype.obsolete_slaves = function () { - if (!this.slaves) - return; - this.slaves.forEach(function (slave) { return slave.obsolete(); }); - }; - $mol_atom.prototype.check_slaves = function () { - if (this.slaves) { - this.slaves.forEach(function (slave) { return slave.check(); }); - } - else { - if (this.autoFresh) - $mol_atom.actualize(this); - } - }; - $mol_atom.prototype.check = function () { - if (this.status === $mol_atom_status.actual) { - this.status = $mol_atom_status.checking; - this.check_slaves(); - } - }; - $mol_atom.prototype.obsolete = function () { - if (this.status === $mol_atom_status.obsolete) - return; - this.status = $mol_atom_status.obsolete; - this.check_slaves(); - return; - }; - $mol_atom.prototype.lead = function (slave) { - if (!this.slaves) { - this.slaves = new Set(); - $mol_atom.unreap(this); - } - this.slaves.add(slave); - }; - $mol_atom.prototype.dislead = function (slave) { - if (!this.slaves) - return; - if (this.slaves.size === 1) { - this.slaves = null; - $mol_atom.reap(this); - } - else { - this.slaves.delete(slave); - } - }; - $mol_atom.prototype.obey = function (master) { - if (!this.masters) - this.masters = new Set(); - this.masters.add(master); - }; - $mol_atom.prototype.disobey = function (master) { - if (!this.masters) - return; - this.masters.delete(master); - }; - $mol_atom.prototype.disobey_all = function () { - var _this = this; - if (!this.masters) - return; - this.masters.forEach(function (master) { return master.dislead(_this); }); - this.masters = null; - }; - $mol_atom.prototype.value = function (next, force) { - if (next === undefined) { - return this.get(force); - } - else { - if (force) { - return this.push(next); - } - else { - return this.set(next); - } - } - }; - $mol_atom.actualize = function (atom) { - $mol_atom.updating.push(atom); - $mol_atom.schedule(); - }; - $mol_atom.reap = function (atom) { - $mol_atom.reaping.add(atom); - $mol_atom.schedule(); - }; - $mol_atom.unreap = function (atom) { - $mol_atom.reaping.delete(atom); - }; - $mol_atom.schedule = function () { - var _this = this; - if (this.scheduled) - return; - new $.$mol_defer(function () { - if (!_this.scheduled) - return; - _this.scheduled = false; - _this.sync(); - }); - this.scheduled = true; - }; - $mol_atom.sync = function () { - var _this = this; - $.$mol_log('$mol_atom.sync', []); - this.schedule(); - while (true) { - var atom = this.updating.shift(); - if (!atom) - break; - if (this.reaping.has(atom)) - continue; - if (!atom.destroyed()) - atom.get(); - } - while (this.reaping.size) { - this.reaping.forEach(function (atom) { - _this.reaping.delete(atom); - if (!atom.slaves) - atom.destroyed(true); - }); - } - this.scheduled = false; - }; - $mol_atom.prototype.then = function (done, fail) { - var _this = this; - var prev; - var next; - var atom = new $mol_atom(this, function () { - try { - if (prev == undefined) { - var val = _this.get(); - if (val instanceof $mol_atom_wait) - return val; - if (val) - val.valueOf(); - prev = val; - } - if (next == undefined) { - var val = done(prev); - if (val instanceof $mol_atom_wait) - return val; - if (val) - val.valueOf(); - next = val; - } - return next; - } - catch (error) { - if (error instanceof $mol_atom_wait) - return error; - if (fail) - return fail(error); - return error; - } - }); - $mol_atom.actualize(atom); - return atom; - }; - $mol_atom.prototype.catch = function (fail) { - return this.then(function (next) { return next; }, fail); - }; - $mol_atom.stack = []; - $mol_atom.updating = []; - $mol_atom.reaping = new Set(); - $mol_atom.scheduled = false; - return $mol_atom; - }($.$mol_object)); - $.$mol_atom = $mol_atom; - $.$mol_state_stack.set('$mol_atom.stack', $mol_atom.stack); - var $mol_atom_wait = (function (_super) { - __extends($mol_atom_wait, _super); - function $mol_atom_wait(message) { - var _newTarget = this.constructor; - if (message === void 0) { message = 'Wait...'; } - var _this = _super.call(this, message) || this; - _this.name = '$mol_atom_wait'; - _this['__proto__'] = _newTarget.prototype; - return _this; - } - return $mol_atom_wait; - }(Error)); - $.$mol_atom_wait = $mol_atom_wait; - var $mol_atom_force = (function (_super) { - __extends($mol_atom_force, _super); - function $mol_atom_force() { - return _super !== null && _super.apply(this, arguments) || this; - } - return $mol_atom_force; - }(Object)); - $.$mol_atom_force = $mol_atom_force; -})($ || ($ = {})); -//atom.js.map -; -var $; -(function ($) { - function $mol_mem(obj, name, descr) { - var value = descr.value; - var store = new WeakMap(); - descr.value = function (next, force) { - var host = this; - var atom = store.get(host); - if (!atom) { - if (force && (next === undefined)) - return next; - store.set(host, atom = new $.$mol_atom(host, value.bind(host), name + '()')); - } - return atom.value(next, force); - }; - Object.defineProperty(obj, name + "()", { get: function () { return store.get(this); } }); - descr.value['value'] = value; - return descr; - } - $.$mol_mem = $mol_mem; - function $mol_mem_key(obj, name, descr) { - var value = descr.value; - var store = new WeakMap(); - descr.value = function (key, next, force) { - var host = this; - var key_str = JSON.stringify(key); - var dict = store.get(host); - if (!dict) - store.set(host, dict = {}); - var atom = dict[key_str]; - if (!atom) { - if (force && (next === undefined)) - return next; - dict[key_str] = atom = new $.$mol_atom(host, value.bind(host, key), name + "(" + key_str + ")"); - } - return atom.value(next, force); - }; - Object.defineProperty(obj, name + "()", { get: function () { return store.get(this); } }); - void (descr.value['value'] = value); - return descr; - } - $.$mol_mem_key = $mol_mem_key; -})($ || ($ = {})); -//mem.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_window = (function (_super) { - __extends($mol_window, _super); - function $mol_window() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_window.size = function (next) { - return next || { - width: window.innerWidth, - height: window.innerHeight, - }; - }; - __decorate([ - $.$mol_mem - ], $mol_window, "size", null); - return $mol_window; - }($.$mol_object)); - $.$mol_window = $mol_window; - window.addEventListener('resize', function () { - $mol_window.size(null); - }); -})($ || ($ = {})); -//window.web.js.map -; -var $; -(function ($) { -})($ || ($ = {})); -//context.js.map -; -var $; -(function ($) { - $.$mol_dom_context = window; -})($ || ($ = {})); -//context.web.js.map -; -var $; -(function ($) { - function $mol_dom_render_fields(el, fields) { - var _loop_1 = function (key) { - var val = fields[key]; - if (val === undefined) - return "continue"; - if (el[key] === val) - return "continue"; - el[key] = val; - if (el[key] === val) - return "continue"; - var setter = function () { - el.removeEventListener('DOMNodeInsertedIntoDocument', setter, { passive: true }); - new $.$mol_defer(function () { - el[key] = val; - }); - }; - el.addEventListener('DOMNodeInsertedIntoDocument', setter, { passive: true }); - }; - for (var key in fields) { - _loop_1(key); - } - } - $.$mol_dom_render_fields = $mol_dom_render_fields; - function $mol_dom_render_children(el, childNodes) { - var nodes = []; - for (var i = 0; i < childNodes.length; ++i) { - var node = childNodes[i]; - if (node == null) - continue; - if (Object(node) === node) { - if (node['dom_tree']) - node = node['dom_tree'](); - nodes.push(node); - } - else { - nodes.push(String(node)); - } - } - var nextNode = el.firstChild; - for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { - var view_ = nodes_1[_i]; - var view = view_.valueOf(); - if (view instanceof $.$mol_dom_context.Node) { - while (true) { - if (!nextNode) { - el.appendChild(view); - break; - } - if (nextNode == view) { - nextNode = nextNode.nextSibling; - break; - } - else { - if (nodes.indexOf(nextNode) === -1) { - var nn = nextNode.nextSibling; - el.removeChild(nextNode); - nextNode = nn; - } - else { - el.insertBefore(view, nextNode); - break; - } - } - } - } - else { - if (nextNode && nextNode.nodeName === '#text') { - nextNode.nodeValue = String(view); - nextNode = nextNode.nextSibling; - } - else { - var textNode = $.$mol_dom_context.document.createTextNode(String(view)); - el.insertBefore(textNode, nextNode); - } - } - } - while (nextNode) { - var currNode = nextNode; - nextNode = currNode.nextSibling; - el.removeChild(currNode); - } - } - $.$mol_dom_render_children = $mol_dom_render_children; - function $mol_dom_render_attributes(el, attrs) { - for (var name_1 in attrs) { - var val = attrs[name_1]; - if (el.getAttribute(name_1) === val) - continue; - if (val === null || val === false) - el.removeAttribute(name_1); - else - el.setAttribute(name_1, String(val)); - } - } - $.$mol_dom_render_attributes = $mol_dom_render_attributes; - function $mol_dom_render_styles(el, styles) { - for (var name_2 in styles) { - var val = styles[name_2]; - var style = el.style; - var cur = style[name_2]; - if (typeof val === 'number') { - if (parseFloat(cur) == val) - continue; - style[name_2] = val + "px"; - } - if (cur !== val) - style[name_2] = val; - } - } - $.$mol_dom_render_styles = $mol_dom_render_styles; - function $mol_dom_render_events(el, events) { - for (var name_3 in events) { - el.addEventListener(name_3, events[name_3], { passive: false }); - } - } - $.$mol_dom_render_events = $mol_dom_render_events; - function $mol_dom_render_events_async(el, events) { - for (var name_4 in events) { - el.addEventListener(name_4, events[name_4], { passive: true }); - } - } - $.$mol_dom_render_events_async = $mol_dom_render_events_async; - function $mol_dom_render_events_detach(el, events) { - for (var name_5 in events) { - el.removeEventListener(name_5, events[name_5], { passive: false }); - } - } - $.$mol_dom_render_events_detach = $mol_dom_render_events_detach; -})($ || ($ = {})); -//render.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $$; - (function ($$_1) { - var $$; - })($$ = $.$$ || ($.$$ = {})); - var $mol; - (function ($mol_1) { - var $mol; - })($mol = $.$mol || ($.$mol = {})); - function $mol_view_visible_width() { - return $.$mol_window.size().width; - } - $.$mol_view_visible_width = $mol_view_visible_width; - function $mol_view_visible_height() { - return $.$mol_window.size().height; - } - $.$mol_view_visible_height = $mol_view_visible_height; - function $mol_view_state_key(suffix) { - return suffix; - } - $.$mol_view_state_key = $mol_view_state_key; - var $mol_view = (function (_super) { - __extends($mol_view, _super); - function $mol_view() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_view.Root = function (id) { - return new this; - }; - $mol_view.prototype.title = function () { - return this.Class().toString(); - }; - $mol_view.prototype.focused = function (next) { - var node = this.dom_node(); - var value = $.$mol_view_selection.focused(next === undefined ? undefined : next ? [node] : []); - return value.indexOf(node) !== -1; - }; - $mol_view.prototype.context = function (next) { - return next || $; - }; - Object.defineProperty($mol_view.prototype, "$", { - get: function () { - return this.context(); - }, - set: function (next) { - this.context(next); - }, - enumerable: true, - configurable: true - }); - $mol_view.prototype.context_sub = function () { - return this.context(); - }; - $mol_view.prototype.state_key = function (suffix) { - if (suffix === void 0) { suffix = ''; } - return this.$.$mol_view_state_key(suffix); - }; - $mol_view.prototype.dom_name = function () { - return this.constructor.toString().replace('$', ''); - }; - $mol_view.prototype.dom_name_space = function () { return 'http://www.w3.org/1999/xhtml'; }; - $mol_view.prototype.sub = function () { - return null; - }; - $mol_view.prototype.sub_visible = function () { - var sub = this.sub(); - if (!sub) - return sub; - var context = this.context_sub(); - sub.forEach(function (child) { - if (child instanceof $mol_view) { - child.context(context); - } - }); - return sub; - }; - $mol_view.prototype.minimal_width = function () { - var sub = this.sub(); - if (!sub) - return 0; - var min = 0; - sub.forEach(function (view) { - if (view instanceof $mol_view) { - min = Math.max(min, view.minimal_width()); - } - }); - return min; - }; - $mol_view.prototype.minimal_height = function () { - return this.content_height(); - }; - $mol_view.prototype.content_height = function () { - var sub = this.sub(); - if (!sub) - return 0; - var min = 0; - sub.forEach(function (view) { - if (view instanceof $mol_view) { - min = Math.max(min, view.minimal_height()); - } - }); - return min; - }; - $mol_view.prototype.dom_node = function (next) { - var node = next || this.$.$mol_dom_context.document.createElementNS(this.dom_name_space(), this.dom_name()); - $.$mol_dom_render_attributes(node, this.attr_static()); - $.$mol_dom_render_events(node, this.event()); - $.$mol_dom_render_events_async(node, this.event_async()); - return node; - }; - $mol_view.prototype.dom_tree = function () { - var node = this.dom_node(); - try { - for (var _i = 0, _a = this.plugins(); _i < _a.length; _i++) { - var plugin = _a[_i]; - plugin.render(); - } - this.render(); - } - catch (error) { - $.$mol_dom_render_attributes(node, { mol_view_error: error.name }); - if (error instanceof $.$mol_atom_wait) - return node; - try { - void (node.innerText = error.message); - } - catch (e) { } - if (error['$mol_atom_catched']) - return node; - console.error(error); - error['$mol_atom_catched'] = true; - } - return node; - }; - $mol_view.prototype.render = function () { - var node = this.dom_node(); - var sub = this.sub_visible(); - if (sub) - $.$mol_dom_render_children(node, sub); - $.$mol_dom_render_attributes(node, this.attr()); - $.$mol_dom_render_styles(node, this.style()); - $.$mol_dom_render_fields(node, this.field()); - }; - $mol_view.view_classes = function () { - var proto = this.prototype; - var current = proto; - var classes = []; - while (current) { - classes.push(current.constructor); - if (!(current instanceof $mol_view)) - break; - current = Object.getPrototypeOf(current); - } - return classes; - }; - $mol_view.prototype.view_names_owned = function () { - var names = []; - var owner = this.object_owner(); - if (owner instanceof $mol_view) { - var suffix = this.object_field().replace(/\(.*/, ''); - var suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); - for (var _i = 0, _a = owner.constructor.view_classes(); _i < _a.length; _i++) { - var Class = _a[_i]; - if (suffix in Class.prototype) - names.push($.$mol_func_name(Class) + suffix2); - else - break; - } - for (var _b = 0, _c = owner.view_names_owned(); _b < _c.length; _b++) { - var prefix = _c[_b]; - names.push(prefix + suffix2); - } - } - return names; - }; - $mol_view.prototype.view_names = function () { - var names = []; - for (var _i = 0, _a = this.view_names_owned(); _i < _a.length; _i++) { - var name_1 = _a[_i]; - if (names.indexOf(name_1) < 0) - names.push(name_1); - } - for (var _b = 0, _c = this.constructor.view_classes(); _b < _c.length; _b++) { - var Class = _c[_b]; - var name_2 = $.$mol_func_name(Class); - if (names.indexOf(name_2) < 0) - names.push(name_2); - } - return names; - }; - $mol_view.prototype.attr_static = function () { - var attrs = { - 'mol_view_error': false, - 'id': this.toString(), - }; - for (var _i = 0, _a = this.view_names(); _i < _a.length; _i++) { - var name_3 = _a[_i]; - attrs[name_3.replace(/\$/g, '').toLowerCase()] = ''; - } - return attrs; - }; - $mol_view.prototype.attr = function () { - return { - 'mol_view_error': false, - }; - }; - $mol_view.prototype.style = function () { - return {}; - }; - $mol_view.prototype.field = function () { - return {}; - }; - $mol_view.prototype.event = function () { - return {}; - }; - $mol_view.prototype.event_async = function () { - return {}; - }; - $mol_view.prototype.plugins = function () { - return []; - }; - __decorate([ - $.$mol_mem - ], $mol_view.prototype, "focused", null); - __decorate([ - $.$mol_mem - ], $mol_view.prototype, "context", null); - __decorate([ - $.$mol_mem - ], $mol_view.prototype, "minimal_width", null); - __decorate([ - $.$mol_mem - ], $mol_view.prototype, "content_height", null); - __decorate([ - $.$mol_mem - ], $mol_view.prototype, "dom_node", null); - __decorate([ - $.$mol_mem - ], $mol_view.prototype, "dom_tree", null); - __decorate([ - $.$mol_mem - ], $mol_view.prototype, "view_names", null); - __decorate([ - $.$mol_mem_key - ], $mol_view, "Root", null); - __decorate([ - $.$mol_mem - ], $mol_view, "view_classes", null); - return $mol_view; - }($.$mol_object)); - $.$mol_view = $mol_view; -})($ || ($ = {})); -//view.js.map -; -var $; -(function ($) { - $.$mol_dom_context.document.addEventListener(window.cordova ? 'deviceready' : 'DOMContentLoaded', function (event) { - var nodes = $.$mol_dom_context.document.querySelectorAll('[mol_view_root]'); - var _loop_1 = function (i) { - var name_1 = nodes.item(i).getAttribute('mol_view_root'); - var View = $[name_1]; - if (!View) { - console.error("Can not attach view. Class not found: " + name_1); - return "continue"; - } - var view = View.Root(i); - view.dom_node(nodes.item(i)); - var win = new $.$mol_atom("$mol_view.Root(" + i + ")", function () { - view.dom_tree(); - $.$mol_dom_context.document.title = view.title(); - return null; - }); - new $.$mol_defer(function () { return win.get(); }); - }; - for (var i = nodes.length - 1; i >= 0; --i) { - _loop_1(i); - } - $.$mol_defer.run(); - }); -})($ || ($ = {})); -//view.web.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_view_selection = (function (_super) { - __extends($mol_view_selection, _super); - function $mol_view_selection() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_view_selection.focused = function (next, force) { - var _this = this; - if (next === undefined) - return []; - var node = next[0]; - new $.$mol_defer(function () { - if (node) - node.focus(); - else if (_this['focused()']['value()'][0]) - _this['focused()']['value()'][0].blur(); - }); - return undefined; - }; - $mol_view_selection.position = function () { - var diff = []; - for (var _i = 0; _i < arguments.length; _i++) { - diff[_i] = arguments[_i]; - } - if (diff.length) { - if (!diff[0]) - return diff[0]; - var start = diff[0].start; - var end = diff[0].end; - if (!(start <= end)) - throw new Error("Wrong offsets (" + start + "," + end + ")"); - var root = $.$mol_dom_context.document.getElementById(diff[0].id); - root.focus(); - var range = new Range; - var cur = root.firstChild; - while (cur !== root) { - while (cur.firstChild) - cur = cur.firstChild; - if (cur.nodeValue) { - var length = cur.nodeValue.length; - if (length >= start) - break; - start -= length; - } - while (!cur.nextSibling) { - cur = cur.parentNode; - if (cur === root) { - start = root.childNodes.length; - break; - } - } - } - range.setStart(cur, start); - var cur = root.firstChild; - while (cur !== root) { - while (cur.firstChild) - cur = cur.firstChild; - if (cur.nodeValue) { - var length = cur.nodeValue.length; - if (length >= end) - break; - end -= length; - } - while (!cur.nextSibling) { - cur = cur.parentNode; - if (cur === root) { - end = root.childNodes.length; - break; - } - } - } - range.setEnd(cur, end); - var sel = $.$mol_dom_context.document.getSelection(); - sel.removeAllRanges(); - sel.addRange(range); - return diff[0]; - } - else { - var sel = $.$mol_dom_context.document.getSelection(); - if (sel.rangeCount === 0) - return null; - var range = sel.getRangeAt(0); - var el = range.commonAncestorContainer; - while (el && !el.id) - el = el.parentElement; - if (!el) - return { id: null, start: 0, end: 0 }; - var meter = new Range; - meter.selectNodeContents(el); - meter.setEnd(range.startContainer, range.startOffset); - var startOffset = meter.toString().length; - meter.setEnd(range.endContainer, range.endOffset); - var endOffset = meter.toString().length; - return { id: el.id, start: startOffset, end: endOffset }; - } - }; - $mol_view_selection.onFocus = function (event) { - var parents = []; - var element = event.target; - while (element) { - parents.push(element); - element = element.parentNode; - } - this.focused(parents, $.$mol_atom_force); - }; - $mol_view_selection.onBlur = function (event) { - var _this = this; - var focused = this.focused(); - setTimeout(function () { - if (focused !== _this.focused()) - return; - _this.focused([], $.$mol_atom_force); - }); - }; - __decorate([ - $.$mol_mem - ], $mol_view_selection, "focused", null); - __decorate([ - $.$mol_mem - ], $mol_view_selection, "position", null); - return $mol_view_selection; - }($.$mol_object)); - $.$mol_view_selection = $mol_view_selection; -})($ || ($ = {})); -//selection.js.map -; -var $; -(function ($) { - $.$mol_dom_context.document.addEventListener('selectionchange', function (event) { - $.$mol_view_selection.position(undefined, $.$mol_atom_force); - }); - $.$mol_dom_context.document.addEventListener('focus', function (event) { return $.$mol_view_selection.onFocus(event); }, true); - $.$mol_dom_context.document.addEventListener('blur', function (event) { return $.$mol_view_selection.onBlur(event); }, true); -})($ || ($ = {})); -//selection.web.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_scroll = (function (_super) { - __extends($mol_scroll, _super); - function $mol_scroll() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_scroll.prototype.minimal_height = function () { - return 0; - }; - $mol_scroll.prototype.field = function () { - return (__assign({}, _super.prototype.field.call(this), { "scrollTop": this.scroll_top(), "scrollLeft": this.scroll_left(), "scrollBottom": this.scroll_bottom(), "scrollRight": this.scroll_right() })); - }; - $mol_scroll.prototype.scroll_top = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_scroll.prototype.scroll_left = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_scroll.prototype.scroll_bottom = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_scroll.prototype.scroll_right = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_scroll.prototype.event_async = function () { - var _this = this; - return (__assign({}, _super.prototype.event_async.call(this), { "scroll": function (event) { return _this.event_scroll(event); } })); - }; - $mol_scroll.prototype.event_scroll = function (event, force) { - return (event !== void 0) ? event : null; - }; - $mol_scroll.prototype.Strut = function () { - var _this = this; - return (function (obj) { - obj.style = function () { return ({ - "transform": _this.strut_transform(), - }); }; - return obj; - })(new this.$.$mol_view); - }; - $mol_scroll.prototype.strut_transform = function () { - return ""; - }; - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "scroll_top", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "scroll_left", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "scroll_bottom", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "scroll_right", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "event_scroll", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "Strut", null); - return $mol_scroll; - }($.$mol_view)); - $.$mol_scroll = $mol_scroll; -})($ || ($ = {})); -//scroll.view.tree.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $$; - (function ($$) { - function $mol_scroll_top() { - return 0; - } - $$.$mol_scroll_top = $mol_scroll_top; - function $mol_scroll_left() { - return 0; - } - $$.$mol_scroll_left = $mol_scroll_left; - function $mol_scroll_moving() { - return false; - } - $$.$mol_scroll_moving = $mol_scroll_moving; - var $mol_scroll = (function (_super) { - __extends($mol_scroll, _super); - function $mol_scroll() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._moving_task_timer = 0; - return _this; - } - $mol_scroll.prototype.scroll_bottom = function (next) { - return next || 0; - }; - $mol_scroll.prototype.scroll_right = function (next) { - return next || 0; - }; - $mol_scroll.prototype.event_scroll = function (next) { - var _this = this; - this.moving(true); - this.moving_task_stop(); - new $.$mol_defer(function () { - var el = _this.dom_node(); - var top = Math.max(0, el.scrollTop); - var left = Math.max(0, el.scrollLeft); - _this.scroll_top(top); - _this.scroll_left(left); - _this.scroll_bottom(Math.max(0, el.scrollHeight - top - el.offsetHeight)); - _this.scroll_right(Math.max(0, el.scrollWidth - left - el.offsetWidth)); - }); - }; - $mol_scroll.prototype.event_repos = function (next) { - var _this = this; - new $.$mol_defer(function () { - var el = _this.dom_node(); - _this.scroll_bottom(Math.max(0, el.scrollHeight - _this.scroll_top() - el.offsetHeight)); - _this.scroll_right(Math.max(0, el.scrollWidth - _this.scroll_left() - el.offsetWidth)); - }); - }; - $mol_scroll.prototype.moving_task_stop = function () { - var _this = this; - clearTimeout(this._moving_task_timer); - this._moving_task_timer = setTimeout(function () { return _this.moving(false); }, 50); - }; - $mol_scroll.prototype.moving = function (next) { - return next || false; - }; - $mol_scroll.prototype.context_sub = function () { - var _this = this; - var context = this.context(); - var subContext = Object.create(context); - subContext.$mol_view_visible_height = function () { - var sizeWin = $.$mol_window.size(); - var limit = context.$mol_view_visible_height(); - return _this.scroll_top() + Math.min(sizeWin.height, limit); - }; - subContext.$mol_view_visible_width = function () { - var sizeWin = $.$mol_window.size(); - var limit = context.$mol_view_visible_width(); - return _this.scroll_left() + Math.min(sizeWin.width, limit); - }; - subContext.$mol_scroll_top = function () { return _this.scroll_top(); }; - subContext.$mol_scroll_left = function () { return _this.scroll_left(); }; - subContext.$mol_scroll_moving = function () { return _this.moving(); }; - return subContext; - }; - $mol_scroll.prototype.strut_transform = function () { - return "translate3d( 0 , " + this.content_height() + "px , 0 )"; - }; - $mol_scroll.prototype.sub_visible = function () { - var sub = [ - this.Strut() - ].concat(this.sub()); - var context = this.context_sub(); - sub.forEach(function (child) { - if (child instanceof $.$mol_view) { - child.context(context); - } - }); - return sub; - }; - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "scroll_bottom", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "scroll_right", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "moving", null); - __decorate([ - $.$mol_mem - ], $mol_scroll.prototype, "context_sub", null); - return $mol_scroll; - }($.$mol_scroll)); - $$.$mol_scroll = $mol_scroll; - })($$ = $.$$ || ($.$$ = {})); -})($ || ($ = {})); -//scroll.view.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var $; -(function ($) { - var $mol_list = (function (_super) { - __extends($mol_list, _super); - function $mol_list() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_list.prototype.sub = function () { - return this.rows(); - }; - $mol_list.prototype.rows = function () { - return []; - }; - $mol_list.prototype.Empty = function () { - return null; - }; - return $mol_list; - }($.$mol_view)); - $.$mol_list = $mol_list; -})($ || ($ = {})); -//list.view.tree.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $$; - (function ($$) { - var $mol_list = (function (_super) { - __extends($mol_list, _super); - function $mol_list() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_list.prototype.sub = function () { - var rows = this.rows(); - return (rows.length === 0) ? [this.Empty()] : rows; - }; - $mol_list.prototype.row_offsets = function () { - var sub = this.sub(); - if (!sub) - return null; - var heightLimit = this.$.$mol_view_visible_height(); - var offset = 0; - var next = []; - for (var _i = 0, sub_1 = sub; _i < sub_1.length; _i++) { - var child = sub_1[_i]; - next.push(offset); - if (child instanceof $.$mol_view) { - offset += child.minimal_height(); - } - if (offset > heightLimit) - break; - } - return next; - }; - $mol_list.prototype.row_context = function (index) { - var _this = this; - var context = this.context(); - var next = Object.create(context); - next.$mol_view_visible_height = function () { - var limit = context.$mol_view_visible_height(); - return limit - _this.row_offsets()[index]; - }; - return next; - }; - $mol_list.prototype.sub_visible = function () { - var sub = this.sub(); - if (!sub) - return sub; - var limit = this.row_offsets().length; - var next = []; - for (var i = 0; i < limit; ++i) { - var child = sub[i]; - if (child == null) - continue; - if (child instanceof $.$mol_view) { - child.context(this.row_context(i)); - } - next.push(child); - } - return next; - }; - $mol_list.prototype.minimal_height = function () { - var height = 0; - var sub = this.sub(); - if (sub) - sub.forEach(function (child) { - if (child instanceof $.$mol_view) { - height += child.minimal_height(); - } - }); - return height; - }; - __decorate([ - $.$mol_mem - ], $mol_list.prototype, "row_offsets", null); - __decorate([ - $.$mol_mem_key - ], $mol_list.prototype, "row_context", null); - __decorate([ - $.$mol_mem - ], $mol_list.prototype, "sub_visible", null); - __decorate([ - $.$mol_mem - ], $mol_list.prototype, "minimal_height", null); - return $mol_list; - }($.$mol_list)); - $$.$mol_list = $mol_list; - })($$ = $.$$ || ($.$$ = {})); -})($ || ($ = {})); -//list.view.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_state_time = (function (_super) { - __extends($mol_state_time, _super); - function $mol_state_time() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_state_time.now = function (precision, next, force) { - var _this = this; - if (precision > 0) { - setTimeout(function () { return _this.now(precision, undefined, $.$mol_atom_force); }, precision); - } - else { - requestAnimationFrame(function () { return _this.now(precision, undefined, $.$mol_atom_force); }); - } - return Date.now(); - }; - __decorate([ - $.$mol_mem_key - ], $mol_state_time, "now", null); - return $mol_state_time; - }($.$mol_object)); - $.$mol_state_time = $mol_state_time; -})($ || ($ = {})); -//time.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_meter = (function (_super) { - __extends($mol_meter, _super); - function $mol_meter() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_meter.prototype.width = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_meter.prototype.height = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_meter.prototype.left = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_meter.prototype.right = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_meter.prototype.bottom = function (val, force) { - return (val !== void 0) ? val : 0; - }; - $mol_meter.prototype.top = function (val, force) { - return (val !== void 0) ? val : 0; - }; - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "width", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "height", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "left", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "right", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "bottom", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "top", null); - return $mol_meter; - }($.$mol_view)); - $.$mol_meter = $mol_meter; -})($ || ($ = {})); -//meter.view.tree.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $$; - (function ($$) { - var $mol_meter = (function (_super) { - __extends($mol_meter, _super); - function $mol_meter() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_meter.prototype.dom_node = function () { - return this.object_owner().dom_node(); - }; - $mol_meter.prototype.rect = function () { - if (this.dom_node() !== $.$mol_dom_context.document.body) { - $.$mol_state_time.now(); - var node = this.dom_node(); - try { - return node.getBoundingClientRect(); - } - catch (error) { - } - } - var size = $.$mol_window.size(); - return { - left: 0, - top: 0, - right: size.width, - bottom: size.height, - width: size.width, - height: size.height, - }; - }; - $mol_meter.prototype.top = function () { - return this.rect().top; - }; - $mol_meter.prototype.bottom = function () { - return this.rect().bottom; - }; - $mol_meter.prototype.left = function () { - return this.rect().left; - }; - $mol_meter.prototype.right = function () { - return this.rect().right; - }; - $mol_meter.prototype.width = function () { - return this.rect().width; - }; - $mol_meter.prototype.height = function () { - return this.rect().height; - }; - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "rect", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "top", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "bottom", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "left", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "right", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "width", null); - __decorate([ - $.$mol_mem - ], $mol_meter.prototype, "height", null); - return $mol_meter; - }($.$mol_meter)); - $$.$mol_meter = $mol_meter; - })($$ = $.$$ || ($.$$ = {})); -})($ || ($ = {})); -//meter.view.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_pop = (function (_super) { - __extends($mol_pop, _super); - function $mol_pop() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_pop.prototype.showed = function (val, force) { - return (val !== void 0) ? val : false; - }; - $mol_pop.prototype.plugins = function () { - return [].concat(this.Meter()); - }; - $mol_pop.prototype.top = function () { - return this.Meter().top(); - }; - $mol_pop.prototype.bottom = function () { - return this.Meter().bottom(); - }; - $mol_pop.prototype.left = function () { - return this.Meter().left(); - }; - $mol_pop.prototype.right = function () { - return this.Meter().right(); - }; - $mol_pop.prototype.Meter = function () { - return (function (obj) { - return obj; - })(new this.$.$mol_meter); - }; - $mol_pop.prototype.sub = function () { - return [].concat(this.Anchor(), this.Bubble()); - }; - $mol_pop.prototype.Anchor = function () { - return null; - }; - $mol_pop.prototype.Bubble = function () { - var _this = this; - return (function (obj) { - obj.align = function () { return _this.align(); }; - obj.content = function () { return _this.bubble_content(); }; - obj.height_max = function () { return _this.height_max(); }; - return obj; - })(new this.$.$mol_pop_bubble); - }; - $mol_pop.prototype.align = function () { - return "bottom_center"; - }; - $mol_pop.prototype.bubble_content = function () { - return []; - }; - $mol_pop.prototype.height_max = function () { - return 9999; - }; - __decorate([ - $.$mol_mem - ], $mol_pop.prototype, "showed", null); - __decorate([ - $.$mol_mem - ], $mol_pop.prototype, "Meter", null); - __decorate([ - $.$mol_mem - ], $mol_pop.prototype, "Bubble", null); - return $mol_pop; - }($.$mol_view)); - $.$mol_pop = $mol_pop; -})($ || ($ = {})); -(function ($) { - var $mol_pop_bubble = (function (_super) { - __extends($mol_pop_bubble, _super); - function $mol_pop_bubble() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_pop_bubble.prototype.sub = function () { - return this.content(); - }; - $mol_pop_bubble.prototype.content = function () { - return []; - }; - $mol_pop_bubble.prototype.style = function () { - return (__assign({}, _super.prototype.style.call(this), { "maxHeight": this.height_max() })); - }; - $mol_pop_bubble.prototype.height_max = function () { - return 9999; - }; - $mol_pop_bubble.prototype.attr = function () { - return (__assign({}, _super.prototype.attr.call(this), { "mol_pop_align": this.align(), "tabindex": 0 })); - }; - $mol_pop_bubble.prototype.align = function () { - return ""; - }; - return $mol_pop_bubble; - }($.$mol_scroll)); - $.$mol_pop_bubble = $mol_pop_bubble; -})($ || ($ = {})); -//pop.view.tree.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var $; -(function ($) { - var $$; - (function ($$) { - var $mol_pop = (function (_super) { - __extends($mol_pop, _super); - function $mol_pop() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_pop.prototype.sub = function () { - return [ - this.Anchor() - ].concat(this.showed() ? [this.Bubble()] : []); - }; - $mol_pop.prototype.height_max = function () { - return this.$.$mol_window.size().height * 0.33; - }; - $mol_pop.prototype.align = function () { - var viewport = this.$.$mol_window.size(); - var vert = this.top() > (viewport.height - this.bottom()) ? 'top' : 'bottom'; - var hor = this.left() > (viewport.width - this.right()) ? 'left' : 'right'; - return vert + "_" + hor; - }; - return $mol_pop; - }($.$mol_pop)); - $$.$mol_pop = $mol_pop; - })($$ = $.$$ || ($.$$ = {})); -})($ || ($ = {})); -//pop.view.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_pop_over = (function (_super) { - __extends($mol_pop_over, _super); - function $mol_pop_over() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_pop_over.prototype.showed = function () { - return this.hovered(); - }; - $mol_pop_over.prototype.hovered = function (val, force) { - return (val !== void 0) ? val : false; - }; - $mol_pop_over.prototype.attr = function () { - return (__assign({}, _super.prototype.attr.call(this), { "tabindex": 0 })); - }; - $mol_pop_over.prototype.event = function () { - var _this = this; - return (__assign({}, _super.prototype.event.call(this), { "mouseenter": function (event) { return _this.event_show(event); }, "mouseleave": function (event) { return _this.event_hide(event); } })); - }; - $mol_pop_over.prototype.event_show = function (event, force) { - return (event !== void 0) ? event : null; - }; - $mol_pop_over.prototype.event_hide = function (event, force) { - return (event !== void 0) ? event : null; - }; - __decorate([ - $.$mol_mem - ], $mol_pop_over.prototype, "hovered", null); - __decorate([ - $.$mol_mem - ], $mol_pop_over.prototype, "event_show", null); - __decorate([ - $.$mol_mem - ], $mol_pop_over.prototype, "event_hide", null); - return $mol_pop_over; - }($.$mol_pop)); - $.$mol_pop_over = $mol_pop_over; -})($ || ($ = {})); -//over.view.tree.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var $; -(function ($) { - var $$; - (function ($$) { - var $mol_pop_over = (function (_super) { - __extends($mol_pop_over, _super); - function $mol_pop_over() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_pop_over.prototype.event_show = function (event) { - this.hovered(true); - }; - $mol_pop_over.prototype.event_hide = function (event) { - this.hovered(false); - }; - $mol_pop_over.prototype.showed = function () { - return this.focused() || this.hovered(); - }; - return $mol_pop_over; - }($.$mol_pop_over)); - $$.$mol_pop_over = $mol_pop_over; - })($$ = $.$$ || ($.$$ = {})); -})($ || ($ = {})); -//over.view.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $mol_perf_dbmon = (function (_super) { - __extends($mol_perf_dbmon, _super); - function $mol_perf_dbmon() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_perf_dbmon.prototype.title = function () { - return "dbmon ($mol)"; - }; - $mol_perf_dbmon.prototype.sub = function () { - return [].concat(this.Databases()); - }; - $mol_perf_dbmon.prototype.Databases = function () { - var _this = this; - return (function (obj) { - obj.rows = function () { return _this.databases(); }; - return obj; - })(new this.$.$mol_list); - }; - $mol_perf_dbmon.prototype.databases = function () { - return []; - }; - $mol_perf_dbmon.prototype.Database = function (id) { - var _this = this; - return (function (obj) { - obj.sub = function () { return [].concat(_this.Name(id), _this.Query_count(id), _this.top_queries(id)); }; - return obj; - })(new this.$.$mol_view); - }; - $mol_perf_dbmon.prototype.Name = function (id) { - var _this = this; - return (function (obj) { - obj.sub = function () { return [].concat(_this.name(id)); }; - return obj; - })(new this.$.$mol_view); - }; - $mol_perf_dbmon.prototype.name = function (id) { - return ""; - }; - $mol_perf_dbmon.prototype.Query_count = function (id) { - var _this = this; - return (function (obj) { - obj.label_mod = function () { return _this.query_count_label_mod(id); }; - obj.count = function () { return _this.query_count(id); }; - return obj; - })(new this.$.$mol_perf_dbmon_query_count); - }; - $mol_perf_dbmon.prototype.query_count_label_mod = function (id) { - return ""; - }; - $mol_perf_dbmon.prototype.query_count = function (id) { - return 0; - }; - $mol_perf_dbmon.prototype.top_queries = function (id) { - return []; - }; - $mol_perf_dbmon.prototype.Query = function (id) { - var _this = this; - return (function (obj) { - obj.elapsed = function () { return _this.query_elapsed(id); }; - obj.elapsed_mod = function () { return _this.query_elapsed_mod(id); }; - obj.value = function () { return _this.query_value(id); }; - return obj; - })(new this.$.$mol_perf_dbmon_query); - }; - $mol_perf_dbmon.prototype.query_elapsed = function (id) { - return ""; - }; - $mol_perf_dbmon.prototype.query_elapsed_mod = function (id) { - return ""; - }; - $mol_perf_dbmon.prototype.query_value = function (id) { - return ""; - }; - __decorate([ - $.$mol_mem - ], $mol_perf_dbmon.prototype, "Databases", null); - __decorate([ - $.$mol_mem_key - ], $mol_perf_dbmon.prototype, "Database", null); - __decorate([ - $.$mol_mem_key - ], $mol_perf_dbmon.prototype, "Name", null); - __decorate([ - $.$mol_mem_key - ], $mol_perf_dbmon.prototype, "Query_count", null); - __decorate([ - $.$mol_mem_key - ], $mol_perf_dbmon.prototype, "Query", null); - return $mol_perf_dbmon; - }($.$mol_scroll)); - $.$mol_perf_dbmon = $mol_perf_dbmon; -})($ || ($ = {})); -(function ($) { - var $mol_perf_dbmon_query_count = (function (_super) { - __extends($mol_perf_dbmon_query_count, _super); - function $mol_perf_dbmon_query_count() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_perf_dbmon_query_count.prototype.sub = function () { - return [].concat(this.Label()); - }; - $mol_perf_dbmon_query_count.prototype.Label = function () { - var _this = this; - return (function (obj) { - obj.attr = function () { return ({ - "mol_perf_dbmon_query_count_label": _this.label_mod(), - }); }; - obj.sub = function () { return [].concat(_this.count()); }; - return obj; - })(new this.$.$mol_view); - }; - $mol_perf_dbmon_query_count.prototype.label_mod = function () { - return ""; - }; - $mol_perf_dbmon_query_count.prototype.count = function () { - return 0; - }; - __decorate([ - $.$mol_mem - ], $mol_perf_dbmon_query_count.prototype, "Label", null); - return $mol_perf_dbmon_query_count; - }($.$mol_view)); - $.$mol_perf_dbmon_query_count = $mol_perf_dbmon_query_count; -})($ || ($ = {})); -(function ($) { - var $mol_perf_dbmon_query = (function (_super) { - __extends($mol_perf_dbmon_query, _super); - function $mol_perf_dbmon_query() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_perf_dbmon_query.prototype.minimal_height = function () { - return 40; - }; - $mol_perf_dbmon_query.prototype.Anchor = function () { - return this.Elapsed(); - }; - $mol_perf_dbmon_query.prototype.Elapsed = function () { - var _this = this; - return (function (obj) { - obj.attr = function () { return ({ - "mol_perf_dbmon_query_elapsed": _this.elapsed_mod(), - }); }; - obj.sub = function () { return [].concat(_this.elapsed()); }; - return obj; - })(new this.$.$mol_view); - }; - $mol_perf_dbmon_query.prototype.elapsed_mod = function () { - return ""; - }; - $mol_perf_dbmon_query.prototype.elapsed = function () { - return ""; - }; - $mol_perf_dbmon_query.prototype.bubble_content = function () { - return [].concat(this.value()); - }; - $mol_perf_dbmon_query.prototype.value = function () { - return ""; - }; - $mol_perf_dbmon_query.prototype.align = function () { - return "left_center"; - }; - __decorate([ - $.$mol_mem - ], $mol_perf_dbmon_query.prototype, "Elapsed", null); - return $mol_perf_dbmon_query; - }($.$mol_pop_over)); - $.$mol_perf_dbmon_query = $mol_perf_dbmon_query; -})($ || ($ = {})); -//dbmon.view.tree.js.map -; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var $; -(function ($) { - var $$; - (function ($$) { - var $mol_perf_dbmon = (function (_super) { - __extends($mol_perf_dbmon, _super); - function $mol_perf_dbmon() { - return _super !== null && _super.apply(this, arguments) || this; - } - $mol_perf_dbmon.prototype.data = function () { - $.$mol_state_time.now(ENV.timeout); - Monitoring.renderRate.ping(); - return ENV.generateData().toArray(); - }; - $mol_perf_dbmon.prototype.databases = function () { - var _this = this; - return Object.keys(this.data()).map(function (index) { return _this.Database(index); }); - }; - $mol_perf_dbmon.prototype.name = function (id) { - return this.data()[id].dbname; - }; - $mol_perf_dbmon.prototype.last_sample = function (id) { - return this.data()[id].lastSample; - }; - $mol_perf_dbmon.prototype.query_count = function (id) { - return this.last_sample(id).nbQueries; - }; - $mol_perf_dbmon.prototype.query_count_label_mod = function (id) { - return this.last_sample(id).countClassName; - }; - $mol_perf_dbmon.prototype.top_queries = function (db) { - var _this = this; - return Object.keys(this.last_sample(db).topFiveQueries).map(function (query) { return _this.Query({ db: db, query: query }); }); - }; - $mol_perf_dbmon.prototype.top_query = function (id) { - return this.last_sample(id.db).topFiveQueries[id.query]; - }; - $mol_perf_dbmon.prototype.query_elapsed = function (id) { - return this.top_query(id).formatElapsed; - }; - $mol_perf_dbmon.prototype.query_elapsed_mod = function (id) { - return this.top_query(id).elapsedClassName; - }; - $mol_perf_dbmon.prototype.query_value = function (id) { - return this.top_query(id).query; - }; - __decorate([ - $.$mol_mem - ], $mol_perf_dbmon.prototype, "data", null); - return $mol_perf_dbmon; - }($.$mol_perf_dbmon)); - $$.$mol_perf_dbmon = $mol_perf_dbmon; - })($$ = $.$$ || ($.$$ = {})); -})($ || ($ = {})); -//dbmon.view.js.map -//# sourceMappingURL=web.js.map \ No newline at end of file diff --git a/mol/-/web.js.map b/mol/-/web.js.map deleted file mode 100644 index 34d5ffd8..00000000 --- a/mol/-/web.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../../mol.jam.js","mol.ts","../../../func/func.ts","../../../deprecated/deprecated.ts","../../../log/log.web.ts","../../../object/object.ts","../../../defer/defer.ts","../../../state/stack/stack.ts","../../../atom/atom.ie.web.js","../../../atom/atom.ts","../../../mem/mem.ts","../../../window/window.web.ts","../../../dom/context/context.ts","../../../dom/context/context.web.ts","../../../dom/render/render.ts","../../../view/view.ts","../../../view/view.web.ts","../../../view/selection/selection.ts","../../../view/selection/selection.web.ts","../../../scroll/-view.tree/scroll.view.tree.ts","../../../scroll/scroll.view.ts","../../../list/-view.tree/list.view.tree.ts","../../../list/list.view.ts","../../../state/time/time.ts","../../../meter/-view.tree/meter.view.tree.ts","../../../meter/meter.view.ts","../../../pop/-view.tree/pop.view.tree.ts","../../../pop/pop.view.ts","../../../pop/over/-view.tree/over.view.tree.ts","../../../pop/over/over.view.ts","../-view.tree/dbmon.view.tree.ts","../dbmon.view.ts"],"names":[],"mappings":"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","file":"web.js","sourcesContent":[null,"declare class WeakMap< Key , Value > {\n\tdelete( key : Key ) : boolean\n\tget( key : Key ) : Value\n\thas( key : Key ) : boolean\n\tset( key : Key , value : Value ) : Map< Key , Value >\n}\n\ndeclare class Map< Key , Value > {\n\tclear(): void\n\tdelete( key : Key ) : boolean\n\tforEach< Context = any >( handler : ( this : Context , value : Value , key : Key , map : Map< Key , Value > ) => void , context? : Context ) : void\n\tget( key : Key ) : Value\n\thas( key : Key ) : boolean\n\tset( key : Key , value : Value ) : Map< Key , Value >\n\tsize : number\n}\n\ndeclare class Set< Value > {\n\tadd( value : Value ) : Set< Value >\n\tclear() : void\n\tdelete( value : Value ) : boolean\n\tforEach< Context = any >( handler : ( this : Context , value : Value , key : Value , map : Set< Value > ) => void , context? : Context ) : void\n\thas( value : Value ) : boolean\n\tsize : number\n}\n","interface Function {\n\tname : string\n}\n\nnamespace $ {\n\t\n\texport var $mol_func_name_dict = new WeakMap< Function , string >()\n\n\texport function $mol_func_name( func : Function ) : string {\n\t\tif( func.name ) return func.name\n\t\t\n\t\tlet name = $mol_func_name_dict.get( func )\n\t\tif( name != null ) return name\n\t\t\n\t\tname = Function.prototype.toString.call( func ).match( /^function ([a-z0-9_$]*)/ )[ 1 ]\n\t\t$mol_func_name_dict.set( func , name )\n\t\t\n\t\treturn name\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_deprecated< Host , Method extends Function >( message : string ) {\n\t\treturn function(\n\t\t\thost : Host ,\n\t\t\tfield : string ,\n\t\t\tdescr : TypedPropertyDescriptor< Method >\n\t\t) {\n\t\t\tconst value = descr.value\n\t\t\tdescr.value = function $mol_deprecated_wrapper() {\n\t\t\t\tconsole.warn( `${ host.constructor }::${ field } is deprecated. ${ message }` )\n\t\t\t\treturn value.apply( this , arguments )\n\t\t\t} as any\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_log( path : string , values : any[] ) {\n\t\t\n\t\tvar filter = $mol_log.filter()\n\t\tif( filter == null ) return\n\t\tif( path.indexOf( filter ) === -1 ) return\n\t\t\n\t\tvar time = new Date().toLocaleTimeString()\n\t\tconsole.log( time , path , values )\n\n\t\tvar debug = $mol_log.debug()\n\t\tif( debug == null ) return\n\t\tif( path.indexOf( debug ) === -1 ) return\n\t\t\n\t\tdebugger\n\t}\n\t\n\texport namespace $mol_log {\n\t\t\n\t\tvar _filter : string\n\t\t\n\t\texport function filter( next? : string ) {\n\t\t\tif( next !== void 0 ) {\n\t\t\t\tif( next == null ) {\n\t\t\t\t\tsessionStorage.removeItem( '$mol_log.filter()' )\n\t\t\t\t} else {\n\t\t\t\t\tsessionStorage.setItem( '$mol_log.filter()' , next )\n\t\t\t\t}\n\t\t\t\t_filter = next\n\t\t\t}\n\t\t\t\n\t\t\tif( _filter !== void 0 ) return _filter\n\t\t\t\n\t\t\treturn _filter = sessionStorage.getItem( '$mol_log.filter()' )\n\t\t}\n\n\t\tvar _debug : string\n\n\t\texport function debug( next = _debug ) {\n\t\t\treturn _debug = next\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/// Common superclass that provides base functionality.\n\texport class $mol_object {\n\t\t\n\t\tClass() {\n\t\t\treturn this.constructor as any\n\t\t}\n\t\t\n\t\tstatic toString() : string {\n\t\t\treturn $mol_func_name( this )\n\t\t}\n\t\t\n\t\t/// Owner object.\n\t\tprivate 'object_owner()' : Object\n\t\t\n\t\tobject_owner( next? : Object ) {\n\t\t\tif( this[ 'object_owner()' ] ) return this[ 'object_owner()' ]\n\t\t\treturn this[ 'object_owner()' ] = next\n\t\t}\n\t\t\n\t\t/// Field in owner where this object is stored.\n\t\tprivate 'object_field()' : string\n\t\t\n\t\tobject_field( next? : string ) {\n\t\t\tif( this[ 'object_field()' ] ) return this[ 'object_field()' ] || ''\n\t\t\treturn this[ 'object_field()' ] = next\n\t\t}\n\t\t\n\t\t/// JS-path to this object from global scope. Can not be redefined.\n\t\ttoString() {\n\t\t\tvar path = ''\n\t\t\t\n\t\t\tvar owner = this.object_owner()\n\t\t\tif( owner ) path = owner.toString()\n\t\t\t\n\t\t\tvar field = this.object_field()\n\t\t\tif( field ) path += '.' + field\n\t\t\t\n\t\t\treturn path\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\t/// Generic factory than allows to override all fields\n\t\tpublic static make< Instance >( this : { new () : Instance } , config : Partial< Instance > ) : Instance {\n\t\t\tconst instance = new this\n\t\t\tfor( let key in config ) instance[ key ] = config[ key ]\n\t\t\treturn instance\n\t\t}\n\t\t\n\t\t/// Helper to override fields in fluent style.\n\t\t@ $mol_deprecated( `Use $mol_object.make() instead.` )\n\t\tsetup( script : ( obj : this )=> void ) : this {\n\t\t\tscript( this )\n\t\t\treturn this\n\t\t}\n\t\t\n\t\t'destroyed()' = false\n\t\t\n\t\tdestroyed( next? : boolean ) {\n\t\t\tif( next === void 0 ) return this[ 'destroyed()' ]\n\t\t\tthis[ 'destroyed()' ] = next\n\t\t\tthis.log( [ '.destroyed()' , next ] )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tlog( values : any[] ) {\n\t\t\tif( $mol_log.filter() == null ) return\n\t\t\t$mol_log( this.toString() , values )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_defer extends $mol_object {\n\t\t\n\t\tconstructor( public run : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_defer.add( this )\n\t\t}\n\t\t\n\t\tdestroyed( next? : boolean ) {\n\t\t\tif( next ) $mol_defer.drop( this )\n\t\t\treturn super.destroyed( next )\n\t\t}\n\t\t\n\t\tstatic all : $mol_defer[] = []\n\t\tstatic timer = 0\n\t\t\n\t\tstatic scheduleNative : ( handler : ()=> void ) => number = ( typeof requestAnimationFrame == 'function' )\n\t\t\t? handler => requestAnimationFrame( handler )\n\t\t\t: handler => setTimeout( handler , 16 )\n\t\t\n\t\tstatic schedule() {\n\t\t\tif( this.timer ) return\n\t\t\t\n\t\t\tthis.timer = this.scheduleNative(\n\t\t\t\t()=> {\n\t\t\t\t\tthis.timer = 0\n\t\t\t\t\tthis.run()\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t\t\n\t\tstatic unschedule() {\n\t\t\tif( !this.timer ) return\n\t\t\t\n\t\t\tcancelAnimationFrame( this.timer )\n\t\t\tthis.timer = 0\n\t\t}\n\t\t\n\t\tstatic add( defer : $mol_defer ) {\n\t\t\tthis.all.push( defer )\n\t\t\tthis.schedule()\n\t\t}\n\t\t\n\t\tstatic drop( defer : $mol_defer ) {\n\t\t\tvar index = this.all.indexOf( defer )\n\t\t\tif( index >= 0 ) this.all.splice( index , 1 )\n\t\t}\n\t\t\n\t\tstatic run() {\n\t\t\tif( this.all.length === 0 ) return\n\t\t\tthis.schedule()\n\t\t\tfor( var defer : $mol_defer ; defer = this.all.pop() ; ) defer.run()\n\t\t\t//this.unschedule()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/// Global storage of temporary state\n\texport var $mol_state_stack = new Map< string , any >()\n\t\n}\n",null,"declare var Proxy : any\n\nnamespace $ {\n\t\n\texport enum $mol_atom_status {\n\t\tobsolete = 'obsolete' ,\n\t\tchecking = 'checking' ,\n\t\tpulling = 'pulling' ,\n\t\tactual = 'actual' ,\n\t}\n\t\n\texport class $mol_atom< Value = null > extends $mol_object {\n\t\t\n\t\tmasters : Set< $mol_atom > | null = null\n\t\tslaves : Set< $mol_atom > | null = null\n\t\t\n\t\tstatus = $mol_atom_status.obsolete\n\t\tautoFresh = true\n\t\t\n\t\thandler : ( next? : Value|Error , force? : $mol_atom_force )=> Value|void\n\t\thost : { [ key : string ] : any }\n\t\tfield : string\n\n\t\t'value()' : Value|Error\n\t\t\n\t\tconstructor(\n\t\t\thost : any ,\n\t\t\thandler : ( next? : Value , force? : $mol_atom_force )=> Value|void = ()=> undefined,\n\t\t\tfield = ''\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.handler = handler\n\t\t\tthis.host = Object( host )\n\t\t\tthis.field = field\n\t\t}\n\t\t\n\t\tdestroyed( next? : boolean ) {\n\t\t\tif( next ) {\n\t\t\t\tthis.unlink()\n\t\t\t\t\n\t\t\t\tconst host = this.host\n\t\t\t\tconst value = this['value()']\n\t\t\t\tif( value instanceof $mol_object ) {\n\t\t\t\t\tif( ( value.object_owner() === host ) && ( value.object_field() === this.field ) ) {\n\t\t\t\t\t\tvalue.destroyed( true );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.status = $mol_atom_status.obsolete\n\t\t\t}\n\t\t\t\n\t\t\treturn super.destroyed( next )\n\t\t}\n\t\t\n\t\tunlink() {\n\t\t\tthis.disobey_all()\n\t\t\tthis.check_slaves()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn `${ this.host }.${ this.field }@`\n\t\t}\n\t\t\n\t\tget( force? : $mol_atom_force ) {\n\t\t\tif( this.status === $mol_atom_status.pulling ) {\n\t\t\t\tthrow new Error( `Cyclic atom dependency of ${ this }` )\n\t\t\t}\n\t\t\t\n\t\t\tthis.actualize( force )\n\t\t\t\n\t\t\tconst slave = $mol_atom.stack[0]\n\t\t\tif( slave ) {\n\t\t\t\tthis.lead( slave )\n\t\t\t\tslave.obey( this )\n\t\t\t}\n\t\t\t\n\t\t\tconst value = this['value()'] as Value\n\t\t\t\n\t\t\tif( typeof Proxy !== 'function' && value instanceof Error ) {\n\t\t\t\tthrow value\n\t\t\t}\n\t\t\t\n\t\t\treturn value\n\t\t}\n\t\t\n\t\tactualize( force? : $mol_atom_force ) {\n\t\t\t\n\t\t\t//this.log([ 'actualize' ])\n\t\t\t\n\t\t\tif( !force && this.status === $mol_atom_status.actual ) return\n\t\t\t\n\t\t\tconst slave = $mol_atom.stack[0]\n\t\t\t$mol_atom.stack[0] = this\n\t\t\t\n\t\t\tif( !force && this.status === $mol_atom_status.checking ) {\n\t\t\t\t\n\t\t\t\tthis.masters!.forEach(\n\t\t\t\t\tmaster => {\n\t\t\t\t\t\tif( this.status !== $mol_atom_status.checking ) return\n\t\t\t\t\t\tmaster.actualize()\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tif( this.status === $mol_atom_status.checking ) {\n\t\t\t\t\tthis.status = $mol_atom_status.actual\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( force || this.status !== $mol_atom_status.actual ) {\n\t\t\t\t\n\t\t\t\tconst oldMasters = this.masters\n\t\t\t\tthis.masters = null\n\t\t\t\t\n\t\t\t\tif( oldMasters ) oldMasters.forEach(\n\t\t\t\t\tmaster => {\n\t\t\t\t\t\tmaster.dislead( this )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tthis.status = $mol_atom_status.pulling\n\t\t\t\tconst next = this.pull( force )\n\t\t\t\t\n\t\t\t\tthis.push( next )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_atom.stack[0] = slave\n\t\t}\n\t\t\n\t\tpull( force? : $mol_atom_force ) {\n\t\t\ttry {\n\t\t\t\treturn this.handler( this._next , force )\n\t\t\t} catch( error ) {\n\t\t\t\tif( error[ '$mol_atom_catched' ] ) return error\n\t\t\t\tif( error instanceof $mol_atom_wait ) return error\n\t\t\t\t\n\t\t\t\tconsole.error( error.stack || error )\n\t\t\t\t\n\t\t\t\tif(!( error instanceof Error )) {\n\t\t\t\t\terror = new Error( error.stack || error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\terror['$mol_atom_catched'] = true\n\t\t\t\treturn error\n\t\t\t}\n\t\t}\n\t\t\n\t\t_next? : Value|Error\n\t\t\n\t\tset( next : Value ) : Value {\n\t\t\tconst next_normal = this.normalize( next , this._next )\n\t\t\tif( next_normal === this._next ) return this.get()\n\t\t\tif( next_normal === this['value()'] ) return this.get()\n\t\t\t\n\t\t\tthis._next = next_normal\n\t\t\tthis.obsolete()\n\t\t\treturn this.get()\n\t\t}\n\t\t\n\t\tnormalize( next : Value , prev? : Value|Error ) : Value {\n\t\t\tif( next === prev ) return next\n\t\t\t\n\t\t\tif( ( next instanceof Array ) && ( prev instanceof Array ) && ( next.length === prev.length ) ) {\n\t\t\t\tfor( let i = 0 ; i < next.length ; ++i ) {\n\t\t\t\t\tif( next[ i ] !== prev[ i ] ) return next as any\n\t\t\t\t}\n\t\t\t\treturn prev as any\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tpush( next_raw? : Value|Error ) : Value {\n\t\t\tthis._next = undefined\n\t\t\t\n\t\t\tthis.status = $mol_atom_status.actual\n\t\t\t\n\t\t\tconst host = this.host\n\t\t\tconst prev = this['value()']\n\t\t\t\n\t\t\tif( next_raw === undefined ) return prev as Value\n\t\t\t\n\t\t\tlet next = ( next_raw instanceof Error ) ? next_raw : this.normalize( next_raw , prev )\n\t\t\t\n\t\t\tif( next === prev ) return prev as Value\n\t\t\t\n\t\t\tif( next instanceof $mol_object ) {\n\t\t\t\tnext.object_field( this.field )\n\t\t\t\tnext.object_owner( host )\n\t\t\t}\n\t\t\t\n\t\t\tif(( typeof Proxy === 'function' )&&( next instanceof Error )) {\n\t\t\t\tnext = new Proxy( next , {\n\t\t\t\t\tget( target : Error ) {\n\t\t\t\t\t\tthrow target.valueOf()\n\t\t\t\t\t} ,\n\t\t\t\t\townKeys( target : Error ) {\n\t\t\t\t\t\tthrow target.valueOf()\n\t\t\t\t\t} ,\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\tthis['value()'] = next\n\t\t\tthis.log( [ 'push' , next , prev ] )\n\t\t\t\n\t\t\tthis.obsolete_slaves()\n\t\t\t\n\t\t\treturn next as Value\n\t\t}\n\t\t\n\t\tobsolete_slaves() {\n\t\t\tif( !this.slaves ) return\n\t\t\t\n\t\t\tthis.slaves.forEach( slave => slave.obsolete() )\n\t\t}\n\t\t\n\t\tcheck_slaves() {\n\t\t\tif( this.slaves ) {\n\t\t\t\tthis.slaves.forEach( slave => slave.check() )\n\t\t\t} else {\n\t\t\t\tif( this.autoFresh ) $mol_atom.actualize( this )\n\t\t\t}\n\t\t}\n\t\t\n\t\tcheck() {\n\t\t\t//if( this.status === $mol_atom_status.pulling ) {\n\t\t\t//\tthrow new Error( `May be obsolated while pulling ${ this }` )\n\t\t\t//}\n\t\t\t\n\t\t\tif( this.status === $mol_atom_status.actual ) {\n\t\t\t\t//this.log([ 'checking' ])\n\t\t\t\tthis.status = $mol_atom_status.checking\n\t\t\t\t\n\t\t\t\tthis.check_slaves()\n\t\t\t}\n\t\t}\n\t\t\n\t\tobsolete() {\n\t\t\tif( this.status === $mol_atom_status.obsolete ) return\n\t\t\t\n\t\t\t//if( this.status === $mol_atom_status.pulling ) {\n\t\t\t//\tthrow new Error( `Obsolated while pulling ${ this }` )\n\t\t\t//} \n\t\t\t\n\t\t\t// this.log( [ 'obsolete' ] )\n\t\t\t\n\t\t\tthis.status = $mol_atom_status.obsolete\n\t\t\t\n\t\t\tthis.check_slaves()\n\t\t\t\n\t\t\treturn\n\t\t}\n\t\t\n\t\tlead( slave : $mol_atom ) {\n\t\t\tif( !this.slaves ) {\n\t\t\t\tthis.slaves = new Set<$mol_atom>()\n\t\t\t\t$mol_atom.unreap( this )\n\t\t\t}\n\t\t\tthis.slaves.add( slave )\n\t\t}\n\t\t\n\t\tdislead( slave : $mol_atom ) {\n\t\t\tif( !this.slaves ) return\n\t\t\t\n\t\t\tif( this.slaves.size === 1 ) {\n\t\t\t\tthis.slaves = null\n\t\t\t\t$mol_atom.reap( this )\n\t\t\t} else {\n\t\t\t\tthis.slaves.delete( slave )\n\t\t\t}\n\t\t}\n\t\t\n\t\tobey( master : $mol_atom ) {\n\t\t\tif( !this.masters ) this.masters = new Set< $mol_atom >()\n\t\t\tthis.masters.add( master )\n\t\t}\n\t\t\n\t\tdisobey( master : $mol_atom ) {\n\t\t\tif( !this.masters ) return\n\t\t\tthis.masters.delete( master )\n\t\t}\n\t\t\n\t\tdisobey_all() {\n\t\t\tif( !this.masters ) return\n\t\t\t\n\t\t\tthis.masters.forEach( master => master.dislead( this ) )\n\t\t\t\n\t\t\tthis.masters = null\n\t\t}\n\t\t\n\t\tvalue( next? : Value , force? : $mol_atom_force ) : Value {\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn this.get( force )\n\t\t\t} else {\n\t\t\t\tif( force ) {\n\t\t\t\t\treturn this.push( next )\n\t\t\t\t} else {\n\t\t\t\t\treturn this.set( next )\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tstatic stack = [] as $mol_atom[]\n\t\tstatic updating : $mol_atom[] = []\n\t\tstatic reaping = new Set< $mol_atom >()\n\t\tstatic scheduled = false\n\t\t\n\t\tstatic actualize( atom : $mol_atom ) {\n\t\t\t$mol_atom.updating.push( atom )\n\t\t\t$mol_atom.schedule()\n\t\t}\n\t\t\n\t\tstatic reap( atom : $mol_atom ) {\n\t\t\t$mol_atom.reaping.add( atom )\n\t\t\t$mol_atom.schedule()\n\t\t}\n\t\t\n\t\tstatic unreap( atom : $mol_atom ) {\n\t\t\t$mol_atom.reaping.delete( atom )\n\t\t}\n\t\t\n\t\tstatic schedule() {\n\t\t\tif( this.scheduled ) return\n\t\t\t\n\t\t\tnew $mol_defer(\n\t\t\t\t() => {\n\t\t\t\t\tif( !this.scheduled ) return\n\t\t\t\t\tthis.scheduled = false\n\t\t\t\t\tthis.sync()\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\tthis.scheduled = true\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t$mol_log( '$mol_atom.sync' , [] )\n\t\t\tthis.schedule()\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\tconst atom = this.updating.shift()\n\t\t\t\tif( !atom ) break\n\t\t\t\tif( this.reaping.has( atom ) ) continue\n\t\t\t\tif( !atom.destroyed() ) atom.get()\n\t\t\t}\n\t\t\t\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\tthis.reaping.forEach(\n\t\t\t\t\tatom => {\n\t\t\t\t\t\tthis.reaping.delete( atom )\n\t\t\t\t\t\tif( !atom.slaves ) atom.destroyed( true )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tthis.scheduled = false\n\t\t}\n\t\t\n\t\tthen< Next >( done : ( prev? : Value )=> Next , fail? : ( error : Error )=> Next ) {\n\t\t\t\n\t\t\tlet prev : Value\n\t\t\tlet next : Next\n\t\t\t\n\t\t\tconst atom = new $mol_atom(\n\t\t\t\tthis ,\n\t\t\t\t() => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( prev == undefined ) {\n\t\t\t\t\t\t\tconst val = this.get()\n\t\t\t\t\t\t\tif( val instanceof $mol_atom_wait ) return val\n\t\t\t\t\t\t\tif( val ) val.valueOf()\n\t\t\t\t\t\t\tprev = val\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( next == undefined ) {\n\t\t\t\t\t\t\tconst val = done( prev )\n\t\t\t\t\t\t\tif( val instanceof $mol_atom_wait ) return val\n\t\t\t\t\t\t\tif( val ) val.valueOf()\n\t\t\t\t\t\t\tnext = val\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn next\n\n\t\t\t\t\t} catch( error ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( error instanceof $mol_atom_wait ) return error\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( fail ) return fail( error )\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn error\n\t\t\t\t\t}\n\n\t\t\t\t} ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_atom.actualize( atom )\n\t\t\t\n\t\t\treturn atom\n\t\t}\n\t\t\n\t\tcatch( fail : ( error : Error )=> Value ) {\n\t\t\treturn this.then( next => next , fail )\n\t\t}\n\t\t\n\t}\n\t\n\t$mol_state_stack.set( '$mol_atom.stack' , $mol_atom.stack )\n\t\n\texport class $mol_atom_wait extends Error {\n\t\tname = '$mol_atom_wait'\n\t\t\n\t\tconstructor( message = 'Wait...' ) {\n\t\t\tsuper( message )\n\t\t\tthis['__proto__'] = new.target.prototype\n\t\t}\n\t}\n\t\n\texport class $mol_atom_force extends Object {\n\t\t$mol_atom_force : boolean\n\t\tstatic $mol_atom_force : boolean\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_mem< Host , Value >(\n\t\tobj? : Host ,\n\t\tname? : string ,\n\t\tdescr? : TypedPropertyDescriptor< ( next? : Value , force? : $mol_atom_force )=> Value >\n\t) {\n\n\t\tconst value = descr.value\n\t\tconst store = new WeakMap< Object , $mol_atom >()\n\t\t\n\t\tdescr.value = function( next? : Value , force? : $mol_atom_force ) {\n\t\t\tconst host : any = this\n\t\t\n\t\t\tlet atom : $mol_atom = store.get( host )\n\t\t\tif( !atom ) {\n\t\t\t\tif( force && ( next === undefined ) ) return next\n\t\t\t\t\n\t\t\t\tstore.set( host , atom = new $mol_atom(\n\t\t\t\t\thost ,\n\t\t\t\t\tvalue.bind( host ) ,\n\t\t\t\t\tname + '()' ,\n\t\t\t\t) )\n\t\t\t}\n\t\t\t\n\t\t\treturn atom.value( next , force )\n\t\t}\n\t\t\n\t\tObject.defineProperty( obj , name + \"()\" , { get : function() { return store.get( this ) } } )\n\n\t\tdescr.value[ 'value' ] = value\n\n\t\treturn descr\n\t}\n\t\n\texport function $mol_mem_key< Host , Key , Value >(\n\t\tobj : Host ,\n\t\tname : string ,\n\t\tdescr : TypedPropertyDescriptor< ( key : Key , next? : Value , force? : $mol_atom_force )=> Value >\n\t) {\n\t\tconst value = descr.value\n\t\tconst store = new WeakMap< Object , { [ key : string ] : $mol_atom } >()\n\t\t\n\t\tdescr.value = function( key : Key , next : Value , force? : $mol_atom_force ) {\n\t\t\tconst host : any = this\n\t\t\tconst key_str = JSON.stringify( key )\n\t\t\t\n\t\t\tlet dict = store.get( host )\n\t\t\tif( !dict ) store.set( host , dict = {} )\n\t\t\t\n\t\t\tlet atom : $mol_atom = dict[ key_str ]\n\t\t\tif( !atom ) {\n\t\t\t\tif( force && ( next === undefined ) ) return next\n\t\t\t\t\n\t\t\t\tdict[ key_str ] = atom = new $mol_atom(\n\t\t\t\t\thost ,\n\t\t\t\t\tvalue.bind( host , key ) ,\n\t\t\t\t\tname + \"(\" + key_str + \")\" ,\n\t\t\t\t)\n\n\t\t\t}\n\t\t\t\n\t\t\treturn atom.value( next , force )\n\t\t}\n\t\t\n\t\tObject.defineProperty( obj , name + \"()\" , { get : function() { return store.get( this ) } } )\n\t\tvoid( ( descr.value as any )[ 'value' ] = value )\n\n\t\treturn descr\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic size( next? : {\n\t\t\twidth : number\n\t\t\theight : number\n\t\t} ) {\n\t\t\treturn next || {\n\t\t\t\twidth : window.innerWidth ,\n\t\t\t\theight : window.innerHeight ,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\twindow.addEventListener( 'resize' , ()=> {\n\t\t$mol_window.size( null )\n\t} )\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : Window & {\n\t\tNode : typeof Node\n\t\tElement : typeof Element\n\t\tHTMLElement : typeof HTMLElement\n\t\tXMLHttpRequest : typeof XMLHttpRequest\n\t}\n\t\n}\n","namespace $ {\n\t\n\t$mol_dom_context = window as any\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_fields (\n\t\tel : Element ,\n\t\tfields : { [ key : string ] : any }\n\t) {\n\t\tfor( let key in fields ) {\n\t\t\t\n\t\t\tconst val : any = fields[ key ]\n\t\t\t\n\t\t\tif( val === undefined ) continue\n\t\t\tif( el[ key ] === val ) continue\n\t\t\t\n\t\t\tel[ key ] = val\n\t\t\tif( el[ key ] === val ) continue\n\t\t\t\n\t\t\tconst setter = ()=> {\n\t\t\t\tel.removeEventListener( 'DOMNodeInsertedIntoDocument' , setter , { passive : true } as any )\n\t\t\t\tnew $mol_defer( ()=> {\n\t\t\t\t\tel[ key ] = val\n\t\t\t\t} )\n\t\t\t}\n\t\t\tel.addEventListener( 'DOMNodeInsertedIntoDocument' , setter , { passive : true } as any )\n\t\t\t\n\t\t}\n\t}\n\t\n\texport function $mol_dom_render_children (\n\t\tel : Element ,\n\t\tchildNodes : NodeList | Array< Node | string | number | boolean | { dom_tree : ()=> Node } >\n\t) {\n\t\tconst nodes = [] as ( Node | string )[]\n\t\t\n\t\tfor( let i = 0 ; i < childNodes.length ; ++i ) {\n\t\t\tlet node = childNodes[ i ] as any\n\t\t\tif( node == null ) continue\n\t\t\tif( Object( node ) === node ) {\n\t\t\t\tif( node[ 'dom_tree' ] ) node = node[ 'dom_tree' ]()\n\t\t\t\tnodes.push( node )\n\t\t\t} else {\n\t\t\t\tnodes.push( String( node ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tlet nextNode = el.firstChild\n\t\tfor( let view_ of nodes ) {\n\t\t\tconst view = view_.valueOf() as Node\n\t\t\t\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( nodes.indexOf( nextNode ) === -1 ) {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tnextNode.nodeValue = String( view )\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\t\n\texport function $mol_dom_render_attributes (\n\t\tel : Element ,\n\t\tattrs : { [ key : string ] : string|number|boolean }\n\t) {\n\t\tfor( let name in attrs ) {\n\t\t\tlet val = attrs[ name ] as any\n\t\t\tif( el.getAttribute( name ) === val ) continue\n\t\t\tif( val === null || val === false ) el.removeAttribute( name )\n\t\t\telse el.setAttribute( name , String( val ) )\n\t\t}\n\t}\n\t\n\texport function $mol_dom_render_styles (\n\t\tel : Element ,\n\t\tstyles : { [ key : string ] : string|number }\n\t) {\n\t\tfor( let name in styles ) {\n\t\t\tlet val = styles[ name ]\n\t\t\t\n\t\t\tconst style = ( el as HTMLElement ).style as any\n\t\t\tconst cur = style[ name ]\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tif( parseFloat( cur ) == val ) continue\n\t\t\t\tstyle[ name ] = `${ val }px`\n\t\t\t}\n\t\t\t\n\t\t\tif( cur !== val ) style[ name ] = val\n\t\t}\n\t}\n\t\n\texport function $mol_dom_render_events (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any }\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive : false } as any )\n\t\t}\n\t}\n\t\n\texport function $mol_dom_render_events_async (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any }\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive : true } as any )\n\t\t}\n\t}\n\t\n\texport function $mol_dom_render_events_detach (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any }\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.removeEventListener( name , events[ name ] , { passive : false } as any )\n\t\t}\n\t}\n\t\n}\n","\nnamespace $ {\n\t\n\texport namespace $$ { let $$ }\n\texport namespace $mol { let $mol }\n\t\n\texport type $mol_view_context = ( Window )&( typeof $.$$ )&( typeof $ )\n\t\n\texport function $mol_view_visible_width() {\n\t\treturn $mol_window.size().width\n\t}\n\t\n\texport function $mol_view_visible_height() {\n\t\treturn $mol_window.size().height\n\t}\n\t\n\texport function $mol_view_state_key( suffix : string ) {\n\t\treturn suffix\n\t}\n\n\t/// Reactive statefull lazy ViewModel\n\texport class $mol_view extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic Root( id : number ) {\n\t\t\treturn new this\n\t\t}\n\t\t\n\t\ttitle() : string {\n\t\t\treturn this.Class().toString()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tfocused( next?: boolean ) {\n\t\t\tlet node = this.dom_node()\n\t\t\tconst value = $mol_view_selection.focused( next === undefined ? undefined : next ? [ node ] : [] )\n\t\t\treturn value.indexOf( node ) !== -1\n\t\t} \n\t\t\n\t\t@ $mol_mem\n\t\tcontext( next? : $mol_view_context ) {\n\t\t\treturn next || $ as any\n\t\t}\n\t\t\n\t\tget $() {\n\t\t\treturn this.context()\n\t\t}\n\t\tset $( next : $mol_view_context ) {\n\t\t\tthis.context( next )\n\t\t}\n\t\t\n\t\tcontext_sub() {\n\t\t\treturn this.context()\n\t\t}\n\t\t\n\t\tstate_key( suffix = '' ) {\n\t\t\treturn this.$.$mol_view_state_key( suffix )\n\t\t}\n\t\t\n\t\t/// Name of element that created when element not found in DOM\n\t\tdom_name() {\n\t\t\treturn this.constructor.toString().replace( '$' , '' )\n\t\t}\n\t\t\n\t\t/// NameSpace of element that created when element not found in DOM\n\t\tdom_name_space() { return 'http://www.w3.org/1999/xhtml' }\n\t\t\n\t\t/// Raw child views\n\t\tsub() {\n\t\t\treturn null as Array<$mol_view|Node|string|number|boolean>\n\t\t}\n\t\t\n\t\t/// Visible sub views with defined context()\n\t\t/// Render all by default\n\t\tsub_visible() {\n\t\t\tconst sub = this.sub()\n\t\t\tif( !sub ) return sub\n\t\t\t\n\t\t\tconst context = this.context_sub()\n\t\t\tsub.forEach( child => {\n\t\t\t\tif( child instanceof $mol_view ) {\n\t\t\t\t\tchild.context( context )\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\t/// Minimal width that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_width() {\n\t\t\tconst sub = this.sub()\n\t\t\tif( !sub ) return 0\n\t\t\t\n\t\t\tlet min = 0\n\t\t\tsub.forEach( view => {\n\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\t/// Minimal height that used for lazy rendering\n\t\tminimal_height() {\n\t\t\treturn this.content_height()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tcontent_height() {\n\t\t\tconst sub = this.sub()\n\t\t\tif( !sub ) return 0\n\t\t\t\n\t\t\tlet min = 0\n\t\t\tsub.forEach( view => {\n\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\tmin = Math.max( min , view.minimal_height() )\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\tconst node = next || this.$.$mol_dom_context.document.createElementNS( this.dom_name_space() , this.dom_name() )\n\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t$mol_dom_render_events( node , this.event() )\n\t\t\t$mol_dom_render_events_async( node , this.event_async() )\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_tree() : Element {\n\t\t\tconst node = this.dom_node()\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tfor( let plugin of this.plugins() ) plugin.render()\n\t\t\t\tthis.render()\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : error.name } )\n\t\t\t\t\n\t\t\t\tif( error instanceof $mol_atom_wait ) return node\n\t\t\t\t\n\t\t\t\ttry { void( ( node as HTMLElement ).innerText = error.message ) } catch( e ) {}\n\t\t\t\t\n\t\t\t\tif( error[ '$mol_atom_catched' ] ) return node\n\t\t\t\t\n\t\t\t\tconsole.error( error )\n\n\t\t\t\terror[ '$mol_atom_catched' ] = true\n\t\t\t}\n\t\t\t\n\t\t\treturn node\n\t\t}\n\t\t\n\t\trender() {\n\t\t\tconst node = this.dom_node()\n\t\t\t\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( sub ) $mol_dom_render_children( node , sub )\n\t\t\t\n\t\t\t$mol_dom_render_attributes( node , this.attr() )\n\t\t\t$mol_dom_render_styles( node , this.style() )\n\t\t\t$mol_dom_render_fields( node , this.field() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic view_classes() {\n\t\t\tconst proto = this.prototype\n\t\t\t\n\t\t\tlet current = proto\n\t\t\tconst classes = [] as ( typeof $mol_view )[]\n\t\t\t\n\t\t\twhile( current ) {\n\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\tif(!( current instanceof $mol_view )) break\n\t\t\t\tcurrent = Object.getPrototypeOf( current )\n\t\t\t}\n\t\t\t\n\t\t\treturn classes\n\t\t}\n\t\t\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tconst owner = this.object_owner()\n\n\t\t\tif( owner instanceof $mol_view ) {\n\n\t\t\t\tconst suffix = this.object_field().replace( /\\(.*/ , '' )\n\t\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\t\n\t\t\t\tfor( let Class of ( owner.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\t\tif( suffix in Class.prototype ) names.push( $mol_func_name( Class ) + suffix2 )\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( let prefix of owner.view_names_owned() ) {\n\t\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_names() {\n\t\t\tconst names = [] as string[]\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) {\n\t\t\t\tif( names.indexOf( name ) < 0 ) names.push( name )\n\t\t\t}\n\n\t\t\tfor( let Class of ( this.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\tconst name = $mol_func_name( Class )\n\t\t\t\tif( names.indexOf( name ) < 0 ) names.push( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\tattr_static() : { [ key : string ] : string|number|boolean } {\n\t\t\tlet attrs : any = {\n\t\t\t\t'mol_view_error' : false ,\n\t\t\t\t'id' : this.toString() ,\n\t\t\t}\n\t\t\t\n\t\t\tfor( let name of this.view_names() ) attrs[ name.replace( /\\$/g , '' ).toLowerCase() ] = ''\n\t\t\t\n\t\t\treturn attrs\n\t\t}\n\t\t\n\t\tattr() : { [ key : string ] : string|number|boolean } {\n\t\t\treturn {\n\t\t\t\t'mol_view_error' : false ,\n\t\t\t}\n\t\t}\n\t\t\n\t\tstyle() : { [ key : string ] : string|number } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tfield() : { [ key : string ] : any } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent_async() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tplugins() {\n\t\t\treturn [] as $mol_view[]\n\t\t}\n\t\t\n\t}\n\t\n}\n","interface Window {\n\tcordova : any\n}\n\nnamespace $ {\n\n\t/// Autoattach view roots to loaded DOM.\n\t$mol_dom_context.document.addEventListener( window.cordova ? 'deviceready' : 'DOMContentLoaded' , event => {\n\t\t\t\n\t\tconst nodes = $mol_dom_context.document.querySelectorAll( '[mol_view_root]' )\n\t\t\n\t\tfor( let i = nodes.length - 1 ; i >= 0 ; --i ) {\n\t\t\tconst name = nodes.item( i ).getAttribute( 'mol_view_root' )\n\t\t\t\n\t\t\tconst View = $[ name ]\n\t\t\tif( !View ) {\n\t\t\t\tconsole.error( `Can not attach view. Class not found: ${ name }` )\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t\n\t\t\tconst view = View.Root( i )\n\t\t\t\n\t\t\tview.dom_node( nodes.item( i ) )\n\t\t\t\n\t\t\tlet win = new $mol_atom( `$mol_view.Root(${ i })` , ()=> {\n\t\t\t\tview.dom_tree()\n\t\t\t\t$mol_dom_context.document.title = view.title()\n\t\t\t\treturn null\n\t\t\t} )\n\t\t\t\n\t\t\tnew $mol_defer( ()=> win.get() )\n\t\t}\n\t\t\n\t\t$mol_defer.run()\n\t} )\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[] , force? : $mol_atom_force ) {\n\t\t\tif( next === undefined ) return [] as Element[]\n\t\t\t\n\t\t\tconst node = next[ 0 ] as HTMLElement\n\t\t\t\n\t\t\tnew $mol_defer( ()=> {\n\t\t\t\tif( node ) node.focus()\n\t\t\t\telse if( this[ 'focused()' ][ 'value()' ][0] ) this[ 'focused()' ][ 'value()' ][ 0 ].blur()\n\t\t\t} )\n\n\t\t\treturn undefined\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic position( ...diff : any[] ) {\n\t\t\tif( diff.length ) {\n\t\t\t\tif( !diff[ 0 ] ) return diff[ 0 ]\n\t\t\t\t\n\t\t\t\tvar start = diff[ 0 ].start\n\t\t\t\tvar end = diff[ 0 ].end\n\t\t\t\tif( !( start <= end ) ) throw new Error( `Wrong offsets (${start},${end})` )\n\t\t\t\t\n\t\t\t\tvar root = $mol_dom_context.document.getElementById( diff[ 0 ].id )\n\t\t\t\troot.focus()\n\t\t\t\t\n\t\t\t\tvar range = new Range\n\t\t\t\t\n\t\t\t\tvar cur = root.firstChild\n\t\t\t\twhile( cur !== root ) {\n\t\t\t\t\twhile( cur.firstChild ) cur = cur.firstChild\n\t\t\t\t\tif( cur.nodeValue ) {\n\t\t\t\t\t\tvar length = cur.nodeValue.length\n\t\t\t\t\t\tif( length >= start ) break\n\t\t\t\t\t\tstart -= length\n\t\t\t\t\t}\n\t\t\t\t\twhile( !cur.nextSibling ) {\n\t\t\t\t\t\tcur = cur.parentNode\n\t\t\t\t\t\tif( cur === root ) {\n\t\t\t\t\t\t\tstart = root.childNodes.length\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trange.setStart( cur , start )\n\t\t\t\t\n\t\t\t\tvar cur = root.firstChild\n\t\t\t\twhile( cur !== root ) {\n\t\t\t\t\twhile( cur.firstChild ) cur = cur.firstChild\n\t\t\t\t\tif( cur.nodeValue ) {\n\t\t\t\t\t\tvar length = cur.nodeValue.length\n\t\t\t\t\t\tif( length >= end ) break\n\t\t\t\t\t\tend -= length\n\t\t\t\t\t}\n\t\t\t\t\twhile( !cur.nextSibling ) {\n\t\t\t\t\t\tcur = cur.parentNode\n\t\t\t\t\t\tif( cur === root ) {\n\t\t\t\t\t\t\tend = root.childNodes.length\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trange.setEnd( cur , end )\n\t\t\t\t\n\t\t\t\tvar sel = $mol_dom_context.document.getSelection()\n\t\t\t\tsel.removeAllRanges()\n\t\t\t\tsel.addRange( range )\n\t\t\t\t\n\t\t\t\treturn diff[ 0 ]\n\t\t\t} else {\n\t\t\t\tvar sel = $mol_dom_context.document.getSelection()\n\t\t\t\tif( sel.rangeCount === 0 ) return null\n\t\t\t\tvar range = sel.getRangeAt( 0 )\n\t\t\t\t\n\t\t\t\tvar el = range.commonAncestorContainer as Element\n\t\t\t\twhile( el && !el.id ) el = el.parentElement\n\t\t\t\t\n\t\t\t\tif( !el ) return { id : null , start : 0 , end : 0 }\n\t\t\t\t\n\t\t\t\tvar meter = new Range\n\t\t\t\tmeter.selectNodeContents( el )\n\t\t\t\t\n\t\t\t\tmeter.setEnd( range.startContainer , range.startOffset )\n\t\t\t\tvar startOffset = meter.toString().length\n\t\t\t\t\n\t\t\t\tmeter.setEnd( range.endContainer , range.endOffset )\n\t\t\t\tvar endOffset = meter.toString().length\n\t\t\t\t\n\t\t\t\treturn { id : el.id , start : startOffset , end : endOffset }\n\t\t\t}\n\t\t}\n\t\t\n\t\tstatic onFocus( event : FocusEvent ) {\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = event.target as HTMLElement\n\t\t\t\n\t\t\twhile( element ) {\n\t\t\t\tparents.push( element )\n\t\t\t\telement = element.parentNode as HTMLElement\n\t\t\t}\n\n\t\t\tthis.focused( parents , $mol_atom_force )\n\t\t}\n\t\t\n\t\tstatic onBlur( event : FocusEvent ) {\n\t\t\tconst focused = this.focused()\n\t\t\tsetTimeout( ()=> {\n\t\t\t\tif( focused !== this.focused() ) return\n\t\t\t\tthis.focused( [] , $mol_atom_force )\n\t\t\t} )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t\n\t$mol_dom_context.document.addEventListener( 'selectionchange' , event => {\n\t\t$mol_view_selection.position( undefined , $mol_atom_force )\n\t} )\n\t\n\t$mol_dom_context.document.addEventListener( 'focus' , event => $mol_view_selection.onFocus( event ) , true )\n\t$mol_dom_context.document.addEventListener( 'blur' , event => $mol_view_selection.onBlur( event ) , true )\n\t\n}\n","namespace $ { export class $mol_scroll extends $mol_view {\n\n\t/// minimal_height 0\n\tminimal_height() {\n\t\treturn 0\n\t}\n\n\t/// field * \n\t/// \t^ \n\t/// \tscrollTop <= scroll_top?val - \n\t/// \tscrollLeft <= scroll_left?val - \n\t/// \tscrollBottom <= scroll_bottom?val - \n\t/// \tscrollRight <= scroll_right?val -\n\tfield() {\n\t\treturn ({\n\t\t\t...super.field() ,\n\t\t\t\"scrollTop\" : this.scroll_top() ,\n\t\t\t\"scrollLeft\" : this.scroll_left() ,\n\t\t\t\"scrollBottom\" : this.scroll_bottom() ,\n\t\t\t\"scrollRight\" : this.scroll_right() ,\n\t\t})\n\t}\n\n\t/// scroll_top?val 0\n\t@ $mol_mem\n\tscroll_top( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// scroll_left?val 0\n\t@ $mol_mem\n\tscroll_left( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// scroll_bottom?val 0\n\t@ $mol_mem\n\tscroll_bottom( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// scroll_right?val 0\n\t@ $mol_mem\n\tscroll_right( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// event_async * \n\t/// \t^ \n\t/// \tscroll?event <=> event_scroll?event -\n\tevent_async() {\n\t\treturn ({\n\t\t\t...super.event_async() ,\n\t\t\t\"scroll\" : ( event? : any )=> this.event_scroll( event ) ,\n\t\t})\n\t}\n\n\t/// event_scroll?event null\n\t@ $mol_mem\n\tevent_scroll( event? : any , force? : $mol_atom_force ) {\n\t\treturn ( event !== void 0 ) ? event : null as any\n\t}\n\n\t/// Strut $mol_view style * transform <= strut_transform -\n\t@ $mol_mem\n\tStrut() {\n\t\treturn (( obj )=>{\n\t\t\tobj.style = () => ({\n\t\t\t\"transform\" : this.strut_transform() ,\n\t\t})\n\t\t\treturn obj\n\t\t})( new this.$.$mol_view )\n\t}\n\n\t/// strut_transform \\\n\tstrut_transform() {\n\t\treturn \"\"\n\t}\n\n} }\n\n","namespace $.$$ {\n\t\n\texport function $mol_scroll_top() {\n\t\treturn 0\n\t}\n\t\n\texport function $mol_scroll_left() {\n\t\treturn 0\n\t}\n\t\n\texport function $mol_scroll_moving() {\n\t\treturn false\n\t}\n\t\n\texport class $mol_scroll extends $.$mol_scroll {\n\n\t\t// scroll_top( next? : number ) {\n\t\t// \treturn $mol_state_session.value( `${ this }.scroll_top()` , next ) || 0\n\t\t// }\n\t\t// \n\t\t// scroll_left( next? : number ) {\n\t\t// \treturn $mol_state_session.value( `${ this }.scroll_left()` , next ) || 0\n\t\t// }\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_bottom( next? : number ) {\n\t\t\treturn next || 0\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_right( next? : number ) {\n\t\t\treturn next || 0\n\t\t}\n\t\t\n\t\tevent_scroll( next? : Event ) {\n\t\t\tthis.moving( true )\n\t\t\tthis.moving_task_stop()\n\t\t\t\n\t\t\tnew $mol_defer( ()=> {\n\t\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\t\n\t\t\t\tconst top = Math.max( 0 , el.scrollTop )\n\t\t\t\tconst left = Math.max( 0 , el.scrollLeft )\n\t\t\t\t\n\t\t\t\tthis.scroll_top( top )\n\t\t\t\tthis.scroll_left( left )\n\t\t\t\t\n\t\t\t\tthis.scroll_bottom( Math.max( 0 , el.scrollHeight - top - el.offsetHeight ) )\n\t\t\t\tthis.scroll_right( Math.max( 0 , el.scrollWidth - left - el.offsetWidth ) )\n\t\t\t} )\n\t\t}\n\t\t\n\t\tevent_repos( next? : Event ) {\n\t\t\tnew $mol_defer( ()=> {\n\t\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\t\n\t\t\t\tthis.scroll_bottom( Math.max( 0 , el.scrollHeight - this.scroll_top() - el.offsetHeight ) )\n\t\t\t\tthis.scroll_right( Math.max( 0 , el.scrollWidth - this.scroll_left() - el.offsetWidth ) )\n\t\t\t} )\n\t\t}\n\t\t\n\t\t_moving_task_timer = 0\n\t\tmoving_task_stop() {\n\t\t\tclearTimeout( this._moving_task_timer )\n\t\t\tthis._moving_task_timer = setTimeout( ()=> this.moving( false ) , 50 )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmoving( next? : boolean ) {\n\t\t\treturn next || false\n\t\t}\n\n\t\t@ $mol_mem\n\t\tcontext_sub( ) {\n\t\t\tconst context = this.context()\n\t\t\tconst subContext : $mol_view_context = Object.create( context )\n\t\t\tsubContext.$mol_view_visible_height = ()=> {\n\t\t\t\tconst sizeWin = $mol_window.size()\n\t\t\t\tconst limit = context.$mol_view_visible_height()\n\t\t\t\treturn this.scroll_top() + Math.min( sizeWin.height , limit )\n\t\t\t}\n\t\t\tsubContext.$mol_view_visible_width = ()=> {\n\t\t\t\tconst sizeWin = $mol_window.size()\n\t\t\t\tconst limit = context.$mol_view_visible_width()\n\t\t\t\treturn this.scroll_left() + Math.min( sizeWin.width , limit )\n\t\t\t}\n\t\t\tsubContext.$mol_scroll_top = ()=> this.scroll_top()\n\t\t\tsubContext.$mol_scroll_left = ()=> this.scroll_left()\n\t\t\tsubContext.$mol_scroll_moving = ()=> this.moving()\n\t\t\treturn subContext\n\t\t}\n\t\t\n\t\tstrut_transform() {\n\t\t\treturn `translate3d( 0 , ${this.content_height()}px , 0 )`\n\t\t}\n\n\t\tsub_visible() {\n\t\t\tconst sub = [\n\t\t\t\tthis.Strut() ,\n\t\t\t\t... this.sub() ,\n\t\t\t]\n\n\t\t\tconst context = this.context_sub()\n\t\t\tsub.forEach( child => {\n\t\t\t\tif( child instanceof $mol_view ) {\n\t\t\t\t\tchild.context( context )\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn sub\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ { export class $mol_list extends $mol_view {\n\n\t/// sub <= rows -\n\tsub() {\n\t\treturn this.rows()\n\t}\n\n\t/// rows /\n\trows() {\n\t\treturn [] as any[]\n\t}\n\n\t/// Empty null\n\tEmpty() {\n\t\treturn null as any\n\t}\n\n} }\n\n","namespace $.$$ {\n\texport class $mol_list extends $.$mol_list {\n\t\t\n\t\tsub() {\n\t\t\tconst rows = this.rows()\n\t\t\treturn ( rows.length === 0 ) ? [ this.Empty() ] : rows\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trow_offsets() : number[] {\n\t\t\tvar sub = this.sub()\n\t\t\tif( !sub ) return null\n\t\t\t\n\t\t\tlet heightLimit = this.$.$mol_view_visible_height()\n\t\t\tvar offset = 0\n\t\t\t\n\t\t\tvar next : number[] = []\n\t\t\tfor( let child of sub ) {\n\t\t\t\tnext.push( offset )\n\t\t\t\t\n\t\t\t\tif( child instanceof $mol_view ) {\n\t\t\t\t\toffset += child.minimal_height()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( offset > heightLimit ) break\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\trow_context( index : number ) {\n\t\t\tlet context = this.context()\n\t\t\tlet next = Object.create( context )\n\t\t\tnext.$mol_view_visible_height = ()=> {\n\t\t\t\tconst limit = context.$mol_view_visible_height()\n\t\t\t\treturn limit - this.row_offsets()[ index ]\n\t\t\t}\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub_visible() {\n\t\t\tvar sub = this.sub()\n\t\t\tif( !sub ) return sub\n\t\t\t\n\t\t\tvar limit = this.row_offsets().length\n\t\t\t\n\t\t\tvar next : $mol_view[] = []\n\t\t\tfor( let i = 0 ; i < limit ; ++ i ) {\n\t\t\t\tconst child = sub[ i ]\n\t\t\t\tif( child == null ) continue \n\t\t\t\tif( child instanceof $mol_view ) {\n\t\t\t\t\tchild.context( this.row_context( i ) )\n\t\t\t\t}\n\t\t\t\tnext.push( child )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\tvar height = 0\n\t\t\tvar sub = this.sub()\n\t\t\tif( sub ) sub.forEach( child => {\n\t\t\t\tif( child instanceof $mol_view ) {\n\t\t\t\t\theight += child.minimal_height()\n\t\t\t\t}\n\t\t\t} )\n\t\t\treturn height\n\t\t}\n\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision? : number , next? : number , force? : $mol_atom_force ) {\n\t\t\t\n\t\t\tif( precision > 0 ) {\n\t\t\t\tsetTimeout( () => this.now( precision , undefined , $mol_atom_force ) , precision )\n\t\t\t} else {\n\t\t\t\trequestAnimationFrame( () => this.now( precision , undefined , $mol_atom_force ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { export class $mol_meter extends $mol_view {\n\n\t/// width?val 0\n\t@ $mol_mem\n\twidth( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// height?val 0\n\t@ $mol_mem\n\theight( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// left?val 0\n\t@ $mol_mem\n\tleft( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// right?val 0\n\t@ $mol_mem\n\tright( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// bottom?val 0\n\t@ $mol_mem\n\tbottom( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n\t/// top?val 0\n\t@ $mol_mem\n\ttop( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : 0\n\t}\n\n} }\n\n","namespace $.$$ {\n\texport class $mol_meter extends $.$mol_meter {\n\t\t\n\t\tdom_node() {\n\t\t\treturn ( this.object_owner() as $mol_view ).dom_node()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trect() {\n\t\t\tif( this.dom_node() !== $mol_dom_context.document.body ) {\n\t\t\t\t$mol_state_time.now()\n\t\t\t\t\n\t\t\t\tconst node = this.dom_node()\n\t\t\t\ttry {\n\t\t\t\t\treturn node.getBoundingClientRect()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t// IE11\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst size = $mol_window.size()\n\t\t\treturn {\n\t\t\t\tleft : 0 ,\n\t\t\t\ttop : 0 ,\n\t\t\t\tright : size.width ,\n\t\t\t\tbottom : size.height ,\n\t\t\t\twidth : size.width ,\n\t\t\t\theight : size.height ,\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttop() {\n\t\t\treturn this.rect().top\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbottom() {\n\t\t\treturn this.rect().bottom\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tleft() {\n\t\t\treturn this.rect().left\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tright() {\n\t\t\treturn this.rect().right\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\twidth() {\n\t\t\treturn this.rect().width\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\theight() {\n\t\t\treturn this.rect().height\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { export class $mol_pop extends $mol_view {\n\n\t/// showed?val false\n\t@ $mol_mem\n\tshowed( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : false\n\t}\n\n\t/// plugins / <= Meter -\n\tplugins() {\n\t\treturn [].concat( this.Meter() )\n\t}\n\n\ttop(){\n\t\treturn this.Meter().top()\n\t}\n\n\tbottom(){\n\t\treturn this.Meter().bottom()\n\t}\n\n\tleft(){\n\t\treturn this.Meter().left()\n\t}\n\n\tright(){\n\t\treturn this.Meter().right()\n\t}\n\n\t/// Meter $mol_meter \n\t/// \ttop => top - \n\t/// \tbottom => bottom - \n\t/// \tleft => left - \n\t/// \tright => right -\n\t@ $mol_mem\n\tMeter() {\n\t\treturn (( obj )=>{\n\t\t\treturn obj\n\t\t})( new this.$.$mol_meter )\n\t}\n\n\t/// sub / \n\t/// \t<= Anchor - \n\t/// \t<= Bubble -\n\tsub() {\n\t\treturn [].concat( this.Anchor() , this.Bubble() )\n\t}\n\n\t/// Anchor null\n\tAnchor() {\n\t\treturn null as any\n\t}\n\n\t/// Bubble $mol_pop_bubble \n\t/// \talign <= align - \n\t/// \tcontent <= bubble_content - \n\t/// \theight_max <= height_max -\n\t@ $mol_mem\n\tBubble() {\n\t\treturn (( obj )=>{\n\t\t\tobj.align = () => this.align()\n\t\t\tobj.content = () => this.bubble_content()\n\t\t\tobj.height_max = () => this.height_max()\n\t\t\treturn obj\n\t\t})( new this.$.$mol_pop_bubble )\n\t}\n\n\t/// align \\bottom_center\n\talign() {\n\t\treturn \"bottom_center\"\n\t}\n\n\t/// bubble_content /\n\tbubble_content() {\n\t\treturn [] as any[]\n\t}\n\n\t/// height_max 9999\n\theight_max() {\n\t\treturn 9999\n\t}\n\n} }\n\nnamespace $ { export class $mol_pop_bubble extends $mol_scroll {\n\n\t/// sub <= content -\n\tsub() {\n\t\treturn this.content()\n\t}\n\n\t/// content /\n\tcontent() {\n\t\treturn [] as any[]\n\t}\n\n\t/// style * \n\t/// \t^ \n\t/// \tmaxHeight <= height_max -\n\tstyle() {\n\t\treturn ({\n\t\t\t...super.style() ,\n\t\t\t\"maxHeight\" : this.height_max() ,\n\t\t})\n\t}\n\n\t/// height_max 9999\n\theight_max() {\n\t\treturn 9999\n\t}\n\n\t/// attr * \n\t/// \t^ \n\t/// \tmol_pop_align <= align - \n\t/// \ttabindex 0\n\tattr() {\n\t\treturn ({\n\t\t\t...super.attr() ,\n\t\t\t\"mol_pop_align\" : this.align() ,\n\t\t\t\"tabindex\" : 0 ,\n\t\t})\n\t}\n\n\t/// align \\\n\talign() {\n\t\treturn \"\"\n\t}\n\n} }\n\n","namespace $.$$ {\n\texport class $mol_pop extends $.$mol_pop {\n\t\t\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Anchor() ,\n\t\t\t\t... this.showed() ? [ this.Bubble() ] : [] ,\n\t\t\t]\n\t\t}\n\t\t\n\t\theight_max() {\n\t\t\treturn this.$.$mol_window.size().height * 0.33;\n\t\t}\n\n\t\talign() {\n\t\t\tconst viewport = this.$.$mol_window.size()\n\t\t\t\n\t\t\tconst vert = this.top() > ( viewport.height - this.bottom() ) ? 'top' : 'bottom'\n\t\t\tconst hor = this.left() > ( viewport.width - this.right() ) ? 'left' : 'right'\n\t\t\t\n\t\t\treturn `${ vert }_${ hor }`\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { export class $mol_pop_over extends $mol_pop {\n\n\t/// showed <= hovered?val -\n\tshowed() {\n\t\treturn this.hovered()\n\t}\n\n\t/// hovered?val false\n\t@ $mol_mem\n\thovered( val? : any , force? : $mol_atom_force ) {\n\t\treturn ( val !== void 0 ) ? val : false\n\t}\n\n\t/// attr * \n\t/// \t^ \n\t/// \ttabindex 0\n\tattr() {\n\t\treturn ({\n\t\t\t...super.attr() ,\n\t\t\t\"tabindex\" : 0 ,\n\t\t})\n\t}\n\n\t/// event * \n\t/// \t^ \n\t/// \tmouseenter?event <=> event_show?event - \n\t/// \tmouseleave?event <=> event_hide?event -\n\tevent() {\n\t\treturn ({\n\t\t\t...super.event() ,\n\t\t\t\"mouseenter\" : ( event? : any )=> this.event_show( event ) ,\n\t\t\t\"mouseleave\" : ( event? : any )=> this.event_hide( event ) ,\n\t\t})\n\t}\n\n\t/// event_show?event null\n\t@ $mol_mem\n\tevent_show( event? : any , force? : $mol_atom_force ) {\n\t\treturn ( event !== void 0 ) ? event : null as any\n\t}\n\n\t/// event_hide?event null\n\t@ $mol_mem\n\tevent_hide( event? : any , force? : $mol_atom_force ) {\n\t\treturn ( event !== void 0 ) ? event : null as any\n\t}\n\n} }\n\n","namespace $.$$ {\n\texport class $mol_pop_over extends $.$mol_pop_over {\n\t\t\n\t\tevent_show( event? : MouseEvent ) {\n\t\t\tthis.hovered( true )\n\t\t}\n\t\t\n\t\tevent_hide( event? : MouseEvent ) {\n\t\t\tthis.hovered( false )\n\t\t}\n\n\t\tshowed() {\n\t\t\treturn this.focused() || this.hovered()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { export class $mol_perf_dbmon extends $mol_scroll {\n\n\t/// title \\dbmon ($mol)\n\ttitle() {\n\t\treturn \"dbmon ($mol)\"\n\t}\n\n\t/// sub / <= Databases -\n\tsub() {\n\t\treturn [].concat( this.Databases() )\n\t}\n\n\t/// Databases $mol_list rows <= databases -\n\t@ $mol_mem\n\tDatabases() {\n\t\treturn (( obj )=>{\n\t\t\tobj.rows = () => this.databases()\n\t\t\treturn obj\n\t\t})( new this.$.$mol_list )\n\t}\n\n\t/// databases /\n\tdatabases() {\n\t\treturn [] as any[]\n\t}\n\n\t/// Database!id $mol_view sub / \n\t/// \t<= Name!id - \n\t/// \t<= Query_count!id - \n\t/// \t<= top_queries!id -\n\t@ $mol_mem_key\n\tDatabase( id : any ) {\n\t\treturn (( obj )=>{\n\t\t\tobj.sub = () => [].concat( this.Name(id) , this.Query_count(id) , this.top_queries(id) )\n\t\t\treturn obj\n\t\t})( new this.$.$mol_view )\n\t}\n\n\t/// Name!id $mol_view sub / <= name!id -\n\t@ $mol_mem_key\n\tName( id : any ) {\n\t\treturn (( obj )=>{\n\t\t\tobj.sub = () => [].concat( this.name(id) )\n\t\t\treturn obj\n\t\t})( new this.$.$mol_view )\n\t}\n\n\t/// name!id \\\n\tname( id : any ) {\n\t\treturn \"\"\n\t}\n\n\t/// Query_count!id $mol_perf_dbmon_query_count \n\t/// \tlabel_mod <= query_count_label_mod!id - \n\t/// \tcount <= query_count!id -\n\t@ $mol_mem_key\n\tQuery_count( id : any ) {\n\t\treturn (( obj )=>{\n\t\t\tobj.label_mod = () => this.query_count_label_mod(id)\n\t\t\tobj.count = () => this.query_count(id)\n\t\t\treturn obj\n\t\t})( new this.$.$mol_perf_dbmon_query_count )\n\t}\n\n\t/// query_count_label_mod!id \\\n\tquery_count_label_mod( id : any ) {\n\t\treturn \"\"\n\t}\n\n\t/// query_count!id 0\n\tquery_count( id : any ) {\n\t\treturn 0\n\t}\n\n\t/// top_queries!id /\n\ttop_queries( id : any ) {\n\t\treturn [] as any[]\n\t}\n\n\t/// Query!id $mol_perf_dbmon_query \n\t/// \telapsed <= query_elapsed!id - \n\t/// \telapsed_mod <= query_elapsed_mod!id - \n\t/// \tvalue <= query_value!id -\n\t@ $mol_mem_key\n\tQuery( id : any ) {\n\t\treturn (( obj )=>{\n\t\t\tobj.elapsed = () => this.query_elapsed(id)\n\t\t\tobj.elapsed_mod = () => this.query_elapsed_mod(id)\n\t\t\tobj.value = () => this.query_value(id)\n\t\t\treturn obj\n\t\t})( new this.$.$mol_perf_dbmon_query )\n\t}\n\n\t/// query_elapsed!id \\\n\tquery_elapsed( id : any ) {\n\t\treturn \"\"\n\t}\n\n\t/// query_elapsed_mod!id \\\n\tquery_elapsed_mod( id : any ) {\n\t\treturn \"\"\n\t}\n\n\t/// query_value!id \\\n\tquery_value( id : any ) {\n\t\treturn \"\"\n\t}\n\n} }\n\nnamespace $ { export class $mol_perf_dbmon_query_count extends $mol_view {\n\n\t/// sub / <= Label -\n\tsub() {\n\t\treturn [].concat( this.Label() )\n\t}\n\n\t/// Label $mol_view \n\t/// \tattr * mol_perf_dbmon_query_count_label <= label_mod - \n\t/// \tsub / <= count -\n\t@ $mol_mem\n\tLabel() {\n\t\treturn (( obj )=>{\n\t\t\tobj.attr = () => ({\n\t\t\t\"mol_perf_dbmon_query_count_label\" : this.label_mod() ,\n\t\t})\n\t\t\tobj.sub = () => [].concat( this.count() )\n\t\t\treturn obj\n\t\t})( new this.$.$mol_view )\n\t}\n\n\t/// label_mod \\\n\tlabel_mod() {\n\t\treturn \"\"\n\t}\n\n\t/// count 0\n\tcount() {\n\t\treturn 0\n\t}\n\n} }\n\nnamespace $ { export class $mol_perf_dbmon_query extends $mol_pop_over {\n\n\t/// minimal_height 40\n\tminimal_height() {\n\t\treturn 40\n\t}\n\n\t/// Anchor <= Elapsed -\n\tAnchor() {\n\t\treturn this.Elapsed()\n\t}\n\n\t/// Elapsed $mol_view \n\t/// \tattr * mol_perf_dbmon_query_elapsed <= elapsed_mod - \n\t/// \tsub / <= elapsed -\n\t@ $mol_mem\n\tElapsed() {\n\t\treturn (( obj )=>{\n\t\t\tobj.attr = () => ({\n\t\t\t\"mol_perf_dbmon_query_elapsed\" : this.elapsed_mod() ,\n\t\t})\n\t\t\tobj.sub = () => [].concat( this.elapsed() )\n\t\t\treturn obj\n\t\t})( new this.$.$mol_view )\n\t}\n\n\t/// elapsed_mod \\\n\telapsed_mod() {\n\t\treturn \"\"\n\t}\n\n\t/// elapsed \\\n\telapsed() {\n\t\treturn \"\"\n\t}\n\n\t/// bubble_content / <= value -\n\tbubble_content() {\n\t\treturn [].concat( this.value() )\n\t}\n\n\t/// value \\\n\tvalue() {\n\t\treturn \"\"\n\t}\n\n\t/// align \\left_center\n\talign() {\n\t\treturn \"left_center\"\n\t}\n\n} }\n\n","declare let ENV : any\ndeclare let Monitoring : any\n\nnamespace $.$$ {\n\n\texport class $mol_perf_dbmon extends $.$mol_perf_dbmon {\n\n\t\t@ $mol_mem\n\t\tdata() {\n\t\t\t$mol_state_time.now( ENV.timeout )\n\t\t\tMonitoring.renderRate.ping();\n\t\t\treturn ENV.generateData().toArray()\n\t\t}\n\n\t\tdatabases() {\n\t\t\treturn Object.keys( this.data() ).map( index => this.Database( index ) )\n\t\t}\n\n\t\tname( id : string ) {\n\t\t\treturn this.data()[ id ].dbname\n\t\t}\n\n\t\tlast_sample( id : string ) {\n\t\t\treturn this.data()[ id ].lastSample\n\t\t}\n\n\t\tquery_count( id : string ) {\n\t\t\treturn this.last_sample( id ).nbQueries\n\t\t}\n\n\t\tquery_count_label_mod( id : string ) {\n\t\t\treturn this.last_sample( id ).countClassName\n\t\t}\n\n\t\ttop_queries( db : string ) {\n\t\t\treturn Object.keys( this.last_sample( db ).topFiveQueries ).map( query => this.Query({ db , query }) )\n\t\t}\n\n\t\ttop_query( id : { db : string , query : string } ) {\n\t\t\treturn this.last_sample( id.db ).topFiveQueries[ id.query ]\n\t\t}\n\n\t\tquery_elapsed( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).formatElapsed\n\t\t}\n\n\t\tquery_elapsed_mod( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).elapsedClassName\n\t\t}\n\n\t\tquery_value( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).query\n\t\t}\n\n\t}\n\n}\n"]} \ No newline at end of file diff --git a/mol/dbmon.meta.tree b/mol/dbmon.meta.tree deleted file mode 100644 index 682bf095..00000000 --- a/mol/dbmon.meta.tree +++ /dev/null @@ -1,3 +0,0 @@ -deploy \/mol/perf/dbmon/_ENV.js -deploy \/mol/perf/dbmon/_memory-stats.js -deploy \/mol/perf/dbmon/_monitor.js diff --git a/mol/index.html b/mol/index.html index 85efd7f4..1addc37c 100644 --- a/mol/index.html +++ b/mol/index.html @@ -3,8 +3,6 @@ - - @@ -12,7 +10,7 @@
- - - - + + + + diff --git a/mol/mol/perf/dbmon/scripts/ENV.js b/mol/mol/perf/dbmon/scripts/ENV.js new file mode 100644 index 00000000..cc70ba87 --- /dev/null +++ b/mol/mol/perf/dbmon/scripts/ENV.js @@ -0,0 +1,211 @@ +var ENV = ENV || (function() { + + var first = true; + var counter = 0; + var data; + var _base; + (_base = String.prototype).lpad || (_base.lpad = function(padding, toLength) { + return padding.repeat((toLength - this.length) / padding.length).concat(this); + }); + + function formatElapsed(value) { + var str = parseFloat(value).toFixed(2); + if (value > 60) { + minutes = Math.floor(value / 60); + comps = (value % 60).toFixed(2).split('.'); + seconds = comps[0].lpad('0', 2); + ms = comps[1]; + str = minutes + ":" + seconds + "." + ms; + } + return str; + } + + function getElapsedClassName(elapsed) { + var className = 'Query elapsed'; + if (elapsed >= 10.0) { + className += ' warn_long'; + } + else if (elapsed >= 1.0) { + className += ' warn'; + } + else { + className += ' short'; + } + return className; + } + + function countClassName(queries) { + var countClassName = "label"; + if (queries >= 20) { + countClassName += " label-important"; + } + else if (queries >= 10) { + countClassName += " label-warning"; + } + else { + countClassName += " label-success"; + } + return countClassName; + } + + function updateQuery(object) { + if (!object) { + object = {}; + } + var elapsed = Math.random() * 15; + object.elapsed = elapsed; + object.formatElapsed = formatElapsed(elapsed); + object.elapsedClassName = getElapsedClassName(elapsed); + object.query = "SELECT blah FROM something"; + object.waiting = Math.random() < 0.5; + if (Math.random() < 0.2) { + object.query = " in transaction"; + } + if (Math.random() < 0.1) { + object.query = "vacuum"; + } + return object; + } + + function cleanQuery(value) { + if (value) { + value.formatElapsed = ""; + value.elapsedClassName = ""; + value.query = ""; + value.elapsed = null; + value.waiting = null; + } else { + return { + query: "***", + formatElapsed: "", + elapsedClassName: "" + }; + } + } + + function generateRow(object, keepIdentity, counter) { + var nbQueries = Math.floor((Math.random() * 10) + 1); + if (!object) { + object = {}; + } + object.lastMutationId = counter; + object.nbQueries = nbQueries; + if (!object.lastSample) { + object.lastSample = {}; + } + if (!object.lastSample.topFiveQueries) { + object.lastSample.topFiveQueries = []; + } + if (keepIdentity) { + // for Angular optimization + if (!object.lastSample.queries) { + object.lastSample.queries = []; + for (var l = 0; l < 12; l++) { + object.lastSample.queries[l] = cleanQuery(); + } + } + for (var j in object.lastSample.queries) { + var value = object.lastSample.queries[j]; + if (j <= nbQueries) { + updateQuery(value); + } else { + cleanQuery(value); + } + } + } else { + object.lastSample.queries = []; + for (var j = 0; j < 12; j++) { + if (j < nbQueries) { + var value = updateQuery(cleanQuery()); + object.lastSample.queries.push(value); + } else { + object.lastSample.queries.push(cleanQuery()); + } + } + } + for (var i = 0; i < 5; i++) { + var source = object.lastSample.queries[i]; + object.lastSample.topFiveQueries[i] = source; + } + object.lastSample.nbQueries = nbQueries; + object.lastSample.countClassName = countClassName(nbQueries); + return object; + } + + function getData(keepIdentity) { + var oldData = data; + if (!keepIdentity) { // reset for each tick when !keepIdentity + data = []; + for (var i = 1; i <= ENV.rows; i++) { + data.push({ dbname: 'cluster' + i, query: "", formatElapsed: "", elapsedClassName: "" }); + data.push({ dbname: 'cluster' + i + ' slave', query: "", formatElapsed: "", elapsedClassName: "" }); + } + } + if (!data) { // first init when keepIdentity + data = []; + for (var i = 1; i <= ENV.rows; i++) { + data.push({ dbname: 'cluster' + i }); + data.push({ dbname: 'cluster' + i + ' slave' }); + } + oldData = data; + } + for (var i in data) { + var row = data[i]; + if (!keepIdentity && oldData && oldData[i]) { + row.lastSample = oldData[i].lastSample; + } + if (!row.lastSample || Math.random() < ENV.mutations()) { + counter = counter + 1; + if (!keepIdentity) { + row.lastSample = null; + } + generateRow(row, keepIdentity, counter); + } else { + data[i] = oldData[i]; + } + } + first = false; + return { + toArray: function() { + return data; + } + }; + } + + var mutationsValue = 0.5; + + function mutations(value) { + if (value) { + mutationsValue = value; + document.querySelector('#ratioval').innerHTML = 'mutations : ' + (mutationsValue * 100).toFixed(0) + '%'; + return mutationsValue; + } else { + return mutationsValue; + } + } + + var body = document.querySelector('body'); + var theFirstChild = body.firstChild; + + var sliderContainer = document.createElement('div'); + sliderContainer.style.cssText = "display: flex"; + var slider = document.createElement('input'); + var text = document.createElement('label'); + text.innerHTML = 'mutations : ' + (mutationsValue * 100).toFixed(0) + '%'; + text.id = "ratioval"; + slider.setAttribute("type", "range"); + slider.style.cssText = 'margin-bottom: 10px; margin-top: 5px'; + slider.addEventListener('change', function(e) { + ENV.mutations(e.target.value / 100); + }); + sliderContainer.appendChild(text); + sliderContainer.appendChild(slider); + body.insertBefore(sliderContainer, theFirstChild); + + return { + generateData: getData, + rows: 50, + timeout: 0, + mutations: mutations + }; +})(); diff --git a/mol/mol/perf/dbmon/scripts/memory-stats.js b/mol/mol/perf/dbmon/scripts/memory-stats.js new file mode 100644 index 00000000..e621d25d --- /dev/null +++ b/mol/mol/perf/dbmon/scripts/memory-stats.js @@ -0,0 +1,105 @@ +/** + * @author mrdoob / http://mrdoob.com/ + * @author jetienne / http://jetienne.com/ + * @author paulirish / http://paulirish.com/ + */ +var MemoryStats = function (){ + + var msMin = 100; + var msMax = 0; + + var container = document.createElement( 'div' ); + container.id = 'stats'; + container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer'; + + var msDiv = document.createElement( 'div' ); + msDiv.id = 'ms'; + msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;'; + container.appendChild( msDiv ); + + var msText = document.createElement( 'div' ); + msText.id = 'msText'; + msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px'; + msText.innerHTML= 'Memory'; + msDiv.appendChild( msText ); + + var msGraph = document.createElement( 'div' ); + msGraph.id = 'msGraph'; + msGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0f0'; + msDiv.appendChild( msGraph ); + + while ( msGraph.children.length < 74 ) { + + var bar = document.createElement( 'span' ); + bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#131'; + msGraph.appendChild( bar ); + + } + + var updateGraph = function ( dom, height, color ) { + + var child = dom.appendChild( dom.firstChild ); + child.style.height = height + 'px'; + if( color ) child.style.backgroundColor = color; + + } + + var perf = window.performance || {}; + // polyfill usedJSHeapSize + if (!perf && !perf.memory){ + perf.memory = { usedJSHeapSize : 0 }; + } + if (perf && !perf.memory){ + perf.memory = { usedJSHeapSize : 0 }; + } + + // support of the API? + if( perf.memory.totalJSHeapSize === 0 ){ + console.warn('totalJSHeapSize === 0... performance.memory is only available in Chrome .') + } + + // TODO, add a sanity check to see if values are bucketed. + // If so, reminde user to adopt the --enable-precise-memory-info flag. + // open -a "/Applications/Google Chrome.app" --args --enable-precise-memory-info + + var self = this; + var memory = 0; + var lastTime = Date.now(); + var lastUsedHeap= perf.memory.usedJSHeapSize; + return { + domElement: container, + + update: function () { + + // refresh only 30time per second + if( Date.now() - lastTime < 1000/30 ) return; + lastTime = Date.now() + + var delta = perf.memory.usedJSHeapSize - lastUsedHeap; + lastUsedHeap = perf.memory.usedJSHeapSize; + var color = delta < 0 ? '#830' : '#131'; + + var ms = perf.memory.usedJSHeapSize; + msMin = Math.min( msMin, ms ); + msMax = Math.max( msMax, ms ); + + self.memory = bytesToSize(ms, 2); + msText.textContent = "Mem: " + self.memory; + + var normValue = ms / (30*1024*1024); + var height = Math.min( 30, 30 - normValue * 30 ); + updateGraph( msGraph, height, color); + + function bytesToSize( bytes, nFractDigit ){ + var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; + if (bytes == 0) return 'n/a'; + nFractDigit = nFractDigit !== undefined ? nFractDigit : 0; + var precision = Math.pow(10, nFractDigit); + var i = Math.floor(Math.log(bytes) / Math.log(1024)); + return Math.round(bytes*precision / Math.pow(1024, i))/precision + ' ' + sizes[i]; + }; + } + + } + +}; diff --git a/mol/mol/perf/dbmon/scripts/monitor.js b/mol/mol/perf/dbmon/scripts/monitor.js new file mode 100644 index 00000000..57d0f032 --- /dev/null +++ b/mol/mol/perf/dbmon/scripts/monitor.js @@ -0,0 +1,69 @@ +var Monitoring = Monitoring || (function() { + + var stats = new MemoryStats(); + stats.domElement.style.position = 'fixed'; + stats.domElement.style.right = '0px'; + stats.domElement.style.bottom = '0px'; + document.body.appendChild( stats.domElement ); + requestAnimationFrame(function rAFloop(){ + stats.update(); + requestAnimationFrame(rAFloop); + }); + + var RenderRate = function () { + var container = document.createElement( 'div' ); + container.id = 'stats'; + container.style.cssText = 'width:150px;opacity:0.9;cursor:pointer;position:fixed;right:80px;bottom:0px;'; + + var msDiv = document.createElement( 'div' ); + msDiv.id = 'ms'; + msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;'; + container.appendChild( msDiv ); + + var msText = document.createElement( 'div' ); + msText.id = 'msText'; + msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px'; + msText.innerHTML= 'Repaint rate: 0/sec'; + msDiv.appendChild( msText ); + + var self = this; + var rate = 0; + var bucketSize = 20; + var bucket = []; + var lastTime = Date.now(); + return { + domElement: container, + ping: function () { + var start = lastTime; + var stop = Date.now(); + var rate = 1000 / (stop - start); + if (rate == Infinity) { + return; + } + bucket.push(rate); + if (bucket.length > bucketSize) { + bucket.shift(); + } + var sum = 0; + for (var i = 0; i < bucket.length; i++) { + sum = sum + bucket[i]; + } + self.rate = (sum / bucket.length); + msText.textContent = "Repaint rate: " + self.rate.toFixed(2) + "/sec"; + lastTime = stop; + }, + rate: function () { + return self.rate; + } + } + }; + + var renderRate = new RenderRate(); + document.body.appendChild( renderRate.domElement ); + + return { + memoryStats: stats, + renderRate: renderRate + }; + +})(); diff --git a/mol/src/dbmon.meta.tree b/mol/src/dbmon.meta.tree new file mode 100644 index 00000000..021c0d33 --- /dev/null +++ b/mol/src/dbmon.meta.tree @@ -0,0 +1,3 @@ +deploy \/mol/perf/dbmon/scripts/ENV.js +deploy \/mol/perf/dbmon/scripts/memory-stats.js +deploy \/mol/perf/dbmon/scripts/monitor.js diff --git a/mol/dbmon.view.css b/mol/src/dbmon.view.css similarity index 100% rename from mol/dbmon.view.css rename to mol/src/dbmon.view.css diff --git a/mol/dbmon.view.tree b/mol/src/dbmon.view.tree similarity index 97% rename from mol/dbmon.view.tree rename to mol/src/dbmon.view.tree index 259c26ff..9b690e3c 100644 --- a/mol/dbmon.view.tree +++ b/mol/src/dbmon.view.tree @@ -4,7 +4,7 @@ $mol_perf_dbmon $mol_scroll <= Databases $mol_list rows <= databases / Database!id $mol_view - sub / + sub <= database!id / <= Name!id $mol_view sub / <= name!id \ diff --git a/mol/dbmon.view.ts b/mol/src/dbmon.view.ts similarity index 69% rename from mol/dbmon.view.ts rename to mol/src/dbmon.view.ts index 4fa94d23..1fb1ae08 100644 --- a/mol/dbmon.view.ts +++ b/mol/src/dbmon.view.ts @@ -7,19 +7,28 @@ namespace $.$$ { @ $mol_mem data() { - $mol_state_time.now( ENV.timeout ) + $mol_state_time.now( ENV.timeout || 15 ) Monitoring.renderRate.ping(); return ENV.generateData().toArray() } - + databases() { return Object.keys( this.data() ).map( index => this.Database( index ) ) } + database( id : string ) { + return [ + this.Name( id ) , + this.Query_count( id ) , + ... this.top_queries( id ) , + ] + } + name( id : string ) { return this.data()[ id ].dbname } + @ $mol_mem_key last_sample( id : string ) { return this.data()[ id ].lastSample } @@ -32,12 +41,18 @@ namespace $.$$ { return this.last_sample( id ).countClassName } + @ $mol_mem_key + top_queries_data( db : string ) { + return this.last_sample( db ).topFiveQueries + } + top_queries( db : string ) { - return Object.keys( this.last_sample( db ).topFiveQueries ).map( query => this.Query({ db , query }) ) + return Object.keys( this.top_queries_data( db ) ).map( query => this.Query({ db , query }) ) } + @ $mol_mem_key top_query( id : { db : string , query : string } ) { - return this.last_sample( id.db ).topFiveQueries[ id.query ] + return this.top_queries_data( id.db )[ id.query ] } query_elapsed( id : { db : string , query : string } ) { diff --git a/mol/test.html b/mol/test.html new file mode 100644 index 00000000..49ff3af7 --- /dev/null +++ b/mol/test.html @@ -0,0 +1,33 @@ + + + + + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/mol/web.audit.js b/mol/web.audit.js new file mode 100644 index 00000000..cce7fccc --- /dev/null +++ b/mol/web.audit.js @@ -0,0 +1 @@ +console.info("Audit passed") \ No newline at end of file diff --git a/mol/web.esm.js b/mol/web.esm.js new file mode 100644 index 00000000..268f2d9b --- /dev/null +++ b/mol/web.esm.js @@ -0,0 +1,5117 @@ +function require( path ){ return $node[ path ] }; +"use strict" + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +var globalThis = globalThis || global || self || this +var $ = ( typeof module === 'object' ) ? Object.setPrototypeOf( module['export'+'s'] , globalThis ) : globalThis +$.$$ = $ +$.$mol = $ // deprecated + +; + +var $node = $node || {} +void function( module ) { var exports = module.exports = this; function require( id ) { return $node[ id.replace( /^.\// , "../mol/" ) ] }; +; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +Error.stackTraceLimit = Infinity; +module.exports; +//mol.js.map +; + +$node[ "../mol/mol" ] = $node[ "../mol/mol.js" ] = module.exports }.call( {} , {} ) +; +"use strict"; +var $; +(function ($) { + let $$; + (function ($$_1) { + })($$ = $.$$ || ($.$$ = {})); + $.$mol_ambient_ref = Symbol('$mol_ambient_ref'); + function $mol_ambient(overrides) { + return Object.setPrototypeOf(overrides, this || $); + } + $.$mol_ambient = $mol_ambient; +})($ || ($ = {})); +//ambient.js.map +; +"use strict"; +var $; +(function ($) { + const instances = new WeakSet(); + function $mol_delegate(proto, target) { + const proxy = new Proxy(proto, { + get: (_, field) => { + const obj = target(); + let val = Reflect.get(obj, field); + if (typeof val === 'function') { + val = val.bind(obj); + } + return val; + }, + has: (_, field) => Reflect.has(target(), field), + set: (_, field, value) => Reflect.set(target(), field, value), + getOwnPropertyDescriptor: (_, field) => Reflect.getOwnPropertyDescriptor(target(), field), + ownKeys: () => Reflect.ownKeys(target()), + getPrototypeOf: () => Reflect.getPrototypeOf(target()), + setPrototypeOf: (_, donor) => Reflect.setPrototypeOf(target(), donor), + isExtensible: () => Reflect.isExtensible(target()), + preventExtensions: () => Reflect.preventExtensions(target()), + apply: (_, self, args) => Reflect.apply(target(), self, args), + construct: (_, args, retarget) => Reflect.construct(target(), args, retarget), + defineProperty: (_, field, descr) => Reflect.defineProperty(target(), field, descr), + deleteProperty: (_, field) => Reflect.deleteProperty(target(), field), + }); + instances.add(proxy); + return proxy; + } + $.$mol_delegate = $mol_delegate; + Reflect.defineProperty($mol_delegate, Symbol.hasInstance, { + value: (obj) => instances.has(obj), + }); +})($ || ($ = {})); +//delegate.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_owning_map = new WeakMap(); + function $mol_owning_allow(having) { + try { + if (!having) + return false; + if (typeof having !== 'object') + return false; + if (having instanceof $.$mol_delegate) + return false; + if (typeof having['destructor'] !== 'function') + return false; + return true; + } + catch (_a) { + return false; + } + } + $.$mol_owning_allow = $mol_owning_allow; + function $mol_owning_get(having, Owner) { + if (!$mol_owning_allow(having)) + return null; + while (true) { + const owner = $.$mol_owning_map.get(having); + if (!owner) + return owner; + if (!Owner) + return owner; + if (owner instanceof Owner) + return owner; + having = owner; + } + } + $.$mol_owning_get = $mol_owning_get; + function $mol_owning_check(owner, having) { + if (!$mol_owning_allow(having)) + return false; + if ($.$mol_owning_map.get(having) !== owner) + return false; + return true; + } + $.$mol_owning_check = $mol_owning_check; + function $mol_owning_catch(owner, having) { + if (!$mol_owning_allow(having)) + return false; + if ($.$mol_owning_map.get(having)) + return false; + $.$mol_owning_map.set(having, owner); + return true; + } + $.$mol_owning_catch = $mol_owning_catch; +})($ || ($ = {})); +//owning.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_fail(error) { + throw error; + } + $.$mol_fail = $mol_fail; +})($ || ($ = {})); +//fail.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_fail_hidden(error) { + throw error; + } + $.$mol_fail_hidden = $mol_fail_hidden; +})($ || ($ = {})); +//hidden.js.map +; +"use strict"; +//writable.js.map +; +"use strict"; +var $; +(function ($) { + var _a; + class $mol_object2 { + constructor(init) { + this[_a] = null; + if (init) + init(this); + } + get $() { + if (this[$.$mol_ambient_ref]) + return this[$.$mol_ambient_ref]; + const owner = $.$mol_owning_get(this); + return this[$.$mol_ambient_ref] = (owner === null || owner === void 0 ? void 0 : owner.$) || $mol_object2.$; + } + set $(next) { + if (this[$.$mol_ambient_ref]) + $.$mol_fail_hidden(new Error('Context already defined')); + this[$.$mol_ambient_ref] = next; + } + static create(init) { + return new this(init); + } + static toString() { return this[Symbol.toStringTag] || this.name; } + destructor() { } + toString() { + return this[Symbol.toStringTag] || this.constructor.name + '()'; + } + toJSON() { + return this.toString(); + } + } + _a = $.$mol_ambient_ref; + $mol_object2.$ = $; + $.$mol_object2 = $mol_object2; +})($ || ($ = {})); +//object2.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_tick extends $.$mol_object2 { + constructor(task) { + super(); + this.task = task; + this.cancelled = false; + this.promise = Promise.resolve().then(() => { + if (this.cancelled) + return; + task(); + }); + } + destructor() { + this.cancelled = true; + } + } + $.$mol_after_tick = $mol_after_tick; +})($ || ($ = {})); +//tick.js.map +; +"use strict"; +var $; +(function ($) { +})($ || ($ = {})); +//context.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_dom_context = self; +})($ || ($ = {})); +//context.web.js.map +; +"use strict"; +var $; +(function ($) { + let all = []; + let el = null; + let timer = null; + function $mol_style_attach(id, text) { + all.push(`/* ${id} */\n\n${text}`); + if (timer) + return el; + const doc = $.$mol_dom_context.document; + if (!doc) + return null; + el = doc.createElement('style'); + el.id = `$mol_style_attach`; + doc.head.appendChild(el); + timer = new $.$mol_after_tick(() => { + el.innerHTML = '\n' + all.join('\n\n'); + all = []; + el = null; + timer = null; + }); + return el; + } + $.$mol_style_attach = $mol_style_attach; +})($ || ($ = {})); +//attach.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_decor { + constructor(value) { + this.value = value; + } + prefix() { return ''; } + valueOf() { return this.value; } + postfix() { return ''; } + toString() { + return `${this.prefix()}${this.valueOf()}${this.postfix()}`; + } + } + $.$mol_decor = $mol_decor; +})($ || ($ = {})); +//decor.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_style_unit extends $.$mol_decor { + constructor(value, literal) { + super(value); + this.literal = literal; + } + postfix() { + return this.literal; + } + static per(value) { return new $mol_style_unit(value, '%'); } + static px(value) { return new $mol_style_unit(value, 'px'); } + static mm(value) { return new $mol_style_unit(value, 'mm'); } + static cm(value) { return new $mol_style_unit(value, 'cm'); } + static Q(value) { return new $mol_style_unit(value, 'Q'); } + static in(value) { return new $mol_style_unit(value, 'in'); } + static pc(value) { return new $mol_style_unit(value, 'pc'); } + static pt(value) { return new $mol_style_unit(value, 'pt'); } + static cap(value) { return new $mol_style_unit(value, 'cap'); } + static ch(value) { return new $mol_style_unit(value, 'ch'); } + static em(value) { return new $mol_style_unit(value, 'em'); } + static rem(value) { return new $mol_style_unit(value, 'rem'); } + static ex(value) { return new $mol_style_unit(value, 'ex'); } + static ic(value) { return new $mol_style_unit(value, 'ic'); } + static lh(value) { return new $mol_style_unit(value, 'lh'); } + static rlh(value) { return new $mol_style_unit(value, 'rlh'); } + static vh(value) { return new $mol_style_unit(value, 'vh'); } + static vw(value) { return new $mol_style_unit(value, 'vw'); } + static vi(value) { return new $mol_style_unit(value, 'vi'); } + static vb(value) { return new $mol_style_unit(value, 'vb'); } + static vmin(value) { return new $mol_style_unit(value, 'vmin'); } + static vmax(value) { return new $mol_style_unit(value, 'vmax'); } + static deg(value) { return new $mol_style_unit(value, 'deg'); } + static rad(value) { return new $mol_style_unit(value, 'rad'); } + static grad(value) { return new $mol_style_unit(value, 'grad'); } + static turn(value) { return new $mol_style_unit(value, 'turn'); } + static s(value) { return new $mol_style_unit(value, 's'); } + static ms(value) { return new $mol_style_unit(value, 'ms'); } + } + $.$mol_style_unit = $mol_style_unit; +})($ || ($ = {})); +//unit.js.map +; +"use strict"; +var $; +(function ($) { + const { per } = $.$mol_style_unit; + class $mol_style_func extends $.$mol_decor { + constructor(name, value) { + super(value); + this.name = name; + } + prefix() { return this.name + '('; } + postfix() { return ')'; } + static calc(value) { + return new $mol_style_func('calc', value); + } + static vary(name) { + return new $mol_style_func('var', name); + } + static url(href) { + return new $mol_style_func('url', JSON.stringify(href)); + } + static hsla(hue, saturation, lightness, alpha) { + return new $mol_style_func('hsla', [hue, per(saturation), per(lightness), alpha]); + } + static rgba(red, green, blue, alpha) { + return new $mol_style_func('rgba', [red, green, blue, alpha]); + } + } + $.$mol_style_func = $mol_style_func; +})($ || ($ = {})); +//func.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/theme/theme.css", "[mol_theme] {\n\tbackground-color: var(--mol_theme_back);\n\tcolor: var(--mol_theme_text);\n\tfill: var(--mol_theme_text);\n}\n\n[mol_theme=\"$mol_theme_light\"] , :root {\n\t--mol_theme_back: hsl( 210 , 50% , 99% );\n\t--mol_theme_hover: rgba( 0 , 0 , 0 , .05 );\n\t--mol_theme_current: hsl( 210 , 100% , 80% );\n\t--mol_theme_text: hsl( 0 , 0% , 0% );\n\t--mol_theme_control: hsla( 210 , 60% , 35% , 1 );\n\t--mol_theme_shade: rgba( 0 , 0 , 0 , .5 );\n\t--mol_theme_line: rgba( 220 , 220 , 220 , 1 );\n\t--mol_theme_focus: hsl( 290 , 100% , 40% );\n\t--mol_theme_field: white;\n\t--mol_theme_image: none;\n}\n\n[mol_theme=\"$mol_theme_dark\"] {\n\t--mol_theme_back: hsl( 210 , 50% , 10% );\n\t--mol_theme_hover: #333;\n\t--mol_theme_current: hsl( 210 , 100% , 30% );\n\t--mol_theme_text: hsl( 0 , 0% , 80% );\n\t--mol_theme_control: hsla( 210 , 60% , 70% , 1 );\n\t--mol_theme_shade: rgba( 255 , 255 , 255 , .5 );\n\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\n\t--mol_theme_focus: hsl( 60 , 100% , 70% );\n\t--mol_theme_field: black;\n\t--mol_theme_image: invert(1) hue-rotate(180deg);\n}\n\n[mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsla( 210 , 60% , 35% , 1 );\n\t--mol_theme_hover: hsla( 210 , 60% , 20% , 1 );\n\t--mol_theme_current: hsl( 210 , 100% , 20% );\n\t--mol_theme_text: white;\n\t--mol_theme_line: white;\n\t--mol_theme_control: white;\n}\n\n[mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( 15 , 60% , 50% );\n\t--mol_theme_hover: hsl( 15 , 60% , 40% );\n\t--mol_theme_text: white;\n\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\n\t--mol_theme_control: white;\n\t--mol_theme_focus: black;\n}\n\n[mol_theme=\"$mol_theme_accent\"] [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: black;\n\t--mol_theme_text: white;\n}\n"); +})($ || ($ = {})); +//theme.css.js.map +; +"use strict"; +var $; +(function ($) { + const { vary } = $.$mol_style_func; + $.$mol_theme = { + back: vary('--mol_theme_back'), + hover: vary('--mol_theme_hover'), + current: vary('--mol_theme_current'), + text: vary('--mol_theme_text'), + control: vary('--mol_theme_control'), + shade: vary('--mol_theme_shade'), + line: vary('--mol_theme_line'), + focus: vary('--mol_theme_focus'), + field: vary('--mol_theme_field'), + image: vary('--mol_theme_image'), + }; +})($ || ($ = {})); +//theme.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/skin/skin.css", ":root {\n\t--mol_skin_font: 16px/24px sans-serif;\n\t/* --mol_skin_font_monospace: Monaco, monospace; */\n\t--mol_skin_font_monospace: monospace;\n}\n\n/* Deprecated, use mol_theme instead */\n:root {\n\n\t--mol_skin_outline: 0 0 0 1px var(--mol_theme_line);\n\t\n\t--mol_skin_base: #3a8ccb;\n\t--mol_skin_base_text: white;\n\t\n\t--mol_skin_current: var(--mol_skin_base);\n\t--mol_skin_current_text: white;\n\t--mol_skin_current_line: #1471b8;\n\t\n\t--mol_skin_button: var(--mol_skin_card);\n\t--mol_skin_hover: rgba( 0 , 0 , 0 , .05 );\n\t\n\t--mol_skin_round: 0px;\n\t\n\t--mol_skin_focus_line: rgba( 0 , 0 , 0 , .2 );\n\t--mol_skin_focus_outline: 0 0 0 1px var(--mol_skin_focus_line);\n\t\n\t--mol_skin_float: var(--mol_skin_focus_outline);\n\n\t--mol_skin_passive: #eee;\n\t--mol_skin_passive_text: rgba( 0 , 0 , 0 , .5 );\n\t\n\t--mol_skin_light: #fcfcfc;\n\t--mol_skin_light_line: rgba( 230 , 230 , 230 , .75 );\n\t--mol_skin_light_text: rgba( 0 , 0 , 0 , .9 );\n\t--mol_skin_light_hover: #f7f7f7;\n\t--mol_skin_light_outline: 0 0 0 1px var(--mol_theme_line);\n\n\t--mol_skin_card: var(--mol_theme_back);\n\t--mol_skin_card_text: var(--mol_theme_text);\n\t\n\t--mol_skin_accent: #dd0e3e;\n\t--mol_skin_accent_text: white;\n\t--mol_skin_accent_hover: #c50d37;\n\n\t--mol_skin_warn: rgba( 255 , 50 , 50 , 0.75 );\n\t--mol_skin_warn_text: white;\n\t--mol_skin_warn_hover: color( var(--mol_skin_warn) lightness(-5%) );\n\n\t--mol_skin_good: #96DAA9;\n\t--mol_skin_good_text: black;\n\n\t--mol_skin_bad: #CC5252;\n\t--mol_skin_bad_text: white;\n}\n"); +})($ || ($ = {})); +//skin.css.js.map +; +"use strict"; +var $; +(function ($_1) { + let $$; + (function ($$) { + let $; + })($$ = $_1.$$ || ($_1.$$ = {})); + $_1.$mol_object_field = Symbol('$mol_object_field'); + class $mol_object extends $_1.$mol_object2 { + static make(config) { + return super.create(obj => { + for (let key in config) + obj[key] = config[key]; + }); + } + } + $_1.$mol_object = $mol_object; +})($ || ($ = {})); +//object.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_log3_area_lazy(event) { + const self = this; + const stack = self.$mol_log3_stack; + const deep = stack.length; + let logged = false; + stack.push(() => { + logged = true; + self.$mol_log3_area.call(self, event); + }); + return () => { + if (logged) + self.console.groupEnd(); + if (stack.length > deep) + stack.length = deep; + }; + } + $.$mol_log3_area_lazy = $mol_log3_area_lazy; + $.$mol_log3_stack = []; +})($ || ($ = {})); +//log3.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_log3_web_make(level, color) { + return function $mol_log3_logger(event) { + const pending = this.$mol_log3_stack.pop(); + if (pending) + pending(); + let tpl = '%c'; + const chunks = Object.values(event); + for (let i = 0; i < chunks.length; ++i) { + tpl += (typeof chunks[i] === 'string') ? ' ⦙ %s' : ' ⦙ %o'; + } + const style = `color:${color};font-weight:bolder`; + this.console[level](tpl, style, ...chunks); + const self = this; + return () => self.console.groupEnd(); + }; + } + $.$mol_log3_web_make = $mol_log3_web_make; + $.$mol_log3_come = $mol_log3_web_make('info', 'royalblue'); + $.$mol_log3_done = $mol_log3_web_make('info', 'forestgreen'); + $.$mol_log3_fail = $mol_log3_web_make('error', 'orangered'); + $.$mol_log3_warn = $mol_log3_web_make('warn', 'goldenrod'); + $.$mol_log3_rise = $mol_log3_web_make('log', 'magenta'); + $.$mol_log3_area = $mol_log3_web_make('group', 'cyan'); +})($ || ($ = {})); +//log3.web.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_wrapper extends $.$mol_object2 { + static run(task) { + return this.func(task)(); + } + static func(func) { + return this.wrap(func); + } + static get class() { + return (Class) => { + const construct = (target, args) => new Class(...args); + const handler = { + construct: this.func(construct) + }; + handler[Symbol.toStringTag] = Class.name + '#'; + return new Proxy(Class, handler); + }; + } + static get method() { + return (obj, name, descr) => { + descr.value = this.func(descr.value); + return descr; + }; + } + static get field() { + return (obj, name, descr) => { + descr.get = descr.set = this.func(descr.get); + return descr; + }; + } + } + $.$mol_wrapper = $mol_wrapper; +})($ || ($ = {})); +//wrapper.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_frame extends $.$mol_object2 { + constructor(task) { + super(); + this.task = task; + this.cancelled = false; + this.promise = $mol_after_frame.promise.then(() => { + if (this.cancelled) + return; + task(); + }); + } + static get promise() { + if (this._promise) + return this._promise; + return this._promise = new Promise(done => requestAnimationFrame(() => { + this._promise = null; + done(); + })); + } + destructor() { + this.cancelled = true; + } + } + $mol_after_frame._promise = null; + $.$mol_after_frame = $mol_after_frame; +})($ || ($ = {})); +//frame.web.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_compare_any(a, b) { + if (a === b) + return true; + if (!Number.isNaN(a)) + return false; + if (!Number.isNaN(b)) + return false; + return true; + } + $.$mol_compare_any = $mol_compare_any; +})($ || ($ = {})); +//any.js.map +; +"use strict"; +var $; +(function ($) { + const cache = new WeakMap(); + $.$mol_conform_stack = []; + function $mol_conform(target, source) { + if ($.$mol_compare_any(target, source)) + return source; + if (!target || typeof target !== 'object') + return target; + if (!source || typeof source !== 'object') + return target; + if (target instanceof Error) + return target; + if (source instanceof Error) + return target; + if (target['constructor'] !== source['constructor']) + return target; + if (cache.get(target)) + return target; + cache.set(target, true); + const conform = $.$mol_conform_handlers.get(target['constructor']); + if (!conform) + return target; + if ($.$mol_conform_stack.indexOf(target) !== -1) + return target; + $.$mol_conform_stack.push(target); + try { + return conform(target, source); + } + finally { + $.$mol_conform_stack.pop(); + } + } + $.$mol_conform = $mol_conform; + $.$mol_conform_handlers = new WeakMap(); + function $mol_conform_handler(cl, handler) { + $.$mol_conform_handlers.set(cl, handler); + } + $.$mol_conform_handler = $mol_conform_handler; + function $mol_conform_array(target, source) { + if (source.length !== target.length) + return target; + for (let i = 0; i < target.length; ++i) { + if (!$.$mol_compare_any(source[i], target[i])) + return target; + } + return source; + } + $.$mol_conform_array = $mol_conform_array; + $mol_conform_handler(Array, $mol_conform_array); + $mol_conform_handler(Uint8Array, $mol_conform_array); + $mol_conform_handler(Uint16Array, $mol_conform_array); + $mol_conform_handler(Uint32Array, $mol_conform_array); + $mol_conform_handler(Object, (target, source) => { + let count = 0; + let equal = true; + for (let key in target) { + const conformed = $mol_conform(target[key], source[key]); + if (conformed !== target[key]) { + try { + target[key] = conformed; + } + catch (error) { } + if (!$.$mol_compare_any(conformed, target[key])) + equal = false; + } + if (!$.$mol_compare_any(conformed, source[key])) + equal = false; + ++count; + } + for (let key in source) + if (--count < 0) + break; + return (equal && count === 0) ? source : target; + }); + $mol_conform_handler(Date, (target, source) => { + if (target.getTime() === source.getTime()) + return source; + return target; + }); + $mol_conform_handler(RegExp, (target, source) => { + if (target.toString() === source.toString()) + return source; + return target; + }); +})($ || ($ = {})); +//conform.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_array_trim(array) { + let last = array.length; + while (last > 0) { + --last; + const value = array[last]; + if (value === undefined) + array.pop(); + else + break; + } + return array; + } + $.$mol_array_trim = $mol_array_trim; +})($ || ($ = {})); +//trim.js.map +; +"use strict"; +var $; +(function ($) { + $['devtoolsFormatters'] = $['devtoolsFormatters'] || []; + function $mol_dev_format_register(config) { + $['devtoolsFormatters'].push(config); + } + $.$mol_dev_format_register = $mol_dev_format_register; + $.$mol_dev_format_head = Symbol('$mol_dev_format_head'); + $.$mol_dev_format_body = Symbol('$mol_dev_format_body'); + $mol_dev_format_register({ + header: (val, config = false) => { + if (config) + return null; + if (!val) + return null; + if ($.$mol_dev_format_head in val) { + return val[$.$mol_dev_format_head](); + } + return null; + }, + hasBody: val => val[$.$mol_dev_format_body], + body: val => val[$.$mol_dev_format_body](), + }); + function $mol_dev_format_native(obj) { + if (typeof obj === 'undefined') + return $.$mol_dev_format_shade('undefined'); + if (typeof obj !== 'object') + return obj; + return [ + 'object', + { + object: obj, + config: true, + }, + ]; + } + $.$mol_dev_format_native = $mol_dev_format_native; + function $mol_dev_format_auto(obj) { + if (obj == null) + return $.$mol_dev_format_shade(String(obj)); + if (typeof obj === 'object' && $.$mol_dev_format_head in obj) { + return obj[$.$mol_dev_format_head](); + } + return [ + 'object', + { + object: obj, + config: false, + }, + ]; + } + $.$mol_dev_format_auto = $mol_dev_format_auto; + function $mol_dev_format_element(element, style, ...content) { + const styles = []; + for (let key in style) + styles.push(`${key} : ${style[key]}`); + return [ + element, + { + style: styles.join(' ; '), + }, + ...content, + ]; + } + $.$mol_dev_format_element = $mol_dev_format_element; + function $mol_dev_format_span(style, ...content) { + return $mol_dev_format_element('span', Object.assign({ 'vertical-align': '8%' }, style), ...content); + } + $.$mol_dev_format_span = $mol_dev_format_span; + $.$mol_dev_format_div = $mol_dev_format_element.bind(null, 'div'); + $.$mol_dev_format_ol = $mol_dev_format_element.bind(null, 'ol'); + $.$mol_dev_format_li = $mol_dev_format_element.bind(null, 'li'); + $.$mol_dev_format_table = $mol_dev_format_element.bind(null, 'table'); + $.$mol_dev_format_tr = $mol_dev_format_element.bind(null, 'tr'); + $.$mol_dev_format_td = $mol_dev_format_element.bind(null, 'td'); + $.$mol_dev_format_accent = $mol_dev_format_span.bind(null, { + 'color': 'magenta', + }); + $.$mol_dev_format_strong = $mol_dev_format_span.bind(null, { + 'font-weight': 'bold', + }); + $.$mol_dev_format_string = $mol_dev_format_span.bind(null, { + 'color': 'green', + }); + $.$mol_dev_format_shade = $mol_dev_format_span.bind(null, { + 'color': 'gray', + }); + $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, { + 'margin-left': '13px' + }); +})($ || ($ = {})); +//format.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_fiber_defer(calculate) { + const fiber = new $mol_fiber; + fiber.calculate = calculate; + fiber[Symbol.toStringTag] = calculate.name; + fiber.schedule(); + return fiber; + } + $.$mol_fiber_defer = $mol_fiber_defer; + function $mol_fiber_func(calculate) { + $.$mol_ambient({}).$mol_log3_warn({ + place: '$mol_fiber_func', + message: 'Deprecated', + hint: 'Use $mol_fiber.func instead', + }); + return $mol_fiber.func(calculate); + } + $.$mol_fiber_func = $mol_fiber_func; + function $mol_fiber_root(calculate) { + const wrapper = function (...args) { + const fiber = new $mol_fiber(); + fiber.calculate = calculate.bind(this, ...args); + fiber[Symbol.toStringTag] = wrapper[Symbol.toStringTag]; + return fiber.wake(); + }; + wrapper[Symbol.toStringTag] = calculate.name; + return wrapper; + } + $.$mol_fiber_root = $mol_fiber_root; + function $mol_fiber_method(obj, name, descr) { + $.$mol_ambient({}).$mol_log3_warn({ + place: '$mol_fiber_method', + message: 'Deprecated', + hint: 'Use $mol_fiber.method instead', + }); + return $mol_fiber.method(obj, name, descr); + } + $.$mol_fiber_method = $mol_fiber_method; + function $mol_fiber_async(task) { + return (...args) => new Promise($mol_fiber_root((done, fail) => { + try { + done(task(...args)); + } + catch (error) { + if ('then' in error) + return $.$mol_fail_hidden(error); + fail(error); + } + })); + } + $.$mol_fiber_async = $mol_fiber_async; + function $mol_fiber_sync(request) { + return function $mol_fiber_sync_wrapper(...args) { + const slave = $mol_fiber.current; + let master = slave && slave.master; + if (!master || master.constructor !== $mol_fiber) { + master = new $mol_fiber; + master.cursor = -3; + master.error = request.call(this, ...args).then((next) => master.push(next), (error) => master.fail(error)); + const prefix = slave ? `${slave}/${slave.cursor / 2}:` : '/'; + master[Symbol.toStringTag] = prefix + (request.name || $mol_fiber_sync.name); + } + return master.get(); + }; + } + $.$mol_fiber_sync = $mol_fiber_sync; + async function $mol_fiber_warp() { + const deadline = $mol_fiber.deadline; + try { + $mol_fiber.deadline = Number.POSITIVE_INFINITY; + while ($mol_fiber.queue.length) + await $mol_fiber.tick(); + return Promise.resolve(); + } + finally { + $mol_fiber.deadline = deadline; + } + } + $.$mol_fiber_warp = $mol_fiber_warp; + function $mol_fiber_fence(func) { + const prev = $mol_fiber.current; + try { + $mol_fiber.current = null; + return func(); + } + finally { + $mol_fiber.current = prev; + } + } + $.$mol_fiber_fence = $mol_fiber_fence; + function $mol_fiber_unlimit(task) { + const deadline = $mol_fiber.deadline; + try { + $mol_fiber.deadline = Number.POSITIVE_INFINITY; + return task(); + } + finally { + $mol_fiber.deadline = deadline; + } + } + $.$mol_fiber_unlimit = $mol_fiber_unlimit; + class $mol_fiber_solid extends $.$mol_wrapper { + static func(task) { + function wrapped(...args) { + const deadline = $mol_fiber.deadline; + try { + $mol_fiber.deadline = Number.POSITIVE_INFINITY; + return task.call(this, ...args); + } + catch (error) { + if ('then' in error) + $.$mol_fail(new Error('Solid fiber can not be suspended.')); + return $.$mol_fail_hidden(error); + } + finally { + $mol_fiber.deadline = deadline; + } + } + return $mol_fiber.func(wrapped); + } + } + $.$mol_fiber_solid = $mol_fiber_solid; + class $mol_fiber extends $.$mol_wrapper { + constructor() { + super(...arguments); + this.cursor = 0; + this.masters = []; + this._value = undefined; + this._error = null; + } + static wrap(task) { + return function $mol_fiber_wrapper(...args) { + const slave = $mol_fiber.current; + let master = slave && slave.master; + if (!master || master.constructor !== $mol_fiber) { + master = new $mol_fiber; + master.calculate = task.bind(this, ...args); + const prefix = slave ? `${slave}/${slave.cursor / 2}:` : '/'; + master[Symbol.toStringTag] = `${prefix}${task.name}`; + } + return master.get(); + }; + } + static async tick() { + while ($mol_fiber.queue.length > 0) { + const now = Date.now(); + if (now >= $mol_fiber.deadline) { + $mol_fiber.schedule(); + $mol_fiber.liveline = now; + return; + } + const task = $mol_fiber.queue.shift(); + await task(); + } + } + static schedule() { + if (!$mol_fiber.scheduled) { + $mol_fiber.scheduled = new $.$mol_after_frame(async () => { + const now = Date.now(); + let quant = $mol_fiber.quant; + if ($mol_fiber.liveline) { + quant = Math.max(quant, Math.floor((now - $mol_fiber.liveline) / 2)); + $mol_fiber.liveline = 0; + } + $mol_fiber.deadline = now + quant; + $mol_fiber.scheduled = null; + await $mol_fiber.tick(); + }); + } + const promise = new this.$.Promise(done => this.queue.push(() => (done(null), promise))); + return promise; + } + get value() { return this._value; } + set value(next) { + this._value = next; + } + get error() { return this._error; } + set error(next) { + this._error = next; + } + schedule() { + $mol_fiber.schedule().then(() => this.wake()); + } + wake() { + const unscoupe = this.$.$mol_log3_area_lazy({ + place: this, + message: 'Wake' + }); + try { + if (this.cursor > -2) + return this.get(); + } + catch (error) { + if ('then' in error) + return; + $.$mol_fail_hidden(error); + } + finally { + unscoupe(); + } + } + push(value) { + value = this.$.$mol_conform(value, this.value); + if (this.error !== null || !Object.is(this.value, value)) { + if ($mol_fiber.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Changed', + next: value, + value: this.value, + error: this.error, + }); + this.obsolete_slaves(); + this.forget(); + } + else { + if ($mol_fiber.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Same value', + value, + }); + } + this.error = null; + this.value = value; + this.complete(); + return value; + } + fail(error) { + this.complete(); + if ($mol_fiber.logs) + this.$.$mol_log3_fail({ + place: this, + message: error.message, + }); + this.error = error; + this.obsolete_slaves(); + return error; + } + wait(promise) { + this.error = promise; + if ($mol_fiber.logs) + this.$.$mol_log3_warn({ + place: this, + message: `Wait`, + hint: `Don't panic, it's normal`, + promise, + }); + this.cursor = 0; + return promise; + } + complete() { + if (this.cursor <= -2) + return; + for (let index = 0; index < this.masters.length; index += 2) { + this.complete_master(index); + } + this.cursor = -2; + } + complete_master(master_index) { + this.disobey(master_index); + } + pull() { + if ($mol_fiber.logs) + this.$.$mol_log3_come({ + place: this, + message: 'Pull', + }); + this.push(this.calculate()); + } + update() { + const slave = $mol_fiber.current; + try { + $mol_fiber.current = this; + this.pull(); + } + catch (error) { + if (Object(error) !== error) + error = new Error(error); + if ('then' in error) { + if (!slave) { + const listener = () => this.wake(); + error = error.then(listener, listener); + } + this.wait(error); + } + else { + this.fail(error); + } + } + finally { + $mol_fiber.current = slave; + } + } + get() { + if (this.cursor > 0) { + this.$.$mol_fail(new Error(`Cyclic dependency at ${this}`)); + } + const slave = $mol_fiber.current; + if (slave) + slave.master = this; + if (this.cursor > -2) + this.update(); + if (this.error !== null) + return this.$.$mol_fail_hidden(this.error); + return this.value; + } + limit() { + if (!$mol_fiber.deadline) + return; + if (!$mol_fiber.current) + return; + if (Date.now() < $mol_fiber.deadline) + return; + this.$.$mol_fail_hidden($mol_fiber.schedule()); + } + get master() { + return this.masters[this.cursor]; + } + set master(next) { + if (this.cursor === -1) + return; + const cursor = this.cursor; + const prev = this.masters[this.cursor]; + if (prev !== next) { + if (prev) + this.rescue(prev, cursor); + this.masters[cursor] = next; + this.masters[cursor + 1] = this.obey(next, cursor); + } + this.cursor = cursor + 2; + } + rescue(master, master_index) { } + obey(master, master_index) { return -1; } + lead(slave, master_index) { return -1; } + dislead(slave_index) { + this.destructor(); + } + disobey(master_index) { + const master = this.masters[master_index]; + if (!master) + return; + master.dislead(this.masters[master_index + 1]); + this.masters[master_index] = undefined; + this.masters[master_index + 1] = undefined; + this.$.$mol_array_trim(this.masters); + } + obsolete_slaves() { } + obsolete(master_index) { } + forget() { + this.value = undefined; + } + abort() { + this.forget(); + return true; + } + destructor() { + if (!this.abort()) + return; + if ($mol_fiber.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Destructed', + }); + this.complete(); + } + [$.$mol_dev_format_head]() { + return $.$mol_dev_format_native(this); + } + } + $mol_fiber.logs = false; + $mol_fiber.quant = 16; + $mol_fiber.deadline = 0; + $mol_fiber.liveline = 0; + $mol_fiber.current = null; + $mol_fiber.scheduled = null; + $mol_fiber.queue = []; + $.$mol_fiber = $mol_fiber; +})($ || ($ = {})); +//fiber.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_atom2_value(task, next) { + const cached = $mol_atom2.cached; + try { + $mol_atom2.cached = true; + $mol_atom2.cached_next = next; + return task(); + } + finally { + $mol_atom2.cached = cached; + } + } + $.$mol_atom2_value = $mol_atom2_value; + class $mol_atom2 extends $.$mol_fiber { + constructor() { + super(...arguments); + this.slaves = []; + } + static get current() { + const atom = $.$mol_fiber.current; + if (atom instanceof $mol_atom2) + return atom; + return null; + } + static reap(atom) { + this.reap_queue.push(atom); + if (this.reap_task) + return; + this.reap_task = $.$mol_fiber_defer(() => { + this.reap_task = null; + while (true) { + const atom = this.reap_queue.pop(); + if (!atom) + break; + if (!atom.alone) + continue; + atom.destructor(); + } + }); + } + rescue(master, cursor) { + if (!(master instanceof $mol_atom2)) + return; + const master_index = this.masters.length; + const slave_index = this.masters[cursor + 1] + 1; + master.slaves[slave_index] = master_index; + this.masters.push(master, this.masters[cursor + 1]); + } + subscribe(promise) { + const obsolete = () => this.obsolete(); + return promise.then(obsolete, obsolete); + } + get() { + if ($mol_atom2.cached) { + if ($mol_atom2.cached_next !== undefined) { + this.push($mol_atom2.cached_next); + $mol_atom2.cached_next = undefined; + } + return this.value; + } + const value = super.get(); + if (value === undefined) + $.$mol_fail(new Error(`Not defined: ${this}`)); + return value; + } + pull() { + if (this.cursor === 0) + return super.pull(); + if ($mol_atom2.logs) + this.$.$mol_log3_come({ + place: this, + message: 'Check doubt masters', + }); + const masters = this.masters; + for (let index = 0; index < masters.length; index += 2) { + const master = masters[index]; + if (!master) + continue; + try { + master.get(); + } + catch (error) { + if ('then' in error) + $.$mol_fail_hidden(error); + this.cursor = 0; + } + if (this.cursor !== 0) + continue; + if ($mol_atom2.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Obsoleted while checking', + }); + return super.pull(); + } + if ($mol_atom2.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Masters not changed', + }); + this.cursor = -2; + } + get value() { return this._value; } + set value(next) { + const prev = this._value; + if (prev && this.$.$mol_owning_check(this, prev)) + prev.destructor(); + if (next && this.$.$mol_owning_catch(this, next)) { + try { + next[Symbol.toStringTag] = this[Symbol.toStringTag]; + } + catch (_a) { } + next[$.$mol_object_field] = this[$.$mol_object_field]; + } + this._value = next; + } + get error() { return this._error; } + set error(next) { + const prev = this._error; + if (prev && this.$.$mol_owning_check(this, prev)) + prev.destructor(); + if (next && this.$.$mol_owning_catch(this, next)) { + next[Symbol.toStringTag] = this[Symbol.toStringTag]; + next[$.$mol_object_field] = this[$.$mol_object_field]; + } + this._error = next; + } + put(next) { + this.cursor = this.masters.length; + next = this.push(next); + this.cursor = -3; + return next; + } + complete_master(master_index) { + if (this.masters[master_index] instanceof $mol_atom2) { + if (master_index >= this.cursor) + this.disobey(master_index); + } + else { + this.disobey(master_index); + } + } + obey(master, master_index) { + return master.lead(this, master_index); + } + lead(slave, master_index) { + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Leads', + slave, + }); + const slave_index = this.slaves.length; + this.slaves[slave_index] = slave; + this.slaves[slave_index + 1] = master_index; + return slave_index; + } + dislead(slave_index) { + if (slave_index < 0) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Disleads', + slave: this.slaves[slave_index], + }); + this.slaves[slave_index] = undefined; + this.slaves[slave_index + 1] = undefined; + $.$mol_array_trim(this.slaves); + if (this.cursor > -3 && this.alone) + $mol_atom2.reap(this); + } + obsolete(master_index = -1) { + if (this.cursor > 0) { + if (master_index >= this.cursor - 2) + return; + const path = []; + let current = this; + collect: while (current) { + path.push(current); + current = current.masters[current.cursor - 2]; + } + this.$.$mol_fail(new Error(`Obsoleted while calculation \n\n${path.join('\n')}\n`)); + } + if (this.cursor === 0) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Obsoleted', + }); + if (this.cursor !== -1) + this.doubt_slaves(); + this.cursor = 0; + } + doubt(master_index = -1) { + if (this.cursor > 0) { + if (master_index >= this.cursor - 2) + return; + const path = []; + let current = this; + collect: while (current) { + path.push(current); + current = current.masters[current.cursor - 2]; + } + this.$.$mol_fail(new Error(`Doubted while calculation \n\n${path.join('\n')}\n`)); + } + if (this.cursor >= -1) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Doubted', + }); + this.cursor = -1; + this.doubt_slaves(); + } + obsolete_slaves() { + for (let index = 0; index < this.slaves.length; index += 2) { + const slave = this.slaves[index]; + if (slave) + slave.obsolete(this.slaves[index + 1]); + } + } + doubt_slaves() { + for (let index = 0; index < this.slaves.length; index += 2) { + const slave = this.slaves[index]; + if (slave) + slave.doubt(this.slaves[index + 1]); + } + } + get fresh() { + return () => { + if (this.cursor !== -2) + return; + this.cursor = 0; + $.$mol_fiber_solid.run(() => this.update()); + }; + } + get alone() { + return this.slaves.length === 0; + } + get derived() { + for (let index = 0; index < this.masters.length; index += 2) { + if (this.masters[index]) + return true; + } + return false; + } + destructor() { + if (!this.abort()) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Destructed' + }); + this.cursor = -3; + for (let index = 0; index < this.masters.length; index += 2) { + this.complete_master(index); + } + } + } + $mol_atom2.logs = false; + $mol_atom2.cached = false; + $mol_atom2.cached_next = undefined; + $mol_atom2.reap_task = null; + $mol_atom2.reap_queue = []; + $.$mol_atom2 = $mol_atom2; +})($ || ($ = {})); +//atom2.js.map +; +"use strict"; +//param.js.map +; +"use strict"; +//result.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_mem_force extends Object { + constructor() { + super(); + this.$mol_mem_force = true; + } + static toString() { return this.name; } + } + $mol_mem_force.$mol_mem_force = true; + $.$mol_mem_force = $mol_mem_force; + class $mol_mem_force_cache extends $mol_mem_force { + } + $.$mol_mem_force_cache = $mol_mem_force_cache; + class $mol_mem_force_update extends $mol_mem_force { + } + $.$mol_mem_force_update = $mol_mem_force_update; + class $mol_mem_force_fail extends $mol_mem_force_cache { + } + $.$mol_mem_force_fail = $mol_mem_force_fail; +})($ || ($ = {})); +//force.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_cached = $.$mol_atom2_value; + function $mol_mem_persist() { + const atom = $.$mol_atom2.current; + if (!atom) + return; + if (atom.hasOwnProperty('destructor')) + return; + atom.destructor = () => { }; + } + $.$mol_mem_persist = $mol_mem_persist; + function $mol_mem(proto, name, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(proto, name); + const orig = descr.value; + const store = new WeakMap(); + Object.defineProperty(proto, name + "()", { + get: function () { + return store.get(this); + } + }); + const get_cache = (host) => { + let cache = store.get(host); + if (cache) + return cache; + let cache2 = new $.$mol_atom2; + cache2.calculate = orig.bind(host); + cache2[Symbol.toStringTag] = `${host}.${name}()`; + cache2.abort = () => { + store.delete(host); + cache2.forget(); + return true; + }; + $.$mol_owning_catch(host, cache2); + cache2[$.$mol_object_field] = name; + store.set(host, cache2); + return cache2; + }; + function value(next, force) { + if (next === undefined) { + const cache = get_cache(this); + if (force === $.$mol_mem_force_cache) + return cache.obsolete(Number.NaN); + if ($.$mol_atom2.current) + return cache.get(); + else + return $.$mol_fiber.run(() => cache.get()); + } + return $.$mol_fiber.run(() => { + if (force === $.$mol_mem_force_fail) + return get_cache(this).fail(next); + if (force !== $.$mol_mem_force_cache) + next = orig.call(this, next); + return get_cache(this).put(next); + }); + } + return Object.assign(Object.assign({}, descr || {}), { value: Object.assign(value, { orig }) }); + } + $.$mol_mem = $mol_mem; +})($ || ($ = {})); +//mem.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_window extends $.$mol_object { + static size(next, force) { + return next || { + width: self.innerWidth, + height: self.innerHeight, + }; + } + } + __decorate([ + $.$mol_mem + ], $mol_window, "size", null); + $.$mol_window = $mol_window; + const $mol_window_resize = () => { + $mol_window.size(undefined, $.$mol_mem_force_cache); + }; + self.addEventListener('resize', $.$mol_fiber_root($mol_window_resize)); +})($ || ($ = {})); +//window.web.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dict_key(value) { + if (!value) + return JSON.stringify(value); + if (typeof value !== 'object' && typeof value !== 'function') + return JSON.stringify(value); + if (Array.isArray(value)) + return JSON.stringify(value); + if (Object.getPrototypeOf(Object.getPrototypeOf(value)) === null) + return JSON.stringify(value); + return value; + } + $.$mol_dict_key = $mol_dict_key; + class $mol_dict extends Map { + get(key) { + return super.get($mol_dict_key(key)); + } + has(key) { + return super.has($mol_dict_key(key)); + } + set(key, value) { + return super.set($mol_dict_key(key), value); + } + delete(key) { + return super.delete($mol_dict_key(key)); + } + forEach(back, context) { + return super.forEach((val, key, dict) => { + if (typeof key === 'string') + key = JSON.parse(key); + return back.call(this, val, key, dict); + }, context); + } + [Symbol.iterator]() { + const iterator = super[Symbol.iterator](); + return { + [Symbol.iterator]() { + return this; + }, + next() { + const iteration = iterator.next(); + if (!iteration.done) { + const key = iteration.value[0]; + if (typeof key === 'string') + iteration.value[0] = JSON.parse(key); + } + return iteration; + } + }; + } + } + $.$mol_dict = $mol_dict; +})($ || ($ = {})); +//dict.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_mem_key(proto, name, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(proto, name); + const value = descr.value; + const store = new WeakMap(); + Object.defineProperty(proto, name + "()", { + get: function () { + return store.get(this); + } + }); + const get_cache = (host, key) => { + let dict = store.get(host); + if (!dict) + store.set(host, dict = new $.$mol_dict); + const key_str = $.$mol_dict_key(key); + let cache = dict.get(key_str); + if (cache) + return cache; + let cache2 = new $.$mol_atom2; + cache2[Symbol.toStringTag] = `${host}.${name}(${key_str})`; + cache2.calculate = value.bind(host, key); + cache2.abort = () => { + dict.delete(key_str); + if (dict.size === 0) + store.delete(host); + cache2.forget(); + return true; + }; + $.$mol_owning_catch(host, cache2); + cache2[$.$mol_object_field] = name; + dict.set(key_str, cache2); + return cache2; + }; + return { + value(key, next, force) { + if (next === undefined) { + const cache = get_cache(this, key); + if (force === $.$mol_mem_force_cache) + return cache.obsolete(); + if ($.$mol_atom2.current) + return cache.get(); + else + return $.$mol_fiber.run(() => cache.get()); + } + return $.$mol_fiber.run(() => { + if (force === $.$mol_mem_force_fail) + return get_cache(this, key).fail(next); + if (force !== $.$mol_mem_force_cache) + next = value.call(this, key, next); + return get_cache(this, key).put(next); + }); + } + }; + } + $.$mol_mem_key = $mol_mem_key; +})($ || ($ = {})); +//key.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_atom2_autorun(calculate) { + return $.$mol_atom2.create(atom => { + atom.calculate = calculate; + atom.obsolete_slaves = atom.schedule; + atom.doubt_slaves = atom.schedule; + atom[Symbol.toStringTag] = calculate[Symbol.toStringTag] || calculate.name || '$mol_atom2_autorun'; + atom.schedule(); + }); + } + $.$mol_atom2_autorun = $mol_atom2_autorun; +})($ || ($ = {})); +//autorun.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_defer extends $.$mol_object { + constructor(run) { + super(); + this.run = run; + $mol_defer.add(this); + } + destructor() { + $mol_defer.drop(this); + } + static schedule() { + if (this.timer) + return; + this.timer = this.scheduleNative(() => { + this.timer = null; + this.run(); + }); + } + static unschedule() { + if (!this.timer) + return; + cancelAnimationFrame(this.timer); + this.timer = null; + } + static add(defer) { + this.all.push(defer); + this.schedule(); + } + static drop(defer) { + var index = this.all.indexOf(defer); + if (index >= 0) + this.all.splice(index, 1); + } + static run() { + if (this.all.length === 0) + return; + this.schedule(); + for (var defer; defer = this.all.shift();) + defer.run(); + } + } + $mol_defer.all = []; + $mol_defer.timer = null; + $mol_defer.scheduleNative = (typeof requestAnimationFrame == 'function') + ? handler => requestAnimationFrame(handler) + : handler => setTimeout(handler, 16); + $.$mol_defer = $mol_defer; +})($ || ($ = {})); +//defer.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_selection extends $.$mol_object { + static focused(next) { + if (next === undefined) + return []; + const parents = []; + let element = next[0]; + while (element) { + parents.push(element); + element = element.parentNode; + } + new $.$mol_defer(() => { + const element = $.$mol_mem_cached(() => this.focused())[0]; + if (element) + element.focus(); + else + $.$mol_dom_context.blur(); + }); + return parents; + } + static focus(event) { + this.focused([event.target]); + } + static blur(event) { + const elements = $.$mol_mem_cached(() => this.focused()); + if (elements && elements[0] === event.target) + this.focused([]); + } + } + __decorate([ + $.$mol_mem + ], $mol_view_selection, "focused", null); + $.$mol_view_selection = $mol_view_selection; +})($ || ($ = {})); +//selection.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_timeout extends $.$mol_object2 { + constructor(delay, task) { + super(); + this.delay = delay; + this.task = task; + this.id = setTimeout(task, delay); + } + destructor() { + clearTimeout(this.id); + } + } + $.$mol_after_timeout = $mol_after_timeout; +})($ || ($ = {})); +//timeout.js.map +; +"use strict"; +var $; +(function ($) { + if ($.$mol_dom_context.document) { + $.$mol_dom_context.document.documentElement.addEventListener('focus', (event) => { + new $.$mol_after_tick($.$mol_fiber_root(() => $.$mol_view_selection.focus(event))); + }, true); + $.$mol_dom_context.document.documentElement.addEventListener('blur', (event) => { + new $.$mol_after_timeout(0, $.$mol_fiber_root(() => $.$mol_view_selection.blur(event))); + }, true); + } +})($ || ($ = {})); +//selection.web.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_qname(name) { + return name.replace(/\W/, '').replace(/^(?=\d+)/, '_'); + } + $.$mol_dom_qname = $mol_dom_qname; +})($ || ($ = {})); +//qname.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_const(value) { + var getter = (() => value); + getter['()'] = value; + getter[Symbol.toStringTag] = value; + return getter; + } + $.$mol_const = $mol_const; +})($ || ($ = {})); +//const.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_attributes(el, attrs) { + for (let name in attrs) { + let val = attrs[name]; + if (val === null || val === false) { + if (!el.hasAttribute(name)) + continue; + el.removeAttribute(name); + } + else { + const str = String(val); + if (el.getAttribute(name) === str) + continue; + el.setAttribute(name, str); + } + } + } + $.$mol_dom_render_attributes = $mol_dom_render_attributes; +})($ || ($ = {})); +//attributes.js.map +; +"use strict"; +var $; +(function ($) { + const cacthed = new WeakMap(); + function $mol_fail_catch(error) { + if (cacthed.get(error)) + return false; + cacthed.set(error, true); + return true; + } + $.$mol_fail_catch = $mol_fail_catch; +})($ || ($ = {})); +//catch.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_styles(el, styles) { + for (let name in styles) { + let val = styles[name]; + const style = el.style; + if (typeof val === 'number') { + style[name] = `${val}px`; + } + else { + style[name] = val; + } + } + } + $.$mol_dom_render_styles = $mol_dom_render_styles; +})($ || ($ = {})); +//styles.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_fields(el, fields) { + for (let key in fields) { + const val = fields[key]; + if (val === undefined) + continue; + el[key] = val; + } + } + $.$mol_dom_render_fields = $mol_dom_render_fields; +})($ || ($ = {})); +//fields.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_children(el, childNodes) { + const node_set = new Set(childNodes); + let nextNode = el.firstChild; + for (let view of childNodes) { + if (view == null) + continue; + if (view instanceof $.$mol_dom_context.Node) { + while (true) { + if (!nextNode) { + el.appendChild(view); + break; + } + if (nextNode == view) { + nextNode = nextNode.nextSibling; + break; + } + else { + if (node_set.has(nextNode)) { + el.insertBefore(view, nextNode); + break; + } + else { + const nn = nextNode.nextSibling; + el.removeChild(nextNode); + nextNode = nn; + } + } + } + } + else { + if (nextNode && nextNode.nodeName === '#text') { + const str = String(view); + if (nextNode.nodeValue !== str) + nextNode.nodeValue = str; + nextNode = nextNode.nextSibling; + } + else { + const textNode = $.$mol_dom_context.document.createTextNode(String(view)); + el.insertBefore(textNode, nextNode); + } + } + } + while (nextNode) { + const currNode = nextNode; + nextNode = currNode.nextSibling; + el.removeChild(currNode); + } + } + $.$mol_dom_render_children = $mol_dom_render_children; +})($ || ($ = {})); +//children.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_memo extends $.$mol_wrapper { + static wrap(task) { + const store = new WeakMap(); + return function (next) { + var _a; + if (next === undefined && store.has(this)) + return store.get(this); + const val = (_a = task.call(this, next)) !== null && _a !== void 0 ? _a : next; + store.set(this, val); + return val; + }; + } + } + $.$mol_memo = $mol_memo; +})($ || ($ = {})); +//memo.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_func_name(func) { + let name = func.name; + if ((name === null || name === void 0 ? void 0 : name.length) > 1) + return name; + for (let key in this) { + try { + if (this[key] !== func) + continue; + name = key; + Object.defineProperty(func, 'name', { value: name }); + break; + } + catch (_a) { } + } + return name; + } + $.$mol_func_name = $mol_func_name; + function $mol_func_name_from(target, source) { + Object.defineProperty(target, 'name', { value: source.name }); + return target; + } + $.$mol_func_name_from = $mol_func_name_from; +})($ || ($ = {})); +//name.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_deprecated(message) { + return (host, field, descr) => { + const value = descr.value; + let warned = false; + descr.value = function $mol_deprecated_wrapper(...args) { + if (!warned) { + this.$.$mol_log3_warn({ + place: `${host.constructor.name}::${field}`, + message: `Deprecated`, + hint: message, + }); + warned = true; + } + return value.call(this, ...args); + }; + }; + } + $.$mol_deprecated = $mol_deprecated; +})($ || ($ = {})); +//deprecated.js.map +; +"use strict"; +//extract.js.map +; +"use strict"; +//pick.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_view_visible_width() { + return $.$mol_window.size().width; + } + $.$mol_view_visible_width = $mol_view_visible_width; + function $mol_view_visible_height() { + return $.$mol_window.size().height; + } + $.$mol_view_visible_height = $mol_view_visible_height; + function $mol_view_state_key(suffix) { + return suffix; + } + $.$mol_view_state_key = $mol_view_state_key; + class $mol_view extends $.$mol_object { + static Root(id) { + return new this; + } + autorun() { + return $.$mol_atom2_autorun(() => { + this.dom_tree(); + document.title = this.title(); + return this; + }); + } + static autobind() { + const nodes = $.$mol_dom_context.document.querySelectorAll('[mol_view_root]'); + for (let i = nodes.length - 1; i >= 0; --i) { + const name = nodes.item(i).getAttribute('mol_view_root'); + const View = $[name]; + if (!View) { + console.error(`Can not attach view. Class not found: ${name}`); + continue; + } + const view = View.Root(i); + view.dom_node(nodes.item(i)); + view.autorun(); + } + } + title() { + return this.constructor.toString(); + } + focused(next) { + let node = this.dom_node(); + const value = $.$mol_view_selection.focused(next === undefined ? undefined : (next ? [node] : [])); + return value.indexOf(node) !== -1; + } + state_key(suffix = '') { + return this.$.$mol_view_state_key(suffix); + } + dom_name() { + return $.$mol_dom_qname(this.constructor.toString()) || 'div'; + } + dom_name_space() { return 'http://www.w3.org/1999/xhtml'; } + sub() { + return []; + } + sub_visible() { + return this.sub(); + } + minimal_width() { + const sub = this.sub(); + if (!sub) + return 0; + let min = 0; + sub.forEach(view => { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_width()); + } + }); + return min; + } + maximal_width() { + return this.minimal_width(); + } + minimal_height() { + var _a; + let min = 0; + try { + for (const view of (_a = this.sub()) !== null && _a !== void 0 ? _a : []) { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_height()); + } + } + } + catch (error) { + if ('then' in error) + $.$mol_fail_hidden(error); + } + return min; + } + view_rect() { + if ($.$mol_atom2.current) + this.view_rect_watcher(); + return this.view_rect_cache(); + } + view_rect_cache(next = null) { + return next; + } + view_rect_watcher() { + $mol_view.watchers.add(this); + return { destructor: () => $mol_view.watchers.delete(this) }; + } + dom_id() { + return this.toString(); + } + dom_node(next) { + const node = next || $.$mol_dom_context.document.createElementNS(this.dom_name_space(), this.dom_name()); + const id = this.dom_id(); + node.setAttribute('id', id); + node.toString = $.$mol_const('<#' + id + '>'); + $.$mol_dom_render_attributes(node, this.attr_static()); + const events = this.event(); + for (let event_name in events) { + node.addEventListener(event_name, $.$mol_fiber_root(events[event_name]), { passive: false }); + } + return node; + } + dom_tree(next) { + const node = this.dom_node(next); + try { + $.$mol_dom_render_attributes(node, { mol_view_error: null }); + try { + this.render(); + } + finally { + for (let plugin of this.plugins()) { + if (plugin instanceof $.$mol_plugin) { + plugin.dom_tree(); + } + } + } + } + catch (error) { + $.$mol_dom_render_attributes(node, { mol_view_error: error.name || error.constructor.name }); + if (error instanceof Promise) { + $.$mol_atom2.current.subscribe(error); + return node; + } + if ($.$mol_fail_catch(error)) { + try { + void (node.innerText = error.message); + } + catch (e) { } + console.error(error); + } + } + return node; + } + dom_node_actual() { + const node = this.dom_node(); + node.style.minHeight = this.minimal_height() + 'px'; + const attr = this.attr(); + const style = this.style(); + const fields = this.field(); + $.$mol_dom_render_attributes(node, attr); + $.$mol_dom_render_styles(node, style); + $.$mol_dom_render_fields(node, fields); + return node; + } + render() { + const node = this.dom_node_actual(); + const sub = this.sub_visible(); + if (!sub) + return; + const nodes = sub.map(child => { + if (child == null) + return null; + return (child instanceof $mol_view) + ? child.dom_node() + : String(child); + }); + $.$mol_dom_render_children(node, nodes); + for (const el of sub) + if (el && typeof el === 'object' && 'dom_tree' in el) + el['dom_tree'](); + } + static view_classes() { + const proto = this.prototype; + let current = proto; + const classes = []; + while (current) { + classes.push(current.constructor); + if (!(current instanceof $mol_view)) + break; + current = Object.getPrototypeOf(current); + } + return classes; + } + view_names_owned() { + const names = []; + let owner = $.$mol_owning_get(this, $mol_view); + if (owner instanceof $mol_view) { + const suffix = this[$.$mol_object_field]; + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + for (let Class of owner.constructor.view_classes()) { + if (suffix in Class.prototype) + names.push(this.$.$mol_func_name(Class) + suffix2); + else + break; + } + for (let prefix of owner.view_names_owned()) { + names.push(prefix + suffix2); + } + } + return names; + } + view_names() { + const names = []; + for (let name of this.view_names_owned()) { + if (names.indexOf(name) < 0) + names.push(name); + } + for (let Class of this.constructor.view_classes()) { + const name = this.$.$mol_func_name(Class); + if (!name) + continue; + if (names.indexOf(name) < 0) + names.push(name); + } + return names; + } + attr_static() { + let attrs = {}; + for (let name of this.view_names()) + attrs[name.replace(/\$/g, '').replace(/^(?=\d)/, '_').toLowerCase()] = ''; + return attrs; + } + attr() { + return {}; + } + style() { + return {}; + } + field() { + return {}; + } + event() { + return {}; + } + event_async() { + return {}; + } + plugins() { + return []; + } + [$.$mol_dev_format_head]() { + return $.$mol_dev_format_span({}, $.$mol_dev_format_native(this), $.$mol_dev_format_shade('/'), $.$mol_dev_format_auto($.$mol_mem_cached(() => this.sub()))); + } + *view_find(check, path = []) { + if (check(this)) + return yield [...path, this]; + for (const item of this.sub()) { + if (item instanceof $mol_view) { + yield* item.view_find(check, [...path, this]); + } + } + } + force_render(path) { + const kids = this.sub(); + const index = kids.findIndex(item => { + if (item instanceof $mol_view) { + return path.has(item); + } + else { + return false; + } + }); + if (index >= 0) { + kids[index].force_render(path); + } + } + async ensure_visible(view) { + const path = this.view_find(v => v === view).next().value; + this.force_render(new Set(path)); + await $.$mol_fiber_warp(); + view.dom_node().scrollIntoView(); + } + } + $mol_view.watchers = new Set(); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "autorun", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "focused", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "minimal_width", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "minimal_height", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_rect", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_rect_cache", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_rect_watcher", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "dom_node", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "dom_tree", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "dom_node_actual", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_names", null); + __decorate([ + $.$mol_deprecated('Use $mol_view::event instead.') + ], $mol_view.prototype, "event_async", null); + __decorate([ + $.$mol_mem_key + ], $mol_view, "Root", null); + __decorate([ + $.$mol_memo.method + ], $mol_view, "view_classes", null); + $.$mol_view = $mol_view; +})($ || ($ = {})); +//view.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/view/view/view.css", "[mol_view] {\n\ttransition-property: background-color, height, width, min-height, min-width, max-width, max-height, transform;\n\ttransition-duration: .2s;\n\ttransition-timing-function: ease-out;\n\t-webkit-appearance: none;\n\tword-break: break-word;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tcontain: style;\n\ttab-size: 4;\n}\n\n[mol_view]::selection {\n\tbackground: var(--mol_theme_current);\n}\n\n[mol_view] > * {\n\tword-break: inherit;\n}\n\n[mol_view_root] {\n\tmargin: 0;\n\tpadding: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbox-sizing: border-box;\n\tfont: var(--mol_skin_font);\n\tbackground: var(--mol_theme_back);\n\tcolor: var(--mol_theme_text);\n}\n\n[mol_view][mol_view_error]:not([mol_view_error=\"Promise\"]) {\n\tbackground-image: repeating-linear-gradient(\n\t\t135deg,\n\t\trgb(162, 90, 90),\n\t\trgb(162, 90, 90) 11px,\n\t\trgb(255,255,220) 10px,\n\t\trgb(255,255,220) 20px\n\t);\n\tbackground-size: 28px 28px;\n\tcolor: black;\n}\n\n@keyframes mol_view_wait_move {\n\tfrom {\n\t\tbackground-position: 0 0;\n\t}\n\tto {\n\t\tbackground-position: 200vmax 0;\n\t}\n}\n\n@keyframes mol_view_wait_show {\n\tto {\n\t\tbackground-image: repeating-linear-gradient(\n\t\t\t45deg,\n\t\t\thsla( 0 , 0% , 50% , .25 ) 0% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 5% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 45% ,\n\t\t\thsla( 0 , 0% , 50% , .25 ) 50% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 55% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 95% ,\n\t\t\thsla( 0 , 0% , 50% , .25 ) 100%\n\t\t);\n\t\tbackground-size: 200vmax 200vmax;\n\t}\n}\n\n[mol_view][mol_view_error=\"Promise\"] {\n\tanimation: mol_view_wait_show .5s .5s linear forwards , mol_view_wait_move 1s linear infinite;\n\topacity: .75;\n}\n"); +})($ || ($ = {})); +//view.css.js.map +; +"use strict"; +var $; +(function ($) { + if ($.$mol_dom_context.document) { + const event_name = self.cordova ? 'deviceready' : 'DOMContentLoaded'; + Promise.resolve().then($.$mol_fiber_root(() => { + $.$mol_view.autobind(); + $.$mol_defer.run(); + })); + function $mol_view_watch() { + $.$mol_fiber_unlimit(() => { + new $.$mol_after_frame(watch); + for (const view of $.$mol_view.watchers) { + view.view_rect_cache(view.dom_node().getBoundingClientRect().toJSON()); + } + }); + } + const watch = $.$mol_fiber_root($mol_view_watch); + watch(); + } +})($ || ($ = {})); +//view.web.js.map +; +"use strict"; +//error.js.map +; +"use strict"; +//override.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_colors = { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + rebeccapurple: "#663399", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32", + }; +})($ || ($ = {})); +//colors.js.map +; +"use strict"; +//properties.js.map +; +"use strict"; +//class.js.map +; +"use strict"; +//element.js.map +; +"use strict"; +//guard.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_style_sheet(Component, config0) { + let rules = []; + const block = $.$mol_dom_qname($.$mol_ambient({}).$mol_func_name(Component)); + const kebab = (name) => name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()); + const make_class = (prefix, path, config) => { + const props = []; + const selector = (prefix, path) => { + if (path.length === 0) + return prefix || `[${block}]`; + return `${prefix ? prefix + ' ' : ''}[${block}_${path.join('_')}]`; + }; + for (const key of Object.keys(config).reverse()) { + if (/^[a-z]/.test(key)) { + const addProp = (keys, val) => { + if (Array.isArray(val)) { + if (val[0] && [Array, Object].includes(val[0].constructor)) { + val = val.map(v => { + return Object.entries(v).map(([n, a]) => { + if (a === true) + return kebab(n); + if (a === false) + return null; + return String(a); + }).filter(Boolean).join(' '); + }).join(','); + } + else { + val = val.join(' '); + } + props.push(`\t${keys.join('-')}: ${val};\n`); + } + else if (val.constructor === Object) { + for (let suffix in val) { + addProp([...keys, kebab(suffix)], val[suffix]); + } + } + else { + props.push(`\t${keys.join('-')}: ${val};\n`); + } + }; + addProp([kebab(key)], config[key]); + } + else if (/^[A-Z]/.test(key)) { + make_class(prefix, [...path, key.toLowerCase()], config[key]); + } + else if (key[0] === '$') { + make_class(selector(prefix, path) + ' [' + $.$mol_dom_qname(key) + ']', [], config[key]); + } + else if (key === '>') { + const types = config[key]; + for (let type in types) { + make_class(selector(prefix, path) + ' > [' + $.$mol_dom_qname(type) + ']', [], types[type]); + } + } + else if (key === '@') { + const attrs = config[key]; + for (let name in attrs) { + for (let val in attrs[name]) { + make_class(selector(prefix, path) + '[' + name + '=' + JSON.stringify(val) + ']', [], attrs[name][val]); + } + } + } + else if (key === '@media') { + const media = config[key]; + for (let query in media) { + rules.push('}\n'); + make_class(prefix, path, media[query]); + rules.push(`${key} ${query} {\n`); + } + } + else { + make_class(selector(prefix, path) + key, [], config[key]); + } + } + if (props.length) { + rules.push(`${selector(prefix, path)} {\n${props.reverse().join('')}}\n`); + } + }; + make_class('', [], config0); + return rules.reverse().join(''); + } + $.$mol_style_sheet = $mol_style_sheet; +})($ || ($ = {})); +//sheet.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_style_define(Component, config) { + return $.$mol_style_attach(Component.name, $.$mol_style_sheet(Component, config)); + } + $.$mol_style_define = $mol_style_define; +})($ || ($ = {})); +//define.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_scroll extends $.$mol_view { + minimal_height() { + return 0; + } + _event_scroll_timer(val) { + if (val !== undefined) + return val; + return null; + } + field() { + return Object.assign(Object.assign({}, super.field()), { scrollTop: this.scroll_top(), scrollLeft: this.scroll_left(), tabIndex: this.tabindex() }); + } + event() { + return Object.assign(Object.assign({}, super.event()), { scroll: (event) => this.event_scroll(event) }); + } + scroll_top(val) { + if (val !== undefined) + return val; + return 0; + } + scroll_left(val) { + if (val !== undefined) + return val; + return 0; + } + tabindex() { + return -1; + } + event_scroll(event) { + if (event !== undefined) + return event; + return null; + } + } + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "_event_scroll_timer", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_top", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_left", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "event_scroll", null); + $.$mol_scroll = $mol_scroll; +})($ || ($ = {})); +//scroll.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_state_session extends $.$mol_object { + static native() { + if (this['native()']) + return this['native()']; + check: try { + const native = $.$mol_dom_context.sessionStorage; + if (!native) + break check; + native.setItem('', ''); + native.removeItem(''); + return this['native()'] = native; + } + catch (error) { + console.warn(error); + } + return this['native()'] = { + getItem(key) { + return this[':' + key]; + }, + setItem(key, value) { + this[':' + key] = value; + }, + removeItem(key) { + this[':' + key] = void 0; + } + }; + } + static value(key, next) { + if (next === void 0) + return JSON.parse(this.native().getItem(key) || 'null'); + if (next === null) + this.native().removeItem(key); + else + this.native().setItem(key, JSON.stringify(next)); + return next; + } + prefix() { return ''; } + value(key, next) { + return $mol_state_session.value(this.prefix() + '.' + key, next); + } + } + __decorate([ + $.$mol_mem_key + ], $mol_state_session, "value", null); + $.$mol_state_session = $mol_state_session; +})($ || ($ = {})); +//session.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem, px } = $.$mol_style_unit; + $.$mol_style_define($$.$mol_scroll, { + display: 'flex', + overflow: 'auto', + flex: { + direction: 'column', + grow: 1, + shrink: 1, + basis: 0, + }, + outline: 'none', + alignSelf: 'stretch', + boxSizing: 'border-box', + willChange: 'scroll-position', + maxHeight: per(100), + maxWidth: per(100), + webkitOverflowScrolling: 'touch', + contain: 'content', + '>': { + $mol_view: { + transform: 'translateZ(0)', + }, + }, + scrollbar: { + color: [$.$mol_theme.line, 'transparent'], + }, + '::-webkit-scrollbar': { + width: rem(.5), + height: rem(.5), + }, + '::-webkit-scrollbar-corner': { + background: { + color: $.$mol_theme.line, + }, + }, + '::-webkit-scrollbar-track': { + background: { + color: 'transparent', + }, + }, + '::-webkit-scrollbar-thumb': { + background: { + color: $.$mol_theme.line, + }, + }, + '@media': { + 'print': { + overflow: 'visible', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//scroll.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_scroll extends $.$mol_scroll { + scroll_top(next) { + return $.$mol_state_session.value(`${this}.scroll_top()`, next) || 0; + } + scroll_left(next) { + return $.$mol_state_session.value(`${this}.scroll_left()`, next) || 0; + } + _event_scroll_timer(next) { + return next; + } + event_scroll(next) { + var _a; + (_a = this._event_scroll_timer()) === null || _a === void 0 ? void 0 : _a.destructor(); + const el = this.dom_node(); + this._event_scroll_timer(new $.$mol_after_timeout(200, $.$mol_fiber_solid.func(() => { + this.scroll_top(Math.max(0, el.scrollTop)); + this.scroll_left(Math.max(0, el.scrollLeft)); + }))); + } + } + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_top", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_left", null); + __decorate([ + $.$mol_memo.method + ], $mol_scroll.prototype, "_event_scroll_timer", null); + $$.$mol_scroll = $mol_scroll; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//scroll.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_list extends $.$mol_view { + render_visible_only() { + return true; + } + render_over() { + return 0; + } + sub() { + return this.rows(); + } + Empty() { + const obj = new this.$.$mol_view(); + return obj; + } + Gap_before() { + const obj = new this.$.$mol_view(); + obj.style = () => ({ + paddingTop: this.gap_before() + }); + return obj; + } + Gap_after() { + const obj = new this.$.$mol_view(); + obj.style = () => ({ + paddingTop: this.gap_after() + }); + return obj; + } + view_window() { + return [ + 0, + 0 + ]; + } + rows() { + return []; + } + gap_before() { + return 0; + } + gap_after() { + return 0; + } + } + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "Empty", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "Gap_before", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "Gap_after", null); + $.$mol_list = $mol_list; +})($ || ($ = {})); +//list.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_support_css_overflow_anchor() { + var _a, _b; + return (_b = (_a = this.$mol_dom_context.CSS) === null || _a === void 0 ? void 0 : _a.supports('overflow-anchor:auto')) !== null && _b !== void 0 ? _b : false; + } + $.$mol_support_css_overflow_anchor = $mol_support_css_overflow_anchor; +})($ || ($ = {})); +//css.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_dom_listener extends $.$mol_object { + constructor(_node, _event, _handler, _config = { passive: true }) { + super(); + this._node = _node; + this._event = _event; + this._handler = _handler; + this._config = _config; + this._node.addEventListener(this._event, this._handler, this._config); + } + destructor() { + this._node.removeEventListener(this._event, this._handler, this._config); + super.destructor(); + } + } + $.$mol_dom_listener = $mol_dom_listener; +})($ || ($ = {})); +//listener.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_print extends $.$mol_object { + static before() { + return new $.$mol_dom_listener(this.$.$mol_dom_context, 'beforeprint', () => { + this.active(true); + }); + } + static after() { + return new $.$mol_dom_listener(this.$.$mol_dom_context, 'afterprint', () => { + this.active(false); + }); + } + static active(next) { + this.before(); + this.after(); + return next || false; + } + } + __decorate([ + $.$mol_mem + ], $mol_print, "before", null); + __decorate([ + $.$mol_mem + ], $mol_print, "after", null); + __decorate([ + $.$mol_mem + ], $mol_print, "active", null); + $.$mol_print = $mol_print; +})($ || ($ = {})); +//print.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/list/list.view.css", "[mol_list] {\n\twill-change: contents;\n\tdisplay: block;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\t/* display: flex;\n\talign-items: stretch;\n\talign-content: stretch; */\n\ttransition: none;\n\tmin-height: .5rem;\n}\n\n[mol_list_gap_before] ,\n[mol_list_gap_after] {\n\tdisplay: block !important;\n\tflex: none;\n\ttransition: none;\n\toverflow-anchor: none;\n}\n \n[mol_list] > * {\n\tdisplay: flex;\n}\n"); +})($ || ($ = {})); +//list.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_list extends $.$mol_list { + sub() { + const rows = this.rows(); + return (rows.length === 0) ? [this.Empty()] : rows; + } + render_visible_only() { + return this.$.$mol_support_css_overflow_anchor(); + } + view_window() { + var _a, _b, _c, _d, _e, _f; + const kids = this.sub(); + if (kids.length < 3) + return [0, kids.length]; + if (this.$.$mol_print.active()) + return [0, kids.length]; + let [min, max] = (_a = $.$mol_mem_cached(() => this.view_window())) !== null && _a !== void 0 ? _a : [0, 0]; + let max2 = max = Math.min(max, kids.length); + let min2 = min = Math.max(0, Math.min(min, max - 1)); + const anchoring = this.render_visible_only(); + const window_height = this.$.$mol_window.size().height + 40; + const over = Math.ceil(window_height * this.render_over()); + const limit_top = -over; + const limit_bottom = window_height + over; + const rect = this.view_rect(); + const gap_before = (_b = $.$mol_mem_cached(() => this.gap_before())) !== null && _b !== void 0 ? _b : 0; + const gap_after = (_c = $.$mol_mem_cached(() => this.gap_after())) !== null && _c !== void 0 ? _c : 0; + let top = Math.ceil((_d = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _d !== void 0 ? _d : 0) + gap_before; + let bottom = Math.ceil((_e = rect === null || rect === void 0 ? void 0 : rect.bottom) !== null && _e !== void 0 ? _e : 0) - gap_after; + if (top <= limit_top && bottom >= limit_bottom) { + return [min2, max2]; + } + if (anchoring && ((bottom < limit_top) || (top > limit_bottom))) { + min = 0; + top = Math.ceil((_f = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _f !== void 0 ? _f : 0); + while (min < (kids.length - 1)) { + const height = kids[min].minimal_height(); + if (top + height >= limit_top) + break; + top += height; + ++min; + } + min2 = min; + max2 = max = min; + bottom = top; + } + let top2 = top; + let bottom2 = bottom; + if (anchoring && (top <= limit_top) && (bottom2 < limit_bottom)) { + min2 = max; + top2 = bottom; + } + if ((bottom >= limit_bottom) && (top2 >= limit_top)) { + max2 = min; + bottom2 = top; + } + while (bottom2 < limit_bottom && max2 < kids.length) { + bottom2 += kids[max2].minimal_height(); + ++max2; + } + while (anchoring && ((top2 >= limit_top) && (min2 > 0))) { + --min2; + top2 -= kids[min2].minimal_height(); + } + return [min2, max2]; + } + gap_before() { + const skipped = this.sub().slice(0, this.view_window()[0]); + return Math.max(0, skipped.reduce((sum, view) => sum + view.minimal_height(), 0)); + } + gap_after() { + const skipped = this.sub().slice(this.view_window()[1]); + return Math.max(0, skipped.reduce((sum, view) => sum + view.minimal_height(), 0)); + } + sub_visible() { + var sub = this.sub(); + const next = sub.slice(...this.view_window()); + if (this.gap_before()) + next.unshift(this.Gap_before()); + if (this.gap_after()) + next.push(this.Gap_after()); + return next; + } + minimal_height() { + return this.sub().reduce((sum, view) => { + try { + return sum + view.minimal_height(); + } + catch (error) { + if (error instanceof Promise) { + $.$mol_atom2.current.subscribe(error); + } + else if ($.$mol_fail_catch(error)) { + console.error(error); + } + return sum; + } + }, 0); + } + force_render(path) { + const kids = this.rows(); + const index = kids.findIndex(item => path.has(item)); + if (index >= 0) { + const win = this.view_window(); + if (index < win[0] || index >= win[1]) { + $.$mol_mem_cached(() => this.view_window(), [index, index + 1]); + } + kids[index].force_render(path); + } + } + } + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "sub", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "view_window", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "gap_before", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "gap_after", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "sub_visible", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "minimal_height", null); + $$.$mol_list = $mol_list; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//list.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_plugin extends $.$mol_view { + dom_node(next) { + const node = next || $.$mol_owning_get(this, $.$mol_view).dom_node(); + $.$mol_dom_render_attributes(node, this.attr_static()); + const events = this.event(); + for (let event_name in events) { + node.addEventListener(event_name, $.$mol_fiber_root(events[event_name]), { passive: false }); + } + return node; + } + attr_static() { + return {}; + } + event() { + return {}; + } + render() { + this.dom_node_actual(); + } + } + __decorate([ + $.$mol_mem + ], $mol_plugin.prototype, "dom_node", null); + $.$mol_plugin = $mol_plugin; +})($ || ($ = {})); +//plugin.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_meter extends $.$mol_plugin { + zoom() { + return 1; + } + width(val) { + if (val !== undefined) + return val; + return 0; + } + height(val) { + if (val !== undefined) + return val; + return 0; + } + left(val) { + if (val !== undefined) + return val; + return 0; + } + right(val) { + if (val !== undefined) + return val; + return 0; + } + bottom(val) { + if (val !== undefined) + return val; + return 0; + } + top(val) { + if (val !== undefined) + return val; + return 0; + } + } + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "width", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "height", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "left", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "right", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "bottom", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "top", null); + $.$mol_meter = $mol_meter; +})($ || ($ = {})); +//meter.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_meter extends $.$mol_meter { + rect() { + const node = this.dom_node(); + const win = this.$.$mol_dom_context; + if (node !== $.$mol_dom_context.document.body) { + new $.$mol_after_frame($.$mol_atom2.current.fresh); + try { + const { left, top, right, bottom, width, height } = node.getBoundingClientRect(); + return { left, top, right, bottom, width, height, zoom: win.devicePixelRatio || 1 }; + } + catch (error) { + } + } + const size = $.$mol_window.size(); + return { + zoom: win.devicePixelRatio || 1, + left: 0, + top: 0, + right: size.width, + bottom: size.height, + width: size.width, + height: size.height, + }; + } + top() { + return this.rect().top; + } + bottom() { + return this.rect().bottom; + } + left() { + return this.rect().left; + } + right() { + return this.rect().right; + } + width() { + return this.rect().width; + } + height() { + return this.rect().height; + } + zoom() { + return this.rect().zoom; + } + } + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "rect", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "top", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "bottom", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "left", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "right", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "width", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "height", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "zoom", null); + $$.$mol_meter = $mol_meter; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//meter.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_pop extends $.$mol_view { + event() { + return { + keydown: (event) => this.keydown(event) + }; + } + showed(val) { + if (val !== undefined) + return val; + return false; + } + plugins() { + return [ + this.Meter() + ]; + } + sub() { + return [ + this.Anchor(), + this.Bubble() + ]; + } + keydown(event) { + if (event !== undefined) + return event; + return null; + } + Meter() { + const obj = new this.$.$mol_meter(); + return obj; + } + top() { + return this.Meter().top(); + } + bottom() { + return this.Meter().bottom(); + } + left() { + return this.Meter().left(); + } + right() { + return this.Meter().right(); + } + Anchor() { + return null; + } + align() { + return "bottom_center"; + } + bubble_content() { + return []; + } + height_max() { + return 9999; + } + Bubble() { + const obj = new this.$.$mol_pop_bubble(); + obj.align = () => this.align(); + obj.content = () => this.bubble_content(); + obj.height_max = () => this.height_max(); + return obj; + } + } + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "showed", null); + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "keydown", null); + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "Meter", null); + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "Bubble", null); + $.$mol_pop = $mol_pop; + class $mol_pop_bubble extends $.$mol_scroll { + sub() { + return this.content(); + } + style() { + return Object.assign(Object.assign({}, super.style()), { maxHeight: this.height_max() }); + } + attr() { + return Object.assign(Object.assign({}, super.attr()), { mol_pop_align: this.align(), tabindex: 0 }); + } + content() { + return []; + } + height_max() { + return 9999; + } + align() { + return ""; + } + } + $.$mol_pop_bubble = $mol_pop_bubble; +})($ || ($ = {})); +//pop.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + let $mol_keyboard_code; + (function ($mol_keyboard_code) { + $mol_keyboard_code[$mol_keyboard_code["backspace"] = 8] = "backspace"; + $mol_keyboard_code[$mol_keyboard_code["tab"] = 9] = "tab"; + $mol_keyboard_code[$mol_keyboard_code["enter"] = 13] = "enter"; + $mol_keyboard_code[$mol_keyboard_code["shift"] = 16] = "shift"; + $mol_keyboard_code[$mol_keyboard_code["ctrl"] = 17] = "ctrl"; + $mol_keyboard_code[$mol_keyboard_code["alt"] = 18] = "alt"; + $mol_keyboard_code[$mol_keyboard_code["pause"] = 19] = "pause"; + $mol_keyboard_code[$mol_keyboard_code["capsLock"] = 20] = "capsLock"; + $mol_keyboard_code[$mol_keyboard_code["escape"] = 27] = "escape"; + $mol_keyboard_code[$mol_keyboard_code["space"] = 32] = "space"; + $mol_keyboard_code[$mol_keyboard_code["pageUp"] = 33] = "pageUp"; + $mol_keyboard_code[$mol_keyboard_code["pageDown"] = 34] = "pageDown"; + $mol_keyboard_code[$mol_keyboard_code["end"] = 35] = "end"; + $mol_keyboard_code[$mol_keyboard_code["home"] = 36] = "home"; + $mol_keyboard_code[$mol_keyboard_code["left"] = 37] = "left"; + $mol_keyboard_code[$mol_keyboard_code["up"] = 38] = "up"; + $mol_keyboard_code[$mol_keyboard_code["right"] = 39] = "right"; + $mol_keyboard_code[$mol_keyboard_code["down"] = 40] = "down"; + $mol_keyboard_code[$mol_keyboard_code["insert"] = 45] = "insert"; + $mol_keyboard_code[$mol_keyboard_code["delete"] = 46] = "delete"; + $mol_keyboard_code[$mol_keyboard_code["key0"] = 48] = "key0"; + $mol_keyboard_code[$mol_keyboard_code["key1"] = 49] = "key1"; + $mol_keyboard_code[$mol_keyboard_code["key2"] = 50] = "key2"; + $mol_keyboard_code[$mol_keyboard_code["key3"] = 51] = "key3"; + $mol_keyboard_code[$mol_keyboard_code["key4"] = 52] = "key4"; + $mol_keyboard_code[$mol_keyboard_code["key5"] = 53] = "key5"; + $mol_keyboard_code[$mol_keyboard_code["key6"] = 54] = "key6"; + $mol_keyboard_code[$mol_keyboard_code["key7"] = 55] = "key7"; + $mol_keyboard_code[$mol_keyboard_code["key8"] = 56] = "key8"; + $mol_keyboard_code[$mol_keyboard_code["key9"] = 57] = "key9"; + $mol_keyboard_code[$mol_keyboard_code["A"] = 65] = "A"; + $mol_keyboard_code[$mol_keyboard_code["B"] = 66] = "B"; + $mol_keyboard_code[$mol_keyboard_code["C"] = 67] = "C"; + $mol_keyboard_code[$mol_keyboard_code["D"] = 68] = "D"; + $mol_keyboard_code[$mol_keyboard_code["E"] = 69] = "E"; + $mol_keyboard_code[$mol_keyboard_code["F"] = 70] = "F"; + $mol_keyboard_code[$mol_keyboard_code["G"] = 71] = "G"; + $mol_keyboard_code[$mol_keyboard_code["H"] = 72] = "H"; + $mol_keyboard_code[$mol_keyboard_code["I"] = 73] = "I"; + $mol_keyboard_code[$mol_keyboard_code["J"] = 74] = "J"; + $mol_keyboard_code[$mol_keyboard_code["K"] = 75] = "K"; + $mol_keyboard_code[$mol_keyboard_code["L"] = 76] = "L"; + $mol_keyboard_code[$mol_keyboard_code["M"] = 77] = "M"; + $mol_keyboard_code[$mol_keyboard_code["N"] = 78] = "N"; + $mol_keyboard_code[$mol_keyboard_code["O"] = 79] = "O"; + $mol_keyboard_code[$mol_keyboard_code["P"] = 80] = "P"; + $mol_keyboard_code[$mol_keyboard_code["Q"] = 81] = "Q"; + $mol_keyboard_code[$mol_keyboard_code["R"] = 82] = "R"; + $mol_keyboard_code[$mol_keyboard_code["S"] = 83] = "S"; + $mol_keyboard_code[$mol_keyboard_code["T"] = 84] = "T"; + $mol_keyboard_code[$mol_keyboard_code["U"] = 85] = "U"; + $mol_keyboard_code[$mol_keyboard_code["V"] = 86] = "V"; + $mol_keyboard_code[$mol_keyboard_code["W"] = 87] = "W"; + $mol_keyboard_code[$mol_keyboard_code["X"] = 88] = "X"; + $mol_keyboard_code[$mol_keyboard_code["Y"] = 89] = "Y"; + $mol_keyboard_code[$mol_keyboard_code["Z"] = 90] = "Z"; + $mol_keyboard_code[$mol_keyboard_code["metaLeft"] = 91] = "metaLeft"; + $mol_keyboard_code[$mol_keyboard_code["metaRight"] = 92] = "metaRight"; + $mol_keyboard_code[$mol_keyboard_code["select"] = 93] = "select"; + $mol_keyboard_code[$mol_keyboard_code["numpad0"] = 96] = "numpad0"; + $mol_keyboard_code[$mol_keyboard_code["numpad1"] = 97] = "numpad1"; + $mol_keyboard_code[$mol_keyboard_code["numpad2"] = 98] = "numpad2"; + $mol_keyboard_code[$mol_keyboard_code["numpad3"] = 99] = "numpad3"; + $mol_keyboard_code[$mol_keyboard_code["numpad4"] = 100] = "numpad4"; + $mol_keyboard_code[$mol_keyboard_code["numpad5"] = 101] = "numpad5"; + $mol_keyboard_code[$mol_keyboard_code["numpad6"] = 102] = "numpad6"; + $mol_keyboard_code[$mol_keyboard_code["numpad7"] = 103] = "numpad7"; + $mol_keyboard_code[$mol_keyboard_code["numpad8"] = 104] = "numpad8"; + $mol_keyboard_code[$mol_keyboard_code["numpad9"] = 105] = "numpad9"; + $mol_keyboard_code[$mol_keyboard_code["multiply"] = 106] = "multiply"; + $mol_keyboard_code[$mol_keyboard_code["add"] = 107] = "add"; + $mol_keyboard_code[$mol_keyboard_code["subtract"] = 109] = "subtract"; + $mol_keyboard_code[$mol_keyboard_code["decimal"] = 110] = "decimal"; + $mol_keyboard_code[$mol_keyboard_code["divide"] = 111] = "divide"; + $mol_keyboard_code[$mol_keyboard_code["F1"] = 112] = "F1"; + $mol_keyboard_code[$mol_keyboard_code["F2"] = 113] = "F2"; + $mol_keyboard_code[$mol_keyboard_code["F3"] = 114] = "F3"; + $mol_keyboard_code[$mol_keyboard_code["F4"] = 115] = "F4"; + $mol_keyboard_code[$mol_keyboard_code["F5"] = 116] = "F5"; + $mol_keyboard_code[$mol_keyboard_code["F6"] = 117] = "F6"; + $mol_keyboard_code[$mol_keyboard_code["F7"] = 118] = "F7"; + $mol_keyboard_code[$mol_keyboard_code["F8"] = 119] = "F8"; + $mol_keyboard_code[$mol_keyboard_code["F9"] = 120] = "F9"; + $mol_keyboard_code[$mol_keyboard_code["F10"] = 121] = "F10"; + $mol_keyboard_code[$mol_keyboard_code["F11"] = 122] = "F11"; + $mol_keyboard_code[$mol_keyboard_code["F12"] = 123] = "F12"; + $mol_keyboard_code[$mol_keyboard_code["numLock"] = 144] = "numLock"; + $mol_keyboard_code[$mol_keyboard_code["scrollLock"] = 145] = "scrollLock"; + $mol_keyboard_code[$mol_keyboard_code["semicolon"] = 186] = "semicolon"; + $mol_keyboard_code[$mol_keyboard_code["equals"] = 187] = "equals"; + $mol_keyboard_code[$mol_keyboard_code["comma"] = 188] = "comma"; + $mol_keyboard_code[$mol_keyboard_code["dash"] = 189] = "dash"; + $mol_keyboard_code[$mol_keyboard_code["period"] = 190] = "period"; + $mol_keyboard_code[$mol_keyboard_code["forwardSlash"] = 191] = "forwardSlash"; + $mol_keyboard_code[$mol_keyboard_code["graveAccent"] = 192] = "graveAccent"; + $mol_keyboard_code[$mol_keyboard_code["bracketOpen"] = 219] = "bracketOpen"; + $mol_keyboard_code[$mol_keyboard_code["slashBack"] = 220] = "slashBack"; + $mol_keyboard_code[$mol_keyboard_code["slashBackLeft"] = 226] = "slashBackLeft"; + $mol_keyboard_code[$mol_keyboard_code["bracketClose"] = 221] = "bracketClose"; + $mol_keyboard_code[$mol_keyboard_code["quoteSingle"] = 222] = "quoteSingle"; + })($mol_keyboard_code = $.$mol_keyboard_code || ($.$mol_keyboard_code = {})); +})($ || ($ = {})); +//code.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/pop/pop.view.css", "[mol_pop] {\n\tposition: relative;\n\tdisplay: inline-flex;\n}\n\n[mol_pop]:hover {\n\tz-index: 4;\n}\n\n[mol_pop_bubble] {\n\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\n\tborder-radius: var(--mol_skin_round);\n\tposition: absolute;\n\tz-index: 3;\n\tbackground: var(--mol_theme_back);\n\tmax-width: none;\n\tmax-height: none;\n\toverflow: hidden;\n\toverflow-y: auto;\n\tword-break: normal;\n}\n\n[mol_pop_bubble][mol_scroll] {\n\tbackground: var(--mol_theme_back);\n}\n\n[mol_pop_bubble]:focus {\n\toutline: none;\n}\n\n[mol_pop_align=\"left_top\"] {\n\ttransform: translate(-100%);\n\tleft: 0;\n\tbottom: 0;\n}\n\n[mol_pop_align=\"left_center\"] {\n\ttransform: translate(-100%, -50%);\n\tleft: 0;\n\ttop: 50%;\n}\n\n[mol_pop_align=\"left_bottom\"] {\n\ttransform: translate(-100%);\n\tleft: 0;\n\ttop: 0;\n}\n\n[mol_pop_align=\"right_top\"] {\n\ttransform: translate(100%);\n\tright: 0;\n\tbottom: 0;\n}\n\n[mol_pop_align=\"right_center\"] {\n\ttransform: translate(100%, -50%);\n\tright: 0;\n\ttop: 50%;\n}\n\n[mol_pop_align=\"right_bottom\"] {\n\ttransform: translate(100%);\n\tright: 0;\n\ttop: 0;\n}\n\n[mol_pop_align=\"center\"] {\n\tleft: 50%;\n\ttop: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n[mol_pop_align=\"top_left\"] {\n\tright: 0;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"top_center\"] {\n\ttransform: translate(-50%);\n\tleft: 50%;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"top_right\"] {\n\tleft: 0;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"bottom_left\"] {\n\tright: 0;\n\ttop: 100%;\n}\n\n[mol_pop_align=\"bottom_center\"] {\n\ttransform: translate(-50%);\n\tleft: 50%;\n\ttop: 100%;\n}\n\n[mol_pop_align=\"bottom_right\"] {\n\tleft: 0;\n\ttop: 100%;\n}\n"); +})($ || ($ = {})); +//pop.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_pop extends $.$mol_pop { + sub() { + return [ + this.Anchor(), + ...this.showed() ? [this.Bubble()] : [], + ]; + } + height_max() { + return this.$.$mol_window.size().height * 0.33; + } + align() { + const viewport = this.$.$mol_window.size(); + const vert = this.top() > (viewport.height - this.bottom()) ? 'top' : 'bottom'; + const hor = this.left() > (viewport.width - this.right()) ? 'left' : 'right'; + return `${vert}_${hor}`; + } + keydown(event) { + if (event.defaultPrevented) + return; + if (event.keyCode === $.$mol_keyboard_code.escape) { + if (!this.showed()) + return; + event.preventDefault(); + this.showed(false); + } + } + } + $$.$mol_pop = $mol_pop; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//pop.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_pop_over extends $.$mol_pop { + showed() { + return this.hovered(); + } + attr() { + return Object.assign(Object.assign({}, super.attr()), { tabindex: 0 }); + } + event() { + return Object.assign(Object.assign({}, super.event()), { mouseenter: (event) => this.event_show(event), mouseleave: (event) => this.event_hide(event) }); + } + hovered(val) { + if (val !== undefined) + return val; + return false; + } + event_show(event) { + if (event !== undefined) + return event; + return null; + } + event_hide(event) { + if (event !== undefined) + return event; + return null; + } + } + __decorate([ + $.$mol_mem + ], $mol_pop_over.prototype, "hovered", null); + __decorate([ + $.$mol_mem + ], $mol_pop_over.prototype, "event_show", null); + __decorate([ + $.$mol_mem + ], $mol_pop_over.prototype, "event_hide", null); + $.$mol_pop_over = $mol_pop_over; +})($ || ($ = {})); +//over.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/pop/over/over.view.css", "[mol_pop_over]:focus {\r\n\toutline: none;\r\n}"); +})($ || ($ = {})); +//over.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_pop_over extends $.$mol_pop_over { + event_show(event) { + this.hovered(true); + } + event_hide(event) { + this.hovered(false); + } + showed() { + return this.focused() || this.hovered(); + } + } + $$.$mol_pop_over = $mol_pop_over; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//over.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_perf_dbmon extends $.$mol_scroll { + title() { + return "dbmon ($mol)"; + } + sub() { + return [ + this.Databases() + ]; + } + Database(id) { + const obj = new this.$.$mol_view(); + obj.sub = () => this.database(id); + return obj; + } + Query(id) { + const obj = new this.$.$mol_perf_dbmon_query(); + obj.elapsed = () => this.query_elapsed(id); + obj.elapsed_mod = () => this.query_elapsed_mod(id); + obj.value = () => this.query_value(id); + return obj; + } + databases() { + return []; + } + Databases() { + const obj = new this.$.$mol_list(); + obj.rows = () => this.databases(); + return obj; + } + name(id) { + return ""; + } + Name(id) { + const obj = new this.$.$mol_view(); + obj.sub = () => [ + this.name(id) + ]; + return obj; + } + query_count_label_mod(id) { + return ""; + } + query_count(id) { + return 0; + } + Query_count(id) { + const obj = new this.$.$mol_perf_dbmon_query_count(); + obj.label_mod = () => this.query_count_label_mod(id); + obj.count = () => this.query_count(id); + return obj; + } + top_queries(id) { + return []; + } + database(id) { + return [ + this.Name(id), + this.Query_count(id), + this.top_queries(id) + ]; + } + query_elapsed(id) { + return ""; + } + query_elapsed_mod(id) { + return ""; + } + query_value(id) { + return ""; + } + } + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Database", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Query", null); + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon.prototype, "Databases", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Name", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Query_count", null); + $.$mol_perf_dbmon = $mol_perf_dbmon; + class $mol_perf_dbmon_query_count extends $.$mol_view { + sub() { + return [ + this.Label() + ]; + } + label_mod() { + return ""; + } + count() { + return 0; + } + Label() { + const obj = new this.$.$mol_view(); + obj.attr = () => ({ + mol_perf_dbmon_query_count_label: this.label_mod() + }); + obj.sub = () => [ + this.count() + ]; + return obj; + } + } + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon_query_count.prototype, "Label", null); + $.$mol_perf_dbmon_query_count = $mol_perf_dbmon_query_count; + class $mol_perf_dbmon_query extends $.$mol_pop_over { + minimal_height() { + return 40; + } + Anchor() { + return this.Elapsed(); + } + bubble_content() { + return [ + this.value() + ]; + } + align() { + return "left_center"; + } + elapsed_mod() { + return ""; + } + elapsed() { + return ""; + } + Elapsed() { + const obj = new this.$.$mol_view(); + obj.attr = () => ({ + mol_perf_dbmon_query_elapsed: this.elapsed_mod() + }); + obj.sub = () => [ + this.elapsed() + ]; + return obj; + } + value() { + return ""; + } + } + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon_query.prototype, "Elapsed", null); + $.$mol_perf_dbmon_query = $mol_perf_dbmon_query; +})($ || ($ = {})); +//dbmon.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_work extends $.$mol_object2 { + constructor(delay, task) { + super(); + this.delay = delay; + this.task = task; + this.id = requestIdleCallback(task, { timeout: delay }); + } + destructor() { + cancelIdleCallback(this.id); + } + } + $.$mol_after_work = $mol_after_work; +})($ || ($ = {})); +//work.web.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_state_time extends $.$mol_object { + static now(precision = 0, next) { + if (precision > 0) { + new $.$mol_after_timeout(precision, $.$mol_atom2.current.fresh); + } + else { + new $.$mol_after_work(16, $.$mol_atom2.current.fresh); + } + return Date.now(); + } + } + __decorate([ + $.$mol_mem_key + ], $mol_state_time, "now", null); + $.$mol_state_time = $mol_state_time; +})($ || ($ = {})); +//time.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/perf/dbmon/dbmon.view.css", "[mol_perf_dbmon_databases] {\n\tdisplay: table;\n\ttable-layout: fixed;\n\twidth: 100%;\n}\n\n[mol_perf_dbmon_database] {\n\tdisplay: table-row;\n\tbackground: white;\n}\n\n[mol_perf_dbmon_database] > * {\n\tdisplay: table-cell;\n\tpadding: .5rem;\n\tborder-top: 1px solid #ddd;\n}\n\n[mol_perf_dbmon_database]:nth-child(odd) {\n\tbackground: #f9f9f9;\n}\n\n[mol_perf_dbmon_query_count_label] {\n\tborder-radius: .25em;\n\tcolor: #fff;\n\tfont-size: 75%;\n\tfont-weight: 700;\n\tline-height: 1;\n\tpadding: .25em .5em;\n}\n\n[mol_perf_dbmon_query_count_label~=\"label-success\"] {\n\tbackground-color: #5cb85c;\n}\n\n[mol_perf_dbmon_query_count_label~=\"label-warning\"] {\n\tbackground-color: #f0ad4e;\n}\n\n[mol_perf_dbmon_query_bubble] {\n\tpadding: .5rem;\n}\n"); +})($ || ($ = {})); +//dbmon.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_perf_dbmon extends $.$mol_perf_dbmon { + data() { + $.$mol_state_time.now(ENV.timeout || 15); + Monitoring.renderRate.ping(); + return ENV.generateData().toArray(); + } + databases() { + return Object.keys(this.data()).map(index => this.Database(index)); + } + database(id) { + return [ + this.Name(id), + this.Query_count(id), + ...this.top_queries(id), + ]; + } + name(id) { + return this.data()[id].dbname; + } + last_sample(id) { + return this.data()[id].lastSample; + } + query_count(id) { + return this.last_sample(id).nbQueries; + } + query_count_label_mod(id) { + return this.last_sample(id).countClassName; + } + top_queries_data(db) { + return this.last_sample(db).topFiveQueries; + } + top_queries(db) { + return Object.keys(this.top_queries_data(db)).map(query => this.Query({ db, query })); + } + top_query(id) { + return this.top_queries_data(id.db)[id.query]; + } + query_elapsed(id) { + return this.top_query(id).formatElapsed; + } + query_elapsed_mod(id) { + return this.top_query(id).elapsedClassName; + } + query_value(id) { + return this.top_query(id).query; + } + } + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon.prototype, "data", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "last_sample", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "top_queries_data", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "top_query", null); + $$.$mol_perf_dbmon = $mol_perf_dbmon; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//dbmon.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_attributes_super extends $.$mol_view { + some() { + return { + a: 0, + b: 2 + }; + } + } + $.$mol_view_tree_test_attributes_super = $mol_view_tree_test_attributes_super; + class $mol_view_tree_test_attributes extends $mol_view_tree_test_attributes_super { + some() { + return Object.assign(Object.assign({}, super.some()), { a: 1 }); + } + } + $.$mol_view_tree_test_attributes = $mol_view_tree_test_attributes; +})($ || ($ = {})); +//attributes.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_binding extends $.$mol_view { + value(val) { + return this.task_title_new(val); + } + enabled() { + return this.head_complete_enabled(); + } + task_title_new(val) { + if (val !== undefined) + return val; + return "123"; + } + head_complete_enabled() { + return false; + } + } + __decorate([ + $.$mol_mem + ], $mol_view_tree_test_binding.prototype, "task_title_new", null); + $.$mol_view_tree_test_binding = $mol_view_tree_test_binding; +})($ || ($ = {})); +//binding.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_binding_right extends $.$mol_view { + Test() { + const obj = new this.$.$mol_view_tree_test_binding_right_test(); + return obj; + } + outer_width(v) { + return this.Test().width(v); + } + } + __decorate([ + $.$mol_mem + ], $mol_view_tree_test_binding_right.prototype, "Test", null); + $.$mol_view_tree_test_binding_right = $mol_view_tree_test_binding_right; + class $mol_view_tree_test_binding_right_test extends $.$mol_view { + width(val) { + if (val !== undefined) + return val; + return 0; + } + } + __decorate([ + $.$mol_mem + ], $mol_view_tree_test_binding_right_test.prototype, "width", null); + $.$mol_view_tree_test_binding_right_test = $mol_view_tree_test_binding_right_test; +})($ || ($ = {})); +//binding_right.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_simple extends $.$mol_view { + some() { + return 1; + } + bool() { + return true; + } + str() { + return "test"; + } + arr() { + return []; + } + arr_string() { + return []; + } + } + $.$mol_view_tree_test_simple = $mol_view_tree_test_simple; +})($ || ($ = {})); +//simple.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_attributes_subcomponent extends $.$mol_view { + Page(index) { + const obj = new this.$.$mol_view_tree_test_attributes_subcomponent_page(); + obj.Sub = () => this.page(index); + return obj; + } + page(index) { + return null; + } + } + __decorate([ + $.$mol_mem_key + ], $mol_view_tree_test_attributes_subcomponent.prototype, "Page", null); + $.$mol_view_tree_test_attributes_subcomponent = $mol_view_tree_test_attributes_subcomponent; + class $mol_view_tree_test_attributes_subcomponent_page extends $.$mol_view { + Sub() { + return null; + } + } + $.$mol_view_tree_test_attributes_subcomponent_page = $mol_view_tree_test_attributes_subcomponent_page; +})($ || ($ = {})); +//subcomponent.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_tree_convert = Symbol('$mol_tree_convert'); + class $mol_tree extends $.$mol_object2 { + constructor(config = {}) { + super(); + this.type = config.type || ''; + if (config.value !== undefined) { + var sub = $mol_tree.values(config.value); + if (config.type || sub.length > 1) { + this.sub = [...sub, ...(config.sub || [])]; + this.data = config.data || ''; + } + else { + this.data = sub[0].data; + this.sub = config.sub || []; + } + } + else { + this.data = config.data || ''; + this.sub = config.sub || []; + } + this.baseUri = config.baseUri || ''; + this.row = config.row || 0; + this.col = config.col || 0; + this.length = config.length || 0; + } + static values(str, baseUri) { + return str.split('\n').map((data, index) => new $mol_tree({ + data: data, + baseUri: baseUri, + row: index + 1, + length: data.length, + })); + } + clone(config = {}) { + return new $mol_tree({ + type: ('type' in config) ? config.type : this.type, + data: ('data' in config) ? config.data : this.data, + sub: ('sub' in config) ? config.sub : this.sub, + baseUri: ('baseUri' in config) ? config.baseUri : this.baseUri, + row: ('row' in config) ? config.row : this.row, + col: ('col' in config) ? config.col : this.col, + length: ('length' in config) ? config.length : this.length, + value: config.value + }); + } + make(config) { + return new $mol_tree(Object.assign({ baseUri: this.baseUri, row: this.row, col: this.col, length: this.length }, config)); + } + make_data(value, sub) { + return this.make({ value, sub }); + } + make_struct(type, sub) { + return this.make({ type, sub }); + } + static fromString(str, baseUri) { + var root = new $mol_tree({ baseUri: baseUri }); + var stack = [root]; + var row = 0; + var prefix = str.replace(/^\n?(\t*)[\s\S]*/, '$1'); + var lines = str.replace(new RegExp('^\\t{0,' + prefix.length + '}', 'mg'), '').split('\n'); + lines.forEach(line => { + ++row; + var chunks = /^(\t*)((?:[^\n\t\\ ]+ *)*)(\\[^\n]*)?(.*?)(?:$|\n)/m.exec(line); + if (!chunks || chunks[4]) + return this.$.$mol_fail(new Error(`Syntax error at ${baseUri}:${row}\n${line}`)); + var indent = chunks[1]; + var path = chunks[2]; + var data = chunks[3]; + var deep = indent.length; + var types = path ? path.replace(/ $/, '').split(/ +/) : []; + if (stack.length <= deep) + return this.$.$mol_fail(new Error(`Too many tabs at ${baseUri}:${row}\n${line}`)); + stack.length = deep + 1; + var parent = stack[deep]; + let col = deep; + types.forEach(type => { + if (!type) + return this.$.$mol_fail(new Error(`Unexpected space symbol ${baseUri}:${row}\n${line}`)); + var next = new $mol_tree({ type, baseUri, row, col, length: type.length }); + const parent_sub = parent.sub; + parent_sub.push(next); + parent = next; + col += type.length + 1; + }); + if (data) { + var next = new $mol_tree({ data: data.substring(1), baseUri, row, col, length: data.length }); + const parent_sub = parent.sub; + parent_sub.push(next); + parent = next; + } + stack.push(parent); + }); + return root; + } + static fromJSON(json, baseUri = '') { + switch (true) { + case typeof json === 'boolean': + case typeof json === 'number': + case json === null: + return new $mol_tree({ + type: String(json), + baseUri: baseUri + }); + case typeof json === 'string': + return new $mol_tree({ + value: json, + baseUri: baseUri + }); + case Array.isArray(json): + return new $mol_tree({ + type: "/", + sub: json.map(json => $mol_tree.fromJSON(json, baseUri)) + }); + case json instanceof Date: + return new $mol_tree({ + value: json.toISOString(), + baseUri: baseUri + }); + default: + if (typeof json[$.$mol_tree_convert] === 'function') { + return json[$.$mol_tree_convert](); + } + if (typeof json.toJSON === 'function') { + return $mol_tree.fromJSON(json.toJSON()); + } + if (json instanceof Error) { + const { name, message, stack } = json; + json = Object.assign(Object.assign({}, json), { name, message, stack }); + } + var sub = []; + for (var key in json) { + if (json[key] === undefined) + continue; + const subsub = $mol_tree.fromJSON(json[key], baseUri); + if (/^[^\n\t\\ ]+$/.test(key)) { + var child = new $mol_tree({ + type: key, + baseUri: baseUri, + sub: [subsub], + }); + } + else { + var child = new $mol_tree({ + value: key, + baseUri: baseUri, + sub: [subsub], + }); + } + sub.push(child); + } + return new $mol_tree({ + type: "*", + sub: sub, + baseUri: baseUri + }); + } + } + get uri() { + return this.baseUri + '#' + this.row + ':' + this.col; + } + toString(prefix = '') { + var output = ''; + if (this.type.length) { + if (!prefix.length) { + prefix = "\t"; + } + output += this.type; + if (this.sub.length == 1) { + return output + ' ' + this.sub[0].toString(prefix); + } + output += "\n"; + } + else if (this.data.length || prefix.length) { + output += "\\" + this.data + "\n"; + } + for (var child of this.sub) { + output += prefix; + output += child.toString(prefix + "\t"); + } + return output; + } + toJSON() { + if (!this.type) + return this.value; + if (this.type === 'true') + return true; + if (this.type === 'false') + return false; + if (this.type === 'null') + return null; + if (this.type === '*') { + var obj = {}; + for (var child of this.sub) { + if (child.type === '-') + continue; + var key = child.type || child.clone({ sub: child.sub.slice(0, child.sub.length - 1) }).value; + var val = child.sub[child.sub.length - 1].toJSON(); + if (val !== undefined) + obj[key] = val; + } + return obj; + } + if (this.type === '/') { + var res = []; + this.sub.forEach(child => { + if (child.type === '-') + return; + var val = child.toJSON(); + if (val !== undefined) + res.push(val); + }); + return res; + } + if (this.type === 'time') { + return new Date(this.value); + } + const numb = Number(this.type); + if (!Number.isNaN(numb) || this.type === 'NaN') + return numb; + throw new Error(`Unknown type (${this.type}) at ${this.uri}`); + } + get value() { + var values = []; + for (var child of this.sub) { + if (child.type) + continue; + values.push(child.value); + } + return this.data + values.join("\n"); + } + insert(value, ...path) { + if (path.length === 0) + return value; + const type = path[0]; + if (typeof type === 'string') { + let replaced = false; + const sub = this.sub.map((item, index) => { + if (item.type !== type) + return item; + replaced = true; + return item.insert(value, ...path.slice(1)); + }); + if (!replaced) + sub.push(new $mol_tree({ type }).insert(value, ...path.slice(1))); + return this.clone({ sub }); + } + else if (typeof type === 'number') { + const sub = this.sub.slice(); + sub[type] = (sub[type] || new $mol_tree).insert(value, ...path.slice(1)); + return this.clone({ sub }); + } + else { + return this.clone({ sub: ((this.sub.length === 0) ? [new $mol_tree()] : this.sub).map(item => item.insert(value, ...path.slice(1))) }); + } + } + select(...path) { + var next = [this]; + for (var type of path) { + if (!next.length) + break; + var prev = next; + next = []; + for (var item of prev) { + switch (typeof (type)) { + case 'string': + for (var child of item.sub) { + if (!type || (child.type == type)) { + next.push(child); + } + } + break; + case 'number': + if (type < item.sub.length) + next.push(item.sub[type]); + break; + default: next.push(...item.sub); + } + } + } + return new $mol_tree({ sub: next }); + } + filter(path, value) { + var sub = this.sub.filter(function (item) { + var found = item.select(...path); + if (value == null) { + return Boolean(found.sub.length); + } + else { + return found.sub.some(child => child.value == value); + } + }); + return new $mol_tree({ sub: sub }); + } + transform(visit, stack = []) { + const sub_stack = [this, ...stack]; + return visit(sub_stack, () => this.sub.map(node => node.transform(visit, sub_stack)).filter(n => n)); + } + hack(context) { + const sub = [].concat(...this.sub.map(child => { + const handle = context[child.type] || context['']; + if (!handle) + $.$mol_fail(child.error('Handler not defined')); + return handle(child, context); + })); + return this.clone({ sub }); + } + error(message) { + return new Error(`${message}:\n${this} ${this.baseUri}:${this.row}:${this.col}`); + } + } + __decorate([ + $.$mol_deprecated('Use $mol_tree:hack') + ], $mol_tree.prototype, "transform", null); + $.$mol_tree = $mol_tree; +})($ || ($ = {})); +//tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_state_local extends $.$mol_object { + static native() { + if (this['native()']) + return this['native()']; + check: try { + const native = $.$mol_dom_context.localStorage; + if (!native) + break check; + native.setItem('', ''); + native.removeItem(''); + return this['native()'] = native; + } + catch (error) { + console.warn(error); + } + return this['native()'] = { + getItem(key) { + return this[':' + key]; + }, + setItem(key, value) { + this[':' + key] = value; + }, + removeItem(key) { + this[':' + key] = void 0; + } + }; + } + static value(key, next, force) { + if (next === void 0) + return JSON.parse(this.native().getItem(key) || 'null'); + if (next === null) + this.native().removeItem(key); + else + this.native().setItem(key, JSON.stringify(next)); + return next; + } + prefix() { return ''; } + value(key, next) { + return $mol_state_local.value(this.prefix() + '.' + key, next); + } + } + __decorate([ + $.$mol_mem_key + ], $mol_state_local, "value", null); + $.$mol_state_local = $mol_state_local; +})($ || ($ = {})); +//local.js.map +; +"use strict"; +var $; +(function ($) { + self.addEventListener('storage', event => { + if (!event.key) + return; + $.$mol_state_local.value(event.key, undefined, $.$mol_mem_force_cache); + }); +})($ || ($ = {})); +//local.web.js.map +; +"use strict"; +var $node = $node || {}; +//node.web.js.map +; +"use strict"; +var $; +(function ($) { + var _a; + const TextEncoder = (_a = globalThis.TextEncoder) !== null && _a !== void 0 ? _a : $node.util.TextEncoder; + const encoder = new TextEncoder(); + function $mol_charset_encode(value) { + return encoder.encode(value); + } + $.$mol_charset_encode = $mol_charset_encode; +})($ || ($ = {})); +//encode.js.map +; +"use strict"; +var $; +(function ($) { + var _a; + const TextDecoder = (_a = globalThis.TextDecoder) !== null && _a !== void 0 ? _a : $node.util.TextDecoder; + function $mol_charset_decode(value, code = 'utf8') { + return new TextDecoder(code).decode(value); + } + $.$mol_charset_decode = $mol_charset_decode; +})($ || ($ = {})); +//decode.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_file_not_found extends Error { + } + $.$mol_file_not_found = $mol_file_not_found; + class $mol_file extends $.$mol_object { + static absolute(path) { + throw new Error('Not implemented yet'); + } + static relative(path) { + throw new Error('Not implemented yet'); + } + path() { + return '.'; + } + parent() { + return this.resolve('..'); + } + reset() { + try { + this.stat(undefined, $.$mol_mem_force_cache); + } + catch (error) { + if (error instanceof $mol_file_not_found) + return; + return $.$mol_fail_hidden(error); + } + } + version() { + return this.stat().mtime.getTime().toString(36).toUpperCase(); + } + watcher() { + console.warn('$mol_file_web.watcher() not implemented'); + return { + destructor() { } + }; + } + exists(next, force) { + let exists = true; + try { + this.stat(); + } + catch (error) { + if (error instanceof $mol_file_not_found) { + exists = false; + } + else { + return $.$mol_fail_hidden(error); + } + } + if (next === undefined) + return exists; + if (next === exists) + return exists; + if (next) + this.parent().exists(true); + this.ensure(next); + this.reset(); + return next; + } + type() { + return this.stat().type; + } + name() { + return this.path().replace(/^.*\//, ''); + } + ext() { + const match = /((?:\.\w+)+)$/.exec(this.path()); + return match ? match[1].substring(1) : ''; + } + text(next, force) { + const buffer = next === undefined ? undefined : $.$mol_charset_encode(next); + return $.$mol_charset_decode(this.buffer(buffer, force)); + } + fail(error) { + this.buffer(error, $.$mol_mem_force_fail); + this.stat(error, $.$mol_mem_force_fail); + } + buffer_cached(buffer) { + const ctime = new Date(); + const stat = { + type: 'file', + size: buffer.length, + ctime, + atime: ctime, + mtime: ctime + }; + this.buffer(buffer, $.$mol_mem_force_cache); + this.stat(stat, $.$mol_mem_force_cache); + } + text_cached(content) { + this.buffer_cached($.$mol_charset_encode(content)); + } + find(include, exclude) { + const found = []; + const sub = this.sub(); + for (const child of sub) { + const child_path = child.path(); + if (exclude && child_path.match(exclude)) + continue; + if (!include || child_path.match(include)) + found.push(child); + if (child.type() === 'dir') { + const sub_child = child.find(include, exclude); + for (const child of sub_child) + found.push(child); + } + } + return found; + } + size() { + switch (this.type()) { + case 'file': return this.stat().size; + default: return 0; + } + } + } + __decorate([ + $.$mol_mem + ], $mol_file.prototype, "exists", null); + __decorate([ + $.$mol_mem + ], $mol_file.prototype, "text", null); + __decorate([ + $.$mol_mem_key + ], $mol_file, "absolute", null); + $.$mol_file = $mol_file; +})($ || ($ = {})); +//file.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_parse(text, type = 'application/xhtml+xml') { + const parser = new $.$mol_dom_context.DOMParser(); + const doc = parser.parseFromString(text, type); + const error = doc.getElementsByTagName('parsererror')[0]; + if (error) + throw new Error(error.textContent); + return doc; + } + $.$mol_dom_parse = $mol_dom_parse; +})($ || ($ = {})); +//parse.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_fetch_response extends $.$mol_object2 { + constructor(native) { + super(); + this.native = native; + } + headers() { + return this.native.headers; + } + mime() { + return this.headers().get('content-type'); + } + stream() { + return this.native.body; + } + text() { + const buffer = this.buffer(); + const native = this.native; + const mime = native.headers.get('content-type') || ''; + const [, charset] = /charset=(.*)/.exec(mime) || [, 'utf-8']; + const decoder = new TextDecoder(charset); + return decoder.decode(buffer); + } + json() { + const response = this.native; + const parse = $.$mol_fiber_sync(response.json); + return parse.call(response); + } + buffer() { + const response = this.native; + const parse = $.$mol_fiber_sync(response.arrayBuffer); + return parse.call(response); + } + xml() { + return $.$mol_dom_parse(this.text(), 'application/xml'); + } + xhtml() { + return $.$mol_dom_parse(this.text(), 'application/xhtml+xml'); + } + html() { + return $.$mol_dom_parse(this.text(), 'text/html'); + } + } + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "stream", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "text", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "json", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "buffer", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "xml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "xhtml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "html", null); + $.$mol_fetch_response = $mol_fetch_response; + class $mol_fetch extends $.$mol_object2 { + static response(input, init) { + const response = this.request(input, init); + if (Math.floor(response.status / 100) === 2) + return new $mol_fetch_response(response); + throw new Error(response.statusText || `HTTP Error ${response.status}`); + } + static stream(input, init) { + return this.response(input, init).stream(); + } + static text(input, init) { + return this.response(input, init).text(); + } + static json(input, init) { + return this.response(input, init).json(); + } + static buffer(input, init) { + this.response(input, init).buffer(); + } + static xml(input, init) { + return this.response(input, init).xml(); + } + static xhtml(input, init) { + return this.response(input, init).xhtml(); + } + static html(input, init) { + return this.response(input, init).html(); + } + } + $mol_fetch.request = $.$mol_fiber_sync((input, init = {}) => { + if (typeof AbortController === 'function') { + var controller = new AbortController(); + init.signal = controller.signal; + const fiber = $.$mol_fiber.current; + fiber.abort = () => { + if (fiber.cursor === -2) + return true; + controller.abort(); + return true; + }; + } + let native = $.$mol_dom_context.fetch; + if (!native) + native = $node['node-fetch']; + return native(input, init); + }); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "response", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "stream", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "text", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "json", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "buffer", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "xml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "xhtml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "html", null); + $.$mol_fetch = $mol_fetch; +})($ || ($ = {})); +//fetch.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_file_web extends $.$mol_file { + static absolute(path) { + return this.make({ + path: $.$mol_const(path) + }); + } + static relative(path) { + return this.absolute(new URL(path, this.base).toString()); + } + buffer(next, force) { + if (next !== undefined) + throw new Error(`Saving content not supported: ${this.path}`); + const response = $.$mol_fetch.response(this.path()); + if (response.native.status === 404) + throw new $.$mol_file_not_found(`File not found: ${this.path()}`); + return new Uint8Array(response.buffer()); + } + stat(next, force) { + let stat = next; + if (next === undefined) { + const content = this.text(); + const ctime = new Date(); + stat = { + type: 'file', + size: content.length, + ctime, + atime: ctime, + mtime: ctime + }; + } + this.parent().watcher(); + return stat; + } + resolve(path) { + let res = this.path() + '/' + path; + while (true) { + let prev = res; + res = res.replace(/\/[^\/.]+\/\.\.\//, '/'); + if (prev === res) + break; + } + return this.constructor.absolute(res); + } + ensure(next) { + throw new Error('$mol_file_web.ensure() not implemented'); + } + sub() { + throw new Error('$mol_file_web.sub() not implemented'); + } + relate(base = this.constructor.relative('.')) { + throw new Error('$mol_file_web.relate() not implemented'); + } + append(next) { + throw new Error('$mol_file_web.append() not implemented'); + } + } + $mol_file_web.base = $.$mol_dom_context.document + ? new URL('.', $.$mol_dom_context.document.currentScript['src']).toString() + : ''; + __decorate([ + $.$mol_mem + ], $mol_file_web.prototype, "buffer", null); + __decorate([ + $.$mol_mem + ], $mol_file_web.prototype, "stat", null); + __decorate([ + $.$mol_mem + ], $mol_file_web.prototype, "sub", null); + __decorate([ + $.$mol_mem_key + ], $mol_file_web, "absolute", null); + $.$mol_file_web = $mol_file_web; + $.$mol_file = $mol_file_web; +})($ || ($ = {})); +//file.web.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_locale extends $.$mol_object { + static lang_default() { + return 'en'; + } + static lang(next) { + return $.$mol_state_local.value('locale', next) || $.$mol_dom_context.navigator.language.replace(/-.*/, '') || this.lang_default(); + } + static source(lang) { + return JSON.parse($.$mol_file.relative(`web.locale=${lang}.json`).text().toString()); + } + static texts(lang, next) { + if (next) + return next; + try { + return this.source(lang).valueOf(); + } + catch (error) { + if ('then' in error) + $.$mol_fail_hidden(error); + const def = this.lang_default(); + if (lang === def) + throw error; + return this.source(def); + } + } + static text(key) { + for (let lang of [this.lang(), 'en']) { + const text = this.texts(lang)[key]; + if (text) + return text; + console.warn(`Not translated to "${lang}": ${key}`); + } + return `<${key}>`; + } + } + __decorate([ + $.$mol_mem + ], $mol_locale, "lang_default", null); + __decorate([ + $.$mol_mem + ], $mol_locale, "lang", null); + __decorate([ + $.$mol_mem_key + ], $mol_locale, "source", null); + __decorate([ + $.$mol_mem_key + ], $mol_locale, "texts", null); + __decorate([ + $.$mol_mem_key + ], $mol_locale, "text", null); + $.$mol_locale = $mol_locale; +})($ || ($ = {})); +//locale.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_view_tree_trim_remarks(def) { + return def.transform(([node], sub) => (node.type === '-') ? null : node.clone({ sub: sub() })); + } + $.$mol_view_tree_trim_remarks = $mol_view_tree_trim_remarks; + function $mol_view_tree_classes(defs) { + return $mol_view_tree_trim_remarks(defs); + } + $.$mol_view_tree_classes = $mol_view_tree_classes; + function $mol_view_tree_class_name(val) { + return val.type; + } + $.$mol_view_tree_class_name = $mol_view_tree_class_name; + function $mol_view_tree_super_name(val) { + if (val.sub.length != 1) + throw val.error('Wrong sub count'); + return val.sub[0].type; + } + $.$mol_view_tree_super_name = $mol_view_tree_super_name; + function $mol_view_tree_class_props(def) { + const props = {}; + const catch_prop = (prop, type = '') => { + let def = prop; + if (type === '=>') { + if (prop.sub[0]) + throw prop.error('Right binding can not have default value'); + } + else { + if (prop.sub.length === 0) + return; + if (prop.sub[0].type === '-') + return; + props[prop.type] = props[prop.type]; + def = prop.clone({ + sub: [prop.sub[0].transform(([node, ...stack], sub) => { + if (['<=', '<=>', '=>'].indexOf(node.type) === -1) + return node.clone({ sub: sub() }); + catch_prop(node.sub[0], node.type); + return node.clone({ + sub: [node.sub[0].clone({ + sub: [] + })] + }); + })] + }); + } + if (props[prop.type]) { + if (props[prop.type].toString() !== def.toString()) { + throw def.error('Property already defined with another default value' + props[prop.type].error('').message + '\n---'); + } + } + else { + props[prop.type] = def; + } + }; + def.sub[0].sub.map(sub => catch_prop(sub)); + return def.clone({ + type: '', + sub: Object.keys(props).map(name => props[name]), + }); + } + $.$mol_view_tree_class_props = $mol_view_tree_class_props; + function $mol_view_tree_prop_name(prop) { + return (prop.type.match(/^\w+/) || [])[0] || ''; + } + $.$mol_view_tree_prop_name = $mol_view_tree_prop_name; + function $mol_view_tree_prop_key(prop) { + return (prop.type.match(/!(\w+)$/) || [])[1] || ''; + } + $.$mol_view_tree_prop_key = $mol_view_tree_prop_key; + function $mol_view_tree_prop_next(prop) { + return (prop.type.match(/\?(\w+)$/) || [])[1] || ''; + } + $.$mol_view_tree_prop_next = $mol_view_tree_prop_next; + function $mol_view_tree_prop_value(prop) { + if (prop.sub.length != 1) + throw prop.error(`Wrong sub count (${prop.sub.length})`); + return prop.sub[0]; + } + $.$mol_view_tree_prop_value = $mol_view_tree_prop_value; + function $mol_view_tree_value_type(val) { + switch (val.type) { + case 'true': return 'bool'; + case 'false': return 'bool'; + case 'null': return 'null'; + case '*': return 'dict'; + case '@': return 'locale'; + case '': return 'string'; + case '<=': return 'get'; + case '<=>': return 'bind'; + case '=>': return 'put'; + } + switch (val.type[0]) { + case '/': return 'list'; + case '$': return 'object'; + } + if (Number(val.type).toString() == val.type) + return 'number'; + throw val.error('Wrong value'); + } + $.$mol_view_tree_value_type = $mol_view_tree_value_type; + function $mol_view_tree_compile(tree) { + const splittedUri = tree.uri.split(/[#\\\/]/); + splittedUri.pop(); + const fileName = splittedUri.pop(); + const SourceNode = (row, col, fileName, text) => text; + var content = []; + var locales = {}; + for (let def of $mol_view_tree_classes(tree).sub) { + if (!/^\$\w+$/.test(def.type)) + throw def.error('Wrong component name'); + var parent = def.sub[0]; + var members = {}; + for (let param of $mol_view_tree_class_props(def).sub) { + try { + var needSet = false; + var needCache = false; + if (param.type === '<=>') { + param = param.sub[0]; + } + if (param.type === '<=') { + param = param.sub[0]; + } + var propName = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(param.type); + if (propName[3]) { + needSet = true; + needCache = true; + } + const getValue = (value, definition) => { + try { + switch (true) { + case (value.type === ''): + return [JSON.stringify(value.value)]; + case (value.type === '@'): + const key = `${def.type}_${param.type.replace(/[?!].*/, '')}`; + locales[key] = value.value; + return [`this.$.$mol_locale.text( ${JSON.stringify(key)} )`]; + case (value.type === '-'): + return null; + case (value.type[0] === '/'): + const item_type = value.type.substring(1); + var items = []; + value.sub.forEach(item => { + if (item.type === '-') + return; + if (item.type === '^') { + items.push(`...super.${param.type}()`); + return; + } + var val = getValue(item); + if (val) + items.push(val.join("")); + }); + return [`[`, items.join(' , '), `]`, (item_type ? ` as readonly ( ${item_type} )[]` : ` as readonly any[]`)]; + case (value.type[0] === '$'): + if (!definition) + throw value.error('Objects should be bound'); + needCache = true; + var overs = []; + value.sub.forEach(over => { + if (/^[-\/]?$/.test(over.type)) + return ''; + var overName = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(over.type); + var ns = needSet; + if (over.sub[0].type === '=>') { + if (over.sub[0].sub.length === 1) { + const [, own_name, own_key, own_next] = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(over.sub[0].sub[0].type); + let own_args = []; + if (own_key) + own_args.push(` ${own_key} : any `); + if (own_next) + own_args.push(` ${own_next}? : any `); + let [, their_name, ...their_args] = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(over.type); + their_args = their_args.filter(Boolean); + members[own_name] = [`\t${own_name}(${own_args.join(',')}) {\n\t\treturn this.${propName[1]}(${propName[2] || ''}).${their_name}( ${their_args.join(' , ')} )\n\t}\n\n`]; + return; + } + } + var v = getValue(over.sub[0]); + let args = []; + if (overName[2]) + args.push(` ${overName[2]} : any `); + if (overName[3]) + args.push(` ${overName[3]}? : any `); + overs.push(...['\t\t\tobj.', SourceNode(over.row, over.col, fileName, overName[1]), ' = (', args.join(','), ') => ', ...(v || []), '\n']); + needSet = ns; + }); + const object_args = value.select('/', '').sub.map(arg => getValue(arg)).join(' , '); + return ['(( obj )=>{\n', ...overs, '\t\t\treturn obj\n\t\t})( new this.$.', SourceNode(value.row, value.col, fileName, value.type), '( ', object_args, ' ) )']; + case (value.type === '*'): + var opts = []; + value.sub.forEach(opt => { + if (opt.type === '-') + return ''; + if (opt.type === '^') { + opts.push(`\t\t\t...super.${param.type}() ,\n`); + return; + } + var key = /(.*?)(?:\?(\w+))?$/.exec(opt.type); + var ns = needSet; + var v = getValue(opt.sub[0]); + var arg = key[2] ? ` ( ${key[2]}? : any )=> ` : ''; + opts.push(...['\t\t\t"', SourceNode(opt.row, opt.col, fileName, key[1] + '" : '), arg, ' ', ...(v || []), ' ,\n']); + needSet = ns; + }); + return ['({\n', opts.join(''), '\t\t})']; + case (value.type === '<=>'): + if (value.sub.length === 1) { + var type = /(.*?)(?:\!(\w+))?(?:\?(\w+))$/.exec(value.sub[0].type); + return ['this.' + type[1] + '(' + (type[2] ? type[2] + ' ,' : '') + ' ' + type[3] + ' )']; + } + break; + case (value.type === '<='): + if (value.sub.length === 1) { + var type = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(value.sub[0].type); + return ['this.' + type[1] + '(' + (type[2] ? type[2] : '') + ')']; + } + break; + } + switch (value.type) { + case 'true': + case 'false': + return [value.type]; + case 'null': + return ['null as any']; + } + if (Number(value.type).toString() == value.type) + return [value.type]; + throw value.error('Wrong value'); + } + catch (err) { + throw err; + } + }; + if (param.sub.length > 1) + throw new Error('Too more sub'); + param.sub.forEach(child => { + var val = getValue(child, true); + if (!val) + return; + var args = []; + if (propName[2]) + args.push(` ${propName[2]} : any `); + if (propName[3]) + args.push(` ${propName[3]}? : any , force? : $${''}mol_mem_force `); + if (needSet) + val = [ + `( ${propName[3]} !== void 0 ) ? ${propName[3]} : `, + ...val + ]; + val = ['return ', ...val]; + var decl = ['\t', SourceNode(param.row, param.col, fileName, propName[1]), '(', args.join(','), ') {\n\t\t', ...val, '\n\t}\n\n']; + if (needCache) { + if (propName[2]) + decl = ['\t@ $', 'mol_mem_key\n', ...decl]; + else + decl = ['\t@ $', 'mol_mem\n', ...decl]; + } + decl = ['\t/**\n\t * ```\n', param.toString().trim().replace(/^/mg, '\t * '), '\n\t * ```\n\t **/\n', ...decl]; + members[propName[1]] = decl; + }); + } + catch (err) { + throw err; + } + } + var body = Object.keys(members).reduce(function (acc, name) { + const items = members[name] ? members[name] : ['\t', name, '() { return null as any }\n\t}\n']; + return [...acc, ...items]; + }, []); + var classes = ['namespace $ { export class ', SourceNode(def.row, def.col, fileName, def.type), ' extends ', SourceNode(parent.row, parent.col, fileName, parent.type), ' {\n\n', ...body, '} }\n']; + content = [...content, ...classes]; + } + return { script: content.join(''), locales }; + } + $.$mol_view_tree_compile = $mol_view_tree_compile; +})($ || ($ = {})); +//tree.js.map +; +export default $ +//# sourceMappingURL=web.esm.js.map diff --git a/mol/web.esm.js.map b/mol/web.esm.js.map new file mode 100644 index 00000000..b412570c --- /dev/null +++ b/mol/web.esm.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../mol.jam.js","-","../../../mol.ts","../../../ambient/ambient.ts","../../../delegate/delegate.ts","../../../owning/owning.ts","../../../fail/fail.ts","../../../fail/hidden/hidden.ts","../../../type/writable/writable.js","../../../object2/object2.ts","../../../after/tick/tick.ts","../../../dom/context/context.ts","../../../dom/context/context.web.ts","../../../style/attach/attach.ts","../../../decor/decor.ts","../../../style/unit/unit.ts","../../../style/func/func.ts","../../../theme/-css/theme.css.ts","../../../theme/theme.ts","../../../skin/-css/skin.css.ts","../../../object/object.ts","../../../log3/log3.ts","../../../log3/log3.web.ts","../../../wrapper/wrapper.ts","../../../after/frame/frame.web.ts","../../../compare/any/any.ts","../../../conform/conform.ts","../../../array/trim/trim.ts","../../../dev/format/format.ts","../../../fiber/fiber.ts","../../../atom2/atom2.ts","../../../type/param/param.js","../../../type/result/result.js","../../../mem/force/force.ts","../../../mem/mem.ts","../../../window/window.web.ts","../../../dict/dict.ts","../../../mem/key/key.ts","../../../atom2/autorun/autorun.ts","../../../defer/defer.ts","../../../view/selection/selection.ts","../../../after/timeout/timeout.ts","../../../view/selection/selection.web.ts","../../../dom/qname/qname.ts","../../../const/const.ts","../../../dom/render/attributes/attributes.ts","../../../fail/catch/catch.ts","../../../dom/render/styles/styles.ts","../../../dom/render/fields/fields.ts","../../../dom/render/children/children.ts","../../../memo/memo.ts","../../../func/name/name.ts","../../../deprecated/deprecated.ts","../../../type/keys/extract/extract.js","../../../type/pick/pick.js","../../../view/view/view.ts","../../../view/view/-css/view.css.ts","../../../view/view/view.web.ts","../../../type/error/error.js","../../../type/override/override.js","../../../colors/colors.ts","../../../style/properties/properties.js","../../../style/pseudo/class.js","../../../style/pseudo/element.js","../../../style/guard/guard.js","../../../style/sheet/sheet.ts","../../../style/define/define.ts","../../../scroll/-view.tree/scroll.view.tree.ts","../../../state/session/session.ts","../../../scroll/scroll.view.css.ts","../../../scroll/scroll.view.ts","../../../list/-view.tree/list.view.tree.ts","../../../support/css/css.ts","../../../dom/listener/listener.ts","../../../print/print.ts","../../../list/-css/list.view.css.ts","../../../list/list.view.ts","../../../plugin/plugin.ts","../../../meter/-view.tree/meter.view.tree.ts","../../../meter/meter.view.ts","../../../pop/-view.tree/pop.view.tree.ts","../../../keyboard/code.ts","../../../pop/-css/pop.view.css.ts","../../../pop/pop.view.ts","../../../pop/over/-view.tree/over.view.tree.ts","../../../pop/over/-css/over.view.css.ts","../../../pop/over/over.view.ts","../-view.tree/dbmon.view.tree.ts","../../../after/work/work.web.ts","../../../state/time/time.ts","../-css/dbmon.view.css.ts","../dbmon.view.ts","../../../view/tree/test/-view.tree/attributes.view.tree.ts","../../../view/tree/test/-view.tree/binding.view.tree.ts","../../../view/tree/test/-view.tree/binding_right.view.tree.ts","../../../view/tree/test/-view.tree/simple.view.tree.ts","../../../view/tree/test/-view.tree/subcomponent.view.tree.ts","../../../tree/tree.ts","../../../state/local/local.ts","../../../state/local/local.web.ts","../../../../node/node.web.ts","../../../charset/encode/encode.ts","../../../charset/decode/decode.ts","../../../file/file.ts","../../../dom/parse/parse.ts","../../../fetch/fetch.ts","../../../file/file.web.ts","../../../locale/locale.ts","../../../view/tree/tree.ts"],"names":[],"mappings":"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","file":"web.esm.js","sourcesContent":[null,null,"Error.stackTraceLimit = Infinity;\n\ndeclare namespace $ {}\nexport = $\nmodule.exports\n","namespace $ {\n\n\texport namespace $$ { export let $$ : typeof $ }\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\texport type $mol_ambient_context = ( typeof globalThis ) & ( typeof $.$$ ) & ( typeof $ )\n\n\texport function $mol_ambient( this : $mol_ambient_context | void , overrides : Partial< $mol_ambient_context > ) : $mol_ambient_context {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof having['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n",null,"namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as $mol_ambient_context\n\t\t\n\t\t[ $mol_ambient_ref ] = null as any as $mol_ambient_context\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $mol_ambient_context\n\t\t}\n\t\tset $( next : $mol_ambient_context ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tconstructor( init? : ( obj : any )=> void ) {\n\t\t\tif( init ) init( this )\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable )=> void\n\t\t) : Instance {\n\t\t\treturn new this( init )\n\t\t}\n\t\t\n\t\tstatic toString() { return this[ Symbol.toStringTag ] || this.name }\n\n\t\tdestructor() { }\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tpromise : any\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.promise = Promise.resolve().then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$mol_dom_context = self as any\n\t\n}\n","namespace $ {\n\n\tlet all = [] as string[]\n\tlet el : HTMLStyleElement | null = null\n\tlet timer : $mol_after_tick | null = null\n\n\texport function $mol_style_attach(\n\t\tid : string ,\n\t\ttext : string ,\n\t) {\n\n\t\tall.push( `/* ${ id } */\\n\\n${ text }`)\n\n\t\tif( timer ) return el!\n\t\t\n\t\tconst doc = $mol_dom_context.document\n\t\tif( !doc ) return null\n\n\t\tel = doc.createElement('style')\n\t\tel.id = `$mol_style_attach`\n\t\tdoc.head.appendChild( el )\n\n\t\ttimer = new $mol_after_tick( ()=> {\n\t\t\tel!.innerHTML = '\\n' + all.join( '\\n\\n' )\n\t\t\tall = []\n\t\t\tel = null\n\t\t\ttimer = null\n\t\t} )\n\n\t\treturn el\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_decor< Value > {\n\t\t\n\t\tconstructor(\n\t\t\treadonly value : Value\n\t\t) {}\n\n\t\tprefix() { return '' }\n\t\tvalueOf() { return this.value }\n\t\tpostfix() { return '' }\n\n\t\ttoString(){\n\t\t\treturn `${ this.prefix() }${ this.valueOf() }${ this.postfix() }`\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport type $mol_style_unit_length =\n\t| '%'\n\t| 'px' | 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt'\n\t| 'cap' | 'ch' | 'em' | 'rem' | 'ex' | 'ic' | 'lh' | 'rlh'\n\t| 'vh' | 'vw' | 'vi' | 'vb' | 'vmin' | 'vmax'\n\t\n\texport type $mol_style_unit_angle = 'deg' | 'rad' | 'grad' | 'turn'\n\t\n\texport type $mol_style_unit_time = 's' | 'ms'\n\n\texport type $mol_style_unit_any = $mol_style_unit_length | $mol_style_unit_angle | $mol_style_unit_time\n\t\n\texport class $mol_style_unit<\n\t\tLiteral extends $mol_style_unit_any\n\t> extends $mol_decor< number > {\n\n\t\tconstructor(\n\t\t\tvalue : number,\n\t\t\treadonly literal : Literal,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tpostfix() {\n\t\t\treturn this.literal\n\t\t}\n\n\t\tstatic per( value : number ) { return new $mol_style_unit( value , '%' ) }\n\t\tstatic px( value : number ) { return new $mol_style_unit( value , 'px' ) }\n\t\tstatic mm( value : number ) { return new $mol_style_unit( value , 'mm' ) }\n\t\tstatic cm( value : number ) { return new $mol_style_unit( value , 'cm' ) }\n\t\tstatic Q( value : number ) { return new $mol_style_unit( value , 'Q' ) }\n\t\tstatic in( value : number ) { return new $mol_style_unit( value , 'in' ) }\n\t\tstatic pc( value : number ) { return new $mol_style_unit( value , 'pc' ) }\n\t\tstatic pt( value : number ) { return new $mol_style_unit( value , 'pt' ) }\n\t\tstatic cap( value : number ) { return new $mol_style_unit( value , 'cap' ) }\n\t\tstatic ch( value : number ) { return new $mol_style_unit( value , 'ch' ) }\n\t\tstatic em( value : number ) { return new $mol_style_unit( value , 'em' ) }\n\t\tstatic rem( value : number ) { return new $mol_style_unit( value , 'rem' ) }\n\t\tstatic ex( value : number ) { return new $mol_style_unit( value , 'ex' ) }\n\t\tstatic ic( value : number ) { return new $mol_style_unit( value , 'ic' ) }\n\t\tstatic lh( value : number ) { return new $mol_style_unit( value , 'lh' ) }\n\t\tstatic rlh( value : number ) { return new $mol_style_unit( value , 'rlh' ) }\n\t\tstatic vh( value : number ) { return new $mol_style_unit( value , 'vh' ) }\n\t\tstatic vw( value : number ) { return new $mol_style_unit( value , 'vw' ) }\n\t\tstatic vi( value : number ) { return new $mol_style_unit( value , 'vi' ) }\n\t\tstatic vb( value : number ) { return new $mol_style_unit( value , 'vb' ) }\n\t\tstatic vmin( value : number ) { return new $mol_style_unit( value , 'vmin' ) }\n\t\tstatic vmax( value : number ) { return new $mol_style_unit( value , 'vmax' ) }\n\t\t\n\t\tstatic deg( value : number ) { return new $mol_style_unit( value , 'deg' ) }\n\t\tstatic rad( value : number ) { return new $mol_style_unit( value , 'rad' ) }\n\t\tstatic grad( value : number ) { return new $mol_style_unit( value , 'grad' ) }\n\t\tstatic turn( value : number ) { return new $mol_style_unit( value , 'turn' ) }\n\n\t\tstatic s( value : number ) { return new $mol_style_unit( value , 's' ) }\n\t\tstatic ms( value : number ) { return new $mol_style_unit( value , 'ms' ) }\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_style_func_name =\n\t| 'calc'\n\t| 'hsla'\n\t| 'rgba'\n\t| 'var'\n\t| 'url'\n\n\tconst { per } = $mol_style_unit\n\t\n\texport class $mol_style_func<\n\t\tName extends $mol_style_func_name ,\n\t\tValue = unknown,\n\t> extends $mol_decor< Value > {\n\n\t\tconstructor(\n\t\t\treadonly name : Name,\n\t\t\tvalue : Value,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tprefix() { return this.name + '(' }\n\t\tpostfix() { return ')' }\n\n\t\tstatic calc< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'calc' , value )\n\t\t}\n\n\t\tstatic vary< Name extends string >( name : Name ) {\n\t\t\treturn new $mol_style_func( 'var' , name )\n\t\t}\n\n\t\tstatic url< Href extends string >( href : Href ) {\n\t\t\treturn new $mol_style_func( 'url' , JSON.stringify( href ) )\n\t\t}\n\n\t\tstatic hsla(\n\t\t\thue: number,\n\t\t\tsaturation: number,\n\t\t\tlightness: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'hsla',\n\t\t\t\t[ hue , per( saturation ) , per( lightness ) , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic rgba(\n\t\t\tred: number,\n\t\t\tgreen: number,\n\t\t\tblue: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'rgba',\n\t\t\t\t[ red , green , blue , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \"[mol_theme] {\\n\\tbackground-color: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n}\\n\\n[mol_theme=\\\"$mol_theme_light\\\"] , :root {\\n\\t--mol_theme_back: hsl( 210 , 50% , 99% );\\n\\t--mol_theme_hover: rgba( 0 , 0 , 0 , .05 );\\n\\t--mol_theme_current: hsl( 210 , 100% , 80% );\\n\\t--mol_theme_text: hsl( 0 , 0% , 0% );\\n\\t--mol_theme_control: hsla( 210 , 60% , 35% , 1 );\\n\\t--mol_theme_shade: rgba( 0 , 0 , 0 , .5 );\\n\\t--mol_theme_line: rgba( 220 , 220 , 220 , 1 );\\n\\t--mol_theme_focus: hsl( 290 , 100% , 40% );\\n\\t--mol_theme_field: white;\\n\\t--mol_theme_image: none;\\n}\\n\\n[mol_theme=\\\"$mol_theme_dark\\\"] {\\n\\t--mol_theme_back: hsl( 210 , 50% , 10% );\\n\\t--mol_theme_hover: #333;\\n\\t--mol_theme_current: hsl( 210 , 100% , 30% );\\n\\t--mol_theme_text: hsl( 0 , 0% , 80% );\\n\\t--mol_theme_control: hsla( 210 , 60% , 70% , 1 );\\n\\t--mol_theme_shade: rgba( 255 , 255 , 255 , .5 );\\n\\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\\n\\t--mol_theme_focus: hsl( 60 , 100% , 70% );\\n\\t--mol_theme_field: black;\\n\\t--mol_theme_image: invert(1) hue-rotate(180deg);\\n}\\n\\n[mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: hsla( 210 , 60% , 35% , 1 );\\n\\t--mol_theme_hover: hsla( 210 , 60% , 20% , 1 );\\n\\t--mol_theme_current: hsl( 210 , 100% , 20% );\\n\\t--mol_theme_text: white;\\n\\t--mol_theme_line: white;\\n\\t--mol_theme_control: white;\\n}\\n\\n[mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: hsl( 15 , 60% , 50% );\\n\\t--mol_theme_hover: hsl( 15 , 60% , 40% );\\n\\t--mol_theme_text: white;\\n\\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\\n\\t--mol_theme_control: white;\\n\\t--mol_theme_focus: black;\\n}\\n\\n[mol_theme=\\\"$mol_theme_accent\\\"] [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: black;\\n\\t--mol_theme_text: white;\\n}\\n\"\n) }","namespace $ {\n\n\tconst { vary } = $mol_style_func\n\n\texport const $mol_theme = {\n\t\tback: vary('--mol_theme_back'),\n\t\thover: vary('--mol_theme_hover'),\n\t\tcurrent: vary('--mol_theme_current'),\n\t\ttext: vary('--mol_theme_text'),\n\t\tcontrol: vary('--mol_theme_control'),\n\t\tshade: vary('--mol_theme_shade'),\n\t\tline: vary('--mol_theme_line'),\n\t\tfocus: vary('--mol_theme_focus'),\n\t\tfield: vary('--mol_theme_field'),\n\t\timage: vary('--mol_theme_image'),\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/skin/skin.css\",\n \":root {\\n\\t--mol_skin_font: 16px/24px sans-serif;\\n\\t/* --mol_skin_font_monospace: Monaco, monospace; */\\n\\t--mol_skin_font_monospace: monospace;\\n}\\n\\n/* Deprecated, use mol_theme instead */\\n:root {\\n\\n\\t--mol_skin_outline: 0 0 0 1px var(--mol_theme_line);\\n\\t\\n\\t--mol_skin_base: #3a8ccb;\\n\\t--mol_skin_base_text: white;\\n\\t\\n\\t--mol_skin_current: var(--mol_skin_base);\\n\\t--mol_skin_current_text: white;\\n\\t--mol_skin_current_line: #1471b8;\\n\\t\\n\\t--mol_skin_button: var(--mol_skin_card);\\n\\t--mol_skin_hover: rgba( 0 , 0 , 0 , .05 );\\n\\t\\n\\t--mol_skin_round: 0px;\\n\\t\\n\\t--mol_skin_focus_line: rgba( 0 , 0 , 0 , .2 );\\n\\t--mol_skin_focus_outline: 0 0 0 1px var(--mol_skin_focus_line);\\n\\t\\n\\t--mol_skin_float: var(--mol_skin_focus_outline);\\n\\n\\t--mol_skin_passive: #eee;\\n\\t--mol_skin_passive_text: rgba( 0 , 0 , 0 , .5 );\\n\\t\\n\\t--mol_skin_light: #fcfcfc;\\n\\t--mol_skin_light_line: rgba( 230 , 230 , 230 , .75 );\\n\\t--mol_skin_light_text: rgba( 0 , 0 , 0 , .9 );\\n\\t--mol_skin_light_hover: #f7f7f7;\\n\\t--mol_skin_light_outline: 0 0 0 1px var(--mol_theme_line);\\n\\n\\t--mol_skin_card: var(--mol_theme_back);\\n\\t--mol_skin_card_text: var(--mol_theme_text);\\n\\t\\n\\t--mol_skin_accent: #dd0e3e;\\n\\t--mol_skin_accent_text: white;\\n\\t--mol_skin_accent_hover: #c50d37;\\n\\n\\t--mol_skin_warn: rgba( 255 , 50 , 50 , 0.75 );\\n\\t--mol_skin_warn_text: white;\\n\\t--mol_skin_warn_hover: color( var(--mol_skin_warn) lightness(-5%) );\\n\\n\\t--mol_skin_good: #96DAA9;\\n\\t--mol_skin_good_text: black;\\n\\n\\t--mol_skin_bad: #CC5252;\\n\\t--mol_skin_bad_text: white;\\n}\\n\"\n) }","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< Instance >( this : { new() : Instance } , config : Partial< Instance > ) : Instance {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as any\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $mol_ambient_context ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $mol_ambient_context ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\texport function $mol_log3_web_make< Close>(\n\t\tlevel : keyof Console ,\n\t\tcolor : string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $mol_ambient_context ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tconst pending = this.$mol_log3_stack.pop()\n\t\t\tif( pending ) pending()\n\n\t\t\tlet tpl = '%c'\n\t\t\tconst chunks = Object.values( event )\n\n\t\t\tfor( let i = 0 ; i < chunks.length ; ++i ) {\n\t\t\t\ttpl += ( typeof chunks[i] === 'string' ) ? ' ⦙ %s' : ' ⦙ %o'\n\t\t\t}\n\t\n\t\t\tconst style = `color:${color};font-weight:bolder`\n\n\t\t\tthis.console[ level ]( tpl , style , ... chunks )\n\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_web_make( 'info' , 'royalblue' )\n\t$.$mol_log3_done = $mol_log3_web_make( 'info' , 'forestgreen' )\n\t$.$mol_log3_fail = $mol_log3_web_make( 'error' , 'orangered' )\n\t$.$mol_log3_warn = $mol_log3_web_make( 'warn' , 'goldenrod' )\n\t$.$mol_log3_rise = $mol_log3_web_make( 'log' , 'magenta' )\n\t$.$mol_log3_area = $mol_log3_web_make( 'group' , 'cyan' )\n\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : new ( ... args : Args )=> Result , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t}\n\n\t\t\t\thandler[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr : TypedPropertyDescriptor< ( this : Host , ... args : Args )=> Result >\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr : TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_object2 {\n\n\t\tstatic _promise = null as Promise | null\n\n\t\tstatic get promise() {\n\n\t\t\tif( this._promise ) return this._promise\n\t\t\t\n\t\t\treturn this._promise = new Promise( done => requestAnimationFrame( ()=> {\n\t\t\t\tthis._promise = null\n\t\t\t\tdone()\n\t\t\t} ) )\n\n\t\t}\n\n\t\tcancelled = false\n\t\tpromise!: Promise\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\n\t\t\tthis.promise = $mol_after_frame.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_compare_any( a : any , b : any ) {\n\t\t\n\t\tif( a === b ) return true\n\t\t\n\t\tif( !Number.isNaN( a ) ) return false\n\t\tif( !Number.isNaN( b ) ) return false\n\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\tconst cache = new WeakMap< any , boolean >()\n\n\texport const $mol_conform_stack = [] as any[]\n\n\texport function $mol_conform< Target , Source >( target : Target , source : Source ) : Target {\n\n\t\tif( $mol_compare_any( target , source ) ) return source as any\n\n\t\tif( !target || typeof target !== 'object' ) return target\n\t\tif( !source || typeof source !== 'object' ) return target\n\n\t\tif( target instanceof Error ) return target\n\t\tif( source instanceof Error ) return target\n\t\t\n\t\tif( target['constructor'] !== source['constructor'] ) return target\n\n\t\tif( cache.get( target ) ) return target\n\t\tcache.set( target , true )\n\t\t\n\t\tconst conform = $mol_conform_handlers.get( target['constructor'] )\n\t\tif( !conform ) return target\n\n\t\tif( $mol_conform_stack.indexOf( target ) !== -1 ) return target\n\n\t\t$mol_conform_stack.push( target )\n\n\t\ttry { return conform( target , source ) }\n\t\tfinally { $mol_conform_stack.pop() }\n\n\t}\n\n\texport const $mol_conform_handlers = new WeakMap< Object , ( target : any , source : any )=> any >()\n\n\texport function $mol_conform_handler< Class >(\n\t\tcl : { new( ... args : any[] ) : Class } ,\n\t\thandler : ( target : Class , source : Class )=> Class ,\n\t) {\n\t\t$mol_conform_handlers.set( cl , handler )\n\t}\n\n\texport function $mol_conform_array<\n\t\tValue ,\n\t\tList extends {\n\t\t\t[ index : number ] : Value\n\t\t\tlength : number\n\t\t} ,\n\t>( target : List , source : List ) {\n\t\t\n\t\tif( source.length !== target.length ) return target\n\t\t\n\t\tfor( let i = 0 ; i < target.length ; ++i ) {\n\t\t\tif( !$mol_compare_any( source[i] , target[i] ) ) return target\n\t\t}\n\n\t\treturn source\n\t}\n\n\t$mol_conform_handler( Array , $mol_conform_array )\n\t$mol_conform_handler( Uint8Array , $mol_conform_array )\n\t$mol_conform_handler( Uint16Array , $mol_conform_array )\n\t$mol_conform_handler( Uint32Array , $mol_conform_array )\n\n\t$mol_conform_handler( Object , ( target , source )=> {\n\n\t\tlet count = 0\n\t\tlet equal = true\n\n\t\tfor( let key in target ) {\n\n\t\t\tconst conformed = $mol_conform( target[key] , source[key] )\n\t\t\t\n\t\t\tif( conformed !== target[key] ) {\n\t\t\t\ttry { target[key] = conformed } catch( error ) {}\n\t\t\t\tif( !$mol_compare_any( conformed , target[key] ) ) equal = false\n\t\t\t}\n\t\t\t\n\t\t\tif( !$mol_compare_any( conformed , source[key] ) ) equal = false\n\t\t\t\n\t\t\t++ count\n\t\t}\n\n\t\tfor( let key in source ) if( -- count < 0 ) break\n\n\t\treturn ( equal && count === 0 ) ? source : target\n\t} )\n\n\t$mol_conform_handler( Date , ( target , source )=> {\n\t\tif( target.getTime() === source.getTime() ) return source\n\t\treturn target \n\t} )\n\n\t$mol_conform_handler( RegExp , ( target , source )=> {\n\t\tif( target.toString() === source.toString() ) return source\n\t\treturn target\n\t} )\n\n}\n","namespace $ {\n\n\texport function $mol_array_trim< Item >( array : Item[] ) {\n\n\t\tlet last = array.length\n\t\twhile( last > 0 ) {\n\t\t\t\n\t\t\t-- last\n\t\t\tconst value = array[ last ]\n\t\t\t\n\t\t\tif( value === undefined ) array.pop()\n\t\t\telse break\n\t\t}\n\n\t\treturn array\n\t}\n\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t$['devtoolsFormatters'] = $['devtoolsFormatters'] || []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t$['devtoolsFormatters'].push( config )\n\t}\n\n\texport let $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport let $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t}\n\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : val => val[ $mol_dev_format_body ] ,\n\n\t\tbody : val => val[ $mol_dev_format_body ]() ,\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\tif( typeof obj !== 'object' ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\tif( typeof obj === 'object' && $mol_dev_format_head in obj ) {\n\t\t\treturn obj[ $mol_dev_format_head ]()\n\t\t}\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ style[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_span( style : object , ...content : any[] ) {\n\t\treturn $mol_dev_format_element(\n\t\t\t'span' ,\n\t\t\t{\n\t\t\t\t'vertical-align' : '8%',\n\t\t\t\t... style ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t)\n\t}\n\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\n}\n","namespace $ {\n\n\texport const enum $mol_fiber_status {\n\t\tpersist = -3 ,\n\t\tactual = -2 ,\n\t\tdoubt = -1 ,\n\t\tobsolete = 0 ,\n\t}\n\n\texport function $mol_fiber_defer< Value = void >( calculate : ()=> Value ) {\n\t\t\n\t\tconst fiber = new $mol_fiber\n\t\t\n\t\tfiber.calculate = calculate\n\t\tfiber[ Symbol.toStringTag ] = calculate.name\n\t\t\n\t\tfiber.schedule()\n\t\t\n\t\treturn fiber\n\t}\n\n\texport function $mol_fiber_func<\n\t\tThis ,\n\t\tArgs extends any[] ,\n\t\tResult ,\n\t>( calculate : ( this : This , ... args : Args )=> Result ) {\n\t\t$mol_ambient({}).$mol_log3_warn({\n\t\t\tplace: '$mol_fiber_func',\n\t\t\tmessage: 'Deprecated' ,\n\t\t\thint: 'Use $mol_fiber.func instead',\n\t\t})\n\t\treturn $mol_fiber.func( calculate )\n\t}\n\n\texport function $mol_fiber_root<\n\t\tCalculate extends ( this : This , ... args : any[] )=> Result ,\n\t\tResult = void ,\n\t\tThis = void ,\n\t>( calculate : Calculate ) {\n\t\t\n\t\tconst wrapper = function( ... args : any[] ) {\n\t\t\tconst fiber = new $mol_fiber< Result >()\n\t\t\tfiber.calculate = calculate.bind( this , ... args )\n\t\t\tfiber[ Symbol.toStringTag ] = wrapper[ Symbol.toStringTag ]\n\t\t\treturn fiber.wake()\n\t\t} as Calculate\n\t\t\n\t\twrapper[ Symbol.toStringTag ] = calculate.name\n\t\t\n\t\treturn wrapper\n\t}\n\n\texport function $mol_fiber_method< Host , Value >(\n\t\tobj : Host ,\n\t\tname : keyof Host ,\n\t\tdescr : TypedPropertyDescriptor< ( this : Host , ... args : any[] )=> Value >\n\t) {\n\t\t$mol_ambient({}).$mol_log3_warn({\n\t\t\tplace: '$mol_fiber_method',\n\t\t\tmessage: 'Deprecated' ,\n\t\t\thint: 'Use $mol_fiber.method instead',\n\t\t})\n\t\treturn $mol_fiber.method( obj , name , descr )\n\t}\n\n\texport function $mol_fiber_async< Args extends any[] , Value >( task : ( ... args : Args )=> Value ) {\n\n\t\treturn ( ... args : Args )=> new Promise< Value >( $mol_fiber_root( ( done , fail )=> {\n\n\t\t\ttry {\n\n\t\t\t\tdone( task( ... args ) )\n\n\t\t\t} catch( error ) {\n\n\t\t\t\tif( 'then' in error ) return $mol_fail_hidden( error )\n\n\t\t\t\tfail( error )\n\n\t\t\t}\n\n\t\t} ) )\n\n\t}\n\n\texport function $mol_fiber_sync< Args extends any[] , Value = void , This = void >(\n\t\trequest : ( this : This , ... args : Args )=> PromiseLike< Value >\n\t) : ( ... args : Args )=> Value {\n\n\t\treturn function $mol_fiber_sync_wrapper( this : This , ... args : Args ) {\n\n\t\t\tconst slave = $mol_fiber.current\n\n\t\t\tlet master = slave && slave.master\n\t\t\tif( !master || master.constructor !== $mol_fiber ) {\n\t\t\t\tmaster = new $mol_fiber\n\t\t\t\tmaster.cursor = $mol_fiber_status.persist\n\t\t\t\tmaster.error = ( request.call( this , ... args ) as PromiseLike< Value > ).then(\n\t\t\t\t\t( next : Value )=> master!.push( next ) ,\n\t\t\t\t\t( error : Error )=> master!.fail( error ) ,\n\t\t\t\t)\n\t\t\t\tconst prefix = slave ? `${ slave }/${ slave.cursor / 2 }:` : '/'\n\t\t\t\tmaster[ Symbol.toStringTag ] = prefix + ( request.name || $mol_fiber_sync.name )\n\t\t\t}\n\n\t\t\treturn master.get()\n\n\t\t}\n\n\t}\n\n\texport async function $mol_fiber_warp() {\n\t\tconst deadline = $mol_fiber.deadline\n\t\ttry {\n\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\twhile( $mol_fiber.queue.length ) await $mol_fiber.tick()\n\t\t\treturn Promise.resolve()\n\t\t} finally {\n\t\t\t$mol_fiber.deadline = deadline\n\t\t}\n\t}\n\n\texport function $mol_fiber_fence( func : ()=> any ) {\n\t\tconst prev = $mol_fiber.current\n\t\ttry {\n\t\t\t$mol_fiber.current = null\n\t\t\treturn func()\n\t\t} finally {\n\t\t\t$mol_fiber.current = prev\n\t\t}\n\t}\n\n\texport function $mol_fiber_unlimit< Result >( task : ()=> Result ) {\n\t\t\n\t\tconst deadline = $mol_fiber.deadline\n\t\t\n\t\ttry {\n\n\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\t\n\t\t\treturn task()\n\n\t\t} finally {\n\n\t\t\t$mol_fiber.deadline = deadline\n\n\t\t}\n\n\t}\n\n\texport class $mol_fiber_solid extends $mol_wrapper {\n\n\t\tstatic func< This , Args extends any[] , Result >( task : ( this : This , ... args : Args )=> Result ) {\n\n\t\t\tfunction wrapped( this : This , ... args : Args ) {\n\n\t\t\t\tconst deadline = $mol_fiber.deadline\n\n\t\t\t\ttry {\n\n\t\t\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\t\t\t\n\t\t\t\t\treturn task.call( this , ... args ) as Result\n\n\t\t\t\t} catch( error ) {\n\n\t\t\t\t\tif( 'then' in error ) $mol_fail( new Error( 'Solid fiber can not be suspended.' ) )\n\t\t\t\t\treturn $mol_fail_hidden( error )\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_fiber.deadline = deadline\n\n\t\t\t\t}\n\t\t\n\t\t\t}\n\n\t\t\treturn $mol_fiber.func( wrapped )\n\n\t\t}\n\n\t}\n\n\texport class $mol_fiber< Value = any > extends $mol_wrapper {\n\n\t\tstatic logs = false\n\n\t\tstatic wrap< Func extends ( ... args : any[] )=> any >( task : Func ) {\n\t\t\t\n\t\t\treturn function $mol_fiber_wrapper( this : ThisParameterType< Func > , ... args : Parameters< Func > ) {\n\n\t\t\t\tconst slave = $mol_fiber.current\n\n\t\t\t\tlet master = slave && slave.master\n\t\t\t\tif( !master || master.constructor !== $mol_fiber ) {\n\t\t\t\t\tmaster = new $mol_fiber\n\t\t\t\t\tmaster.calculate = task.bind( this , ... args )\n\t\t\t\t\tconst prefix = slave ? `${ slave }/${ slave.cursor / 2 }:` : '/'\n\t\t\t\t\tmaster[ Symbol.toStringTag ] = `${ prefix }${ task.name }`\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn master.get()\n\n\t\t\t}\n\n\t\t}\n\n\t\tstatic quant = 16\n\t\tstatic deadline = 0\n\t\tstatic liveline = 0\n\n\t\tstatic current = null as null | $mol_fiber\n\t\t\n\t\tstatic scheduled = null as null | $mol_after_frame\n\t\tstatic queue = [] as ( ()=> PromiseLike< any > )[]\n\t\t\n\t\tstatic async tick() {\n\t\n\t\t\twhile( $mol_fiber.queue.length > 0 ) {\n\n\t\t\t\tconst now = Date.now()\n\n\t\t\t\tif( now >= $mol_fiber.deadline ) {\n\t\t\t\t\t$mol_fiber.schedule()\n\t\t\t\t\t$mol_fiber.liveline = now\n\t\t\t\t\treturn \n\t\t\t\t}\n\n\t\t\t\tconst task = $mol_fiber.queue.shift()!\n\t\t\t\tawait task()\n\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic schedule() {\n\n\t\t\tif( !$mol_fiber.scheduled ) {\n\n\t\t\t\t$mol_fiber.scheduled = new $mol_after_frame( async ()=> {\n\t\t\t\t\t\n\t\t\t\t\tconst now = Date.now()\n\t\t\t\t\tlet quant = $mol_fiber.quant\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_fiber.liveline ) {\n\t\t\t\t\t\tquant = Math.max( quant , Math.floor( ( now - $mol_fiber.liveline ) / 2 ) )\n\t\t\t\t\t\t$mol_fiber.liveline = 0\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$mol_fiber.deadline = now + quant\n\t\t\t\t\t$mol_fiber.scheduled = null\n\t\t\t\t\t\n\t\t\t\t\tawait $mol_fiber.tick()\n\n\t\t\t\t} )\n\n\t\t\t}\n\n\t\t\tconst promise : Promise< any > = new this.$.Promise( done => this.queue.push( ()=> ( done( null ) , promise ) ) )\n\t\t\treturn promise\n\n\t\t}\n\n\t\tcursor = $mol_fiber_status.obsolete\n\t\tmasters = [] as ( $mol_fiber | number | undefined )[]\n\t\tcalculate! : ()=> Value\n\t\t\n\t\t_value = undefined as unknown as Value\n\t\tget value() { return this._value }\n\t\tset value( next : Value ) {\n\t\t\tthis._value = next\n\t\t}\n\n\t\t_error = null as null | Error | PromiseLike< Value >\n\t\tget error() { return this._error }\n\t\tset error( next : null | Error | PromiseLike< Value > ) {\n\t\t\tthis._error = next\n\t\t}\n\n\t\tschedule() {\n\t\t\t$mol_fiber.schedule().then( ()=> this.wake() )\n\t\t}\n\n\t\twake() {\n\n\t\t\tconst unscoupe = this.$.$mol_log3_area_lazy({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Wake'\n\t\t\t})\n\t\t\t\n\t\t\ttry {\n\t\t\t\tif( this.cursor > $mol_fiber_status.actual ) return this.get()\n\t\t\t} catch( error ) {\n\t\t\t\tif( 'then' in error ) return\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t} finally {\n\t\t\t\tunscoupe()\n\t\t\t}\n\n\t\t}\n\n\t\tpush( value : Value ) {\n\t\t\t\n\t\t\tvalue = this.$.$mol_conform( value , this.value )\n\t\t\t\n\t\t\tif( this.error !== null || !Object.is( this.value , value ) ) {\n\t\t\n\t\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this ,\n\t\t\t\t\tmessage : 'Changed',\n\t\t\t\t\tnext : value , \n\t\t\t\t\tvalue : this.value ,\n\t\t\t\t\terror : this.error ,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tthis.obsolete_slaves()\n\t\t\t\t\n\t\t\t\tthis.forget()\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this , \n\t\t\t\t\tmessage : 'Same value' ,\n\t\t\t\t\tvalue ,\n\t\t\t\t})\n\t\t\t}\n\t\t\t\n\t\t\tthis.error = null\n\t\t\tthis.value = value\n\t\t\t\n\t\t\tthis.complete()\n\n\t\t\treturn value\n\t\t}\n\n\t\tfail( error : Error ) : Error {\n\t\t\t\n\t\t\tthis.complete()\t\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_fail({\n\t\t\t\tplace : this , \n\t\t\t\tmessage : error.message ,\n\t\t\t})\n\t\t\t\n\t\t\tthis.error = error\n\n\t\t\tthis.obsolete_slaves()\n\n\t\t\treturn error\n\t\t}\n\n\t\twait( promise : PromiseLike< Value > ) : PromiseLike< Value > {\n\t\t\tthis.error = promise\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_warn({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : `Wait` ,\n\t\t\t\thint : `Don't panic, it's normal` , \n\t\t\t\tpromise ,\n\t\t\t})\n\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\treturn promise\n\t\t}\n\n\t\tcomplete() {\n\n\t\t\tif( this.cursor <= $mol_fiber_status.actual ) return\n\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tthis.complete_master( index )\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_fiber_status.actual\n\t\t}\n\t\t\n\t\tcomplete_master( master_index : number ) {\n\t\t\tthis.disobey( master_index )\n\t\t}\n\n\t\tpull() {\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_come({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Pull' ,\n\t\t\t})\n\n\t\t\tthis.push( this.calculate() )\n\n\t\t}\n\n\t\tupdate() {\n\n\t\t\tconst slave = $mol_fiber.current\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t// this.limit()\n\t\t\t\t\n\t\t\t\t$mol_fiber.current = this\n\n\t\t\t\tthis.pull()\n\n\t\t\t} catch( error ) {\n\n\t\t\t\tif( Object( error ) !== error ) error = new Error( error )\n\n\t\t\t\tif( 'then' in error ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !slave ) {\n\t\t\t\t\t\tconst listener = ()=> this.wake()\n\t\t\t\t\t\terror = error.then( listener , listener )\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.wait( error )\n\n\t\t\t\t} else {\n\t\t\t\t\tthis.fail( error )\n\t\t\t\t}\n\n\t\t\t} finally {\n\t\t\t\t$mol_fiber.current = slave\n\t\t\t}\n\n\t\t}\n\n\t\tget() {\n\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tthis.$.$mol_fail( new Error( `Cyclic dependency at ${ this }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst slave = $mol_fiber.current\n\t\t\tif( slave ) slave.master = this\n\t\t\t\n\t\t\tif( this.cursor > $mol_fiber_status.actual ) this.update()\n\n\t\t\tif( this.error !== null ) return this.$.$mol_fail_hidden( this.error )\n\t\t\t\n\t\t\treturn this.value\n\n\t\t}\n\n\t\tlimit() {\n\n\t\t\tif( !$mol_fiber.deadline ) return\n\t\t\tif( !$mol_fiber.current ) return\n\n\t\t\tif( Date.now() < $mol_fiber.deadline ) return\n\n\t\t\tthis.$.$mol_fail_hidden( $mol_fiber.schedule() )\n\t\t}\n\n\t\tget master() {\n\t\t\treturn this.masters[ this.cursor ] as $mol_fiber\n\t\t}\n\t\tset master( next : $mol_fiber ) {\n\n\t\t\tif( this.cursor === $mol_fiber_status.doubt ) return\n\t\t\t\n\t\t\tconst cursor = this.cursor\n\t\t\tconst prev = this.masters[ this.cursor ]\n\t\t\t\n\t\t\tif( prev !== next ) {\n\t\t\t\tif( prev ) this.rescue( prev as $mol_fiber , cursor )\n\t\t\t\tthis.masters[ cursor ] = next\n\t\t\t\tthis.masters[ cursor + 1 ] = this.obey( next , cursor )\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = cursor + 2\n\t\t}\n\n\t\trescue( master : $mol_fiber , master_index : number ) {}\n\n\t\tobey( master : $mol_fiber , master_index : number ) { return -1 }\n\t\tlead( slave : $mol_fiber , master_index : number ) { return -1 }\n\n\t\tdislead( slave_index : number ) {\n\t\t\tthis.destructor()\n\t\t}\n\n\t\tdisobey( master_index : number ) {\n\t\t\t\n\t\t\tconst master = this.masters[ master_index ] as $mol_fiber\n\t\t\tif( !master ) return\n\n\t\t\tmaster.dislead( this.masters[ master_index + 1 ] as number )\n\t\t\t\n\t\t\tthis.masters[ master_index ] = undefined\n\t\t\tthis.masters[ master_index + 1 ] = undefined\n\n\t\t\tthis.$.$mol_array_trim( this.masters )\n\n\t\t}\n\n\t\tobsolete_slaves() { }\n\n\t\tobsolete( master_index : number ) { }\n\n\t\tforget() {\n\t\t\tthis.value = undefined as unknown as Value\n\t\t}\n\n\t\tabort() {\n\t\t\tthis.forget()\n\t\t\treturn true\n\t\t}\n\n\t\tdestructor() {\n\t\t\tif( !this.abort() ) return\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\tplace : this , \n\t\t\t\tmessage : 'Destructed' ,\n\t\t\t})\n\n\t\t\tthis.complete()\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_atom2_value< Value >( task : ()=> Value, next?: Value ) : Value | undefined {\n\t\tconst cached = $mol_atom2.cached\n\t\ttry {\n\t\t\t$mol_atom2.cached = true\n\t\t\t$mol_atom2.cached_next = next\n\t\t\treturn task()\n\t\t} finally {\n\t\t\t$mol_atom2.cached = cached\n\t\t}\n\t}\n\n\texport class $mol_atom2< Value = any > extends $mol_fiber< Value > {\n\n\t\tstatic logs = false\n\n\t\tstatic get current() {\n\t\t\tconst atom = $mol_fiber.current\n\t\t\tif( atom instanceof $mol_atom2 ) return atom\n\t\t\treturn null\n\t\t}\n\n\t\tstatic cached = false\n\t\tstatic cached_next = undefined as any\n\n\t\tstatic reap_task = null as null | $mol_fiber\n\t\tstatic reap_queue = [] as $mol_atom2[]\n\n\t\tstatic reap( atom : $mol_atom2 ) {\n\n\t\t\tthis.reap_queue.push( atom )\n\n\t\t\tif( this.reap_task ) return\n\n\t\t\tthis.reap_task = $mol_fiber_defer( ()=> {\n\t\t\t\tthis.reap_task = null\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\t\n\t\t\t\t\tconst atom = this.reap_queue.pop()\n\t\t\t\t\tif( !atom ) break\n\t\t\t\t\t\n\t\t\t\t\tif( !atom.alone ) continue\n\t\t\t\t\t\n\t\t\t\t\tatom.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\n\t\t}\n\n\t\tslaves = [] as ( $mol_fiber | number | undefined )[]\n\t\t\n\t\trescue( master : $mol_atom2 , cursor : number ) {\n\n\t\t\tif(!( master instanceof $mol_atom2 )) return\n\t\t\t\n\t\t\tconst master_index = this.masters.length\n\t\t\tconst slave_index = this.masters[ cursor + 1 ] as number + 1\n\t\t\t\n\t\t\tmaster.slaves[ slave_index ] = master_index\n\t\t\tthis.masters.push( master , this.masters[ cursor + 1 ] )\n\t\t\t\n\t\t}\n\n\t\tsubscribe( promise : Promise ) {\n\t\t\tconst obsolete = ()=> this.obsolete()\n\t\t\treturn promise.then( obsolete , obsolete )\n\t\t}\n\n\t\tget() {\n\n\t\t\tif( $mol_atom2.cached ) {\n\n\t\t\t\tif( $mol_atom2.cached_next !== undefined ) {\n\t\t\t\t\tthis.push( $mol_atom2.cached_next )\n\t\t\t\t\t$mol_atom2.cached_next = undefined\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.value\n\t\t\t}\n\t\t\t\n\t\t\tconst value = super.get()\n\t\t\tif( value === undefined ) $mol_fail( new Error( `Not defined: ${ this }` ) )\n\t\t\t\n\t\t\treturn value\n\t\t}\n\n\t\tpull() {\n\t\t\t\n\t\t\tif( this.cursor === $mol_fiber_status.obsolete ) return super.pull()\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_come({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage: 'Check doubt masters' ,\n\t\t\t})\n\t\t\t\n\t\t\tconst masters = this.masters\n\n\t\t\tfor( let index = 0 ; index < masters.length ; index += 2 ) {\n\n\t\t\t\tconst master = masters[ index ] as $mol_atom2\n\t\t\t\tif( !master ) continue\n\n\t\t\t\ttry {\n\t\t\t\t\tmaster.get()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif( 'then' in error ) $mol_fail_hidden( error )\n\t\t\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\t}\n\n\t\t\t\tif( this.cursor as $mol_fiber_status !== $mol_fiber_status.obsolete ) continue\n\n\t\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this ,\n\t\t\t\t\tmessage : 'Obsoleted while checking' ,\n\t\t\t\t})\n\n\t\t\t\treturn super.pull()\n\t\t\t}\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_done({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Masters not changed' ,\n\t\t\t})\n\n\t\t\tthis.cursor = $mol_fiber_status.actual\n\n\t\t}\n\t\t\n\t\tget value() { return this._value }\n\t\tset value( next : Value ) {\n\n\t\t\tconst prev = this._value\n\n\t\t\tif( prev && this.$.$mol_owning_check( this , prev ) ) prev.destructor()\n\n\t\t\tif( next && this.$.$mol_owning_catch( this , next ) ) {\n\t\t\t\ttry{ next[ Symbol.toStringTag ] = this[ Symbol.toStringTag ] } catch {}\n\t\t\t\tnext[ $mol_object_field ] = this[ $mol_object_field ]\n\t\t\t}\n\n\t\t\tthis._value = next\n\t\t}\n\n\t\tget error() { return this._error }\n\t\tset error( next : null | Error | PromiseLike< Value > ) {\n\n\t\t\tconst prev = this._error\n\n\t\t\tif( prev && this.$.$mol_owning_check( this , prev ) ) prev.destructor()\n\n\t\t\tif( next && this.$.$mol_owning_catch( this , next ) ) {\n\t\t\t\tnext[ Symbol.toStringTag ] = this[ Symbol.toStringTag ]\n\t\t\t\tnext[ $mol_object_field ] = this[ $mol_object_field ]\n\t\t\t}\n\n\t\t\tthis._error = next\n\t\t}\n\n\t\tput( next : Value ) {\n\t\t\tthis.cursor = this.masters.length\n\t\t\tnext = this.push( next )\n\t\t\tthis.cursor = $mol_fiber_status.persist\n\t\t\treturn next\n\t\t}\n\n\t\tcomplete_master( master_index : number ) {\n\t\t\tif( this.masters[ master_index ] instanceof $mol_atom2 ) {\n\t\t\t\tif( master_index >= this.cursor ) this.disobey( master_index )\n\t\t\t} else {\n\t\t\t\tthis.disobey( master_index )\n\t\t\t}\n\t\t}\n\n\t\tobey( master : $mol_fiber , master_index : number ) : number {\n\t\t\treturn master.lead( this , master_index )\n\t\t}\n\n\t\tlead( slave : $mol_fiber , master_index : number ) {\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Leads' ,\n\t\t\t\tslave ,\n\t\t\t})\n\t\t\t\n\t\t\tconst slave_index = this.slaves.length\n\t\t\tthis.slaves[ slave_index ] = slave\n\t\t\tthis.slaves[ slave_index + 1 ] = master_index\n\t\t\t\n\t\t\treturn slave_index\n\t\t}\n\n\t\tdislead( slave_index : number ) {\n\n\t\t\tif( slave_index < 0 ) return // slave is fiber\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Disleads' ,\n\t\t\t\tslave : this.slaves[ slave_index ] ,\n\t\t\t})\n\n\t\t\tthis.slaves[ slave_index ] = undefined\n\t\t\tthis.slaves[ slave_index + 1 ] = undefined\n\n\t\t\t$mol_array_trim( this.slaves )\n\n\t\t\tif( this.cursor > $mol_fiber_status.persist && this.alone ) $mol_atom2.reap( this )\n\t\t}\n\n\t\tobsolete( master_index = -1 ) {\n\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tif( master_index >= this.cursor - 2 ) return\n\n\t\t\t\tconst path = [] as $mol_atom2[]\n\t\t\t\tlet current = this as $mol_atom2\n\t\t\t\t\n\t\t\t\tcollect : while( current ) {\n\t\t\t\t\tpath.push( current )\n\t\t\t\t\tcurrent = current.masters[ current.cursor - 2 ] as $mol_atom2\n\t\t\t\t}\n\n\t\t\t\tthis.$.$mol_fail( new Error( `Obsoleted while calculation \\n\\n${ path.join( '\\n' ) }\\n` ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( this.cursor === $mol_fiber_status.obsolete ) return\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Obsoleted' ,\n\t\t\t})\n\n\t\t\tif( this.cursor !== $mol_fiber_status.doubt ) this.doubt_slaves()\n\t\t\t\n\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\n\t\t}\n\n\t\tdoubt( master_index = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tif( master_index >= this.cursor - 2 ) return\n\n\t\t\t\tconst path = [] as $mol_atom2[]\n\t\t\t\tlet current = this as $mol_atom2\n\t\t\t\t\n\t\t\t\tcollect : while( current ) {\n\t\t\t\t\tpath.push( current )\n\t\t\t\t\tcurrent = current.masters[ current.cursor - 2 ] as $mol_atom2\n\t\t\t\t}\n\n\t\t\t\tthis.$.$mol_fail( new Error( `Doubted while calculation \\n\\n${ path.join( '\\n' ) }\\n` ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( this.cursor >= $mol_fiber_status.doubt ) return\n\t\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Doubted' ,\n\t\t\t})\n\n\t\t\tthis.cursor = $mol_fiber_status.doubt\n\t\t\t\n\t\t\tthis.doubt_slaves()\n\n\t\t}\n\n\t\tobsolete_slaves() {\n\t\t\tfor( let index = 0 ; index < this.slaves.length ; index += 2 ) {\n\t\t\t\tconst slave = this.slaves[ index ] as $mol_atom2\n\t\t\t\tif( slave ) slave.obsolete( this.slaves[ index + 1 ] as number )\n\t\t\t}\n\t\t}\n\n\t\tdoubt_slaves() {\n\t\t\tfor( let index = 0 ; index < this.slaves.length ; index += 2 ) {\n\t\t\t\tconst slave = this.slaves[ index ] as $mol_atom2\n\t\t\t\tif( slave ) slave.doubt( this.slaves[ index + 1 ] as number )\n\t\t\t}\n\t\t}\n\n\t\tget fresh() {\n\t\t\treturn ()=> {\n\t\t\t\tif( this.cursor !== $mol_fiber_status.actual ) return\n\n\t\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\t$mol_fiber_solid.run( ()=> this.update() )\n\t\t\t}\n\t\t}\n\n\t\tget alone() {\n\t\t\treturn this.slaves.length === 0\n\t\t}\n\t\t\n\t\tget derived() {\n\t\t\t\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tif( this.masters[ index ] ) return true\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\n\t\tdestructor() {\n\n\t\t\tif( !this.abort() ) return\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Destructed'\n\t\t\t} )\n\n\t\t\tthis.cursor = $mol_fiber_status.persist\n\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tthis.complete_master( index )\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\n}\n",null,null,"namespace $ {\n\n\texport class $mol_mem_force extends Object {\n\t\tconstructor(){ super() }\n\t\t$mol_mem_force = true\n\t\tstatic $mol_mem_force = true\n\t\tstatic toString() { return this.name }\n\t}\n\n\texport class $mol_mem_force_cache extends $mol_mem_force {}\n\texport class $mol_mem_force_update extends $mol_mem_force {}\n\texport class $mol_mem_force_fail extends $mol_mem_force_cache {}\n\n}\n","namespace $ {\n\n\texport let $mol_mem_cached = $mol_atom2_value\n\n\texport function $mol_mem_persist() {\n\n\t\tconst atom = $mol_atom2.current\n\t\tif( !atom ) return\n\t\t\n\t\tif( atom.hasOwnProperty( 'destructor' ) ) return\n\t\t\n\t\tatom.destructor = ()=> {}\n\t\t\n\t}\n\n\texport function $mol_mem<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tProp extends Extract< Host[ Field ] , ( next? : any )=> any >,\n\t>(\n\t\tproto : Host ,\n\t\tname : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Prop >\n\t) {\n\n\t\ttype Input = $mol_type_param< Prop , 0 >\n\t\ttype Output = $mol_type_result< Prop >\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( proto , name )\n\t\tconst orig = descr!.value! as Function\n\t\t\n\t\tconst store = new WeakMap< Host , $mol_atom2< Output > >()\n\n\t\tObject.defineProperty( proto , name + \"()\" , {\n\t\t\tget : function() {\n\t\t\t\treturn store.get( this )\n\t\t\t}\n\t\t} )\n\n\t\tconst get_cache = ( host : Host )=> {\n\t\t\t\n\t\t\tlet cache = store.get( host )!\n\t\t\tif( cache ) return cache\n\n\t\t\tlet cache2 = new $mol_atom2\n\t\t\tcache2.calculate = orig.bind( host )\n\t\t\tcache2[ Symbol.toStringTag ] = `${ host }.${ name }()`\n\t\t\tcache2.abort = ()=> {\n\t\t\t\tstore.delete( host )\n\t\t\t\tcache2.forget()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t$mol_owning_catch( host , cache2 )\n\t\t\tcache2[ $mol_object_field ] = name\n\t\t\tstore.set( host , cache2 )\n\n\t\t\treturn cache2\n\t\t}\n\n\t\tfunction value( this : Host , next? : Input , force? : $mol_mem_force ) {\n\t\t\t\t\n\t\t\tif( next === undefined ) {\n\t\t\t\t\n\t\t\t\tconst cache = get_cache( this )\n\t\t\t\tif( force === $mol_mem_force_cache ) return cache.obsolete( Number.NaN )\n\t\t\t\t\n\t\t\t\tif( $mol_atom2.current ) return cache.get()\n\t\t\t\telse return $mol_fiber.run( ()=> cache.get() )\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_fiber.run( ()=> {\n\t\t\t\tif( force === $mol_mem_force_fail ) return get_cache( this ).fail( next as any )\n\t\t\t\tif( force !== $mol_mem_force_cache ) next = orig.call( this , next )\n\t\t\t\treturn get_cache( this ).put( next )\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\treturn {\n\t\t\t... descr || {} ,\n\t\t\tvalue : Object.assign( value , { orig } )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic size( next? : {\n\t\t\twidth : number\n\t\t\theight : number\n\t\t} , force? : $mol_mem_force ) {\n\t\t\treturn next || {\n\t\t\t\twidth : self.innerWidth ,\n\t\t\t\theight : self.innerHeight ,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\tconst $mol_window_resize = ()=> {\n\t\t$mol_window.size( undefined , $mol_mem_force_cache )\n\t}\n\t\n\tself.addEventListener( 'resize' , $mol_fiber_root( $mol_window_resize ) )\n\t\n}\n","namespace $ {\n\n\texport function $mol_dict_key( value : any ) : any {\n\t\t\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\n\t\tif( Array.isArray( value ) ) return JSON.stringify( value )\n\t\tif( Object.getPrototypeOf( Object.getPrototypeOf( value ) ) === null ) return JSON.stringify( value )\n\t\t\n\t\treturn value\n\t}\n\t\n\texport class $mol_dict< Key , Value > extends Map< Key , Value > {\n\n\t\tget( key : Key ) {\n\t\t\treturn super.get( $mol_dict_key( key ) )\n\t\t}\n\n\t\thas( key : Key ) {\n\t\t\treturn super.has( $mol_dict_key( key ) )\n\t\t}\n\n\t\tset( key : Key , value : Value ) {\n\t\t\treturn super.set( $mol_dict_key( key ) , value )\n\t\t}\n\n\t\tdelete( key : Key ) {\n\t\t\treturn super.delete( $mol_dict_key( key ) )\n\t\t}\n\n\t\tforEach( back : ( value : Value , key : Key , dict : Map< Key , Value > ) => void , context? : any ) {\n\t\t\treturn super.forEach( ( val , key , dict )=> {\n\t\t\t\tif( typeof key === 'string' ) key = JSON.parse( key )\n\t\t\t\treturn back.call( this , val , key , dict )\n\t\t\t} , context )\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\tconst iterator = super[ Symbol.iterator ]()\n\t\t\t\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]() {\n\t\t\t\t\treturn this\n\t\t\t\t},\n\t\t\t\tnext() {\n\t\t\t\t\tconst iteration = iterator.next()\n\n\t\t\t\t\tif( !iteration.done ) {\n\t\t\t\t\t\tconst key = iteration.value[0]\n\t\t\t\t\t\tif( typeof key === 'string' ) iteration.value[0] = JSON.parse( key )\n\t\t\t\t\t}\n\n\t\t\t\t\treturn iteration\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_mem_key<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tProp extends Extract< Host[ Field ] , ( id : any , next? : any )=> any >,\n\t>(\n\t\tproto : Host ,\n\t\tname : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Prop >\n\t) : any {\n\n\t\ttype Key = $mol_type_param< Prop , 0 >\n\t\ttype Input = $mol_type_param< Prop , 1 >\n\t\ttype Output = $mol_type_result< Prop >\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( proto , name )\n\t\tconst value = descr!.value! as Function\n\t\t\n\t\tconst store = new WeakMap< Host , Map< Key , $mol_atom2 > >()\n\n\t\tObject.defineProperty( proto , name + \"()\" , {\n\t\t\tget : function() {\n\t\t\t\treturn store.get( this )\n\t\t\t}\n\t\t} )\n\n\t\tconst get_cache = ( host : Host , key : Key )=> {\n\t\t\t\n\t\t\tlet dict = store.get( host )!\n\t\t\tif( !dict ) store.set( host , dict = new $mol_dict )\n\t\t\t\n\t\t\tconst key_str = $mol_dict_key(key)\n\t\t\tlet cache = dict.get( key_str )\n\t\t\tif( cache ) return cache\n\n\t\t\tlet cache2 = new $mol_atom2\n\t\t\tcache2[ Symbol.toStringTag ] = `${ host }.${ name }(${key_str})`\n\t\t\tcache2.calculate = value.bind( host , key )\n\t\t\tcache2.abort = ()=> {\n\t\t\t\tdict.delete( key_str )\n\t\t\t\tif( dict.size === 0 ) store.delete( host )\n\t\t\t\tcache2.forget()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t$mol_owning_catch( host , cache2 )\n\t\t\tcache2[ $mol_object_field ] = name\n\t\t\tdict.set( key_str , cache2 )\n\n\t\t\treturn cache2\n\t\t}\n\t\t\n\t\treturn {\n\t\t\t\n\t\t\tvalue( key : Key , next? : Input , force? : $mol_mem_force ) {\n\t\t\t\t\n\t\t\t\tif( next === undefined ) {\n\t\t\t\t\t\n\t\t\t\t\tconst cache = get_cache( this , key )\n\t\t\t\t\tif( force === $mol_mem_force_cache ) return cache.obsolete()\n\n\t\t\t\t\tif( $mol_atom2.current ) return cache.get()\n\t\t\t\t\telse return $mol_fiber.run( ()=> cache.get() )\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fiber.run( ()=> {\n\t\t\t\t\t\n\t\t\t\t\tif( force === $mol_mem_force_fail ) return get_cache( this , key ).fail( next as any )\n\t\t\t\t\tif( force !== $mol_mem_force_cache ) next = value.call( this , key , next )\n\t\t\t\t\treturn get_cache( this , key ).put( next )\n\t\t\t\t\t\n\t\t\t\t} )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_atom2_autorun( calculate : ()=> any ) {\n\t\t\n\t\treturn $mol_atom2.create( atom => {\n\t\t\tatom.calculate = calculate\n\t\t\tatom.obsolete_slaves = atom.schedule\n\t\t\tatom.doubt_slaves = atom.schedule\n\t\t\tatom[ Symbol.toStringTag ] = calculate[ Symbol.toStringTag ] || calculate.name || '$mol_atom2_autorun'\n\t\t\tatom.schedule()\n\t\t} )\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_defer extends $mol_object {\n\t\t\n\t\tconstructor( public run : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_defer.add( this )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t$mol_defer.drop( this )\n\t\t}\n\t\t\n\t\tstatic all : $mol_defer[] = []\n\t\tstatic timer = null as any\n\t\t\n\t\tstatic scheduleNative : ( handler : ()=> void ) => any = ( typeof requestAnimationFrame == 'function' )\n\t\t\t? handler => requestAnimationFrame( handler )\n\t\t\t: handler => setTimeout( handler , 16 )\n\t\t\n\t\tstatic schedule() {\n\t\t\tif( this.timer ) return\n\t\t\t\n\t\t\tthis.timer = this.scheduleNative( ()=> {\n\t\t\t\tthis.timer = null\n\t\t\t\tthis.run()\n\t\t\t} )\n\t\t}\n\t\t\n\t\tstatic unschedule() {\n\t\t\tif( !this.timer ) return\n\t\t\t\n\t\t\tcancelAnimationFrame( this.timer )\n\t\t\tthis.timer = null\n\t\t}\n\t\t\n\t\tstatic add( defer : $mol_defer ) {\n\t\t\tthis.all.push( defer )\n\t\t\tthis.schedule()\n\t\t}\n\t\t\n\t\tstatic drop( defer : $mol_defer ) {\n\t\t\tvar index = this.all.indexOf( defer )\n\t\t\tif( index >= 0 ) this.all.splice( index , 1 )\n\t\t}\n\t\t\n\t\tstatic run() {\n\t\t\tif( this.all.length === 0 ) return\n\t\t\tthis.schedule()\n\t\t\tfor( var defer : $mol_defer | undefined ; defer = this.all.shift() ; ) defer.run()\n\t\t\t//this.unschedule()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[] ) : Element[] {\n\t\t\tif( next === undefined ) return [] as Element[]\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next[ 0 ] as HTMLElement\n\t\t\t\n\t\t\twhile( element ) {\n\t\t\t\tparents.push( element )\n\t\t\t\telement = element.parentNode as HTMLElement\n\t\t\t}\n\n\t\t\tnew $mol_defer( ()=> {\n\n\t\t\t\tconst element = $mol_mem_cached( ()=> this.focused() )![0] as HTMLElement\n\t\t\t\t\n\t\t\t\tif( element ) element.focus()\n\t\t\t\telse $mol_dom_context.blur()\n\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t\tstatic focus( event : FocusEvent ) {\n\t\t\tthis.focused( [ event.target as Element ] )\n\n\t\t}\n\t\t\n\t\tstatic blur( event : FocusEvent ) {\n\t\t\tconst elements = $mol_mem_cached( ()=> this.focused() )\n\t\t\tif( elements && elements[0] === event.target ) this.focused( [] )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\tif( $mol_dom_context.document ) {\n\n\t\t$mol_dom_context.document.documentElement.addEventListener(\n\t\t\t'focus' ,\n\t\t\t( event : FocusEvent )=> {\n\t\t\t\tnew $mol_after_tick(\n\t\t\t\t\t$mol_fiber_root(\n\t\t\t\t\t\t()=> $mol_view_selection.focus( event )\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t} ,\n\t\t\ttrue ,\n\t\t)\n\t\t\n\t\t$mol_dom_context.document.documentElement.addEventListener(\n\t\t\t'blur' ,\n\t\t\t( event : FocusEvent )=> {\n\t\t\t\tnew $mol_after_timeout( 0 ,\n\t\t\t\t\t$mol_fiber_root(\n\t\t\t\t\t\t()=> $mol_view_selection.blur( event )\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t} ,\n\t\t\ttrue ,\n\t\t)\n\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/ , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ { \n\texport function $mol_const< Value >( value : Value ) {\n\t\tvar getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\tgetter[ Symbol.toStringTag ] = value\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_attributes (\n\t\tel : Element ,\n\t\tattrs : { [ key : string ] : string|number|boolean|null }\n\t) {\n\n\t\tfor( let name in attrs ) {\n\n\t\t\tlet val = attrs[ name ] as any\n\n\t\t\tif( val === null || val === false ) {\n\n\t\t\t\tif( !el.hasAttribute( name ) ) continue\n\t\t\t\t\n\t\t\t\tel.removeAttribute( name )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst str = String( val )\n\t\t\t\tif( el.getAttribute( name ) === str ) continue\n\t\t\t\t\n\t\t\t\tel.setAttribute( name , str )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\tconst cacthed = new WeakMap< any , boolean >()\n\n\texport function $mol_fail_catch( error : object ) {\n\t\t\n\t\tif( cacthed.get( error ) ) return false\n\t\t\n\t\tcacthed.set( error , true )\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_styles (\n\t\tel : Element ,\n\t\tstyles : { [ key : string ] : string|number }\n\t) {\n\t\tfor( let name in styles ) {\n\t\t\tlet val = styles[ name ]\n\t\t\t\n\t\t\tconst style = ( el as HTMLElement ).style as any\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle[ name ] = `${ val }px`\n\t\t\t} else {\n\t\t\t\tstyle[ name ] = val\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_fields (\n\t\tel : Element ,\n\t\tfields : { [ key : string ] : any }\n\t) {\n\t\tfor( let key in fields ) {\n\t\t\t\n\t\t\tconst val : any = fields[ key ]\n\t\t\t\n\t\t\tif( val === undefined ) continue\n\t\t\t// if( el[ key ] === val ) continue\n\t\t\t\n\t\t\tel[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_memo extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object , Value >( task : ( this : This , next? : Value )=> Value ) {\n\n\t\t\tconst store = new WeakMap< This , Value >()\n\n\t\t\treturn function( this : This , next? : Value ) {\n\n\t\t\t\tif( next === undefined && store.has( this ) ) return store.get( this )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this , next ) ?? next\n\t\t\t\t\n\t\t\t\tstore.set( this , val! )\n\t\t\t\t\n\t\t\t\treturn val\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_func_name( this : $mol_ambient_context , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( this[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\treturn name\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_deprecated( message : string ) {\n\t\treturn <\n\t\t\tMethod extends ( this : Host , ... args : readonly any[] )=> any ,\n\t\t\tHost extends {\n\t\t\t\t[key in Field] : Method\n\t\t\t} & {\n\t\t\t\t$ : $mol_ambient_context\n\t\t\t},\n\t\t\tField extends keyof Host ,\n\t\t>(\n\t\t\thost : Host ,\n\t\t\tfield : Field ,\n\t\t\tdescr : TypedPropertyDescriptor< Method >\n\t\t)=> {\n\n\t\t\tconst value = descr.value!\n\t\t\tlet warned = false\n\t\t\t\n\t\t\tdescr.value = function $mol_deprecated_wrapper( this : Host , ... args : Parameters< Method > ) : ReturnType< Method > {\n\n\t\t\t\tif( !warned ) {\n\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\tplace: `${ host.constructor.name }::${ field }`,\n\t\t\t\t\t\tmessage: `Deprecated` ,\n\t\t\t\t\t\thint: message ,\n\t\t\t\t\t})\n\t\t\t\t\twarned = true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn value.call( this , ... args )\n\t\t\t\n\t\t\t} as any\n\n\t\t}\n\t}\n\t\n}\n",null,null,"namespace $ {\n\n\texport type $mol_view_content = $mol_view|Node|string|number|boolean\n\t\n\texport function $mol_view_visible_width() {\n\t\treturn $mol_window.size().width\n\t}\n\t\n\texport function $mol_view_visible_height() {\n\t\treturn $mol_window.size().height\n\t}\n\t\n\texport function $mol_view_state_key( suffix : string ) {\n\t\treturn suffix\n\t}\n\n\t/// Reactive statefull lazy ViewModel\n\texport class $mol_view extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic Root< This extends typeof $mol_view >( this : This , id: number ) {\n\t\t\treturn new this as InstanceType< This >\n\t\t}\n\n\t\t@ $mol_mem\n\t\tautorun() {\n\t\t\treturn $mol_atom2_autorun( ()=> {\n\t\t\t\tthis.dom_tree()\n\t\t\t\tdocument.title = this.title()\n\t\t\t\treturn this\n\t\t\t} )\n\t\t}\n\n\t\tstatic autobind() {\n\t\t\t\n\t\t\tconst nodes = $mol_dom_context.document.querySelectorAll( '[mol_view_root]' )\n\t\t\t\n\t\t\tfor( let i = nodes.length - 1 ; i >= 0 ; --i ) {\n\n\t\t\t\tconst name = nodes.item( i ).getAttribute( 'mol_view_root' )!\n\t\t\t\t\n\t\t\t\tconst View = $[ name ]\n\t\t\t\tif( !View ) {\n\t\t\t\t\tconsole.error( `Can not attach view. Class not found: ${ name }` )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst view = View.Root( i )\n\t\t\t\tview.dom_node( nodes.item( i ) )\n\t\t\t\tview.autorun()\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\ttitle() : string {\n\t\t\treturn this.constructor.toString()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tfocused( next?: boolean ) {\n\t\t\tlet node = this.dom_node()\n\t\t\tconst value = $mol_view_selection.focused( next === undefined ? undefined : ( next ? [ node ] : [] ) )\n\t\t\treturn value.indexOf( node ) !== -1\n\t\t} \n\t\t\n\t\tstate_key( suffix = '' ) {\n\t\t\treturn this.$.$mol_view_state_key( suffix )\n\t\t}\n\t\t\n\t\t/// Name of element that created when element not found in DOM\n\t\tdom_name() {\n\t\t\treturn $mol_dom_qname( this.constructor.toString() ) || 'div'\n\t\t}\n\t\t\n\t\t/// NameSpace of element that created when element not found in DOM\n\t\tdom_name_space() { return 'http://www.w3.org/1999/xhtml' }\n\t\t\n\t\t/// Raw child views\n\t\tsub() {\n\t\t\treturn [] as readonly ($mol_view|Node|string|number|boolean)[]\n\t\t}\n\t\t\n\t\t/// Visible sub views with defined ambient context\n\t\t/// Render all by default\n\t\tsub_visible() {\n\t\t\treturn this.sub()\n\t\t}\n\t\t\n\t\t/// Minimal width that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_width() {\n\t\t\tconst sub = this.sub()\n\t\t\tif( !sub ) return 0\n\t\t\t\n\t\t\tlet min = 0\n\t\t\tsub.forEach( view => {\n\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.minimal_width()\n\t\t}\n\t\t\n\t\t/// Minimal height that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\tfor( const view of this.sub() ?? [] ) {\n\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_height() )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} \n\t\t\t} catch( error ) {\n\t\t\t\tif( 'then' in error ) $mol_fail_hidden( error )\n\t\t\t}\n\t\t\t\n\t\t\treturn min\n\t\t}\n\n\t\tstatic watchers = new Set< $mol_view >()\n\n\t\t@ $mol_mem\n\t\tview_rect() {\n\t\t\tif( $mol_atom2.current ) this.view_rect_watcher()\n\t\t\treturn this.view_rect_cache()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_rect_cache( next = null as ClientRect | null ) {\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_rect_watcher() {\n\t\t\t$mol_view.watchers.add( this )\n\t\t\treturn { destructor : ()=> $mol_view.watchers.delete( this ) }\n\t\t}\n\n\t\tdom_id() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t\n\t\t\tconst node = next || $mol_dom_context.document.createElementNS( this.dom_name_space() , this.dom_name() )\n\n\t\t\tconst id = this.dom_id()\n\t\t\tnode.setAttribute( 'id' , id )\n\t\t\tnode.toString = $mol_const( '<#' + id + '>' )\n\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event()\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.addEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\t$mol_fiber_root( events[ event_name ] ) ,\n\t\t\t\t\t{ passive : false } as any ,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_tree( next? : Element ) : Element {\n\t\t\tconst node = this.dom_node( next )\n\t\t\t\n\t\t\ttry {\n\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : null } )\n\n\t\t\t\ttry {\n\t\t\t\t\n\t\t\t\t\tthis.render()\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tfor( let plugin of this.plugins() ) {\n\t\t\t\t\t\tif( plugin instanceof $mol_plugin ) {\n\t\t\t\t\t\t\tplugin.dom_tree()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : error.name || error.constructor.name } )\n\t\t\t\t\n\t\t\t\tif( error instanceof Promise ) {\n\t\t\t\t\t$mol_atom2.current!.subscribe( error )\n\t\t\t\t\treturn node\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\ttry { void( ( node as HTMLElement ).innerText = error.message ) } catch( e ) {}\n\t\t\t\t\tconsole.error( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node_actual() {\n\t\t\tconst node = this.dom_node()\n\n\t\t\t;( node as HTMLElement ).style.minHeight = this.minimal_height() + 'px'\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\t\t\tconst fields = this.field()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\t\t\t$mol_dom_render_fields( node , fields )\n\n\t\t\treturn node\n\t\t}\n\n\t\trender() {\n\n\t\t\tconst node = this.dom_node_actual()\n\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tconst nodes = sub.map( child => {\n\t\t\t\tif( child == null ) return null\n\t\t\t\treturn ( child instanceof $mol_view )\n\t\t\t\t\t? child.dom_node()\n\t\t\t\t\t: String( child )\n\t\t\t})\n\t\t\t\n\t\t\t$mol_dom_render_children( node , nodes )\n\n\t\t\tfor( const el of sub ) if( el && typeof el === 'object' && 'dom_tree' in el ) el['dom_tree']()\n\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tstatic view_classes() {\n\t\t\tconst proto = this.prototype\n\t\t\t\n\t\t\tlet current = proto\n\t\t\tconst classes = [] as ( typeof $mol_view )[]\n\t\t\t\n\t\t\twhile( current ) {\n\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\tif(!( current instanceof $mol_view )) break\n\t\t\t\tcurrent = Object.getPrototypeOf( current )\n\t\t\t}\n\t\t\t\n\t\t\treturn classes\n\t\t}\n\t\t\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this , $mol_view )\n\n\t\t\tif( owner instanceof $mol_view ) {\n\n\t\t\t\tconst suffix = this[ $mol_object_field ]\n\t\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\t\n\t\t\t\tfor( let Class of ( owner.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( let prefix of owner.view_names_owned() ) {\n\t\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_names() {\n\t\t\tconst names = [] as string[]\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) {\n\t\t\t\tif( names.indexOf( name ) < 0 ) names.push( name )\n\t\t\t}\n\n\t\t\tfor( let Class of ( this.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\tconst name = this.$.$mol_func_name( Class )\n\t\t\t\tif( !name ) continue\n\t\t\t\tif( names.indexOf( name ) < 0 ) names.push( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\tattr_static() : { [ key : string ] : string|number|boolean|null } {\n\t\t\tlet attrs : any = {}\n\t\t\t\n\t\t\tfor( let name of this.view_names() ) attrs[ name.replace( /\\$/g , '' ).replace( /^(?=\\d)/ , '_' ).toLowerCase() ] = ''\n\t\t\t\n\t\t\treturn attrs\n\t\t}\n\t\t\n\t\tattr() {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tstyle() : { [ key : string ] : string|number } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tfield() : { [ key : string ] : any } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_deprecated( 'Use $mol_view::event instead.' )\n\t\tevent_async() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t$mol_dev_format_shade( '/' ) ,\n\t\t\t\t$mol_dev_format_auto( $mol_mem_cached( ()=> this.sub() ) ) ,\n\t\t\t)\n\t\t}\n\n\t\t/** Deep search view by predicate. */\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( check( this ) ) return yield [ ... path, this ]\n\t\t\t\n\t\t\tfor( const item of this.sub() ) {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders path of views to DOM. */\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.sub()\n\n\t\t\tconst index = kids.findIndex( item => {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\treturn path.has( item )\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders view to DOM and scroll to it. */\n\t\tasync ensure_visible( view: $mol_view ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\t\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\tawait $mol_fiber_warp()\n\n\t\t\tview.dom_node().scrollIntoView()\n\n\t\t}\n\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $mol_ambient_context , typeof $mol_view >\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: background-color, height, width, min-height, min-width, max-width, max-height, transform;\\n\\ttransition-duration: .2s;\\n\\ttransition-timing-function: ease-out;\\n\\t-webkit-appearance: none;\\n\\tword-break: break-word;\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tcontain: style;\\n\\ttab-size: 4;\\n}\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_current);\\n}\\n\\n[mol_view] > * {\\n\\tword-break: inherit;\\n}\\n\\n[mol_view_root] {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\tfont: var(--mol_skin_font);\\n\\tbackground: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text);\\n}\\n\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t135deg,\\n\\t\\trgb(162, 90, 90),\\n\\t\\trgb(162, 90, 90) 11px,\\n\\t\\trgb(255,255,220) 10px,\\n\\t\\trgb(255,255,220) 20px\\n\\t);\\n\\tbackground-size: 28px 28px;\\n\\tcolor: black;\\n}\\n\\n@keyframes mol_view_wait_move {\\n\\tfrom {\\n\\t\\tbackground-position: 0 0;\\n\\t}\\n\\tto {\\n\\t\\tbackground-position: 200vmax 0;\\n\\t}\\n}\\n\\n@keyframes mol_view_wait_show {\\n\\tto {\\n\\t\\tbackground-image: repeating-linear-gradient(\\n\\t\\t\\t45deg,\\n\\t\\t\\thsla( 0 , 0% , 50% , .25 ) 0% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 5% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 45% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , .25 ) 50% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 55% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 95% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , .25 ) 100%\\n\\t\\t);\\n\\t\\tbackground-size: 200vmax 200vmax;\\n\\t}\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait_show .5s .5s linear forwards , mol_view_wait_move 1s linear infinite;\\n\\topacity: .75;\\n}\\n\"\n) }","interface Window {\n\tcordova : any\n}\n\nnamespace $ {\n\n\tif( $mol_dom_context.document ) {\n\n\t\t/// Autoattach view roots to loaded DOM.\n\t\tconst event_name = self.cordova ? 'deviceready' : 'DOMContentLoaded'\n\t\tPromise.resolve().then( $mol_fiber_root( ()=> {\n\t\t\t$mol_view.autobind()\n\t\t\t$mol_defer.run()\n\t\t} ) )\n\t\t\n\t\tfunction $mol_view_watch() {\n\t\t\t$mol_fiber_unlimit( ()=> {\n\t\t\t\tnew $mol_after_frame( watch )\n\t\t\t\tfor( const view of $mol_view.watchers ) {\n\t\t\t\t\tview.view_rect_cache( view.dom_node().getBoundingClientRect().toJSON() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tconst watch = $mol_fiber_root( $mol_view_watch )\n\n\t\twatch()\n\t\n\t}\n\t\n}\n",null,null,"namespace $ {\n\texport const $mol_colors = {\n\t\taliceblue : \"#f0f8ff\" ,\n\t\tantiquewhite : \"#faebd7\" ,\n\t\taqua : \"#00ffff\" ,\n\t\taquamarine : \"#7fffd4\" ,\n\t\tazure : \"#f0ffff\" ,\n\t\tbeige : \"#f5f5dc\" ,\n\t\tbisque : \"#ffe4c4\" ,\n\t\tblack : \"#000000\" ,\n\t\tblanchedalmond : \"#ffebcd\" ,\n\t\tblue : \"#0000ff\" ,\n\t\tblueviolet : \"#8a2be2\" ,\n\t\tbrown : \"#a52a2a\" ,\n\t\tburlywood : \"#deb887\" ,\n\t\tcadetblue : \"#5f9ea0\" ,\n\t\tchartreuse : \"#7fff00\" ,\n\t\tchocolate : \"#d2691e\" ,\n\t\tcoral : \"#ff7f50\" ,\n\t\tcornflowerblue : \"#6495ed\" ,\n\t\tcornsilk : \"#fff8dc\" ,\n\t\tcrimson : \"#dc143c\" ,\n\t\tcyan : \"#00ffff\" ,\n\t\tdarkblue : \"#00008b\" ,\n\t\tdarkcyan : \"#008b8b\" ,\n\t\tdarkgoldenrod : \"#b8860b\" ,\n\t\tdarkgray : \"#a9a9a9\" ,\n\t\tdarkgreen : \"#006400\" ,\n\t\tdarkgrey : \"#a9a9a9\" ,\n\t\tdarkkhaki : \"#bdb76b\" ,\n\t\tdarkmagenta : \"#8b008b\" ,\n\t\tdarkolivegreen : \"#556b2f\" ,\n\t\tdarkorange : \"#ff8c00\" ,\n\t\tdarkorchid : \"#9932cc\" ,\n\t\tdarkred : \"#8b0000\" ,\n\t\tdarksalmon : \"#e9967a\" ,\n\t\tdarkseagreen : \"#8fbc8f\" ,\n\t\tdarkslateblue : \"#483d8b\" ,\n\t\tdarkslategrey : \"#2f4f4f\" ,\n\t\tdarkturquoise : \"#00ced1\" ,\n\t\tdarkviolet : \"#9400d3\" ,\n\t\tdeeppink : \"#ff1493\" ,\n\t\tdeepskyblue : \"#00bfff\" ,\n\t\tdimgray : \"#696969\" ,\n\t\tdimgrey : \"#696969\" ,\n\t\tdodgerblue : \"#1e90ff\" ,\n\t\tfirebrick : \"#b22222\" ,\n\t\tfloralwhite : \"#fffaf0\" ,\n\t\tforestgreen : \"#228b22\" ,\n\t\tfuchsia : \"#ff00ff\" ,\n\t\tgainsboro : \"#dcdcdc\" ,\n\t\tghostwhite : \"#f8f8ff\" ,\n\t\tgold : \"#ffd700\" ,\n\t\tgoldenrod : \"#daa520\" ,\n\t\tgray : \"#808080\" ,\n\t\tgreen : \"#008000\" ,\n\t\tgreenyellow : \"#adff2f\" ,\n\t\tgrey : \"#808080\" ,\n\t\thoneydew : \"#f0fff0\" ,\n\t\thotpink : \"#ff69b4\" ,\n\t\tindianred : \"#cd5c5c\" ,\n\t\tindigo : \"#4b0082\" ,\n\t\tivory : \"#fffff0\" ,\n\t\tkhaki : \"#f0e68c\" ,\n\t\tlavender : \"#e6e6fa\" ,\n\t\tlavenderblush : \"#fff0f5\" ,\n\t\tlawngreen : \"#7cfc00\" ,\n\t\tlemonchiffon : \"#fffacd\" ,\n\t\tlightblue : \"#add8e6\" ,\n\t\tlightcoral : \"#f08080\" ,\n\t\tlightcyan : \"#e0ffff\" ,\n\t\tlightgoldenrodyellow : \"#fafad2\" ,\n\t\tlightgray : \"#d3d3d3\" ,\n\t\tlightgreen : \"#90ee90\" ,\n\t\tlightgrey : \"#d3d3d3\" ,\n\t\tlightpink : \"#ffb6c1\" ,\n\t\tlightsalmon : \"#ffa07a\" ,\n\t\tlightseagreen : \"#20b2aa\" ,\n\t\tlightskyblue : \"#87cefa\" ,\n\t\tlightslategray : \"#778899\" ,\n\t\tlightslategrey : \"#778899\" ,\n\t\tlightsteelblue : \"#b0c4de\" ,\n\t\tlightyellow : \"#ffffe0\" ,\n\t\tlime : \"#00ff00\" ,\n\t\tlimegreen : \"#32cd32\" ,\n\t\tlinen : \"#faf0e6\" ,\n\t\tmagenta : \"#ff00ff\" ,\n\t\tmaroon : \"#800000\" ,\n\t\tmediumaquamarine : \"#66cdaa\" ,\n\t\tmediumblue : \"#0000cd\" ,\n\t\tmediumorchid : \"#ba55d3\" ,\n\t\tmediumpurple : \"#9370db\" ,\n\t\tmediumseagreen : \"#3cb371\" ,\n\t\tmediumslateblue : \"#7b68ee\" ,\n\t\tmediumspringgreen : \"#00fa9a\" ,\n\t\tmediumturquoise : \"#48d1cc\" ,\n\t\tmediumvioletred : \"#c71585\" ,\n\t\tmidnightblue : \"#191970\" ,\n\t\tmintcream : \"#f5fffa\" ,\n\t\tmistyrose : \"#ffe4e1\" ,\n\t\tmoccasin : \"#ffe4b5\" ,\n\t\tnavajowhite : \"#ffdead\" ,\n\t\tnavy : \"#000080\" ,\n\t\toldlace : \"#fdf5e6\" ,\n\t\tolive : \"#808000\" ,\n\t\tolivedrab : \"#6b8e23\" ,\n\t\torange : \"#ffa500\" ,\n\t\torangered : \"#ff4500\" ,\n\t\torchid : \"#da70d6\" ,\n\t\tpalegoldenrod : \"#eee8aa\" ,\n\t\tpalegreen : \"#98fb98\" ,\n\t\tpaleturquoise : \"#afeeee\" ,\n\t\tpalevioletred : \"#db7093\" ,\n\t\tpapayawhip : \"#ffefd5\" ,\n\t\tpeachpuff : \"#ffdab9\" ,\n\t\tperu : \"#cd853f\" ,\n\t\tpink : \"#ffc0cb\" ,\n\t\tplum : \"#dda0dd\" ,\n\t\tpowderblue : \"#b0e0e6\" ,\n\t\tpurple : \"#800080\" ,\n\t\trebeccapurple : \"#663399\" ,\n\t\tred : \"#ff0000\" ,\n\t\trosybrown : \"#bc8f8f\" ,\n\t\troyalblue : \"#4169e1\" ,\n\t\tsaddlebrown : \"#8b4513\" ,\n\t\tsalmon : \"#fa8072\" ,\n\t\tsandybrown : \"#f4a460\" ,\n\t\tseagreen : \"#2e8b57\" ,\n\t\tseashell : \"#fff5ee\" ,\n\t\tsienna : \"#a0522d\" ,\n\t\tsilver : \"#c0c0c0\" ,\n\t\tskyblue : \"#87ceeb\" ,\n\t\tslateblue : \"#6a5acd\" ,\n\t\tslategray : \"#708090\" ,\n\t\tslategrey : \"#708090\" ,\n\t\tsnow : \"#fffafa\" ,\n\t\tspringgreen : \"#00ff7f\" ,\n\t\tsteelblue : \"#4682b4\" ,\n\t\ttan : \"#d2b48c\" ,\n\t\tteal : \"#008080\" ,\n\t\tthistle : \"#d8bfd8\" ,\n\t\ttomato : \"#ff6347\" ,\n\t\tturquoise : \"#40e0d0\" ,\n\t\tviolet : \"#ee82ee\" ,\n\t\twheat : \"#f5deb3\" ,\n\t\twhite : \"#ffffff\" ,\n\t\twhitesmoke : \"#f5f5f5\" ,\n\t\tyellow : \"#ffff00\" ,\n\t\tyellowgreen : \"#9acd32\" ,\n\t} as const\n}\n",null,null,null,null,"namespace $ {\n\n\texport function $mol_style_sheet<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig0 : Config ,\n\t) {\n\n\t\tlet rules = [] as string[]\n\n\t\tconst block = $mol_dom_qname( $mol_ambient({}).$mol_func_name( Component ) )\n\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\n\t\tconst make_class = ( prefix : string , path : string[] , config : typeof config0 )=> {\n\n\t\t\tconst props = [] as string[]\n\n\t\t\tconst selector = ( prefix : string , path : string[] )=> {\n\t\t\t\tif( path.length === 0 ) return prefix || `[${ block }]`\n\t\t\t\treturn `${ prefix ? prefix + ' ' : '' }[${ block }_${ path.join('_') }]`\n\t\t\t}\n\t\t\t\n\t\t\tfor( const key of Object.keys( config ).reverse() ) {\n\n\t\t\t\tif( /^[a-z]/.test(key) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst addProp = ( keys : string[] , val : any )=> {\n\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\n\t\t\t\t\t\t\tif( val[0] && [ Array , Object ].includes( val[0].constructor ) ) {\n\t\t\t\t\t\t\t\tval = val.map( v => {\n\t\t\t\t\t\t\t\t\treturn Object.entries( v ).map( ([ n , a ])=> {\n\t\t\t\t\t\t\t\t\t\tif( a === true ) return kebab( n )\n\t\t\t\t\t\t\t\t\t\tif( a === false ) return null\n\t\t\t\t\t\t\t\t\t\treturn String( a )\n\t\t\t\t\t\t\t\t\t} ).filter( Boolean ).join(' ')\n\t\t\t\t\t\t\t\t}).join( ',' )\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tval = val.join(' ')\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t} else if( val.constructor === Object ) {\n\n\t\t\t\t\t\t\tfor( let suffix in val ) {\n\t\t\t\t\t\t\t\taddProp( [ ... keys , kebab( suffix ) ] , val[ suffix ] )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\taddProp( [ kebab(key) ] , config[key] )\n\n\t\t\t\t} else if( /^[A-Z]/.test(key) ) {\n\n\t\t\t\t\tmake_class( prefix , [ ... path , key.toLowerCase() ] , config[key] )\n\n\t\t\t\t} else if( key[0] === '$' ) {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + ' [' + $mol_dom_qname( key ) + ']' , [] , config[key] )\n\n\t\t\t\t} else if( key === '>' ) {\n\n\t\t\t\t\tconst types = config[key] as any\n\n\t\t\t\t\tfor( let type in types ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ' > [' + $mol_dom_qname( type ) + ']' , [] , types[type] )\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@' ) {\n\n\t\t\t\t\tconst attrs = config[key] as any\n\n\t\t\t\t\tfor( let name in attrs ) {\n\t\t\t\t\t\tfor( let val in attrs[name] ) {\n\t\t\t\t\t\t\tmake_class( selector( prefix , path ) + '[' + name + '=' + JSON.stringify( val ) + ']' , [] , attrs[name][val] )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@media' ) {\n\n\t\t\t\t\tconst media = config[key] as any\n\n\t\t\t\t\tfor( let query in media ) {\n\n\t\t\t\t\t\trules.push('}\\n')\n\t\t\t\t\t\t\n\t\t\t\t\t\tmake_class( prefix , path , media[query] )\n\t\t\t\t\t\t\n\t\t\t\t\t\trules.push( `${ key } ${ query } {\\n` )\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + key , [] , config[key] )\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tif( props.length ) {\n\t\t\t\trules.push( `${ selector( prefix , path ) } {\\n${ props.reverse().join('') }}\\n` )\n\t\t\t}\n\n\t\t}\n\n\t\tmake_class( '' , [] , config0 )\n\n\t\treturn rules.reverse().join('')\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_style_define<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig : Config ,\n\t) {\n\n\t\treturn $mol_style_attach(\n\t\t\tComponent.name,\n\t\t\t$mol_style_sheet( Component , config ),\n\t\t)\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_scroll extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * minimal_height 0\n\t\t * ```\n\t\t */\n\t\tminimal_height() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * _event_scroll_timer?val null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\t_event_scroll_timer(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * field *\n\t\t * \t^\n\t\t * \tscrollTop <= scroll_top?val\n\t\t * \tscrollLeft <= scroll_left?val\n\t\t * \ttabIndex <= tabindex\n\t\t * ```\n\t\t */\n\t\tfield() {\n\t\t\treturn {\n\t\t\t\t...super.field(),\n\t\t\t\tscrollTop: this.scroll_top(),\n\t\t\t\tscrollLeft: this.scroll_left(),\n\t\t\t\ttabIndex: this.tabindex()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event *\n\t\t * \t^\n\t\t * \tscroll?event <=> event_scroll?event\n\t\t * ```\n\t\t */\n\t\tevent() {\n\t\t\treturn {\n\t\t\t\t...super.event(),\n\t\t\t\tscroll: (event?: any) => this.event_scroll(event)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * scroll_top?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tscroll_top(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * scroll_left?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tscroll_left(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * tabindex -1\n\t\t * ```\n\t\t */\n\t\ttabindex() {\n\t\t\treturn -1\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event_scroll?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tevent_scroll(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_state_session< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.sessionStorage\n\t\t\t\tif( !native ) break check\n\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn this[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\tthis[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\tthis[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >( key : string , next? : Value ) : Value {\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) this.native().removeItem( key )\n\t\t\telse this.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_session.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\n\tconst { per , rem , px } = $mol_style_unit\n\n\t$mol_style_define( $mol_scroll , {\n\n\t\tdisplay: 'flex',\n\t\toverflow: 'auto',\n\t\tflex: {\n\t\t\tdirection: 'column',\n\t\t\tgrow: 1,\n\t\t\tshrink: 1,\n\t\t\tbasis: 0,\n\t\t},\n\t\toutline: 'none',\n\t\talignSelf: 'stretch',\n\t\tboxSizing: 'border-box',\n\t\twillChange: 'scroll-position',\n\t\tmaxHeight: per(100),\n\t\tmaxWidth: per(100),\n\t\twebkitOverflowScrolling: 'touch',\n\t\tcontain: 'content',\n\n\t\t'>': {\n\t\t\t$mol_view: {\n\t\t\t\ttransform: 'translateZ(0)', // enforce gpu scroll in all agents\n\t\t\t},\n\t\t},\n\n\t\tscrollbar: {\n\t\t\tcolor: [ $mol_theme.line , 'transparent' ],\n\t\t},\n\t\n\t\t'::-webkit-scrollbar': {\n\t\t\twidth: rem(.5),\n\t\t\theight: rem(.5),\n\t\t},\n\t\t\n\t\t'::-webkit-scrollbar-corner': {\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.line,\n\t\t\t},\n\t\t},\n\n\t\t'::-webkit-scrollbar-track': {\n\t\t\tbackground: {\n\t\t\t\tcolor: 'transparent',\n\t\t\t},\n\t\t},\n\n\t\t'::-webkit-scrollbar-thumb': {\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.line,\n\t\t\t},\n\t\t},\n\n\t\t'@media' : {\n\t\t\t'print' : {\n\t\t\t\toverflow: 'visible',\n\t\t\t},\n\t\t},\n\n\t})\n\n}\n","namespace $.$$ {\n\t\n\texport class $mol_scroll extends $.$mol_scroll {\n\n\t\t@ $mol_mem\n\t\tscroll_top( next? : number ) {\n\t\t\treturn $mol_state_session.value( `${ this }.scroll_top()` , next ) || 0\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_left( next? : number ) {\n\t\t\treturn $mol_state_session.value( `${ this }.scroll_left()` , next ) || 0\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\t_event_scroll_timer( next? : $mol_after_timeout | null ) {\n\t\t\treturn next\n\t\t}\n\n\t\tevent_scroll( next? : Event ) {\n\t\t\t\n\t\t\tthis._event_scroll_timer()?.destructor()\n\n\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\n\t\t\tthis._event_scroll_timer( new $mol_after_timeout( 200 , $mol_fiber_solid.func( ()=> {\n\n\t\t\t\tthis.scroll_top( Math.max( 0 , el.scrollTop ) )\n\t\t\t\tthis.scroll_left( Math.max( 0 , el.scrollLeft ) )\n\n\t\t\t} ) ) )\n\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport class $mol_list extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * render_visible_only true\n\t\t * ```\n\t\t */\n\t\trender_visible_only() {\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * render_over 0\n\t\t * ```\n\t\t */\n\t\trender_over() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub <= rows\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn this.rows()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Empty $mol_view\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tEmpty() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Gap_before $mol_view style * paddingTop <= gap_before\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tGap_before() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.style = () => ({\n\t\t\t\tpaddingTop: this.gap_before()\n\t\t\t})\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Gap_after $mol_view style * paddingTop <= gap_after\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tGap_after() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.style = () => ({\n\t\t\t\tpaddingTop: this.gap_after()\n\t\t\t})\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * view_window /\n\t\t * \t0\n\t\t * \t0\n\t\t * ```\n\t\t */\n\t\tview_window() {\n\t\t\treturn [\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * rows /$mol_view\n\t\t * ```\n\t\t */\n\t\trows() {\n\t\t\treturn [\n\n\t\t\t] as readonly $mol_view[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * gap_before 0\n\t\t * ```\n\t\t */\n\t\tgap_before() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * gap_after 0\n\t\t * ```\n\t\t */\n\t\tgap_after() {\n\t\t\treturn 0\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_support_css_overflow_anchor( this: $mol_ambient_context ) {\n\t\treturn this.$mol_dom_context.CSS?.supports( 'overflow-anchor:auto' ) ?? false\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_dom_listener extends $mol_object {\n\n\t\tconstructor(\n\t\t\tpublic _node : any ,\n\t\t\tpublic _event : string ,\n\t\t\tpublic _handler : ( event : any )=> any ,\n\t\t\tpublic _config : boolean|{ passive : boolean } = { passive : true }\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis._node.addEventListener( this._event , this._handler , this._config )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis._node.removeEventListener( this._event , this._handler , this._config )\n\t\t\tsuper.destructor()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_print extends $mol_object {\n\n\t\t@ $mol_mem\n\t\tstatic before() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'beforeprint' , ()=> {\n\t\t\t\tthis.active( true )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic after() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'afterprint' , ()=> {\n\t\t\t\tthis.active( false )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic active( next? : boolean ) {\n\t\t\tthis.before()\n\t\t\tthis.after()\n\t\t\treturn next || false\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/list/list.view.css\",\n \"[mol_list] {\\n\\twill-change: contents;\\n\\tdisplay: block;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\t/* display: flex;\\n\\talign-items: stretch;\\n\\talign-content: stretch; */\\n\\ttransition: none;\\n\\tmin-height: .5rem;\\n}\\n\\n[mol_list_gap_before] ,\\n[mol_list_gap_after] {\\n\\tdisplay: block !important;\\n\\tflex: none;\\n\\ttransition: none;\\n\\toverflow-anchor: none;\\n}\\n \\n[mol_list] > * {\\n\\tdisplay: flex;\\n}\\n\"\n) }","namespace $.$$ {\n\n\texport class $mol_list extends $.$mol_list {\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\tconst rows = this.rows()\n\t\t\treturn ( rows.length === 0 ) ? [ this.Empty() ] : rows\n\t\t}\n\n\t\trender_visible_only() {\n\t\t\treturn this.$.$mol_support_css_overflow_anchor()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_window() : [ number , number ] {\n\t\t\t\n\t\t\tconst kids = this.sub()\n\t\t\t\n\t\t\tif( kids.length < 3 ) return [ 0 , kids.length ]\n\t\t\tif( this.$.$mol_print.active() ) return [ 0 , kids.length ]\n\t\t\t\n\t\t\tlet [ min , max ] = $mol_mem_cached( ()=> this.view_window() ) ?? [ 0 , 0 ]\n\n\t\t\tlet max2 = max = Math.min( max , kids.length )\n\t\t\tlet min2 = min = Math.max( 0 , Math.min( min , max - 1 ) )\n\t\t\t\n\t\t\tconst anchoring = this.render_visible_only()\n\t\t\tconst window_height = this.$.$mol_window.size().height + 40\n\t\t\tconst over = Math.ceil( window_height * this.render_over() )\n\t\t\tconst limit_top = -over\n\t\t\tconst limit_bottom = window_height + over\n\n\t\t\tconst rect = this.view_rect()\n \n\t\t\tconst gap_before = $mol_mem_cached( ()=> this.gap_before() ) ?? 0\n\t\t\tconst gap_after = $mol_mem_cached( ()=> this.gap_after() ) ?? 0\n\n\t\t\tlet top = Math.ceil( rect?.top ?? 0 ) + gap_before\n\t\t\tlet bottom = Math.ceil( rect?.bottom ?? 0 ) - gap_after\n\n\t\t\t// change nothing when already covers all limits\n\t\t\tif( top <= limit_top && bottom >= limit_bottom ) {\n\t\t\t\treturn [ min2 , max2 ]\n\t\t\t}\n\n\t\t\t// jumps when fully over limits\n\t\t\tif( anchoring && (( bottom < limit_top )||( top > limit_bottom )) ) {\n\n\t\t\t\tmin = 0\n\t\t\t\ttop = Math.ceil( rect?.top ?? 0 )\n\t\t\t\t\n\t\t\t\twhile( min < ( kids.length - 1 ) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst height = kids[ min ].minimal_height()\n\t\t\t\t\tif( top + height >= limit_top ) break\n\t\t\t\t\t\n\t\t\t\t\ttop += height\n\t\t\t\t\t++ min\n\n\t\t\t\t}\n\n\t\t\t\tmin2 = min\n\t\t\t\tmax2 = max = min\n\t\t\t\tbottom = top\n\n\t\t\t}\n\n\t\t\tlet top2 = top\n\t\t\tlet bottom2 = bottom\n\n\t\t\t// force recalc min when overlapse top limit\n\t\t\tif( anchoring && ( top <= limit_top ) && ( bottom2 < limit_bottom ) ) {\n\t\t\t\tmin2 = max\n\t\t\t\ttop2 = bottom\n\t\t\t}\n\n\t\t\t// force recalc max when overlapse bottom limit\n\t\t\tif( ( bottom >= limit_bottom ) && ( top2 >= limit_top ) ) {\n\t\t\t\tmax2 = min\n\t\t\t\tbottom2 = top\n\t\t\t}\n\n\t\t\t// extend max to cover bottom limit\n\t\t\twhile( bottom2 < limit_bottom && max2 < kids.length ) {\n\t\t\t\tbottom2 += kids[ max2 ].minimal_height()\n\t\t\t\t++ max2\n\t\t\t}\n\n\t\t\t// extend min to cover top limit\n\t\t\twhile( anchoring && (( top2 >= limit_top )&&( min2 > 0 )) ) {\n\t\t\t\t-- min2\n\t\t\t\ttop2 -= kids[ min2 ].minimal_height()\n\t\t\t}\n\n\t\t\treturn [ min2 , max2 ]\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgap_before() {\n\t\t\tconst skipped = this.sub().slice( 0 , this.view_window()[0] )\n\t\t\treturn Math.max( 0 , skipped.reduce( ( sum , view )=> sum + view.minimal_height() , 0 ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgap_after() {\n\t\t\tconst skipped = this.sub().slice( this.view_window()[1] )\n\t\t\treturn Math.max( 0 , skipped.reduce( ( sum , view )=> sum + view.minimal_height() , 0 ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub_visible() {\n\n\t\t\tvar sub = this.sub()\n\n\t\t\tconst next = sub.slice( ... this.view_window() )\n\t\t\t\n\t\t\tif( this.gap_before() ) next.unshift( this.Gap_before() )\n\t\t\tif( this.gap_after() ) next.push( this.Gap_after() )\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\n\t\t\treturn this.sub().reduce( ( sum , view )=> {\n\n\t\t\t\ttry {\n\n\t\t\t\t\treturn sum + view.minimal_height() \n\n\t\t\t\t} catch( error ) {\n\n\t\t\t\t\tif( error instanceof Promise ) {\n\t\t\t\t\t\t$mol_atom2.current!.subscribe( error )\n\t\t\t\t\t} else if( $mol_fail_catch( error ) ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t}\n\n\t\t\t\t\treturn sum\n\t\t\t\t}\n\n\t\t\t} , 0 )\n\n\t\t}\n\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.rows()\n\n\t\t\tconst index = kids.findIndex( item => path.has( item ) )\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\tconst win = this.view_window()\n\t\t\t\tif( index < win[0] || index >= win[1] ) {\n\t\t\t\t\t$mol_mem_cached( ()=> this.view_window(), [ index, index + 1 ] )\n\t\t\t\t}\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_plugin extends $mol_view {\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\n\t\t\tconst node = next || $mol_owning_get( this , $mol_view )!.dom_node()\n\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\n\t\t\tconst events = this.event()\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.addEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\t$mol_fiber_root( events[ event_name ] ) ,\n\t\t\t\t\t{ passive : false } as any ,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn node\n\t\t}\n\n\t\tattr_static() : { [ key : string ] : string|number|boolean } {\n\t\t\treturn {}\n\t\t}\n\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\trender() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport class $mol_meter extends $mol_plugin {\n\n\t\t/**\n\t\t * ```tree\n\t\t * zoom 1\n\t\t * ```\n\t\t */\n\t\tzoom() {\n\t\t\treturn 1\n\t\t}\n\n\n\t\t/**\n\t\t * ```tree\n\t\t * width?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\twidth(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * height?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\theight(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\n\t\t/**\n\t\t * ```tree\n\t\t * left?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tleft(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * right?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tright(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bottom?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tbottom(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * top?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\ttop(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\t}\n\n}\n","namespace $.$$ {\n\texport class $mol_meter extends $.$mol_meter {\n\t\t\n\t\t@ $mol_mem\n\t\trect() {\n\t\t\tconst node = this.dom_node()\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\t\n\t\t\tif( node !== $mol_dom_context.document.body ) {\n\t\t\t\tnew $mol_after_frame( $mol_atom2.current!.fresh )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst { left , top , right , bottom , width , height } = node.getBoundingClientRect()\n\t\t\t\t\treturn { left , top , right , bottom , width , height , zoom : win.devicePixelRatio || 1 }\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t// IE11\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst size = $mol_window.size()\n\t\t\treturn {\n\t\t\t\tzoom : win.devicePixelRatio || 1 ,\n\t\t\t\tleft : 0 ,\n\t\t\t\ttop : 0 ,\n\t\t\t\tright : size.width ,\n\t\t\t\tbottom : size.height ,\n\t\t\t\twidth : size.width ,\n\t\t\t\theight : size.height ,\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttop() {\n\t\t\treturn this.rect().top\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbottom() {\n\t\t\treturn this.rect().bottom\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tleft() {\n\t\t\treturn this.rect().left\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tright() {\n\t\t\treturn this.rect().right\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\twidth() {\n\t\t\treturn this.rect().width\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\theight() {\n\t\t\treturn this.rect().height\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tzoom() {\n\t\t\treturn this.rect().zoom\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_pop extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * event * keydown?event <=> keydown?event\n\t\t * ```\n\t\t */\n\t\tevent() {\n\t\t\treturn {\n\t\t\t\tkeydown: (event?: any) => this.keydown(event)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * showed?val false\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tshowed(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn false\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * plugins /$mol_plugin <= Meter\n\t\t * ```\n\t\t */\n\t\tplugins() {\n\t\t\treturn [\n\t\t\t\tthis.Meter()\n\t\t\t] as readonly $mol_plugin[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub /\n\t\t * \t<= Anchor\n\t\t * \t<= Bubble\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Anchor(),\n\t\t\t\tthis.Bubble()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * keydown?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tkeydown(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Meter $mol_meter\n\t\t * \ttop => top\n\t\t * \tbottom => bottom\n\t\t * \tleft => left\n\t\t * \tright => right\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tMeter() {\n\t\t\tconst obj = new this.$.$mol_meter()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * top\n\t\t * ```\n\t\t */\n\t\ttop() {\n\t\t\treturn this.Meter().top()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bottom\n\t\t * ```\n\t\t */\n\t\tbottom() {\n\t\t\treturn this.Meter().bottom()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * left\n\t\t * ```\n\t\t */\n\t\tleft() {\n\t\t\treturn this.Meter().left()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * right\n\t\t * ```\n\t\t */\n\t\tright() {\n\t\t\treturn this.Meter().right()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Anchor null\n\t\t * ```\n\t\t */\n\t\tAnchor() {\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * align \\bottom_center\n\t\t * ```\n\t\t */\n\t\talign() {\n\t\t\treturn \"bottom_center\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bubble_content /$mol_view_content\n\t\t * ```\n\t\t */\n\t\tbubble_content() {\n\t\t\treturn [\n\n\t\t\t] as readonly $mol_view_content[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * height_max 9999\n\t\t * ```\n\t\t */\n\t\theight_max() {\n\t\t\treturn 9999\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Bubble $mol_pop_bubble\n\t\t * \talign <= align\n\t\t * \tcontent <= bubble_content\n\t\t * \theight_max <= height_max\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tBubble() {\n\t\t\tconst obj = new this.$.$mol_pop_bubble()\n\n\t\t\tobj.align = () => this.align()\n\t\t\tobj.content = () => this.bubble_content()\n\t\t\tobj.height_max = () => this.height_max()\n\n\t\t\treturn obj\n\t\t}\n\t}\n\n\texport class $mol_pop_bubble extends $mol_scroll {\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub <= content\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn this.content()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * style *\n\t\t * \t^\n\t\t * \tmaxHeight <= height_max\n\t\t * ```\n\t\t */\n\t\tstyle() {\n\t\t\treturn {\n\t\t\t\t...super.style(),\n\t\t\t\tmaxHeight: this.height_max()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * attr *\n\t\t * \t^\n\t\t * \tmol_pop_align <= align\n\t\t * \ttabindex 0\n\t\t * ```\n\t\t */\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\t...super.attr(),\n\t\t\t\tmol_pop_align: this.align(),\n\t\t\t\ttabindex: 0\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * content /$mol_view_content\n\t\t * ```\n\t\t */\n\t\tcontent() {\n\t\t\treturn [\n\n\t\t\t] as readonly $mol_view_content[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * height_max 9999\n\t\t * ```\n\t\t */\n\t\theight_max() {\n\t\t\treturn 9999\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * align \\\n\t\t * ```\n\t\t */\n\t\talign() {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n}\n","namespace $ {\n export enum $mol_keyboard_code {\n backspace = 8,\n tab = 9,\n enter = 13,\n shift= 16,\n ctrl = 17,\n alt = 18,\n pause = 19,\n capsLock = 20,\n escape = 27,\n space = 32,\n pageUp = 33,\n pageDown = 34,\n end = 35,\n home = 36,\n left = 37,\n up = 38,\n right = 39,\n down = 40,\n insert = 45,\n delete = 46,\n key0 = 48,\n key1 = 49,\n key2 = 50,\n key3 = 51,\n key4 = 52,\n key5 = 53,\n key6 = 54,\n key7 = 55,\n key8 = 56,\n key9 = 57,\n A = 65,\n B = 66,\n C = 67,\n D = 68,\n E = 69,\n F = 70,\n G = 71,\n H = 72,\n I = 73,\n J = 74,\n K = 75,\n L = 76,\n M = 77,\n N = 78,\n O = 79,\n P = 80,\n Q = 81,\n R = 82,\n S = 83,\n T = 84,\n U = 85,\n V = 86,\n W = 87,\n X = 88,\n Y = 89,\n Z = 90,\n metaLeft = 91,\n metaRight = 92,\n select = 93,\n numpad0 = 96,\n numpad1 = 97,\n numpad2 = 98,\n numpad3 = 99,\n numpad4 = 100,\n numpad5 = 101,\n numpad6 = 102,\n numpad7 = 103,\n numpad8 = 104,\n numpad9 = 105,\n multiply = 106,\n add = 107,\n subtract = 109,\n decimal = 110,\n divide = 111,\n F1 = 112,\n F2 = 113,\n F3 = 114,\n F4 = 115,\n F5 = 116,\n F6 = 117,\n F7 = 118,\n F8 = 119,\n F9 = 120,\n F10 = 121,\n F11 = 122,\n F12 = 123,\n numLock = 144,\n scrollLock = 145,\n semicolon = 186,\n equals = 187,\n comma = 188,\n dash = 189,\n period = 190,\n forwardSlash = 191,\n graveAccent = 192,\n bracketOpen = 219,\n slashBack = 220,\n slashBackLeft = 226,\n bracketClose = 221,\n quoteSingle = 222\n }\n}\n","namespace $ { $mol_style_attach( \"mol/pop/pop.view.css\",\n \"[mol_pop] {\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n}\\n\\n[mol_pop]:hover {\\n\\tz-index: 4;\\n}\\n\\n[mol_pop_bubble] {\\n\\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\\n\\tborder-radius: var(--mol_skin_round);\\n\\tposition: absolute;\\n\\tz-index: 3;\\n\\tbackground: var(--mol_theme_back);\\n\\tmax-width: none;\\n\\tmax-height: none;\\n\\toverflow: hidden;\\n\\toverflow-y: auto;\\n\\tword-break: normal;\\n}\\n\\n[mol_pop_bubble][mol_scroll] {\\n\\tbackground: var(--mol_theme_back);\\n}\\n\\n[mol_pop_bubble]:focus {\\n\\toutline: none;\\n}\\n\\n[mol_pop_align=\\\"left_top\\\"] {\\n\\ttransform: translate(-100%);\\n\\tleft: 0;\\n\\tbottom: 0;\\n}\\n\\n[mol_pop_align=\\\"left_center\\\"] {\\n\\ttransform: translate(-100%, -50%);\\n\\tleft: 0;\\n\\ttop: 50%;\\n}\\n\\n[mol_pop_align=\\\"left_bottom\\\"] {\\n\\ttransform: translate(-100%);\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n[mol_pop_align=\\\"right_top\\\"] {\\n\\ttransform: translate(100%);\\n\\tright: 0;\\n\\tbottom: 0;\\n}\\n\\n[mol_pop_align=\\\"right_center\\\"] {\\n\\ttransform: translate(100%, -50%);\\n\\tright: 0;\\n\\ttop: 50%;\\n}\\n\\n[mol_pop_align=\\\"right_bottom\\\"] {\\n\\ttransform: translate(100%);\\n\\tright: 0;\\n\\ttop: 0;\\n}\\n\\n[mol_pop_align=\\\"center\\\"] {\\n\\tleft: 50%;\\n\\ttop: 50%;\\n\\ttransform: translate(-50%, -50%);\\n}\\n\\n[mol_pop_align=\\\"top_left\\\"] {\\n\\tright: 0;\\n\\tbottom: 100%;\\n}\\n\\n[mol_pop_align=\\\"top_center\\\"] {\\n\\ttransform: translate(-50%);\\n\\tleft: 50%;\\n\\tbottom: 100%;\\n}\\n\\n[mol_pop_align=\\\"top_right\\\"] {\\n\\tleft: 0;\\n\\tbottom: 100%;\\n}\\n\\n[mol_pop_align=\\\"bottom_left\\\"] {\\n\\tright: 0;\\n\\ttop: 100%;\\n}\\n\\n[mol_pop_align=\\\"bottom_center\\\"] {\\n\\ttransform: translate(-50%);\\n\\tleft: 50%;\\n\\ttop: 100%;\\n}\\n\\n[mol_pop_align=\\\"bottom_right\\\"] {\\n\\tleft: 0;\\n\\ttop: 100%;\\n}\\n\"\n) }","namespace $.$$ {\n\texport class $mol_pop extends $.$mol_pop {\n\t\t\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Anchor() ,\n\t\t\t\t... this.showed() ? [ this.Bubble() ] : [] ,\n\t\t\t]\n\t\t}\n\t\t\n\t\theight_max() {\n\t\t\treturn this.$.$mol_window.size().height * 0.33;\n\t\t}\n\n\t\talign() {\n\t\t\tconst viewport = this.$.$mol_window.size()\n\t\t\t\n\t\t\tconst vert = this.top() > ( viewport.height - this.bottom() ) ? 'top' : 'bottom'\n\t\t\tconst hor = this.left() > ( viewport.width - this.right() ) ? 'left' : 'right'\n\t\t\t\n\t\t\treturn `${ vert }_${ hor }`\n\t\t}\n\n\t\tkeydown( event : KeyboardEvent ) {\n\n\t\t\tif( event.defaultPrevented ) return \n\t\t\t\n\t\t\tif( event.keyCode === $mol_keyboard_code.escape ) {\n\t\t\t\tif( !this.showed() ) return\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.showed( false )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_pop_over extends $mol_pop {\n\n\t\t/**\n\t\t * ```tree\n\t\t * showed <= hovered?val\n\t\t * ```\n\t\t */\n\t\tshowed() {\n\t\t\treturn this.hovered()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * attr *\n\t\t * \t^\n\t\t * \ttabindex 0\n\t\t * ```\n\t\t */\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\t...super.attr(),\n\t\t\t\ttabindex: 0\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event *\n\t\t * \t^\n\t\t * \tmouseenter?event <=> event_show?event\n\t\t * \tmouseleave?event <=> event_hide?event\n\t\t * ```\n\t\t */\n\t\tevent() {\n\t\t\treturn {\n\t\t\t\t...super.event(),\n\t\t\t\tmouseenter: (event?: any) => this.event_show(event),\n\t\t\t\tmouseleave: (event?: any) => this.event_hide(event)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * hovered?val false\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\thovered(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn false\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event_show?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tevent_show(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event_hide?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tevent_hide(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/pop/over/over.view.css\",\n \"[mol_pop_over]:focus {\\r\\n\\toutline: none;\\r\\n}\"\n) }","namespace $.$$ {\n\texport class $mol_pop_over extends $.$mol_pop_over {\n\t\t\n\t\tevent_show( event? : MouseEvent ) {\n\t\t\tthis.hovered( true )\n\t\t}\n\t\t\n\t\tevent_hide( event? : MouseEvent ) {\n\t\t\tthis.hovered( false )\n\t\t}\n\n\t\tshowed() {\n\t\t\treturn this.focused() || this.hovered()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_perf_dbmon extends $mol_scroll {\n\n\t\t/**\n\t\t * ```tree\n\t\t * title \\dbmon ($mol)\n\t\t * ```\n\t\t */\n\t\ttitle() {\n\t\t\treturn \"dbmon ($mol)\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub / <= Databases\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Databases()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Database!id $mol_view sub <= database!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tDatabase(id: any) {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.sub = () => this.database(id)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Query!id $mol_perf_dbmon_query\n\t\t * \telapsed <= query_elapsed!id\n\t\t * \telapsed_mod <= query_elapsed_mod!id\n\t\t * \tvalue <= query_value!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tQuery(id: any) {\n\t\t\tconst obj = new this.$.$mol_perf_dbmon_query()\n\n\t\t\tobj.elapsed = () => this.query_elapsed(id)\n\t\t\tobj.elapsed_mod = () => this.query_elapsed_mod(id)\n\t\t\tobj.value = () => this.query_value(id)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * databases /\n\t\t * ```\n\t\t */\n\t\tdatabases() {\n\t\t\treturn [\n\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Databases $mol_list rows <= databases\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tDatabases() {\n\t\t\tconst obj = new this.$.$mol_list()\n\n\t\t\tobj.rows = () => this.databases()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * name!id \\\n\t\t * ```\n\t\t */\n\t\tname(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Name!id $mol_view sub / <= name!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tName(id: any) {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.sub = () => [\n\t\t\t\tthis.name(id)\n\t\t\t] as readonly any[]\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_count_label_mod!id \\\n\t\t * ```\n\t\t */\n\t\tquery_count_label_mod(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_count!id 0\n\t\t * ```\n\t\t */\n\t\tquery_count(id: any) {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Query_count!id $mol_perf_dbmon_query_count\n\t\t * \tlabel_mod <= query_count_label_mod!id\n\t\t * \tcount <= query_count!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tQuery_count(id: any) {\n\t\t\tconst obj = new this.$.$mol_perf_dbmon_query_count()\n\n\t\t\tobj.label_mod = () => this.query_count_label_mod(id)\n\t\t\tobj.count = () => this.query_count(id)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * top_queries!id /\n\t\t * ```\n\t\t */\n\t\ttop_queries(id: any) {\n\t\t\treturn [\n\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * database!id /\n\t\t * \t<= Name!id\n\t\t * \t<= Query_count!id\n\t\t * \t<= top_queries!id\n\t\t * ```\n\t\t */\n\t\tdatabase(id: any) {\n\t\t\treturn [\n\t\t\t\tthis.Name(id),\n\t\t\t\tthis.Query_count(id),\n\t\t\t\tthis.top_queries(id)\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_elapsed!id \\\n\t\t * ```\n\t\t */\n\t\tquery_elapsed(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_elapsed_mod!id \\\n\t\t * ```\n\t\t */\n\t\tquery_elapsed_mod(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_value!id \\\n\t\t * ```\n\t\t */\n\t\tquery_value(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n\texport class $mol_perf_dbmon_query_count extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub / <= Label\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Label()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * label_mod \\\n\t\t * ```\n\t\t */\n\t\tlabel_mod() {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * count 0\n\t\t * ```\n\t\t */\n\t\tcount() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Label $mol_view\n\t\t * \tattr * mol_perf_dbmon_query_count_label <= label_mod\n\t\t * \tsub / <= count\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tLabel() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.attr = () => ({\n\t\t\t\tmol_perf_dbmon_query_count_label: this.label_mod()\n\t\t\t})\n\t\t\tobj.sub = () => [\n\t\t\t\tthis.count()\n\t\t\t] as readonly any[]\n\n\t\t\treturn obj\n\t\t}\n\t}\n\n\texport class $mol_perf_dbmon_query extends $mol_pop_over {\n\n\t\t/**\n\t\t * ```tree\n\t\t * minimal_height 40\n\t\t * ```\n\t\t */\n\t\tminimal_height() {\n\t\t\treturn 40\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Anchor <= Elapsed\n\t\t * ```\n\t\t */\n\t\tAnchor() {\n\t\t\treturn this.Elapsed()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bubble_content / <= value\n\t\t * ```\n\t\t */\n\t\tbubble_content() {\n\t\t\treturn [\n\t\t\t\tthis.value()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * align \\left_center\n\t\t * ```\n\t\t */\n\t\talign() {\n\t\t\treturn \"left_center\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * elapsed_mod \\\n\t\t * ```\n\t\t */\n\t\telapsed_mod() {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * elapsed \\\n\t\t * ```\n\t\t */\n\t\telapsed() {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Elapsed $mol_view\n\t\t * \tattr * mol_perf_dbmon_query_elapsed <= elapsed_mod\n\t\t * \tsub / <= elapsed\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tElapsed() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.attr = () => ({\n\t\t\t\tmol_perf_dbmon_query_elapsed: this.elapsed_mod()\n\t\t\t})\n\t\t\tobj.sub = () => [\n\t\t\t\tthis.elapsed()\n\t\t\t] as readonly any[]\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * value \\\n\t\t * ```\n\t\t */\n\t\tvalue() {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\tdeclare function requestIdleCallback( task : ()=> void , options? : { timeout : number } ) : any\n\tdeclare function cancelIdleCallback( id : any ) : void\n\n\texport class $mol_after_work extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = requestIdleCallback( task , { timeout : delay } )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tcancelIdleCallback( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision = 0 , next? : number ) {\n\t\t\t\n\t\t\tif( precision > 0 ) {\n\t\t\t\tnew $mol_after_timeout( precision , $mol_atom2.current!.fresh )\n\t\t\t} else {\n\t\t\t\tnew $mol_after_work( 16 , $mol_atom2.current!.fresh )\n\t\t\t}\n\t\t\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/perf/dbmon/dbmon.view.css\",\n \"[mol_perf_dbmon_databases] {\\n\\tdisplay: table;\\n\\ttable-layout: fixed;\\n\\twidth: 100%;\\n}\\n\\n[mol_perf_dbmon_database] {\\n\\tdisplay: table-row;\\n\\tbackground: white;\\n}\\n\\n[mol_perf_dbmon_database] > * {\\n\\tdisplay: table-cell;\\n\\tpadding: .5rem;\\n\\tborder-top: 1px solid #ddd;\\n}\\n\\n[mol_perf_dbmon_database]:nth-child(odd) {\\n\\tbackground: #f9f9f9;\\n}\\n\\n[mol_perf_dbmon_query_count_label] {\\n\\tborder-radius: .25em;\\n\\tcolor: #fff;\\n\\tfont-size: 75%;\\n\\tfont-weight: 700;\\n\\tline-height: 1;\\n\\tpadding: .25em .5em;\\n}\\n\\n[mol_perf_dbmon_query_count_label~=\\\"label-success\\\"] {\\n\\tbackground-color: #5cb85c;\\n}\\n\\n[mol_perf_dbmon_query_count_label~=\\\"label-warning\\\"] {\\n\\tbackground-color: #f0ad4e;\\n}\\n\\n[mol_perf_dbmon_query_bubble] {\\n\\tpadding: .5rem;\\n}\\n\"\n) }","declare let ENV : any\ndeclare let Monitoring : any\n\nnamespace $.$$ {\n\n\texport class $mol_perf_dbmon extends $.$mol_perf_dbmon {\n\n\t\t@ $mol_mem\n\t\tdata() {\n\t\t\t$mol_state_time.now( ENV.timeout || 15 )\n\t\t\tMonitoring.renderRate.ping();\n\t\t\treturn ENV.generateData().toArray()\n\t\t}\n\t\t\n\t\tdatabases() {\n\t\t\treturn Object.keys( this.data() ).map( index => this.Database( index ) )\n\t\t}\n\n\t\tdatabase( id : string ) {\n\t\t\treturn [\n\t\t\t\tthis.Name( id ) ,\n\t\t\t\tthis.Query_count( id ) ,\n\t\t\t\t... this.top_queries( id ) ,\n\t\t\t]\n\t\t}\n\n\t\tname( id : string ) {\n\t\t\treturn this.data()[ id ].dbname\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tlast_sample( id : string ) {\n\t\t\treturn this.data()[ id ].lastSample\n\t\t}\n\n\t\tquery_count( id : string ) {\n\t\t\treturn this.last_sample( id ).nbQueries\n\t\t}\n\n\t\tquery_count_label_mod( id : string ) {\n\t\t\treturn this.last_sample( id ).countClassName\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttop_queries_data( db : string ) {\n\t\t\treturn this.last_sample( db ).topFiveQueries\n\t\t}\n\n\t\ttop_queries( db : string ) {\n\t\t\treturn Object.keys( this.top_queries_data( db ) ).map( query => this.Query({ db , query }) )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttop_query( id : { db : string , query : string } ) {\n\t\t\treturn this.top_queries_data( id.db )[ id.query ]\n\t\t}\n\n\t\tquery_elapsed( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).formatElapsed\n\t\t}\n\n\t\tquery_elapsed_mod( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).elapsedClassName\n\t\t}\n\n\t\tquery_value( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).query\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_attributes_super extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * some *\n\t\t * \ta 0\n\t\t * \tb 2\n\t\t * ```\n\t\t */\n\t\tsome() {\n\t\t\treturn {\n\t\t\t\ta: 0,\n\t\t\t\tb: 2\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree_test_attributes extends $mol_view_tree_test_attributes_super {\n\n\t\t/**\n\t\t * ```tree\n\t\t * some *\n\t\t * \t^\n\t\t * \ta 1\n\t\t * ```\n\t\t */\n\t\tsome() {\n\t\t\treturn {\n\t\t\t\t...super.some(),\n\t\t\t\ta: 1\n\t\t\t}\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_binding extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * value?val <=> task_title_new?val\n\t\t * ```\n\t\t */\n\t\tvalue(val?: any) {\n\t\t\treturn this.task_title_new(val)\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * enabled <= head_complete_enabled\n\t\t * ```\n\t\t */\n\t\tenabled() {\n\t\t\treturn this.head_complete_enabled()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * task_title_new?val \\123\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\ttask_title_new(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn \"123\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * head_complete_enabled false\n\t\t * ```\n\t\t */\n\t\thead_complete_enabled() {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_binding_right extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * Test $mol_view_tree_test_binding_right_test width?v => outer_width?v\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tTest() {\n\t\t\tconst obj = new this.$.$mol_view_tree_test_binding_right_test()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * outer_width?v\n\t\t * ```\n\t\t */\n\t\touter_width(v?: any) {\n\t\t\treturn this.Test().width(v)\n\t\t}\n\t}\n\n\texport class $mol_view_tree_test_binding_right_test extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * width?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\twidth(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_simple extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * some 1\n\t\t * ```\n\t\t */\n\t\tsome() {\n\t\t\treturn 1\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bool true\n\t\t * ```\n\t\t */\n\t\tbool() {\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * str \\test\n\t\t * ```\n\t\t */\n\t\tstr() {\n\t\t\treturn \"test\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * arr /\n\t\t * ```\n\t\t */\n\t\tarr() {\n\t\t\treturn [\n\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * arr_string /string\n\t\t * ```\n\t\t */\n\t\tarr_string() {\n\t\t\treturn [\n\n\t\t\t] as readonly string[]\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_attributes_subcomponent extends $mol_view {\n\t\t// Comment\n\n\t\t/**\n\t\t * ```tree\n\t\t * Page!index $mol_view_tree_test_attributes_subcomponent_page Sub <= page!index\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tPage(index: any) {\n\t\t\tconst obj = new this.$.$mol_view_tree_test_attributes_subcomponent_page()\n\n\t\t\tobj.Sub = () => this.page(index)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * page!index null\n\t\t * ```\n\t\t */\n\t\tpage(index: any) {\n\t\t\treturn null as any\n\t\t}\n\t}\n\n\texport class $mol_view_tree_test_attributes_subcomponent_page extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * Sub null\n\t\t * ```\n\t\t */\n\t\tSub() {\n\t\t\treturn null as any\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport const $mol_tree_convert : unique symbol = Symbol( '$mol_tree_convert' )\n\texport type $mol_tree_path = Array< string | number | null >\n\n\texport type $mol_tree_hack = ( input : $mol_tree , context : $mol_tree_context )=> readonly $mol_tree[]\n\texport type $mol_tree_context = Record< string , $mol_tree_hack >\n\texport type $mol_tree_library = Record< string , $mol_tree_context >\n\t\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree extends $mol_object2 {\n\t\t\n\t\treadonly type : string\n\t\treadonly data : string\n\t\treadonly sub : readonly $mol_tree[]\n\t\treadonly baseUri : string\n\t\treadonly row : number\n\t\treadonly col : number\n\t\treadonly length : number\n\t\t\n\t\tconstructor( config : Partial<$mol_tree> = {} ) {\n\n\t\t\tsuper()\n\n\t\t\tthis.type = config.type || ''\n\t\t\t\n\t\t\tif( config.value !== undefined ) {\n\n\t\t\t\tvar sub = $mol_tree.values( config.value )\n\t\t\t\t\n\t\t\t\tif( config.type || sub.length > 1 ) {\n\n\t\t\t\t\tthis.sub = [ ... sub , ...( config.sub || [] ) ]\n\t\t\t\t\tthis.data = config.data || ''\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.data = sub[ 0 ].data\n\t\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.data = config.data || ''\n\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t}\n\t\t\t\n\t\t\tthis.baseUri = config.baseUri || ''\n\t\t\tthis.row = config.row || 0\n\t\t\tthis.col = config.col || 0\n\t\t\tthis.length = config.length || 0\n\n\t\t}\n\t\t\n\t\tstatic values( str : string , baseUri? : string ) {\n\n\t\t\treturn str.split( '\\n' ).map( ( data , index ) => new $mol_tree( {\n\t\t\t\tdata : data ,\n\t\t\t\tbaseUri : baseUri ,\n\t\t\t\trow : index + 1 ,\n\t\t\t\tlength : data.length ,\n\t\t\t} ) )\n\n\t\t}\n\t\t\n\t\t/** Cloning node with overrides. */\n\t\tclone( config : Partial<$mol_tree> = {} ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\ttype : ( 'type' in config ) ? config.type : this.type ,\n\t\t\t\tdata : ( 'data' in config ) ? config.data : this.data ,\n\t\t\t\tsub : ( 'sub' in config ) ? config.sub : this.sub ,\n\t\t\t\tbaseUri : ( 'baseUri' in config ) ? config.baseUri : this.baseUri ,\n\t\t\t\trow : ( 'row' in config ) ? config.row : this.row ,\n\t\t\t\tcol : ( 'col' in config ) ? config.col : this.col ,\n\t\t\t\tlength : ( 'length' in config ) ? config.length : this.length ,\n\t\t\t\tvalue : config.value\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived node. */\n\t\tmake( config : Partial<$mol_tree> ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\tbaseUri : this.baseUri ,\n\t\t\t\trow : this.row ,\n\t\t\t\tcol : this.col ,\n\t\t\t\tlength : this.length ,\n\t\t\t\t... config ,\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tmake_data( value : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ value , sub })\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tmake_struct( type : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ type , sub })\n\t\t}\n\t\t\n\t\t/** Parses tree format to AST. */\n\t\tstatic fromString( str : string , baseUri? : string ) {\n\t\t\t\n\t\t\tvar root = new $mol_tree( { baseUri : baseUri } )\n\t\t\tvar stack = [ root ]\n\t\t\t\n\t\t\tvar row = 0\n\t\t\tvar prefix = str.replace( /^\\n?(\\t*)[\\s\\S]*/ , '$1' )\n\t\t\tvar lines = str.replace( new RegExp( '^\\\\t{0,' + prefix.length + '}' , 'mg' ) , '' ).split( '\\n' )\n\n\t\t\tlines.forEach( line => {\n\n\t\t\t\t++row\n\t\t\t\t\n\t\t\t\tvar chunks = /^(\\t*)((?:[^\\n\\t\\\\ ]+ *)*)(\\\\[^\\n]*)?(.*?)(?:$|\\n)/m.exec( line )\n\t\t\t\tif( !chunks || chunks[4] ) return this.$.$mol_fail( new Error( `Syntax error at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tvar indent = chunks[ 1 ]\n\t\t\t\tvar path = chunks[ 2 ]\n\t\t\t\tvar data = chunks[ 3 ]\n\t\t\t\t\n\t\t\t\tvar deep = indent.length\n\t\t\t\tvar types = path ? path.replace( / $/ , '' ).split( / +/ ) : []\n\t\t\t\t\n\t\t\t\tif( stack.length <= deep ) return this.$.$mol_fail( new Error( `Too many tabs at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tstack.length = deep + 1\n\t\t\t\tvar parent = stack[ deep ];\n\t\t\t\t\n\t\t\t\tlet col = deep\n\t\t\t\ttypes.forEach( type => {\n\t\t\t\t\tif( !type ) return this.$.$mol_fail( new Error( `Unexpected space symbol ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\tvar next = new $mol_tree({ type , baseUri , row , col , length : type.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\t\n\t\t\t\t\tparent = next\n\t\t\t\t\tcol += type.length + 1\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( data ) {\n\t\t\t\t\tvar next = new $mol_tree({ data : data.substring( 1 ) , baseUri , row , col , length : data.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstack.push( parent )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn root\n\t\t}\n\t\t\n\t\t/**\n\t\t * Parses json.tree lang to AST.\n\t\t * @todo Move to $mol_tree_json_from\n\t\t */\n\t\tstatic fromJSON( json : any , baseUri = '' ) : $mol_tree {\n\n\t\t\tswitch( true ) {\n\n\t\t\t\tcase typeof json === 'boolean' :\n\t\t\t\tcase typeof json === 'number' :\n\t\t\t\tcase json === null :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : String( json ) ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tcase typeof json === 'string' :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\n\t\t\t\tcase Array.isArray( json ) :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"/\" ,\n\t\t\t\t\t\tsub : ( json as any[] ).map( json => $mol_tree.fromJSON( json , baseUri ) )\n\t\t\t\t\t})\n\n\t\t\t\tcase json instanceof Date :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json.toISOString() ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tdefault :\n\n\t\t\t\t\tif( typeof json[ $mol_tree_convert ] === 'function' ) {\n\t\t\t\t\t\treturn json[ $mol_tree_convert ]()\n\t\t\t\t\t}\n\n\t\t\t\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\t\t\t\treturn $mol_tree.fromJSON( json.toJSON() )\n\t\t\t\t\t}\n\n\t\t\t\t\tif( json instanceof Error ) {\n\t\t\t\t\t\tconst { name , message , stack } = json\n\t\t\t\t\t\tjson = { ... json , name , message , stack }\n\t\t\t\t\t}\n\n\t\t\t\t\tvar sub : $mol_tree[] = []\n\t\t\t\t\t\n\t\t\t\t\tfor( var key in json ) {\n\n\t\t\t\t\t\tif( json[ key ] === undefined ) continue\n\n\t\t\t\t\t\tconst subsub = $mol_tree.fromJSON( json[ key ] , baseUri )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\ttype : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\tvalue : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsub.push( child )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"*\" ,\n\t\t\t\t\t\tsub : sub ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tget uri() {\n\t\t\treturn this.baseUri + '#' + this.row + ':' + this.col\n\t\t}\n\t\t\n\t\t/** Serializas to tree format. */\n\t\ttoString( prefix = '' ) : string {\n\t\t\tvar output = ''\n\t\t\t\n\t\t\tif( this.type.length ) {\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\t\t\t\toutput += this.type\n\t\t\t\tif( this.sub.length == 1 ) {\n\t\t\t\t\treturn output + ' ' + this.sub[ 0 ].toString( prefix )\n\t\t\t\t}\n\t\t\t\toutput += \"\\n\"\n\t\t\t} else if( this.data.length || prefix.length ) {\n\t\t\t\toutput += \"\\\\\" + this.data + \"\\n\"\n\t\t\t}\n\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\toutput += prefix\n\t\t\t\toutput += child.toString( prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t\treturn output\n\t\t}\n\t\t\n\t\t/**\n\t\t * Serializes AST to json.tree lang.\n\t\t * @todo Move to $mol_tree_json_to\n\t\t */\n\t\ttoJSON() : any {\n\t\t\tif( !this.type ) return this.value\n\t\t\t\n\t\t\tif( this.type === 'true' ) return true\n\t\t\tif( this.type === 'false' ) return false\n\t\t\tif( this.type === 'null' ) return null\n\t\t\t\n\t\t\tif( this.type === '*' ) {\n\t\t\t\tvar obj = {}\n\t\t\t\tfor( var child of this.sub ) {\n\t\t\t\t\tif( child.type === '-' ) continue\n\t\t\t\t\tvar key = child.type || child.clone({ sub : child.sub.slice( 0 , child.sub.length - 1 ) }).value\n\t\t\t\t\tvar val = child.sub[ child.sub.length - 1 ].toJSON()\n\t\t\t\t\tif( val !== undefined ) ( obj as any )[ key ] = val\n\t\t\t\t}\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === '/' ) {\n\t\t\t\tvar res : any[] = []\n\t\t\t\tthis.sub.forEach(\n\t\t\t\t\tchild => {\n\t\t\t\t\t\tif( child.type === '-' ) return\n\t\t\t\t\t\tvar val = child.toJSON()\n\t\t\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === 'time' ) {\n\t\t\t\treturn new Date( this.value )\n\t\t\t}\n\t\t\t\n\t\t\tconst numb = Number( this.type ) \n\t\t\tif( !Number.isNaN( numb ) || this.type === 'NaN' ) return numb\n\t\t\t\n\t\t\tthrow new Error( `Unknown type (${this.type}) at ${this.uri}` )\n\t\t}\n\t\t\n\t\tget value() {\n\t\t\tvar values : string[] = []\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\tif( child.type ) continue\n\t\t\t\tvalues.push( child.value )\n\t\t\t}\n\t\t\treturn this.data + values.join( \"\\n\" )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree , ...path : $mol_tree_path ) : $mol_tree {\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.sub.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( !replaced ) sub.push( new $mol_tree({ type }).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || new $mol_tree ).insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub : ( ( this.sub.length === 0 ) ? [ new $mol_tree() ] : this.sub ).map( item => item.insert( value , ... path.slice( 1 ) ) ) })\n\n\t\t\t}\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree_path ) {\n\t\t\tvar next = [ this as $mol_tree ]\n\t\t\tfor( var type of path ) {\n\t\t\t\tif( !next.length ) break\n\t\t\t\tvar prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\t\t\t\t\t\t\tfor( var child of item.sub ) {\n\t\t\t\t\t\t\t\tif( !type || ( child.type == type ) ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\t\t\t\t\t\t\tif( type < item.sub.length ) next.push( item.sub[ type ] )\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.sub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new $mol_tree( { sub : next } )\n\t\t}\n\t\t\n\t\t/** Filter subnodes by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\t\t\tvar sub = this.sub.filter(\n\t\t\t\tfunction( item ) {\n\t\t\t\t\t\n\t\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\t\n\t\t\t\t\tif( value == null ) {\n\t\t\t\t\t\treturn Boolean( found.sub.length )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn found.sub.some( child => child.value == value )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn new $mol_tree( { sub : sub } )\n\t\t}\n\n\t\t@ $mol_deprecated( 'Use $mol_tree:hack' )\n\t\ttransform( visit : ( stack : $mol_tree[] , sub : ()=> $mol_tree[] )=> $mol_tree | null , stack : $mol_tree[] = [] ) : $mol_tree | null {\n\t\t\tconst sub_stack = [ this , ...stack ]\n\t\t\treturn visit( sub_stack , ()=> this.sub.map( node => node.transform( visit , sub_stack ) ).filter( n => n ) as $mol_tree[] )\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack( context : $mol_tree_context ) : $mol_tree {\n\t\t\t\n\t\t\tconst sub = ( [] as $mol_tree[] ).concat( ... this.sub.map( child => {\n\n\t\t\t\tconst handle = context[ child.type ] || context[ '' ]\n\t\t\t\tif( !handle ) $mol_fail( child.error( 'Handler not defined' ) )\n\t\t\t\t\n\t\t\t\treturn handle( child , context )\n\n\t\t\t} ) )\n\n\t\t\treturn this.clone({ sub })\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string ) {\n\t\t\treturn new Error( `${message}:\\n${ this } ${this.baseUri}:${this.row}:${this.col}` )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn this[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\tthis[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\tthis[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >( key : string , next? : Value , force? : $mol_mem_force ) : Value | null {\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) this.native().removeItem( key )\n\t\t\telse this.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tself.addEventListener( 'storage' , event => {\n\t\tif( !event.key ) return // @TODO clear support\n\t\t$.$mol_state_local.value( event.key , undefined , $mol_mem_force_cache )\n\t} )\n\n}\n","// @ts-ignore\nvar $node = $node || {}\n","namespace $ {\n\tconst TextEncoder = globalThis.TextEncoder ?? $node.util.TextEncoder\n\n\tconst encoder = new TextEncoder()\n\n\texport function $mol_charset_encode(value: string) {\n\t\treturn encoder.encode(value)\n\t}\n\n}\n","namespace $ {\n\tconst TextDecoder = globalThis.TextDecoder ?? $node.util.TextDecoder\n\n\t// @see https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/encoding\n\texport type $mol_charset_encoding = 'utf8' | 'ibm866' | 'iso-8859-2' | 'iso-8859-3' | 'iso-8859-4' | 'iso-8859-5' | 'iso-8859-6'\n\t\t| 'iso-8859-7' | 'iso-8859-8' | 'iso-8859-8i' | 'iso-8859-10' | 'iso-8859-13' | 'iso-8859-14' | 'iso-8859-15' | 'iso-8859-16'\n\t\t| 'koi8-r' | 'koi8-u' | 'koi8-r' | 'macintosh' | 'windows-874' | 'windows-1250' | 'windows-1251' | 'windows-1252' | 'windows-1253'\n\t\t| 'windows-1254'| 'windows-1255'| 'windows-1256'| 'windows-1257'| 'windows-1258' | 'x-mac-cyrillic' | 'gbk'\n\t\t| 'gb18030' | 'hz-gb-2312' | 'big5' | 'euc-jp' | 'iso-2022-jp' | 'shift-jis' | 'euc-kr' | 'iso-2022-kr'\n\n\texport function $mol_charset_decode(value: Uint8Array, code: $mol_charset_encoding = 'utf8') {\n\t\treturn new TextDecoder(code).decode(value)\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file_not_found extends Error {}\n\n\texport abstract class $mol_file extends $mol_object {\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute( path : string ): $mol_file {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\n\t\tstatic relative( path : string ) : $mol_file {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\tabstract stat( next? : $mol_file_stat, force? : $mol_mem_force ): $mol_file_stat\n\n\t\treset(): void {\n\t\t\ttry {\n\t\t\t\tthis.stat(undefined, $mol_mem_force_cache)\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof $mol_file_not_found) return\n\t\t\t\treturn $mol_fail_hidden(error)\n\t\t\t}\n\t\t}\n\t\t\n\t\tversion() {\n\t\t\treturn this.stat().mtime.getTime().toString( 36 ).toUpperCase()\n\t\t}\n\n\t\tabstract ensure(next?: boolean): boolean\n\n\t\twatcher() {\n\t\t\tconsole.warn('$mol_file_web.watcher() not implemented')\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean , force? : $mol_mem_force ) {\n\n\t\t\tlet exists = true\n\t\t\ttry {\n\t\t\t\tthis.stat()\n\t\t\t} catch (error) {\n\n\t\t\t\tif (error instanceof $mol_file_not_found) {\n\t\t\t\t\texists = false\n\t\t\t\t} else {\n\t\t\t\t\treturn $mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) this.parent().exists( true )\n\t\t\tthis.ensure(next)\n\t\t\tthis.reset()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\ttype() {\n\t\t\treturn this.stat().type\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\tabstract buffer( next? : Uint8Array , force? : $mol_mem_force ): Uint8Array\n\n\t\t@ $mol_mem\n\t\ttext(next?: string, force?: $mol_mem_force) {\n\t\t\tconst buffer = next === undefined ? undefined : $mol_charset_encode( next )\n\t\t\treturn $mol_charset_decode( this.buffer( buffer, force ) )\n\t\t}\n\n\t\tfail(error: Error) {\n\t\t\tthis.buffer(error as any, $mol_mem_force_fail)\n\t\t\tthis.stat(error as any, $mol_mem_force_fail)\n\t\t}\n\n\t\tbuffer_cached(buffer: Uint8Array) {\n\t\t\tconst ctime = new Date()\n\t\t\tconst stat: $mol_file_stat = {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize: buffer.length,\n\t\t\t\tctime,\n\t\t\t\tatime: ctime,\n\t\t\t\tmtime: ctime\n\t\t\t}\n\n\t\t\tthis.buffer(buffer, $mol_mem_force_cache)\n\t\t\tthis.stat(stat , $mol_mem_force_cache)\n\t\t}\n\n\t\ttext_cached(content: string) {\n\t\t\tthis.buffer_cached($mol_charset_encode(content))\n\t\t}\n\t\t\n\t\tabstract sub(): $mol_file[]\n\n\t\tabstract resolve(path: string): $mol_file\n\n\t\tabstract relate( base?: $mol_file ): string\n\t\t\n\t\tabstract append( next : Uint8Array | string ): void\n\t\t\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as $mol_file[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat().size\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport function $mol_dom_parse(\n\t\ttext : string ,\n\t\ttype : DOMParserSupportedType = 'application/xhtml+xml' ,\n\t) {\n\n\t\tconst parser = new $mol_dom_context.DOMParser()\n\t\tconst doc = parser.parseFromString( text , type )\n\t\t\n\t\tconst error = doc.getElementsByTagName( 'parsererror' )[0]\n\t\tif( error ) throw new Error( error.textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_fetch_response extends $mol_object2 {\n\n\t\tconstructor( readonly native : Response ) {\n\t\t\tsuper()\n\t\t}\n\n\t\theaders() {\n\t\t\treturn this.native.headers\n\t\t}\n\n\t\tmime() {\n\t\t\treturn this.headers().get( 'content-type' )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstream() {\n\t\t\treturn this.native.body\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\ttext() {\n\n\t\t\tconst buffer = this.buffer()\n\n\t\t\tconst native = this.native\n\t\t\tconst mime = native.headers.get( 'content-type' ) || ''\n\t\t\tconst [,charset] = /charset=(.*)/.exec( mime ) || [, 'utf-8']\n\t\t\t\n\t\t\tconst decoder = new TextDecoder( charset )\n\t\t\treturn decoder.decode( buffer )\n\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tjson() {\n\t\t\tconst response = this.native\n\t\t\tconst parse = $mol_fiber_sync( response.json )\n\t\t\treturn parse.call( response ) as unknown\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tbuffer() {\n\t\t\tconst response = this.native\n\t\t\tconst parse = $mol_fiber_sync( response.arrayBuffer )\n\t\t\treturn parse.call( response ) as ArrayBuffer\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\txml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'application/xml' )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\txhtml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'application/xhtml+xml' )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\thtml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'text/html' )\n\t\t}\n\n\t}\n\n\texport class $mol_fetch extends $mol_object2 {\n\t\t\n\t\tstatic request = $mol_fiber_sync( ( input : RequestInfo , init : RequestInit = {} )=> {\n\t\t\t\n\t\t\tif( typeof AbortController === 'function' ) {\n\t\t\t\tvar controller = new AbortController()\n\t\t\t\tinit.signal = controller.signal\n\t\t\t\tconst fiber = $mol_fiber.current!\n\t\t\t\tfiber.abort = ()=> {\n\t\t\t\t\tif( fiber.cursor === $mol_fiber_status.actual ) return true\n\t\t\t\t\tcontroller.abort()\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet native = $mol_dom_context.fetch\n\t\t\tif( !native ) native = $node['node-fetch']\n\t\t\n\t\t\treturn native( input , init )\n\n\t\t} )\n\n\t\t@ $mol_fiber.method\n\t\tstatic response( input: RequestInfo, init?: RequestInit ) {\n\n\t\t\tconst response = this.request( input , init )\n\t\t\tif( Math.floor( response.status / 100 ) === 2 ) return new $mol_fetch_response( response )\n\t\t\t\n\t\t\tthrow new Error( response.statusText || `HTTP Error ${ response.status }` )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic stream( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).stream()\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic text( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).text()\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tstatic json( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).json()\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tstatic buffer( input: RequestInfo, init?: RequestInit ) {\n\t\t\tthis.response( input , init ).buffer()\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tstatic xml( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).xml()\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic xhtml( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).xhtml()\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic html( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).html()\n\t\t}\n\n\t}\n\n}\n\n","namespace $ {\n\t\n\texport class $mol_file_web extends $mol_file {\n\n\t\t@ $mol_mem_key\n\t\tstatic absolute( path : string ) {\n\t\t\treturn this.make({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t})\n\t\t}\n\n\t\tstatic relative( path : string ) {\n\t\t\treturn this.absolute( new URL( path , this.base ).toString() )\n\t\t}\n\n\t\tstatic base = $mol_dom_context.document\n\t\t\t? new URL( '.' , $mol_dom_context.document.currentScript!['src'] ).toString()\n\t\t\t: ''\n\t\t\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array , force? : $mol_mem_force ) {\n\t\t\tif (next !== undefined) throw new Error(`Saving content not supported: ${this.path}`)\n\n\t\t\tconst response = $mol_fetch.response(this.path())\n\t\t\tif (response.native.status === 404) throw new $mol_file_not_found(`File not found: ${this.path()}`)\n\n\t\t\treturn new Uint8Array(response.buffer())\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstat( next? : $mol_file_stat, force? : $mol_mem_force ) {\n\t\t\tlet stat = next\n\t\t\tif (next === undefined) {\n\t\t\t\tconst content = this.text()\n\t\t\t\t// @todo взять дату из хедеров фетча, когда file.web будет переписан на webdav\n\t\t\t\tconst ctime = new Date()\n\t\t\t\tstat = {\n\t\t\t\t\ttype: 'file',\n\t\t\t\t\tsize: content.length,\n\t\t\t\t\tctime,\n\t\t\t\t\tatime: ctime,\n\t\t\t\t\tmtime: ctime\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.parent().watcher()\n\t\t\t\n\t\t\treturn stat!\n\t\t}\n\n\t\tresolve( path : string ) {\n\t\t\tlet res = this.path() + '/' + path\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\tlet prev = res\n\t\t\t\tres = res.replace( /\\/[^\\/.]+\\/\\.\\.\\// , '/' )\n\t\t\t\tif( prev === res ) break\n\t\t\t}\n\t\t\t\n\t\t\treturn ( this.constructor as typeof $mol_file_web ).absolute( res )\n\t\t}\n\n\t\tensure(next?: boolean): boolean {\n\t\t\tthrow new Error('$mol_file_web.ensure() not implemented')\n\t\t} \n\n\t\t@ $mol_mem\n\t\tsub() : $mol_file[] {\n\t\t\tthrow new Error('$mol_file_web.sub() not implemented')\n\t\t}\n\t\t\n\t\trelate( base = ( this.constructor as typeof $mol_file ).relative( '.' )): string {\n\t\t\tthrow new Error('$mol_file_web.relate() not implemented')\n\t\t}\n\t\t\n\t\tappend( next : Uint8Array | string ) {\n\t\t\tthrow new Error('$mol_file_web.append() not implemented')\n\t\t}\n\t}\n\n\t$.$mol_file = $mol_file_web\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\texport class $mol_locale extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang_default() {\n\t\t\treturn 'en'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang( next? : string ) {\n\t\t\treturn $mol_state_local.value( 'locale' , next ) || $mol_dom_context.navigator.language.replace( /-.*/ , '' ) || this.lang_default()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic source( lang : string ) {\n\t\t\treturn JSON.parse( $mol_file.relative( `web.locale=${ lang }.json` ).text().toString() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic texts( lang : string , next? : $mol_locale_dict ) : $mol_locale_dict {\n\t\t\tif( next ) return next\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn this.source( lang ).valueOf()\n\t\t\t} catch( error ) {\n\t\t\t\tif( 'then' in error ) $mol_fail_hidden( error )\n\t\t\t\tconst def = this.lang_default()\n\t\t\t\tif( lang === def ) throw error\n\t\t\t\treturn this.source( def )\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ) {\n\n\t\t\tfor( let lang of [ this.lang() , 'en' ] ) {\n\t\t\t\t\n\t\t\t\tconst text = this.texts( lang )[ key ]\n\t\t\t\tif( text ) return text\n\n\t\t\t\tconsole.warn( `Not translated to \"${ lang }\": ${ key }` )\n\t\t\t}\n\t\t\t\t\t\t\n\t\t\treturn `<${ key }>`\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_view_tree_trim_remarks( def : $mol_tree ) {\n\t\treturn def.transform( ( [ node ] , sub )=> ( node.type === '-' ) ? null : node.clone({ sub : sub() }) )!\n\t}\n\n\texport function $mol_view_tree_classes( defs : $mol_tree ) {\n\t\treturn $mol_view_tree_trim_remarks( defs )\n\t}\n\n\texport function $mol_view_tree_class_name( val : $mol_tree ) {\n\t\treturn val.type\n\t}\n\n\texport function $mol_view_tree_super_name( val : $mol_tree ) {\n\t\tif( val.sub.length != 1 ) throw val.error( 'Wrong sub count' )\n\t\treturn val.sub[0].type\n\t}\n\n\texport function $mol_view_tree_class_props( def : $mol_tree ) {\n\t\tconst props : { [ key : string ] : $mol_tree } = {}\n\t\t\n\t\tconst catch_prop = ( prop : $mol_tree , type = '' )=> {\n\n\t\t\tlet def = prop\n\t\t\t\n\t\t\tif( type === '=>' ) {\n\t\t\t\tif( prop.sub[0] ) throw prop.error( 'Right binding can not have default value' )\n\t\t\t} else {\n\n\t\t\t\tif( prop.sub.length === 0 ) return\n\t\t\t\tif( prop.sub[0].type === '-' ) return\n\t\t\t\t\t\t\n\t\t\t\tprops[ prop.type ] = props[ prop.type ]\n\n\t\t\t\tdef = prop.clone({\n\t\t\t\t\tsub : [ prop.sub[0].transform( ( [ node , ... stack ] , sub )=> {\n\n\t\t\t\t\t\tif( [ '<=' , '<=>' , '=>' ].indexOf( node.type ) === -1 ) return node.clone({ sub : sub() })\n\t\t\t\t\t\t\n\t\t\t\t\t\tcatch_prop( node.sub[0] , node.type )\n\n\t\t\t\t\t\treturn node.clone({\n\t\t\t\t\t\t\tsub : [ node.sub[0].clone({\n\t\t\t\t\t\t\t\tsub : []\n\t\t\t\t\t\t\t}) ]\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\n\t\t\t\t\t} )!]\n\t\t\t\t})\n\n\t\t\t}\n\n\t\t\tif( props[ prop.type ] ) {\n\t\t\t\tif( props[ prop.type ].toString() !== def.toString() ) {\n\t\t\t\t\tthrow def.error( 'Property already defined with another default value' + props[ prop.type ].error('').message + '\\n---' )\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tprops[ prop.type ] = def\n\t\t\t}\n\t\t}\n\n\t\tdef.sub[0].sub.map( sub => catch_prop( sub ) )\n\t\t\n\t\treturn def.clone({\n\t\t\ttype : '' ,\n\t\t\tsub : Object.keys( props ).map( name => props[ name ] ) ,\n\t\t})\n\n\t}\n\n\texport function $mol_view_tree_prop_name( prop : $mol_tree ) {\n\t\treturn ( prop.type.match( /^\\w+/ ) || [] )[0] || ''\n\t}\n\n\texport function $mol_view_tree_prop_key( prop : $mol_tree ) {\n\t\treturn ( prop.type.match( /!(\\w+)$/ ) || [] )[1] || ''\n\t}\n\n\texport function $mol_view_tree_prop_next( prop : $mol_tree ) {\n\t\treturn ( prop.type.match( /\\?(\\w+)$/ ) || [] )[1] || ''\n\t}\n\n\texport function $mol_view_tree_prop_value( prop : $mol_tree ) {\n\t\tif( prop.sub.length != 1 ) throw prop.error( `Wrong sub count (${ prop.sub.length })` )\n\t\treturn prop.sub[0]\n\t}\n\n\texport function $mol_view_tree_value_type( val : $mol_tree ) {\n\t\t\n\t\tswitch( val.type ) {\n\t\t\tcase 'true' : return 'bool'\n\t\t\tcase 'false' : return 'bool'\n\t\t\tcase 'null' : return 'null'\n\t\t\tcase '*' : return 'dict'\n\t\t\tcase '@' : return 'locale'\n\t\t\tcase '' : return 'string'\n\t\t\tcase '<=' : return 'get'\n\t\t\tcase '<=>' : return 'bind'\n\t\t\tcase '=>' : return 'put'\n\t\t}\n\n\t\tswitch( val.type[0] ) {\n\t\t\tcase '/' : return 'list'\n\t\t\tcase '$' : return 'object'\n\t\t}\n\n\t\tif( Number( val.type ).toString() == val.type ) return 'number'\n\n\t\tthrow val.error( 'Wrong value' )\n\t}\n\n\texport function $mol_view_tree_compile( tree : $mol_tree) {\n\t\tconst splittedUri = tree.uri.split(/[#\\\\\\/]/);\n\t\tsplittedUri.pop();\n\t\tconst fileName = splittedUri.pop()!;\n\n\t\t// const SourceNode = $node['source-map'].SourceNode\n\t\t// type SourceNode = InstanceType< typeof SourceNode >\n\t\tconst SourceNode = ( row : number , col : number , fileName : string , text : string ) => text\n\t\ttype StringNodeArray = string[] //(string | SourceNode)[];\n\t\t\n\t\tvar content: StringNodeArray = []\n\t\tvar locales : { [ key : string ] : string } = {}\n\t\t\n\t\tfor( let def of $mol_view_tree_classes( tree ).sub ) {\n\t\t\tif( !/^\\$\\w+$/.test( def.type ) ) throw def.error( 'Wrong component name' )\n\t\t\t\n\t\t\tvar parent = def.sub[0]\n\t\t\t\n\t\t\t// var propDefs : { [ key : string ] : $mol_tree } = {}\n\t\t\tvar members : { [ key : string ] : StringNodeArray } = {}\n\t\t\t\n\t\t\tfor( let param of $mol_view_tree_class_props( def ).sub ) { try {\n\t\t\t\tvar needSet = false\n\t\t\t\tvar needCache = false\n\t\n\t\t\t\tif( param.type === '<=>' ) {\n\t\t\t\t\tparam = param.sub[0]\n\t\t\t\t}\n\t\n\t\t\t\tif( param.type === '<=' ) {\n\t\t\t\t\tparam = param.sub[0]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar propName = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( param.type )!\n\t\t\t\t\n\t\t\t\tif( propName[3] ) {\n\t\t\t\t\tneedSet = true\n\t\t\t\t\tneedCache = true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst getValue = ( value : $mol_tree , definition? : boolean ) : StringNodeArray | null=> { try {\n\t\t\t\t\tswitch( true ) {\n\t\t\t\t\t\tcase( value.type === '' ) :\n\t\t\t\t\t\t\treturn [JSON.stringify( value.value )]\n\t\t\t\t\t\tcase( value.type === '@' ) :\n\t\t\t\t\t\t\tconst key = `${ def.type }_${ param.type.replace( /[?!].*/ , '' ) }`\n\t\t\t\t\t\t\tlocales[ key ] = value.value\n\t\t\t\t\t\t\treturn [`this.$.$mol_locale.text( ${ JSON.stringify( key ) } )`]\n\t\t\t\t\t\tcase( value.type === '-' ) :\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\tcase( value.type[0] === '/' ) :\n\t\t\t\t\t\t\tconst item_type = value.type.substring( 1 )\n\t\t\t\t\t\t\tvar items : StringNodeArray = []\n\t\t\t\t\t\t\tvalue.sub.forEach( item => {\n\t\t\t\t\t\t\t\tif( item.type === '-' ) return\n\t\t\t\t\t\t\t\tif( item.type === '^' ) {\n\t\t\t\t\t\t\t\t\titems.push( `...super.${ param.type }()` )\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvar val = getValue( item )\n\t\t\t\t\t\t\t\tif( val ) items.push( val.join(\"\") )\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\treturn [`[`, items.join(' , '), `]` , ( item_type ? ` as readonly ( ${ item_type } )[]` : ` as readonly any[]` )]\n\t\t\t\t\t\tcase( value.type[0] === '$' ) :\n\t\t\t\t\t\t\tif( !definition ) throw value.error( 'Objects should be bound' )\n\t\t\t\t\t\t\tneedCache = true\n\t\t\t\t\t\t\tvar overs : StringNodeArray = []\n\t\t\t\t\t\t\tvalue.sub.forEach( over => {\n\t\t\t\t\t\t\t\tif( /^[-\\/]?$/.test( over.type ) ) return ''\n\t\t\t\t\t\t\t\tvar overName = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( over.type )!\n\t\t\t\t\t\t\t\tvar ns = needSet\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( over.sub[0].type === '=>' ) {\n\t\t\t\t\t\t\t\t\tif( over.sub[0].sub.length === 1 ) {\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tconst [ , own_name , own_key , own_next ] = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( over.sub[0].sub[0].type )!\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tlet own_args : string[] = []\n\t\t\t\t\t\t\t\t\t\tif( own_key ) own_args.push( ` ${own_key} : any ` )\n\t\t\t\t\t\t\t\t\t\tif( own_next ) own_args.push( ` ${own_next}? : any ` )\n\n\t\t\t\t\t\t\t\t\t\tlet [ , their_name , ... their_args ] = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( over.type )!\n\t\t\t\t\t\t\t\t\t\ttheir_args = their_args.filter( Boolean )\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tmembers[ own_name ] = [`\\t${ own_name }(${ own_args.join(',') }) {\\n\\t\\treturn this.${ propName[1] }(${ propName[2] || '' }).${ their_name }( ${ their_args.join(' , ') } )\\n\\t}\\n\\n`]\n\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar v = getValue( over.sub[0] )\n\t\t\t\t\t\t\t\tlet args : string[] = []\n\t\t\t\t\t\t\t\tif( overName[2] ) args.push( ` ${ overName[2] } : any ` )\n\t\t\t\t\t\t\t\tif( overName[3] ) args.push( ` ${ overName[3] }? : any ` )\n\t\t\t\t\t\t\t\tovers.push( ...['\\t\\t\\tobj.' , SourceNode(over.row, over.col, fileName, overName[1]), ' = (', args.join( ',' ), ') => ' , ...(v || []) , '\\n'] )\n\t\t\t\t\t\t\t\tneedSet = ns\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\tconst object_args = value.select( '/' , '' ).sub.map( arg => getValue( arg ) ).join( ' , ' ) as string\n\t\t\t\t\t\t\treturn ['(( obj )=>{\\n', ...overs, '\\t\\t\\treturn obj\\n\\t\\t})( new this.$.', SourceNode(value.row, value.col, fileName, value.type) , '( ' , object_args , ' ) )']\n\t\t\t\t\t\tcase( value.type === '*' ) :\n\t\t\t\t\t\t\tvar opts : StringNodeArray = []\n\t\t\t\t\t\t\tvalue.sub.forEach( opt => {\n\t\t\t\t\t\t\t\tif( opt.type === '-' ) return ''\n\t\t\t\t\t\t\t\tif( opt.type === '^' ) {\n\t\t\t\t\t\t\t\t\topts.push( `\\t\\t\\t...super.${ param.type }() ,\\n` )\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar key = /(.*?)(?:\\?(\\w+))?$/.exec( opt.type )!\n\t\t\t\t\t\t\t\tvar ns = needSet\n\t\t\t\t\t\t\t\tvar v = getValue( opt.sub[0] )\n\t\t\t\t\t\t\t\tvar arg = key[2] ? ` ( ${ key[2] }? : any )=> ` : ''\n\t\t\t\t\t\t\t\topts.push( ...['\\t\\t\\t\"', SourceNode(opt.row, opt.col, fileName, key[1]+ '\" : '), arg,' ', ...(v || []) , ' ,\\n'] )\n\t\t\t\t\t\t\t\tneedSet = ns\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\treturn ['({\\n', opts.join( '' ), '\\t\\t})']\n\t\t\t\t\t\tcase( value.type === '<=>' ) :\n\t\t\t\t\t\t\tif( value.sub.length === 1 ) {\n\t\t\t\t\t\t\t\tvar type = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))$/.exec( value.sub[0].type )!\n\t\t\t\t\t\t\t\treturn ['this.' + type[1] + '(' + ( type[2] ? type[2] + ' ,' : '' ) + ' ' + type[3] + ' )']\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tcase( value.type === '<=' ) :\n\t\t\t\t\t\t\tif( value.sub.length === 1 ) {\n\t\t\t\t\t\t\t\tvar type = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( value.sub[0].type )!\n\t\t\t\t\t\t\t\treturn ['this.' + type[1] + '(' + ( type[2] ? type[2] : '' ) + ')']\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tswitch( value.type ) {\n\t\t\t\t\t\tcase 'true' :\n\t\t\t\t\t\tcase 'false' :\n\t\t\t\t\t\t\treturn [value.type]\n\t\t\t\t\t\tcase 'null' :\n\t\t\t\t\t\t\treturn ['null as any']\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif( Number( value.type ).toString() == value.type ) return [value.type]\n\t\t\t\t\t\n\t\t\t\t\tthrow value.error( 'Wrong value' )\n\t\t\t\t} catch ( err ) {\n\t\t\t\t\t// err.message += `\\n${value.baseUri}:${value.row}:${value.col}\\n${ value }`\n\t\t\t\t\tthrow err\n\t\t\t\t} }\n\t\t\t\t\n\t\t\t\tif( param.sub.length > 1 ) throw new Error( 'Too more sub' )\n\t\t\t\tparam.sub.forEach( child => {\n\t\t\t\t\tvar val = getValue( child , true )\n\t\t\t\t\tif( !val ) return\n\t\t\t\t\t\n\t\t\t\t\t// propDefs[ propName[1] ] = param\n\t\t\t\t\t\n\t\t\t\t\tvar args : string[] = []\n\t\t\t\t\tif( propName[2] ) args.push( ` ${ propName[2] } : any ` )\n\t\t\t\t\tif( propName[3] ) args.push( ` ${ propName[3] }? : any , force? : $${''}mol_mem_force ` )\n\n\t\t\t\t\tif( needSet ) val = [\n\t\t\t\t\t\t`( ${ propName[3] } !== void 0 ) ? ${ propName[3] } : `,\n\t\t\t\t\t\t...val\n\t\t\t\t\t]\n\t\t\t\t\tval = ['return ', ...val]\n\n\t\t\t\t\tvar decl: StringNodeArray = ['\\t', SourceNode(param.row, param.col, fileName, propName[1]),'(', args.join(',') , ') {\\n\\t\\t' , ...val , '\\n\\t}\\n\\n']\n\t\t\t\t\tif( needCache ) {\n\t\t\t\t\t\tif( propName[2] ) decl = ['\\t@ $' , 'mol_mem_key\\n', ...decl]\n\t\t\t\t\t\telse decl = ['\\t@ $', 'mol_mem\\n', ...decl]\n\t\t\t\t\t}\n\t\t\t\t\tdecl = ['\\t/**\\n\\t * ```\\n', param.toString().trim().replace( /^/mg , '\\t * ' ), '\\n\\t * ```\\n\\t **/\\n' , ...decl]\n\t\t\t\t\tmembers[ propName[1] ] = decl\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch ( err ) {\n\t\t\t\t// err.message += `\\n${param.baseUri}:${param.row}:${param.col}\\n${ param }`\n\t\t\t\tthrow err\n\t\t\t} }\n\n\t\t\tvar body = Object.keys( members ).reduce( function( acc, name ) {\n\t\t\t\tconst items = members[ name ] ? members[name] : ['\\t' , name ,'() { return null as any }\\n\\t}\\n']\n\t\t\t\treturn [...acc, ...items]\n\t\t\t}, [] as StringNodeArray)\n\t\t\tvar classes: StringNodeArray = [ 'namespace $ { export class ', SourceNode(def.row, def.col, fileName, def.type ), ' extends ', SourceNode(parent.row, parent.col, fileName, parent.type), ' {\\n\\n', ...body, '} }\\n'] \n\t\t\t\n\t\t\tcontent = [...content, ...classes]\n\t\t}\n\n\t\treturn { script : content.join('') , locales }\n\n\t\t// splittedUri.push(`-view.tree`,`${ fileName }.map`)\n\n\t\t// const node = SourceNode(null as any, null as any, fileName, content as any);\n\t\t// node.add(`//@ sourceMappingURL=${splittedUri.join($node.path.sep)}`);\n\t\t// const codeWithSourceMap= node.toStringWithSourceMap();\n\t\t// return { script : codeWithSourceMap.code, locales : locales, map: codeWithSourceMap.map.toString() }\n\t}\n\n}\n"]} \ No newline at end of file diff --git a/mol/web.js b/mol/web.js new file mode 100644 index 00000000..67fe42c2 --- /dev/null +++ b/mol/web.js @@ -0,0 +1,5116 @@ +function require( path ){ return $node[ path ] }; +"use strict" + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +var globalThis = globalThis || global || self || this +var $ = ( typeof module === 'object' ) ? Object.setPrototypeOf( module['export'+'s'] , globalThis ) : globalThis +$.$$ = $ +$.$mol = $ // deprecated + +; + +var $node = $node || {} +void function( module ) { var exports = module.exports = this; function require( id ) { return $node[ id.replace( /^.\// , "../mol/" ) ] }; +; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +Error.stackTraceLimit = Infinity; +module.exports; +//mol.js.map +; + +$node[ "../mol/mol" ] = $node[ "../mol/mol.js" ] = module.exports }.call( {} , {} ) +; +"use strict"; +var $; +(function ($) { + let $$; + (function ($$_1) { + })($$ = $.$$ || ($.$$ = {})); + $.$mol_ambient_ref = Symbol('$mol_ambient_ref'); + function $mol_ambient(overrides) { + return Object.setPrototypeOf(overrides, this || $); + } + $.$mol_ambient = $mol_ambient; +})($ || ($ = {})); +//ambient.js.map +; +"use strict"; +var $; +(function ($) { + const instances = new WeakSet(); + function $mol_delegate(proto, target) { + const proxy = new Proxy(proto, { + get: (_, field) => { + const obj = target(); + let val = Reflect.get(obj, field); + if (typeof val === 'function') { + val = val.bind(obj); + } + return val; + }, + has: (_, field) => Reflect.has(target(), field), + set: (_, field, value) => Reflect.set(target(), field, value), + getOwnPropertyDescriptor: (_, field) => Reflect.getOwnPropertyDescriptor(target(), field), + ownKeys: () => Reflect.ownKeys(target()), + getPrototypeOf: () => Reflect.getPrototypeOf(target()), + setPrototypeOf: (_, donor) => Reflect.setPrototypeOf(target(), donor), + isExtensible: () => Reflect.isExtensible(target()), + preventExtensions: () => Reflect.preventExtensions(target()), + apply: (_, self, args) => Reflect.apply(target(), self, args), + construct: (_, args, retarget) => Reflect.construct(target(), args, retarget), + defineProperty: (_, field, descr) => Reflect.defineProperty(target(), field, descr), + deleteProperty: (_, field) => Reflect.deleteProperty(target(), field), + }); + instances.add(proxy); + return proxy; + } + $.$mol_delegate = $mol_delegate; + Reflect.defineProperty($mol_delegate, Symbol.hasInstance, { + value: (obj) => instances.has(obj), + }); +})($ || ($ = {})); +//delegate.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_owning_map = new WeakMap(); + function $mol_owning_allow(having) { + try { + if (!having) + return false; + if (typeof having !== 'object') + return false; + if (having instanceof $.$mol_delegate) + return false; + if (typeof having['destructor'] !== 'function') + return false; + return true; + } + catch (_a) { + return false; + } + } + $.$mol_owning_allow = $mol_owning_allow; + function $mol_owning_get(having, Owner) { + if (!$mol_owning_allow(having)) + return null; + while (true) { + const owner = $.$mol_owning_map.get(having); + if (!owner) + return owner; + if (!Owner) + return owner; + if (owner instanceof Owner) + return owner; + having = owner; + } + } + $.$mol_owning_get = $mol_owning_get; + function $mol_owning_check(owner, having) { + if (!$mol_owning_allow(having)) + return false; + if ($.$mol_owning_map.get(having) !== owner) + return false; + return true; + } + $.$mol_owning_check = $mol_owning_check; + function $mol_owning_catch(owner, having) { + if (!$mol_owning_allow(having)) + return false; + if ($.$mol_owning_map.get(having)) + return false; + $.$mol_owning_map.set(having, owner); + return true; + } + $.$mol_owning_catch = $mol_owning_catch; +})($ || ($ = {})); +//owning.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_fail(error) { + throw error; + } + $.$mol_fail = $mol_fail; +})($ || ($ = {})); +//fail.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_fail_hidden(error) { + throw error; + } + $.$mol_fail_hidden = $mol_fail_hidden; +})($ || ($ = {})); +//hidden.js.map +; +"use strict"; +//writable.js.map +; +"use strict"; +var $; +(function ($) { + var _a; + class $mol_object2 { + constructor(init) { + this[_a] = null; + if (init) + init(this); + } + get $() { + if (this[$.$mol_ambient_ref]) + return this[$.$mol_ambient_ref]; + const owner = $.$mol_owning_get(this); + return this[$.$mol_ambient_ref] = (owner === null || owner === void 0 ? void 0 : owner.$) || $mol_object2.$; + } + set $(next) { + if (this[$.$mol_ambient_ref]) + $.$mol_fail_hidden(new Error('Context already defined')); + this[$.$mol_ambient_ref] = next; + } + static create(init) { + return new this(init); + } + static toString() { return this[Symbol.toStringTag] || this.name; } + destructor() { } + toString() { + return this[Symbol.toStringTag] || this.constructor.name + '()'; + } + toJSON() { + return this.toString(); + } + } + _a = $.$mol_ambient_ref; + $mol_object2.$ = $; + $.$mol_object2 = $mol_object2; +})($ || ($ = {})); +//object2.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_tick extends $.$mol_object2 { + constructor(task) { + super(); + this.task = task; + this.cancelled = false; + this.promise = Promise.resolve().then(() => { + if (this.cancelled) + return; + task(); + }); + } + destructor() { + this.cancelled = true; + } + } + $.$mol_after_tick = $mol_after_tick; +})($ || ($ = {})); +//tick.js.map +; +"use strict"; +var $; +(function ($) { +})($ || ($ = {})); +//context.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_dom_context = self; +})($ || ($ = {})); +//context.web.js.map +; +"use strict"; +var $; +(function ($) { + let all = []; + let el = null; + let timer = null; + function $mol_style_attach(id, text) { + all.push(`/* ${id} */\n\n${text}`); + if (timer) + return el; + const doc = $.$mol_dom_context.document; + if (!doc) + return null; + el = doc.createElement('style'); + el.id = `$mol_style_attach`; + doc.head.appendChild(el); + timer = new $.$mol_after_tick(() => { + el.innerHTML = '\n' + all.join('\n\n'); + all = []; + el = null; + timer = null; + }); + return el; + } + $.$mol_style_attach = $mol_style_attach; +})($ || ($ = {})); +//attach.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_decor { + constructor(value) { + this.value = value; + } + prefix() { return ''; } + valueOf() { return this.value; } + postfix() { return ''; } + toString() { + return `${this.prefix()}${this.valueOf()}${this.postfix()}`; + } + } + $.$mol_decor = $mol_decor; +})($ || ($ = {})); +//decor.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_style_unit extends $.$mol_decor { + constructor(value, literal) { + super(value); + this.literal = literal; + } + postfix() { + return this.literal; + } + static per(value) { return new $mol_style_unit(value, '%'); } + static px(value) { return new $mol_style_unit(value, 'px'); } + static mm(value) { return new $mol_style_unit(value, 'mm'); } + static cm(value) { return new $mol_style_unit(value, 'cm'); } + static Q(value) { return new $mol_style_unit(value, 'Q'); } + static in(value) { return new $mol_style_unit(value, 'in'); } + static pc(value) { return new $mol_style_unit(value, 'pc'); } + static pt(value) { return new $mol_style_unit(value, 'pt'); } + static cap(value) { return new $mol_style_unit(value, 'cap'); } + static ch(value) { return new $mol_style_unit(value, 'ch'); } + static em(value) { return new $mol_style_unit(value, 'em'); } + static rem(value) { return new $mol_style_unit(value, 'rem'); } + static ex(value) { return new $mol_style_unit(value, 'ex'); } + static ic(value) { return new $mol_style_unit(value, 'ic'); } + static lh(value) { return new $mol_style_unit(value, 'lh'); } + static rlh(value) { return new $mol_style_unit(value, 'rlh'); } + static vh(value) { return new $mol_style_unit(value, 'vh'); } + static vw(value) { return new $mol_style_unit(value, 'vw'); } + static vi(value) { return new $mol_style_unit(value, 'vi'); } + static vb(value) { return new $mol_style_unit(value, 'vb'); } + static vmin(value) { return new $mol_style_unit(value, 'vmin'); } + static vmax(value) { return new $mol_style_unit(value, 'vmax'); } + static deg(value) { return new $mol_style_unit(value, 'deg'); } + static rad(value) { return new $mol_style_unit(value, 'rad'); } + static grad(value) { return new $mol_style_unit(value, 'grad'); } + static turn(value) { return new $mol_style_unit(value, 'turn'); } + static s(value) { return new $mol_style_unit(value, 's'); } + static ms(value) { return new $mol_style_unit(value, 'ms'); } + } + $.$mol_style_unit = $mol_style_unit; +})($ || ($ = {})); +//unit.js.map +; +"use strict"; +var $; +(function ($) { + const { per } = $.$mol_style_unit; + class $mol_style_func extends $.$mol_decor { + constructor(name, value) { + super(value); + this.name = name; + } + prefix() { return this.name + '('; } + postfix() { return ')'; } + static calc(value) { + return new $mol_style_func('calc', value); + } + static vary(name) { + return new $mol_style_func('var', name); + } + static url(href) { + return new $mol_style_func('url', JSON.stringify(href)); + } + static hsla(hue, saturation, lightness, alpha) { + return new $mol_style_func('hsla', [hue, per(saturation), per(lightness), alpha]); + } + static rgba(red, green, blue, alpha) { + return new $mol_style_func('rgba', [red, green, blue, alpha]); + } + } + $.$mol_style_func = $mol_style_func; +})($ || ($ = {})); +//func.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/theme/theme.css", "[mol_theme] {\n\tbackground-color: var(--mol_theme_back);\n\tcolor: var(--mol_theme_text);\n\tfill: var(--mol_theme_text);\n}\n\n[mol_theme=\"$mol_theme_light\"] , :root {\n\t--mol_theme_back: hsl( 210 , 50% , 99% );\n\t--mol_theme_hover: rgba( 0 , 0 , 0 , .05 );\n\t--mol_theme_current: hsl( 210 , 100% , 80% );\n\t--mol_theme_text: hsl( 0 , 0% , 0% );\n\t--mol_theme_control: hsla( 210 , 60% , 35% , 1 );\n\t--mol_theme_shade: rgba( 0 , 0 , 0 , .5 );\n\t--mol_theme_line: rgba( 220 , 220 , 220 , 1 );\n\t--mol_theme_focus: hsl( 290 , 100% , 40% );\n\t--mol_theme_field: white;\n\t--mol_theme_image: none;\n}\n\n[mol_theme=\"$mol_theme_dark\"] {\n\t--mol_theme_back: hsl( 210 , 50% , 10% );\n\t--mol_theme_hover: #333;\n\t--mol_theme_current: hsl( 210 , 100% , 30% );\n\t--mol_theme_text: hsl( 0 , 0% , 80% );\n\t--mol_theme_control: hsla( 210 , 60% , 70% , 1 );\n\t--mol_theme_shade: rgba( 255 , 255 , 255 , .5 );\n\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\n\t--mol_theme_focus: hsl( 60 , 100% , 70% );\n\t--mol_theme_field: black;\n\t--mol_theme_image: invert(1) hue-rotate(180deg);\n}\n\n[mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsla( 210 , 60% , 35% , 1 );\n\t--mol_theme_hover: hsla( 210 , 60% , 20% , 1 );\n\t--mol_theme_current: hsl( 210 , 100% , 20% );\n\t--mol_theme_text: white;\n\t--mol_theme_line: white;\n\t--mol_theme_control: white;\n}\n\n[mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( 15 , 60% , 50% );\n\t--mol_theme_hover: hsl( 15 , 60% , 40% );\n\t--mol_theme_text: white;\n\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\n\t--mol_theme_control: white;\n\t--mol_theme_focus: black;\n}\n\n[mol_theme=\"$mol_theme_accent\"] [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: black;\n\t--mol_theme_text: white;\n}\n"); +})($ || ($ = {})); +//theme.css.js.map +; +"use strict"; +var $; +(function ($) { + const { vary } = $.$mol_style_func; + $.$mol_theme = { + back: vary('--mol_theme_back'), + hover: vary('--mol_theme_hover'), + current: vary('--mol_theme_current'), + text: vary('--mol_theme_text'), + control: vary('--mol_theme_control'), + shade: vary('--mol_theme_shade'), + line: vary('--mol_theme_line'), + focus: vary('--mol_theme_focus'), + field: vary('--mol_theme_field'), + image: vary('--mol_theme_image'), + }; +})($ || ($ = {})); +//theme.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/skin/skin.css", ":root {\n\t--mol_skin_font: 16px/24px sans-serif;\n\t/* --mol_skin_font_monospace: Monaco, monospace; */\n\t--mol_skin_font_monospace: monospace;\n}\n\n/* Deprecated, use mol_theme instead */\n:root {\n\n\t--mol_skin_outline: 0 0 0 1px var(--mol_theme_line);\n\t\n\t--mol_skin_base: #3a8ccb;\n\t--mol_skin_base_text: white;\n\t\n\t--mol_skin_current: var(--mol_skin_base);\n\t--mol_skin_current_text: white;\n\t--mol_skin_current_line: #1471b8;\n\t\n\t--mol_skin_button: var(--mol_skin_card);\n\t--mol_skin_hover: rgba( 0 , 0 , 0 , .05 );\n\t\n\t--mol_skin_round: 0px;\n\t\n\t--mol_skin_focus_line: rgba( 0 , 0 , 0 , .2 );\n\t--mol_skin_focus_outline: 0 0 0 1px var(--mol_skin_focus_line);\n\t\n\t--mol_skin_float: var(--mol_skin_focus_outline);\n\n\t--mol_skin_passive: #eee;\n\t--mol_skin_passive_text: rgba( 0 , 0 , 0 , .5 );\n\t\n\t--mol_skin_light: #fcfcfc;\n\t--mol_skin_light_line: rgba( 230 , 230 , 230 , .75 );\n\t--mol_skin_light_text: rgba( 0 , 0 , 0 , .9 );\n\t--mol_skin_light_hover: #f7f7f7;\n\t--mol_skin_light_outline: 0 0 0 1px var(--mol_theme_line);\n\n\t--mol_skin_card: var(--mol_theme_back);\n\t--mol_skin_card_text: var(--mol_theme_text);\n\t\n\t--mol_skin_accent: #dd0e3e;\n\t--mol_skin_accent_text: white;\n\t--mol_skin_accent_hover: #c50d37;\n\n\t--mol_skin_warn: rgba( 255 , 50 , 50 , 0.75 );\n\t--mol_skin_warn_text: white;\n\t--mol_skin_warn_hover: color( var(--mol_skin_warn) lightness(-5%) );\n\n\t--mol_skin_good: #96DAA9;\n\t--mol_skin_good_text: black;\n\n\t--mol_skin_bad: #CC5252;\n\t--mol_skin_bad_text: white;\n}\n"); +})($ || ($ = {})); +//skin.css.js.map +; +"use strict"; +var $; +(function ($_1) { + let $$; + (function ($$) { + let $; + })($$ = $_1.$$ || ($_1.$$ = {})); + $_1.$mol_object_field = Symbol('$mol_object_field'); + class $mol_object extends $_1.$mol_object2 { + static make(config) { + return super.create(obj => { + for (let key in config) + obj[key] = config[key]; + }); + } + } + $_1.$mol_object = $mol_object; +})($ || ($ = {})); +//object.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_log3_area_lazy(event) { + const self = this; + const stack = self.$mol_log3_stack; + const deep = stack.length; + let logged = false; + stack.push(() => { + logged = true; + self.$mol_log3_area.call(self, event); + }); + return () => { + if (logged) + self.console.groupEnd(); + if (stack.length > deep) + stack.length = deep; + }; + } + $.$mol_log3_area_lazy = $mol_log3_area_lazy; + $.$mol_log3_stack = []; +})($ || ($ = {})); +//log3.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_log3_web_make(level, color) { + return function $mol_log3_logger(event) { + const pending = this.$mol_log3_stack.pop(); + if (pending) + pending(); + let tpl = '%c'; + const chunks = Object.values(event); + for (let i = 0; i < chunks.length; ++i) { + tpl += (typeof chunks[i] === 'string') ? ' ⦙ %s' : ' ⦙ %o'; + } + const style = `color:${color};font-weight:bolder`; + this.console[level](tpl, style, ...chunks); + const self = this; + return () => self.console.groupEnd(); + }; + } + $.$mol_log3_web_make = $mol_log3_web_make; + $.$mol_log3_come = $mol_log3_web_make('info', 'royalblue'); + $.$mol_log3_done = $mol_log3_web_make('info', 'forestgreen'); + $.$mol_log3_fail = $mol_log3_web_make('error', 'orangered'); + $.$mol_log3_warn = $mol_log3_web_make('warn', 'goldenrod'); + $.$mol_log3_rise = $mol_log3_web_make('log', 'magenta'); + $.$mol_log3_area = $mol_log3_web_make('group', 'cyan'); +})($ || ($ = {})); +//log3.web.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_wrapper extends $.$mol_object2 { + static run(task) { + return this.func(task)(); + } + static func(func) { + return this.wrap(func); + } + static get class() { + return (Class) => { + const construct = (target, args) => new Class(...args); + const handler = { + construct: this.func(construct) + }; + handler[Symbol.toStringTag] = Class.name + '#'; + return new Proxy(Class, handler); + }; + } + static get method() { + return (obj, name, descr) => { + descr.value = this.func(descr.value); + return descr; + }; + } + static get field() { + return (obj, name, descr) => { + descr.get = descr.set = this.func(descr.get); + return descr; + }; + } + } + $.$mol_wrapper = $mol_wrapper; +})($ || ($ = {})); +//wrapper.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_frame extends $.$mol_object2 { + constructor(task) { + super(); + this.task = task; + this.cancelled = false; + this.promise = $mol_after_frame.promise.then(() => { + if (this.cancelled) + return; + task(); + }); + } + static get promise() { + if (this._promise) + return this._promise; + return this._promise = new Promise(done => requestAnimationFrame(() => { + this._promise = null; + done(); + })); + } + destructor() { + this.cancelled = true; + } + } + $mol_after_frame._promise = null; + $.$mol_after_frame = $mol_after_frame; +})($ || ($ = {})); +//frame.web.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_compare_any(a, b) { + if (a === b) + return true; + if (!Number.isNaN(a)) + return false; + if (!Number.isNaN(b)) + return false; + return true; + } + $.$mol_compare_any = $mol_compare_any; +})($ || ($ = {})); +//any.js.map +; +"use strict"; +var $; +(function ($) { + const cache = new WeakMap(); + $.$mol_conform_stack = []; + function $mol_conform(target, source) { + if ($.$mol_compare_any(target, source)) + return source; + if (!target || typeof target !== 'object') + return target; + if (!source || typeof source !== 'object') + return target; + if (target instanceof Error) + return target; + if (source instanceof Error) + return target; + if (target['constructor'] !== source['constructor']) + return target; + if (cache.get(target)) + return target; + cache.set(target, true); + const conform = $.$mol_conform_handlers.get(target['constructor']); + if (!conform) + return target; + if ($.$mol_conform_stack.indexOf(target) !== -1) + return target; + $.$mol_conform_stack.push(target); + try { + return conform(target, source); + } + finally { + $.$mol_conform_stack.pop(); + } + } + $.$mol_conform = $mol_conform; + $.$mol_conform_handlers = new WeakMap(); + function $mol_conform_handler(cl, handler) { + $.$mol_conform_handlers.set(cl, handler); + } + $.$mol_conform_handler = $mol_conform_handler; + function $mol_conform_array(target, source) { + if (source.length !== target.length) + return target; + for (let i = 0; i < target.length; ++i) { + if (!$.$mol_compare_any(source[i], target[i])) + return target; + } + return source; + } + $.$mol_conform_array = $mol_conform_array; + $mol_conform_handler(Array, $mol_conform_array); + $mol_conform_handler(Uint8Array, $mol_conform_array); + $mol_conform_handler(Uint16Array, $mol_conform_array); + $mol_conform_handler(Uint32Array, $mol_conform_array); + $mol_conform_handler(Object, (target, source) => { + let count = 0; + let equal = true; + for (let key in target) { + const conformed = $mol_conform(target[key], source[key]); + if (conformed !== target[key]) { + try { + target[key] = conformed; + } + catch (error) { } + if (!$.$mol_compare_any(conformed, target[key])) + equal = false; + } + if (!$.$mol_compare_any(conformed, source[key])) + equal = false; + ++count; + } + for (let key in source) + if (--count < 0) + break; + return (equal && count === 0) ? source : target; + }); + $mol_conform_handler(Date, (target, source) => { + if (target.getTime() === source.getTime()) + return source; + return target; + }); + $mol_conform_handler(RegExp, (target, source) => { + if (target.toString() === source.toString()) + return source; + return target; + }); +})($ || ($ = {})); +//conform.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_array_trim(array) { + let last = array.length; + while (last > 0) { + --last; + const value = array[last]; + if (value === undefined) + array.pop(); + else + break; + } + return array; + } + $.$mol_array_trim = $mol_array_trim; +})($ || ($ = {})); +//trim.js.map +; +"use strict"; +var $; +(function ($) { + $['devtoolsFormatters'] = $['devtoolsFormatters'] || []; + function $mol_dev_format_register(config) { + $['devtoolsFormatters'].push(config); + } + $.$mol_dev_format_register = $mol_dev_format_register; + $.$mol_dev_format_head = Symbol('$mol_dev_format_head'); + $.$mol_dev_format_body = Symbol('$mol_dev_format_body'); + $mol_dev_format_register({ + header: (val, config = false) => { + if (config) + return null; + if (!val) + return null; + if ($.$mol_dev_format_head in val) { + return val[$.$mol_dev_format_head](); + } + return null; + }, + hasBody: val => val[$.$mol_dev_format_body], + body: val => val[$.$mol_dev_format_body](), + }); + function $mol_dev_format_native(obj) { + if (typeof obj === 'undefined') + return $.$mol_dev_format_shade('undefined'); + if (typeof obj !== 'object') + return obj; + return [ + 'object', + { + object: obj, + config: true, + }, + ]; + } + $.$mol_dev_format_native = $mol_dev_format_native; + function $mol_dev_format_auto(obj) { + if (obj == null) + return $.$mol_dev_format_shade(String(obj)); + if (typeof obj === 'object' && $.$mol_dev_format_head in obj) { + return obj[$.$mol_dev_format_head](); + } + return [ + 'object', + { + object: obj, + config: false, + }, + ]; + } + $.$mol_dev_format_auto = $mol_dev_format_auto; + function $mol_dev_format_element(element, style, ...content) { + const styles = []; + for (let key in style) + styles.push(`${key} : ${style[key]}`); + return [ + element, + { + style: styles.join(' ; '), + }, + ...content, + ]; + } + $.$mol_dev_format_element = $mol_dev_format_element; + function $mol_dev_format_span(style, ...content) { + return $mol_dev_format_element('span', Object.assign({ 'vertical-align': '8%' }, style), ...content); + } + $.$mol_dev_format_span = $mol_dev_format_span; + $.$mol_dev_format_div = $mol_dev_format_element.bind(null, 'div'); + $.$mol_dev_format_ol = $mol_dev_format_element.bind(null, 'ol'); + $.$mol_dev_format_li = $mol_dev_format_element.bind(null, 'li'); + $.$mol_dev_format_table = $mol_dev_format_element.bind(null, 'table'); + $.$mol_dev_format_tr = $mol_dev_format_element.bind(null, 'tr'); + $.$mol_dev_format_td = $mol_dev_format_element.bind(null, 'td'); + $.$mol_dev_format_accent = $mol_dev_format_span.bind(null, { + 'color': 'magenta', + }); + $.$mol_dev_format_strong = $mol_dev_format_span.bind(null, { + 'font-weight': 'bold', + }); + $.$mol_dev_format_string = $mol_dev_format_span.bind(null, { + 'color': 'green', + }); + $.$mol_dev_format_shade = $mol_dev_format_span.bind(null, { + 'color': 'gray', + }); + $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, { + 'margin-left': '13px' + }); +})($ || ($ = {})); +//format.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_fiber_defer(calculate) { + const fiber = new $mol_fiber; + fiber.calculate = calculate; + fiber[Symbol.toStringTag] = calculate.name; + fiber.schedule(); + return fiber; + } + $.$mol_fiber_defer = $mol_fiber_defer; + function $mol_fiber_func(calculate) { + $.$mol_ambient({}).$mol_log3_warn({ + place: '$mol_fiber_func', + message: 'Deprecated', + hint: 'Use $mol_fiber.func instead', + }); + return $mol_fiber.func(calculate); + } + $.$mol_fiber_func = $mol_fiber_func; + function $mol_fiber_root(calculate) { + const wrapper = function (...args) { + const fiber = new $mol_fiber(); + fiber.calculate = calculate.bind(this, ...args); + fiber[Symbol.toStringTag] = wrapper[Symbol.toStringTag]; + return fiber.wake(); + }; + wrapper[Symbol.toStringTag] = calculate.name; + return wrapper; + } + $.$mol_fiber_root = $mol_fiber_root; + function $mol_fiber_method(obj, name, descr) { + $.$mol_ambient({}).$mol_log3_warn({ + place: '$mol_fiber_method', + message: 'Deprecated', + hint: 'Use $mol_fiber.method instead', + }); + return $mol_fiber.method(obj, name, descr); + } + $.$mol_fiber_method = $mol_fiber_method; + function $mol_fiber_async(task) { + return (...args) => new Promise($mol_fiber_root((done, fail) => { + try { + done(task(...args)); + } + catch (error) { + if ('then' in error) + return $.$mol_fail_hidden(error); + fail(error); + } + })); + } + $.$mol_fiber_async = $mol_fiber_async; + function $mol_fiber_sync(request) { + return function $mol_fiber_sync_wrapper(...args) { + const slave = $mol_fiber.current; + let master = slave && slave.master; + if (!master || master.constructor !== $mol_fiber) { + master = new $mol_fiber; + master.cursor = -3; + master.error = request.call(this, ...args).then((next) => master.push(next), (error) => master.fail(error)); + const prefix = slave ? `${slave}/${slave.cursor / 2}:` : '/'; + master[Symbol.toStringTag] = prefix + (request.name || $mol_fiber_sync.name); + } + return master.get(); + }; + } + $.$mol_fiber_sync = $mol_fiber_sync; + async function $mol_fiber_warp() { + const deadline = $mol_fiber.deadline; + try { + $mol_fiber.deadline = Number.POSITIVE_INFINITY; + while ($mol_fiber.queue.length) + await $mol_fiber.tick(); + return Promise.resolve(); + } + finally { + $mol_fiber.deadline = deadline; + } + } + $.$mol_fiber_warp = $mol_fiber_warp; + function $mol_fiber_fence(func) { + const prev = $mol_fiber.current; + try { + $mol_fiber.current = null; + return func(); + } + finally { + $mol_fiber.current = prev; + } + } + $.$mol_fiber_fence = $mol_fiber_fence; + function $mol_fiber_unlimit(task) { + const deadline = $mol_fiber.deadline; + try { + $mol_fiber.deadline = Number.POSITIVE_INFINITY; + return task(); + } + finally { + $mol_fiber.deadline = deadline; + } + } + $.$mol_fiber_unlimit = $mol_fiber_unlimit; + class $mol_fiber_solid extends $.$mol_wrapper { + static func(task) { + function wrapped(...args) { + const deadline = $mol_fiber.deadline; + try { + $mol_fiber.deadline = Number.POSITIVE_INFINITY; + return task.call(this, ...args); + } + catch (error) { + if ('then' in error) + $.$mol_fail(new Error('Solid fiber can not be suspended.')); + return $.$mol_fail_hidden(error); + } + finally { + $mol_fiber.deadline = deadline; + } + } + return $mol_fiber.func(wrapped); + } + } + $.$mol_fiber_solid = $mol_fiber_solid; + class $mol_fiber extends $.$mol_wrapper { + constructor() { + super(...arguments); + this.cursor = 0; + this.masters = []; + this._value = undefined; + this._error = null; + } + static wrap(task) { + return function $mol_fiber_wrapper(...args) { + const slave = $mol_fiber.current; + let master = slave && slave.master; + if (!master || master.constructor !== $mol_fiber) { + master = new $mol_fiber; + master.calculate = task.bind(this, ...args); + const prefix = slave ? `${slave}/${slave.cursor / 2}:` : '/'; + master[Symbol.toStringTag] = `${prefix}${task.name}`; + } + return master.get(); + }; + } + static async tick() { + while ($mol_fiber.queue.length > 0) { + const now = Date.now(); + if (now >= $mol_fiber.deadline) { + $mol_fiber.schedule(); + $mol_fiber.liveline = now; + return; + } + const task = $mol_fiber.queue.shift(); + await task(); + } + } + static schedule() { + if (!$mol_fiber.scheduled) { + $mol_fiber.scheduled = new $.$mol_after_frame(async () => { + const now = Date.now(); + let quant = $mol_fiber.quant; + if ($mol_fiber.liveline) { + quant = Math.max(quant, Math.floor((now - $mol_fiber.liveline) / 2)); + $mol_fiber.liveline = 0; + } + $mol_fiber.deadline = now + quant; + $mol_fiber.scheduled = null; + await $mol_fiber.tick(); + }); + } + const promise = new this.$.Promise(done => this.queue.push(() => (done(null), promise))); + return promise; + } + get value() { return this._value; } + set value(next) { + this._value = next; + } + get error() { return this._error; } + set error(next) { + this._error = next; + } + schedule() { + $mol_fiber.schedule().then(() => this.wake()); + } + wake() { + const unscoupe = this.$.$mol_log3_area_lazy({ + place: this, + message: 'Wake' + }); + try { + if (this.cursor > -2) + return this.get(); + } + catch (error) { + if ('then' in error) + return; + $.$mol_fail_hidden(error); + } + finally { + unscoupe(); + } + } + push(value) { + value = this.$.$mol_conform(value, this.value); + if (this.error !== null || !Object.is(this.value, value)) { + if ($mol_fiber.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Changed', + next: value, + value: this.value, + error: this.error, + }); + this.obsolete_slaves(); + this.forget(); + } + else { + if ($mol_fiber.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Same value', + value, + }); + } + this.error = null; + this.value = value; + this.complete(); + return value; + } + fail(error) { + this.complete(); + if ($mol_fiber.logs) + this.$.$mol_log3_fail({ + place: this, + message: error.message, + }); + this.error = error; + this.obsolete_slaves(); + return error; + } + wait(promise) { + this.error = promise; + if ($mol_fiber.logs) + this.$.$mol_log3_warn({ + place: this, + message: `Wait`, + hint: `Don't panic, it's normal`, + promise, + }); + this.cursor = 0; + return promise; + } + complete() { + if (this.cursor <= -2) + return; + for (let index = 0; index < this.masters.length; index += 2) { + this.complete_master(index); + } + this.cursor = -2; + } + complete_master(master_index) { + this.disobey(master_index); + } + pull() { + if ($mol_fiber.logs) + this.$.$mol_log3_come({ + place: this, + message: 'Pull', + }); + this.push(this.calculate()); + } + update() { + const slave = $mol_fiber.current; + try { + $mol_fiber.current = this; + this.pull(); + } + catch (error) { + if (Object(error) !== error) + error = new Error(error); + if ('then' in error) { + if (!slave) { + const listener = () => this.wake(); + error = error.then(listener, listener); + } + this.wait(error); + } + else { + this.fail(error); + } + } + finally { + $mol_fiber.current = slave; + } + } + get() { + if (this.cursor > 0) { + this.$.$mol_fail(new Error(`Cyclic dependency at ${this}`)); + } + const slave = $mol_fiber.current; + if (slave) + slave.master = this; + if (this.cursor > -2) + this.update(); + if (this.error !== null) + return this.$.$mol_fail_hidden(this.error); + return this.value; + } + limit() { + if (!$mol_fiber.deadline) + return; + if (!$mol_fiber.current) + return; + if (Date.now() < $mol_fiber.deadline) + return; + this.$.$mol_fail_hidden($mol_fiber.schedule()); + } + get master() { + return this.masters[this.cursor]; + } + set master(next) { + if (this.cursor === -1) + return; + const cursor = this.cursor; + const prev = this.masters[this.cursor]; + if (prev !== next) { + if (prev) + this.rescue(prev, cursor); + this.masters[cursor] = next; + this.masters[cursor + 1] = this.obey(next, cursor); + } + this.cursor = cursor + 2; + } + rescue(master, master_index) { } + obey(master, master_index) { return -1; } + lead(slave, master_index) { return -1; } + dislead(slave_index) { + this.destructor(); + } + disobey(master_index) { + const master = this.masters[master_index]; + if (!master) + return; + master.dislead(this.masters[master_index + 1]); + this.masters[master_index] = undefined; + this.masters[master_index + 1] = undefined; + this.$.$mol_array_trim(this.masters); + } + obsolete_slaves() { } + obsolete(master_index) { } + forget() { + this.value = undefined; + } + abort() { + this.forget(); + return true; + } + destructor() { + if (!this.abort()) + return; + if ($mol_fiber.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Destructed', + }); + this.complete(); + } + [$.$mol_dev_format_head]() { + return $.$mol_dev_format_native(this); + } + } + $mol_fiber.logs = false; + $mol_fiber.quant = 16; + $mol_fiber.deadline = 0; + $mol_fiber.liveline = 0; + $mol_fiber.current = null; + $mol_fiber.scheduled = null; + $mol_fiber.queue = []; + $.$mol_fiber = $mol_fiber; +})($ || ($ = {})); +//fiber.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_atom2_value(task, next) { + const cached = $mol_atom2.cached; + try { + $mol_atom2.cached = true; + $mol_atom2.cached_next = next; + return task(); + } + finally { + $mol_atom2.cached = cached; + } + } + $.$mol_atom2_value = $mol_atom2_value; + class $mol_atom2 extends $.$mol_fiber { + constructor() { + super(...arguments); + this.slaves = []; + } + static get current() { + const atom = $.$mol_fiber.current; + if (atom instanceof $mol_atom2) + return atom; + return null; + } + static reap(atom) { + this.reap_queue.push(atom); + if (this.reap_task) + return; + this.reap_task = $.$mol_fiber_defer(() => { + this.reap_task = null; + while (true) { + const atom = this.reap_queue.pop(); + if (!atom) + break; + if (!atom.alone) + continue; + atom.destructor(); + } + }); + } + rescue(master, cursor) { + if (!(master instanceof $mol_atom2)) + return; + const master_index = this.masters.length; + const slave_index = this.masters[cursor + 1] + 1; + master.slaves[slave_index] = master_index; + this.masters.push(master, this.masters[cursor + 1]); + } + subscribe(promise) { + const obsolete = () => this.obsolete(); + return promise.then(obsolete, obsolete); + } + get() { + if ($mol_atom2.cached) { + if ($mol_atom2.cached_next !== undefined) { + this.push($mol_atom2.cached_next); + $mol_atom2.cached_next = undefined; + } + return this.value; + } + const value = super.get(); + if (value === undefined) + $.$mol_fail(new Error(`Not defined: ${this}`)); + return value; + } + pull() { + if (this.cursor === 0) + return super.pull(); + if ($mol_atom2.logs) + this.$.$mol_log3_come({ + place: this, + message: 'Check doubt masters', + }); + const masters = this.masters; + for (let index = 0; index < masters.length; index += 2) { + const master = masters[index]; + if (!master) + continue; + try { + master.get(); + } + catch (error) { + if ('then' in error) + $.$mol_fail_hidden(error); + this.cursor = 0; + } + if (this.cursor !== 0) + continue; + if ($mol_atom2.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Obsoleted while checking', + }); + return super.pull(); + } + if ($mol_atom2.logs) + this.$.$mol_log3_done({ + place: this, + message: 'Masters not changed', + }); + this.cursor = -2; + } + get value() { return this._value; } + set value(next) { + const prev = this._value; + if (prev && this.$.$mol_owning_check(this, prev)) + prev.destructor(); + if (next && this.$.$mol_owning_catch(this, next)) { + try { + next[Symbol.toStringTag] = this[Symbol.toStringTag]; + } + catch (_a) { } + next[$.$mol_object_field] = this[$.$mol_object_field]; + } + this._value = next; + } + get error() { return this._error; } + set error(next) { + const prev = this._error; + if (prev && this.$.$mol_owning_check(this, prev)) + prev.destructor(); + if (next && this.$.$mol_owning_catch(this, next)) { + next[Symbol.toStringTag] = this[Symbol.toStringTag]; + next[$.$mol_object_field] = this[$.$mol_object_field]; + } + this._error = next; + } + put(next) { + this.cursor = this.masters.length; + next = this.push(next); + this.cursor = -3; + return next; + } + complete_master(master_index) { + if (this.masters[master_index] instanceof $mol_atom2) { + if (master_index >= this.cursor) + this.disobey(master_index); + } + else { + this.disobey(master_index); + } + } + obey(master, master_index) { + return master.lead(this, master_index); + } + lead(slave, master_index) { + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Leads', + slave, + }); + const slave_index = this.slaves.length; + this.slaves[slave_index] = slave; + this.slaves[slave_index + 1] = master_index; + return slave_index; + } + dislead(slave_index) { + if (slave_index < 0) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Disleads', + slave: this.slaves[slave_index], + }); + this.slaves[slave_index] = undefined; + this.slaves[slave_index + 1] = undefined; + $.$mol_array_trim(this.slaves); + if (this.cursor > -3 && this.alone) + $mol_atom2.reap(this); + } + obsolete(master_index = -1) { + if (this.cursor > 0) { + if (master_index >= this.cursor - 2) + return; + const path = []; + let current = this; + collect: while (current) { + path.push(current); + current = current.masters[current.cursor - 2]; + } + this.$.$mol_fail(new Error(`Obsoleted while calculation \n\n${path.join('\n')}\n`)); + } + if (this.cursor === 0) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Obsoleted', + }); + if (this.cursor !== -1) + this.doubt_slaves(); + this.cursor = 0; + } + doubt(master_index = -1) { + if (this.cursor > 0) { + if (master_index >= this.cursor - 2) + return; + const path = []; + let current = this; + collect: while (current) { + path.push(current); + current = current.masters[current.cursor - 2]; + } + this.$.$mol_fail(new Error(`Doubted while calculation \n\n${path.join('\n')}\n`)); + } + if (this.cursor >= -1) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Doubted', + }); + this.cursor = -1; + this.doubt_slaves(); + } + obsolete_slaves() { + for (let index = 0; index < this.slaves.length; index += 2) { + const slave = this.slaves[index]; + if (slave) + slave.obsolete(this.slaves[index + 1]); + } + } + doubt_slaves() { + for (let index = 0; index < this.slaves.length; index += 2) { + const slave = this.slaves[index]; + if (slave) + slave.doubt(this.slaves[index + 1]); + } + } + get fresh() { + return () => { + if (this.cursor !== -2) + return; + this.cursor = 0; + $.$mol_fiber_solid.run(() => this.update()); + }; + } + get alone() { + return this.slaves.length === 0; + } + get derived() { + for (let index = 0; index < this.masters.length; index += 2) { + if (this.masters[index]) + return true; + } + return false; + } + destructor() { + if (!this.abort()) + return; + if ($mol_atom2.logs) + this.$.$mol_log3_rise({ + place: this, + message: 'Destructed' + }); + this.cursor = -3; + for (let index = 0; index < this.masters.length; index += 2) { + this.complete_master(index); + } + } + } + $mol_atom2.logs = false; + $mol_atom2.cached = false; + $mol_atom2.cached_next = undefined; + $mol_atom2.reap_task = null; + $mol_atom2.reap_queue = []; + $.$mol_atom2 = $mol_atom2; +})($ || ($ = {})); +//atom2.js.map +; +"use strict"; +//param.js.map +; +"use strict"; +//result.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_mem_force extends Object { + constructor() { + super(); + this.$mol_mem_force = true; + } + static toString() { return this.name; } + } + $mol_mem_force.$mol_mem_force = true; + $.$mol_mem_force = $mol_mem_force; + class $mol_mem_force_cache extends $mol_mem_force { + } + $.$mol_mem_force_cache = $mol_mem_force_cache; + class $mol_mem_force_update extends $mol_mem_force { + } + $.$mol_mem_force_update = $mol_mem_force_update; + class $mol_mem_force_fail extends $mol_mem_force_cache { + } + $.$mol_mem_force_fail = $mol_mem_force_fail; +})($ || ($ = {})); +//force.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_cached = $.$mol_atom2_value; + function $mol_mem_persist() { + const atom = $.$mol_atom2.current; + if (!atom) + return; + if (atom.hasOwnProperty('destructor')) + return; + atom.destructor = () => { }; + } + $.$mol_mem_persist = $mol_mem_persist; + function $mol_mem(proto, name, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(proto, name); + const orig = descr.value; + const store = new WeakMap(); + Object.defineProperty(proto, name + "()", { + get: function () { + return store.get(this); + } + }); + const get_cache = (host) => { + let cache = store.get(host); + if (cache) + return cache; + let cache2 = new $.$mol_atom2; + cache2.calculate = orig.bind(host); + cache2[Symbol.toStringTag] = `${host}.${name}()`; + cache2.abort = () => { + store.delete(host); + cache2.forget(); + return true; + }; + $.$mol_owning_catch(host, cache2); + cache2[$.$mol_object_field] = name; + store.set(host, cache2); + return cache2; + }; + function value(next, force) { + if (next === undefined) { + const cache = get_cache(this); + if (force === $.$mol_mem_force_cache) + return cache.obsolete(Number.NaN); + if ($.$mol_atom2.current) + return cache.get(); + else + return $.$mol_fiber.run(() => cache.get()); + } + return $.$mol_fiber.run(() => { + if (force === $.$mol_mem_force_fail) + return get_cache(this).fail(next); + if (force !== $.$mol_mem_force_cache) + next = orig.call(this, next); + return get_cache(this).put(next); + }); + } + return Object.assign(Object.assign({}, descr || {}), { value: Object.assign(value, { orig }) }); + } + $.$mol_mem = $mol_mem; +})($ || ($ = {})); +//mem.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_window extends $.$mol_object { + static size(next, force) { + return next || { + width: self.innerWidth, + height: self.innerHeight, + }; + } + } + __decorate([ + $.$mol_mem + ], $mol_window, "size", null); + $.$mol_window = $mol_window; + const $mol_window_resize = () => { + $mol_window.size(undefined, $.$mol_mem_force_cache); + }; + self.addEventListener('resize', $.$mol_fiber_root($mol_window_resize)); +})($ || ($ = {})); +//window.web.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dict_key(value) { + if (!value) + return JSON.stringify(value); + if (typeof value !== 'object' && typeof value !== 'function') + return JSON.stringify(value); + if (Array.isArray(value)) + return JSON.stringify(value); + if (Object.getPrototypeOf(Object.getPrototypeOf(value)) === null) + return JSON.stringify(value); + return value; + } + $.$mol_dict_key = $mol_dict_key; + class $mol_dict extends Map { + get(key) { + return super.get($mol_dict_key(key)); + } + has(key) { + return super.has($mol_dict_key(key)); + } + set(key, value) { + return super.set($mol_dict_key(key), value); + } + delete(key) { + return super.delete($mol_dict_key(key)); + } + forEach(back, context) { + return super.forEach((val, key, dict) => { + if (typeof key === 'string') + key = JSON.parse(key); + return back.call(this, val, key, dict); + }, context); + } + [Symbol.iterator]() { + const iterator = super[Symbol.iterator](); + return { + [Symbol.iterator]() { + return this; + }, + next() { + const iteration = iterator.next(); + if (!iteration.done) { + const key = iteration.value[0]; + if (typeof key === 'string') + iteration.value[0] = JSON.parse(key); + } + return iteration; + } + }; + } + } + $.$mol_dict = $mol_dict; +})($ || ($ = {})); +//dict.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_mem_key(proto, name, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(proto, name); + const value = descr.value; + const store = new WeakMap(); + Object.defineProperty(proto, name + "()", { + get: function () { + return store.get(this); + } + }); + const get_cache = (host, key) => { + let dict = store.get(host); + if (!dict) + store.set(host, dict = new $.$mol_dict); + const key_str = $.$mol_dict_key(key); + let cache = dict.get(key_str); + if (cache) + return cache; + let cache2 = new $.$mol_atom2; + cache2[Symbol.toStringTag] = `${host}.${name}(${key_str})`; + cache2.calculate = value.bind(host, key); + cache2.abort = () => { + dict.delete(key_str); + if (dict.size === 0) + store.delete(host); + cache2.forget(); + return true; + }; + $.$mol_owning_catch(host, cache2); + cache2[$.$mol_object_field] = name; + dict.set(key_str, cache2); + return cache2; + }; + return { + value(key, next, force) { + if (next === undefined) { + const cache = get_cache(this, key); + if (force === $.$mol_mem_force_cache) + return cache.obsolete(); + if ($.$mol_atom2.current) + return cache.get(); + else + return $.$mol_fiber.run(() => cache.get()); + } + return $.$mol_fiber.run(() => { + if (force === $.$mol_mem_force_fail) + return get_cache(this, key).fail(next); + if (force !== $.$mol_mem_force_cache) + next = value.call(this, key, next); + return get_cache(this, key).put(next); + }); + } + }; + } + $.$mol_mem_key = $mol_mem_key; +})($ || ($ = {})); +//key.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_atom2_autorun(calculate) { + return $.$mol_atom2.create(atom => { + atom.calculate = calculate; + atom.obsolete_slaves = atom.schedule; + atom.doubt_slaves = atom.schedule; + atom[Symbol.toStringTag] = calculate[Symbol.toStringTag] || calculate.name || '$mol_atom2_autorun'; + atom.schedule(); + }); + } + $.$mol_atom2_autorun = $mol_atom2_autorun; +})($ || ($ = {})); +//autorun.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_defer extends $.$mol_object { + constructor(run) { + super(); + this.run = run; + $mol_defer.add(this); + } + destructor() { + $mol_defer.drop(this); + } + static schedule() { + if (this.timer) + return; + this.timer = this.scheduleNative(() => { + this.timer = null; + this.run(); + }); + } + static unschedule() { + if (!this.timer) + return; + cancelAnimationFrame(this.timer); + this.timer = null; + } + static add(defer) { + this.all.push(defer); + this.schedule(); + } + static drop(defer) { + var index = this.all.indexOf(defer); + if (index >= 0) + this.all.splice(index, 1); + } + static run() { + if (this.all.length === 0) + return; + this.schedule(); + for (var defer; defer = this.all.shift();) + defer.run(); + } + } + $mol_defer.all = []; + $mol_defer.timer = null; + $mol_defer.scheduleNative = (typeof requestAnimationFrame == 'function') + ? handler => requestAnimationFrame(handler) + : handler => setTimeout(handler, 16); + $.$mol_defer = $mol_defer; +})($ || ($ = {})); +//defer.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_selection extends $.$mol_object { + static focused(next) { + if (next === undefined) + return []; + const parents = []; + let element = next[0]; + while (element) { + parents.push(element); + element = element.parentNode; + } + new $.$mol_defer(() => { + const element = $.$mol_mem_cached(() => this.focused())[0]; + if (element) + element.focus(); + else + $.$mol_dom_context.blur(); + }); + return parents; + } + static focus(event) { + this.focused([event.target]); + } + static blur(event) { + const elements = $.$mol_mem_cached(() => this.focused()); + if (elements && elements[0] === event.target) + this.focused([]); + } + } + __decorate([ + $.$mol_mem + ], $mol_view_selection, "focused", null); + $.$mol_view_selection = $mol_view_selection; +})($ || ($ = {})); +//selection.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_timeout extends $.$mol_object2 { + constructor(delay, task) { + super(); + this.delay = delay; + this.task = task; + this.id = setTimeout(task, delay); + } + destructor() { + clearTimeout(this.id); + } + } + $.$mol_after_timeout = $mol_after_timeout; +})($ || ($ = {})); +//timeout.js.map +; +"use strict"; +var $; +(function ($) { + if ($.$mol_dom_context.document) { + $.$mol_dom_context.document.documentElement.addEventListener('focus', (event) => { + new $.$mol_after_tick($.$mol_fiber_root(() => $.$mol_view_selection.focus(event))); + }, true); + $.$mol_dom_context.document.documentElement.addEventListener('blur', (event) => { + new $.$mol_after_timeout(0, $.$mol_fiber_root(() => $.$mol_view_selection.blur(event))); + }, true); + } +})($ || ($ = {})); +//selection.web.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_qname(name) { + return name.replace(/\W/, '').replace(/^(?=\d+)/, '_'); + } + $.$mol_dom_qname = $mol_dom_qname; +})($ || ($ = {})); +//qname.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_const(value) { + var getter = (() => value); + getter['()'] = value; + getter[Symbol.toStringTag] = value; + return getter; + } + $.$mol_const = $mol_const; +})($ || ($ = {})); +//const.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_attributes(el, attrs) { + for (let name in attrs) { + let val = attrs[name]; + if (val === null || val === false) { + if (!el.hasAttribute(name)) + continue; + el.removeAttribute(name); + } + else { + const str = String(val); + if (el.getAttribute(name) === str) + continue; + el.setAttribute(name, str); + } + } + } + $.$mol_dom_render_attributes = $mol_dom_render_attributes; +})($ || ($ = {})); +//attributes.js.map +; +"use strict"; +var $; +(function ($) { + const cacthed = new WeakMap(); + function $mol_fail_catch(error) { + if (cacthed.get(error)) + return false; + cacthed.set(error, true); + return true; + } + $.$mol_fail_catch = $mol_fail_catch; +})($ || ($ = {})); +//catch.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_styles(el, styles) { + for (let name in styles) { + let val = styles[name]; + const style = el.style; + if (typeof val === 'number') { + style[name] = `${val}px`; + } + else { + style[name] = val; + } + } + } + $.$mol_dom_render_styles = $mol_dom_render_styles; +})($ || ($ = {})); +//styles.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_fields(el, fields) { + for (let key in fields) { + const val = fields[key]; + if (val === undefined) + continue; + el[key] = val; + } + } + $.$mol_dom_render_fields = $mol_dom_render_fields; +})($ || ($ = {})); +//fields.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_children(el, childNodes) { + const node_set = new Set(childNodes); + let nextNode = el.firstChild; + for (let view of childNodes) { + if (view == null) + continue; + if (view instanceof $.$mol_dom_context.Node) { + while (true) { + if (!nextNode) { + el.appendChild(view); + break; + } + if (nextNode == view) { + nextNode = nextNode.nextSibling; + break; + } + else { + if (node_set.has(nextNode)) { + el.insertBefore(view, nextNode); + break; + } + else { + const nn = nextNode.nextSibling; + el.removeChild(nextNode); + nextNode = nn; + } + } + } + } + else { + if (nextNode && nextNode.nodeName === '#text') { + const str = String(view); + if (nextNode.nodeValue !== str) + nextNode.nodeValue = str; + nextNode = nextNode.nextSibling; + } + else { + const textNode = $.$mol_dom_context.document.createTextNode(String(view)); + el.insertBefore(textNode, nextNode); + } + } + } + while (nextNode) { + const currNode = nextNode; + nextNode = currNode.nextSibling; + el.removeChild(currNode); + } + } + $.$mol_dom_render_children = $mol_dom_render_children; +})($ || ($ = {})); +//children.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_memo extends $.$mol_wrapper { + static wrap(task) { + const store = new WeakMap(); + return function (next) { + var _a; + if (next === undefined && store.has(this)) + return store.get(this); + const val = (_a = task.call(this, next)) !== null && _a !== void 0 ? _a : next; + store.set(this, val); + return val; + }; + } + } + $.$mol_memo = $mol_memo; +})($ || ($ = {})); +//memo.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_func_name(func) { + let name = func.name; + if ((name === null || name === void 0 ? void 0 : name.length) > 1) + return name; + for (let key in this) { + try { + if (this[key] !== func) + continue; + name = key; + Object.defineProperty(func, 'name', { value: name }); + break; + } + catch (_a) { } + } + return name; + } + $.$mol_func_name = $mol_func_name; + function $mol_func_name_from(target, source) { + Object.defineProperty(target, 'name', { value: source.name }); + return target; + } + $.$mol_func_name_from = $mol_func_name_from; +})($ || ($ = {})); +//name.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_deprecated(message) { + return (host, field, descr) => { + const value = descr.value; + let warned = false; + descr.value = function $mol_deprecated_wrapper(...args) { + if (!warned) { + this.$.$mol_log3_warn({ + place: `${host.constructor.name}::${field}`, + message: `Deprecated`, + hint: message, + }); + warned = true; + } + return value.call(this, ...args); + }; + }; + } + $.$mol_deprecated = $mol_deprecated; +})($ || ($ = {})); +//deprecated.js.map +; +"use strict"; +//extract.js.map +; +"use strict"; +//pick.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_view_visible_width() { + return $.$mol_window.size().width; + } + $.$mol_view_visible_width = $mol_view_visible_width; + function $mol_view_visible_height() { + return $.$mol_window.size().height; + } + $.$mol_view_visible_height = $mol_view_visible_height; + function $mol_view_state_key(suffix) { + return suffix; + } + $.$mol_view_state_key = $mol_view_state_key; + class $mol_view extends $.$mol_object { + static Root(id) { + return new this; + } + autorun() { + return $.$mol_atom2_autorun(() => { + this.dom_tree(); + document.title = this.title(); + return this; + }); + } + static autobind() { + const nodes = $.$mol_dom_context.document.querySelectorAll('[mol_view_root]'); + for (let i = nodes.length - 1; i >= 0; --i) { + const name = nodes.item(i).getAttribute('mol_view_root'); + const View = $[name]; + if (!View) { + console.error(`Can not attach view. Class not found: ${name}`); + continue; + } + const view = View.Root(i); + view.dom_node(nodes.item(i)); + view.autorun(); + } + } + title() { + return this.constructor.toString(); + } + focused(next) { + let node = this.dom_node(); + const value = $.$mol_view_selection.focused(next === undefined ? undefined : (next ? [node] : [])); + return value.indexOf(node) !== -1; + } + state_key(suffix = '') { + return this.$.$mol_view_state_key(suffix); + } + dom_name() { + return $.$mol_dom_qname(this.constructor.toString()) || 'div'; + } + dom_name_space() { return 'http://www.w3.org/1999/xhtml'; } + sub() { + return []; + } + sub_visible() { + return this.sub(); + } + minimal_width() { + const sub = this.sub(); + if (!sub) + return 0; + let min = 0; + sub.forEach(view => { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_width()); + } + }); + return min; + } + maximal_width() { + return this.minimal_width(); + } + minimal_height() { + var _a; + let min = 0; + try { + for (const view of (_a = this.sub()) !== null && _a !== void 0 ? _a : []) { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_height()); + } + } + } + catch (error) { + if ('then' in error) + $.$mol_fail_hidden(error); + } + return min; + } + view_rect() { + if ($.$mol_atom2.current) + this.view_rect_watcher(); + return this.view_rect_cache(); + } + view_rect_cache(next = null) { + return next; + } + view_rect_watcher() { + $mol_view.watchers.add(this); + return { destructor: () => $mol_view.watchers.delete(this) }; + } + dom_id() { + return this.toString(); + } + dom_node(next) { + const node = next || $.$mol_dom_context.document.createElementNS(this.dom_name_space(), this.dom_name()); + const id = this.dom_id(); + node.setAttribute('id', id); + node.toString = $.$mol_const('<#' + id + '>'); + $.$mol_dom_render_attributes(node, this.attr_static()); + const events = this.event(); + for (let event_name in events) { + node.addEventListener(event_name, $.$mol_fiber_root(events[event_name]), { passive: false }); + } + return node; + } + dom_tree(next) { + const node = this.dom_node(next); + try { + $.$mol_dom_render_attributes(node, { mol_view_error: null }); + try { + this.render(); + } + finally { + for (let plugin of this.plugins()) { + if (plugin instanceof $.$mol_plugin) { + plugin.dom_tree(); + } + } + } + } + catch (error) { + $.$mol_dom_render_attributes(node, { mol_view_error: error.name || error.constructor.name }); + if (error instanceof Promise) { + $.$mol_atom2.current.subscribe(error); + return node; + } + if ($.$mol_fail_catch(error)) { + try { + void (node.innerText = error.message); + } + catch (e) { } + console.error(error); + } + } + return node; + } + dom_node_actual() { + const node = this.dom_node(); + node.style.minHeight = this.minimal_height() + 'px'; + const attr = this.attr(); + const style = this.style(); + const fields = this.field(); + $.$mol_dom_render_attributes(node, attr); + $.$mol_dom_render_styles(node, style); + $.$mol_dom_render_fields(node, fields); + return node; + } + render() { + const node = this.dom_node_actual(); + const sub = this.sub_visible(); + if (!sub) + return; + const nodes = sub.map(child => { + if (child == null) + return null; + return (child instanceof $mol_view) + ? child.dom_node() + : String(child); + }); + $.$mol_dom_render_children(node, nodes); + for (const el of sub) + if (el && typeof el === 'object' && 'dom_tree' in el) + el['dom_tree'](); + } + static view_classes() { + const proto = this.prototype; + let current = proto; + const classes = []; + while (current) { + classes.push(current.constructor); + if (!(current instanceof $mol_view)) + break; + current = Object.getPrototypeOf(current); + } + return classes; + } + view_names_owned() { + const names = []; + let owner = $.$mol_owning_get(this, $mol_view); + if (owner instanceof $mol_view) { + const suffix = this[$.$mol_object_field]; + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + for (let Class of owner.constructor.view_classes()) { + if (suffix in Class.prototype) + names.push(this.$.$mol_func_name(Class) + suffix2); + else + break; + } + for (let prefix of owner.view_names_owned()) { + names.push(prefix + suffix2); + } + } + return names; + } + view_names() { + const names = []; + for (let name of this.view_names_owned()) { + if (names.indexOf(name) < 0) + names.push(name); + } + for (let Class of this.constructor.view_classes()) { + const name = this.$.$mol_func_name(Class); + if (!name) + continue; + if (names.indexOf(name) < 0) + names.push(name); + } + return names; + } + attr_static() { + let attrs = {}; + for (let name of this.view_names()) + attrs[name.replace(/\$/g, '').replace(/^(?=\d)/, '_').toLowerCase()] = ''; + return attrs; + } + attr() { + return {}; + } + style() { + return {}; + } + field() { + return {}; + } + event() { + return {}; + } + event_async() { + return {}; + } + plugins() { + return []; + } + [$.$mol_dev_format_head]() { + return $.$mol_dev_format_span({}, $.$mol_dev_format_native(this), $.$mol_dev_format_shade('/'), $.$mol_dev_format_auto($.$mol_mem_cached(() => this.sub()))); + } + *view_find(check, path = []) { + if (check(this)) + return yield [...path, this]; + for (const item of this.sub()) { + if (item instanceof $mol_view) { + yield* item.view_find(check, [...path, this]); + } + } + } + force_render(path) { + const kids = this.sub(); + const index = kids.findIndex(item => { + if (item instanceof $mol_view) { + return path.has(item); + } + else { + return false; + } + }); + if (index >= 0) { + kids[index].force_render(path); + } + } + async ensure_visible(view) { + const path = this.view_find(v => v === view).next().value; + this.force_render(new Set(path)); + await $.$mol_fiber_warp(); + view.dom_node().scrollIntoView(); + } + } + $mol_view.watchers = new Set(); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "autorun", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "focused", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "minimal_width", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "minimal_height", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_rect", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_rect_cache", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_rect_watcher", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "dom_node", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "dom_tree", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "dom_node_actual", null); + __decorate([ + $.$mol_mem + ], $mol_view.prototype, "view_names", null); + __decorate([ + $.$mol_deprecated('Use $mol_view::event instead.') + ], $mol_view.prototype, "event_async", null); + __decorate([ + $.$mol_mem_key + ], $mol_view, "Root", null); + __decorate([ + $.$mol_memo.method + ], $mol_view, "view_classes", null); + $.$mol_view = $mol_view; +})($ || ($ = {})); +//view.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/view/view/view.css", "[mol_view] {\n\ttransition-property: background-color, height, width, min-height, min-width, max-width, max-height, transform;\n\ttransition-duration: .2s;\n\ttransition-timing-function: ease-out;\n\t-webkit-appearance: none;\n\tword-break: break-word;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tcontain: style;\n\ttab-size: 4;\n}\n\n[mol_view]::selection {\n\tbackground: var(--mol_theme_current);\n}\n\n[mol_view] > * {\n\tword-break: inherit;\n}\n\n[mol_view_root] {\n\tmargin: 0;\n\tpadding: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbox-sizing: border-box;\n\tfont: var(--mol_skin_font);\n\tbackground: var(--mol_theme_back);\n\tcolor: var(--mol_theme_text);\n}\n\n[mol_view][mol_view_error]:not([mol_view_error=\"Promise\"]) {\n\tbackground-image: repeating-linear-gradient(\n\t\t135deg,\n\t\trgb(162, 90, 90),\n\t\trgb(162, 90, 90) 11px,\n\t\trgb(255,255,220) 10px,\n\t\trgb(255,255,220) 20px\n\t);\n\tbackground-size: 28px 28px;\n\tcolor: black;\n}\n\n@keyframes mol_view_wait_move {\n\tfrom {\n\t\tbackground-position: 0 0;\n\t}\n\tto {\n\t\tbackground-position: 200vmax 0;\n\t}\n}\n\n@keyframes mol_view_wait_show {\n\tto {\n\t\tbackground-image: repeating-linear-gradient(\n\t\t\t45deg,\n\t\t\thsla( 0 , 0% , 50% , .25 ) 0% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 5% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 45% ,\n\t\t\thsla( 0 , 0% , 50% , .25 ) 50% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 55% ,\n\t\t\thsla( 0 , 0% , 50% , 0 ) 95% ,\n\t\t\thsla( 0 , 0% , 50% , .25 ) 100%\n\t\t);\n\t\tbackground-size: 200vmax 200vmax;\n\t}\n}\n\n[mol_view][mol_view_error=\"Promise\"] {\n\tanimation: mol_view_wait_show .5s .5s linear forwards , mol_view_wait_move 1s linear infinite;\n\topacity: .75;\n}\n"); +})($ || ($ = {})); +//view.css.js.map +; +"use strict"; +var $; +(function ($) { + if ($.$mol_dom_context.document) { + const event_name = self.cordova ? 'deviceready' : 'DOMContentLoaded'; + Promise.resolve().then($.$mol_fiber_root(() => { + $.$mol_view.autobind(); + $.$mol_defer.run(); + })); + function $mol_view_watch() { + $.$mol_fiber_unlimit(() => { + new $.$mol_after_frame(watch); + for (const view of $.$mol_view.watchers) { + view.view_rect_cache(view.dom_node().getBoundingClientRect().toJSON()); + } + }); + } + const watch = $.$mol_fiber_root($mol_view_watch); + watch(); + } +})($ || ($ = {})); +//view.web.js.map +; +"use strict"; +//error.js.map +; +"use strict"; +//override.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_colors = { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + rebeccapurple: "#663399", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32", + }; +})($ || ($ = {})); +//colors.js.map +; +"use strict"; +//properties.js.map +; +"use strict"; +//class.js.map +; +"use strict"; +//element.js.map +; +"use strict"; +//guard.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_style_sheet(Component, config0) { + let rules = []; + const block = $.$mol_dom_qname($.$mol_ambient({}).$mol_func_name(Component)); + const kebab = (name) => name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()); + const make_class = (prefix, path, config) => { + const props = []; + const selector = (prefix, path) => { + if (path.length === 0) + return prefix || `[${block}]`; + return `${prefix ? prefix + ' ' : ''}[${block}_${path.join('_')}]`; + }; + for (const key of Object.keys(config).reverse()) { + if (/^[a-z]/.test(key)) { + const addProp = (keys, val) => { + if (Array.isArray(val)) { + if (val[0] && [Array, Object].includes(val[0].constructor)) { + val = val.map(v => { + return Object.entries(v).map(([n, a]) => { + if (a === true) + return kebab(n); + if (a === false) + return null; + return String(a); + }).filter(Boolean).join(' '); + }).join(','); + } + else { + val = val.join(' '); + } + props.push(`\t${keys.join('-')}: ${val};\n`); + } + else if (val.constructor === Object) { + for (let suffix in val) { + addProp([...keys, kebab(suffix)], val[suffix]); + } + } + else { + props.push(`\t${keys.join('-')}: ${val};\n`); + } + }; + addProp([kebab(key)], config[key]); + } + else if (/^[A-Z]/.test(key)) { + make_class(prefix, [...path, key.toLowerCase()], config[key]); + } + else if (key[0] === '$') { + make_class(selector(prefix, path) + ' [' + $.$mol_dom_qname(key) + ']', [], config[key]); + } + else if (key === '>') { + const types = config[key]; + for (let type in types) { + make_class(selector(prefix, path) + ' > [' + $.$mol_dom_qname(type) + ']', [], types[type]); + } + } + else if (key === '@') { + const attrs = config[key]; + for (let name in attrs) { + for (let val in attrs[name]) { + make_class(selector(prefix, path) + '[' + name + '=' + JSON.stringify(val) + ']', [], attrs[name][val]); + } + } + } + else if (key === '@media') { + const media = config[key]; + for (let query in media) { + rules.push('}\n'); + make_class(prefix, path, media[query]); + rules.push(`${key} ${query} {\n`); + } + } + else { + make_class(selector(prefix, path) + key, [], config[key]); + } + } + if (props.length) { + rules.push(`${selector(prefix, path)} {\n${props.reverse().join('')}}\n`); + } + }; + make_class('', [], config0); + return rules.reverse().join(''); + } + $.$mol_style_sheet = $mol_style_sheet; +})($ || ($ = {})); +//sheet.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_style_define(Component, config) { + return $.$mol_style_attach(Component.name, $.$mol_style_sheet(Component, config)); + } + $.$mol_style_define = $mol_style_define; +})($ || ($ = {})); +//define.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_scroll extends $.$mol_view { + minimal_height() { + return 0; + } + _event_scroll_timer(val) { + if (val !== undefined) + return val; + return null; + } + field() { + return Object.assign(Object.assign({}, super.field()), { scrollTop: this.scroll_top(), scrollLeft: this.scroll_left(), tabIndex: this.tabindex() }); + } + event() { + return Object.assign(Object.assign({}, super.event()), { scroll: (event) => this.event_scroll(event) }); + } + scroll_top(val) { + if (val !== undefined) + return val; + return 0; + } + scroll_left(val) { + if (val !== undefined) + return val; + return 0; + } + tabindex() { + return -1; + } + event_scroll(event) { + if (event !== undefined) + return event; + return null; + } + } + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "_event_scroll_timer", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_top", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_left", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "event_scroll", null); + $.$mol_scroll = $mol_scroll; +})($ || ($ = {})); +//scroll.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_state_session extends $.$mol_object { + static native() { + if (this['native()']) + return this['native()']; + check: try { + const native = $.$mol_dom_context.sessionStorage; + if (!native) + break check; + native.setItem('', ''); + native.removeItem(''); + return this['native()'] = native; + } + catch (error) { + console.warn(error); + } + return this['native()'] = { + getItem(key) { + return this[':' + key]; + }, + setItem(key, value) { + this[':' + key] = value; + }, + removeItem(key) { + this[':' + key] = void 0; + } + }; + } + static value(key, next) { + if (next === void 0) + return JSON.parse(this.native().getItem(key) || 'null'); + if (next === null) + this.native().removeItem(key); + else + this.native().setItem(key, JSON.stringify(next)); + return next; + } + prefix() { return ''; } + value(key, next) { + return $mol_state_session.value(this.prefix() + '.' + key, next); + } + } + __decorate([ + $.$mol_mem_key + ], $mol_state_session, "value", null); + $.$mol_state_session = $mol_state_session; +})($ || ($ = {})); +//session.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem, px } = $.$mol_style_unit; + $.$mol_style_define($$.$mol_scroll, { + display: 'flex', + overflow: 'auto', + flex: { + direction: 'column', + grow: 1, + shrink: 1, + basis: 0, + }, + outline: 'none', + alignSelf: 'stretch', + boxSizing: 'border-box', + willChange: 'scroll-position', + maxHeight: per(100), + maxWidth: per(100), + webkitOverflowScrolling: 'touch', + contain: 'content', + '>': { + $mol_view: { + transform: 'translateZ(0)', + }, + }, + scrollbar: { + color: [$.$mol_theme.line, 'transparent'], + }, + '::-webkit-scrollbar': { + width: rem(.5), + height: rem(.5), + }, + '::-webkit-scrollbar-corner': { + background: { + color: $.$mol_theme.line, + }, + }, + '::-webkit-scrollbar-track': { + background: { + color: 'transparent', + }, + }, + '::-webkit-scrollbar-thumb': { + background: { + color: $.$mol_theme.line, + }, + }, + '@media': { + 'print': { + overflow: 'visible', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//scroll.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_scroll extends $.$mol_scroll { + scroll_top(next) { + return $.$mol_state_session.value(`${this}.scroll_top()`, next) || 0; + } + scroll_left(next) { + return $.$mol_state_session.value(`${this}.scroll_left()`, next) || 0; + } + _event_scroll_timer(next) { + return next; + } + event_scroll(next) { + var _a; + (_a = this._event_scroll_timer()) === null || _a === void 0 ? void 0 : _a.destructor(); + const el = this.dom_node(); + this._event_scroll_timer(new $.$mol_after_timeout(200, $.$mol_fiber_solid.func(() => { + this.scroll_top(Math.max(0, el.scrollTop)); + this.scroll_left(Math.max(0, el.scrollLeft)); + }))); + } + } + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_top", null); + __decorate([ + $.$mol_mem + ], $mol_scroll.prototype, "scroll_left", null); + __decorate([ + $.$mol_memo.method + ], $mol_scroll.prototype, "_event_scroll_timer", null); + $$.$mol_scroll = $mol_scroll; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//scroll.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_list extends $.$mol_view { + render_visible_only() { + return true; + } + render_over() { + return 0; + } + sub() { + return this.rows(); + } + Empty() { + const obj = new this.$.$mol_view(); + return obj; + } + Gap_before() { + const obj = new this.$.$mol_view(); + obj.style = () => ({ + paddingTop: this.gap_before() + }); + return obj; + } + Gap_after() { + const obj = new this.$.$mol_view(); + obj.style = () => ({ + paddingTop: this.gap_after() + }); + return obj; + } + view_window() { + return [ + 0, + 0 + ]; + } + rows() { + return []; + } + gap_before() { + return 0; + } + gap_after() { + return 0; + } + } + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "Empty", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "Gap_before", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "Gap_after", null); + $.$mol_list = $mol_list; +})($ || ($ = {})); +//list.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_support_css_overflow_anchor() { + var _a, _b; + return (_b = (_a = this.$mol_dom_context.CSS) === null || _a === void 0 ? void 0 : _a.supports('overflow-anchor:auto')) !== null && _b !== void 0 ? _b : false; + } + $.$mol_support_css_overflow_anchor = $mol_support_css_overflow_anchor; +})($ || ($ = {})); +//css.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_dom_listener extends $.$mol_object { + constructor(_node, _event, _handler, _config = { passive: true }) { + super(); + this._node = _node; + this._event = _event; + this._handler = _handler; + this._config = _config; + this._node.addEventListener(this._event, this._handler, this._config); + } + destructor() { + this._node.removeEventListener(this._event, this._handler, this._config); + super.destructor(); + } + } + $.$mol_dom_listener = $mol_dom_listener; +})($ || ($ = {})); +//listener.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_print extends $.$mol_object { + static before() { + return new $.$mol_dom_listener(this.$.$mol_dom_context, 'beforeprint', () => { + this.active(true); + }); + } + static after() { + return new $.$mol_dom_listener(this.$.$mol_dom_context, 'afterprint', () => { + this.active(false); + }); + } + static active(next) { + this.before(); + this.after(); + return next || false; + } + } + __decorate([ + $.$mol_mem + ], $mol_print, "before", null); + __decorate([ + $.$mol_mem + ], $mol_print, "after", null); + __decorate([ + $.$mol_mem + ], $mol_print, "active", null); + $.$mol_print = $mol_print; +})($ || ($ = {})); +//print.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/list/list.view.css", "[mol_list] {\n\twill-change: contents;\n\tdisplay: block;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\t/* display: flex;\n\talign-items: stretch;\n\talign-content: stretch; */\n\ttransition: none;\n\tmin-height: .5rem;\n}\n\n[mol_list_gap_before] ,\n[mol_list_gap_after] {\n\tdisplay: block !important;\n\tflex: none;\n\ttransition: none;\n\toverflow-anchor: none;\n}\n \n[mol_list] > * {\n\tdisplay: flex;\n}\n"); +})($ || ($ = {})); +//list.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_list extends $.$mol_list { + sub() { + const rows = this.rows(); + return (rows.length === 0) ? [this.Empty()] : rows; + } + render_visible_only() { + return this.$.$mol_support_css_overflow_anchor(); + } + view_window() { + var _a, _b, _c, _d, _e, _f; + const kids = this.sub(); + if (kids.length < 3) + return [0, kids.length]; + if (this.$.$mol_print.active()) + return [0, kids.length]; + let [min, max] = (_a = $.$mol_mem_cached(() => this.view_window())) !== null && _a !== void 0 ? _a : [0, 0]; + let max2 = max = Math.min(max, kids.length); + let min2 = min = Math.max(0, Math.min(min, max - 1)); + const anchoring = this.render_visible_only(); + const window_height = this.$.$mol_window.size().height + 40; + const over = Math.ceil(window_height * this.render_over()); + const limit_top = -over; + const limit_bottom = window_height + over; + const rect = this.view_rect(); + const gap_before = (_b = $.$mol_mem_cached(() => this.gap_before())) !== null && _b !== void 0 ? _b : 0; + const gap_after = (_c = $.$mol_mem_cached(() => this.gap_after())) !== null && _c !== void 0 ? _c : 0; + let top = Math.ceil((_d = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _d !== void 0 ? _d : 0) + gap_before; + let bottom = Math.ceil((_e = rect === null || rect === void 0 ? void 0 : rect.bottom) !== null && _e !== void 0 ? _e : 0) - gap_after; + if (top <= limit_top && bottom >= limit_bottom) { + return [min2, max2]; + } + if (anchoring && ((bottom < limit_top) || (top > limit_bottom))) { + min = 0; + top = Math.ceil((_f = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _f !== void 0 ? _f : 0); + while (min < (kids.length - 1)) { + const height = kids[min].minimal_height(); + if (top + height >= limit_top) + break; + top += height; + ++min; + } + min2 = min; + max2 = max = min; + bottom = top; + } + let top2 = top; + let bottom2 = bottom; + if (anchoring && (top <= limit_top) && (bottom2 < limit_bottom)) { + min2 = max; + top2 = bottom; + } + if ((bottom >= limit_bottom) && (top2 >= limit_top)) { + max2 = min; + bottom2 = top; + } + while (bottom2 < limit_bottom && max2 < kids.length) { + bottom2 += kids[max2].minimal_height(); + ++max2; + } + while (anchoring && ((top2 >= limit_top) && (min2 > 0))) { + --min2; + top2 -= kids[min2].minimal_height(); + } + return [min2, max2]; + } + gap_before() { + const skipped = this.sub().slice(0, this.view_window()[0]); + return Math.max(0, skipped.reduce((sum, view) => sum + view.minimal_height(), 0)); + } + gap_after() { + const skipped = this.sub().slice(this.view_window()[1]); + return Math.max(0, skipped.reduce((sum, view) => sum + view.minimal_height(), 0)); + } + sub_visible() { + var sub = this.sub(); + const next = sub.slice(...this.view_window()); + if (this.gap_before()) + next.unshift(this.Gap_before()); + if (this.gap_after()) + next.push(this.Gap_after()); + return next; + } + minimal_height() { + return this.sub().reduce((sum, view) => { + try { + return sum + view.minimal_height(); + } + catch (error) { + if (error instanceof Promise) { + $.$mol_atom2.current.subscribe(error); + } + else if ($.$mol_fail_catch(error)) { + console.error(error); + } + return sum; + } + }, 0); + } + force_render(path) { + const kids = this.rows(); + const index = kids.findIndex(item => path.has(item)); + if (index >= 0) { + const win = this.view_window(); + if (index < win[0] || index >= win[1]) { + $.$mol_mem_cached(() => this.view_window(), [index, index + 1]); + } + kids[index].force_render(path); + } + } + } + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "sub", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "view_window", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "gap_before", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "gap_after", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "sub_visible", null); + __decorate([ + $.$mol_mem + ], $mol_list.prototype, "minimal_height", null); + $$.$mol_list = $mol_list; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//list.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_plugin extends $.$mol_view { + dom_node(next) { + const node = next || $.$mol_owning_get(this, $.$mol_view).dom_node(); + $.$mol_dom_render_attributes(node, this.attr_static()); + const events = this.event(); + for (let event_name in events) { + node.addEventListener(event_name, $.$mol_fiber_root(events[event_name]), { passive: false }); + } + return node; + } + attr_static() { + return {}; + } + event() { + return {}; + } + render() { + this.dom_node_actual(); + } + } + __decorate([ + $.$mol_mem + ], $mol_plugin.prototype, "dom_node", null); + $.$mol_plugin = $mol_plugin; +})($ || ($ = {})); +//plugin.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_meter extends $.$mol_plugin { + zoom() { + return 1; + } + width(val) { + if (val !== undefined) + return val; + return 0; + } + height(val) { + if (val !== undefined) + return val; + return 0; + } + left(val) { + if (val !== undefined) + return val; + return 0; + } + right(val) { + if (val !== undefined) + return val; + return 0; + } + bottom(val) { + if (val !== undefined) + return val; + return 0; + } + top(val) { + if (val !== undefined) + return val; + return 0; + } + } + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "width", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "height", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "left", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "right", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "bottom", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "top", null); + $.$mol_meter = $mol_meter; +})($ || ($ = {})); +//meter.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_meter extends $.$mol_meter { + rect() { + const node = this.dom_node(); + const win = this.$.$mol_dom_context; + if (node !== $.$mol_dom_context.document.body) { + new $.$mol_after_frame($.$mol_atom2.current.fresh); + try { + const { left, top, right, bottom, width, height } = node.getBoundingClientRect(); + return { left, top, right, bottom, width, height, zoom: win.devicePixelRatio || 1 }; + } + catch (error) { + } + } + const size = $.$mol_window.size(); + return { + zoom: win.devicePixelRatio || 1, + left: 0, + top: 0, + right: size.width, + bottom: size.height, + width: size.width, + height: size.height, + }; + } + top() { + return this.rect().top; + } + bottom() { + return this.rect().bottom; + } + left() { + return this.rect().left; + } + right() { + return this.rect().right; + } + width() { + return this.rect().width; + } + height() { + return this.rect().height; + } + zoom() { + return this.rect().zoom; + } + } + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "rect", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "top", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "bottom", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "left", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "right", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "width", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "height", null); + __decorate([ + $.$mol_mem + ], $mol_meter.prototype, "zoom", null); + $$.$mol_meter = $mol_meter; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//meter.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_pop extends $.$mol_view { + event() { + return { + keydown: (event) => this.keydown(event) + }; + } + showed(val) { + if (val !== undefined) + return val; + return false; + } + plugins() { + return [ + this.Meter() + ]; + } + sub() { + return [ + this.Anchor(), + this.Bubble() + ]; + } + keydown(event) { + if (event !== undefined) + return event; + return null; + } + Meter() { + const obj = new this.$.$mol_meter(); + return obj; + } + top() { + return this.Meter().top(); + } + bottom() { + return this.Meter().bottom(); + } + left() { + return this.Meter().left(); + } + right() { + return this.Meter().right(); + } + Anchor() { + return null; + } + align() { + return "bottom_center"; + } + bubble_content() { + return []; + } + height_max() { + return 9999; + } + Bubble() { + const obj = new this.$.$mol_pop_bubble(); + obj.align = () => this.align(); + obj.content = () => this.bubble_content(); + obj.height_max = () => this.height_max(); + return obj; + } + } + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "showed", null); + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "keydown", null); + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "Meter", null); + __decorate([ + $.$mol_mem + ], $mol_pop.prototype, "Bubble", null); + $.$mol_pop = $mol_pop; + class $mol_pop_bubble extends $.$mol_scroll { + sub() { + return this.content(); + } + style() { + return Object.assign(Object.assign({}, super.style()), { maxHeight: this.height_max() }); + } + attr() { + return Object.assign(Object.assign({}, super.attr()), { mol_pop_align: this.align(), tabindex: 0 }); + } + content() { + return []; + } + height_max() { + return 9999; + } + align() { + return ""; + } + } + $.$mol_pop_bubble = $mol_pop_bubble; +})($ || ($ = {})); +//pop.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + let $mol_keyboard_code; + (function ($mol_keyboard_code) { + $mol_keyboard_code[$mol_keyboard_code["backspace"] = 8] = "backspace"; + $mol_keyboard_code[$mol_keyboard_code["tab"] = 9] = "tab"; + $mol_keyboard_code[$mol_keyboard_code["enter"] = 13] = "enter"; + $mol_keyboard_code[$mol_keyboard_code["shift"] = 16] = "shift"; + $mol_keyboard_code[$mol_keyboard_code["ctrl"] = 17] = "ctrl"; + $mol_keyboard_code[$mol_keyboard_code["alt"] = 18] = "alt"; + $mol_keyboard_code[$mol_keyboard_code["pause"] = 19] = "pause"; + $mol_keyboard_code[$mol_keyboard_code["capsLock"] = 20] = "capsLock"; + $mol_keyboard_code[$mol_keyboard_code["escape"] = 27] = "escape"; + $mol_keyboard_code[$mol_keyboard_code["space"] = 32] = "space"; + $mol_keyboard_code[$mol_keyboard_code["pageUp"] = 33] = "pageUp"; + $mol_keyboard_code[$mol_keyboard_code["pageDown"] = 34] = "pageDown"; + $mol_keyboard_code[$mol_keyboard_code["end"] = 35] = "end"; + $mol_keyboard_code[$mol_keyboard_code["home"] = 36] = "home"; + $mol_keyboard_code[$mol_keyboard_code["left"] = 37] = "left"; + $mol_keyboard_code[$mol_keyboard_code["up"] = 38] = "up"; + $mol_keyboard_code[$mol_keyboard_code["right"] = 39] = "right"; + $mol_keyboard_code[$mol_keyboard_code["down"] = 40] = "down"; + $mol_keyboard_code[$mol_keyboard_code["insert"] = 45] = "insert"; + $mol_keyboard_code[$mol_keyboard_code["delete"] = 46] = "delete"; + $mol_keyboard_code[$mol_keyboard_code["key0"] = 48] = "key0"; + $mol_keyboard_code[$mol_keyboard_code["key1"] = 49] = "key1"; + $mol_keyboard_code[$mol_keyboard_code["key2"] = 50] = "key2"; + $mol_keyboard_code[$mol_keyboard_code["key3"] = 51] = "key3"; + $mol_keyboard_code[$mol_keyboard_code["key4"] = 52] = "key4"; + $mol_keyboard_code[$mol_keyboard_code["key5"] = 53] = "key5"; + $mol_keyboard_code[$mol_keyboard_code["key6"] = 54] = "key6"; + $mol_keyboard_code[$mol_keyboard_code["key7"] = 55] = "key7"; + $mol_keyboard_code[$mol_keyboard_code["key8"] = 56] = "key8"; + $mol_keyboard_code[$mol_keyboard_code["key9"] = 57] = "key9"; + $mol_keyboard_code[$mol_keyboard_code["A"] = 65] = "A"; + $mol_keyboard_code[$mol_keyboard_code["B"] = 66] = "B"; + $mol_keyboard_code[$mol_keyboard_code["C"] = 67] = "C"; + $mol_keyboard_code[$mol_keyboard_code["D"] = 68] = "D"; + $mol_keyboard_code[$mol_keyboard_code["E"] = 69] = "E"; + $mol_keyboard_code[$mol_keyboard_code["F"] = 70] = "F"; + $mol_keyboard_code[$mol_keyboard_code["G"] = 71] = "G"; + $mol_keyboard_code[$mol_keyboard_code["H"] = 72] = "H"; + $mol_keyboard_code[$mol_keyboard_code["I"] = 73] = "I"; + $mol_keyboard_code[$mol_keyboard_code["J"] = 74] = "J"; + $mol_keyboard_code[$mol_keyboard_code["K"] = 75] = "K"; + $mol_keyboard_code[$mol_keyboard_code["L"] = 76] = "L"; + $mol_keyboard_code[$mol_keyboard_code["M"] = 77] = "M"; + $mol_keyboard_code[$mol_keyboard_code["N"] = 78] = "N"; + $mol_keyboard_code[$mol_keyboard_code["O"] = 79] = "O"; + $mol_keyboard_code[$mol_keyboard_code["P"] = 80] = "P"; + $mol_keyboard_code[$mol_keyboard_code["Q"] = 81] = "Q"; + $mol_keyboard_code[$mol_keyboard_code["R"] = 82] = "R"; + $mol_keyboard_code[$mol_keyboard_code["S"] = 83] = "S"; + $mol_keyboard_code[$mol_keyboard_code["T"] = 84] = "T"; + $mol_keyboard_code[$mol_keyboard_code["U"] = 85] = "U"; + $mol_keyboard_code[$mol_keyboard_code["V"] = 86] = "V"; + $mol_keyboard_code[$mol_keyboard_code["W"] = 87] = "W"; + $mol_keyboard_code[$mol_keyboard_code["X"] = 88] = "X"; + $mol_keyboard_code[$mol_keyboard_code["Y"] = 89] = "Y"; + $mol_keyboard_code[$mol_keyboard_code["Z"] = 90] = "Z"; + $mol_keyboard_code[$mol_keyboard_code["metaLeft"] = 91] = "metaLeft"; + $mol_keyboard_code[$mol_keyboard_code["metaRight"] = 92] = "metaRight"; + $mol_keyboard_code[$mol_keyboard_code["select"] = 93] = "select"; + $mol_keyboard_code[$mol_keyboard_code["numpad0"] = 96] = "numpad0"; + $mol_keyboard_code[$mol_keyboard_code["numpad1"] = 97] = "numpad1"; + $mol_keyboard_code[$mol_keyboard_code["numpad2"] = 98] = "numpad2"; + $mol_keyboard_code[$mol_keyboard_code["numpad3"] = 99] = "numpad3"; + $mol_keyboard_code[$mol_keyboard_code["numpad4"] = 100] = "numpad4"; + $mol_keyboard_code[$mol_keyboard_code["numpad5"] = 101] = "numpad5"; + $mol_keyboard_code[$mol_keyboard_code["numpad6"] = 102] = "numpad6"; + $mol_keyboard_code[$mol_keyboard_code["numpad7"] = 103] = "numpad7"; + $mol_keyboard_code[$mol_keyboard_code["numpad8"] = 104] = "numpad8"; + $mol_keyboard_code[$mol_keyboard_code["numpad9"] = 105] = "numpad9"; + $mol_keyboard_code[$mol_keyboard_code["multiply"] = 106] = "multiply"; + $mol_keyboard_code[$mol_keyboard_code["add"] = 107] = "add"; + $mol_keyboard_code[$mol_keyboard_code["subtract"] = 109] = "subtract"; + $mol_keyboard_code[$mol_keyboard_code["decimal"] = 110] = "decimal"; + $mol_keyboard_code[$mol_keyboard_code["divide"] = 111] = "divide"; + $mol_keyboard_code[$mol_keyboard_code["F1"] = 112] = "F1"; + $mol_keyboard_code[$mol_keyboard_code["F2"] = 113] = "F2"; + $mol_keyboard_code[$mol_keyboard_code["F3"] = 114] = "F3"; + $mol_keyboard_code[$mol_keyboard_code["F4"] = 115] = "F4"; + $mol_keyboard_code[$mol_keyboard_code["F5"] = 116] = "F5"; + $mol_keyboard_code[$mol_keyboard_code["F6"] = 117] = "F6"; + $mol_keyboard_code[$mol_keyboard_code["F7"] = 118] = "F7"; + $mol_keyboard_code[$mol_keyboard_code["F8"] = 119] = "F8"; + $mol_keyboard_code[$mol_keyboard_code["F9"] = 120] = "F9"; + $mol_keyboard_code[$mol_keyboard_code["F10"] = 121] = "F10"; + $mol_keyboard_code[$mol_keyboard_code["F11"] = 122] = "F11"; + $mol_keyboard_code[$mol_keyboard_code["F12"] = 123] = "F12"; + $mol_keyboard_code[$mol_keyboard_code["numLock"] = 144] = "numLock"; + $mol_keyboard_code[$mol_keyboard_code["scrollLock"] = 145] = "scrollLock"; + $mol_keyboard_code[$mol_keyboard_code["semicolon"] = 186] = "semicolon"; + $mol_keyboard_code[$mol_keyboard_code["equals"] = 187] = "equals"; + $mol_keyboard_code[$mol_keyboard_code["comma"] = 188] = "comma"; + $mol_keyboard_code[$mol_keyboard_code["dash"] = 189] = "dash"; + $mol_keyboard_code[$mol_keyboard_code["period"] = 190] = "period"; + $mol_keyboard_code[$mol_keyboard_code["forwardSlash"] = 191] = "forwardSlash"; + $mol_keyboard_code[$mol_keyboard_code["graveAccent"] = 192] = "graveAccent"; + $mol_keyboard_code[$mol_keyboard_code["bracketOpen"] = 219] = "bracketOpen"; + $mol_keyboard_code[$mol_keyboard_code["slashBack"] = 220] = "slashBack"; + $mol_keyboard_code[$mol_keyboard_code["slashBackLeft"] = 226] = "slashBackLeft"; + $mol_keyboard_code[$mol_keyboard_code["bracketClose"] = 221] = "bracketClose"; + $mol_keyboard_code[$mol_keyboard_code["quoteSingle"] = 222] = "quoteSingle"; + })($mol_keyboard_code = $.$mol_keyboard_code || ($.$mol_keyboard_code = {})); +})($ || ($ = {})); +//code.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/pop/pop.view.css", "[mol_pop] {\n\tposition: relative;\n\tdisplay: inline-flex;\n}\n\n[mol_pop]:hover {\n\tz-index: 4;\n}\n\n[mol_pop_bubble] {\n\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\n\tborder-radius: var(--mol_skin_round);\n\tposition: absolute;\n\tz-index: 3;\n\tbackground: var(--mol_theme_back);\n\tmax-width: none;\n\tmax-height: none;\n\toverflow: hidden;\n\toverflow-y: auto;\n\tword-break: normal;\n}\n\n[mol_pop_bubble][mol_scroll] {\n\tbackground: var(--mol_theme_back);\n}\n\n[mol_pop_bubble]:focus {\n\toutline: none;\n}\n\n[mol_pop_align=\"left_top\"] {\n\ttransform: translate(-100%);\n\tleft: 0;\n\tbottom: 0;\n}\n\n[mol_pop_align=\"left_center\"] {\n\ttransform: translate(-100%, -50%);\n\tleft: 0;\n\ttop: 50%;\n}\n\n[mol_pop_align=\"left_bottom\"] {\n\ttransform: translate(-100%);\n\tleft: 0;\n\ttop: 0;\n}\n\n[mol_pop_align=\"right_top\"] {\n\ttransform: translate(100%);\n\tright: 0;\n\tbottom: 0;\n}\n\n[mol_pop_align=\"right_center\"] {\n\ttransform: translate(100%, -50%);\n\tright: 0;\n\ttop: 50%;\n}\n\n[mol_pop_align=\"right_bottom\"] {\n\ttransform: translate(100%);\n\tright: 0;\n\ttop: 0;\n}\n\n[mol_pop_align=\"center\"] {\n\tleft: 50%;\n\ttop: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n[mol_pop_align=\"top_left\"] {\n\tright: 0;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"top_center\"] {\n\ttransform: translate(-50%);\n\tleft: 50%;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"top_right\"] {\n\tleft: 0;\n\tbottom: 100%;\n}\n\n[mol_pop_align=\"bottom_left\"] {\n\tright: 0;\n\ttop: 100%;\n}\n\n[mol_pop_align=\"bottom_center\"] {\n\ttransform: translate(-50%);\n\tleft: 50%;\n\ttop: 100%;\n}\n\n[mol_pop_align=\"bottom_right\"] {\n\tleft: 0;\n\ttop: 100%;\n}\n"); +})($ || ($ = {})); +//pop.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_pop extends $.$mol_pop { + sub() { + return [ + this.Anchor(), + ...this.showed() ? [this.Bubble()] : [], + ]; + } + height_max() { + return this.$.$mol_window.size().height * 0.33; + } + align() { + const viewport = this.$.$mol_window.size(); + const vert = this.top() > (viewport.height - this.bottom()) ? 'top' : 'bottom'; + const hor = this.left() > (viewport.width - this.right()) ? 'left' : 'right'; + return `${vert}_${hor}`; + } + keydown(event) { + if (event.defaultPrevented) + return; + if (event.keyCode === $.$mol_keyboard_code.escape) { + if (!this.showed()) + return; + event.preventDefault(); + this.showed(false); + } + } + } + $$.$mol_pop = $mol_pop; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//pop.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_pop_over extends $.$mol_pop { + showed() { + return this.hovered(); + } + attr() { + return Object.assign(Object.assign({}, super.attr()), { tabindex: 0 }); + } + event() { + return Object.assign(Object.assign({}, super.event()), { mouseenter: (event) => this.event_show(event), mouseleave: (event) => this.event_hide(event) }); + } + hovered(val) { + if (val !== undefined) + return val; + return false; + } + event_show(event) { + if (event !== undefined) + return event; + return null; + } + event_hide(event) { + if (event !== undefined) + return event; + return null; + } + } + __decorate([ + $.$mol_mem + ], $mol_pop_over.prototype, "hovered", null); + __decorate([ + $.$mol_mem + ], $mol_pop_over.prototype, "event_show", null); + __decorate([ + $.$mol_mem + ], $mol_pop_over.prototype, "event_hide", null); + $.$mol_pop_over = $mol_pop_over; +})($ || ($ = {})); +//over.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/pop/over/over.view.css", "[mol_pop_over]:focus {\r\n\toutline: none;\r\n}"); +})($ || ($ = {})); +//over.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_pop_over extends $.$mol_pop_over { + event_show(event) { + this.hovered(true); + } + event_hide(event) { + this.hovered(false); + } + showed() { + return this.focused() || this.hovered(); + } + } + $$.$mol_pop_over = $mol_pop_over; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//over.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_perf_dbmon extends $.$mol_scroll { + title() { + return "dbmon ($mol)"; + } + sub() { + return [ + this.Databases() + ]; + } + Database(id) { + const obj = new this.$.$mol_view(); + obj.sub = () => this.database(id); + return obj; + } + Query(id) { + const obj = new this.$.$mol_perf_dbmon_query(); + obj.elapsed = () => this.query_elapsed(id); + obj.elapsed_mod = () => this.query_elapsed_mod(id); + obj.value = () => this.query_value(id); + return obj; + } + databases() { + return []; + } + Databases() { + const obj = new this.$.$mol_list(); + obj.rows = () => this.databases(); + return obj; + } + name(id) { + return ""; + } + Name(id) { + const obj = new this.$.$mol_view(); + obj.sub = () => [ + this.name(id) + ]; + return obj; + } + query_count_label_mod(id) { + return ""; + } + query_count(id) { + return 0; + } + Query_count(id) { + const obj = new this.$.$mol_perf_dbmon_query_count(); + obj.label_mod = () => this.query_count_label_mod(id); + obj.count = () => this.query_count(id); + return obj; + } + top_queries(id) { + return []; + } + database(id) { + return [ + this.Name(id), + this.Query_count(id), + this.top_queries(id) + ]; + } + query_elapsed(id) { + return ""; + } + query_elapsed_mod(id) { + return ""; + } + query_value(id) { + return ""; + } + } + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Database", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Query", null); + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon.prototype, "Databases", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Name", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "Query_count", null); + $.$mol_perf_dbmon = $mol_perf_dbmon; + class $mol_perf_dbmon_query_count extends $.$mol_view { + sub() { + return [ + this.Label() + ]; + } + label_mod() { + return ""; + } + count() { + return 0; + } + Label() { + const obj = new this.$.$mol_view(); + obj.attr = () => ({ + mol_perf_dbmon_query_count_label: this.label_mod() + }); + obj.sub = () => [ + this.count() + ]; + return obj; + } + } + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon_query_count.prototype, "Label", null); + $.$mol_perf_dbmon_query_count = $mol_perf_dbmon_query_count; + class $mol_perf_dbmon_query extends $.$mol_pop_over { + minimal_height() { + return 40; + } + Anchor() { + return this.Elapsed(); + } + bubble_content() { + return [ + this.value() + ]; + } + align() { + return "left_center"; + } + elapsed_mod() { + return ""; + } + elapsed() { + return ""; + } + Elapsed() { + const obj = new this.$.$mol_view(); + obj.attr = () => ({ + mol_perf_dbmon_query_elapsed: this.elapsed_mod() + }); + obj.sub = () => [ + this.elapsed() + ]; + return obj; + } + value() { + return ""; + } + } + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon_query.prototype, "Elapsed", null); + $.$mol_perf_dbmon_query = $mol_perf_dbmon_query; +})($ || ($ = {})); +//dbmon.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_after_work extends $.$mol_object2 { + constructor(delay, task) { + super(); + this.delay = delay; + this.task = task; + this.id = requestIdleCallback(task, { timeout: delay }); + } + destructor() { + cancelIdleCallback(this.id); + } + } + $.$mol_after_work = $mol_after_work; +})($ || ($ = {})); +//work.web.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_state_time extends $.$mol_object { + static now(precision = 0, next) { + if (precision > 0) { + new $.$mol_after_timeout(precision, $.$mol_atom2.current.fresh); + } + else { + new $.$mol_after_work(16, $.$mol_atom2.current.fresh); + } + return Date.now(); + } + } + __decorate([ + $.$mol_mem_key + ], $mol_state_time, "now", null); + $.$mol_state_time = $mol_state_time; +})($ || ($ = {})); +//time.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_style_attach("mol/perf/dbmon/dbmon.view.css", "[mol_perf_dbmon_databases] {\n\tdisplay: table;\n\ttable-layout: fixed;\n\twidth: 100%;\n}\n\n[mol_perf_dbmon_database] {\n\tdisplay: table-row;\n\tbackground: white;\n}\n\n[mol_perf_dbmon_database] > * {\n\tdisplay: table-cell;\n\tpadding: .5rem;\n\tborder-top: 1px solid #ddd;\n}\n\n[mol_perf_dbmon_database]:nth-child(odd) {\n\tbackground: #f9f9f9;\n}\n\n[mol_perf_dbmon_query_count_label] {\n\tborder-radius: .25em;\n\tcolor: #fff;\n\tfont-size: 75%;\n\tfont-weight: 700;\n\tline-height: 1;\n\tpadding: .25em .5em;\n}\n\n[mol_perf_dbmon_query_count_label~=\"label-success\"] {\n\tbackground-color: #5cb85c;\n}\n\n[mol_perf_dbmon_query_count_label~=\"label-warning\"] {\n\tbackground-color: #f0ad4e;\n}\n\n[mol_perf_dbmon_query_bubble] {\n\tpadding: .5rem;\n}\n"); +})($ || ($ = {})); +//dbmon.view.css.js.map +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_perf_dbmon extends $.$mol_perf_dbmon { + data() { + $.$mol_state_time.now(ENV.timeout || 15); + Monitoring.renderRate.ping(); + return ENV.generateData().toArray(); + } + databases() { + return Object.keys(this.data()).map(index => this.Database(index)); + } + database(id) { + return [ + this.Name(id), + this.Query_count(id), + ...this.top_queries(id), + ]; + } + name(id) { + return this.data()[id].dbname; + } + last_sample(id) { + return this.data()[id].lastSample; + } + query_count(id) { + return this.last_sample(id).nbQueries; + } + query_count_label_mod(id) { + return this.last_sample(id).countClassName; + } + top_queries_data(db) { + return this.last_sample(db).topFiveQueries; + } + top_queries(db) { + return Object.keys(this.top_queries_data(db)).map(query => this.Query({ db, query })); + } + top_query(id) { + return this.top_queries_data(id.db)[id.query]; + } + query_elapsed(id) { + return this.top_query(id).formatElapsed; + } + query_elapsed_mod(id) { + return this.top_query(id).elapsedClassName; + } + query_value(id) { + return this.top_query(id).query; + } + } + __decorate([ + $.$mol_mem + ], $mol_perf_dbmon.prototype, "data", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "last_sample", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "top_queries_data", null); + __decorate([ + $.$mol_mem_key + ], $mol_perf_dbmon.prototype, "top_query", null); + $$.$mol_perf_dbmon = $mol_perf_dbmon; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); +//dbmon.view.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_attributes_super extends $.$mol_view { + some() { + return { + a: 0, + b: 2 + }; + } + } + $.$mol_view_tree_test_attributes_super = $mol_view_tree_test_attributes_super; + class $mol_view_tree_test_attributes extends $mol_view_tree_test_attributes_super { + some() { + return Object.assign(Object.assign({}, super.some()), { a: 1 }); + } + } + $.$mol_view_tree_test_attributes = $mol_view_tree_test_attributes; +})($ || ($ = {})); +//attributes.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_binding extends $.$mol_view { + value(val) { + return this.task_title_new(val); + } + enabled() { + return this.head_complete_enabled(); + } + task_title_new(val) { + if (val !== undefined) + return val; + return "123"; + } + head_complete_enabled() { + return false; + } + } + __decorate([ + $.$mol_mem + ], $mol_view_tree_test_binding.prototype, "task_title_new", null); + $.$mol_view_tree_test_binding = $mol_view_tree_test_binding; +})($ || ($ = {})); +//binding.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_binding_right extends $.$mol_view { + Test() { + const obj = new this.$.$mol_view_tree_test_binding_right_test(); + return obj; + } + outer_width(v) { + return this.Test().width(v); + } + } + __decorate([ + $.$mol_mem + ], $mol_view_tree_test_binding_right.prototype, "Test", null); + $.$mol_view_tree_test_binding_right = $mol_view_tree_test_binding_right; + class $mol_view_tree_test_binding_right_test extends $.$mol_view { + width(val) { + if (val !== undefined) + return val; + return 0; + } + } + __decorate([ + $.$mol_mem + ], $mol_view_tree_test_binding_right_test.prototype, "width", null); + $.$mol_view_tree_test_binding_right_test = $mol_view_tree_test_binding_right_test; +})($ || ($ = {})); +//binding_right.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_simple extends $.$mol_view { + some() { + return 1; + } + bool() { + return true; + } + str() { + return "test"; + } + arr() { + return []; + } + arr_string() { + return []; + } + } + $.$mol_view_tree_test_simple = $mol_view_tree_test_simple; +})($ || ($ = {})); +//simple.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_view_tree_test_attributes_subcomponent extends $.$mol_view { + Page(index) { + const obj = new this.$.$mol_view_tree_test_attributes_subcomponent_page(); + obj.Sub = () => this.page(index); + return obj; + } + page(index) { + return null; + } + } + __decorate([ + $.$mol_mem_key + ], $mol_view_tree_test_attributes_subcomponent.prototype, "Page", null); + $.$mol_view_tree_test_attributes_subcomponent = $mol_view_tree_test_attributes_subcomponent; + class $mol_view_tree_test_attributes_subcomponent_page extends $.$mol_view { + Sub() { + return null; + } + } + $.$mol_view_tree_test_attributes_subcomponent_page = $mol_view_tree_test_attributes_subcomponent_page; +})($ || ($ = {})); +//subcomponent.view.tree.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_tree_convert = Symbol('$mol_tree_convert'); + class $mol_tree extends $.$mol_object2 { + constructor(config = {}) { + super(); + this.type = config.type || ''; + if (config.value !== undefined) { + var sub = $mol_tree.values(config.value); + if (config.type || sub.length > 1) { + this.sub = [...sub, ...(config.sub || [])]; + this.data = config.data || ''; + } + else { + this.data = sub[0].data; + this.sub = config.sub || []; + } + } + else { + this.data = config.data || ''; + this.sub = config.sub || []; + } + this.baseUri = config.baseUri || ''; + this.row = config.row || 0; + this.col = config.col || 0; + this.length = config.length || 0; + } + static values(str, baseUri) { + return str.split('\n').map((data, index) => new $mol_tree({ + data: data, + baseUri: baseUri, + row: index + 1, + length: data.length, + })); + } + clone(config = {}) { + return new $mol_tree({ + type: ('type' in config) ? config.type : this.type, + data: ('data' in config) ? config.data : this.data, + sub: ('sub' in config) ? config.sub : this.sub, + baseUri: ('baseUri' in config) ? config.baseUri : this.baseUri, + row: ('row' in config) ? config.row : this.row, + col: ('col' in config) ? config.col : this.col, + length: ('length' in config) ? config.length : this.length, + value: config.value + }); + } + make(config) { + return new $mol_tree(Object.assign({ baseUri: this.baseUri, row: this.row, col: this.col, length: this.length }, config)); + } + make_data(value, sub) { + return this.make({ value, sub }); + } + make_struct(type, sub) { + return this.make({ type, sub }); + } + static fromString(str, baseUri) { + var root = new $mol_tree({ baseUri: baseUri }); + var stack = [root]; + var row = 0; + var prefix = str.replace(/^\n?(\t*)[\s\S]*/, '$1'); + var lines = str.replace(new RegExp('^\\t{0,' + prefix.length + '}', 'mg'), '').split('\n'); + lines.forEach(line => { + ++row; + var chunks = /^(\t*)((?:[^\n\t\\ ]+ *)*)(\\[^\n]*)?(.*?)(?:$|\n)/m.exec(line); + if (!chunks || chunks[4]) + return this.$.$mol_fail(new Error(`Syntax error at ${baseUri}:${row}\n${line}`)); + var indent = chunks[1]; + var path = chunks[2]; + var data = chunks[3]; + var deep = indent.length; + var types = path ? path.replace(/ $/, '').split(/ +/) : []; + if (stack.length <= deep) + return this.$.$mol_fail(new Error(`Too many tabs at ${baseUri}:${row}\n${line}`)); + stack.length = deep + 1; + var parent = stack[deep]; + let col = deep; + types.forEach(type => { + if (!type) + return this.$.$mol_fail(new Error(`Unexpected space symbol ${baseUri}:${row}\n${line}`)); + var next = new $mol_tree({ type, baseUri, row, col, length: type.length }); + const parent_sub = parent.sub; + parent_sub.push(next); + parent = next; + col += type.length + 1; + }); + if (data) { + var next = new $mol_tree({ data: data.substring(1), baseUri, row, col, length: data.length }); + const parent_sub = parent.sub; + parent_sub.push(next); + parent = next; + } + stack.push(parent); + }); + return root; + } + static fromJSON(json, baseUri = '') { + switch (true) { + case typeof json === 'boolean': + case typeof json === 'number': + case json === null: + return new $mol_tree({ + type: String(json), + baseUri: baseUri + }); + case typeof json === 'string': + return new $mol_tree({ + value: json, + baseUri: baseUri + }); + case Array.isArray(json): + return new $mol_tree({ + type: "/", + sub: json.map(json => $mol_tree.fromJSON(json, baseUri)) + }); + case json instanceof Date: + return new $mol_tree({ + value: json.toISOString(), + baseUri: baseUri + }); + default: + if (typeof json[$.$mol_tree_convert] === 'function') { + return json[$.$mol_tree_convert](); + } + if (typeof json.toJSON === 'function') { + return $mol_tree.fromJSON(json.toJSON()); + } + if (json instanceof Error) { + const { name, message, stack } = json; + json = Object.assign(Object.assign({}, json), { name, message, stack }); + } + var sub = []; + for (var key in json) { + if (json[key] === undefined) + continue; + const subsub = $mol_tree.fromJSON(json[key], baseUri); + if (/^[^\n\t\\ ]+$/.test(key)) { + var child = new $mol_tree({ + type: key, + baseUri: baseUri, + sub: [subsub], + }); + } + else { + var child = new $mol_tree({ + value: key, + baseUri: baseUri, + sub: [subsub], + }); + } + sub.push(child); + } + return new $mol_tree({ + type: "*", + sub: sub, + baseUri: baseUri + }); + } + } + get uri() { + return this.baseUri + '#' + this.row + ':' + this.col; + } + toString(prefix = '') { + var output = ''; + if (this.type.length) { + if (!prefix.length) { + prefix = "\t"; + } + output += this.type; + if (this.sub.length == 1) { + return output + ' ' + this.sub[0].toString(prefix); + } + output += "\n"; + } + else if (this.data.length || prefix.length) { + output += "\\" + this.data + "\n"; + } + for (var child of this.sub) { + output += prefix; + output += child.toString(prefix + "\t"); + } + return output; + } + toJSON() { + if (!this.type) + return this.value; + if (this.type === 'true') + return true; + if (this.type === 'false') + return false; + if (this.type === 'null') + return null; + if (this.type === '*') { + var obj = {}; + for (var child of this.sub) { + if (child.type === '-') + continue; + var key = child.type || child.clone({ sub: child.sub.slice(0, child.sub.length - 1) }).value; + var val = child.sub[child.sub.length - 1].toJSON(); + if (val !== undefined) + obj[key] = val; + } + return obj; + } + if (this.type === '/') { + var res = []; + this.sub.forEach(child => { + if (child.type === '-') + return; + var val = child.toJSON(); + if (val !== undefined) + res.push(val); + }); + return res; + } + if (this.type === 'time') { + return new Date(this.value); + } + const numb = Number(this.type); + if (!Number.isNaN(numb) || this.type === 'NaN') + return numb; + throw new Error(`Unknown type (${this.type}) at ${this.uri}`); + } + get value() { + var values = []; + for (var child of this.sub) { + if (child.type) + continue; + values.push(child.value); + } + return this.data + values.join("\n"); + } + insert(value, ...path) { + if (path.length === 0) + return value; + const type = path[0]; + if (typeof type === 'string') { + let replaced = false; + const sub = this.sub.map((item, index) => { + if (item.type !== type) + return item; + replaced = true; + return item.insert(value, ...path.slice(1)); + }); + if (!replaced) + sub.push(new $mol_tree({ type }).insert(value, ...path.slice(1))); + return this.clone({ sub }); + } + else if (typeof type === 'number') { + const sub = this.sub.slice(); + sub[type] = (sub[type] || new $mol_tree).insert(value, ...path.slice(1)); + return this.clone({ sub }); + } + else { + return this.clone({ sub: ((this.sub.length === 0) ? [new $mol_tree()] : this.sub).map(item => item.insert(value, ...path.slice(1))) }); + } + } + select(...path) { + var next = [this]; + for (var type of path) { + if (!next.length) + break; + var prev = next; + next = []; + for (var item of prev) { + switch (typeof (type)) { + case 'string': + for (var child of item.sub) { + if (!type || (child.type == type)) { + next.push(child); + } + } + break; + case 'number': + if (type < item.sub.length) + next.push(item.sub[type]); + break; + default: next.push(...item.sub); + } + } + } + return new $mol_tree({ sub: next }); + } + filter(path, value) { + var sub = this.sub.filter(function (item) { + var found = item.select(...path); + if (value == null) { + return Boolean(found.sub.length); + } + else { + return found.sub.some(child => child.value == value); + } + }); + return new $mol_tree({ sub: sub }); + } + transform(visit, stack = []) { + const sub_stack = [this, ...stack]; + return visit(sub_stack, () => this.sub.map(node => node.transform(visit, sub_stack)).filter(n => n)); + } + hack(context) { + const sub = [].concat(...this.sub.map(child => { + const handle = context[child.type] || context['']; + if (!handle) + $.$mol_fail(child.error('Handler not defined')); + return handle(child, context); + })); + return this.clone({ sub }); + } + error(message) { + return new Error(`${message}:\n${this} ${this.baseUri}:${this.row}:${this.col}`); + } + } + __decorate([ + $.$mol_deprecated('Use $mol_tree:hack') + ], $mol_tree.prototype, "transform", null); + $.$mol_tree = $mol_tree; +})($ || ($ = {})); +//tree.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_state_local extends $.$mol_object { + static native() { + if (this['native()']) + return this['native()']; + check: try { + const native = $.$mol_dom_context.localStorage; + if (!native) + break check; + native.setItem('', ''); + native.removeItem(''); + return this['native()'] = native; + } + catch (error) { + console.warn(error); + } + return this['native()'] = { + getItem(key) { + return this[':' + key]; + }, + setItem(key, value) { + this[':' + key] = value; + }, + removeItem(key) { + this[':' + key] = void 0; + } + }; + } + static value(key, next, force) { + if (next === void 0) + return JSON.parse(this.native().getItem(key) || 'null'); + if (next === null) + this.native().removeItem(key); + else + this.native().setItem(key, JSON.stringify(next)); + return next; + } + prefix() { return ''; } + value(key, next) { + return $mol_state_local.value(this.prefix() + '.' + key, next); + } + } + __decorate([ + $.$mol_mem_key + ], $mol_state_local, "value", null); + $.$mol_state_local = $mol_state_local; +})($ || ($ = {})); +//local.js.map +; +"use strict"; +var $; +(function ($) { + self.addEventListener('storage', event => { + if (!event.key) + return; + $.$mol_state_local.value(event.key, undefined, $.$mol_mem_force_cache); + }); +})($ || ($ = {})); +//local.web.js.map +; +"use strict"; +var $node = $node || {}; +//node.web.js.map +; +"use strict"; +var $; +(function ($) { + var _a; + const TextEncoder = (_a = globalThis.TextEncoder) !== null && _a !== void 0 ? _a : $node.util.TextEncoder; + const encoder = new TextEncoder(); + function $mol_charset_encode(value) { + return encoder.encode(value); + } + $.$mol_charset_encode = $mol_charset_encode; +})($ || ($ = {})); +//encode.js.map +; +"use strict"; +var $; +(function ($) { + var _a; + const TextDecoder = (_a = globalThis.TextDecoder) !== null && _a !== void 0 ? _a : $node.util.TextDecoder; + function $mol_charset_decode(value, code = 'utf8') { + return new TextDecoder(code).decode(value); + } + $.$mol_charset_decode = $mol_charset_decode; +})($ || ($ = {})); +//decode.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_file_not_found extends Error { + } + $.$mol_file_not_found = $mol_file_not_found; + class $mol_file extends $.$mol_object { + static absolute(path) { + throw new Error('Not implemented yet'); + } + static relative(path) { + throw new Error('Not implemented yet'); + } + path() { + return '.'; + } + parent() { + return this.resolve('..'); + } + reset() { + try { + this.stat(undefined, $.$mol_mem_force_cache); + } + catch (error) { + if (error instanceof $mol_file_not_found) + return; + return $.$mol_fail_hidden(error); + } + } + version() { + return this.stat().mtime.getTime().toString(36).toUpperCase(); + } + watcher() { + console.warn('$mol_file_web.watcher() not implemented'); + return { + destructor() { } + }; + } + exists(next, force) { + let exists = true; + try { + this.stat(); + } + catch (error) { + if (error instanceof $mol_file_not_found) { + exists = false; + } + else { + return $.$mol_fail_hidden(error); + } + } + if (next === undefined) + return exists; + if (next === exists) + return exists; + if (next) + this.parent().exists(true); + this.ensure(next); + this.reset(); + return next; + } + type() { + return this.stat().type; + } + name() { + return this.path().replace(/^.*\//, ''); + } + ext() { + const match = /((?:\.\w+)+)$/.exec(this.path()); + return match ? match[1].substring(1) : ''; + } + text(next, force) { + const buffer = next === undefined ? undefined : $.$mol_charset_encode(next); + return $.$mol_charset_decode(this.buffer(buffer, force)); + } + fail(error) { + this.buffer(error, $.$mol_mem_force_fail); + this.stat(error, $.$mol_mem_force_fail); + } + buffer_cached(buffer) { + const ctime = new Date(); + const stat = { + type: 'file', + size: buffer.length, + ctime, + atime: ctime, + mtime: ctime + }; + this.buffer(buffer, $.$mol_mem_force_cache); + this.stat(stat, $.$mol_mem_force_cache); + } + text_cached(content) { + this.buffer_cached($.$mol_charset_encode(content)); + } + find(include, exclude) { + const found = []; + const sub = this.sub(); + for (const child of sub) { + const child_path = child.path(); + if (exclude && child_path.match(exclude)) + continue; + if (!include || child_path.match(include)) + found.push(child); + if (child.type() === 'dir') { + const sub_child = child.find(include, exclude); + for (const child of sub_child) + found.push(child); + } + } + return found; + } + size() { + switch (this.type()) { + case 'file': return this.stat().size; + default: return 0; + } + } + } + __decorate([ + $.$mol_mem + ], $mol_file.prototype, "exists", null); + __decorate([ + $.$mol_mem + ], $mol_file.prototype, "text", null); + __decorate([ + $.$mol_mem_key + ], $mol_file, "absolute", null); + $.$mol_file = $mol_file; +})($ || ($ = {})); +//file.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_dom_parse(text, type = 'application/xhtml+xml') { + const parser = new $.$mol_dom_context.DOMParser(); + const doc = parser.parseFromString(text, type); + const error = doc.getElementsByTagName('parsererror')[0]; + if (error) + throw new Error(error.textContent); + return doc; + } + $.$mol_dom_parse = $mol_dom_parse; +})($ || ($ = {})); +//parse.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_fetch_response extends $.$mol_object2 { + constructor(native) { + super(); + this.native = native; + } + headers() { + return this.native.headers; + } + mime() { + return this.headers().get('content-type'); + } + stream() { + return this.native.body; + } + text() { + const buffer = this.buffer(); + const native = this.native; + const mime = native.headers.get('content-type') || ''; + const [, charset] = /charset=(.*)/.exec(mime) || [, 'utf-8']; + const decoder = new TextDecoder(charset); + return decoder.decode(buffer); + } + json() { + const response = this.native; + const parse = $.$mol_fiber_sync(response.json); + return parse.call(response); + } + buffer() { + const response = this.native; + const parse = $.$mol_fiber_sync(response.arrayBuffer); + return parse.call(response); + } + xml() { + return $.$mol_dom_parse(this.text(), 'application/xml'); + } + xhtml() { + return $.$mol_dom_parse(this.text(), 'application/xhtml+xml'); + } + html() { + return $.$mol_dom_parse(this.text(), 'text/html'); + } + } + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "stream", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "text", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "json", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "buffer", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "xml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "xhtml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch_response.prototype, "html", null); + $.$mol_fetch_response = $mol_fetch_response; + class $mol_fetch extends $.$mol_object2 { + static response(input, init) { + const response = this.request(input, init); + if (Math.floor(response.status / 100) === 2) + return new $mol_fetch_response(response); + throw new Error(response.statusText || `HTTP Error ${response.status}`); + } + static stream(input, init) { + return this.response(input, init).stream(); + } + static text(input, init) { + return this.response(input, init).text(); + } + static json(input, init) { + return this.response(input, init).json(); + } + static buffer(input, init) { + this.response(input, init).buffer(); + } + static xml(input, init) { + return this.response(input, init).xml(); + } + static xhtml(input, init) { + return this.response(input, init).xhtml(); + } + static html(input, init) { + return this.response(input, init).html(); + } + } + $mol_fetch.request = $.$mol_fiber_sync((input, init = {}) => { + if (typeof AbortController === 'function') { + var controller = new AbortController(); + init.signal = controller.signal; + const fiber = $.$mol_fiber.current; + fiber.abort = () => { + if (fiber.cursor === -2) + return true; + controller.abort(); + return true; + }; + } + let native = $.$mol_dom_context.fetch; + if (!native) + native = $node['node-fetch']; + return native(input, init); + }); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "response", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "stream", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "text", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "json", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "buffer", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "xml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "xhtml", null); + __decorate([ + $.$mol_fiber.method + ], $mol_fetch, "html", null); + $.$mol_fetch = $mol_fetch; +})($ || ($ = {})); +//fetch.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_file_web extends $.$mol_file { + static absolute(path) { + return this.make({ + path: $.$mol_const(path) + }); + } + static relative(path) { + return this.absolute(new URL(path, this.base).toString()); + } + buffer(next, force) { + if (next !== undefined) + throw new Error(`Saving content not supported: ${this.path}`); + const response = $.$mol_fetch.response(this.path()); + if (response.native.status === 404) + throw new $.$mol_file_not_found(`File not found: ${this.path()}`); + return new Uint8Array(response.buffer()); + } + stat(next, force) { + let stat = next; + if (next === undefined) { + const content = this.text(); + const ctime = new Date(); + stat = { + type: 'file', + size: content.length, + ctime, + atime: ctime, + mtime: ctime + }; + } + this.parent().watcher(); + return stat; + } + resolve(path) { + let res = this.path() + '/' + path; + while (true) { + let prev = res; + res = res.replace(/\/[^\/.]+\/\.\.\//, '/'); + if (prev === res) + break; + } + return this.constructor.absolute(res); + } + ensure(next) { + throw new Error('$mol_file_web.ensure() not implemented'); + } + sub() { + throw new Error('$mol_file_web.sub() not implemented'); + } + relate(base = this.constructor.relative('.')) { + throw new Error('$mol_file_web.relate() not implemented'); + } + append(next) { + throw new Error('$mol_file_web.append() not implemented'); + } + } + $mol_file_web.base = $.$mol_dom_context.document + ? new URL('.', $.$mol_dom_context.document.currentScript['src']).toString() + : ''; + __decorate([ + $.$mol_mem + ], $mol_file_web.prototype, "buffer", null); + __decorate([ + $.$mol_mem + ], $mol_file_web.prototype, "stat", null); + __decorate([ + $.$mol_mem + ], $mol_file_web.prototype, "sub", null); + __decorate([ + $.$mol_mem_key + ], $mol_file_web, "absolute", null); + $.$mol_file_web = $mol_file_web; + $.$mol_file = $mol_file_web; +})($ || ($ = {})); +//file.web.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_locale extends $.$mol_object { + static lang_default() { + return 'en'; + } + static lang(next) { + return $.$mol_state_local.value('locale', next) || $.$mol_dom_context.navigator.language.replace(/-.*/, '') || this.lang_default(); + } + static source(lang) { + return JSON.parse($.$mol_file.relative(`web.locale=${lang}.json`).text().toString()); + } + static texts(lang, next) { + if (next) + return next; + try { + return this.source(lang).valueOf(); + } + catch (error) { + if ('then' in error) + $.$mol_fail_hidden(error); + const def = this.lang_default(); + if (lang === def) + throw error; + return this.source(def); + } + } + static text(key) { + for (let lang of [this.lang(), 'en']) { + const text = this.texts(lang)[key]; + if (text) + return text; + console.warn(`Not translated to "${lang}": ${key}`); + } + return `<${key}>`; + } + } + __decorate([ + $.$mol_mem + ], $mol_locale, "lang_default", null); + __decorate([ + $.$mol_mem + ], $mol_locale, "lang", null); + __decorate([ + $.$mol_mem_key + ], $mol_locale, "source", null); + __decorate([ + $.$mol_mem_key + ], $mol_locale, "texts", null); + __decorate([ + $.$mol_mem_key + ], $mol_locale, "text", null); + $.$mol_locale = $mol_locale; +})($ || ($ = {})); +//locale.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_view_tree_trim_remarks(def) { + return def.transform(([node], sub) => (node.type === '-') ? null : node.clone({ sub: sub() })); + } + $.$mol_view_tree_trim_remarks = $mol_view_tree_trim_remarks; + function $mol_view_tree_classes(defs) { + return $mol_view_tree_trim_remarks(defs); + } + $.$mol_view_tree_classes = $mol_view_tree_classes; + function $mol_view_tree_class_name(val) { + return val.type; + } + $.$mol_view_tree_class_name = $mol_view_tree_class_name; + function $mol_view_tree_super_name(val) { + if (val.sub.length != 1) + throw val.error('Wrong sub count'); + return val.sub[0].type; + } + $.$mol_view_tree_super_name = $mol_view_tree_super_name; + function $mol_view_tree_class_props(def) { + const props = {}; + const catch_prop = (prop, type = '') => { + let def = prop; + if (type === '=>') { + if (prop.sub[0]) + throw prop.error('Right binding can not have default value'); + } + else { + if (prop.sub.length === 0) + return; + if (prop.sub[0].type === '-') + return; + props[prop.type] = props[prop.type]; + def = prop.clone({ + sub: [prop.sub[0].transform(([node, ...stack], sub) => { + if (['<=', '<=>', '=>'].indexOf(node.type) === -1) + return node.clone({ sub: sub() }); + catch_prop(node.sub[0], node.type); + return node.clone({ + sub: [node.sub[0].clone({ + sub: [] + })] + }); + })] + }); + } + if (props[prop.type]) { + if (props[prop.type].toString() !== def.toString()) { + throw def.error('Property already defined with another default value' + props[prop.type].error('').message + '\n---'); + } + } + else { + props[prop.type] = def; + } + }; + def.sub[0].sub.map(sub => catch_prop(sub)); + return def.clone({ + type: '', + sub: Object.keys(props).map(name => props[name]), + }); + } + $.$mol_view_tree_class_props = $mol_view_tree_class_props; + function $mol_view_tree_prop_name(prop) { + return (prop.type.match(/^\w+/) || [])[0] || ''; + } + $.$mol_view_tree_prop_name = $mol_view_tree_prop_name; + function $mol_view_tree_prop_key(prop) { + return (prop.type.match(/!(\w+)$/) || [])[1] || ''; + } + $.$mol_view_tree_prop_key = $mol_view_tree_prop_key; + function $mol_view_tree_prop_next(prop) { + return (prop.type.match(/\?(\w+)$/) || [])[1] || ''; + } + $.$mol_view_tree_prop_next = $mol_view_tree_prop_next; + function $mol_view_tree_prop_value(prop) { + if (prop.sub.length != 1) + throw prop.error(`Wrong sub count (${prop.sub.length})`); + return prop.sub[0]; + } + $.$mol_view_tree_prop_value = $mol_view_tree_prop_value; + function $mol_view_tree_value_type(val) { + switch (val.type) { + case 'true': return 'bool'; + case 'false': return 'bool'; + case 'null': return 'null'; + case '*': return 'dict'; + case '@': return 'locale'; + case '': return 'string'; + case '<=': return 'get'; + case '<=>': return 'bind'; + case '=>': return 'put'; + } + switch (val.type[0]) { + case '/': return 'list'; + case '$': return 'object'; + } + if (Number(val.type).toString() == val.type) + return 'number'; + throw val.error('Wrong value'); + } + $.$mol_view_tree_value_type = $mol_view_tree_value_type; + function $mol_view_tree_compile(tree) { + const splittedUri = tree.uri.split(/[#\\\/]/); + splittedUri.pop(); + const fileName = splittedUri.pop(); + const SourceNode = (row, col, fileName, text) => text; + var content = []; + var locales = {}; + for (let def of $mol_view_tree_classes(tree).sub) { + if (!/^\$\w+$/.test(def.type)) + throw def.error('Wrong component name'); + var parent = def.sub[0]; + var members = {}; + for (let param of $mol_view_tree_class_props(def).sub) { + try { + var needSet = false; + var needCache = false; + if (param.type === '<=>') { + param = param.sub[0]; + } + if (param.type === '<=') { + param = param.sub[0]; + } + var propName = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(param.type); + if (propName[3]) { + needSet = true; + needCache = true; + } + const getValue = (value, definition) => { + try { + switch (true) { + case (value.type === ''): + return [JSON.stringify(value.value)]; + case (value.type === '@'): + const key = `${def.type}_${param.type.replace(/[?!].*/, '')}`; + locales[key] = value.value; + return [`this.$.$mol_locale.text( ${JSON.stringify(key)} )`]; + case (value.type === '-'): + return null; + case (value.type[0] === '/'): + const item_type = value.type.substring(1); + var items = []; + value.sub.forEach(item => { + if (item.type === '-') + return; + if (item.type === '^') { + items.push(`...super.${param.type}()`); + return; + } + var val = getValue(item); + if (val) + items.push(val.join("")); + }); + return [`[`, items.join(' , '), `]`, (item_type ? ` as readonly ( ${item_type} )[]` : ` as readonly any[]`)]; + case (value.type[0] === '$'): + if (!definition) + throw value.error('Objects should be bound'); + needCache = true; + var overs = []; + value.sub.forEach(over => { + if (/^[-\/]?$/.test(over.type)) + return ''; + var overName = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(over.type); + var ns = needSet; + if (over.sub[0].type === '=>') { + if (over.sub[0].sub.length === 1) { + const [, own_name, own_key, own_next] = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(over.sub[0].sub[0].type); + let own_args = []; + if (own_key) + own_args.push(` ${own_key} : any `); + if (own_next) + own_args.push(` ${own_next}? : any `); + let [, their_name, ...their_args] = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(over.type); + their_args = their_args.filter(Boolean); + members[own_name] = [`\t${own_name}(${own_args.join(',')}) {\n\t\treturn this.${propName[1]}(${propName[2] || ''}).${their_name}( ${their_args.join(' , ')} )\n\t}\n\n`]; + return; + } + } + var v = getValue(over.sub[0]); + let args = []; + if (overName[2]) + args.push(` ${overName[2]} : any `); + if (overName[3]) + args.push(` ${overName[3]}? : any `); + overs.push(...['\t\t\tobj.', SourceNode(over.row, over.col, fileName, overName[1]), ' = (', args.join(','), ') => ', ...(v || []), '\n']); + needSet = ns; + }); + const object_args = value.select('/', '').sub.map(arg => getValue(arg)).join(' , '); + return ['(( obj )=>{\n', ...overs, '\t\t\treturn obj\n\t\t})( new this.$.', SourceNode(value.row, value.col, fileName, value.type), '( ', object_args, ' ) )']; + case (value.type === '*'): + var opts = []; + value.sub.forEach(opt => { + if (opt.type === '-') + return ''; + if (opt.type === '^') { + opts.push(`\t\t\t...super.${param.type}() ,\n`); + return; + } + var key = /(.*?)(?:\?(\w+))?$/.exec(opt.type); + var ns = needSet; + var v = getValue(opt.sub[0]); + var arg = key[2] ? ` ( ${key[2]}? : any )=> ` : ''; + opts.push(...['\t\t\t"', SourceNode(opt.row, opt.col, fileName, key[1] + '" : '), arg, ' ', ...(v || []), ' ,\n']); + needSet = ns; + }); + return ['({\n', opts.join(''), '\t\t})']; + case (value.type === '<=>'): + if (value.sub.length === 1) { + var type = /(.*?)(?:\!(\w+))?(?:\?(\w+))$/.exec(value.sub[0].type); + return ['this.' + type[1] + '(' + (type[2] ? type[2] + ' ,' : '') + ' ' + type[3] + ' )']; + } + break; + case (value.type === '<='): + if (value.sub.length === 1) { + var type = /(.*?)(?:\!(\w+))?(?:\?(\w+))?$/.exec(value.sub[0].type); + return ['this.' + type[1] + '(' + (type[2] ? type[2] : '') + ')']; + } + break; + } + switch (value.type) { + case 'true': + case 'false': + return [value.type]; + case 'null': + return ['null as any']; + } + if (Number(value.type).toString() == value.type) + return [value.type]; + throw value.error('Wrong value'); + } + catch (err) { + throw err; + } + }; + if (param.sub.length > 1) + throw new Error('Too more sub'); + param.sub.forEach(child => { + var val = getValue(child, true); + if (!val) + return; + var args = []; + if (propName[2]) + args.push(` ${propName[2]} : any `); + if (propName[3]) + args.push(` ${propName[3]}? : any , force? : $${''}mol_mem_force `); + if (needSet) + val = [ + `( ${propName[3]} !== void 0 ) ? ${propName[3]} : `, + ...val + ]; + val = ['return ', ...val]; + var decl = ['\t', SourceNode(param.row, param.col, fileName, propName[1]), '(', args.join(','), ') {\n\t\t', ...val, '\n\t}\n\n']; + if (needCache) { + if (propName[2]) + decl = ['\t@ $', 'mol_mem_key\n', ...decl]; + else + decl = ['\t@ $', 'mol_mem\n', ...decl]; + } + decl = ['\t/**\n\t * ```\n', param.toString().trim().replace(/^/mg, '\t * '), '\n\t * ```\n\t **/\n', ...decl]; + members[propName[1]] = decl; + }); + } + catch (err) { + throw err; + } + } + var body = Object.keys(members).reduce(function (acc, name) { + const items = members[name] ? members[name] : ['\t', name, '() { return null as any }\n\t}\n']; + return [...acc, ...items]; + }, []); + var classes = ['namespace $ { export class ', SourceNode(def.row, def.col, fileName, def.type), ' extends ', SourceNode(parent.row, parent.col, fileName, parent.type), ' {\n\n', ...body, '} }\n']; + content = [...content, ...classes]; + } + return { script: content.join(''), locales }; + } + $.$mol_view_tree_compile = $mol_view_tree_compile; +})($ || ($ = {})); +//tree.js.map + +//# sourceMappingURL=web.js.map diff --git a/mol/web.js.map b/mol/web.js.map new file mode 100644 index 00000000..e564a41b --- /dev/null +++ b/mol/web.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../mol.jam.js","-","../../../mol.ts","../../../ambient/ambient.ts","../../../delegate/delegate.ts","../../../owning/owning.ts","../../../fail/fail.ts","../../../fail/hidden/hidden.ts","../../../type/writable/writable.js","../../../object2/object2.ts","../../../after/tick/tick.ts","../../../dom/context/context.ts","../../../dom/context/context.web.ts","../../../style/attach/attach.ts","../../../decor/decor.ts","../../../style/unit/unit.ts","../../../style/func/func.ts","../../../theme/-css/theme.css.ts","../../../theme/theme.ts","../../../skin/-css/skin.css.ts","../../../object/object.ts","../../../log3/log3.ts","../../../log3/log3.web.ts","../../../wrapper/wrapper.ts","../../../after/frame/frame.web.ts","../../../compare/any/any.ts","../../../conform/conform.ts","../../../array/trim/trim.ts","../../../dev/format/format.ts","../../../fiber/fiber.ts","../../../atom2/atom2.ts","../../../type/param/param.js","../../../type/result/result.js","../../../mem/force/force.ts","../../../mem/mem.ts","../../../window/window.web.ts","../../../dict/dict.ts","../../../mem/key/key.ts","../../../atom2/autorun/autorun.ts","../../../defer/defer.ts","../../../view/selection/selection.ts","../../../after/timeout/timeout.ts","../../../view/selection/selection.web.ts","../../../dom/qname/qname.ts","../../../const/const.ts","../../../dom/render/attributes/attributes.ts","../../../fail/catch/catch.ts","../../../dom/render/styles/styles.ts","../../../dom/render/fields/fields.ts","../../../dom/render/children/children.ts","../../../memo/memo.ts","../../../func/name/name.ts","../../../deprecated/deprecated.ts","../../../type/keys/extract/extract.js","../../../type/pick/pick.js","../../../view/view/view.ts","../../../view/view/-css/view.css.ts","../../../view/view/view.web.ts","../../../type/error/error.js","../../../type/override/override.js","../../../colors/colors.ts","../../../style/properties/properties.js","../../../style/pseudo/class.js","../../../style/pseudo/element.js","../../../style/guard/guard.js","../../../style/sheet/sheet.ts","../../../style/define/define.ts","../../../scroll/-view.tree/scroll.view.tree.ts","../../../state/session/session.ts","../../../scroll/scroll.view.css.ts","../../../scroll/scroll.view.ts","../../../list/-view.tree/list.view.tree.ts","../../../support/css/css.ts","../../../dom/listener/listener.ts","../../../print/print.ts","../../../list/-css/list.view.css.ts","../../../list/list.view.ts","../../../plugin/plugin.ts","../../../meter/-view.tree/meter.view.tree.ts","../../../meter/meter.view.ts","../../../pop/-view.tree/pop.view.tree.ts","../../../keyboard/code.ts","../../../pop/-css/pop.view.css.ts","../../../pop/pop.view.ts","../../../pop/over/-view.tree/over.view.tree.ts","../../../pop/over/-css/over.view.css.ts","../../../pop/over/over.view.ts","../-view.tree/dbmon.view.tree.ts","../../../after/work/work.web.ts","../../../state/time/time.ts","../-css/dbmon.view.css.ts","../dbmon.view.ts","../../../view/tree/test/-view.tree/attributes.view.tree.ts","../../../view/tree/test/-view.tree/binding.view.tree.ts","../../../view/tree/test/-view.tree/binding_right.view.tree.ts","../../../view/tree/test/-view.tree/simple.view.tree.ts","../../../view/tree/test/-view.tree/subcomponent.view.tree.ts","../../../tree/tree.ts","../../../state/local/local.ts","../../../state/local/local.web.ts","../../../../node/node.web.ts","../../../charset/encode/encode.ts","../../../charset/decode/decode.ts","../../../file/file.ts","../../../dom/parse/parse.ts","../../../fetch/fetch.ts","../../../file/file.web.ts","../../../locale/locale.ts","../../../view/tree/tree.ts"],"names":[],"mappings":"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","file":"web.js","sourcesContent":[null,null,"Error.stackTraceLimit = Infinity;\n\ndeclare namespace $ {}\nexport = $\nmodule.exports\n","namespace $ {\n\n\texport namespace $$ { export let $$ : typeof $ }\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\texport type $mol_ambient_context = ( typeof globalThis ) & ( typeof $.$$ ) & ( typeof $ )\n\n\texport function $mol_ambient( this : $mol_ambient_context | void , overrides : Partial< $mol_ambient_context > ) : $mol_ambient_context {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof having['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n",null,"namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as $mol_ambient_context\n\t\t\n\t\t[ $mol_ambient_ref ] = null as any as $mol_ambient_context\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $mol_ambient_context\n\t\t}\n\t\tset $( next : $mol_ambient_context ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tconstructor( init? : ( obj : any )=> void ) {\n\t\t\tif( init ) init( this )\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable )=> void\n\t\t) : Instance {\n\t\t\treturn new this( init )\n\t\t}\n\t\t\n\t\tstatic toString() { return this[ Symbol.toStringTag ] || this.name }\n\n\t\tdestructor() { }\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tpromise : any\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.promise = Promise.resolve().then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$mol_dom_context = self as any\n\t\n}\n","namespace $ {\n\n\tlet all = [] as string[]\n\tlet el : HTMLStyleElement | null = null\n\tlet timer : $mol_after_tick | null = null\n\n\texport function $mol_style_attach(\n\t\tid : string ,\n\t\ttext : string ,\n\t) {\n\n\t\tall.push( `/* ${ id } */\\n\\n${ text }`)\n\n\t\tif( timer ) return el!\n\t\t\n\t\tconst doc = $mol_dom_context.document\n\t\tif( !doc ) return null\n\n\t\tel = doc.createElement('style')\n\t\tel.id = `$mol_style_attach`\n\t\tdoc.head.appendChild( el )\n\n\t\ttimer = new $mol_after_tick( ()=> {\n\t\t\tel!.innerHTML = '\\n' + all.join( '\\n\\n' )\n\t\t\tall = []\n\t\t\tel = null\n\t\t\ttimer = null\n\t\t} )\n\n\t\treturn el\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_decor< Value > {\n\t\t\n\t\tconstructor(\n\t\t\treadonly value : Value\n\t\t) {}\n\n\t\tprefix() { return '' }\n\t\tvalueOf() { return this.value }\n\t\tpostfix() { return '' }\n\n\t\ttoString(){\n\t\t\treturn `${ this.prefix() }${ this.valueOf() }${ this.postfix() }`\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport type $mol_style_unit_length =\n\t| '%'\n\t| 'px' | 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt'\n\t| 'cap' | 'ch' | 'em' | 'rem' | 'ex' | 'ic' | 'lh' | 'rlh'\n\t| 'vh' | 'vw' | 'vi' | 'vb' | 'vmin' | 'vmax'\n\t\n\texport type $mol_style_unit_angle = 'deg' | 'rad' | 'grad' | 'turn'\n\t\n\texport type $mol_style_unit_time = 's' | 'ms'\n\n\texport type $mol_style_unit_any = $mol_style_unit_length | $mol_style_unit_angle | $mol_style_unit_time\n\t\n\texport class $mol_style_unit<\n\t\tLiteral extends $mol_style_unit_any\n\t> extends $mol_decor< number > {\n\n\t\tconstructor(\n\t\t\tvalue : number,\n\t\t\treadonly literal : Literal,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tpostfix() {\n\t\t\treturn this.literal\n\t\t}\n\n\t\tstatic per( value : number ) { return new $mol_style_unit( value , '%' ) }\n\t\tstatic px( value : number ) { return new $mol_style_unit( value , 'px' ) }\n\t\tstatic mm( value : number ) { return new $mol_style_unit( value , 'mm' ) }\n\t\tstatic cm( value : number ) { return new $mol_style_unit( value , 'cm' ) }\n\t\tstatic Q( value : number ) { return new $mol_style_unit( value , 'Q' ) }\n\t\tstatic in( value : number ) { return new $mol_style_unit( value , 'in' ) }\n\t\tstatic pc( value : number ) { return new $mol_style_unit( value , 'pc' ) }\n\t\tstatic pt( value : number ) { return new $mol_style_unit( value , 'pt' ) }\n\t\tstatic cap( value : number ) { return new $mol_style_unit( value , 'cap' ) }\n\t\tstatic ch( value : number ) { return new $mol_style_unit( value , 'ch' ) }\n\t\tstatic em( value : number ) { return new $mol_style_unit( value , 'em' ) }\n\t\tstatic rem( value : number ) { return new $mol_style_unit( value , 'rem' ) }\n\t\tstatic ex( value : number ) { return new $mol_style_unit( value , 'ex' ) }\n\t\tstatic ic( value : number ) { return new $mol_style_unit( value , 'ic' ) }\n\t\tstatic lh( value : number ) { return new $mol_style_unit( value , 'lh' ) }\n\t\tstatic rlh( value : number ) { return new $mol_style_unit( value , 'rlh' ) }\n\t\tstatic vh( value : number ) { return new $mol_style_unit( value , 'vh' ) }\n\t\tstatic vw( value : number ) { return new $mol_style_unit( value , 'vw' ) }\n\t\tstatic vi( value : number ) { return new $mol_style_unit( value , 'vi' ) }\n\t\tstatic vb( value : number ) { return new $mol_style_unit( value , 'vb' ) }\n\t\tstatic vmin( value : number ) { return new $mol_style_unit( value , 'vmin' ) }\n\t\tstatic vmax( value : number ) { return new $mol_style_unit( value , 'vmax' ) }\n\t\t\n\t\tstatic deg( value : number ) { return new $mol_style_unit( value , 'deg' ) }\n\t\tstatic rad( value : number ) { return new $mol_style_unit( value , 'rad' ) }\n\t\tstatic grad( value : number ) { return new $mol_style_unit( value , 'grad' ) }\n\t\tstatic turn( value : number ) { return new $mol_style_unit( value , 'turn' ) }\n\n\t\tstatic s( value : number ) { return new $mol_style_unit( value , 's' ) }\n\t\tstatic ms( value : number ) { return new $mol_style_unit( value , 'ms' ) }\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_style_func_name =\n\t| 'calc'\n\t| 'hsla'\n\t| 'rgba'\n\t| 'var'\n\t| 'url'\n\n\tconst { per } = $mol_style_unit\n\t\n\texport class $mol_style_func<\n\t\tName extends $mol_style_func_name ,\n\t\tValue = unknown,\n\t> extends $mol_decor< Value > {\n\n\t\tconstructor(\n\t\t\treadonly name : Name,\n\t\t\tvalue : Value,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tprefix() { return this.name + '(' }\n\t\tpostfix() { return ')' }\n\n\t\tstatic calc< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'calc' , value )\n\t\t}\n\n\t\tstatic vary< Name extends string >( name : Name ) {\n\t\t\treturn new $mol_style_func( 'var' , name )\n\t\t}\n\n\t\tstatic url< Href extends string >( href : Href ) {\n\t\t\treturn new $mol_style_func( 'url' , JSON.stringify( href ) )\n\t\t}\n\n\t\tstatic hsla(\n\t\t\thue: number,\n\t\t\tsaturation: number,\n\t\t\tlightness: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'hsla',\n\t\t\t\t[ hue , per( saturation ) , per( lightness ) , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic rgba(\n\t\t\tred: number,\n\t\t\tgreen: number,\n\t\t\tblue: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'rgba',\n\t\t\t\t[ red , green , blue , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \"[mol_theme] {\\n\\tbackground-color: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n}\\n\\n[mol_theme=\\\"$mol_theme_light\\\"] , :root {\\n\\t--mol_theme_back: hsl( 210 , 50% , 99% );\\n\\t--mol_theme_hover: rgba( 0 , 0 , 0 , .05 );\\n\\t--mol_theme_current: hsl( 210 , 100% , 80% );\\n\\t--mol_theme_text: hsl( 0 , 0% , 0% );\\n\\t--mol_theme_control: hsla( 210 , 60% , 35% , 1 );\\n\\t--mol_theme_shade: rgba( 0 , 0 , 0 , .5 );\\n\\t--mol_theme_line: rgba( 220 , 220 , 220 , 1 );\\n\\t--mol_theme_focus: hsl( 290 , 100% , 40% );\\n\\t--mol_theme_field: white;\\n\\t--mol_theme_image: none;\\n}\\n\\n[mol_theme=\\\"$mol_theme_dark\\\"] {\\n\\t--mol_theme_back: hsl( 210 , 50% , 10% );\\n\\t--mol_theme_hover: #333;\\n\\t--mol_theme_current: hsl( 210 , 100% , 30% );\\n\\t--mol_theme_text: hsl( 0 , 0% , 80% );\\n\\t--mol_theme_control: hsla( 210 , 60% , 70% , 1 );\\n\\t--mol_theme_shade: rgba( 255 , 255 , 255 , .5 );\\n\\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\\n\\t--mol_theme_focus: hsl( 60 , 100% , 70% );\\n\\t--mol_theme_field: black;\\n\\t--mol_theme_image: invert(1) hue-rotate(180deg);\\n}\\n\\n[mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: hsla( 210 , 60% , 35% , 1 );\\n\\t--mol_theme_hover: hsla( 210 , 60% , 20% , 1 );\\n\\t--mol_theme_current: hsl( 210 , 100% , 20% );\\n\\t--mol_theme_text: white;\\n\\t--mol_theme_line: white;\\n\\t--mol_theme_control: white;\\n}\\n\\n[mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: hsl( 15 , 60% , 50% );\\n\\t--mol_theme_hover: hsl( 15 , 60% , 40% );\\n\\t--mol_theme_text: white;\\n\\t--mol_theme_line: rgba( 50 , 50 , 50 , 1 );\\n\\t--mol_theme_control: white;\\n\\t--mol_theme_focus: black;\\n}\\n\\n[mol_theme=\\\"$mol_theme_accent\\\"] [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: black;\\n\\t--mol_theme_text: white;\\n}\\n\"\n) }","namespace $ {\n\n\tconst { vary } = $mol_style_func\n\n\texport const $mol_theme = {\n\t\tback: vary('--mol_theme_back'),\n\t\thover: vary('--mol_theme_hover'),\n\t\tcurrent: vary('--mol_theme_current'),\n\t\ttext: vary('--mol_theme_text'),\n\t\tcontrol: vary('--mol_theme_control'),\n\t\tshade: vary('--mol_theme_shade'),\n\t\tline: vary('--mol_theme_line'),\n\t\tfocus: vary('--mol_theme_focus'),\n\t\tfield: vary('--mol_theme_field'),\n\t\timage: vary('--mol_theme_image'),\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/skin/skin.css\",\n \":root {\\n\\t--mol_skin_font: 16px/24px sans-serif;\\n\\t/* --mol_skin_font_monospace: Monaco, monospace; */\\n\\t--mol_skin_font_monospace: monospace;\\n}\\n\\n/* Deprecated, use mol_theme instead */\\n:root {\\n\\n\\t--mol_skin_outline: 0 0 0 1px var(--mol_theme_line);\\n\\t\\n\\t--mol_skin_base: #3a8ccb;\\n\\t--mol_skin_base_text: white;\\n\\t\\n\\t--mol_skin_current: var(--mol_skin_base);\\n\\t--mol_skin_current_text: white;\\n\\t--mol_skin_current_line: #1471b8;\\n\\t\\n\\t--mol_skin_button: var(--mol_skin_card);\\n\\t--mol_skin_hover: rgba( 0 , 0 , 0 , .05 );\\n\\t\\n\\t--mol_skin_round: 0px;\\n\\t\\n\\t--mol_skin_focus_line: rgba( 0 , 0 , 0 , .2 );\\n\\t--mol_skin_focus_outline: 0 0 0 1px var(--mol_skin_focus_line);\\n\\t\\n\\t--mol_skin_float: var(--mol_skin_focus_outline);\\n\\n\\t--mol_skin_passive: #eee;\\n\\t--mol_skin_passive_text: rgba( 0 , 0 , 0 , .5 );\\n\\t\\n\\t--mol_skin_light: #fcfcfc;\\n\\t--mol_skin_light_line: rgba( 230 , 230 , 230 , .75 );\\n\\t--mol_skin_light_text: rgba( 0 , 0 , 0 , .9 );\\n\\t--mol_skin_light_hover: #f7f7f7;\\n\\t--mol_skin_light_outline: 0 0 0 1px var(--mol_theme_line);\\n\\n\\t--mol_skin_card: var(--mol_theme_back);\\n\\t--mol_skin_card_text: var(--mol_theme_text);\\n\\t\\n\\t--mol_skin_accent: #dd0e3e;\\n\\t--mol_skin_accent_text: white;\\n\\t--mol_skin_accent_hover: #c50d37;\\n\\n\\t--mol_skin_warn: rgba( 255 , 50 , 50 , 0.75 );\\n\\t--mol_skin_warn_text: white;\\n\\t--mol_skin_warn_hover: color( var(--mol_skin_warn) lightness(-5%) );\\n\\n\\t--mol_skin_good: #96DAA9;\\n\\t--mol_skin_good_text: black;\\n\\n\\t--mol_skin_bad: #CC5252;\\n\\t--mol_skin_bad_text: white;\\n}\\n\"\n) }","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< Instance >( this : { new() : Instance } , config : Partial< Instance > ) : Instance {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as any\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $mol_ambient_context ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $mol_ambient_context ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\texport function $mol_log3_web_make< Close>(\n\t\tlevel : keyof Console ,\n\t\tcolor : string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $mol_ambient_context ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tconst pending = this.$mol_log3_stack.pop()\n\t\t\tif( pending ) pending()\n\n\t\t\tlet tpl = '%c'\n\t\t\tconst chunks = Object.values( event )\n\n\t\t\tfor( let i = 0 ; i < chunks.length ; ++i ) {\n\t\t\t\ttpl += ( typeof chunks[i] === 'string' ) ? ' ⦙ %s' : ' ⦙ %o'\n\t\t\t}\n\t\n\t\t\tconst style = `color:${color};font-weight:bolder`\n\n\t\t\tthis.console[ level ]( tpl , style , ... chunks )\n\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_web_make( 'info' , 'royalblue' )\n\t$.$mol_log3_done = $mol_log3_web_make( 'info' , 'forestgreen' )\n\t$.$mol_log3_fail = $mol_log3_web_make( 'error' , 'orangered' )\n\t$.$mol_log3_warn = $mol_log3_web_make( 'warn' , 'goldenrod' )\n\t$.$mol_log3_rise = $mol_log3_web_make( 'log' , 'magenta' )\n\t$.$mol_log3_area = $mol_log3_web_make( 'group' , 'cyan' )\n\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : new ( ... args : Args )=> Result , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t}\n\n\t\t\t\thandler[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr : TypedPropertyDescriptor< ( this : Host , ... args : Args )=> Result >\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr : TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_object2 {\n\n\t\tstatic _promise = null as Promise | null\n\n\t\tstatic get promise() {\n\n\t\t\tif( this._promise ) return this._promise\n\t\t\t\n\t\t\treturn this._promise = new Promise( done => requestAnimationFrame( ()=> {\n\t\t\t\tthis._promise = null\n\t\t\t\tdone()\n\t\t\t} ) )\n\n\t\t}\n\n\t\tcancelled = false\n\t\tpromise!: Promise\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\n\t\t\tthis.promise = $mol_after_frame.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_compare_any( a : any , b : any ) {\n\t\t\n\t\tif( a === b ) return true\n\t\t\n\t\tif( !Number.isNaN( a ) ) return false\n\t\tif( !Number.isNaN( b ) ) return false\n\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\tconst cache = new WeakMap< any , boolean >()\n\n\texport const $mol_conform_stack = [] as any[]\n\n\texport function $mol_conform< Target , Source >( target : Target , source : Source ) : Target {\n\n\t\tif( $mol_compare_any( target , source ) ) return source as any\n\n\t\tif( !target || typeof target !== 'object' ) return target\n\t\tif( !source || typeof source !== 'object' ) return target\n\n\t\tif( target instanceof Error ) return target\n\t\tif( source instanceof Error ) return target\n\t\t\n\t\tif( target['constructor'] !== source['constructor'] ) return target\n\n\t\tif( cache.get( target ) ) return target\n\t\tcache.set( target , true )\n\t\t\n\t\tconst conform = $mol_conform_handlers.get( target['constructor'] )\n\t\tif( !conform ) return target\n\n\t\tif( $mol_conform_stack.indexOf( target ) !== -1 ) return target\n\n\t\t$mol_conform_stack.push( target )\n\n\t\ttry { return conform( target , source ) }\n\t\tfinally { $mol_conform_stack.pop() }\n\n\t}\n\n\texport const $mol_conform_handlers = new WeakMap< Object , ( target : any , source : any )=> any >()\n\n\texport function $mol_conform_handler< Class >(\n\t\tcl : { new( ... args : any[] ) : Class } ,\n\t\thandler : ( target : Class , source : Class )=> Class ,\n\t) {\n\t\t$mol_conform_handlers.set( cl , handler )\n\t}\n\n\texport function $mol_conform_array<\n\t\tValue ,\n\t\tList extends {\n\t\t\t[ index : number ] : Value\n\t\t\tlength : number\n\t\t} ,\n\t>( target : List , source : List ) {\n\t\t\n\t\tif( source.length !== target.length ) return target\n\t\t\n\t\tfor( let i = 0 ; i < target.length ; ++i ) {\n\t\t\tif( !$mol_compare_any( source[i] , target[i] ) ) return target\n\t\t}\n\n\t\treturn source\n\t}\n\n\t$mol_conform_handler( Array , $mol_conform_array )\n\t$mol_conform_handler( Uint8Array , $mol_conform_array )\n\t$mol_conform_handler( Uint16Array , $mol_conform_array )\n\t$mol_conform_handler( Uint32Array , $mol_conform_array )\n\n\t$mol_conform_handler( Object , ( target , source )=> {\n\n\t\tlet count = 0\n\t\tlet equal = true\n\n\t\tfor( let key in target ) {\n\n\t\t\tconst conformed = $mol_conform( target[key] , source[key] )\n\t\t\t\n\t\t\tif( conformed !== target[key] ) {\n\t\t\t\ttry { target[key] = conformed } catch( error ) {}\n\t\t\t\tif( !$mol_compare_any( conformed , target[key] ) ) equal = false\n\t\t\t}\n\t\t\t\n\t\t\tif( !$mol_compare_any( conformed , source[key] ) ) equal = false\n\t\t\t\n\t\t\t++ count\n\t\t}\n\n\t\tfor( let key in source ) if( -- count < 0 ) break\n\n\t\treturn ( equal && count === 0 ) ? source : target\n\t} )\n\n\t$mol_conform_handler( Date , ( target , source )=> {\n\t\tif( target.getTime() === source.getTime() ) return source\n\t\treturn target \n\t} )\n\n\t$mol_conform_handler( RegExp , ( target , source )=> {\n\t\tif( target.toString() === source.toString() ) return source\n\t\treturn target\n\t} )\n\n}\n","namespace $ {\n\n\texport function $mol_array_trim< Item >( array : Item[] ) {\n\n\t\tlet last = array.length\n\t\twhile( last > 0 ) {\n\t\t\t\n\t\t\t-- last\n\t\t\tconst value = array[ last ]\n\t\t\t\n\t\t\tif( value === undefined ) array.pop()\n\t\t\telse break\n\t\t}\n\n\t\treturn array\n\t}\n\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t$['devtoolsFormatters'] = $['devtoolsFormatters'] || []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t$['devtoolsFormatters'].push( config )\n\t}\n\n\texport let $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport let $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t}\n\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : val => val[ $mol_dev_format_body ] ,\n\n\t\tbody : val => val[ $mol_dev_format_body ]() ,\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\tif( typeof obj !== 'object' ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\tif( typeof obj === 'object' && $mol_dev_format_head in obj ) {\n\t\t\treturn obj[ $mol_dev_format_head ]()\n\t\t}\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ style[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_span( style : object , ...content : any[] ) {\n\t\treturn $mol_dev_format_element(\n\t\t\t'span' ,\n\t\t\t{\n\t\t\t\t'vertical-align' : '8%',\n\t\t\t\t... style ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t)\n\t}\n\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\n}\n","namespace $ {\n\n\texport const enum $mol_fiber_status {\n\t\tpersist = -3 ,\n\t\tactual = -2 ,\n\t\tdoubt = -1 ,\n\t\tobsolete = 0 ,\n\t}\n\n\texport function $mol_fiber_defer< Value = void >( calculate : ()=> Value ) {\n\t\t\n\t\tconst fiber = new $mol_fiber\n\t\t\n\t\tfiber.calculate = calculate\n\t\tfiber[ Symbol.toStringTag ] = calculate.name\n\t\t\n\t\tfiber.schedule()\n\t\t\n\t\treturn fiber\n\t}\n\n\texport function $mol_fiber_func<\n\t\tThis ,\n\t\tArgs extends any[] ,\n\t\tResult ,\n\t>( calculate : ( this : This , ... args : Args )=> Result ) {\n\t\t$mol_ambient({}).$mol_log3_warn({\n\t\t\tplace: '$mol_fiber_func',\n\t\t\tmessage: 'Deprecated' ,\n\t\t\thint: 'Use $mol_fiber.func instead',\n\t\t})\n\t\treturn $mol_fiber.func( calculate )\n\t}\n\n\texport function $mol_fiber_root<\n\t\tCalculate extends ( this : This , ... args : any[] )=> Result ,\n\t\tResult = void ,\n\t\tThis = void ,\n\t>( calculate : Calculate ) {\n\t\t\n\t\tconst wrapper = function( ... args : any[] ) {\n\t\t\tconst fiber = new $mol_fiber< Result >()\n\t\t\tfiber.calculate = calculate.bind( this , ... args )\n\t\t\tfiber[ Symbol.toStringTag ] = wrapper[ Symbol.toStringTag ]\n\t\t\treturn fiber.wake()\n\t\t} as Calculate\n\t\t\n\t\twrapper[ Symbol.toStringTag ] = calculate.name\n\t\t\n\t\treturn wrapper\n\t}\n\n\texport function $mol_fiber_method< Host , Value >(\n\t\tobj : Host ,\n\t\tname : keyof Host ,\n\t\tdescr : TypedPropertyDescriptor< ( this : Host , ... args : any[] )=> Value >\n\t) {\n\t\t$mol_ambient({}).$mol_log3_warn({\n\t\t\tplace: '$mol_fiber_method',\n\t\t\tmessage: 'Deprecated' ,\n\t\t\thint: 'Use $mol_fiber.method instead',\n\t\t})\n\t\treturn $mol_fiber.method( obj , name , descr )\n\t}\n\n\texport function $mol_fiber_async< Args extends any[] , Value >( task : ( ... args : Args )=> Value ) {\n\n\t\treturn ( ... args : Args )=> new Promise< Value >( $mol_fiber_root( ( done , fail )=> {\n\n\t\t\ttry {\n\n\t\t\t\tdone( task( ... args ) )\n\n\t\t\t} catch( error ) {\n\n\t\t\t\tif( 'then' in error ) return $mol_fail_hidden( error )\n\n\t\t\t\tfail( error )\n\n\t\t\t}\n\n\t\t} ) )\n\n\t}\n\n\texport function $mol_fiber_sync< Args extends any[] , Value = void , This = void >(\n\t\trequest : ( this : This , ... args : Args )=> PromiseLike< Value >\n\t) : ( ... args : Args )=> Value {\n\n\t\treturn function $mol_fiber_sync_wrapper( this : This , ... args : Args ) {\n\n\t\t\tconst slave = $mol_fiber.current\n\n\t\t\tlet master = slave && slave.master\n\t\t\tif( !master || master.constructor !== $mol_fiber ) {\n\t\t\t\tmaster = new $mol_fiber\n\t\t\t\tmaster.cursor = $mol_fiber_status.persist\n\t\t\t\tmaster.error = ( request.call( this , ... args ) as PromiseLike< Value > ).then(\n\t\t\t\t\t( next : Value )=> master!.push( next ) ,\n\t\t\t\t\t( error : Error )=> master!.fail( error ) ,\n\t\t\t\t)\n\t\t\t\tconst prefix = slave ? `${ slave }/${ slave.cursor / 2 }:` : '/'\n\t\t\t\tmaster[ Symbol.toStringTag ] = prefix + ( request.name || $mol_fiber_sync.name )\n\t\t\t}\n\n\t\t\treturn master.get()\n\n\t\t}\n\n\t}\n\n\texport async function $mol_fiber_warp() {\n\t\tconst deadline = $mol_fiber.deadline\n\t\ttry {\n\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\twhile( $mol_fiber.queue.length ) await $mol_fiber.tick()\n\t\t\treturn Promise.resolve()\n\t\t} finally {\n\t\t\t$mol_fiber.deadline = deadline\n\t\t}\n\t}\n\n\texport function $mol_fiber_fence( func : ()=> any ) {\n\t\tconst prev = $mol_fiber.current\n\t\ttry {\n\t\t\t$mol_fiber.current = null\n\t\t\treturn func()\n\t\t} finally {\n\t\t\t$mol_fiber.current = prev\n\t\t}\n\t}\n\n\texport function $mol_fiber_unlimit< Result >( task : ()=> Result ) {\n\t\t\n\t\tconst deadline = $mol_fiber.deadline\n\t\t\n\t\ttry {\n\n\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\t\n\t\t\treturn task()\n\n\t\t} finally {\n\n\t\t\t$mol_fiber.deadline = deadline\n\n\t\t}\n\n\t}\n\n\texport class $mol_fiber_solid extends $mol_wrapper {\n\n\t\tstatic func< This , Args extends any[] , Result >( task : ( this : This , ... args : Args )=> Result ) {\n\n\t\t\tfunction wrapped( this : This , ... args : Args ) {\n\n\t\t\t\tconst deadline = $mol_fiber.deadline\n\n\t\t\t\ttry {\n\n\t\t\t\t\t$mol_fiber.deadline = Number.POSITIVE_INFINITY\n\t\t\t\t\t\n\t\t\t\t\treturn task.call( this , ... args ) as Result\n\n\t\t\t\t} catch( error ) {\n\n\t\t\t\t\tif( 'then' in error ) $mol_fail( new Error( 'Solid fiber can not be suspended.' ) )\n\t\t\t\t\treturn $mol_fail_hidden( error )\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_fiber.deadline = deadline\n\n\t\t\t\t}\n\t\t\n\t\t\t}\n\n\t\t\treturn $mol_fiber.func( wrapped )\n\n\t\t}\n\n\t}\n\n\texport class $mol_fiber< Value = any > extends $mol_wrapper {\n\n\t\tstatic logs = false\n\n\t\tstatic wrap< Func extends ( ... args : any[] )=> any >( task : Func ) {\n\t\t\t\n\t\t\treturn function $mol_fiber_wrapper( this : ThisParameterType< Func > , ... args : Parameters< Func > ) {\n\n\t\t\t\tconst slave = $mol_fiber.current\n\n\t\t\t\tlet master = slave && slave.master\n\t\t\t\tif( !master || master.constructor !== $mol_fiber ) {\n\t\t\t\t\tmaster = new $mol_fiber\n\t\t\t\t\tmaster.calculate = task.bind( this , ... args )\n\t\t\t\t\tconst prefix = slave ? `${ slave }/${ slave.cursor / 2 }:` : '/'\n\t\t\t\t\tmaster[ Symbol.toStringTag ] = `${ prefix }${ task.name }`\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn master.get()\n\n\t\t\t}\n\n\t\t}\n\n\t\tstatic quant = 16\n\t\tstatic deadline = 0\n\t\tstatic liveline = 0\n\n\t\tstatic current = null as null | $mol_fiber\n\t\t\n\t\tstatic scheduled = null as null | $mol_after_frame\n\t\tstatic queue = [] as ( ()=> PromiseLike< any > )[]\n\t\t\n\t\tstatic async tick() {\n\t\n\t\t\twhile( $mol_fiber.queue.length > 0 ) {\n\n\t\t\t\tconst now = Date.now()\n\n\t\t\t\tif( now >= $mol_fiber.deadline ) {\n\t\t\t\t\t$mol_fiber.schedule()\n\t\t\t\t\t$mol_fiber.liveline = now\n\t\t\t\t\treturn \n\t\t\t\t}\n\n\t\t\t\tconst task = $mol_fiber.queue.shift()!\n\t\t\t\tawait task()\n\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic schedule() {\n\n\t\t\tif( !$mol_fiber.scheduled ) {\n\n\t\t\t\t$mol_fiber.scheduled = new $mol_after_frame( async ()=> {\n\t\t\t\t\t\n\t\t\t\t\tconst now = Date.now()\n\t\t\t\t\tlet quant = $mol_fiber.quant\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_fiber.liveline ) {\n\t\t\t\t\t\tquant = Math.max( quant , Math.floor( ( now - $mol_fiber.liveline ) / 2 ) )\n\t\t\t\t\t\t$mol_fiber.liveline = 0\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$mol_fiber.deadline = now + quant\n\t\t\t\t\t$mol_fiber.scheduled = null\n\t\t\t\t\t\n\t\t\t\t\tawait $mol_fiber.tick()\n\n\t\t\t\t} )\n\n\t\t\t}\n\n\t\t\tconst promise : Promise< any > = new this.$.Promise( done => this.queue.push( ()=> ( done( null ) , promise ) ) )\n\t\t\treturn promise\n\n\t\t}\n\n\t\tcursor = $mol_fiber_status.obsolete\n\t\tmasters = [] as ( $mol_fiber | number | undefined )[]\n\t\tcalculate! : ()=> Value\n\t\t\n\t\t_value = undefined as unknown as Value\n\t\tget value() { return this._value }\n\t\tset value( next : Value ) {\n\t\t\tthis._value = next\n\t\t}\n\n\t\t_error = null as null | Error | PromiseLike< Value >\n\t\tget error() { return this._error }\n\t\tset error( next : null | Error | PromiseLike< Value > ) {\n\t\t\tthis._error = next\n\t\t}\n\n\t\tschedule() {\n\t\t\t$mol_fiber.schedule().then( ()=> this.wake() )\n\t\t}\n\n\t\twake() {\n\n\t\t\tconst unscoupe = this.$.$mol_log3_area_lazy({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Wake'\n\t\t\t})\n\t\t\t\n\t\t\ttry {\n\t\t\t\tif( this.cursor > $mol_fiber_status.actual ) return this.get()\n\t\t\t} catch( error ) {\n\t\t\t\tif( 'then' in error ) return\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t} finally {\n\t\t\t\tunscoupe()\n\t\t\t}\n\n\t\t}\n\n\t\tpush( value : Value ) {\n\t\t\t\n\t\t\tvalue = this.$.$mol_conform( value , this.value )\n\t\t\t\n\t\t\tif( this.error !== null || !Object.is( this.value , value ) ) {\n\t\t\n\t\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this ,\n\t\t\t\t\tmessage : 'Changed',\n\t\t\t\t\tnext : value , \n\t\t\t\t\tvalue : this.value ,\n\t\t\t\t\terror : this.error ,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tthis.obsolete_slaves()\n\t\t\t\t\n\t\t\t\tthis.forget()\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this , \n\t\t\t\t\tmessage : 'Same value' ,\n\t\t\t\t\tvalue ,\n\t\t\t\t})\n\t\t\t}\n\t\t\t\n\t\t\tthis.error = null\n\t\t\tthis.value = value\n\t\t\t\n\t\t\tthis.complete()\n\n\t\t\treturn value\n\t\t}\n\n\t\tfail( error : Error ) : Error {\n\t\t\t\n\t\t\tthis.complete()\t\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_fail({\n\t\t\t\tplace : this , \n\t\t\t\tmessage : error.message ,\n\t\t\t})\n\t\t\t\n\t\t\tthis.error = error\n\n\t\t\tthis.obsolete_slaves()\n\n\t\t\treturn error\n\t\t}\n\n\t\twait( promise : PromiseLike< Value > ) : PromiseLike< Value > {\n\t\t\tthis.error = promise\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_warn({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : `Wait` ,\n\t\t\t\thint : `Don't panic, it's normal` , \n\t\t\t\tpromise ,\n\t\t\t})\n\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\treturn promise\n\t\t}\n\n\t\tcomplete() {\n\n\t\t\tif( this.cursor <= $mol_fiber_status.actual ) return\n\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tthis.complete_master( index )\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_fiber_status.actual\n\t\t}\n\t\t\n\t\tcomplete_master( master_index : number ) {\n\t\t\tthis.disobey( master_index )\n\t\t}\n\n\t\tpull() {\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_come({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Pull' ,\n\t\t\t})\n\n\t\t\tthis.push( this.calculate() )\n\n\t\t}\n\n\t\tupdate() {\n\n\t\t\tconst slave = $mol_fiber.current\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t// this.limit()\n\t\t\t\t\n\t\t\t\t$mol_fiber.current = this\n\n\t\t\t\tthis.pull()\n\n\t\t\t} catch( error ) {\n\n\t\t\t\tif( Object( error ) !== error ) error = new Error( error )\n\n\t\t\t\tif( 'then' in error ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !slave ) {\n\t\t\t\t\t\tconst listener = ()=> this.wake()\n\t\t\t\t\t\terror = error.then( listener , listener )\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.wait( error )\n\n\t\t\t\t} else {\n\t\t\t\t\tthis.fail( error )\n\t\t\t\t}\n\n\t\t\t} finally {\n\t\t\t\t$mol_fiber.current = slave\n\t\t\t}\n\n\t\t}\n\n\t\tget() {\n\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tthis.$.$mol_fail( new Error( `Cyclic dependency at ${ this }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst slave = $mol_fiber.current\n\t\t\tif( slave ) slave.master = this\n\t\t\t\n\t\t\tif( this.cursor > $mol_fiber_status.actual ) this.update()\n\n\t\t\tif( this.error !== null ) return this.$.$mol_fail_hidden( this.error )\n\t\t\t\n\t\t\treturn this.value\n\n\t\t}\n\n\t\tlimit() {\n\n\t\t\tif( !$mol_fiber.deadline ) return\n\t\t\tif( !$mol_fiber.current ) return\n\n\t\t\tif( Date.now() < $mol_fiber.deadline ) return\n\n\t\t\tthis.$.$mol_fail_hidden( $mol_fiber.schedule() )\n\t\t}\n\n\t\tget master() {\n\t\t\treturn this.masters[ this.cursor ] as $mol_fiber\n\t\t}\n\t\tset master( next : $mol_fiber ) {\n\n\t\t\tif( this.cursor === $mol_fiber_status.doubt ) return\n\t\t\t\n\t\t\tconst cursor = this.cursor\n\t\t\tconst prev = this.masters[ this.cursor ]\n\t\t\t\n\t\t\tif( prev !== next ) {\n\t\t\t\tif( prev ) this.rescue( prev as $mol_fiber , cursor )\n\t\t\t\tthis.masters[ cursor ] = next\n\t\t\t\tthis.masters[ cursor + 1 ] = this.obey( next , cursor )\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = cursor + 2\n\t\t}\n\n\t\trescue( master : $mol_fiber , master_index : number ) {}\n\n\t\tobey( master : $mol_fiber , master_index : number ) { return -1 }\n\t\tlead( slave : $mol_fiber , master_index : number ) { return -1 }\n\n\t\tdislead( slave_index : number ) {\n\t\t\tthis.destructor()\n\t\t}\n\n\t\tdisobey( master_index : number ) {\n\t\t\t\n\t\t\tconst master = this.masters[ master_index ] as $mol_fiber\n\t\t\tif( !master ) return\n\n\t\t\tmaster.dislead( this.masters[ master_index + 1 ] as number )\n\t\t\t\n\t\t\tthis.masters[ master_index ] = undefined\n\t\t\tthis.masters[ master_index + 1 ] = undefined\n\n\t\t\tthis.$.$mol_array_trim( this.masters )\n\n\t\t}\n\n\t\tobsolete_slaves() { }\n\n\t\tobsolete( master_index : number ) { }\n\n\t\tforget() {\n\t\t\tthis.value = undefined as unknown as Value\n\t\t}\n\n\t\tabort() {\n\t\t\tthis.forget()\n\t\t\treturn true\n\t\t}\n\n\t\tdestructor() {\n\t\t\tif( !this.abort() ) return\n\t\t\t\n\t\t\tif( $mol_fiber.logs ) this.$.$mol_log3_done({\n\t\t\t\tplace : this , \n\t\t\t\tmessage : 'Destructed' ,\n\t\t\t})\n\n\t\t\tthis.complete()\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_atom2_value< Value >( task : ()=> Value, next?: Value ) : Value | undefined {\n\t\tconst cached = $mol_atom2.cached\n\t\ttry {\n\t\t\t$mol_atom2.cached = true\n\t\t\t$mol_atom2.cached_next = next\n\t\t\treturn task()\n\t\t} finally {\n\t\t\t$mol_atom2.cached = cached\n\t\t}\n\t}\n\n\texport class $mol_atom2< Value = any > extends $mol_fiber< Value > {\n\n\t\tstatic logs = false\n\n\t\tstatic get current() {\n\t\t\tconst atom = $mol_fiber.current\n\t\t\tif( atom instanceof $mol_atom2 ) return atom\n\t\t\treturn null\n\t\t}\n\n\t\tstatic cached = false\n\t\tstatic cached_next = undefined as any\n\n\t\tstatic reap_task = null as null | $mol_fiber\n\t\tstatic reap_queue = [] as $mol_atom2[]\n\n\t\tstatic reap( atom : $mol_atom2 ) {\n\n\t\t\tthis.reap_queue.push( atom )\n\n\t\t\tif( this.reap_task ) return\n\n\t\t\tthis.reap_task = $mol_fiber_defer( ()=> {\n\t\t\t\tthis.reap_task = null\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\t\n\t\t\t\t\tconst atom = this.reap_queue.pop()\n\t\t\t\t\tif( !atom ) break\n\t\t\t\t\t\n\t\t\t\t\tif( !atom.alone ) continue\n\t\t\t\t\t\n\t\t\t\t\tatom.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\n\t\t}\n\n\t\tslaves = [] as ( $mol_fiber | number | undefined )[]\n\t\t\n\t\trescue( master : $mol_atom2 , cursor : number ) {\n\n\t\t\tif(!( master instanceof $mol_atom2 )) return\n\t\t\t\n\t\t\tconst master_index = this.masters.length\n\t\t\tconst slave_index = this.masters[ cursor + 1 ] as number + 1\n\t\t\t\n\t\t\tmaster.slaves[ slave_index ] = master_index\n\t\t\tthis.masters.push( master , this.masters[ cursor + 1 ] )\n\t\t\t\n\t\t}\n\n\t\tsubscribe( promise : Promise ) {\n\t\t\tconst obsolete = ()=> this.obsolete()\n\t\t\treturn promise.then( obsolete , obsolete )\n\t\t}\n\n\t\tget() {\n\n\t\t\tif( $mol_atom2.cached ) {\n\n\t\t\t\tif( $mol_atom2.cached_next !== undefined ) {\n\t\t\t\t\tthis.push( $mol_atom2.cached_next )\n\t\t\t\t\t$mol_atom2.cached_next = undefined\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.value\n\t\t\t}\n\t\t\t\n\t\t\tconst value = super.get()\n\t\t\tif( value === undefined ) $mol_fail( new Error( `Not defined: ${ this }` ) )\n\t\t\t\n\t\t\treturn value\n\t\t}\n\n\t\tpull() {\n\t\t\t\n\t\t\tif( this.cursor === $mol_fiber_status.obsolete ) return super.pull()\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_come({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage: 'Check doubt masters' ,\n\t\t\t})\n\t\t\t\n\t\t\tconst masters = this.masters\n\n\t\t\tfor( let index = 0 ; index < masters.length ; index += 2 ) {\n\n\t\t\t\tconst master = masters[ index ] as $mol_atom2\n\t\t\t\tif( !master ) continue\n\n\t\t\t\ttry {\n\t\t\t\t\tmaster.get()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif( 'then' in error ) $mol_fail_hidden( error )\n\t\t\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\t}\n\n\t\t\t\tif( this.cursor as $mol_fiber_status !== $mol_fiber_status.obsolete ) continue\n\n\t\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_done({\n\t\t\t\t\tplace : this ,\n\t\t\t\t\tmessage : 'Obsoleted while checking' ,\n\t\t\t\t})\n\n\t\t\t\treturn super.pull()\n\t\t\t}\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_done({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Masters not changed' ,\n\t\t\t})\n\n\t\t\tthis.cursor = $mol_fiber_status.actual\n\n\t\t}\n\t\t\n\t\tget value() { return this._value }\n\t\tset value( next : Value ) {\n\n\t\t\tconst prev = this._value\n\n\t\t\tif( prev && this.$.$mol_owning_check( this , prev ) ) prev.destructor()\n\n\t\t\tif( next && this.$.$mol_owning_catch( this , next ) ) {\n\t\t\t\ttry{ next[ Symbol.toStringTag ] = this[ Symbol.toStringTag ] } catch {}\n\t\t\t\tnext[ $mol_object_field ] = this[ $mol_object_field ]\n\t\t\t}\n\n\t\t\tthis._value = next\n\t\t}\n\n\t\tget error() { return this._error }\n\t\tset error( next : null | Error | PromiseLike< Value > ) {\n\n\t\t\tconst prev = this._error\n\n\t\t\tif( prev && this.$.$mol_owning_check( this , prev ) ) prev.destructor()\n\n\t\t\tif( next && this.$.$mol_owning_catch( this , next ) ) {\n\t\t\t\tnext[ Symbol.toStringTag ] = this[ Symbol.toStringTag ]\n\t\t\t\tnext[ $mol_object_field ] = this[ $mol_object_field ]\n\t\t\t}\n\n\t\t\tthis._error = next\n\t\t}\n\n\t\tput( next : Value ) {\n\t\t\tthis.cursor = this.masters.length\n\t\t\tnext = this.push( next )\n\t\t\tthis.cursor = $mol_fiber_status.persist\n\t\t\treturn next\n\t\t}\n\n\t\tcomplete_master( master_index : number ) {\n\t\t\tif( this.masters[ master_index ] instanceof $mol_atom2 ) {\n\t\t\t\tif( master_index >= this.cursor ) this.disobey( master_index )\n\t\t\t} else {\n\t\t\t\tthis.disobey( master_index )\n\t\t\t}\n\t\t}\n\n\t\tobey( master : $mol_fiber , master_index : number ) : number {\n\t\t\treturn master.lead( this , master_index )\n\t\t}\n\n\t\tlead( slave : $mol_fiber , master_index : number ) {\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Leads' ,\n\t\t\t\tslave ,\n\t\t\t})\n\t\t\t\n\t\t\tconst slave_index = this.slaves.length\n\t\t\tthis.slaves[ slave_index ] = slave\n\t\t\tthis.slaves[ slave_index + 1 ] = master_index\n\t\t\t\n\t\t\treturn slave_index\n\t\t}\n\n\t\tdislead( slave_index : number ) {\n\n\t\t\tif( slave_index < 0 ) return // slave is fiber\n\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Disleads' ,\n\t\t\t\tslave : this.slaves[ slave_index ] ,\n\t\t\t})\n\n\t\t\tthis.slaves[ slave_index ] = undefined\n\t\t\tthis.slaves[ slave_index + 1 ] = undefined\n\n\t\t\t$mol_array_trim( this.slaves )\n\n\t\t\tif( this.cursor > $mol_fiber_status.persist && this.alone ) $mol_atom2.reap( this )\n\t\t}\n\n\t\tobsolete( master_index = -1 ) {\n\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tif( master_index >= this.cursor - 2 ) return\n\n\t\t\t\tconst path = [] as $mol_atom2[]\n\t\t\t\tlet current = this as $mol_atom2\n\t\t\t\t\n\t\t\t\tcollect : while( current ) {\n\t\t\t\t\tpath.push( current )\n\t\t\t\t\tcurrent = current.masters[ current.cursor - 2 ] as $mol_atom2\n\t\t\t\t}\n\n\t\t\t\tthis.$.$mol_fail( new Error( `Obsoleted while calculation \\n\\n${ path.join( '\\n' ) }\\n` ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( this.cursor === $mol_fiber_status.obsolete ) return\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Obsoleted' ,\n\t\t\t})\n\n\t\t\tif( this.cursor !== $mol_fiber_status.doubt ) this.doubt_slaves()\n\t\t\t\n\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\n\t\t}\n\n\t\tdoubt( master_index = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor > $mol_fiber_status.obsolete ) {\n\t\t\t\tif( master_index >= this.cursor - 2 ) return\n\n\t\t\t\tconst path = [] as $mol_atom2[]\n\t\t\t\tlet current = this as $mol_atom2\n\t\t\t\t\n\t\t\t\tcollect : while( current ) {\n\t\t\t\t\tpath.push( current )\n\t\t\t\t\tcurrent = current.masters[ current.cursor - 2 ] as $mol_atom2\n\t\t\t\t}\n\n\t\t\t\tthis.$.$mol_fail( new Error( `Doubted while calculation \\n\\n${ path.join( '\\n' ) }\\n` ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( this.cursor >= $mol_fiber_status.doubt ) return\n\t\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Doubted' ,\n\t\t\t})\n\n\t\t\tthis.cursor = $mol_fiber_status.doubt\n\t\t\t\n\t\t\tthis.doubt_slaves()\n\n\t\t}\n\n\t\tobsolete_slaves() {\n\t\t\tfor( let index = 0 ; index < this.slaves.length ; index += 2 ) {\n\t\t\t\tconst slave = this.slaves[ index ] as $mol_atom2\n\t\t\t\tif( slave ) slave.obsolete( this.slaves[ index + 1 ] as number )\n\t\t\t}\n\t\t}\n\n\t\tdoubt_slaves() {\n\t\t\tfor( let index = 0 ; index < this.slaves.length ; index += 2 ) {\n\t\t\t\tconst slave = this.slaves[ index ] as $mol_atom2\n\t\t\t\tif( slave ) slave.doubt( this.slaves[ index + 1 ] as number )\n\t\t\t}\n\t\t}\n\n\t\tget fresh() {\n\t\t\treturn ()=> {\n\t\t\t\tif( this.cursor !== $mol_fiber_status.actual ) return\n\n\t\t\t\tthis.cursor = $mol_fiber_status.obsolete\n\t\t\t\t$mol_fiber_solid.run( ()=> this.update() )\n\t\t\t}\n\t\t}\n\n\t\tget alone() {\n\t\t\treturn this.slaves.length === 0\n\t\t}\n\t\t\n\t\tget derived() {\n\t\t\t\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tif( this.masters[ index ] ) return true\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\n\t\tdestructor() {\n\n\t\t\tif( !this.abort() ) return\n\t\t\t\n\t\t\tif( $mol_atom2.logs ) this.$.$mol_log3_rise({\n\t\t\t\tplace : this ,\n\t\t\t\tmessage : 'Destructed'\n\t\t\t} )\n\n\t\t\tthis.cursor = $mol_fiber_status.persist\n\n\t\t\tfor( let index = 0 ; index < this.masters.length ; index += 2 ) {\n\t\t\t\tthis.complete_master( index )\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\n}\n",null,null,"namespace $ {\n\n\texport class $mol_mem_force extends Object {\n\t\tconstructor(){ super() }\n\t\t$mol_mem_force = true\n\t\tstatic $mol_mem_force = true\n\t\tstatic toString() { return this.name }\n\t}\n\n\texport class $mol_mem_force_cache extends $mol_mem_force {}\n\texport class $mol_mem_force_update extends $mol_mem_force {}\n\texport class $mol_mem_force_fail extends $mol_mem_force_cache {}\n\n}\n","namespace $ {\n\n\texport let $mol_mem_cached = $mol_atom2_value\n\n\texport function $mol_mem_persist() {\n\n\t\tconst atom = $mol_atom2.current\n\t\tif( !atom ) return\n\t\t\n\t\tif( atom.hasOwnProperty( 'destructor' ) ) return\n\t\t\n\t\tatom.destructor = ()=> {}\n\t\t\n\t}\n\n\texport function $mol_mem<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tProp extends Extract< Host[ Field ] , ( next? : any )=> any >,\n\t>(\n\t\tproto : Host ,\n\t\tname : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Prop >\n\t) {\n\n\t\ttype Input = $mol_type_param< Prop , 0 >\n\t\ttype Output = $mol_type_result< Prop >\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( proto , name )\n\t\tconst orig = descr!.value! as Function\n\t\t\n\t\tconst store = new WeakMap< Host , $mol_atom2< Output > >()\n\n\t\tObject.defineProperty( proto , name + \"()\" , {\n\t\t\tget : function() {\n\t\t\t\treturn store.get( this )\n\t\t\t}\n\t\t} )\n\n\t\tconst get_cache = ( host : Host )=> {\n\t\t\t\n\t\t\tlet cache = store.get( host )!\n\t\t\tif( cache ) return cache\n\n\t\t\tlet cache2 = new $mol_atom2\n\t\t\tcache2.calculate = orig.bind( host )\n\t\t\tcache2[ Symbol.toStringTag ] = `${ host }.${ name }()`\n\t\t\tcache2.abort = ()=> {\n\t\t\t\tstore.delete( host )\n\t\t\t\tcache2.forget()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t$mol_owning_catch( host , cache2 )\n\t\t\tcache2[ $mol_object_field ] = name\n\t\t\tstore.set( host , cache2 )\n\n\t\t\treturn cache2\n\t\t}\n\n\t\tfunction value( this : Host , next? : Input , force? : $mol_mem_force ) {\n\t\t\t\t\n\t\t\tif( next === undefined ) {\n\t\t\t\t\n\t\t\t\tconst cache = get_cache( this )\n\t\t\t\tif( force === $mol_mem_force_cache ) return cache.obsolete( Number.NaN )\n\t\t\t\t\n\t\t\t\tif( $mol_atom2.current ) return cache.get()\n\t\t\t\telse return $mol_fiber.run( ()=> cache.get() )\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_fiber.run( ()=> {\n\t\t\t\tif( force === $mol_mem_force_fail ) return get_cache( this ).fail( next as any )\n\t\t\t\tif( force !== $mol_mem_force_cache ) next = orig.call( this , next )\n\t\t\t\treturn get_cache( this ).put( next )\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\treturn {\n\t\t\t... descr || {} ,\n\t\t\tvalue : Object.assign( value , { orig } )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic size( next? : {\n\t\t\twidth : number\n\t\t\theight : number\n\t\t} , force? : $mol_mem_force ) {\n\t\t\treturn next || {\n\t\t\t\twidth : self.innerWidth ,\n\t\t\t\theight : self.innerHeight ,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\tconst $mol_window_resize = ()=> {\n\t\t$mol_window.size( undefined , $mol_mem_force_cache )\n\t}\n\t\n\tself.addEventListener( 'resize' , $mol_fiber_root( $mol_window_resize ) )\n\t\n}\n","namespace $ {\n\n\texport function $mol_dict_key( value : any ) : any {\n\t\t\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\n\t\tif( Array.isArray( value ) ) return JSON.stringify( value )\n\t\tif( Object.getPrototypeOf( Object.getPrototypeOf( value ) ) === null ) return JSON.stringify( value )\n\t\t\n\t\treturn value\n\t}\n\t\n\texport class $mol_dict< Key , Value > extends Map< Key , Value > {\n\n\t\tget( key : Key ) {\n\t\t\treturn super.get( $mol_dict_key( key ) )\n\t\t}\n\n\t\thas( key : Key ) {\n\t\t\treturn super.has( $mol_dict_key( key ) )\n\t\t}\n\n\t\tset( key : Key , value : Value ) {\n\t\t\treturn super.set( $mol_dict_key( key ) , value )\n\t\t}\n\n\t\tdelete( key : Key ) {\n\t\t\treturn super.delete( $mol_dict_key( key ) )\n\t\t}\n\n\t\tforEach( back : ( value : Value , key : Key , dict : Map< Key , Value > ) => void , context? : any ) {\n\t\t\treturn super.forEach( ( val , key , dict )=> {\n\t\t\t\tif( typeof key === 'string' ) key = JSON.parse( key )\n\t\t\t\treturn back.call( this , val , key , dict )\n\t\t\t} , context )\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\tconst iterator = super[ Symbol.iterator ]()\n\t\t\t\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]() {\n\t\t\t\t\treturn this\n\t\t\t\t},\n\t\t\t\tnext() {\n\t\t\t\t\tconst iteration = iterator.next()\n\n\t\t\t\t\tif( !iteration.done ) {\n\t\t\t\t\t\tconst key = iteration.value[0]\n\t\t\t\t\t\tif( typeof key === 'string' ) iteration.value[0] = JSON.parse( key )\n\t\t\t\t\t}\n\n\t\t\t\t\treturn iteration\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_mem_key<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tProp extends Extract< Host[ Field ] , ( id : any , next? : any )=> any >,\n\t>(\n\t\tproto : Host ,\n\t\tname : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Prop >\n\t) : any {\n\n\t\ttype Key = $mol_type_param< Prop , 0 >\n\t\ttype Input = $mol_type_param< Prop , 1 >\n\t\ttype Output = $mol_type_result< Prop >\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( proto , name )\n\t\tconst value = descr!.value! as Function\n\t\t\n\t\tconst store = new WeakMap< Host , Map< Key , $mol_atom2 > >()\n\n\t\tObject.defineProperty( proto , name + \"()\" , {\n\t\t\tget : function() {\n\t\t\t\treturn store.get( this )\n\t\t\t}\n\t\t} )\n\n\t\tconst get_cache = ( host : Host , key : Key )=> {\n\t\t\t\n\t\t\tlet dict = store.get( host )!\n\t\t\tif( !dict ) store.set( host , dict = new $mol_dict )\n\t\t\t\n\t\t\tconst key_str = $mol_dict_key(key)\n\t\t\tlet cache = dict.get( key_str )\n\t\t\tif( cache ) return cache\n\n\t\t\tlet cache2 = new $mol_atom2\n\t\t\tcache2[ Symbol.toStringTag ] = `${ host }.${ name }(${key_str})`\n\t\t\tcache2.calculate = value.bind( host , key )\n\t\t\tcache2.abort = ()=> {\n\t\t\t\tdict.delete( key_str )\n\t\t\t\tif( dict.size === 0 ) store.delete( host )\n\t\t\t\tcache2.forget()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t$mol_owning_catch( host , cache2 )\n\t\t\tcache2[ $mol_object_field ] = name\n\t\t\tdict.set( key_str , cache2 )\n\n\t\t\treturn cache2\n\t\t}\n\t\t\n\t\treturn {\n\t\t\t\n\t\t\tvalue( key : Key , next? : Input , force? : $mol_mem_force ) {\n\t\t\t\t\n\t\t\t\tif( next === undefined ) {\n\t\t\t\t\t\n\t\t\t\t\tconst cache = get_cache( this , key )\n\t\t\t\t\tif( force === $mol_mem_force_cache ) return cache.obsolete()\n\n\t\t\t\t\tif( $mol_atom2.current ) return cache.get()\n\t\t\t\t\telse return $mol_fiber.run( ()=> cache.get() )\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fiber.run( ()=> {\n\t\t\t\t\t\n\t\t\t\t\tif( force === $mol_mem_force_fail ) return get_cache( this , key ).fail( next as any )\n\t\t\t\t\tif( force !== $mol_mem_force_cache ) next = value.call( this , key , next )\n\t\t\t\t\treturn get_cache( this , key ).put( next )\n\t\t\t\t\t\n\t\t\t\t} )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_atom2_autorun( calculate : ()=> any ) {\n\t\t\n\t\treturn $mol_atom2.create( atom => {\n\t\t\tatom.calculate = calculate\n\t\t\tatom.obsolete_slaves = atom.schedule\n\t\t\tatom.doubt_slaves = atom.schedule\n\t\t\tatom[ Symbol.toStringTag ] = calculate[ Symbol.toStringTag ] || calculate.name || '$mol_atom2_autorun'\n\t\t\tatom.schedule()\n\t\t} )\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_defer extends $mol_object {\n\t\t\n\t\tconstructor( public run : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_defer.add( this )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t$mol_defer.drop( this )\n\t\t}\n\t\t\n\t\tstatic all : $mol_defer[] = []\n\t\tstatic timer = null as any\n\t\t\n\t\tstatic scheduleNative : ( handler : ()=> void ) => any = ( typeof requestAnimationFrame == 'function' )\n\t\t\t? handler => requestAnimationFrame( handler )\n\t\t\t: handler => setTimeout( handler , 16 )\n\t\t\n\t\tstatic schedule() {\n\t\t\tif( this.timer ) return\n\t\t\t\n\t\t\tthis.timer = this.scheduleNative( ()=> {\n\t\t\t\tthis.timer = null\n\t\t\t\tthis.run()\n\t\t\t} )\n\t\t}\n\t\t\n\t\tstatic unschedule() {\n\t\t\tif( !this.timer ) return\n\t\t\t\n\t\t\tcancelAnimationFrame( this.timer )\n\t\t\tthis.timer = null\n\t\t}\n\t\t\n\t\tstatic add( defer : $mol_defer ) {\n\t\t\tthis.all.push( defer )\n\t\t\tthis.schedule()\n\t\t}\n\t\t\n\t\tstatic drop( defer : $mol_defer ) {\n\t\t\tvar index = this.all.indexOf( defer )\n\t\t\tif( index >= 0 ) this.all.splice( index , 1 )\n\t\t}\n\t\t\n\t\tstatic run() {\n\t\t\tif( this.all.length === 0 ) return\n\t\t\tthis.schedule()\n\t\t\tfor( var defer : $mol_defer | undefined ; defer = this.all.shift() ; ) defer.run()\n\t\t\t//this.unschedule()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[] ) : Element[] {\n\t\t\tif( next === undefined ) return [] as Element[]\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next[ 0 ] as HTMLElement\n\t\t\t\n\t\t\twhile( element ) {\n\t\t\t\tparents.push( element )\n\t\t\t\telement = element.parentNode as HTMLElement\n\t\t\t}\n\n\t\t\tnew $mol_defer( ()=> {\n\n\t\t\t\tconst element = $mol_mem_cached( ()=> this.focused() )![0] as HTMLElement\n\t\t\t\t\n\t\t\t\tif( element ) element.focus()\n\t\t\t\telse $mol_dom_context.blur()\n\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t\tstatic focus( event : FocusEvent ) {\n\t\t\tthis.focused( [ event.target as Element ] )\n\n\t\t}\n\t\t\n\t\tstatic blur( event : FocusEvent ) {\n\t\t\tconst elements = $mol_mem_cached( ()=> this.focused() )\n\t\t\tif( elements && elements[0] === event.target ) this.focused( [] )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\tif( $mol_dom_context.document ) {\n\n\t\t$mol_dom_context.document.documentElement.addEventListener(\n\t\t\t'focus' ,\n\t\t\t( event : FocusEvent )=> {\n\t\t\t\tnew $mol_after_tick(\n\t\t\t\t\t$mol_fiber_root(\n\t\t\t\t\t\t()=> $mol_view_selection.focus( event )\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t} ,\n\t\t\ttrue ,\n\t\t)\n\t\t\n\t\t$mol_dom_context.document.documentElement.addEventListener(\n\t\t\t'blur' ,\n\t\t\t( event : FocusEvent )=> {\n\t\t\t\tnew $mol_after_timeout( 0 ,\n\t\t\t\t\t$mol_fiber_root(\n\t\t\t\t\t\t()=> $mol_view_selection.blur( event )\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t} ,\n\t\t\ttrue ,\n\t\t)\n\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/ , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ { \n\texport function $mol_const< Value >( value : Value ) {\n\t\tvar getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\tgetter[ Symbol.toStringTag ] = value\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_attributes (\n\t\tel : Element ,\n\t\tattrs : { [ key : string ] : string|number|boolean|null }\n\t) {\n\n\t\tfor( let name in attrs ) {\n\n\t\t\tlet val = attrs[ name ] as any\n\n\t\t\tif( val === null || val === false ) {\n\n\t\t\t\tif( !el.hasAttribute( name ) ) continue\n\t\t\t\t\n\t\t\t\tel.removeAttribute( name )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst str = String( val )\n\t\t\t\tif( el.getAttribute( name ) === str ) continue\n\t\t\t\t\n\t\t\t\tel.setAttribute( name , str )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\tconst cacthed = new WeakMap< any , boolean >()\n\n\texport function $mol_fail_catch( error : object ) {\n\t\t\n\t\tif( cacthed.get( error ) ) return false\n\t\t\n\t\tcacthed.set( error , true )\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_styles (\n\t\tel : Element ,\n\t\tstyles : { [ key : string ] : string|number }\n\t) {\n\t\tfor( let name in styles ) {\n\t\t\tlet val = styles[ name ]\n\t\t\t\n\t\t\tconst style = ( el as HTMLElement ).style as any\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle[ name ] = `${ val }px`\n\t\t\t} else {\n\t\t\t\tstyle[ name ] = val\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_fields (\n\t\tel : Element ,\n\t\tfields : { [ key : string ] : any }\n\t) {\n\t\tfor( let key in fields ) {\n\t\t\t\n\t\t\tconst val : any = fields[ key ]\n\t\t\t\n\t\t\tif( val === undefined ) continue\n\t\t\t// if( el[ key ] === val ) continue\n\t\t\t\n\t\t\tel[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_memo extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object , Value >( task : ( this : This , next? : Value )=> Value ) {\n\n\t\t\tconst store = new WeakMap< This , Value >()\n\n\t\t\treturn function( this : This , next? : Value ) {\n\n\t\t\t\tif( next === undefined && store.has( this ) ) return store.get( this )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this , next ) ?? next\n\t\t\t\t\n\t\t\t\tstore.set( this , val! )\n\t\t\t\t\n\t\t\t\treturn val\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_func_name( this : $mol_ambient_context , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( this[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\treturn name\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_deprecated( message : string ) {\n\t\treturn <\n\t\t\tMethod extends ( this : Host , ... args : readonly any[] )=> any ,\n\t\t\tHost extends {\n\t\t\t\t[key in Field] : Method\n\t\t\t} & {\n\t\t\t\t$ : $mol_ambient_context\n\t\t\t},\n\t\t\tField extends keyof Host ,\n\t\t>(\n\t\t\thost : Host ,\n\t\t\tfield : Field ,\n\t\t\tdescr : TypedPropertyDescriptor< Method >\n\t\t)=> {\n\n\t\t\tconst value = descr.value!\n\t\t\tlet warned = false\n\t\t\t\n\t\t\tdescr.value = function $mol_deprecated_wrapper( this : Host , ... args : Parameters< Method > ) : ReturnType< Method > {\n\n\t\t\t\tif( !warned ) {\n\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\tplace: `${ host.constructor.name }::${ field }`,\n\t\t\t\t\t\tmessage: `Deprecated` ,\n\t\t\t\t\t\thint: message ,\n\t\t\t\t\t})\n\t\t\t\t\twarned = true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn value.call( this , ... args )\n\t\t\t\n\t\t\t} as any\n\n\t\t}\n\t}\n\t\n}\n",null,null,"namespace $ {\n\n\texport type $mol_view_content = $mol_view|Node|string|number|boolean\n\t\n\texport function $mol_view_visible_width() {\n\t\treturn $mol_window.size().width\n\t}\n\t\n\texport function $mol_view_visible_height() {\n\t\treturn $mol_window.size().height\n\t}\n\t\n\texport function $mol_view_state_key( suffix : string ) {\n\t\treturn suffix\n\t}\n\n\t/// Reactive statefull lazy ViewModel\n\texport class $mol_view extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic Root< This extends typeof $mol_view >( this : This , id: number ) {\n\t\t\treturn new this as InstanceType< This >\n\t\t}\n\n\t\t@ $mol_mem\n\t\tautorun() {\n\t\t\treturn $mol_atom2_autorun( ()=> {\n\t\t\t\tthis.dom_tree()\n\t\t\t\tdocument.title = this.title()\n\t\t\t\treturn this\n\t\t\t} )\n\t\t}\n\n\t\tstatic autobind() {\n\t\t\t\n\t\t\tconst nodes = $mol_dom_context.document.querySelectorAll( '[mol_view_root]' )\n\t\t\t\n\t\t\tfor( let i = nodes.length - 1 ; i >= 0 ; --i ) {\n\n\t\t\t\tconst name = nodes.item( i ).getAttribute( 'mol_view_root' )!\n\t\t\t\t\n\t\t\t\tconst View = $[ name ]\n\t\t\t\tif( !View ) {\n\t\t\t\t\tconsole.error( `Can not attach view. Class not found: ${ name }` )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst view = View.Root( i )\n\t\t\t\tview.dom_node( nodes.item( i ) )\n\t\t\t\tview.autorun()\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\ttitle() : string {\n\t\t\treturn this.constructor.toString()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tfocused( next?: boolean ) {\n\t\t\tlet node = this.dom_node()\n\t\t\tconst value = $mol_view_selection.focused( next === undefined ? undefined : ( next ? [ node ] : [] ) )\n\t\t\treturn value.indexOf( node ) !== -1\n\t\t} \n\t\t\n\t\tstate_key( suffix = '' ) {\n\t\t\treturn this.$.$mol_view_state_key( suffix )\n\t\t}\n\t\t\n\t\t/// Name of element that created when element not found in DOM\n\t\tdom_name() {\n\t\t\treturn $mol_dom_qname( this.constructor.toString() ) || 'div'\n\t\t}\n\t\t\n\t\t/// NameSpace of element that created when element not found in DOM\n\t\tdom_name_space() { return 'http://www.w3.org/1999/xhtml' }\n\t\t\n\t\t/// Raw child views\n\t\tsub() {\n\t\t\treturn [] as readonly ($mol_view|Node|string|number|boolean)[]\n\t\t}\n\t\t\n\t\t/// Visible sub views with defined ambient context\n\t\t/// Render all by default\n\t\tsub_visible() {\n\t\t\treturn this.sub()\n\t\t}\n\t\t\n\t\t/// Minimal width that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_width() {\n\t\t\tconst sub = this.sub()\n\t\t\tif( !sub ) return 0\n\t\t\t\n\t\t\tlet min = 0\n\t\t\tsub.forEach( view => {\n\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.minimal_width()\n\t\t}\n\t\t\n\t\t/// Minimal height that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\tfor( const view of this.sub() ?? [] ) {\n\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_height() )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} \n\t\t\t} catch( error ) {\n\t\t\t\tif( 'then' in error ) $mol_fail_hidden( error )\n\t\t\t}\n\t\t\t\n\t\t\treturn min\n\t\t}\n\n\t\tstatic watchers = new Set< $mol_view >()\n\n\t\t@ $mol_mem\n\t\tview_rect() {\n\t\t\tif( $mol_atom2.current ) this.view_rect_watcher()\n\t\t\treturn this.view_rect_cache()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_rect_cache( next = null as ClientRect | null ) {\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_rect_watcher() {\n\t\t\t$mol_view.watchers.add( this )\n\t\t\treturn { destructor : ()=> $mol_view.watchers.delete( this ) }\n\t\t}\n\n\t\tdom_id() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t\n\t\t\tconst node = next || $mol_dom_context.document.createElementNS( this.dom_name_space() , this.dom_name() )\n\n\t\t\tconst id = this.dom_id()\n\t\t\tnode.setAttribute( 'id' , id )\n\t\t\tnode.toString = $mol_const( '<#' + id + '>' )\n\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event()\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.addEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\t$mol_fiber_root( events[ event_name ] ) ,\n\t\t\t\t\t{ passive : false } as any ,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_tree( next? : Element ) : Element {\n\t\t\tconst node = this.dom_node( next )\n\t\t\t\n\t\t\ttry {\n\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : null } )\n\n\t\t\t\ttry {\n\t\t\t\t\n\t\t\t\t\tthis.render()\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tfor( let plugin of this.plugins() ) {\n\t\t\t\t\t\tif( plugin instanceof $mol_plugin ) {\n\t\t\t\t\t\t\tplugin.dom_tree()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : error.name || error.constructor.name } )\n\t\t\t\t\n\t\t\t\tif( error instanceof Promise ) {\n\t\t\t\t\t$mol_atom2.current!.subscribe( error )\n\t\t\t\t\treturn node\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\ttry { void( ( node as HTMLElement ).innerText = error.message ) } catch( e ) {}\n\t\t\t\t\tconsole.error( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node_actual() {\n\t\t\tconst node = this.dom_node()\n\n\t\t\t;( node as HTMLElement ).style.minHeight = this.minimal_height() + 'px'\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\t\t\tconst fields = this.field()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\t\t\t$mol_dom_render_fields( node , fields )\n\n\t\t\treturn node\n\t\t}\n\n\t\trender() {\n\n\t\t\tconst node = this.dom_node_actual()\n\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tconst nodes = sub.map( child => {\n\t\t\t\tif( child == null ) return null\n\t\t\t\treturn ( child instanceof $mol_view )\n\t\t\t\t\t? child.dom_node()\n\t\t\t\t\t: String( child )\n\t\t\t})\n\t\t\t\n\t\t\t$mol_dom_render_children( node , nodes )\n\n\t\t\tfor( const el of sub ) if( el && typeof el === 'object' && 'dom_tree' in el ) el['dom_tree']()\n\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tstatic view_classes() {\n\t\t\tconst proto = this.prototype\n\t\t\t\n\t\t\tlet current = proto\n\t\t\tconst classes = [] as ( typeof $mol_view )[]\n\t\t\t\n\t\t\twhile( current ) {\n\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\tif(!( current instanceof $mol_view )) break\n\t\t\t\tcurrent = Object.getPrototypeOf( current )\n\t\t\t}\n\t\t\t\n\t\t\treturn classes\n\t\t}\n\t\t\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this , $mol_view )\n\n\t\t\tif( owner instanceof $mol_view ) {\n\n\t\t\t\tconst suffix = this[ $mol_object_field ]\n\t\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\t\n\t\t\t\tfor( let Class of ( owner.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( let prefix of owner.view_names_owned() ) {\n\t\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_names() {\n\t\t\tconst names = [] as string[]\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) {\n\t\t\t\tif( names.indexOf( name ) < 0 ) names.push( name )\n\t\t\t}\n\n\t\t\tfor( let Class of ( this.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\tconst name = this.$.$mol_func_name( Class )\n\t\t\t\tif( !name ) continue\n\t\t\t\tif( names.indexOf( name ) < 0 ) names.push( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\tattr_static() : { [ key : string ] : string|number|boolean|null } {\n\t\t\tlet attrs : any = {}\n\t\t\t\n\t\t\tfor( let name of this.view_names() ) attrs[ name.replace( /\\$/g , '' ).replace( /^(?=\\d)/ , '_' ).toLowerCase() ] = ''\n\t\t\t\n\t\t\treturn attrs\n\t\t}\n\t\t\n\t\tattr() {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tstyle() : { [ key : string ] : string|number } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tfield() : { [ key : string ] : any } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_deprecated( 'Use $mol_view::event instead.' )\n\t\tevent_async() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t$mol_dev_format_shade( '/' ) ,\n\t\t\t\t$mol_dev_format_auto( $mol_mem_cached( ()=> this.sub() ) ) ,\n\t\t\t)\n\t\t}\n\n\t\t/** Deep search view by predicate. */\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( check( this ) ) return yield [ ... path, this ]\n\t\t\t\n\t\t\tfor( const item of this.sub() ) {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders path of views to DOM. */\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.sub()\n\n\t\t\tconst index = kids.findIndex( item => {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\treturn path.has( item )\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders view to DOM and scroll to it. */\n\t\tasync ensure_visible( view: $mol_view ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\t\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\tawait $mol_fiber_warp()\n\n\t\t\tview.dom_node().scrollIntoView()\n\n\t\t}\n\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $mol_ambient_context , typeof $mol_view >\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: background-color, height, width, min-height, min-width, max-width, max-height, transform;\\n\\ttransition-duration: .2s;\\n\\ttransition-timing-function: ease-out;\\n\\t-webkit-appearance: none;\\n\\tword-break: break-word;\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tcontain: style;\\n\\ttab-size: 4;\\n}\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_current);\\n}\\n\\n[mol_view] > * {\\n\\tword-break: inherit;\\n}\\n\\n[mol_view_root] {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\tfont: var(--mol_skin_font);\\n\\tbackground: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text);\\n}\\n\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t135deg,\\n\\t\\trgb(162, 90, 90),\\n\\t\\trgb(162, 90, 90) 11px,\\n\\t\\trgb(255,255,220) 10px,\\n\\t\\trgb(255,255,220) 20px\\n\\t);\\n\\tbackground-size: 28px 28px;\\n\\tcolor: black;\\n}\\n\\n@keyframes mol_view_wait_move {\\n\\tfrom {\\n\\t\\tbackground-position: 0 0;\\n\\t}\\n\\tto {\\n\\t\\tbackground-position: 200vmax 0;\\n\\t}\\n}\\n\\n@keyframes mol_view_wait_show {\\n\\tto {\\n\\t\\tbackground-image: repeating-linear-gradient(\\n\\t\\t\\t45deg,\\n\\t\\t\\thsla( 0 , 0% , 50% , .25 ) 0% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 5% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 45% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , .25 ) 50% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 55% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , 0 ) 95% ,\\n\\t\\t\\thsla( 0 , 0% , 50% , .25 ) 100%\\n\\t\\t);\\n\\t\\tbackground-size: 200vmax 200vmax;\\n\\t}\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait_show .5s .5s linear forwards , mol_view_wait_move 1s linear infinite;\\n\\topacity: .75;\\n}\\n\"\n) }","interface Window {\n\tcordova : any\n}\n\nnamespace $ {\n\n\tif( $mol_dom_context.document ) {\n\n\t\t/// Autoattach view roots to loaded DOM.\n\t\tconst event_name = self.cordova ? 'deviceready' : 'DOMContentLoaded'\n\t\tPromise.resolve().then( $mol_fiber_root( ()=> {\n\t\t\t$mol_view.autobind()\n\t\t\t$mol_defer.run()\n\t\t} ) )\n\t\t\n\t\tfunction $mol_view_watch() {\n\t\t\t$mol_fiber_unlimit( ()=> {\n\t\t\t\tnew $mol_after_frame( watch )\n\t\t\t\tfor( const view of $mol_view.watchers ) {\n\t\t\t\t\tview.view_rect_cache( view.dom_node().getBoundingClientRect().toJSON() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tconst watch = $mol_fiber_root( $mol_view_watch )\n\n\t\twatch()\n\t\n\t}\n\t\n}\n",null,null,"namespace $ {\n\texport const $mol_colors = {\n\t\taliceblue : \"#f0f8ff\" ,\n\t\tantiquewhite : \"#faebd7\" ,\n\t\taqua : \"#00ffff\" ,\n\t\taquamarine : \"#7fffd4\" ,\n\t\tazure : \"#f0ffff\" ,\n\t\tbeige : \"#f5f5dc\" ,\n\t\tbisque : \"#ffe4c4\" ,\n\t\tblack : \"#000000\" ,\n\t\tblanchedalmond : \"#ffebcd\" ,\n\t\tblue : \"#0000ff\" ,\n\t\tblueviolet : \"#8a2be2\" ,\n\t\tbrown : \"#a52a2a\" ,\n\t\tburlywood : \"#deb887\" ,\n\t\tcadetblue : \"#5f9ea0\" ,\n\t\tchartreuse : \"#7fff00\" ,\n\t\tchocolate : \"#d2691e\" ,\n\t\tcoral : \"#ff7f50\" ,\n\t\tcornflowerblue : \"#6495ed\" ,\n\t\tcornsilk : \"#fff8dc\" ,\n\t\tcrimson : \"#dc143c\" ,\n\t\tcyan : \"#00ffff\" ,\n\t\tdarkblue : \"#00008b\" ,\n\t\tdarkcyan : \"#008b8b\" ,\n\t\tdarkgoldenrod : \"#b8860b\" ,\n\t\tdarkgray : \"#a9a9a9\" ,\n\t\tdarkgreen : \"#006400\" ,\n\t\tdarkgrey : \"#a9a9a9\" ,\n\t\tdarkkhaki : \"#bdb76b\" ,\n\t\tdarkmagenta : \"#8b008b\" ,\n\t\tdarkolivegreen : \"#556b2f\" ,\n\t\tdarkorange : \"#ff8c00\" ,\n\t\tdarkorchid : \"#9932cc\" ,\n\t\tdarkred : \"#8b0000\" ,\n\t\tdarksalmon : \"#e9967a\" ,\n\t\tdarkseagreen : \"#8fbc8f\" ,\n\t\tdarkslateblue : \"#483d8b\" ,\n\t\tdarkslategrey : \"#2f4f4f\" ,\n\t\tdarkturquoise : \"#00ced1\" ,\n\t\tdarkviolet : \"#9400d3\" ,\n\t\tdeeppink : \"#ff1493\" ,\n\t\tdeepskyblue : \"#00bfff\" ,\n\t\tdimgray : \"#696969\" ,\n\t\tdimgrey : \"#696969\" ,\n\t\tdodgerblue : \"#1e90ff\" ,\n\t\tfirebrick : \"#b22222\" ,\n\t\tfloralwhite : \"#fffaf0\" ,\n\t\tforestgreen : \"#228b22\" ,\n\t\tfuchsia : \"#ff00ff\" ,\n\t\tgainsboro : \"#dcdcdc\" ,\n\t\tghostwhite : \"#f8f8ff\" ,\n\t\tgold : \"#ffd700\" ,\n\t\tgoldenrod : \"#daa520\" ,\n\t\tgray : \"#808080\" ,\n\t\tgreen : \"#008000\" ,\n\t\tgreenyellow : \"#adff2f\" ,\n\t\tgrey : \"#808080\" ,\n\t\thoneydew : \"#f0fff0\" ,\n\t\thotpink : \"#ff69b4\" ,\n\t\tindianred : \"#cd5c5c\" ,\n\t\tindigo : \"#4b0082\" ,\n\t\tivory : \"#fffff0\" ,\n\t\tkhaki : \"#f0e68c\" ,\n\t\tlavender : \"#e6e6fa\" ,\n\t\tlavenderblush : \"#fff0f5\" ,\n\t\tlawngreen : \"#7cfc00\" ,\n\t\tlemonchiffon : \"#fffacd\" ,\n\t\tlightblue : \"#add8e6\" ,\n\t\tlightcoral : \"#f08080\" ,\n\t\tlightcyan : \"#e0ffff\" ,\n\t\tlightgoldenrodyellow : \"#fafad2\" ,\n\t\tlightgray : \"#d3d3d3\" ,\n\t\tlightgreen : \"#90ee90\" ,\n\t\tlightgrey : \"#d3d3d3\" ,\n\t\tlightpink : \"#ffb6c1\" ,\n\t\tlightsalmon : \"#ffa07a\" ,\n\t\tlightseagreen : \"#20b2aa\" ,\n\t\tlightskyblue : \"#87cefa\" ,\n\t\tlightslategray : \"#778899\" ,\n\t\tlightslategrey : \"#778899\" ,\n\t\tlightsteelblue : \"#b0c4de\" ,\n\t\tlightyellow : \"#ffffe0\" ,\n\t\tlime : \"#00ff00\" ,\n\t\tlimegreen : \"#32cd32\" ,\n\t\tlinen : \"#faf0e6\" ,\n\t\tmagenta : \"#ff00ff\" ,\n\t\tmaroon : \"#800000\" ,\n\t\tmediumaquamarine : \"#66cdaa\" ,\n\t\tmediumblue : \"#0000cd\" ,\n\t\tmediumorchid : \"#ba55d3\" ,\n\t\tmediumpurple : \"#9370db\" ,\n\t\tmediumseagreen : \"#3cb371\" ,\n\t\tmediumslateblue : \"#7b68ee\" ,\n\t\tmediumspringgreen : \"#00fa9a\" ,\n\t\tmediumturquoise : \"#48d1cc\" ,\n\t\tmediumvioletred : \"#c71585\" ,\n\t\tmidnightblue : \"#191970\" ,\n\t\tmintcream : \"#f5fffa\" ,\n\t\tmistyrose : \"#ffe4e1\" ,\n\t\tmoccasin : \"#ffe4b5\" ,\n\t\tnavajowhite : \"#ffdead\" ,\n\t\tnavy : \"#000080\" ,\n\t\toldlace : \"#fdf5e6\" ,\n\t\tolive : \"#808000\" ,\n\t\tolivedrab : \"#6b8e23\" ,\n\t\torange : \"#ffa500\" ,\n\t\torangered : \"#ff4500\" ,\n\t\torchid : \"#da70d6\" ,\n\t\tpalegoldenrod : \"#eee8aa\" ,\n\t\tpalegreen : \"#98fb98\" ,\n\t\tpaleturquoise : \"#afeeee\" ,\n\t\tpalevioletred : \"#db7093\" ,\n\t\tpapayawhip : \"#ffefd5\" ,\n\t\tpeachpuff : \"#ffdab9\" ,\n\t\tperu : \"#cd853f\" ,\n\t\tpink : \"#ffc0cb\" ,\n\t\tplum : \"#dda0dd\" ,\n\t\tpowderblue : \"#b0e0e6\" ,\n\t\tpurple : \"#800080\" ,\n\t\trebeccapurple : \"#663399\" ,\n\t\tred : \"#ff0000\" ,\n\t\trosybrown : \"#bc8f8f\" ,\n\t\troyalblue : \"#4169e1\" ,\n\t\tsaddlebrown : \"#8b4513\" ,\n\t\tsalmon : \"#fa8072\" ,\n\t\tsandybrown : \"#f4a460\" ,\n\t\tseagreen : \"#2e8b57\" ,\n\t\tseashell : \"#fff5ee\" ,\n\t\tsienna : \"#a0522d\" ,\n\t\tsilver : \"#c0c0c0\" ,\n\t\tskyblue : \"#87ceeb\" ,\n\t\tslateblue : \"#6a5acd\" ,\n\t\tslategray : \"#708090\" ,\n\t\tslategrey : \"#708090\" ,\n\t\tsnow : \"#fffafa\" ,\n\t\tspringgreen : \"#00ff7f\" ,\n\t\tsteelblue : \"#4682b4\" ,\n\t\ttan : \"#d2b48c\" ,\n\t\tteal : \"#008080\" ,\n\t\tthistle : \"#d8bfd8\" ,\n\t\ttomato : \"#ff6347\" ,\n\t\tturquoise : \"#40e0d0\" ,\n\t\tviolet : \"#ee82ee\" ,\n\t\twheat : \"#f5deb3\" ,\n\t\twhite : \"#ffffff\" ,\n\t\twhitesmoke : \"#f5f5f5\" ,\n\t\tyellow : \"#ffff00\" ,\n\t\tyellowgreen : \"#9acd32\" ,\n\t} as const\n}\n",null,null,null,null,"namespace $ {\n\n\texport function $mol_style_sheet<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig0 : Config ,\n\t) {\n\n\t\tlet rules = [] as string[]\n\n\t\tconst block = $mol_dom_qname( $mol_ambient({}).$mol_func_name( Component ) )\n\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\n\t\tconst make_class = ( prefix : string , path : string[] , config : typeof config0 )=> {\n\n\t\t\tconst props = [] as string[]\n\n\t\t\tconst selector = ( prefix : string , path : string[] )=> {\n\t\t\t\tif( path.length === 0 ) return prefix || `[${ block }]`\n\t\t\t\treturn `${ prefix ? prefix + ' ' : '' }[${ block }_${ path.join('_') }]`\n\t\t\t}\n\t\t\t\n\t\t\tfor( const key of Object.keys( config ).reverse() ) {\n\n\t\t\t\tif( /^[a-z]/.test(key) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst addProp = ( keys : string[] , val : any )=> {\n\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\n\t\t\t\t\t\t\tif( val[0] && [ Array , Object ].includes( val[0].constructor ) ) {\n\t\t\t\t\t\t\t\tval = val.map( v => {\n\t\t\t\t\t\t\t\t\treturn Object.entries( v ).map( ([ n , a ])=> {\n\t\t\t\t\t\t\t\t\t\tif( a === true ) return kebab( n )\n\t\t\t\t\t\t\t\t\t\tif( a === false ) return null\n\t\t\t\t\t\t\t\t\t\treturn String( a )\n\t\t\t\t\t\t\t\t\t} ).filter( Boolean ).join(' ')\n\t\t\t\t\t\t\t\t}).join( ',' )\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tval = val.join(' ')\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t} else if( val.constructor === Object ) {\n\n\t\t\t\t\t\t\tfor( let suffix in val ) {\n\t\t\t\t\t\t\t\taddProp( [ ... keys , kebab( suffix ) ] , val[ suffix ] )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\taddProp( [ kebab(key) ] , config[key] )\n\n\t\t\t\t} else if( /^[A-Z]/.test(key) ) {\n\n\t\t\t\t\tmake_class( prefix , [ ... path , key.toLowerCase() ] , config[key] )\n\n\t\t\t\t} else if( key[0] === '$' ) {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + ' [' + $mol_dom_qname( key ) + ']' , [] , config[key] )\n\n\t\t\t\t} else if( key === '>' ) {\n\n\t\t\t\t\tconst types = config[key] as any\n\n\t\t\t\t\tfor( let type in types ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ' > [' + $mol_dom_qname( type ) + ']' , [] , types[type] )\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@' ) {\n\n\t\t\t\t\tconst attrs = config[key] as any\n\n\t\t\t\t\tfor( let name in attrs ) {\n\t\t\t\t\t\tfor( let val in attrs[name] ) {\n\t\t\t\t\t\t\tmake_class( selector( prefix , path ) + '[' + name + '=' + JSON.stringify( val ) + ']' , [] , attrs[name][val] )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@media' ) {\n\n\t\t\t\t\tconst media = config[key] as any\n\n\t\t\t\t\tfor( let query in media ) {\n\n\t\t\t\t\t\trules.push('}\\n')\n\t\t\t\t\t\t\n\t\t\t\t\t\tmake_class( prefix , path , media[query] )\n\t\t\t\t\t\t\n\t\t\t\t\t\trules.push( `${ key } ${ query } {\\n` )\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + key , [] , config[key] )\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tif( props.length ) {\n\t\t\t\trules.push( `${ selector( prefix , path ) } {\\n${ props.reverse().join('') }}\\n` )\n\t\t\t}\n\n\t\t}\n\n\t\tmake_class( '' , [] , config0 )\n\n\t\treturn rules.reverse().join('')\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_style_define<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig : Config ,\n\t) {\n\n\t\treturn $mol_style_attach(\n\t\t\tComponent.name,\n\t\t\t$mol_style_sheet( Component , config ),\n\t\t)\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_scroll extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * minimal_height 0\n\t\t * ```\n\t\t */\n\t\tminimal_height() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * _event_scroll_timer?val null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\t_event_scroll_timer(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * field *\n\t\t * \t^\n\t\t * \tscrollTop <= scroll_top?val\n\t\t * \tscrollLeft <= scroll_left?val\n\t\t * \ttabIndex <= tabindex\n\t\t * ```\n\t\t */\n\t\tfield() {\n\t\t\treturn {\n\t\t\t\t...super.field(),\n\t\t\t\tscrollTop: this.scroll_top(),\n\t\t\t\tscrollLeft: this.scroll_left(),\n\t\t\t\ttabIndex: this.tabindex()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event *\n\t\t * \t^\n\t\t * \tscroll?event <=> event_scroll?event\n\t\t * ```\n\t\t */\n\t\tevent() {\n\t\t\treturn {\n\t\t\t\t...super.event(),\n\t\t\t\tscroll: (event?: any) => this.event_scroll(event)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * scroll_top?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tscroll_top(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * scroll_left?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tscroll_left(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * tabindex -1\n\t\t * ```\n\t\t */\n\t\ttabindex() {\n\t\t\treturn -1\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event_scroll?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tevent_scroll(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_state_session< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.sessionStorage\n\t\t\t\tif( !native ) break check\n\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn this[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\tthis[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\tthis[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >( key : string , next? : Value ) : Value {\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) this.native().removeItem( key )\n\t\t\telse this.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_session.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\n\tconst { per , rem , px } = $mol_style_unit\n\n\t$mol_style_define( $mol_scroll , {\n\n\t\tdisplay: 'flex',\n\t\toverflow: 'auto',\n\t\tflex: {\n\t\t\tdirection: 'column',\n\t\t\tgrow: 1,\n\t\t\tshrink: 1,\n\t\t\tbasis: 0,\n\t\t},\n\t\toutline: 'none',\n\t\talignSelf: 'stretch',\n\t\tboxSizing: 'border-box',\n\t\twillChange: 'scroll-position',\n\t\tmaxHeight: per(100),\n\t\tmaxWidth: per(100),\n\t\twebkitOverflowScrolling: 'touch',\n\t\tcontain: 'content',\n\n\t\t'>': {\n\t\t\t$mol_view: {\n\t\t\t\ttransform: 'translateZ(0)', // enforce gpu scroll in all agents\n\t\t\t},\n\t\t},\n\n\t\tscrollbar: {\n\t\t\tcolor: [ $mol_theme.line , 'transparent' ],\n\t\t},\n\t\n\t\t'::-webkit-scrollbar': {\n\t\t\twidth: rem(.5),\n\t\t\theight: rem(.5),\n\t\t},\n\t\t\n\t\t'::-webkit-scrollbar-corner': {\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.line,\n\t\t\t},\n\t\t},\n\n\t\t'::-webkit-scrollbar-track': {\n\t\t\tbackground: {\n\t\t\t\tcolor: 'transparent',\n\t\t\t},\n\t\t},\n\n\t\t'::-webkit-scrollbar-thumb': {\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.line,\n\t\t\t},\n\t\t},\n\n\t\t'@media' : {\n\t\t\t'print' : {\n\t\t\t\toverflow: 'visible',\n\t\t\t},\n\t\t},\n\n\t})\n\n}\n","namespace $.$$ {\n\t\n\texport class $mol_scroll extends $.$mol_scroll {\n\n\t\t@ $mol_mem\n\t\tscroll_top( next? : number ) {\n\t\t\treturn $mol_state_session.value( `${ this }.scroll_top()` , next ) || 0\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_left( next? : number ) {\n\t\t\treturn $mol_state_session.value( `${ this }.scroll_left()` , next ) || 0\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\t_event_scroll_timer( next? : $mol_after_timeout | null ) {\n\t\t\treturn next\n\t\t}\n\n\t\tevent_scroll( next? : Event ) {\n\t\t\t\n\t\t\tthis._event_scroll_timer()?.destructor()\n\n\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\n\t\t\tthis._event_scroll_timer( new $mol_after_timeout( 200 , $mol_fiber_solid.func( ()=> {\n\n\t\t\t\tthis.scroll_top( Math.max( 0 , el.scrollTop ) )\n\t\t\t\tthis.scroll_left( Math.max( 0 , el.scrollLeft ) )\n\n\t\t\t} ) ) )\n\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport class $mol_list extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * render_visible_only true\n\t\t * ```\n\t\t */\n\t\trender_visible_only() {\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * render_over 0\n\t\t * ```\n\t\t */\n\t\trender_over() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub <= rows\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn this.rows()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Empty $mol_view\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tEmpty() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Gap_before $mol_view style * paddingTop <= gap_before\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tGap_before() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.style = () => ({\n\t\t\t\tpaddingTop: this.gap_before()\n\t\t\t})\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Gap_after $mol_view style * paddingTop <= gap_after\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tGap_after() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.style = () => ({\n\t\t\t\tpaddingTop: this.gap_after()\n\t\t\t})\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * view_window /\n\t\t * \t0\n\t\t * \t0\n\t\t * ```\n\t\t */\n\t\tview_window() {\n\t\t\treturn [\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * rows /$mol_view\n\t\t * ```\n\t\t */\n\t\trows() {\n\t\t\treturn [\n\n\t\t\t] as readonly $mol_view[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * gap_before 0\n\t\t * ```\n\t\t */\n\t\tgap_before() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * gap_after 0\n\t\t * ```\n\t\t */\n\t\tgap_after() {\n\t\t\treturn 0\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_support_css_overflow_anchor( this: $mol_ambient_context ) {\n\t\treturn this.$mol_dom_context.CSS?.supports( 'overflow-anchor:auto' ) ?? false\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_dom_listener extends $mol_object {\n\n\t\tconstructor(\n\t\t\tpublic _node : any ,\n\t\t\tpublic _event : string ,\n\t\t\tpublic _handler : ( event : any )=> any ,\n\t\t\tpublic _config : boolean|{ passive : boolean } = { passive : true }\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis._node.addEventListener( this._event , this._handler , this._config )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis._node.removeEventListener( this._event , this._handler , this._config )\n\t\t\tsuper.destructor()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_print extends $mol_object {\n\n\t\t@ $mol_mem\n\t\tstatic before() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'beforeprint' , ()=> {\n\t\t\t\tthis.active( true )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic after() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'afterprint' , ()=> {\n\t\t\t\tthis.active( false )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic active( next? : boolean ) {\n\t\t\tthis.before()\n\t\t\tthis.after()\n\t\t\treturn next || false\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/list/list.view.css\",\n \"[mol_list] {\\n\\twill-change: contents;\\n\\tdisplay: block;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\t/* display: flex;\\n\\talign-items: stretch;\\n\\talign-content: stretch; */\\n\\ttransition: none;\\n\\tmin-height: .5rem;\\n}\\n\\n[mol_list_gap_before] ,\\n[mol_list_gap_after] {\\n\\tdisplay: block !important;\\n\\tflex: none;\\n\\ttransition: none;\\n\\toverflow-anchor: none;\\n}\\n \\n[mol_list] > * {\\n\\tdisplay: flex;\\n}\\n\"\n) }","namespace $.$$ {\n\n\texport class $mol_list extends $.$mol_list {\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\tconst rows = this.rows()\n\t\t\treturn ( rows.length === 0 ) ? [ this.Empty() ] : rows\n\t\t}\n\n\t\trender_visible_only() {\n\t\t\treturn this.$.$mol_support_css_overflow_anchor()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tview_window() : [ number , number ] {\n\t\t\t\n\t\t\tconst kids = this.sub()\n\t\t\t\n\t\t\tif( kids.length < 3 ) return [ 0 , kids.length ]\n\t\t\tif( this.$.$mol_print.active() ) return [ 0 , kids.length ]\n\t\t\t\n\t\t\tlet [ min , max ] = $mol_mem_cached( ()=> this.view_window() ) ?? [ 0 , 0 ]\n\n\t\t\tlet max2 = max = Math.min( max , kids.length )\n\t\t\tlet min2 = min = Math.max( 0 , Math.min( min , max - 1 ) )\n\t\t\t\n\t\t\tconst anchoring = this.render_visible_only()\n\t\t\tconst window_height = this.$.$mol_window.size().height + 40\n\t\t\tconst over = Math.ceil( window_height * this.render_over() )\n\t\t\tconst limit_top = -over\n\t\t\tconst limit_bottom = window_height + over\n\n\t\t\tconst rect = this.view_rect()\n \n\t\t\tconst gap_before = $mol_mem_cached( ()=> this.gap_before() ) ?? 0\n\t\t\tconst gap_after = $mol_mem_cached( ()=> this.gap_after() ) ?? 0\n\n\t\t\tlet top = Math.ceil( rect?.top ?? 0 ) + gap_before\n\t\t\tlet bottom = Math.ceil( rect?.bottom ?? 0 ) - gap_after\n\n\t\t\t// change nothing when already covers all limits\n\t\t\tif( top <= limit_top && bottom >= limit_bottom ) {\n\t\t\t\treturn [ min2 , max2 ]\n\t\t\t}\n\n\t\t\t// jumps when fully over limits\n\t\t\tif( anchoring && (( bottom < limit_top )||( top > limit_bottom )) ) {\n\n\t\t\t\tmin = 0\n\t\t\t\ttop = Math.ceil( rect?.top ?? 0 )\n\t\t\t\t\n\t\t\t\twhile( min < ( kids.length - 1 ) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst height = kids[ min ].minimal_height()\n\t\t\t\t\tif( top + height >= limit_top ) break\n\t\t\t\t\t\n\t\t\t\t\ttop += height\n\t\t\t\t\t++ min\n\n\t\t\t\t}\n\n\t\t\t\tmin2 = min\n\t\t\t\tmax2 = max = min\n\t\t\t\tbottom = top\n\n\t\t\t}\n\n\t\t\tlet top2 = top\n\t\t\tlet bottom2 = bottom\n\n\t\t\t// force recalc min when overlapse top limit\n\t\t\tif( anchoring && ( top <= limit_top ) && ( bottom2 < limit_bottom ) ) {\n\t\t\t\tmin2 = max\n\t\t\t\ttop2 = bottom\n\t\t\t}\n\n\t\t\t// force recalc max when overlapse bottom limit\n\t\t\tif( ( bottom >= limit_bottom ) && ( top2 >= limit_top ) ) {\n\t\t\t\tmax2 = min\n\t\t\t\tbottom2 = top\n\t\t\t}\n\n\t\t\t// extend max to cover bottom limit\n\t\t\twhile( bottom2 < limit_bottom && max2 < kids.length ) {\n\t\t\t\tbottom2 += kids[ max2 ].minimal_height()\n\t\t\t\t++ max2\n\t\t\t}\n\n\t\t\t// extend min to cover top limit\n\t\t\twhile( anchoring && (( top2 >= limit_top )&&( min2 > 0 )) ) {\n\t\t\t\t-- min2\n\t\t\t\ttop2 -= kids[ min2 ].minimal_height()\n\t\t\t}\n\n\t\t\treturn [ min2 , max2 ]\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgap_before() {\n\t\t\tconst skipped = this.sub().slice( 0 , this.view_window()[0] )\n\t\t\treturn Math.max( 0 , skipped.reduce( ( sum , view )=> sum + view.minimal_height() , 0 ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgap_after() {\n\t\t\tconst skipped = this.sub().slice( this.view_window()[1] )\n\t\t\treturn Math.max( 0 , skipped.reduce( ( sum , view )=> sum + view.minimal_height() , 0 ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub_visible() {\n\n\t\t\tvar sub = this.sub()\n\n\t\t\tconst next = sub.slice( ... this.view_window() )\n\t\t\t\n\t\t\tif( this.gap_before() ) next.unshift( this.Gap_before() )\n\t\t\tif( this.gap_after() ) next.push( this.Gap_after() )\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\n\t\t\treturn this.sub().reduce( ( sum , view )=> {\n\n\t\t\t\ttry {\n\n\t\t\t\t\treturn sum + view.minimal_height() \n\n\t\t\t\t} catch( error ) {\n\n\t\t\t\t\tif( error instanceof Promise ) {\n\t\t\t\t\t\t$mol_atom2.current!.subscribe( error )\n\t\t\t\t\t} else if( $mol_fail_catch( error ) ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t}\n\n\t\t\t\t\treturn sum\n\t\t\t\t}\n\n\t\t\t} , 0 )\n\n\t\t}\n\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.rows()\n\n\t\t\tconst index = kids.findIndex( item => path.has( item ) )\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\tconst win = this.view_window()\n\t\t\t\tif( index < win[0] || index >= win[1] ) {\n\t\t\t\t\t$mol_mem_cached( ()=> this.view_window(), [ index, index + 1 ] )\n\t\t\t\t}\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_plugin extends $mol_view {\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\n\t\t\tconst node = next || $mol_owning_get( this , $mol_view )!.dom_node()\n\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\n\t\t\tconst events = this.event()\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.addEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\t$mol_fiber_root( events[ event_name ] ) ,\n\t\t\t\t\t{ passive : false } as any ,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn node\n\t\t}\n\n\t\tattr_static() : { [ key : string ] : string|number|boolean } {\n\t\t\treturn {}\n\t\t}\n\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\trender() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport class $mol_meter extends $mol_plugin {\n\n\t\t/**\n\t\t * ```tree\n\t\t * zoom 1\n\t\t * ```\n\t\t */\n\t\tzoom() {\n\t\t\treturn 1\n\t\t}\n\n\n\t\t/**\n\t\t * ```tree\n\t\t * width?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\twidth(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * height?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\theight(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\n\t\t/**\n\t\t * ```tree\n\t\t * left?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tleft(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * right?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tright(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bottom?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tbottom(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * top?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\ttop(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\t}\n\n}\n","namespace $.$$ {\n\texport class $mol_meter extends $.$mol_meter {\n\t\t\n\t\t@ $mol_mem\n\t\trect() {\n\t\t\tconst node = this.dom_node()\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\t\n\t\t\tif( node !== $mol_dom_context.document.body ) {\n\t\t\t\tnew $mol_after_frame( $mol_atom2.current!.fresh )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst { left , top , right , bottom , width , height } = node.getBoundingClientRect()\n\t\t\t\t\treturn { left , top , right , bottom , width , height , zoom : win.devicePixelRatio || 1 }\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t// IE11\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst size = $mol_window.size()\n\t\t\treturn {\n\t\t\t\tzoom : win.devicePixelRatio || 1 ,\n\t\t\t\tleft : 0 ,\n\t\t\t\ttop : 0 ,\n\t\t\t\tright : size.width ,\n\t\t\t\tbottom : size.height ,\n\t\t\t\twidth : size.width ,\n\t\t\t\theight : size.height ,\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttop() {\n\t\t\treturn this.rect().top\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbottom() {\n\t\t\treturn this.rect().bottom\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tleft() {\n\t\t\treturn this.rect().left\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tright() {\n\t\t\treturn this.rect().right\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\twidth() {\n\t\t\treturn this.rect().width\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\theight() {\n\t\t\treturn this.rect().height\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tzoom() {\n\t\t\treturn this.rect().zoom\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_pop extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * event * keydown?event <=> keydown?event\n\t\t * ```\n\t\t */\n\t\tevent() {\n\t\t\treturn {\n\t\t\t\tkeydown: (event?: any) => this.keydown(event)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * showed?val false\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tshowed(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn false\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * plugins /$mol_plugin <= Meter\n\t\t * ```\n\t\t */\n\t\tplugins() {\n\t\t\treturn [\n\t\t\t\tthis.Meter()\n\t\t\t] as readonly $mol_plugin[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub /\n\t\t * \t<= Anchor\n\t\t * \t<= Bubble\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Anchor(),\n\t\t\t\tthis.Bubble()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * keydown?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tkeydown(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Meter $mol_meter\n\t\t * \ttop => top\n\t\t * \tbottom => bottom\n\t\t * \tleft => left\n\t\t * \tright => right\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tMeter() {\n\t\t\tconst obj = new this.$.$mol_meter()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * top\n\t\t * ```\n\t\t */\n\t\ttop() {\n\t\t\treturn this.Meter().top()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bottom\n\t\t * ```\n\t\t */\n\t\tbottom() {\n\t\t\treturn this.Meter().bottom()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * left\n\t\t * ```\n\t\t */\n\t\tleft() {\n\t\t\treturn this.Meter().left()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * right\n\t\t * ```\n\t\t */\n\t\tright() {\n\t\t\treturn this.Meter().right()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Anchor null\n\t\t * ```\n\t\t */\n\t\tAnchor() {\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * align \\bottom_center\n\t\t * ```\n\t\t */\n\t\talign() {\n\t\t\treturn \"bottom_center\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bubble_content /$mol_view_content\n\t\t * ```\n\t\t */\n\t\tbubble_content() {\n\t\t\treturn [\n\n\t\t\t] as readonly $mol_view_content[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * height_max 9999\n\t\t * ```\n\t\t */\n\t\theight_max() {\n\t\t\treturn 9999\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Bubble $mol_pop_bubble\n\t\t * \talign <= align\n\t\t * \tcontent <= bubble_content\n\t\t * \theight_max <= height_max\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tBubble() {\n\t\t\tconst obj = new this.$.$mol_pop_bubble()\n\n\t\t\tobj.align = () => this.align()\n\t\t\tobj.content = () => this.bubble_content()\n\t\t\tobj.height_max = () => this.height_max()\n\n\t\t\treturn obj\n\t\t}\n\t}\n\n\texport class $mol_pop_bubble extends $mol_scroll {\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub <= content\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn this.content()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * style *\n\t\t * \t^\n\t\t * \tmaxHeight <= height_max\n\t\t * ```\n\t\t */\n\t\tstyle() {\n\t\t\treturn {\n\t\t\t\t...super.style(),\n\t\t\t\tmaxHeight: this.height_max()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * attr *\n\t\t * \t^\n\t\t * \tmol_pop_align <= align\n\t\t * \ttabindex 0\n\t\t * ```\n\t\t */\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\t...super.attr(),\n\t\t\t\tmol_pop_align: this.align(),\n\t\t\t\ttabindex: 0\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * content /$mol_view_content\n\t\t * ```\n\t\t */\n\t\tcontent() {\n\t\t\treturn [\n\n\t\t\t] as readonly $mol_view_content[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * height_max 9999\n\t\t * ```\n\t\t */\n\t\theight_max() {\n\t\t\treturn 9999\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * align \\\n\t\t * ```\n\t\t */\n\t\talign() {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n}\n","namespace $ {\n export enum $mol_keyboard_code {\n backspace = 8,\n tab = 9,\n enter = 13,\n shift= 16,\n ctrl = 17,\n alt = 18,\n pause = 19,\n capsLock = 20,\n escape = 27,\n space = 32,\n pageUp = 33,\n pageDown = 34,\n end = 35,\n home = 36,\n left = 37,\n up = 38,\n right = 39,\n down = 40,\n insert = 45,\n delete = 46,\n key0 = 48,\n key1 = 49,\n key2 = 50,\n key3 = 51,\n key4 = 52,\n key5 = 53,\n key6 = 54,\n key7 = 55,\n key8 = 56,\n key9 = 57,\n A = 65,\n B = 66,\n C = 67,\n D = 68,\n E = 69,\n F = 70,\n G = 71,\n H = 72,\n I = 73,\n J = 74,\n K = 75,\n L = 76,\n M = 77,\n N = 78,\n O = 79,\n P = 80,\n Q = 81,\n R = 82,\n S = 83,\n T = 84,\n U = 85,\n V = 86,\n W = 87,\n X = 88,\n Y = 89,\n Z = 90,\n metaLeft = 91,\n metaRight = 92,\n select = 93,\n numpad0 = 96,\n numpad1 = 97,\n numpad2 = 98,\n numpad3 = 99,\n numpad4 = 100,\n numpad5 = 101,\n numpad6 = 102,\n numpad7 = 103,\n numpad8 = 104,\n numpad9 = 105,\n multiply = 106,\n add = 107,\n subtract = 109,\n decimal = 110,\n divide = 111,\n F1 = 112,\n F2 = 113,\n F3 = 114,\n F4 = 115,\n F5 = 116,\n F6 = 117,\n F7 = 118,\n F8 = 119,\n F9 = 120,\n F10 = 121,\n F11 = 122,\n F12 = 123,\n numLock = 144,\n scrollLock = 145,\n semicolon = 186,\n equals = 187,\n comma = 188,\n dash = 189,\n period = 190,\n forwardSlash = 191,\n graveAccent = 192,\n bracketOpen = 219,\n slashBack = 220,\n slashBackLeft = 226,\n bracketClose = 221,\n quoteSingle = 222\n }\n}\n","namespace $ { $mol_style_attach( \"mol/pop/pop.view.css\",\n \"[mol_pop] {\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n}\\n\\n[mol_pop]:hover {\\n\\tz-index: 4;\\n}\\n\\n[mol_pop_bubble] {\\n\\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\\n\\tborder-radius: var(--mol_skin_round);\\n\\tposition: absolute;\\n\\tz-index: 3;\\n\\tbackground: var(--mol_theme_back);\\n\\tmax-width: none;\\n\\tmax-height: none;\\n\\toverflow: hidden;\\n\\toverflow-y: auto;\\n\\tword-break: normal;\\n}\\n\\n[mol_pop_bubble][mol_scroll] {\\n\\tbackground: var(--mol_theme_back);\\n}\\n\\n[mol_pop_bubble]:focus {\\n\\toutline: none;\\n}\\n\\n[mol_pop_align=\\\"left_top\\\"] {\\n\\ttransform: translate(-100%);\\n\\tleft: 0;\\n\\tbottom: 0;\\n}\\n\\n[mol_pop_align=\\\"left_center\\\"] {\\n\\ttransform: translate(-100%, -50%);\\n\\tleft: 0;\\n\\ttop: 50%;\\n}\\n\\n[mol_pop_align=\\\"left_bottom\\\"] {\\n\\ttransform: translate(-100%);\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n[mol_pop_align=\\\"right_top\\\"] {\\n\\ttransform: translate(100%);\\n\\tright: 0;\\n\\tbottom: 0;\\n}\\n\\n[mol_pop_align=\\\"right_center\\\"] {\\n\\ttransform: translate(100%, -50%);\\n\\tright: 0;\\n\\ttop: 50%;\\n}\\n\\n[mol_pop_align=\\\"right_bottom\\\"] {\\n\\ttransform: translate(100%);\\n\\tright: 0;\\n\\ttop: 0;\\n}\\n\\n[mol_pop_align=\\\"center\\\"] {\\n\\tleft: 50%;\\n\\ttop: 50%;\\n\\ttransform: translate(-50%, -50%);\\n}\\n\\n[mol_pop_align=\\\"top_left\\\"] {\\n\\tright: 0;\\n\\tbottom: 100%;\\n}\\n\\n[mol_pop_align=\\\"top_center\\\"] {\\n\\ttransform: translate(-50%);\\n\\tleft: 50%;\\n\\tbottom: 100%;\\n}\\n\\n[mol_pop_align=\\\"top_right\\\"] {\\n\\tleft: 0;\\n\\tbottom: 100%;\\n}\\n\\n[mol_pop_align=\\\"bottom_left\\\"] {\\n\\tright: 0;\\n\\ttop: 100%;\\n}\\n\\n[mol_pop_align=\\\"bottom_center\\\"] {\\n\\ttransform: translate(-50%);\\n\\tleft: 50%;\\n\\ttop: 100%;\\n}\\n\\n[mol_pop_align=\\\"bottom_right\\\"] {\\n\\tleft: 0;\\n\\ttop: 100%;\\n}\\n\"\n) }","namespace $.$$ {\n\texport class $mol_pop extends $.$mol_pop {\n\t\t\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Anchor() ,\n\t\t\t\t... this.showed() ? [ this.Bubble() ] : [] ,\n\t\t\t]\n\t\t}\n\t\t\n\t\theight_max() {\n\t\t\treturn this.$.$mol_window.size().height * 0.33;\n\t\t}\n\n\t\talign() {\n\t\t\tconst viewport = this.$.$mol_window.size()\n\t\t\t\n\t\t\tconst vert = this.top() > ( viewport.height - this.bottom() ) ? 'top' : 'bottom'\n\t\t\tconst hor = this.left() > ( viewport.width - this.right() ) ? 'left' : 'right'\n\t\t\t\n\t\t\treturn `${ vert }_${ hor }`\n\t\t}\n\n\t\tkeydown( event : KeyboardEvent ) {\n\n\t\t\tif( event.defaultPrevented ) return \n\t\t\t\n\t\t\tif( event.keyCode === $mol_keyboard_code.escape ) {\n\t\t\t\tif( !this.showed() ) return\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.showed( false )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_pop_over extends $mol_pop {\n\n\t\t/**\n\t\t * ```tree\n\t\t * showed <= hovered?val\n\t\t * ```\n\t\t */\n\t\tshowed() {\n\t\t\treturn this.hovered()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * attr *\n\t\t * \t^\n\t\t * \ttabindex 0\n\t\t * ```\n\t\t */\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\t...super.attr(),\n\t\t\t\ttabindex: 0\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event *\n\t\t * \t^\n\t\t * \tmouseenter?event <=> event_show?event\n\t\t * \tmouseleave?event <=> event_hide?event\n\t\t * ```\n\t\t */\n\t\tevent() {\n\t\t\treturn {\n\t\t\t\t...super.event(),\n\t\t\t\tmouseenter: (event?: any) => this.event_show(event),\n\t\t\t\tmouseleave: (event?: any) => this.event_hide(event)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * hovered?val false\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\thovered(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn false\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event_show?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tevent_show(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * event_hide?event null\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tevent_hide(event?: any) {\n\t\t\tif ( event !== undefined ) return event\n\t\t\treturn null as any\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/pop/over/over.view.css\",\n \"[mol_pop_over]:focus {\\r\\n\\toutline: none;\\r\\n}\"\n) }","namespace $.$$ {\n\texport class $mol_pop_over extends $.$mol_pop_over {\n\t\t\n\t\tevent_show( event? : MouseEvent ) {\n\t\t\tthis.hovered( true )\n\t\t}\n\t\t\n\t\tevent_hide( event? : MouseEvent ) {\n\t\t\tthis.hovered( false )\n\t\t}\n\n\t\tshowed() {\n\t\t\treturn this.focused() || this.hovered()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_perf_dbmon extends $mol_scroll {\n\n\t\t/**\n\t\t * ```tree\n\t\t * title \\dbmon ($mol)\n\t\t * ```\n\t\t */\n\t\ttitle() {\n\t\t\treturn \"dbmon ($mol)\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub / <= Databases\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Databases()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Database!id $mol_view sub <= database!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tDatabase(id: any) {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.sub = () => this.database(id)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Query!id $mol_perf_dbmon_query\n\t\t * \telapsed <= query_elapsed!id\n\t\t * \telapsed_mod <= query_elapsed_mod!id\n\t\t * \tvalue <= query_value!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tQuery(id: any) {\n\t\t\tconst obj = new this.$.$mol_perf_dbmon_query()\n\n\t\t\tobj.elapsed = () => this.query_elapsed(id)\n\t\t\tobj.elapsed_mod = () => this.query_elapsed_mod(id)\n\t\t\tobj.value = () => this.query_value(id)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * databases /\n\t\t * ```\n\t\t */\n\t\tdatabases() {\n\t\t\treturn [\n\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Databases $mol_list rows <= databases\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tDatabases() {\n\t\t\tconst obj = new this.$.$mol_list()\n\n\t\t\tobj.rows = () => this.databases()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * name!id \\\n\t\t * ```\n\t\t */\n\t\tname(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Name!id $mol_view sub / <= name!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tName(id: any) {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.sub = () => [\n\t\t\t\tthis.name(id)\n\t\t\t] as readonly any[]\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_count_label_mod!id \\\n\t\t * ```\n\t\t */\n\t\tquery_count_label_mod(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_count!id 0\n\t\t * ```\n\t\t */\n\t\tquery_count(id: any) {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Query_count!id $mol_perf_dbmon_query_count\n\t\t * \tlabel_mod <= query_count_label_mod!id\n\t\t * \tcount <= query_count!id\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tQuery_count(id: any) {\n\t\t\tconst obj = new this.$.$mol_perf_dbmon_query_count()\n\n\t\t\tobj.label_mod = () => this.query_count_label_mod(id)\n\t\t\tobj.count = () => this.query_count(id)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * top_queries!id /\n\t\t * ```\n\t\t */\n\t\ttop_queries(id: any) {\n\t\t\treturn [\n\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * database!id /\n\t\t * \t<= Name!id\n\t\t * \t<= Query_count!id\n\t\t * \t<= top_queries!id\n\t\t * ```\n\t\t */\n\t\tdatabase(id: any) {\n\t\t\treturn [\n\t\t\t\tthis.Name(id),\n\t\t\t\tthis.Query_count(id),\n\t\t\t\tthis.top_queries(id)\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_elapsed!id \\\n\t\t * ```\n\t\t */\n\t\tquery_elapsed(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_elapsed_mod!id \\\n\t\t * ```\n\t\t */\n\t\tquery_elapsed_mod(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * query_value!id \\\n\t\t * ```\n\t\t */\n\t\tquery_value(id: any) {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n\texport class $mol_perf_dbmon_query_count extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * sub / <= Label\n\t\t * ```\n\t\t */\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Label()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * label_mod \\\n\t\t * ```\n\t\t */\n\t\tlabel_mod() {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * count 0\n\t\t * ```\n\t\t */\n\t\tcount() {\n\t\t\treturn 0\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Label $mol_view\n\t\t * \tattr * mol_perf_dbmon_query_count_label <= label_mod\n\t\t * \tsub / <= count\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tLabel() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.attr = () => ({\n\t\t\t\tmol_perf_dbmon_query_count_label: this.label_mod()\n\t\t\t})\n\t\t\tobj.sub = () => [\n\t\t\t\tthis.count()\n\t\t\t] as readonly any[]\n\n\t\t\treturn obj\n\t\t}\n\t}\n\n\texport class $mol_perf_dbmon_query extends $mol_pop_over {\n\n\t\t/**\n\t\t * ```tree\n\t\t * minimal_height 40\n\t\t * ```\n\t\t */\n\t\tminimal_height() {\n\t\t\treturn 40\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Anchor <= Elapsed\n\t\t * ```\n\t\t */\n\t\tAnchor() {\n\t\t\treturn this.Elapsed()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bubble_content / <= value\n\t\t * ```\n\t\t */\n\t\tbubble_content() {\n\t\t\treturn [\n\t\t\t\tthis.value()\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * align \\left_center\n\t\t * ```\n\t\t */\n\t\talign() {\n\t\t\treturn \"left_center\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * elapsed_mod \\\n\t\t * ```\n\t\t */\n\t\telapsed_mod() {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * elapsed \\\n\t\t * ```\n\t\t */\n\t\telapsed() {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * Elapsed $mol_view\n\t\t * \tattr * mol_perf_dbmon_query_elapsed <= elapsed_mod\n\t\t * \tsub / <= elapsed\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tElapsed() {\n\t\t\tconst obj = new this.$.$mol_view()\n\n\t\t\tobj.attr = () => ({\n\t\t\t\tmol_perf_dbmon_query_elapsed: this.elapsed_mod()\n\t\t\t})\n\t\t\tobj.sub = () => [\n\t\t\t\tthis.elapsed()\n\t\t\t] as readonly any[]\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * value \\\n\t\t * ```\n\t\t */\n\t\tvalue() {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\tdeclare function requestIdleCallback( task : ()=> void , options? : { timeout : number } ) : any\n\tdeclare function cancelIdleCallback( id : any ) : void\n\n\texport class $mol_after_work extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = requestIdleCallback( task , { timeout : delay } )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tcancelIdleCallback( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision = 0 , next? : number ) {\n\t\t\t\n\t\t\tif( precision > 0 ) {\n\t\t\t\tnew $mol_after_timeout( precision , $mol_atom2.current!.fresh )\n\t\t\t} else {\n\t\t\t\tnew $mol_after_work( 16 , $mol_atom2.current!.fresh )\n\t\t\t}\n\t\t\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/perf/dbmon/dbmon.view.css\",\n \"[mol_perf_dbmon_databases] {\\n\\tdisplay: table;\\n\\ttable-layout: fixed;\\n\\twidth: 100%;\\n}\\n\\n[mol_perf_dbmon_database] {\\n\\tdisplay: table-row;\\n\\tbackground: white;\\n}\\n\\n[mol_perf_dbmon_database] > * {\\n\\tdisplay: table-cell;\\n\\tpadding: .5rem;\\n\\tborder-top: 1px solid #ddd;\\n}\\n\\n[mol_perf_dbmon_database]:nth-child(odd) {\\n\\tbackground: #f9f9f9;\\n}\\n\\n[mol_perf_dbmon_query_count_label] {\\n\\tborder-radius: .25em;\\n\\tcolor: #fff;\\n\\tfont-size: 75%;\\n\\tfont-weight: 700;\\n\\tline-height: 1;\\n\\tpadding: .25em .5em;\\n}\\n\\n[mol_perf_dbmon_query_count_label~=\\\"label-success\\\"] {\\n\\tbackground-color: #5cb85c;\\n}\\n\\n[mol_perf_dbmon_query_count_label~=\\\"label-warning\\\"] {\\n\\tbackground-color: #f0ad4e;\\n}\\n\\n[mol_perf_dbmon_query_bubble] {\\n\\tpadding: .5rem;\\n}\\n\"\n) }","declare let ENV : any\ndeclare let Monitoring : any\n\nnamespace $.$$ {\n\n\texport class $mol_perf_dbmon extends $.$mol_perf_dbmon {\n\n\t\t@ $mol_mem\n\t\tdata() {\n\t\t\t$mol_state_time.now( ENV.timeout || 15 )\n\t\t\tMonitoring.renderRate.ping();\n\t\t\treturn ENV.generateData().toArray()\n\t\t}\n\t\t\n\t\tdatabases() {\n\t\t\treturn Object.keys( this.data() ).map( index => this.Database( index ) )\n\t\t}\n\n\t\tdatabase( id : string ) {\n\t\t\treturn [\n\t\t\t\tthis.Name( id ) ,\n\t\t\t\tthis.Query_count( id ) ,\n\t\t\t\t... this.top_queries( id ) ,\n\t\t\t]\n\t\t}\n\n\t\tname( id : string ) {\n\t\t\treturn this.data()[ id ].dbname\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tlast_sample( id : string ) {\n\t\t\treturn this.data()[ id ].lastSample\n\t\t}\n\n\t\tquery_count( id : string ) {\n\t\t\treturn this.last_sample( id ).nbQueries\n\t\t}\n\n\t\tquery_count_label_mod( id : string ) {\n\t\t\treturn this.last_sample( id ).countClassName\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttop_queries_data( db : string ) {\n\t\t\treturn this.last_sample( db ).topFiveQueries\n\t\t}\n\n\t\ttop_queries( db : string ) {\n\t\t\treturn Object.keys( this.top_queries_data( db ) ).map( query => this.Query({ db , query }) )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttop_query( id : { db : string , query : string } ) {\n\t\t\treturn this.top_queries_data( id.db )[ id.query ]\n\t\t}\n\n\t\tquery_elapsed( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).formatElapsed\n\t\t}\n\n\t\tquery_elapsed_mod( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).elapsedClassName\n\t\t}\n\n\t\tquery_value( id : { db : string , query : string } ) {\n\t\t\treturn this.top_query( id ).query\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_attributes_super extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * some *\n\t\t * \ta 0\n\t\t * \tb 2\n\t\t * ```\n\t\t */\n\t\tsome() {\n\t\t\treturn {\n\t\t\t\ta: 0,\n\t\t\t\tb: 2\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree_test_attributes extends $mol_view_tree_test_attributes_super {\n\n\t\t/**\n\t\t * ```tree\n\t\t * some *\n\t\t * \t^\n\t\t * \ta 1\n\t\t * ```\n\t\t */\n\t\tsome() {\n\t\t\treturn {\n\t\t\t\t...super.some(),\n\t\t\t\ta: 1\n\t\t\t}\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_binding extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * value?val <=> task_title_new?val\n\t\t * ```\n\t\t */\n\t\tvalue(val?: any) {\n\t\t\treturn this.task_title_new(val)\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * enabled <= head_complete_enabled\n\t\t * ```\n\t\t */\n\t\tenabled() {\n\t\t\treturn this.head_complete_enabled()\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * task_title_new?val \\123\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\ttask_title_new(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn \"123\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * head_complete_enabled false\n\t\t * ```\n\t\t */\n\t\thead_complete_enabled() {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_binding_right extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * Test $mol_view_tree_test_binding_right_test width?v => outer_width?v\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\tTest() {\n\t\t\tconst obj = new this.$.$mol_view_tree_test_binding_right_test()\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * outer_width?v\n\t\t * ```\n\t\t */\n\t\touter_width(v?: any) {\n\t\t\treturn this.Test().width(v)\n\t\t}\n\t}\n\n\texport class $mol_view_tree_test_binding_right_test extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * width?val 0\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem\n\t\twidth(val?: any) {\n\t\t\tif ( val !== undefined ) return val\n\t\t\treturn 0\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_simple extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * some 1\n\t\t * ```\n\t\t */\n\t\tsome() {\n\t\t\treturn 1\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * bool true\n\t\t * ```\n\t\t */\n\t\tbool() {\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * str \\test\n\t\t * ```\n\t\t */\n\t\tstr() {\n\t\t\treturn \"test\"\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * arr /\n\t\t * ```\n\t\t */\n\t\tarr() {\n\t\t\treturn [\n\n\t\t\t] as readonly any[]\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * arr_string /string\n\t\t * ```\n\t\t */\n\t\tarr_string() {\n\t\t\treturn [\n\n\t\t\t] as readonly string[]\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree_test_attributes_subcomponent extends $mol_view {\n\t\t// Comment\n\n\t\t/**\n\t\t * ```tree\n\t\t * Page!index $mol_view_tree_test_attributes_subcomponent_page Sub <= page!index\n\t\t * ```\n\t\t */\n\t\t@ $mol_mem_key\n\t\tPage(index: any) {\n\t\t\tconst obj = new this.$.$mol_view_tree_test_attributes_subcomponent_page()\n\n\t\t\tobj.Sub = () => this.page(index)\n\n\t\t\treturn obj\n\t\t}\n\n\t\t/**\n\t\t * ```tree\n\t\t * page!index null\n\t\t * ```\n\t\t */\n\t\tpage(index: any) {\n\t\t\treturn null as any\n\t\t}\n\t}\n\n\texport class $mol_view_tree_test_attributes_subcomponent_page extends $mol_view {\n\n\t\t/**\n\t\t * ```tree\n\t\t * Sub null\n\t\t * ```\n\t\t */\n\t\tSub() {\n\t\t\treturn null as any\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport const $mol_tree_convert : unique symbol = Symbol( '$mol_tree_convert' )\n\texport type $mol_tree_path = Array< string | number | null >\n\n\texport type $mol_tree_hack = ( input : $mol_tree , context : $mol_tree_context )=> readonly $mol_tree[]\n\texport type $mol_tree_context = Record< string , $mol_tree_hack >\n\texport type $mol_tree_library = Record< string , $mol_tree_context >\n\t\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree extends $mol_object2 {\n\t\t\n\t\treadonly type : string\n\t\treadonly data : string\n\t\treadonly sub : readonly $mol_tree[]\n\t\treadonly baseUri : string\n\t\treadonly row : number\n\t\treadonly col : number\n\t\treadonly length : number\n\t\t\n\t\tconstructor( config : Partial<$mol_tree> = {} ) {\n\n\t\t\tsuper()\n\n\t\t\tthis.type = config.type || ''\n\t\t\t\n\t\t\tif( config.value !== undefined ) {\n\n\t\t\t\tvar sub = $mol_tree.values( config.value )\n\t\t\t\t\n\t\t\t\tif( config.type || sub.length > 1 ) {\n\n\t\t\t\t\tthis.sub = [ ... sub , ...( config.sub || [] ) ]\n\t\t\t\t\tthis.data = config.data || ''\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.data = sub[ 0 ].data\n\t\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.data = config.data || ''\n\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t}\n\t\t\t\n\t\t\tthis.baseUri = config.baseUri || ''\n\t\t\tthis.row = config.row || 0\n\t\t\tthis.col = config.col || 0\n\t\t\tthis.length = config.length || 0\n\n\t\t}\n\t\t\n\t\tstatic values( str : string , baseUri? : string ) {\n\n\t\t\treturn str.split( '\\n' ).map( ( data , index ) => new $mol_tree( {\n\t\t\t\tdata : data ,\n\t\t\t\tbaseUri : baseUri ,\n\t\t\t\trow : index + 1 ,\n\t\t\t\tlength : data.length ,\n\t\t\t} ) )\n\n\t\t}\n\t\t\n\t\t/** Cloning node with overrides. */\n\t\tclone( config : Partial<$mol_tree> = {} ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\ttype : ( 'type' in config ) ? config.type : this.type ,\n\t\t\t\tdata : ( 'data' in config ) ? config.data : this.data ,\n\t\t\t\tsub : ( 'sub' in config ) ? config.sub : this.sub ,\n\t\t\t\tbaseUri : ( 'baseUri' in config ) ? config.baseUri : this.baseUri ,\n\t\t\t\trow : ( 'row' in config ) ? config.row : this.row ,\n\t\t\t\tcol : ( 'col' in config ) ? config.col : this.col ,\n\t\t\t\tlength : ( 'length' in config ) ? config.length : this.length ,\n\t\t\t\tvalue : config.value\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived node. */\n\t\tmake( config : Partial<$mol_tree> ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\tbaseUri : this.baseUri ,\n\t\t\t\trow : this.row ,\n\t\t\t\tcol : this.col ,\n\t\t\t\tlength : this.length ,\n\t\t\t\t... config ,\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tmake_data( value : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ value , sub })\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tmake_struct( type : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ type , sub })\n\t\t}\n\t\t\n\t\t/** Parses tree format to AST. */\n\t\tstatic fromString( str : string , baseUri? : string ) {\n\t\t\t\n\t\t\tvar root = new $mol_tree( { baseUri : baseUri } )\n\t\t\tvar stack = [ root ]\n\t\t\t\n\t\t\tvar row = 0\n\t\t\tvar prefix = str.replace( /^\\n?(\\t*)[\\s\\S]*/ , '$1' )\n\t\t\tvar lines = str.replace( new RegExp( '^\\\\t{0,' + prefix.length + '}' , 'mg' ) , '' ).split( '\\n' )\n\n\t\t\tlines.forEach( line => {\n\n\t\t\t\t++row\n\t\t\t\t\n\t\t\t\tvar chunks = /^(\\t*)((?:[^\\n\\t\\\\ ]+ *)*)(\\\\[^\\n]*)?(.*?)(?:$|\\n)/m.exec( line )\n\t\t\t\tif( !chunks || chunks[4] ) return this.$.$mol_fail( new Error( `Syntax error at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tvar indent = chunks[ 1 ]\n\t\t\t\tvar path = chunks[ 2 ]\n\t\t\t\tvar data = chunks[ 3 ]\n\t\t\t\t\n\t\t\t\tvar deep = indent.length\n\t\t\t\tvar types = path ? path.replace( / $/ , '' ).split( / +/ ) : []\n\t\t\t\t\n\t\t\t\tif( stack.length <= deep ) return this.$.$mol_fail( new Error( `Too many tabs at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tstack.length = deep + 1\n\t\t\t\tvar parent = stack[ deep ];\n\t\t\t\t\n\t\t\t\tlet col = deep\n\t\t\t\ttypes.forEach( type => {\n\t\t\t\t\tif( !type ) return this.$.$mol_fail( new Error( `Unexpected space symbol ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\tvar next = new $mol_tree({ type , baseUri , row , col , length : type.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\t\n\t\t\t\t\tparent = next\n\t\t\t\t\tcol += type.length + 1\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( data ) {\n\t\t\t\t\tvar next = new $mol_tree({ data : data.substring( 1 ) , baseUri , row , col , length : data.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstack.push( parent )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn root\n\t\t}\n\t\t\n\t\t/**\n\t\t * Parses json.tree lang to AST.\n\t\t * @todo Move to $mol_tree_json_from\n\t\t */\n\t\tstatic fromJSON( json : any , baseUri = '' ) : $mol_tree {\n\n\t\t\tswitch( true ) {\n\n\t\t\t\tcase typeof json === 'boolean' :\n\t\t\t\tcase typeof json === 'number' :\n\t\t\t\tcase json === null :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : String( json ) ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tcase typeof json === 'string' :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\n\t\t\t\tcase Array.isArray( json ) :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"/\" ,\n\t\t\t\t\t\tsub : ( json as any[] ).map( json => $mol_tree.fromJSON( json , baseUri ) )\n\t\t\t\t\t})\n\n\t\t\t\tcase json instanceof Date :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json.toISOString() ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tdefault :\n\n\t\t\t\t\tif( typeof json[ $mol_tree_convert ] === 'function' ) {\n\t\t\t\t\t\treturn json[ $mol_tree_convert ]()\n\t\t\t\t\t}\n\n\t\t\t\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\t\t\t\treturn $mol_tree.fromJSON( json.toJSON() )\n\t\t\t\t\t}\n\n\t\t\t\t\tif( json instanceof Error ) {\n\t\t\t\t\t\tconst { name , message , stack } = json\n\t\t\t\t\t\tjson = { ... json , name , message , stack }\n\t\t\t\t\t}\n\n\t\t\t\t\tvar sub : $mol_tree[] = []\n\t\t\t\t\t\n\t\t\t\t\tfor( var key in json ) {\n\n\t\t\t\t\t\tif( json[ key ] === undefined ) continue\n\n\t\t\t\t\t\tconst subsub = $mol_tree.fromJSON( json[ key ] , baseUri )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\ttype : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\tvalue : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsub.push( child )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"*\" ,\n\t\t\t\t\t\tsub : sub ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tget uri() {\n\t\t\treturn this.baseUri + '#' + this.row + ':' + this.col\n\t\t}\n\t\t\n\t\t/** Serializas to tree format. */\n\t\ttoString( prefix = '' ) : string {\n\t\t\tvar output = ''\n\t\t\t\n\t\t\tif( this.type.length ) {\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\t\t\t\toutput += this.type\n\t\t\t\tif( this.sub.length == 1 ) {\n\t\t\t\t\treturn output + ' ' + this.sub[ 0 ].toString( prefix )\n\t\t\t\t}\n\t\t\t\toutput += \"\\n\"\n\t\t\t} else if( this.data.length || prefix.length ) {\n\t\t\t\toutput += \"\\\\\" + this.data + \"\\n\"\n\t\t\t}\n\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\toutput += prefix\n\t\t\t\toutput += child.toString( prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t\treturn output\n\t\t}\n\t\t\n\t\t/**\n\t\t * Serializes AST to json.tree lang.\n\t\t * @todo Move to $mol_tree_json_to\n\t\t */\n\t\ttoJSON() : any {\n\t\t\tif( !this.type ) return this.value\n\t\t\t\n\t\t\tif( this.type === 'true' ) return true\n\t\t\tif( this.type === 'false' ) return false\n\t\t\tif( this.type === 'null' ) return null\n\t\t\t\n\t\t\tif( this.type === '*' ) {\n\t\t\t\tvar obj = {}\n\t\t\t\tfor( var child of this.sub ) {\n\t\t\t\t\tif( child.type === '-' ) continue\n\t\t\t\t\tvar key = child.type || child.clone({ sub : child.sub.slice( 0 , child.sub.length - 1 ) }).value\n\t\t\t\t\tvar val = child.sub[ child.sub.length - 1 ].toJSON()\n\t\t\t\t\tif( val !== undefined ) ( obj as any )[ key ] = val\n\t\t\t\t}\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === '/' ) {\n\t\t\t\tvar res : any[] = []\n\t\t\t\tthis.sub.forEach(\n\t\t\t\t\tchild => {\n\t\t\t\t\t\tif( child.type === '-' ) return\n\t\t\t\t\t\tvar val = child.toJSON()\n\t\t\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === 'time' ) {\n\t\t\t\treturn new Date( this.value )\n\t\t\t}\n\t\t\t\n\t\t\tconst numb = Number( this.type ) \n\t\t\tif( !Number.isNaN( numb ) || this.type === 'NaN' ) return numb\n\t\t\t\n\t\t\tthrow new Error( `Unknown type (${this.type}) at ${this.uri}` )\n\t\t}\n\t\t\n\t\tget value() {\n\t\t\tvar values : string[] = []\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\tif( child.type ) continue\n\t\t\t\tvalues.push( child.value )\n\t\t\t}\n\t\t\treturn this.data + values.join( \"\\n\" )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree , ...path : $mol_tree_path ) : $mol_tree {\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.sub.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( !replaced ) sub.push( new $mol_tree({ type }).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || new $mol_tree ).insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub : ( ( this.sub.length === 0 ) ? [ new $mol_tree() ] : this.sub ).map( item => item.insert( value , ... path.slice( 1 ) ) ) })\n\n\t\t\t}\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree_path ) {\n\t\t\tvar next = [ this as $mol_tree ]\n\t\t\tfor( var type of path ) {\n\t\t\t\tif( !next.length ) break\n\t\t\t\tvar prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\t\t\t\t\t\t\tfor( var child of item.sub ) {\n\t\t\t\t\t\t\t\tif( !type || ( child.type == type ) ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\t\t\t\t\t\t\tif( type < item.sub.length ) next.push( item.sub[ type ] )\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.sub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new $mol_tree( { sub : next } )\n\t\t}\n\t\t\n\t\t/** Filter subnodes by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\t\t\tvar sub = this.sub.filter(\n\t\t\t\tfunction( item ) {\n\t\t\t\t\t\n\t\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\t\n\t\t\t\t\tif( value == null ) {\n\t\t\t\t\t\treturn Boolean( found.sub.length )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn found.sub.some( child => child.value == value )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn new $mol_tree( { sub : sub } )\n\t\t}\n\n\t\t@ $mol_deprecated( 'Use $mol_tree:hack' )\n\t\ttransform( visit : ( stack : $mol_tree[] , sub : ()=> $mol_tree[] )=> $mol_tree | null , stack : $mol_tree[] = [] ) : $mol_tree | null {\n\t\t\tconst sub_stack = [ this , ...stack ]\n\t\t\treturn visit( sub_stack , ()=> this.sub.map( node => node.transform( visit , sub_stack ) ).filter( n => n ) as $mol_tree[] )\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack( context : $mol_tree_context ) : $mol_tree {\n\t\t\t\n\t\t\tconst sub = ( [] as $mol_tree[] ).concat( ... this.sub.map( child => {\n\n\t\t\t\tconst handle = context[ child.type ] || context[ '' ]\n\t\t\t\tif( !handle ) $mol_fail( child.error( 'Handler not defined' ) )\n\t\t\t\t\n\t\t\t\treturn handle( child , context )\n\n\t\t\t} ) )\n\n\t\t\treturn this.clone({ sub })\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string ) {\n\t\t\treturn new Error( `${message}:\\n${ this } ${this.baseUri}:${this.row}:${this.col}` )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn this[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\tthis[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\tthis[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >( key : string , next? : Value , force? : $mol_mem_force ) : Value | null {\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) this.native().removeItem( key )\n\t\t\telse this.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tself.addEventListener( 'storage' , event => {\n\t\tif( !event.key ) return // @TODO clear support\n\t\t$.$mol_state_local.value( event.key , undefined , $mol_mem_force_cache )\n\t} )\n\n}\n","// @ts-ignore\nvar $node = $node || {}\n","namespace $ {\n\tconst TextEncoder = globalThis.TextEncoder ?? $node.util.TextEncoder\n\n\tconst encoder = new TextEncoder()\n\n\texport function $mol_charset_encode(value: string) {\n\t\treturn encoder.encode(value)\n\t}\n\n}\n","namespace $ {\n\tconst TextDecoder = globalThis.TextDecoder ?? $node.util.TextDecoder\n\n\t// @see https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/encoding\n\texport type $mol_charset_encoding = 'utf8' | 'ibm866' | 'iso-8859-2' | 'iso-8859-3' | 'iso-8859-4' | 'iso-8859-5' | 'iso-8859-6'\n\t\t| 'iso-8859-7' | 'iso-8859-8' | 'iso-8859-8i' | 'iso-8859-10' | 'iso-8859-13' | 'iso-8859-14' | 'iso-8859-15' | 'iso-8859-16'\n\t\t| 'koi8-r' | 'koi8-u' | 'koi8-r' | 'macintosh' | 'windows-874' | 'windows-1250' | 'windows-1251' | 'windows-1252' | 'windows-1253'\n\t\t| 'windows-1254'| 'windows-1255'| 'windows-1256'| 'windows-1257'| 'windows-1258' | 'x-mac-cyrillic' | 'gbk'\n\t\t| 'gb18030' | 'hz-gb-2312' | 'big5' | 'euc-jp' | 'iso-2022-jp' | 'shift-jis' | 'euc-kr' | 'iso-2022-kr'\n\n\texport function $mol_charset_decode(value: Uint8Array, code: $mol_charset_encoding = 'utf8') {\n\t\treturn new TextDecoder(code).decode(value)\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file_not_found extends Error {}\n\n\texport abstract class $mol_file extends $mol_object {\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute( path : string ): $mol_file {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\n\t\tstatic relative( path : string ) : $mol_file {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\tabstract stat( next? : $mol_file_stat, force? : $mol_mem_force ): $mol_file_stat\n\n\t\treset(): void {\n\t\t\ttry {\n\t\t\t\tthis.stat(undefined, $mol_mem_force_cache)\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof $mol_file_not_found) return\n\t\t\t\treturn $mol_fail_hidden(error)\n\t\t\t}\n\t\t}\n\t\t\n\t\tversion() {\n\t\t\treturn this.stat().mtime.getTime().toString( 36 ).toUpperCase()\n\t\t}\n\n\t\tabstract ensure(next?: boolean): boolean\n\n\t\twatcher() {\n\t\t\tconsole.warn('$mol_file_web.watcher() not implemented')\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean , force? : $mol_mem_force ) {\n\n\t\t\tlet exists = true\n\t\t\ttry {\n\t\t\t\tthis.stat()\n\t\t\t} catch (error) {\n\n\t\t\t\tif (error instanceof $mol_file_not_found) {\n\t\t\t\t\texists = false\n\t\t\t\t} else {\n\t\t\t\t\treturn $mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) this.parent().exists( true )\n\t\t\tthis.ensure(next)\n\t\t\tthis.reset()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\ttype() {\n\t\t\treturn this.stat().type\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\tabstract buffer( next? : Uint8Array , force? : $mol_mem_force ): Uint8Array\n\n\t\t@ $mol_mem\n\t\ttext(next?: string, force?: $mol_mem_force) {\n\t\t\tconst buffer = next === undefined ? undefined : $mol_charset_encode( next )\n\t\t\treturn $mol_charset_decode( this.buffer( buffer, force ) )\n\t\t}\n\n\t\tfail(error: Error) {\n\t\t\tthis.buffer(error as any, $mol_mem_force_fail)\n\t\t\tthis.stat(error as any, $mol_mem_force_fail)\n\t\t}\n\n\t\tbuffer_cached(buffer: Uint8Array) {\n\t\t\tconst ctime = new Date()\n\t\t\tconst stat: $mol_file_stat = {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize: buffer.length,\n\t\t\t\tctime,\n\t\t\t\tatime: ctime,\n\t\t\t\tmtime: ctime\n\t\t\t}\n\n\t\t\tthis.buffer(buffer, $mol_mem_force_cache)\n\t\t\tthis.stat(stat , $mol_mem_force_cache)\n\t\t}\n\n\t\ttext_cached(content: string) {\n\t\t\tthis.buffer_cached($mol_charset_encode(content))\n\t\t}\n\t\t\n\t\tabstract sub(): $mol_file[]\n\n\t\tabstract resolve(path: string): $mol_file\n\n\t\tabstract relate( base?: $mol_file ): string\n\t\t\n\t\tabstract append( next : Uint8Array | string ): void\n\t\t\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as $mol_file[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat().size\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport function $mol_dom_parse(\n\t\ttext : string ,\n\t\ttype : DOMParserSupportedType = 'application/xhtml+xml' ,\n\t) {\n\n\t\tconst parser = new $mol_dom_context.DOMParser()\n\t\tconst doc = parser.parseFromString( text , type )\n\t\t\n\t\tconst error = doc.getElementsByTagName( 'parsererror' )[0]\n\t\tif( error ) throw new Error( error.textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_fetch_response extends $mol_object2 {\n\n\t\tconstructor( readonly native : Response ) {\n\t\t\tsuper()\n\t\t}\n\n\t\theaders() {\n\t\t\treturn this.native.headers\n\t\t}\n\n\t\tmime() {\n\t\t\treturn this.headers().get( 'content-type' )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstream() {\n\t\t\treturn this.native.body\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\ttext() {\n\n\t\t\tconst buffer = this.buffer()\n\n\t\t\tconst native = this.native\n\t\t\tconst mime = native.headers.get( 'content-type' ) || ''\n\t\t\tconst [,charset] = /charset=(.*)/.exec( mime ) || [, 'utf-8']\n\t\t\t\n\t\t\tconst decoder = new TextDecoder( charset )\n\t\t\treturn decoder.decode( buffer )\n\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tjson() {\n\t\t\tconst response = this.native\n\t\t\tconst parse = $mol_fiber_sync( response.json )\n\t\t\treturn parse.call( response ) as unknown\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tbuffer() {\n\t\t\tconst response = this.native\n\t\t\tconst parse = $mol_fiber_sync( response.arrayBuffer )\n\t\t\treturn parse.call( response ) as ArrayBuffer\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\txml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'application/xml' )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\txhtml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'application/xhtml+xml' )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\thtml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'text/html' )\n\t\t}\n\n\t}\n\n\texport class $mol_fetch extends $mol_object2 {\n\t\t\n\t\tstatic request = $mol_fiber_sync( ( input : RequestInfo , init : RequestInit = {} )=> {\n\t\t\t\n\t\t\tif( typeof AbortController === 'function' ) {\n\t\t\t\tvar controller = new AbortController()\n\t\t\t\tinit.signal = controller.signal\n\t\t\t\tconst fiber = $mol_fiber.current!\n\t\t\t\tfiber.abort = ()=> {\n\t\t\t\t\tif( fiber.cursor === $mol_fiber_status.actual ) return true\n\t\t\t\t\tcontroller.abort()\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet native = $mol_dom_context.fetch\n\t\t\tif( !native ) native = $node['node-fetch']\n\t\t\n\t\t\treturn native( input , init )\n\n\t\t} )\n\n\t\t@ $mol_fiber.method\n\t\tstatic response( input: RequestInfo, init?: RequestInit ) {\n\n\t\t\tconst response = this.request( input , init )\n\t\t\tif( Math.floor( response.status / 100 ) === 2 ) return new $mol_fetch_response( response )\n\t\t\t\n\t\t\tthrow new Error( response.statusText || `HTTP Error ${ response.status }` )\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic stream( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).stream()\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic text( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).text()\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tstatic json( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).json()\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tstatic buffer( input: RequestInfo, init?: RequestInit ) {\n\t\t\tthis.response( input , init ).buffer()\n\t\t}\t\n\n\t\t@ $mol_fiber.method\n\t\tstatic xml( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).xml()\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic xhtml( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).xhtml()\n\t\t}\n\n\t\t@ $mol_fiber.method\n\t\tstatic html( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.response( input , init ).html()\n\t\t}\n\n\t}\n\n}\n\n","namespace $ {\n\t\n\texport class $mol_file_web extends $mol_file {\n\n\t\t@ $mol_mem_key\n\t\tstatic absolute( path : string ) {\n\t\t\treturn this.make({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t})\n\t\t}\n\n\t\tstatic relative( path : string ) {\n\t\t\treturn this.absolute( new URL( path , this.base ).toString() )\n\t\t}\n\n\t\tstatic base = $mol_dom_context.document\n\t\t\t? new URL( '.' , $mol_dom_context.document.currentScript!['src'] ).toString()\n\t\t\t: ''\n\t\t\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array , force? : $mol_mem_force ) {\n\t\t\tif (next !== undefined) throw new Error(`Saving content not supported: ${this.path}`)\n\n\t\t\tconst response = $mol_fetch.response(this.path())\n\t\t\tif (response.native.status === 404) throw new $mol_file_not_found(`File not found: ${this.path()}`)\n\n\t\t\treturn new Uint8Array(response.buffer())\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstat( next? : $mol_file_stat, force? : $mol_mem_force ) {\n\t\t\tlet stat = next\n\t\t\tif (next === undefined) {\n\t\t\t\tconst content = this.text()\n\t\t\t\t// @todo взять дату из хедеров фетча, когда file.web будет переписан на webdav\n\t\t\t\tconst ctime = new Date()\n\t\t\t\tstat = {\n\t\t\t\t\ttype: 'file',\n\t\t\t\t\tsize: content.length,\n\t\t\t\t\tctime,\n\t\t\t\t\tatime: ctime,\n\t\t\t\t\tmtime: ctime\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.parent().watcher()\n\t\t\t\n\t\t\treturn stat!\n\t\t}\n\n\t\tresolve( path : string ) {\n\t\t\tlet res = this.path() + '/' + path\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\tlet prev = res\n\t\t\t\tres = res.replace( /\\/[^\\/.]+\\/\\.\\.\\// , '/' )\n\t\t\t\tif( prev === res ) break\n\t\t\t}\n\t\t\t\n\t\t\treturn ( this.constructor as typeof $mol_file_web ).absolute( res )\n\t\t}\n\n\t\tensure(next?: boolean): boolean {\n\t\t\tthrow new Error('$mol_file_web.ensure() not implemented')\n\t\t} \n\n\t\t@ $mol_mem\n\t\tsub() : $mol_file[] {\n\t\t\tthrow new Error('$mol_file_web.sub() not implemented')\n\t\t}\n\t\t\n\t\trelate( base = ( this.constructor as typeof $mol_file ).relative( '.' )): string {\n\t\t\tthrow new Error('$mol_file_web.relate() not implemented')\n\t\t}\n\t\t\n\t\tappend( next : Uint8Array | string ) {\n\t\t\tthrow new Error('$mol_file_web.append() not implemented')\n\t\t}\n\t}\n\n\t$.$mol_file = $mol_file_web\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\texport class $mol_locale extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang_default() {\n\t\t\treturn 'en'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang( next? : string ) {\n\t\t\treturn $mol_state_local.value( 'locale' , next ) || $mol_dom_context.navigator.language.replace( /-.*/ , '' ) || this.lang_default()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic source( lang : string ) {\n\t\t\treturn JSON.parse( $mol_file.relative( `web.locale=${ lang }.json` ).text().toString() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic texts( lang : string , next? : $mol_locale_dict ) : $mol_locale_dict {\n\t\t\tif( next ) return next\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn this.source( lang ).valueOf()\n\t\t\t} catch( error ) {\n\t\t\t\tif( 'then' in error ) $mol_fail_hidden( error )\n\t\t\t\tconst def = this.lang_default()\n\t\t\t\tif( lang === def ) throw error\n\t\t\t\treturn this.source( def )\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ) {\n\n\t\t\tfor( let lang of [ this.lang() , 'en' ] ) {\n\t\t\t\t\n\t\t\t\tconst text = this.texts( lang )[ key ]\n\t\t\t\tif( text ) return text\n\n\t\t\t\tconsole.warn( `Not translated to \"${ lang }\": ${ key }` )\n\t\t\t}\n\t\t\t\t\t\t\n\t\t\treturn `<${ key }>`\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_view_tree_trim_remarks( def : $mol_tree ) {\n\t\treturn def.transform( ( [ node ] , sub )=> ( node.type === '-' ) ? null : node.clone({ sub : sub() }) )!\n\t}\n\n\texport function $mol_view_tree_classes( defs : $mol_tree ) {\n\t\treturn $mol_view_tree_trim_remarks( defs )\n\t}\n\n\texport function $mol_view_tree_class_name( val : $mol_tree ) {\n\t\treturn val.type\n\t}\n\n\texport function $mol_view_tree_super_name( val : $mol_tree ) {\n\t\tif( val.sub.length != 1 ) throw val.error( 'Wrong sub count' )\n\t\treturn val.sub[0].type\n\t}\n\n\texport function $mol_view_tree_class_props( def : $mol_tree ) {\n\t\tconst props : { [ key : string ] : $mol_tree } = {}\n\t\t\n\t\tconst catch_prop = ( prop : $mol_tree , type = '' )=> {\n\n\t\t\tlet def = prop\n\t\t\t\n\t\t\tif( type === '=>' ) {\n\t\t\t\tif( prop.sub[0] ) throw prop.error( 'Right binding can not have default value' )\n\t\t\t} else {\n\n\t\t\t\tif( prop.sub.length === 0 ) return\n\t\t\t\tif( prop.sub[0].type === '-' ) return\n\t\t\t\t\t\t\n\t\t\t\tprops[ prop.type ] = props[ prop.type ]\n\n\t\t\t\tdef = prop.clone({\n\t\t\t\t\tsub : [ prop.sub[0].transform( ( [ node , ... stack ] , sub )=> {\n\n\t\t\t\t\t\tif( [ '<=' , '<=>' , '=>' ].indexOf( node.type ) === -1 ) return node.clone({ sub : sub() })\n\t\t\t\t\t\t\n\t\t\t\t\t\tcatch_prop( node.sub[0] , node.type )\n\n\t\t\t\t\t\treturn node.clone({\n\t\t\t\t\t\t\tsub : [ node.sub[0].clone({\n\t\t\t\t\t\t\t\tsub : []\n\t\t\t\t\t\t\t}) ]\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\n\t\t\t\t\t} )!]\n\t\t\t\t})\n\n\t\t\t}\n\n\t\t\tif( props[ prop.type ] ) {\n\t\t\t\tif( props[ prop.type ].toString() !== def.toString() ) {\n\t\t\t\t\tthrow def.error( 'Property already defined with another default value' + props[ prop.type ].error('').message + '\\n---' )\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tprops[ prop.type ] = def\n\t\t\t}\n\t\t}\n\n\t\tdef.sub[0].sub.map( sub => catch_prop( sub ) )\n\t\t\n\t\treturn def.clone({\n\t\t\ttype : '' ,\n\t\t\tsub : Object.keys( props ).map( name => props[ name ] ) ,\n\t\t})\n\n\t}\n\n\texport function $mol_view_tree_prop_name( prop : $mol_tree ) {\n\t\treturn ( prop.type.match( /^\\w+/ ) || [] )[0] || ''\n\t}\n\n\texport function $mol_view_tree_prop_key( prop : $mol_tree ) {\n\t\treturn ( prop.type.match( /!(\\w+)$/ ) || [] )[1] || ''\n\t}\n\n\texport function $mol_view_tree_prop_next( prop : $mol_tree ) {\n\t\treturn ( prop.type.match( /\\?(\\w+)$/ ) || [] )[1] || ''\n\t}\n\n\texport function $mol_view_tree_prop_value( prop : $mol_tree ) {\n\t\tif( prop.sub.length != 1 ) throw prop.error( `Wrong sub count (${ prop.sub.length })` )\n\t\treturn prop.sub[0]\n\t}\n\n\texport function $mol_view_tree_value_type( val : $mol_tree ) {\n\t\t\n\t\tswitch( val.type ) {\n\t\t\tcase 'true' : return 'bool'\n\t\t\tcase 'false' : return 'bool'\n\t\t\tcase 'null' : return 'null'\n\t\t\tcase '*' : return 'dict'\n\t\t\tcase '@' : return 'locale'\n\t\t\tcase '' : return 'string'\n\t\t\tcase '<=' : return 'get'\n\t\t\tcase '<=>' : return 'bind'\n\t\t\tcase '=>' : return 'put'\n\t\t}\n\n\t\tswitch( val.type[0] ) {\n\t\t\tcase '/' : return 'list'\n\t\t\tcase '$' : return 'object'\n\t\t}\n\n\t\tif( Number( val.type ).toString() == val.type ) return 'number'\n\n\t\tthrow val.error( 'Wrong value' )\n\t}\n\n\texport function $mol_view_tree_compile( tree : $mol_tree) {\n\t\tconst splittedUri = tree.uri.split(/[#\\\\\\/]/);\n\t\tsplittedUri.pop();\n\t\tconst fileName = splittedUri.pop()!;\n\n\t\t// const SourceNode = $node['source-map'].SourceNode\n\t\t// type SourceNode = InstanceType< typeof SourceNode >\n\t\tconst SourceNode = ( row : number , col : number , fileName : string , text : string ) => text\n\t\ttype StringNodeArray = string[] //(string | SourceNode)[];\n\t\t\n\t\tvar content: StringNodeArray = []\n\t\tvar locales : { [ key : string ] : string } = {}\n\t\t\n\t\tfor( let def of $mol_view_tree_classes( tree ).sub ) {\n\t\t\tif( !/^\\$\\w+$/.test( def.type ) ) throw def.error( 'Wrong component name' )\n\t\t\t\n\t\t\tvar parent = def.sub[0]\n\t\t\t\n\t\t\t// var propDefs : { [ key : string ] : $mol_tree } = {}\n\t\t\tvar members : { [ key : string ] : StringNodeArray } = {}\n\t\t\t\n\t\t\tfor( let param of $mol_view_tree_class_props( def ).sub ) { try {\n\t\t\t\tvar needSet = false\n\t\t\t\tvar needCache = false\n\t\n\t\t\t\tif( param.type === '<=>' ) {\n\t\t\t\t\tparam = param.sub[0]\n\t\t\t\t}\n\t\n\t\t\t\tif( param.type === '<=' ) {\n\t\t\t\t\tparam = param.sub[0]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar propName = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( param.type )!\n\t\t\t\t\n\t\t\t\tif( propName[3] ) {\n\t\t\t\t\tneedSet = true\n\t\t\t\t\tneedCache = true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst getValue = ( value : $mol_tree , definition? : boolean ) : StringNodeArray | null=> { try {\n\t\t\t\t\tswitch( true ) {\n\t\t\t\t\t\tcase( value.type === '' ) :\n\t\t\t\t\t\t\treturn [JSON.stringify( value.value )]\n\t\t\t\t\t\tcase( value.type === '@' ) :\n\t\t\t\t\t\t\tconst key = `${ def.type }_${ param.type.replace( /[?!].*/ , '' ) }`\n\t\t\t\t\t\t\tlocales[ key ] = value.value\n\t\t\t\t\t\t\treturn [`this.$.$mol_locale.text( ${ JSON.stringify( key ) } )`]\n\t\t\t\t\t\tcase( value.type === '-' ) :\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\tcase( value.type[0] === '/' ) :\n\t\t\t\t\t\t\tconst item_type = value.type.substring( 1 )\n\t\t\t\t\t\t\tvar items : StringNodeArray = []\n\t\t\t\t\t\t\tvalue.sub.forEach( item => {\n\t\t\t\t\t\t\t\tif( item.type === '-' ) return\n\t\t\t\t\t\t\t\tif( item.type === '^' ) {\n\t\t\t\t\t\t\t\t\titems.push( `...super.${ param.type }()` )\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvar val = getValue( item )\n\t\t\t\t\t\t\t\tif( val ) items.push( val.join(\"\") )\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\treturn [`[`, items.join(' , '), `]` , ( item_type ? ` as readonly ( ${ item_type } )[]` : ` as readonly any[]` )]\n\t\t\t\t\t\tcase( value.type[0] === '$' ) :\n\t\t\t\t\t\t\tif( !definition ) throw value.error( 'Objects should be bound' )\n\t\t\t\t\t\t\tneedCache = true\n\t\t\t\t\t\t\tvar overs : StringNodeArray = []\n\t\t\t\t\t\t\tvalue.sub.forEach( over => {\n\t\t\t\t\t\t\t\tif( /^[-\\/]?$/.test( over.type ) ) return ''\n\t\t\t\t\t\t\t\tvar overName = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( over.type )!\n\t\t\t\t\t\t\t\tvar ns = needSet\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( over.sub[0].type === '=>' ) {\n\t\t\t\t\t\t\t\t\tif( over.sub[0].sub.length === 1 ) {\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tconst [ , own_name , own_key , own_next ] = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( over.sub[0].sub[0].type )!\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tlet own_args : string[] = []\n\t\t\t\t\t\t\t\t\t\tif( own_key ) own_args.push( ` ${own_key} : any ` )\n\t\t\t\t\t\t\t\t\t\tif( own_next ) own_args.push( ` ${own_next}? : any ` )\n\n\t\t\t\t\t\t\t\t\t\tlet [ , their_name , ... their_args ] = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( over.type )!\n\t\t\t\t\t\t\t\t\t\ttheir_args = their_args.filter( Boolean )\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tmembers[ own_name ] = [`\\t${ own_name }(${ own_args.join(',') }) {\\n\\t\\treturn this.${ propName[1] }(${ propName[2] || '' }).${ their_name }( ${ their_args.join(' , ') } )\\n\\t}\\n\\n`]\n\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar v = getValue( over.sub[0] )\n\t\t\t\t\t\t\t\tlet args : string[] = []\n\t\t\t\t\t\t\t\tif( overName[2] ) args.push( ` ${ overName[2] } : any ` )\n\t\t\t\t\t\t\t\tif( overName[3] ) args.push( ` ${ overName[3] }? : any ` )\n\t\t\t\t\t\t\t\tovers.push( ...['\\t\\t\\tobj.' , SourceNode(over.row, over.col, fileName, overName[1]), ' = (', args.join( ',' ), ') => ' , ...(v || []) , '\\n'] )\n\t\t\t\t\t\t\t\tneedSet = ns\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\tconst object_args = value.select( '/' , '' ).sub.map( arg => getValue( arg ) ).join( ' , ' ) as string\n\t\t\t\t\t\t\treturn ['(( obj )=>{\\n', ...overs, '\\t\\t\\treturn obj\\n\\t\\t})( new this.$.', SourceNode(value.row, value.col, fileName, value.type) , '( ' , object_args , ' ) )']\n\t\t\t\t\t\tcase( value.type === '*' ) :\n\t\t\t\t\t\t\tvar opts : StringNodeArray = []\n\t\t\t\t\t\t\tvalue.sub.forEach( opt => {\n\t\t\t\t\t\t\t\tif( opt.type === '-' ) return ''\n\t\t\t\t\t\t\t\tif( opt.type === '^' ) {\n\t\t\t\t\t\t\t\t\topts.push( `\\t\\t\\t...super.${ param.type }() ,\\n` )\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar key = /(.*?)(?:\\?(\\w+))?$/.exec( opt.type )!\n\t\t\t\t\t\t\t\tvar ns = needSet\n\t\t\t\t\t\t\t\tvar v = getValue( opt.sub[0] )\n\t\t\t\t\t\t\t\tvar arg = key[2] ? ` ( ${ key[2] }? : any )=> ` : ''\n\t\t\t\t\t\t\t\topts.push( ...['\\t\\t\\t\"', SourceNode(opt.row, opt.col, fileName, key[1]+ '\" : '), arg,' ', ...(v || []) , ' ,\\n'] )\n\t\t\t\t\t\t\t\tneedSet = ns\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\treturn ['({\\n', opts.join( '' ), '\\t\\t})']\n\t\t\t\t\t\tcase( value.type === '<=>' ) :\n\t\t\t\t\t\t\tif( value.sub.length === 1 ) {\n\t\t\t\t\t\t\t\tvar type = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))$/.exec( value.sub[0].type )!\n\t\t\t\t\t\t\t\treturn ['this.' + type[1] + '(' + ( type[2] ? type[2] + ' ,' : '' ) + ' ' + type[3] + ' )']\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tcase( value.type === '<=' ) :\n\t\t\t\t\t\t\tif( value.sub.length === 1 ) {\n\t\t\t\t\t\t\t\tvar type = /(.*?)(?:\\!(\\w+))?(?:\\?(\\w+))?$/.exec( value.sub[0].type )!\n\t\t\t\t\t\t\t\treturn ['this.' + type[1] + '(' + ( type[2] ? type[2] : '' ) + ')']\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tswitch( value.type ) {\n\t\t\t\t\t\tcase 'true' :\n\t\t\t\t\t\tcase 'false' :\n\t\t\t\t\t\t\treturn [value.type]\n\t\t\t\t\t\tcase 'null' :\n\t\t\t\t\t\t\treturn ['null as any']\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif( Number( value.type ).toString() == value.type ) return [value.type]\n\t\t\t\t\t\n\t\t\t\t\tthrow value.error( 'Wrong value' )\n\t\t\t\t} catch ( err ) {\n\t\t\t\t\t// err.message += `\\n${value.baseUri}:${value.row}:${value.col}\\n${ value }`\n\t\t\t\t\tthrow err\n\t\t\t\t} }\n\t\t\t\t\n\t\t\t\tif( param.sub.length > 1 ) throw new Error( 'Too more sub' )\n\t\t\t\tparam.sub.forEach( child => {\n\t\t\t\t\tvar val = getValue( child , true )\n\t\t\t\t\tif( !val ) return\n\t\t\t\t\t\n\t\t\t\t\t// propDefs[ propName[1] ] = param\n\t\t\t\t\t\n\t\t\t\t\tvar args : string[] = []\n\t\t\t\t\tif( propName[2] ) args.push( ` ${ propName[2] } : any ` )\n\t\t\t\t\tif( propName[3] ) args.push( ` ${ propName[3] }? : any , force? : $${''}mol_mem_force ` )\n\n\t\t\t\t\tif( needSet ) val = [\n\t\t\t\t\t\t`( ${ propName[3] } !== void 0 ) ? ${ propName[3] } : `,\n\t\t\t\t\t\t...val\n\t\t\t\t\t]\n\t\t\t\t\tval = ['return ', ...val]\n\n\t\t\t\t\tvar decl: StringNodeArray = ['\\t', SourceNode(param.row, param.col, fileName, propName[1]),'(', args.join(',') , ') {\\n\\t\\t' , ...val , '\\n\\t}\\n\\n']\n\t\t\t\t\tif( needCache ) {\n\t\t\t\t\t\tif( propName[2] ) decl = ['\\t@ $' , 'mol_mem_key\\n', ...decl]\n\t\t\t\t\t\telse decl = ['\\t@ $', 'mol_mem\\n', ...decl]\n\t\t\t\t\t}\n\t\t\t\t\tdecl = ['\\t/**\\n\\t * ```\\n', param.toString().trim().replace( /^/mg , '\\t * ' ), '\\n\\t * ```\\n\\t **/\\n' , ...decl]\n\t\t\t\t\tmembers[ propName[1] ] = decl\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch ( err ) {\n\t\t\t\t// err.message += `\\n${param.baseUri}:${param.row}:${param.col}\\n${ param }`\n\t\t\t\tthrow err\n\t\t\t} }\n\n\t\t\tvar body = Object.keys( members ).reduce( function( acc, name ) {\n\t\t\t\tconst items = members[ name ] ? members[name] : ['\\t' , name ,'() { return null as any }\\n\\t}\\n']\n\t\t\t\treturn [...acc, ...items]\n\t\t\t}, [] as StringNodeArray)\n\t\t\tvar classes: StringNodeArray = [ 'namespace $ { export class ', SourceNode(def.row, def.col, fileName, def.type ), ' extends ', SourceNode(parent.row, parent.col, fileName, parent.type), ' {\\n\\n', ...body, '} }\\n'] \n\t\t\t\n\t\t\tcontent = [...content, ...classes]\n\t\t}\n\n\t\treturn { script : content.join('') , locales }\n\n\t\t// splittedUri.push(`-view.tree`,`${ fileName }.map`)\n\n\t\t// const node = SourceNode(null as any, null as any, fileName, content as any);\n\t\t// node.add(`//@ sourceMappingURL=${splittedUri.join($node.path.sep)}`);\n\t\t// const codeWithSourceMap= node.toStringWithSourceMap();\n\t\t// return { script : codeWithSourceMap.code, locales : locales, map: codeWithSourceMap.map.toString() }\n\t}\n\n}\n"]} \ No newline at end of file diff --git a/mol/web.test.js b/mol/web.test.js new file mode 100644 index 00000000..100d8c84 --- /dev/null +++ b/mol/web.test.js @@ -0,0 +1,2566 @@ +function require( path ){ return $node[ path ] }; +"use strict"; +var $; +(function ($_1) { + let $$; + (function ($$) { + let $; + })($$ = $_1.$$ || ($_1.$$ = {})); + function $mol_test(set) { + for (let name in set) { + const code = set[name]; + const test = (typeof code === 'string') ? new Function('', code) : code; + $_1.$mol_test_all.push(test); + } + $mol_test_schedule(); + } + $_1.$mol_test = $mol_test; + $_1.$mol_test_mocks = []; + $_1.$mol_test_all = []; + async function $mol_test_run() { + for (var test of $_1.$mol_test_all) { + let context = Object.create($$); + for (let mock of $_1.$mol_test_mocks) + await mock(context); + await test(context); + } + $_1.$mol_ambient({}).$mol_log3_done({ + place: '$mol_test', + message: 'Completed', + count: $_1.$mol_test_all.length, + }); + } + $_1.$mol_test_run = $mol_test_run; + let scheduled = false; + function $mol_test_schedule() { + if (scheduled) + return; + scheduled = true; + setTimeout(() => { + scheduled = false; + $mol_test_run(); + }, 0); + } + $_1.$mol_test_schedule = $mol_test_schedule; + $_1.$mol_test_mocks.push(context => { + let seed = 0; + context.Math = Object.create(Math); + context.Math.random = () => Math.sin(seed++); + const forbidden = ['XMLHttpRequest', 'fetch']; + for (let api of forbidden) { + context[api] = new Proxy(function () { }, { + get() { + $_1.$mol_fail_hidden(new Error(`${api} is forbidden in tests`)); + }, + apply() { + $_1.$mol_fail_hidden(new Error(`${api} is forbidden in tests`)); + }, + }); + } + }); + $mol_test({ + 'mocked Math.random'($) { + console.assert($.Math.random() === 0); + console.assert($.Math.random() === Math.sin(1)); + }, + 'forbidden XMLHttpRequest'($) { + try { + console.assert(void new $.XMLHttpRequest); + } + catch (error) { + console.assert(error.message === 'XMLHttpRequest is forbidden in tests'); + } + }, + 'forbidden fetch'($) { + try { + console.assert(void $.fetch('')); + } + catch (error) { + console.assert(error.message === 'fetch is forbidden in tests'); + } + }, + }); +})($ || ($ = {})); +//test.test.js.map +; +"use strict"; +//assert.test.js.map +; +"use strict"; +//assert.js.map +; +"use strict"; +//deep.test.js.map +; +"use strict"; +//deep.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'Make empty div'() { + $.$mol_assert_equal(($.$mol_jsx("div", null)).outerHTML, '
'); + }, + 'Define native field'() { + const dom = $.$mol_jsx("input", { value: '123' }); + $.$mol_assert_equal(dom.outerHTML, ''); + $.$mol_assert_equal(dom.value, '123'); + }, + 'Define classes'() { + const dom = $.$mol_jsx("div", { classList: ['foo bar'] }); + $.$mol_assert_equal(dom.outerHTML, '
'); + }, + 'Define styles'() { + const dom = $.$mol_jsx("div", { style: { color: 'red' } }); + $.$mol_assert_equal(dom.outerHTML, '
'); + }, + 'Define dataset'() { + const dom = $.$mol_jsx("div", { dataset: { foo: 'bar' } }); + $.$mol_assert_equal(dom.outerHTML, '
'); + }, + 'Define attributes'() { + const dom = $.$mol_jsx("div", { lang: "ru", hidden: true }); + $.$mol_assert_equal(dom.outerHTML, ''); + }, + 'Define child nodes'() { + const dom = $.$mol_jsx("div", null, + "hello", + $.$mol_jsx("strong", null, "world"), + "!"); + $.$mol_assert_equal(dom.outerHTML, '
helloworld!
'); + }, + 'Function as component'() { + const Button = ({ hint }, target) => { + return $.$mol_jsx("button", { title: hint }, target()); + }; + const dom = $.$mol_jsx(Button, { id: "/foo", hint: "click me" }, () => 'hey!'); + $.$mol_assert_equal(dom.outerHTML, ''); + }, + 'Nested guid generation'() { + const Foo = () => { + return $.$mol_jsx("div", null, + $.$mol_jsx(Bar, { id: "/bar" }, + $.$mol_jsx("img", { id: "/icon" }))); + }; + const Bar = (props, icon) => { + return $.$mol_jsx("span", null, icon); + }; + const dom = $.$mol_jsx(Foo, { id: "/foo" }); + $.$mol_assert_equal(dom.outerHTML, '
'); + }, + 'Fail on non unique ids'() { + const App = () => { + return $.$mol_jsx("div", null, + $.$mol_jsx("span", { id: "/bar" }), + $.$mol_jsx("span", { id: "/bar" })); + }; + $.$mol_assert_fail(() => $.$mol_jsx(App, { id: "/foo" }), 'JSX already has tag with id "/bar"'); + }, + }); +})($ || ($ = {})); +//jsx.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_jsx_prefix = ''; + $.$mol_jsx_booked = null; + $.$mol_jsx_document = { + getElementById: () => null, + createElement: (name) => $.$mol_dom_context.document.createElement(name) + }; + function $mol_jsx(Elem, props, ...childNodes) { + const id = props && props.id || ''; + if ($.$mol_jsx_booked) { + if ($.$mol_jsx_booked.has(id)) { + $.$mol_fail(new Error(`JSX already has tag with id ${JSON.stringify(id)}`)); + } + else { + $.$mol_jsx_booked.add(id); + } + } + const guid = $.$mol_jsx_prefix + id; + let node = guid && $.$mol_jsx_document.getElementById(guid); + if (typeof Elem !== 'string') { + if (Elem.prototype) { + const view = node && node[Elem] || new Elem; + Object.assign(view, props); + view[Symbol.toStringTag] = guid; + view.childNodes = childNodes; + if (!view.ownerDocument) + view.ownerDocument = $.$mol_jsx_document; + node = view.valueOf(); + node[Elem] = view; + return node; + } + else { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + try { + $.$mol_jsx_prefix = guid; + $.$mol_jsx_booked = new Set; + return Elem(props, ...childNodes); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + } + } + } + if (!node) + node = $.$mol_jsx_document.createElement(Elem); + $.$mol_dom_render_children(node, [].concat(...childNodes)); + for (const key in props) { + if (typeof props[key] === 'string') { + node.setAttribute(key, props[key]); + } + else if (props[key] && props[key]['constructor'] === Object) { + if (typeof node[key] === 'object') { + Object.assign(node[key], props[key]); + continue; + } + } + node[key] = props[key]; + } + if (guid) + node.id = guid; + return node; + } + $.$mol_jsx = $mol_jsx; +})($ || ($ = {})); +//jsx.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'nulls & undefineds'() { + $.$mol_assert_ok($.$mol_compare_deep(null, null)); + $.$mol_assert_ok($.$mol_compare_deep(undefined, undefined)); + $.$mol_assert_not($.$mol_compare_deep(undefined, null)); + $.$mol_assert_not($.$mol_compare_deep({}, null)); + }, + 'number'() { + $.$mol_assert_ok($.$mol_compare_deep(1, 1)); + $.$mol_assert_ok($.$mol_compare_deep(Number.NaN, Number.NaN)); + $.$mol_assert_not($.$mol_compare_deep(1, 2)); + }, + 'Number'() { + $.$mol_assert_ok($.$mol_compare_deep(Object(1), Object(1))); + $.$mol_assert_ok($.$mol_compare_deep(Object(Number.NaN), Object(Number.NaN))); + $.$mol_assert_not($.$mol_compare_deep(Object(1), Object(2))); + }, + 'empty POJOs'() { + $.$mol_assert_ok($.$mol_compare_deep({}, {})); + }, + 'different POJOs'() { + $.$mol_assert_not($.$mol_compare_deep({ a: 1 }, { b: 2 })); + }, + 'different POJOs with same keys but different values'() { + $.$mol_assert_not($.$mol_compare_deep({ a: 1 }, { a: 2 })); + }, + 'different POJOs with different keys but same values'() { + $.$mol_assert_not($.$mol_compare_deep({}, { a: undefined })); + }, + 'Array'() { + $.$mol_assert_ok($.$mol_compare_deep([], [])); + $.$mol_assert_ok($.$mol_compare_deep([1, [2]], [1, [2]])); + $.$mol_assert_not($.$mol_compare_deep([1, 2], [1, 3])); + $.$mol_assert_not($.$mol_compare_deep([1, 2,], [1, 3, undefined])); + }, + 'same POJO trees'() { + $.$mol_assert_ok($.$mol_compare_deep({ a: { b: 1 } }, { a: { b: 1 } })); + }, + 'different classes with same values'() { + class Obj { + constructor() { + this.foo = 1; + } + } + const a = new Obj; + const b = new class extends Obj { + }; + $.$mol_assert_not($.$mol_compare_deep(a, b)); + }, + 'same POJOs with cyclic reference'() { + const a = { foo: {} }; + a['self'] = a; + const b = { foo: {} }; + b['self'] = b; + $.$mol_assert_ok($.$mol_compare_deep(a, b)); + }, + 'empty Element'() { + $.$mol_assert_ok($.$mol_compare_deep($.$mol_jsx("div", null), $.$mol_jsx("div", null))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", null), $.$mol_jsx("span", null))); + }, + 'Element with attributes'() { + $.$mol_assert_ok($.$mol_compare_deep($.$mol_jsx("div", { dir: "rtl" }), $.$mol_jsx("div", { dir: "rtl" }))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", { dir: "rtl" }), $.$mol_jsx("div", null))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", { dir: "rtl" }), $.$mol_jsx("div", { dir: "ltr" }))); + }, + 'Element with styles'() { + $.$mol_assert_ok($.$mol_compare_deep($.$mol_jsx("div", { style: { color: 'red' } }), $.$mol_jsx("div", { style: { color: 'red' } }))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", { style: { color: 'red' } }), $.$mol_jsx("div", { style: {} }))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", { style: { color: 'red' } }), $.$mol_jsx("div", { style: { color: 'blue' } }))); + }, + 'Element with content'() { + $.$mol_assert_ok($.$mol_compare_deep($.$mol_jsx("div", null, + "foo", + $.$mol_jsx("br", null)), $.$mol_jsx("div", null, + "foo", + $.$mol_jsx("br", null)))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", null, + "foo", + $.$mol_jsx("br", null)), $.$mol_jsx("div", null, + "bar", + $.$mol_jsx("br", null)))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", null, + "foo", + $.$mol_jsx("br", null)), $.$mol_jsx("div", null, + "foo", + $.$mol_jsx("hr", null)))); + }, + 'Element with handlers'() { + $.$mol_assert_ok($.$mol_compare_deep($.$mol_jsx("div", { onclick: () => 1 }), $.$mol_jsx("div", { onclick: () => 1 }))); + $.$mol_assert_not($.$mol_compare_deep($.$mol_jsx("div", { onclick: () => 1 }), $.$mol_jsx("div", { onclick: () => 2 }))); + }, + 'Date'() { + $.$mol_assert_ok($.$mol_compare_deep(new Date(12345), new Date(12345))); + $.$mol_assert_not($.$mol_compare_deep(new Date(12345), new Date(12346))); + }, + 'RegExp'() { + $.$mol_assert_ok($.$mol_compare_deep(/\x22/mig, /\x22/mig)); + $.$mol_assert_not($.$mol_compare_deep(/\x22/mig, /\x21/mig)); + $.$mol_assert_not($.$mol_compare_deep(/\x22/mig, /\x22/mg)); + }, + 'Map'() { + $.$mol_assert_ok($.$mol_compare_deep(new Map, new Map)); + $.$mol_assert_ok($.$mol_compare_deep(new Map([[[1], [2]]]), new Map([[[1], [2]]]))); + $.$mol_assert_not($.$mol_compare_deep(new Map([[1, 2]]), new Map([[1, 3]]))); + }, + 'Set'() { + $.$mol_assert_ok($.$mol_compare_deep(new Set, new Set)); + $.$mol_assert_ok($.$mol_compare_deep(new Set([1, [2]]), new Set([1, [2]]))); + $.$mol_assert_not($.$mol_compare_deep(new Set([1]), new Set([2]))); + }, + 'Uint8Array'() { + $.$mol_assert_ok($.$mol_compare_deep(new Uint8Array, new Uint8Array)); + $.$mol_assert_ok($.$mol_compare_deep(new Uint8Array([0]), new Uint8Array([0]))); + $.$mol_assert_not($.$mol_compare_deep(new Uint8Array([0]), new Uint8Array([1]))); + }, + }); +})($ || ($ = {})); +//deep.test.js.map +; +"use strict"; +var $; +(function ($) { + const a_stack = []; + const b_stack = []; + let cache = null; + function $mol_compare_deep(a, b) { + if (Object.is(a, b)) + return true; + const a_type = typeof a; + const b_type = typeof b; + if (a_type !== b_type) + return false; + if (a_type === 'function') + return String(a) === String(b); + if (a_type !== 'object') + return false; + if (!a || !b) + return false; + if (a instanceof Error) + return false; + if (a['constructor'] !== b['constructor']) + return false; + if (a instanceof RegExp) + return Object.is(String(a), String(b)); + const ref = a_stack.indexOf(a); + if (ref >= 0) { + return Object.is(b_stack[ref], b); + } + if (!cache) + cache = new WeakMap; + let a_cache = cache.get(a); + if (a_cache) { + const b_cache = a_cache.get(b); + if (typeof b_cache === 'boolean') + return b_cache; + } + else { + a_cache = new WeakMap(); + cache.set(a, a_cache); + } + a_stack.push(a); + b_stack.push(b); + let result; + try { + if (a[Symbol.iterator]) { + const a_iter = a[Symbol.iterator](); + const b_iter = b[Symbol.iterator](); + while (true) { + const a_next = a_iter.next(); + const b_next = b_iter.next(); + if (a_next.done !== a_next.done) + return result = false; + if (a_next.done) + break; + if (!$mol_compare_deep(a_next.value, b_next.value)) + return result = false; + } + return result = true; + } + let count = 0; + for (let key in a) { + try { + if (!$mol_compare_deep(a[key], b[key])) + return result = false; + } + catch (error) { + $.$mol_fail_hidden(new $.$mol_error_mix(`Failed ${JSON.stringify(key)} fields comparison of ${a} and ${b}`, error)); + } + ++count; + } + for (let key in b) { + --count; + if (count < 0) + return result = false; + } + const a_val = a['valueOf'](); + if (Object.is(a_val, a)) + return result = true; + const b_val = b['valueOf'](); + if (!Object.is(a_val, b_val)) + return result = false; + return result = true; + } + finally { + a_stack.pop(); + b_stack.pop(); + if (a_stack.length === 0) { + cache = null; + } + else { + a_cache.set(b, result); + } + } + } + $.$mol_compare_deep = $mol_compare_deep; +})($ || ($ = {})); +//deep.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'must be false'() { + $.$mol_assert_not(0); + }, + 'must be true'() { + $.$mol_assert_ok(1); + }, + 'two must be equal'() { + $.$mol_assert_equal(2, 2); + }, + 'three must be equal'() { + $.$mol_assert_equal(2, 2, 2); + }, + 'two must be unique'() { + $.$mol_assert_unique([3], [3]); + }, + 'three must be unique'() { + $.$mol_assert_unique([3], [3], [3]); + }, + 'two must be alike'() { + $.$mol_assert_like([3], [3]); + }, + 'three must be alike'() { + $.$mol_assert_like([3], [3], [3]); + }, + }); +})($ || ($ = {})); +//assert.test.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_assert_ok(value) { + if (value) + return; + $.$mol_fail(new Error(`${value} ≠ true`)); + } + $.$mol_assert_ok = $mol_assert_ok; + function $mol_assert_not(value) { + if (!value) + return; + $.$mol_fail(new Error(`${value} ≠ false`)); + } + $.$mol_assert_not = $mol_assert_not; + function $mol_assert_fail(handler, ErrorRight) { + const fail = $.$mol_fail; + try { + $.$mol_fail = $.$mol_fail_hidden; + handler(); + } + catch (error) { + if (!ErrorRight) + return error; + if (typeof ErrorRight === 'string') { + if (error.message !== ErrorRight) + throw error; + } + else { + if (!(error instanceof ErrorRight)) + throw error; + } + return error; + } + finally { + $.$mol_fail = fail; + } + $.$mol_fail(new Error('Not failed')); + } + $.$mol_assert_fail = $mol_assert_fail; + function $mol_assert_equal(...args) { + for (let i = 0; i < args.length; ++i) { + for (let j = 0; j < args.length; ++j) { + if (i === j) + continue; + if (Number.isNaN(args[i]) && Number.isNaN(args[j])) + continue; + if (args[i] !== args[j]) + $.$mol_fail(new Error(`Not equal\n${args[i]}\n${args[j]}`)); + } + } + } + $.$mol_assert_equal = $mol_assert_equal; + function $mol_assert_unique(...args) { + for (let i = 0; i < args.length; ++i) { + for (let j = 0; j < args.length; ++j) { + if (i === j) + continue; + if (args[i] === args[j] || (Number.isNaN(args[i]) && Number.isNaN(args[j]))) { + $.$mol_fail(new Error(`args[${i}] = args[${j}] = ${args[i]}`)); + } + } + } + } + $.$mol_assert_unique = $mol_assert_unique; + function $mol_assert_like(head, ...tail) { + for (let value of tail) { + if ($.$mol_compare_deep(value, head)) { + head = value; + } + else { + const print = (val) => { + if (!val) + return val; + if (typeof val !== 'object') + return val; + if ('outerHTML' in val) + return val.outerHTML; + return JSON.stringify(val); + }; + return $.$mol_fail(new Error(`Not like\n${print(head)}\n---\n${print(value)}`)); + } + } + } + $.$mol_assert_like = $mol_assert_like; +})($ || ($ = {})); +//assert.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'get'() { + const proxy = $.$mol_delegate({}, () => ({ foo: 777 })); + $.$mol_assert_equal(proxy.foo, 777); + }, + 'has'() { + const proxy = $.$mol_delegate({}, () => ({ foo: 777 })); + $.$mol_assert_equal('foo' in proxy, true); + }, + 'set'() { + const target = { foo: 777 }; + const proxy = $.$mol_delegate({}, () => target); + proxy.foo = 123; + $.$mol_assert_equal(target.foo, 123); + }, + 'getOwnPropertyDescriptor'() { + const proxy = $.$mol_delegate({}, () => ({ foo: 777 })); + $.$mol_assert_like(Object.getOwnPropertyDescriptor(proxy, 'foo'), { + value: 777, + writable: true, + enumerable: true, + configurable: true, + }); + }, + 'ownKeys'() { + const proxy = $.$mol_delegate({}, () => ({ foo: 777, [Symbol.toStringTag]: 'bar' })); + $.$mol_assert_like(Reflect.ownKeys(proxy), ['foo', Symbol.toStringTag]); + }, + 'getPrototypeOf'() { + class Foo { + } + const proxy = $.$mol_delegate({}, () => new Foo); + $.$mol_assert_equal(Object.getPrototypeOf(proxy), Foo.prototype); + }, + 'setPrototypeOf'() { + class Foo { + } + const target = {}; + const proxy = $.$mol_delegate({}, () => target); + Object.setPrototypeOf(proxy, Foo.prototype); + $.$mol_assert_equal(Object.getPrototypeOf(target), Foo.prototype); + }, + 'instanceof'() { + class Foo { + } + const proxy = $.$mol_delegate({}, () => new Foo); + $.$mol_assert_ok(proxy instanceof Foo); + $.$mol_assert_ok(proxy instanceof $.$mol_delegate); + }, + 'autobind'() { + class Foo { + } + const proxy = $.$mol_delegate({}, () => new Foo); + $.$mol_assert_ok(proxy.valueOf() instanceof Foo); + $.$mol_assert_not(proxy.valueOf() instanceof $.$mol_delegate); + }, + }); +})($ || ($ = {})); +//delegate.test.js.map +; +"use strict"; +//writable.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_after_mock_queue = []; + function $mol_after_mock_warp() { + const queue = $.$mol_after_mock_queue.splice(0); + for (const task of queue) + task(); + } + $.$mol_after_mock_warp = $mol_after_mock_warp; + class $mol_after_mock_commmon extends $.$mol_object2 { + constructor(task) { + super(); + this.task = task; + this.promise = Promise.resolve(); + this.cancelled = false; + $.$mol_after_mock_queue.push(task); + } + destructor() { + const index = $.$mol_after_mock_queue.indexOf(this.task); + if (index >= 0) + $.$mol_after_mock_queue.splice(index, 1); + } + } + $.$mol_after_mock_commmon = $mol_after_mock_commmon; + class $mol_after_mock_timeout extends $mol_after_mock_commmon { + constructor(delay, task) { + super(task); + this.delay = delay; + } + } + $.$mol_after_mock_timeout = $mol_after_mock_timeout; +})($ || ($ = {})); +//mock.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test_mocks.push($ => { + $.$mol_after_tick = $_1.$mol_after_mock_commmon; + }); +})($ || ($ = {})); +//tick.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'init with overload'() { + class X extends $.$mol_object { + foo() { + return 1; + } + } + var x = X.make({ + foo: () => 2, + }); + $.$mol_assert_equal(x.foo(), 2); + }, + }); +})($ || ($ = {})); +//object.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test_mocks.push($ => { + $.$mol_log3_come = () => { }; + $.$mol_log3_done = () => { }; + $.$mol_log3_fail = () => { }; + $.$mol_log3_warn = () => { }; + $.$mol_log3_rise = () => { }; + $.$mol_log3_area = () => () => { }; + }); +})($ || ($ = {})); +//log3.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'run callback'() { + class Plus1 extends $.$mol_wrapper { + static wrap(task) { + return function (...args) { + return task.call(this, ...args) + 1; + }; + } + } + $.$mol_assert_equal(Plus1.run(() => 2), 3); + }, + 'wrap function'() { + class Plus1 extends $.$mol_wrapper { + static wrap(task) { + return function (...args) { + return task.call(this, ...args) + 1; + }; + } + } + const obj = { + level: 2, + pow: Plus1.func(function (a) { + return a ** this.level; + }) + }; + $.$mol_assert_equal(obj.pow(2), 5); + }, + 'decorate field getter'() { + class Plus1 extends $.$mol_wrapper { + static wrap(task) { + return function (...args) { + return Plus1.last = (task.call(this, ...args) || 0) + 1; + }; + } + } + Plus1.last = 0; + class Foo { + static get two() { + return 1; + } + static set two(next) { } + } + __decorate([ + Plus1.field + ], Foo, "two", null); + $.$mol_assert_equal(Foo.two, 2); + Foo.two = 3; + $.$mol_assert_equal(Plus1.last, 2); + $.$mol_assert_equal(Foo.two, 2); + }, + 'decorate instance method'() { + class Plus1 extends $.$mol_wrapper { + static wrap(task) { + return function (...args) { + return task.call(this, ...args) + 1; + }; + } + } + class Foo1 { + constructor() { + this.level = 2; + } + pow(a) { + return a ** this.level; + } + } + __decorate([ + Plus1.method + ], Foo1.prototype, "pow", null); + const Foo2 = Foo1; + const foo = new Foo2; + $.$mol_assert_equal(foo.pow(2), 5); + }, + 'decorate static method'() { + class Plus1 extends $.$mol_wrapper { + static wrap(task) { + return function (...args) { + return task.call(this, ...args) + 1; + }; + } + } + class Foo { + static pow(a) { + return a ** this.level; + } + } + Foo.level = 2; + __decorate([ + Plus1.method + ], Foo, "pow", null); + $.$mol_assert_equal(Foo.pow(2), 5); + }, + 'decorate class'() { + class BarInc extends $.$mol_wrapper { + static wrap(task) { + return function (...args) { + const foo = task.call(this, ...args); + foo.bar++; + return foo; + }; + } + } + let Foo = class Foo { + constructor(bar) { + this.bar = bar; + } + }; + Foo = __decorate([ + BarInc.class + ], Foo); + $.$mol_assert_equal(new Foo(2).bar, 3); + }, + }); +})($ || ($ = {})); +//wrapper.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test_mocks.push($ => { + $.$mol_after_frame = $_1.$mol_after_mock_commmon; + }); +})($ || ($ = {})); +//frame.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'objects by reference'() { + $.$mol_assert_equal($.$mol_compare_any({}, {}), false); + }, + 'primitives by value'() { + $.$mol_assert_equal($.$mol_compare_any('a', 'a'), true); + }, + 'NaN by value'() { + $.$mol_assert_equal($.$mol_compare_any(Number.NaN, Number.NaN), true); + }, + 'NaN not equal zero'() { + $.$mol_assert_equal($.$mol_compare_any(Number.NaN, 0), false); + }, + }); +})($ || ($ = {})); +//any.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'return source when same object'() { + const target = {}; + $.$mol_assert_equal($.$mol_conform(target, target), target); + }, + 'return target when some is not object'() { + const obj = { a: 1 }; + $.$mol_assert_equal($.$mol_conform(true, obj), true); + $.$mol_assert_equal($.$mol_conform(obj, true), obj); + }, + 'return target when some is null'() { + const obj = { a: 1 }; + $.$mol_assert_equal($.$mol_conform(null, obj), null); + $.$mol_assert_equal($.$mol_conform(obj, null), obj); + }, + 'return target when some is undefined'() { + const obj = { a: 1 }; + $.$mol_assert_equal($.$mol_conform(undefined, obj), undefined); + $.$mol_assert_equal($.$mol_conform(obj, undefined), obj); + }, + 'return target when different keys count'() { + const target = [1, 2, 3]; + const source = [1, 2, 3, undefined]; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, target); + $.$mol_assert_equal(result.join(','), '1,2,3'); + }, + 'return source when array values are strong equal'() { + const source = [1, 2, 3]; + $.$mol_assert_equal($.$mol_conform([1, 2, 3], source), source); + }, + 'return source when object values are strong equal'() { + const source = { a: 1, b: 2 }; + $.$mol_assert_equal($.$mol_conform({ a: 1, b: 2 }, source), source); + }, + 'return target when some values are not equal'() { + const target = [1, 2, 3]; + const source = [1, 2, 5]; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, target); + $.$mol_assert_equal(result.join(','), '1,2,3'); + }, + 'return source when values are deep equal'() { + const source = { foo: { bar: 1 } }; + $.$mol_assert_equal($.$mol_conform({ foo: { bar: 1 } }, source), source); + }, + 'return target with equal values from source and not equal from target'() { + const source = { foo: { xxx: 1 }, bar: { xxx: 2 } }; + const target = { foo: { xxx: 1 }, bar: { xxx: 3 } }; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, target); + $.$mol_assert_equal(result.foo, source.foo); + $.$mol_assert_equal(result.bar, target.bar); + }, + 'return target when equal but with different class'() { + const target = { '0': 1 }; + $.$mol_assert_equal($.$mol_conform(target, [1]), target); + }, + 'return target when conformer for class is not defined'() { + const Obj = class { + }; + const source = new Obj; + const target = new Obj; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, target); + }, + 'return target when has cyclic reference'() { + const source = { foo: {} }; + source['self'] = source; + const target = { foo: {} }; + target['self'] = target; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, target); + $.$mol_assert_equal(result['self'], target); + $.$mol_assert_equal(result.foo, source.foo); + }, + 'return source when equal dates'() { + const source = new Date(12345); + const target = new Date(12345); + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, source); + }, + 'return source when equal regular expressions'() { + const source = /\x22/mig; + const target = /\x22/mig; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, source); + }, + 'return cached value if already conformed'() { + const source = { foo: { xxx: 1 }, bar: { xxx: 3 } }; + const target = { foo: { xxx: 2 }, bar: { xxx: 3 } }; + const result = $.$mol_conform(target, source); + target.foo.xxx = 1; + $.$mol_assert_equal($.$mol_conform(target.foo, source.foo), target.foo); + }, + 'skip readlony fields'() { + const source = { foo: {}, bar: {} }; + const target = { foo: {}, bar: {} }; + Object.defineProperty(target, 'bar', { value: {}, writable: false }); + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, target); + $.$mol_assert_equal(result.foo, source.foo); + $.$mol_assert_equal(result.bar, target.bar); + }, + 'object with NaN'() { + const source = { foo: Number.NaN }; + const target = { foo: Number.NaN }; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, source); + }, + 'array with NaN'() { + const source = [Number.NaN]; + const target = [Number.NaN]; + const result = $.$mol_conform(target, source); + $.$mol_assert_equal(result, source); + }, + }); +})($ || ($ = {})); +//conform.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'trim array'() { + const array = [undefined, null, 0, false, null, undefined, undefined]; + const correct = [undefined, null, 0, false, null]; + $.$mol_array_trim(array); + $.$mol_assert_like(array, correct); + } + }); +})($ || ($ = {})); +//trim.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test_mocks.push(async ($) => { + await $_1.$mol_fiber_warp(); + $_1.$mol_fiber.deadline = Date.now() + 100; + }); + $_1.$mol_test({ + 'sync to async': async ($) => { + const sum = $_1.$mol_fiber_async((a, b) => a + b); + const res = await sum(1, 2); + $_1.$mol_assert_equal(res, 3); + }, + }); +})($ || ($ = {})); +//fiber.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + 'Value has js-path name'() { + class App extends $_1.$mol_object2 { + static get title() { return new $_1.$mol_object2; } + } + __decorate([ + $_1.$mol_atom2_field + ], App, "title", null); + $_1.$mol_assert_equal(`${App.title}`, 'App.title'); + }, + 'Simple property'() { + class App extends $_1.$mol_object2 { + } + App.value = 1; + __decorate([ + $_1.$mol_atom2_field + ], App, "value", void 0); + $_1.$mol_assert_equal(App.value, 1); + App.value = 2; + $_1.$mol_assert_equal(App.value, 2); + }, + 'Instant actualization'($) { + class Source extends $_1.$mol_object2 { + constructor() { + super(...arguments); + this.value = 1; + } + get $() { return $; } + destructor() { } + } + __decorate([ + $_1.$mol_atom2_field + ], Source.prototype, "value", void 0); + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get source() { return Source.create(); } + static get value() { return this.source.value + 1; } + } + __decorate([ + $_1.$mol_atom2_field + ], App, "source", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "value", null); + $_1.$mol_assert_equal(App.value, 2); + App.source.value = 2; + $_1.$mol_assert_equal(App.value, 3); + }, + 'Access to cached value'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get value() { return 1; } + } + __decorate([ + $_1.$mol_atom2_field + ], App, "value", null); + $_1.$mol_assert_equal($_1.$mol_atom2_value(() => App.value), undefined); + $_1.$mol_assert_equal(App.value, 1); + $_1.$mol_assert_equal($_1.$mol_atom2_value(() => App.value), 1); + }, + 'Do not recalc slaves on equal changes'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get result() { return this.first[0] + this.counter++; } + } + App.first = [1]; + App.counter = 0; + __decorate([ + $_1.$mol_atom2_field + ], App, "first", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_equal(App.result, 1); + App.first = [1]; + $_1.$mol_assert_equal(App.result, 1); + }, + 'Do not recalc grand slave on equal direct slave result '($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get second() { return Math.abs(this.first); } + static get result() { return this.second + ++this.counter; } + } + App.first = 1; + App.counter = 0; + __decorate([ + $_1.$mol_atom2_field + ], App, "first", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "second", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_equal(App.result, 2); + App.first = -1; + $_1.$mol_assert_equal(App.result, 2); + }, + 'Recalc when [not changed master] changes [following master]'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get second() { + this.third = this.first; + return 0; + } + static get result() { return this.second + this.third + ++this.counter; } + } + App.first = 1; + App.third = 0; + App.counter = 0; + __decorate([ + $_1.$mol_atom2_field + ], App, "first", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "second", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "third", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_equal(App.result, 2); + App.first = 5; + $_1.$mol_assert_equal(App.result, 7); + }, + 'Branch switching'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get second() { return 2; } + static get result() { + return (this.condition ? this.first : this.second) + this.counter++; + } + } + App.first = 1; + App.condition = true; + App.counter = 0; + __decorate([ + $_1.$mol_atom2_field + ], App, "first", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "second", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "condition", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_equal(App.result, 1); + App.condition = false; + $_1.$mol_assert_equal(App.result, 3); + App.first = 10; + $_1.$mol_assert_equal(App.result, 3); + }, + 'Forbidden self invalidation'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get second() { return this.first + 1; } + static get result() { + this.second; + return this.first++; + } + } + App.first = 1; + __decorate([ + $_1.$mol_atom2_field + ], App, "first", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "second", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_fail(() => App.result); + }, + 'Side effect inside computation'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static increase() { return ++this.first; } + static get result() { + return this.increase() + 1; + } + } + App.first = 1; + __decorate([ + $_1.$mol_atom2_field + ], App, "first", void 0); + __decorate([ + $_1.$mol_fiber.method + ], App, "increase", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_equal(App.result, 3); + }, + 'Forbidden cyclic dependency'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get first() { return this.second - 1; } + static get second() { return this.first + 1; } + } + __decorate([ + $_1.$mol_atom2_field + ], App, "first", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "second", null); + $_1.$mol_assert_fail(() => App.first); + }, + 'Forget sub fibers on complete'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static count() { return this.counter++; } + static get result() { return this.count() + this.data; } + } + App.counter = 0; + App.data = 1; + __decorate([ + $_1.$mol_fiber.method + ], App, "count", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "data", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_equal(App.result, 1); + App.data = 2; + $_1.$mol_assert_equal(App.result, 3); + }, + async 'Automatic destroy owned value on self destruction'($) { + let counter = 0; + class Having extends $_1.$mol_object2 { + destructor() { counter++; } + } + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get having() { return Having.create(); } + static get result() { + if (this.condition) + this.having; + return 0; + } + } + App.condition = true; + __decorate([ + $_1.$mol_atom2_field + ], App, "having", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "condition", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + App.result; + App.condition = false; + App.result; + $_1.$mol_assert_equal(counter, 0); + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_equal(counter, 1); + }, + async 'Do not destroy putted value'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get target() { + return this.condition ? this.source : 0; + } + } + App.condition = true; + __decorate([ + $_1.$mol_atom2_field + ], App, "source", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "condition", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "target", null); + App.source = 1; + $_1.$mol_assert_equal(App.target, 1); + App.condition = false; + $_1.$mol_assert_equal(App.target, 0); + await $_1.$mol_fiber_warp(); + App.condition = true; + $_1.$mol_assert_equal(App.target, 1); + }, + 'Restore after error'($) { + class App extends $_1.$mol_object2 { + static get $() { return $; } + static get broken() { + if (this.condition) + $_1.$mol_fail(new Error('test error')); + return 1; + } + static get result() { return this.broken; } + } + App.condition = false; + __decorate([ + $_1.$mol_atom2_field + ], App, "condition", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "broken", null); + __decorate([ + $_1.$mol_atom2_field + ], App, "result", null); + $_1.$mol_assert_equal(App.result, 1); + App.condition = true; + $_1.$mol_assert_fail(() => App.result); + App.condition = false; + $_1.$mol_assert_equal(App.result, 1); + }, + async 'auto fresh only when alive'($) { + let state = 1; + const monitor = new $.$mol_atom2; + monitor.$ = $; + monitor.calculate = () => { + new $.$mol_after_frame($_1.$mol_atom2.current.fresh); + return state; + }; + $_1.$mol_assert_equal(monitor.get(), 1); + state = 2; + $_1.$mol_assert_equal(monitor.get(), 1); + $.$mol_after_mock_warp(); + $_1.$mol_assert_equal(monitor.get(), 2); + state = 3; + $_1.$mol_assert_equal(monitor.get(), 2); + monitor.destructor(); + $_1.$mol_assert_equal(monitor.value, undefined); + $.$mol_after_mock_warp(); + await $.$mol_fiber_warp(); + $_1.$mol_assert_equal(monitor.value, undefined); + }, + }); +})($ || ($ = {})); +//atom2.test.js.map +; +"use strict"; +//param.test.js.map +; +"use strict"; +//result.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + 'Property method'($) { + class App extends $_1.$mol_object2 { + static value(next = 1) { return next + 1; } + } + App.$ = $; + __decorate([ + $_1.$mol_mem + ], App, "value", null); + $_1.$mol_assert_equal(App.value(), 2); + App.value(2); + $_1.$mol_assert_equal(App.value(), 3); + }, + 'auto sync of properties'($) { + class X extends $_1.$mol_object2 { + foo(next) { + return next || 1; + } + bar() { + return this.foo() + 1; + } + xxx() { + return this.bar() + 1; + } + } + __decorate([ + $_1.$mol_mem + ], X.prototype, "foo", null); + __decorate([ + $_1.$mol_mem + ], X.prototype, "bar", null); + __decorate([ + $_1.$mol_mem + ], X.prototype, "xxx", null); + const x = new X; + x.$ = $; + $_1.$mol_assert_equal(x.bar(), 2); + $_1.$mol_assert_equal(x.xxx(), 3); + x.foo(5); + $_1.$mol_assert_equal(x.xxx(), 7); + }, + async 'must be deferred destroyed when no longer referenced'($) { + let foo; + let foo_destroyed = false; + class B extends $_1.$mol_object2 { + showing(next) { + if (next === void 0) + return true; + return next; + } + foo() { + return foo = new class extends $_1.$mol_object { + destructor() { + foo_destroyed = true; + } + }; + } + bar() { + return this.showing() ? this.foo() : null; + } + } + __decorate([ + $_1.$mol_mem + ], B.prototype, "showing", null); + __decorate([ + $_1.$mol_mem + ], B.prototype, "foo", null); + __decorate([ + $_1.$mol_mem + ], B.prototype, "bar", null); + var b = new B; + b.$ = $; + var bar = b.bar(); + $_1.$mol_assert_ok(bar); + b.showing(false); + b.bar(); + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_ok(foo_destroyed); + $_1.$mol_assert_not(b.bar()); + b.showing(true); + $_1.$mol_defer.run(); + $_1.$mol_assert_unique(b.bar(), bar); + }, + async 'wait for data'($) { + class Test extends $_1.$mol_object2 { + source() { + return $_1.$mol_fiber_sync(() => new Promise(done => done('Jin')))(); + } + middle() { + return this.source(); + } + target() { + return this.middle(); + } + } + __decorate([ + $_1.$mol_mem + ], Test.prototype, "source", null); + __decorate([ + $_1.$mol_mem + ], Test.prototype, "middle", null); + __decorate([ + $_1.$mol_mem + ], Test.prototype, "target", null); + const t = new Test; + t.$ = $; + $_1.$mol_assert_fail(() => t.target().valueOf(), Promise); + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_equal(t.target(), 'Jin'); + }, + }); +})($ || ($ = {})); +//mem.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'number'() { + const dict = new $.$mol_dict(); + $.$mol_assert_equal(dict.get(123), undefined); + $.$mol_assert_equal(dict.has(123), false); + dict.set(123, 321); + $.$mol_assert_equal(dict.get(123), 321); + $.$mol_assert_equal(dict.has(123), true); + dict.delete(123); + $.$mol_assert_equal(dict.get(123), undefined); + $.$mol_assert_equal(dict.has(123), false); + }, + 'pojo as key'() { + const dict = new $.$mol_dict(); + $.$mol_assert_equal(dict.get({ foo: 123 }), undefined); + $.$mol_assert_equal(dict.has({ foo: 123 }), false); + dict.set({ foo: 123 }, 321); + $.$mol_assert_equal(dict.get({ foo: 123 }), 321); + $.$mol_assert_equal(dict.has({ foo: 123 }), true); + dict.delete({ foo: 123 }); + $.$mol_assert_equal(dict.get({ foo: 123 }), undefined); + $.$mol_assert_equal(dict.has({ foo: 123 }), false); + }, + 'array as key'() { + const dict = new $.$mol_dict(); + $.$mol_assert_equal(dict.get([123]), undefined); + $.$mol_assert_equal(dict.has([123]), false); + dict.set([123], 321); + $.$mol_assert_equal(dict.get([123]), 321); + $.$mol_assert_equal(dict.has([123]), true); + dict.delete([123]); + $.$mol_assert_equal(dict.get([123]), undefined); + $.$mol_assert_equal(dict.has([123]), false); + }, + 'html element as key'() { + const el = $.$mol_jsx("div", null); + const dict = new $.$mol_dict(); + $.$mol_assert_equal(dict.get(el), undefined); + $.$mol_assert_equal(dict.has(el), false); + dict.set(el, 321); + $.$mol_assert_equal(dict.get(el), 321); + $.$mol_assert_equal(dict.has(el), true); + $.$mol_assert_equal(dict.get($.$mol_jsx("div", null)), undefined); + $.$mol_assert_equal(dict.has($.$mol_jsx("div", null)), false); + dict.delete(el); + $.$mol_assert_equal(dict.get(el), undefined); + $.$mol_assert_equal(dict.has(el), false); + }, + 'for-of key restore'() { + const dict = new $.$mol_dict([[123, 321]]); + const keys = []; + const vals = []; + for (const [key, val] of dict) { + keys.push(key); + vals.push(val); + } + $.$mol_assert_equal(keys.length, 1); + $.$mol_assert_equal(keys[0], 123); + $.$mol_assert_equal(vals.length, 1); + $.$mol_assert_equal(vals[0], 321); + }, + 'forEach key restore'() { + const dict = new $.$mol_dict([[123, 321]]); + const keys = []; + const vals = []; + dict.forEach((val, key) => { + keys.push(key); + vals.push(val); + }); + $.$mol_assert_equal(keys.length, 1); + $.$mol_assert_equal(keys[0], 123); + $.$mol_assert_equal(vals.length, 1); + $.$mol_assert_equal(vals[0], 321); + }, + }); +})($ || ($ = {})); +//dict.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + 'keyed reactive properties'($) { + $_1.$mol_fiber_warp(); + class Fib extends $_1.$mol_object2 { + static value(index, next) { + if (next) + return next; + if (index < 2) + return 1; + return this.value(index - 1) + this.value(index - 2); + } + } + Fib.$ = $; + __decorate([ + $_1.$mol_mem_key + ], Fib, "value", null); + $_1.$mol_assert_equal(Fib.value(10), 89); + Fib.value(1, 2); + $_1.$mol_assert_equal(Fib.value(10), 144); + }, + 'cached property with simple key'($) { + class X extends $_1.$mol_object2 { + foo(id, next) { + if (next == null) + return new Number(123); + return new Number(next); + } + } + __decorate([ + $_1.$mol_mem_key + ], X.prototype, "foo", null); + const x = new X; + x.$ = $; + $_1.$mol_assert_equal(x.foo(0).valueOf(), 123); + $_1.$mol_assert_equal(x.foo(0), x.foo(0)); + $_1.$mol_assert_unique(x.foo(0), x.foo(1)); + x.foo(0, 321); + $_1.$mol_assert_equal(x.foo(0).valueOf(), 321); + x.foo(0, null); + $_1.$mol_assert_equal(x.foo(0).valueOf(), 123); + }, + 'cached property with complex key'($) { + class X extends $_1.$mol_object2 { + foo(ids) { + return Math.random(); + } + } + __decorate([ + $_1.$mol_mem_key + ], X.prototype, "foo", null); + const x = new X; + x.$ = $; + $_1.$mol_assert_equal(x.foo([0, 1]), x.foo([0, 1])); + $_1.$mol_assert_unique(x.foo([0, 1]), x.foo([0, 2])); + }, + }); +})($ || ($ = {})); +//key.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'const returns stored value'() { + const foo = { bar: $.$mol_const(Math.random()) }; + $.$mol_assert_equal(foo.bar(), foo.bar()); + $.$mol_assert_equal(foo.bar(), foo.bar['()']); + }, + }); +})($ || ($ = {})); +//const.test.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_atom2_field(proto, name, descr) { + if (!descr) + descr = Object.getOwnPropertyDescriptor(proto, name); + const get = descr ? (descr.get || $.$mol_const(descr.value)) : (() => undefined); + const set = descr && descr.set || function (next) { get_cache(this).put(next); }; + const store = new WeakMap(); + Object.defineProperty(proto, name + "@", { + get: function () { + return store.get(this); + } + }); + const get_cache = (host) => { + let cache = store.get(host); + if (!cache) { + cache = new $.$mol_atom2; + cache.calculate = get.bind(host); + cache[Symbol.toStringTag] = `${host}.${name}`; + cache.abort = () => { + store.delete(host); + cache.forget(); + return true; + }; + $.$mol_owning_catch(host, cache); + store.set(host, cache); + } + return cache; + }; + return { + get() { + return get_cache(this).get(); + }, + set, + }; + } + $.$mol_atom2_field = $mol_atom2_field; +})($ || ($ = {})); +//field.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + async 'Autorun'($) { + class App extends $_1.$mol_object2 { + static get init() { + ++this.counter; + return this.state; + } + } + App.$ = $; + App.state = 1; + App.counter = 0; + __decorate([ + $_1.$mol_atom2_field + ], App, "state", void 0); + __decorate([ + $_1.$mol_atom2_field + ], App, "init", null); + const autorun = $_1.$mol_atom2_autorun(() => App.init); + autorun.$ = $; + try { + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_equal(App.counter, 1); + App.state = 2; + $_1.$mol_assert_equal(App.counter, 1); + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_equal(App.counter, 2); + App.state = 3; + } + finally { + autorun.destructor(); + } + App.state = 4; + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_equal(App.counter, 2); + }, + }); +})($ || ($ = {})); +//autorun.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test_mocks.push($ => { + $.$mol_after_timeout = $_1.$mol_after_mock_timeout; + }); +})($ || ($ = {})); +//timeout.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'memoize field'() { + class Foo { + static get two() { + return ++this.one; + } + static set two(next) { } + } + Foo.one = 1; + __decorate([ + $.$mol_memo.field + ], Foo, "two", null); + $.$mol_assert_equal(Foo.two, 2); + $.$mol_assert_equal(Foo.two, 2); + Foo.two = 3; + $.$mol_assert_equal(Foo.two, 3); + $.$mol_assert_equal(Foo.two, 3); + }, + }); +})($ || ($ = {})); +//memo.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + 'FQN of anon function'($) { + const $$ = Object.assign($, { $mol_func_name_test: (() => () => { })() }); + $_1.$mol_assert_equal($$.$mol_func_name_test.name, ''); + $_1.$mol_assert_equal($$.$mol_func_name($$.$mol_func_name_test), '$mol_func_name_test'); + $_1.$mol_assert_equal($$.$mol_func_name_test.name, '$mol_func_name_test'); + }, + }); +})($ || ($ = {})); +//name.test.js.map +; +"use strict"; +//extract.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + 'id auto generation'($) { + class $mol_view_test_item extends $_1.$mol_view { + } + class $mol_view_test_block extends $_1.$mol_view { + element(id) { + return new $mol_view_test_item(); + } + } + $mol_view_test_block.$ = $; + __decorate([ + $_1.$mol_mem_key + ], $mol_view_test_block.prototype, "element", null); + var x = $mol_view_test_block.Root(0); + $_1.$mol_assert_equal(x.dom_node().id, '$mol_view_test_block.Root(0)'); + $_1.$mol_assert_equal(x.element(0).dom_node().id, '$mol_view_test_block.Root(0).element(0)'); + }, + 'caching ref to dom node'($) { + var x = new class extends $_1.$mol_view { + }; + x.$ = $; + $_1.$mol_assert_equal(x.dom_node(), x.dom_node()); + }, + 'content render'($) { + class $mol_view_test extends $_1.$mol_view { + sub() { + return ['lol', 5]; + } + } + var x = new $mol_view_test(); + x.$ = $; + var node = x.dom_tree(); + $_1.$mol_assert_equal(node.innerHTML, 'lol5'); + }, + 'bem attributes generation'($) { + class $mol_view_test_item extends $_1.$mol_view { + } + class $mol_view_test_block extends $_1.$mol_view { + Element(id) { + return new $mol_view_test_item(); + } + } + __decorate([ + $_1.$mol_mem_key + ], $mol_view_test_block.prototype, "Element", null); + var x = new $mol_view_test_block(); + x.$ = $; + $_1.$mol_assert_equal(x.dom_node().getAttribute('mol_view_test_block'), ''); + $_1.$mol_assert_equal(x.dom_node().getAttribute('mol_view'), ''); + $_1.$mol_assert_equal(x.Element(0).dom_node().getAttribute('mol_view_test_block_element'), ''); + $_1.$mol_assert_equal(x.Element(0).dom_node().getAttribute('mol_view_test_item'), ''); + $_1.$mol_assert_equal(x.Element(0).dom_node().getAttribute('mol_view'), ''); + }, + 'render custom attributes'($) { + class $mol_view_test extends $_1.$mol_view { + attr() { + return { + 'href': '#haha', + 'required': true, + 'hidden': false, + }; + } + } + var x = new $mol_view_test(); + x.$ = $; + var node = x.dom_tree(); + $_1.$mol_assert_equal(node.getAttribute('href'), '#haha'); + $_1.$mol_assert_equal(node.getAttribute('required'), 'true'); + $_1.$mol_assert_equal(node.getAttribute('hidden'), null); + }, + 'render custom fields'($) { + class $mol_view_test extends $_1.$mol_view { + field() { + return { + 'hidden': true + }; + } + } + var x = new $mol_view_test(); + x.$ = $; + var node = x.dom_tree(); + $_1.$mol_assert_equal(node.hidden, true); + }, + 'attach event handlers'($) { + var clicked = false; + class $mol_view_test extends $_1.$mol_view { + event() { + return { + 'click': (next) => this.event_click(next) + }; + } + event_click(next) { + clicked = true; + } + } + var x = new $mol_view_test(); + x.$ = $; + var node = x.dom_node(); + node.click(); + $_1.$mol_assert_ok(clicked); + }, + }); +})($ || ($ = {})); +//view.test.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_style_sheet_test1 extends $.$mol_view { + Item() { return new $.$mol_view; } + } + $.$mol_style_sheet_test1 = $mol_style_sheet_test1; + class $mol_style_sheet_test2 extends $.$mol_view { + List() { return new $mol_style_sheet_test1; } + } + $.$mol_style_sheet_test2 = $mol_style_sheet_test2; + $.$mol_test({ + 'component block styles'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + display: 'block', + zIndex: 1, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\tdisplay: block;\n\tz-index: 1;\n}\n'); + }, + 'various units'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const { px, per } = $.$mol_style_unit; + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + width: per(50), + height: px(50), + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\twidth: 50%;\n\theight: 50px;\n}\n'); + }, + 'various functions'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const { calc } = $.$mol_style_func; + const { px, per } = $.$mol_style_unit; + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + width: calc(`${per(100)} - ${px(1)}`), + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\twidth: calc(100% - 1px);\n}\n'); + }, + 'property groups'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const { px } = $.$mol_style_unit; + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + flex: { + grow: 5 + } + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\tflex-grow: 5;\n}\n'); + }, + 'property shorthand'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const { px } = $.$mol_style_unit; + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + padding: [px(5), 'auto'] + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\tpadding: 5px auto;\n}\n'); + }, + 'sequenced values'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const { url } = $.$mol_style_func; + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + background: { + image: [[url('foo')], [url('bar')]], + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\tbackground-image: url("foo"),url("bar");\n}\n'); + }, + 'sequenced structs'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const { rem } = $.$mol_style_unit; + const { hsla } = $.$mol_style_func; + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + box: { + shadow: [ + { + inset: true, + x: 0, + y: 0, + blur: rem(.5), + spread: 0, + color: 'red', + }, + { + inset: false, + x: 0, + y: 0, + blur: rem(.5), + spread: 0, + color: 'blue', + }, + ], + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\tbox-shadow: inset 0 0 0.5rem 0 red,0 0 0.5rem 0 blue;\n}\n'); + }, + 'component block styles with pseudo class'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + ':focus': { + color: 'red', + display: 'block', + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test]:focus {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + 'component block styles with pseudo element'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + '::first-line': { + color: 'red', + display: 'block', + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test]::first-line {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + 'component block styles with media query'() { + class $mol_style_sheet_test extends $.$mol_view { + } + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + '@media': { + 'print': { + color: 'red', + display: 'block', + }, + }, + }); + $.$mol_assert_equal(sheet, '@media print {\n[mol_style_sheet_test] {\n\tcolor: red;\n\tdisplay: block;\n}\n}\n'); + }, + 'component block styles with attribute value'() { + class $mol_style_sheet_test extends $.$mol_view { + attr() { + return { + mol_theme: '$mol_theme_dark' + }; + } + } + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + '@': { + mol_theme: { + '$mol_theme_dark': { + color: 'red', + display: 'block', + }, + }, + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test][mol_theme="$mol_theme_dark"] {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + 'component element styles'() { + class $mol_style_sheet_test extends $.$mol_view { + Item() { return new $.$mol_view; } + } + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + Item: { + color: 'red', + display: 'block', + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test_item] {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + 'component element of element styles'() { + const sheet = $.$mol_style_sheet($mol_style_sheet_test2, { + List: { + Item: { + color: 'red', + display: 'block', + }, + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test2_list_item] {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + 'component element styles with block attribute value'() { + class $mol_style_sheet_test extends $.$mol_view { + Item() { return new $.$mol_view; } + attr() { + return { + mol_theme: '$mol_theme_dark' + }; + } + } + const sheet = $.$mol_style_sheet($mol_style_sheet_test, { + '@': { + mol_theme: { + '$mol_theme_dark': { + Item: { + color: 'red', + }, + }, + }, + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test][mol_theme="$mol_theme_dark"] [mol_style_sheet_test_item] {\n\tcolor: red;\n}\n'); + }, + 'inner component styles by class'() { + const sheet = $.$mol_style_sheet($mol_style_sheet_test2, { + $mol_style_sheet_test1: { + color: 'red', + display: 'block', + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test2] [mol_style_sheet_test1] {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + 'child component styles by class'() { + const sheet = $.$mol_style_sheet($mol_style_sheet_test2, { + '>': { + $mol_style_sheet_test1: { + color: 'red', + display: 'block', + }, + }, + }); + $.$mol_assert_equal(sheet, '[mol_style_sheet_test2] > [mol_style_sheet_test1] {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + }); +})($ || ($ = {})); +//sheet.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'null by default'() { + const key = String(Math.random()); + $.$mol_assert_equal($.$mol_state_session.value(key), null); + }, + 'storing'() { + const key = String(Math.random()); + $.$mol_state_session.value(key, '$mol_state_session_test'); + $.$mol_assert_equal($.$mol_state_session.value(key), '$mol_state_session_test'); + $.$mol_state_session.value(key, null); + $.$mol_assert_equal($.$mol_state_session.value(key), null); + }, + }); +})($ || ($ = {})); +//session.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test_mocks.push($ => { + $.$mol_after_work = $_1.$mol_after_mock_timeout; + }); +})($ || ($ = {})); +//work.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'Attach to document'() { + const doc = $.$mol_dom_parse(''); + $.$mol_jsx_attach(doc, () => $.$mol_jsx("body", { id: "/foo" }, "bar")); + $.$mol_assert_equal(doc.documentElement.outerHTML, 'bar'); + }, + }); +})($ || ($ = {})); +//attach.test.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_jsx_attach(next, action) { + const prev = $.$mol_jsx_document; + try { + $.$mol_jsx_document = next; + return action(); + } + finally { + $.$mol_jsx_document = prev; + } + } + $.$mol_jsx_attach = $mol_jsx_attach; +})($ || ($ = {})); +//attach.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + 'Class as component'() { + class Foo extends $_1.$mol_jsx_view { + constructor() { + super(...arguments); + this.title = ''; + } + render() { + return $_1.$mol_jsx("div", null, + this.title, + " ", + this.childNodes.join('-')); + } + } + const dom = $_1.$mol_jsx(Foo, { id: "/foo", title: "bar" }, + "xxx", + 123); + $_1.$mol_assert_equal(dom.outerHTML, '
bar xxx-123
'); + }, + 'View by element'() { + class Br extends $_1.$mol_jsx_view { + render() { + view = this; + return $_1.$mol_jsx("br", { id: "/foo" }); + } + } + let view; + $_1.$mol_assert_equal(Br.of($_1.$mol_jsx(Br, null)), view); + }, + 'Attached view rerender'() { + const doc = $_1.$mol_dom_parse(''); + class Title extends $_1.$mol_jsx_view { + constructor() { + super(...arguments); + this.value = 'foo'; + } + render() { + return $_1.$mol_jsx("div", null, this.value); + } + } + const dom = $_1.$mol_jsx_attach(doc, () => $_1.$mol_jsx(Title, { id: "/foo" })); + const title = Title.of(dom); + $_1.$mol_assert_equal(title.ownerDocument, doc); + $_1.$mol_assert_equal(doc.documentElement.outerHTML, 'foo'); + title.value = 'bar'; + title.valueOf(); + $_1.$mol_assert_equal(doc.documentElement.outerHTML, 'bar'); + }, + async 'Reactive attached view'($) { + const doc = $_1.$mol_dom_parse(''); + class Task extends $_1.$mol_object2 { + title(next) { return next || 'foo'; } + } + __decorate([ + $_1.$mol_mem + ], Task.prototype, "title", null); + class App extends $_1.$mol_jsx_view { + task() { return new Task; } + valueOf() { + return super.valueOf(); + } + render() { + return $_1.$mol_jsx("div", null, this.task().title()); + } + } + __decorate([ + $_1.$mol_mem + ], App.prototype, "task", null); + __decorate([ + $_1.$mol_mem + ], App.prototype, "valueOf", null); + const task = new Task; + task.$ = $; + const autorun = $.$mol_atom2_autorun(() => $_1.$mol_jsx_attach(doc, () => $_1.$mol_jsx(App, { "$": $, id: "/foo", task: () => task }))); + autorun.$ = $; + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_equal(doc.documentElement.outerHTML, 'foo'); + task.title('bar'); + await $_1.$mol_fiber_warp(); + $_1.$mol_assert_equal(doc.documentElement.outerHTML, 'bar'); + }, + }); +})($ || ($ = {})); +//view.test.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_jsx_view extends $.$mol_object2 { + static of(node) { + return node[this]; + } + valueOf() { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + const document = $.$mol_jsx_document; + try { + $.$mol_jsx_prefix = this[Symbol.toStringTag]; + $.$mol_jsx_booked = new Set; + $.$mol_jsx_document = this.ownerDocument; + return this.render(); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + $.$mol_jsx_document = document; + } + } + render() { + return $.$mol_fail(new Error('dom_tree() not implemented')); + } + } + $.$mol_jsx_view = $mol_jsx_view; +})($ || ($ = {})); +//view.js.map +; +"use strict"; +//equals.test.js.map +; +"use strict"; +//equals.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'equal paths'() { + const diff = $.$mol_diff_path([1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]); + $.$mol_assert_like(diff, { + prefix: [1, 2, 3, 4], + suffix: [[], [], []], + }); + }, + 'different suffix'() { + const diff = $.$mol_diff_path([1, 2, 3, 4], [1, 2, 3, 5], [1, 2, 5, 4]); + $.$mol_assert_like(diff, { + prefix: [1, 2], + suffix: [[3, 4], [3, 5], [5, 4]], + }); + }, + 'one contains other'() { + const diff = $.$mol_diff_path([1, 2, 3, 4], [1, 2], [1, 2, 3]); + $.$mol_assert_like(diff, { + prefix: [1, 2], + suffix: [[3, 4], [], [3]], + }); + }, + 'fully different'() { + const diff = $.$mol_diff_path([1, 2], [3, 4], [5, 6]); + $.$mol_assert_like(diff, { + prefix: [], + suffix: [[1, 2], [3, 4], [5, 6]], + }); + }, + }); +})($ || ($ = {})); +//path.test.js.map +; +"use strict"; +var $; +(function ($) { + function $mol_diff_path(...paths) { + const limit = Math.min(...paths.map(path => path.length)); + lookup: for (var i = 0; i < limit; ++i) { + const first = paths[0][i]; + for (let j = 1; j < paths.length; ++j) { + if (paths[j][i] !== first) + break lookup; + } + } + return { + prefix: paths[0].slice(0, i), + suffix: paths.map(path => path.slice(i)), + }; + } + $.$mol_diff_path = $mol_diff_path; +})($ || ($ = {})); +//path.js.map +; +"use strict"; +var $; +(function ($) { + class $mol_error_mix extends Error { + constructor(message, ...errors) { + super(message); + this.errors = errors; + if (errors.length) { + const stacks = [...errors.map(error => error.message), this.stack]; + const diff = $.$mol_diff_path(...stacks.map(stack => { + if (!stack) + return []; + return stack.split('\n').reverse(); + })); + const head = diff.prefix.reverse().join('\n'); + const tails = diff.suffix.map(path => path.reverse().map(line => line.replace(/^(?!\s+at)/, '\tat (.) ')).join('\n')).join('\n\tat (.) -----\n'); + this.stack = `Error: ${this.constructor.name}\n\tat (.) /"""\\\n${tails}\n\tat (.) \\___/\n${head}`; + this.message += errors.map(error => '\n' + error.message).join(''); + } + } + toJSON() { + return this.message; + } + } + $.$mol_error_mix = $mol_error_mix; +})($ || ($ = {})); +//mix.js.map +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + $_1.$mol_test({ + 'simple props'($) { + const app = $_1.$mol_view_tree_test_simple.make({ $ }); + $_1.$mol_assert_equal(app.some(), 1); + $_1.$mol_assert_equal(app.bool(), true); + $_1.$mol_assert_equal(app.str(), 'test'); + $_1.$mol_assert_ok(Array.isArray(app.arr())); + $_1.$mol_assert_ok(Array.isArray(app.arr_string())); + }, + 'default value'($) { + const app = $_1.$mol_view_tree_test_binding.make({ $ }); + $_1.$mol_assert_equal(app.value(), '123'); + }, + 'both binding'($) { + const app = $_1.$mol_view_tree_test_binding.make({ $ }); + $_1.$mol_assert_ok(app.value() !== 1); + app.value(1); + $_1.$mol_assert_equal(app.value(), 1); + }, + 'left binding'($) { + const app = $_1.$mol_view_tree_test_binding.make({ $ }); + $_1.$mol_assert_not(app.head_complete_enabled()); + $_1.$mol_assert_not(app.enabled()); + }, + 'sub component'($) { + const app = $_1.$mol_view_tree_test_binding_right.make({ $ }); + $_1.$mol_assert_ok(app.Test() instanceof $_1.$mol_view_tree_test_binding_right_test); + }, + 'right binding - change owner property'($) { + const app = $_1.$mol_view_tree_test_binding_right.make({ $ }); + const val = 123; + $_1.$mol_assert_ok(app.outer_width() !== val); + $_1.$mol_assert_ok(app.Test().width() !== val); + app.outer_width(val); + $_1.$mol_assert_equal(app.outer_width(), val); + $_1.$mol_assert_equal(app.Test().width(), val); + }, + 'right binding - change part property'($) { + const app = $_1.$mol_view_tree_test_binding_right.make({ $ }); + const val = 123; + $_1.$mol_assert_ok(app.outer_width() !== val); + $_1.$mol_assert_ok(app.Test().width() !== val); + app.Test().width(val); + $_1.$mol_assert_equal(app.Test().width(), val); + $_1.$mol_assert_equal(app.outer_width(), val); + }, + 'attributes merging'($) { + const app = $_1.$mol_view_tree_test_attributes.make({ $ }); + $_1.$mol_assert_like(app.some(), { a: 1, b: 2 }); + }, + 'subcomponent indexed'($) { + const app = $_1.$mol_view_tree_test_attributes_subcomponent.make({ $ }); + const val = 123; + app.page = (index) => index; + $_1.$mol_assert_equal(app.Page(val).Sub(), val); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); +//tree.test.js.map +; +"use strict"; +var $; +(function ($_1) { + $_1.$mol_test({ + 'tree parsing'() { + $_1.$mol_assert_equal($_1.$mol_tree.fromString("foo\nbar\n").sub.length, 2); + $_1.$mol_assert_equal($_1.$mol_tree.fromString("foo\nbar\n").sub[1].type, "bar"); + $_1.$mol_assert_equal($_1.$mol_tree.fromString("foo\n\n\n").sub.length, 1); + $_1.$mol_assert_equal($_1.$mol_tree.fromString("=foo\n\\bar\n").sub.length, 2); + $_1.$mol_assert_equal($_1.$mol_tree.fromString("=foo\n\\bar\n").sub[1].data, "bar"); + $_1.$mol_assert_equal($_1.$mol_tree.fromString("foo bar \\pol").sub[0].sub[0].sub[0].data, "pol"); + $_1.$mol_assert_equal($_1.$mol_tree.fromString("foo bar\n\t\\pol\n\t\\men").sub[0].sub[0].sub[1].data, "men"); + $_1.$mol_assert_equal($_1.$mol_tree.fromString('foo bar \\text\n').toString(), 'foo bar \\text\n'); + }, + 'inserting'() { + $_1.$mol_assert_equal($_1.$mol_tree.fromString('a b c d').insert(new $_1.$mol_tree, 'a', 'b', 'c').toString(), 'a b \\\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromString('a b').insert(new $_1.$mol_tree, 'a', 'b', 'c', 'd').toString(), 'a b c \\\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromString('a b c d').insert(new $_1.$mol_tree, 0, 0, 0).toString(), 'a b \\\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromString('a b').insert(new $_1.$mol_tree, 0, 0, 0, 0).toString(), 'a b \\\n\t\\\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromString('a b c d').insert(new $_1.$mol_tree, null, null, null).toString(), 'a b \\\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromString('a b').insert(new $_1.$mol_tree, null, null, null, null).toString(), 'a b \\\n\t\\\n'); + }, + 'fromJSON'() { + $_1.$mol_assert_equal($_1.$mol_tree.fromJSON([]).toString(), '/\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromJSON([false, true]).toString(), '/\n\tfalse\n\ttrue\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromJSON([0, 1, 2.3]).toString(), '/\n\t0\n\t1\n\t2.3\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromJSON(['', 'foo', 'bar\nbaz']).toString(), '/\n\t\\\n\t\\foo\n\t\\\n\t\t\\bar\n\t\t\\baz\n'); + $_1.$mol_assert_equal($_1.$mol_tree.fromJSON({ 'foo': false, 'bar\nbaz': 'lol' }).toString(), '*\n\tfoo false\n\t\\\n\t\t\\bar\n\t\t\\baz\n\t\t\\lol\n'); + }, + 'toJSON'() { + $_1.$mol_assert_equal(JSON.stringify($_1.$mol_tree.fromString('/\n').sub[0]), '[]'); + $_1.$mol_assert_equal(JSON.stringify($_1.$mol_tree.fromString('/\n\tfalse\n\ttrue\n').sub[0]), '[false,true]'); + $_1.$mol_assert_equal(JSON.stringify($_1.$mol_tree.fromString('/\n\t0\n\t1\n\t2.3\n').sub[0]), '[0,1,2.3]'); + $_1.$mol_assert_equal(JSON.stringify($_1.$mol_tree.fromString('/\n\t\\\n\t\\foo\n\t\\\n\t\t\\bar\n\t\t\\baz\n').sub[0]), '["","foo","bar\\nbaz"]'); + $_1.$mol_assert_equal(JSON.stringify($_1.$mol_tree.fromString('*\n\tfoo false\n\t\\\n\t\t\\bar\n\t\t\\baz\n\t\t\\lol\n').sub[0]), '{"foo":false,"bar\\nbaz":"lol"}'); + }, + 'hack'() { + const res = $_1.$mol_tree.fromString(`foo bar xxx`).hack({ + '': (tree, context) => [tree.hack(context)], + 'bar': (tree, context) => [tree.hack(context).clone({ type: '777' })], + }); + $_1.$mol_assert_equal(res.toString(), new $_1.$mol_tree({ type: 'foo 777 xxx' }).toString()); + }, + 'errors handling'($) { + const errors = []; + class Tree extends $_1.$mol_tree { + } + Tree.$ = $.$mol_ambient({ + $mol_fail: error => errors.push(error.message) + }); + Tree.fromString(` + \t \tfoo + bar \\data + `, 'test'); + $_1.$mol_assert_like(errors, ['Syntax error at test:2\n \tfoo']); + }, + }); +})($ || ($ = {})); +//tree.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test_mocks.push(context => { + class $mol_state_local_mock extends $.$mol_state_local { + static value(key, next = this.state[key], force) { + return this.state[key] = (next || null); + } + } + $mol_state_local_mock.state = {}; + __decorate([ + $.$mol_mem_key + ], $mol_state_local_mock, "value", null); + context.$mol_state_local = $mol_state_local_mock; + }); +})($ || ($ = {})); +//local.mock.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'local get set delete'() { + var key = '$mol_state_local_test:' + Math.random(); + $.$mol_assert_equal($.$mol_state_local.value(key), null); + $.$mol_state_local.value(key, 123); + $.$mol_assert_equal($.$mol_state_local.value(key), 123); + $.$mol_state_local.value(key, null); + $.$mol_assert_equal($.$mol_state_local.value(key), null); + }, + }); +})($ || ($ = {})); +//local.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'encode utf8 string'() { + const str = 'Hello, ΧΨΩЫ'; + const encoded = new Uint8Array([72, 101, 108, 108, 111, 44, 32, 206, 167, 206, 168, 206, 169, 208, 171]); + $.$mol_assert_like($.$mol_charset_encode(str), encoded); + }, + }); +})($ || ($ = {})); +//encode.test.js.map +; +"use strict"; +var $; +(function ($) { + $.$mol_test({ + 'decode utf8 string'() { + const str = 'Hello, ΧΨΩЫ'; + const encoded = new Uint8Array([72, 101, 108, 108, 111, 44, 32, 206, 167, 206, 168, 206, 169, 208, 171]); + $.$mol_assert_equal($.$mol_charset_decode(encoded), str); + $.$mol_assert_equal($.$mol_charset_decode(encoded, 'utf8'), str); + }, + 'decode empty string'() { + const encoded = new Uint8Array([]); + $.$mol_assert_equal($.$mol_charset_decode(encoded), ''); + }, + }); +})($ || ($ = {})); +//decode.test.js.map + +//# sourceMappingURL=web.test.js.map diff --git a/mol/web.test.js.map b/mol/web.test.js.map new file mode 100644 index 00000000..e3ed37b6 --- /dev/null +++ b/mol/web.test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../test/test.test.ts","../../../type/assert/assert.test.js","../../../type/assert/assert.js","../../../type/partial/deep/deep.test.js","../../../type/partial/deep/deep.js","../../../jsx/jsx.test.tsx","../../../jsx/jsx.ts","../../../compare/deep/deep.test.tsx","../../../compare/deep/deep.ts","../../../assert/assert.test.ts","../../../assert/assert.ts","../../../delegate/delegate.test.ts","../../../type/writable/writable.test.js","../../../after/mock/mock.test.ts","../../../after/tick/tick.test.ts","../../../object/object.test.ts","../../../log3/log3.test.ts","../../../wrapper/wrapper.test.ts","../../../after/frame/frame.test.ts","../../../compare/any/any.test.ts","../../../conform/conform.test.ts","../../../array/trim/trim.test.ts","../../../fiber/fiber.test.ts","../../../atom2/atom2.test.ts","../../../type/param/param.test.js","../../../type/result/result.test.js","../../../mem/mem.test.ts","../../../dict/dict.test.tsx","../../../mem/key/key.test.ts","../../../const/const.test.ts","../../../atom2/field/field.ts","../../../atom2/autorun/autorun.test.ts","../../../after/timeout/timeout.test.ts","../../../memo/memo.test.ts","../../../func/name/name.test.ts","../../../type/keys/extract/extract.test.js","../../../view/view/view.test.ts","../../../style/sheet/sheet.test.ts","../../../state/session/session.test.ts","../../../after/work/work.test.ts","../../../jsx/attach/attach.test.tsx","../../../jsx/attach/attach.ts","../../../jsx/view/view.test.tsx","../../../jsx/view/view.tsx","../../../type/equals/equals.test.js","../../../type/equals/equals.js","../../../diff/path/path.test.ts","../../../diff/path/path.ts","../../../error/mix/mix.ts","../../../view/tree/test/tree.test.ts","../../../tree/tree.test.ts","../../../state/local/local.mock.test.ts","../../../state/local/local.test.ts","../../../charset/encode/encode.test.ts","../../../charset/decode/decode.test.ts"],"names":[],"mappings":"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","file":"web.test.js","sourcesContent":["namespace $ {\n\n\texport namespace $$ { let $ }\n\t\n\texport function $mol_test( set : { [ name : string ] : string | ( ( context : $mol_ambient_context )=> void ) } ) {\n\t\t\n\t\tfor( let name in set ) {\n\n\t\t\tconst code = set[ name ]\n\t\t\tconst test = ( typeof code === 'string' ) ? new Function( '' , code ) as ()=> void : code\n\t\t\t\n\t\t\t$mol_test_all.push( test )\n\t\t}\n\n\t\t$mol_test_schedule()\n\t}\n\n\texport let $mol_test_mocks = [] as Array< ( context : $mol_ambient_context )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $mol_ambient_context )=> void >\n\n\texport async function $mol_test_run() {\n\n\t\tfor( var test of $mol_test_all ) {\n\n\t\t\tlet context = Object.create( $$ )\n\t\t\tfor( let mock of $mol_test_mocks ) await mock( context )\n\t\t\t\n\t\t\tawait test( context )\n\t\t}\n\t\t\n\t\t$mol_ambient({}).$mol_log3_done({\n\t\t\tplace : '$mol_test' , \n\t\t\tmessage : 'Completed' ,\n\t\t\tcount : $mol_test_all.length ,\n\t\t})\n\t\t\n\t}\n\t\n\tlet scheduled = false\n\texport function $mol_test_schedule() {\n\n\t\tif( scheduled ) return\n\t\tscheduled = true\n\n\t\tsetTimeout( ()=> {\n\t\t\tscheduled = false\n \t\t\t$mol_test_run()\n\t\t} , 0 )\n\t\t\n\t}\n\n\n\t$mol_test_mocks.push( context => {\n\t\tlet seed = 0\n\n\t\tcontext.Math = Object.create( Math )\n\t\tcontext.Math.random = ()=> Math.sin( seed++ )\n\n\t\tconst forbidden = [ 'XMLHttpRequest' , 'fetch' ]\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} , {\n\t\t\t\tget() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t\tapply() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t} )\n\t\t}\n\t\t\n\t} )\n\n\t$mol_test({\n\n\t\t'mocked Math.random'( $ ) {\n\t\t\tconsole.assert( $.Math.random() === 0 )\n\t\t\tconsole.assert( $.Math.random() === Math.sin(1) )\n\t\t} ,\n\n\t\t'forbidden XMLHttpRequest'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void new $.XMLHttpRequest )\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.assert( error.message === 'XMLHttpRequest is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t\t'forbidden fetch'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void $.fetch('') )\n\t\t\t} catch( error ) {\n\t\t\t\tconsole.assert( error.message === 'fetch is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t})\n\n}\n",null,null,null,null,"/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Make empty div'() {\n\t\t\t$mol_assert_equal( (
).outerHTML , '
' )\n\t\t} ,\n\t\t\n\t\t'Define native field'() {\n\t\t\t\n\t\t\tconst dom = as HTMLInputElement\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '' )\n\t\t\t$mol_assert_equal( dom.value , '123' )\n\n\t\t} ,\n\t\t\n\t\t'Define classes'() {\n\t\t\t\n\t\t\tconst dom =
\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '
' )\n\n\t\t} ,\n\t\t\n\t\t'Define styles'() {\n\t\t\t\n\t\t\tconst dom =
\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '
' )\n\n\t\t} ,\n\t\t\n\t\t'Define dataset'() {\n\t\t\t\n\t\t\tconst dom =
\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML , '
' )\n\n\t\t} ,\n\t\t\n\t\t'Define attributes'() {\n\t\t\t\n\t\t\tconst dom =