diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..732da0f --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +survey.hyoo.ru diff --git a/README.md b/README.md new file mode 100644 index 0000000..c868cf7 --- /dev/null +++ b/README.md @@ -0,0 +1,126 @@ +# MAM + +**M**am owns language-**A**gnostic **M**odules. +This is the base **MAM** project. + +# Articles + +- [MAM: сборка фронтенда без боли](https://habhub.hyoo.ru/#!author=nin-jin/repo=HabHub/article=18) (in Russian, see [automatic English translation](https://translate.google.com/translate?hl=ru&sl=ru&tl=en&u=https://habhub.hyoo.ru/#!author=nin-jin/repo=HabHub/article=18)) +- [Step-by-step tutorial](https://github.com/hyoo-ru/HabHub/issues/4) (in Russian, see [automatic English translation](https://translate.google.com/translate?hl=ru&sl=ru&tl=en&u=https://github.com/hyoo-ru/HabHub/issues/4)) + +# Features + +* **Agnostic modules.** Module is a directory with the mixed source files (JS, TS, CSS, JSON, HTML, Tree, images, etc). +* **Automatic dependency tracking.** You don't need import/export - simply use the namespaced names according to the directory structure, like `$mol_button_major` / `$jin.time.moment` in `*.JAM.JS`/`*.TS` or `--mol_theme_back` / `[mol_page_title]` / `.my-header-avatar` in `*.CSS`. +* **Development server with automatic bundling on request**. Will be bundled only if you use it. +* **Build any module as standalone bundle**. You can develop thousand of modules in one project. +* **Cordova project generation**. Simply add `config.xml` to the module, and `-cordova` dir with the cordova project will be generated. + +# Cloud usage + +[![Gitpod Online Dev Workspace](https://img.shields.io/badge/Gitpod-Online--Dev--Workspace-blue?logo=gitpod)](https://gitpod.io/#https://github.com/hyoo-ru/mam) + + +# Installation + +**Checkout this repo (~2s):** + +```sh +git clone https://github.com/hyoo-ru/mam.git ./mam && cd mam +``` + +## Linux limits + +`$mol_build` and typescript uses inotify by default on Linux to monitor directories for changes. It's not uncommon to encounter a system limit on the number of files you can monitor. + +/etc/sysctl.d/20-watch.conf + +``` +fs.inotify.max_user_watches=524288 +fs.file-max=500000 +``` + +# Development server + +**Install node modules and build dev server from actual sources** + +```sh +npm install +``` + +**Start dev server:** + +```sh +npm start +``` + +**Open simple $mol based ToDoMVC application:** + +```sh +start http://localhost:9080/hyoo/todomvc/-/test.html +``` + +# Manual build + +* Execute `npm start hyoo/todomvc` to build standalone ToDoMVC application at `hyoo/todomvc/-`. +* Execute `npm start mol/regexp` to build standalone $mol_regexp library at `mol/regexp/-`. + +# NPM Integration + +## Publish to NPM + +```sh +npm start mol/regexp +npm publish mol/regexp/- +``` + +## Usage from NPM + +### Import to CJS + +```js +const { $mol_regexp: RE } = require( 'mol_regexp' ) +``` + +### Import to ESM + +```js +import { $mol_regexp as RE } from 'mol_regexp' +``` + +### NodeJS dependencies + +Using `$node` namespace you can auto-install and dynamically lazy load any NPM packages: + +```js +const isOdd = $node['is-odd']( '123' ) +``` + +### Bundling NPM dependencies + +If possible, try to use the existing MAM ecosystem implementations. You can bundle the NPM packages as well via an adapter like: + +```ts +// lib/ramda/ramda.ts +namespace $ { + export let $lib_ramda = require('ramda/src/index.js') as typeof import('ramda') +} +``` + +# Custom package + +[Video tutorial](https://www.youtube.com/watch?v=PyK3if5sgN0) + +1. Create dir for your namespace: `my` in example. +2. Create dir for your module: `my/alert` in example. +3. Create module source file: `my/alert/alert.ts` with content `function $my_alert( msg : string ) { alert( msg ) }` in example. +4. Create dir for your application module: `my/app` in example. +5. Create application source file: `my/app/app.ts` with content `$my_alert( 'Hello, World!' )` in example. +6. Create application web entry point: `my/app/index.html` with content `` in example. +7. Start development server: `npm start` +8. Open your application: `http://localhost:9080/my/app/-/test.html` in example. + +# MAM based projects + +- See https://github.com/hyoo-ru?q=hyoo.ru + diff --git a/index.html b/index.html new file mode 100644 index 0000000..a10246b --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + + + +
+ + + diff --git a/node.audit.js b/node.audit.js new file mode 100644 index 0000000..8229211 --- /dev/null +++ b/node.audit.js @@ -0,0 +1 @@ +console.info( '%c ▫ $mol_build ▫ Audit passed', 'color:forestgreen; font-weight:bolder' ) \ No newline at end of file diff --git a/node.d.ts b/node.d.ts new file mode 100644 index 0000000..11bfa3a --- /dev/null +++ b/node.d.ts @@ -0,0 +1,7383 @@ +declare let _$_: { + new (): {}; +} & typeof globalThis; +declare class $ extends _$_ { +} +declare namespace $ { + export type $ = typeof $$; + export class $$ extends $ { + } + namespace $$ { + type $$ = $; + } + export {}; +} + +declare namespace $ { + const $mol_ambient_ref: unique symbol; + type $mol_ambient_context = $; + function $mol_ambient(this: $ | void, overrides: Partial<$>): $; +} + +declare namespace $ { + function $mol_delegate(proto: Value, target: () => Value): Value; +} + +declare namespace $ { + const $mol_owning_map: WeakMap; + function $mol_owning_allow(having: Having): having is Having & { + destructor(): void; + }; + function $mol_owning_get(having: Having, Owner?: { + new (): Owner; + }): Owner | null; + function $mol_owning_check(owner: Owner, having: Having): having is Having & { + destructor(): void; + }; + function $mol_owning_catch(owner: Owner, having: Having): boolean; +} + +declare namespace $ { + function $mol_fail(error: any): never; +} + +declare namespace $ { + function $mol_fail_hidden(error: any): never; +} + +declare namespace $ { + type $mol_type_writable = { + -readonly [P in keyof T]: T[P]; + }; +} + +declare namespace $ { + function $mol_func_name(this: $, func: Function): string; + function $mol_func_name_from(target: Target, source: Function): Target; +} + +declare namespace $ { + class $mol_object2 { + static $: typeof $$; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + get $(): $; + set $(next: $); + static create(this: new (init?: (instance: any) => void) => Instance, init?: (instance: $mol_type_writable) => void): Instance; + static [Symbol.toPrimitive](): any; + static toString(): any; + static toJSON(): any; + destructor(): void; + static destructor(): void; + toString(): string; + } +} + +declare namespace $ { + namespace $$ { } + const $mol_object_field: unique symbol; + class $mol_object extends $mol_object2 { + static make(this: This, config: Partial>): InstanceType; + } +} + +declare namespace $ { + class $mol_window extends $mol_object { + static size(): { + width: number; + height: number; + }; + } +} + +declare namespace $ { + enum $mol_wire_cursor { + stale = -1, + doubt = -2, + fresh = -3, + final = -4 + } +} + +declare namespace $ { + class $mol_wire_pub extends Object { + data: unknown[]; + static get [Symbol.species](): ArrayConstructor; + protected sub_from: number; + get sub_list(): readonly $mol_wire_sub[]; + get sub_empty(): boolean; + sub_on(sub: $mol_wire_pub, pub_pos: number): number; + sub_off(sub_pos: number): void; + reap(): void; + promote(): void; + fresh(): void; + complete(): void; + get incompleted(): boolean; + emit(quant?: $mol_wire_cursor): void; + peer_move(from_pos: number, to_pos: number): void; + peer_repos(peer_pos: number, self_pos: number): void; + } +} + +declare namespace $ { + interface $mol_wire_sub extends $mol_wire_pub { + temp: boolean; + track_on(): $mol_wire_sub | null; + track_next(pub?: $mol_wire_pub): $mol_wire_pub | null; + pub_off(pub_pos: number): void; + track_cut(sub: $mol_wire_pub | null): void; + track_off(sub: $mol_wire_pub | null): void; + absorb(quant: $mol_wire_cursor): void; + destructor(): void; + } +} + +declare namespace $ { + let $mol_wire_auto_sub: $mol_wire_sub | null; + function $mol_wire_auto(next?: $mol_wire_sub | null): $mol_wire_sub | null; + const $mol_wire_affected: (number | $mol_wire_sub)[]; +} + +declare namespace $ { + function $mol_dev_format_register(config: { + header: (val: any, config: any) => any; + hasBody: (val: any, config: any) => false; + } | { + header: (val: any, config: any) => any; + hasBody: (val: any, config: any) => boolean; + body: (val: any, config: any) => any; + }): void; + let $mol_dev_format_head: symbol; + let $mol_dev_format_body: symbol; + function $mol_dev_format_native(obj: any): any[]; + function $mol_dev_format_auto(obj: any): any[]; + function $mol_dev_format_element(element: string, style: object, ...content: any[]): any[]; + function $mol_dev_format_span(style: object, ...content: any[]): any[]; + let $mol_dev_format_div: (style: object, ...content: any[]) => any[]; + let $mol_dev_format_ol: (style: object, ...content: any[]) => any[]; + let $mol_dev_format_li: (style: object, ...content: any[]) => any[]; + let $mol_dev_format_table: (style: object, ...content: any[]) => any[]; + let $mol_dev_format_tr: (style: object, ...content: any[]) => any[]; + let $mol_dev_format_td: (style: object, ...content: any[]) => any[]; + let $mol_dev_format_accent: (...args: any[]) => any[]; + let $mol_dev_format_strong: (...args: any[]) => any[]; + let $mol_dev_format_string: (...args: any[]) => any[]; + let $mol_dev_format_shade: (...args: any[]) => any[]; + let $mol_dev_format_indent: (...args: any[]) => any[]; +} + +declare namespace $ { + class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub { + protected pub_from: number; + protected cursor: $mol_wire_cursor; + get temp(): boolean; + get pub_list(): $mol_wire_pub[]; + track_on(): $mol_wire_sub | null; + promote(): void; + track_next(pub?: $mol_wire_pub): $mol_wire_pub | null; + track_off(sub: $mol_wire_sub | null): void; + pub_off(sub_pos: number): void; + destructor(): void; + track_cut(): void; + complete(): void; + complete_pubs(): void; + absorb(quant?: $mol_wire_cursor): void; + get pub_empty(): boolean; + } +} + +declare namespace $ { + class $mol_after_timeout extends $mol_object2 { + delay: number; + task: () => void; + id: any; + constructor(delay: number, task: () => void); + destructor(): void; + } +} + +declare namespace $ { + class $mol_after_frame extends $mol_after_timeout { + task: () => void; + constructor(task: () => void); + } +} + +declare namespace $ { + function $mol_promise_like(val: any): val is Promise; +} + +declare namespace $ { + abstract class $mol_wire_fiber extends $mol_wire_pub_sub { + readonly task: (this: Host, ...args: Args) => Result; + readonly host?: Host | undefined; + static warm: boolean; + static planning: Set<$mol_wire_fiber>; + static reaping: Set<$mol_wire_fiber>; + static plan_task: $mol_after_frame | null; + static plan(): void; + static sync(): void; + [Symbol.toStringTag]: string; + cache: Result | Error | Promise; + get args(): Args; + result(): Result | undefined; + get incompleted(): boolean; + field(): string; + constructor(id: string, task: (this: Host, ...args: Args) => Result, host?: Host | undefined, args?: Args); + plan(): void; + reap(): void; + toString(): string; + toJSON(): string; + get $(): any; + emit(quant?: $mol_wire_cursor): void; + fresh(): void; + refresh(): void; + abstract put(next: Result | Error | Promise): Result | Error | Promise; + sync(): Awaited; + async(): Promise; + step(): Promise; + } +} + +declare namespace $ { + function $mol_guid(length?: number, exists?: (id: string) => boolean): string; +} + +declare namespace $ { + const $mol_key_store: WeakMap; + function $mol_key(value: Value): string; +} + +declare namespace $ { + let $mol_compare_deep_cache: WeakMap>; + function $mol_compare_deep(left: Value, right: Value): boolean; +} + +declare namespace $ { + type $mol_log3_event = { + [key in string]: unknown; + } & { + time?: string; + place: unknown; + message: string; + } & Fields; + type $mol_log3_logger = (this: $, event: $mol_log3_event) => Res; + let $mol_log3_come: $mol_log3_logger<{}>; + let $mol_log3_done: $mol_log3_logger<{}>; + let $mol_log3_fail: $mol_log3_logger<{}>; + let $mol_log3_warn: $mol_log3_logger<{ + hint: string; + }>; + let $mol_log3_rise: $mol_log3_logger<{}>; + let $mol_log3_area: $mol_log3_logger<{}, () => void>; + function $mol_log3_area_lazy(this: $, event: $mol_log3_event<{}>): () => void; + let $mol_log3_stack: (() => void)[]; +} + +declare namespace $ { + class $mol_span extends $mol_object2 { + readonly uri: string; + readonly source: string; + readonly row: number; + readonly col: number; + readonly length: number; + constructor(uri: string, source: string, row: number, col: number, length: number); + static unknown: $mol_span; + static begin(uri: string, source?: string): $mol_span; + static end(uri: string, source: string): $mol_span; + static entire(uri: string, source: string): $mol_span; + toString(): string; + toJSON(): { + uri: string; + row: number; + col: number; + length: number; + }; + error(message: string, Class?: ErrorConstructor): Error; + span(row: number, col: number, length: number): $mol_span; + after(length?: number): $mol_span; + slice(begin: number, end?: number): $mol_span; + } +} + +declare namespace $ { + function $mol_tree2_to_string(this: $, tree: $mol_tree2): string; +} + +declare namespace $ { + type $mol_tree2_path = Array; + type $mol_tree2_hack = (input: $mol_tree2, belt: $mol_tree2_belt, context: Context) => readonly $mol_tree2[]; + type $mol_tree2_belt = Record>; + class $mol_tree2 extends Object { + readonly type: string; + readonly value: string; + readonly kids: readonly $mol_tree2[]; + readonly span: $mol_span; + constructor(type: string, value: string, kids: readonly $mol_tree2[], span: $mol_span); + static list(kids: readonly $mol_tree2[], span?: $mol_span): $mol_tree2; + list(kids: readonly $mol_tree2[]): $mol_tree2; + static data(value: string, kids?: readonly $mol_tree2[], span?: $mol_span): $mol_tree2; + data(value: string, kids?: readonly $mol_tree2[]): $mol_tree2; + static struct(type: string, kids?: readonly $mol_tree2[], span?: $mol_span): $mol_tree2; + struct(type: string, kids?: readonly $mol_tree2[]): $mol_tree2; + clone(kids: readonly $mol_tree2[], span?: $mol_span): $mol_tree2; + text(): string; + static fromString(str: string, uri?: string): $mol_tree2; + toString(): string; + insert(value: $mol_tree2 | null, ...path: $mol_tree2_path): $mol_tree2; + select(...path: $mol_tree2_path): $mol_tree2; + filter(path: string[], value?: string): $mol_tree2; + hack_self(belt: $mol_tree2_belt, context?: Context): readonly $mol_tree2[]; + hack(belt: $mol_tree2_belt, context?: Context): $mol_tree2[]; + error(message: string, Class?: ErrorConstructor): Error; + } + class $mol_tree2_empty extends $mol_tree2 { + constructor(); + } +} + +declare namespace $ { + class $mol_error_syntax extends SyntaxError { + reason: string; + line: string; + span: $mol_span; + constructor(reason: string, line: string, span: $mol_span); + } +} + +declare namespace $ { + function $mol_tree2_from_string(this: $, str: string, uri?: string): $mol_tree2; +} + +declare namespace $ { + function $mol_tree2_from_json(json: any, span?: $mol_span): $mol_tree2; +} + +declare namespace $ { + class $mol_term_color { + static reset: (str: string) => string; + static bold: (str: string) => string; + static italic: (str: string) => string; + static underline: (str: string) => string; + static inverse: (str: string) => string; + static hidden: (str: string) => string; + static strike: (str: string) => string; + static gray: (str: string) => string; + static red: (str: string) => string; + static green: (str: string) => string; + static yellow: (str: string) => string; + static blue: (str: string) => string; + static magenta: (str: string) => string; + static cyan: (str: string) => string; + static Gray: (str: string) => string; + static Red: (str: string) => string; + static Green: (str: string) => string; + static Yellow: (str: string) => string; + static Blue: (str: string) => string; + static Magenta: (str: string) => string; + static Cyan: (str: string) => string; + static ansi(open: number, close: number): (str: string) => string; + } +} + +declare namespace $ { + function $mol_log3_node_make(level: keyof Console, output: 'stdout' | 'stderr', type: string, color: (str: string) => string): (this: $, event: $mol_log3_event<{}>) => () => void; +} + +declare namespace $ { + class $mol_wire_task extends $mol_wire_fiber { + static getter(task: (this: Host, ...args: Args) => Result): (host: Host, args: Args) => $mol_wire_task; + get temp(): boolean; + complete(): void; + put(next: Result | Error | Promise): Error | Result | Promise; + } +} + +declare namespace $ { + function $mol_wire_method(host: Host, field: PropertyKey, descr?: TypedPropertyDescriptor<(...args: Args) => any>): { + value: (this: Host, ...args: Args) => any; + enumerable?: boolean | undefined; + configurable?: boolean | undefined; + writable?: boolean | undefined; + get?: (() => (...args: Args) => any) | undefined; + set?: ((value: (...args: Args) => any) => void) | undefined; + }; +} + +declare namespace $ { + type $mol_type_tail = ((...tail: Tuple) => any) extends ((head: any, ...tail: infer Tail) => any) ? Tail : never; +} + +declare namespace $ { + type $mol_type_foot = Tuple['length'] extends 0 ? never : Tuple[$mol_type_tail['length']]; +} + +declare namespace $ { + function $mol_fail_catch(error: unknown): boolean; +} + +declare namespace $ { + function $mol_fail_log(error: unknown): boolean; +} + +declare namespace $ { + class $mol_wire_atom extends $mol_wire_fiber { + static solo(host: Host, task: (this: Host, ...args: Args) => Result): $mol_wire_atom; + static plex(host: Host, task: (this: Host, ...args: Args) => Result, key: Args[0]): $mol_wire_atom; + static watching: Set<$mol_wire_atom>; + static watcher: $mol_after_frame | null; + static watch(): void; + watch(): void; + resync(args: Args): Error | Result | Promise; + once(): Awaited; + channel(): ((next?: $mol_type_foot) => Awaited) & { + atom: $mol_wire_atom; + }; + destructor(): void; + put(next: Result | Error | Promise): Error | Result | Promise; + } +} + +declare namespace $ { + export function $mol_wire_solo(host: object, field: string, descr?: TypedPropertyDescriptor<(...args: Args) => any>): TypedPropertyDescriptor<(...args: First_optional) => any>; + type First_optional = Args extends [] ? [] : [Args[0] | undefined, ...$mol_type_tail]; + export {}; +} + +declare namespace $ { + function $mol_wire_plex(host: object, field: string, descr?: TypedPropertyDescriptor<(...args: Args) => any>): { + value: (this: typeof host, ...args: Args) => any; + enumerable?: boolean | undefined; + configurable?: boolean | undefined; + writable?: boolean | undefined; + get?: (() => (...args: Args) => any) | undefined; + set?: ((value: (...args: Args) => any) => void) | undefined; + }; +} + +declare namespace $ { + let $mol_mem: typeof $mol_wire_solo; + let $mol_mem_key: typeof $mol_wire_plex; +} + +declare namespace $ { + var $mol_dom_context: typeof globalThis; +} + +interface $node { + [key: string]: any; +} +declare var $node: $node; +declare const cache: Map; + +declare namespace $ { + function $mol_env(): Record; +} + +declare namespace $ { +} + +/// +/// +declare namespace $ { + function $mol_exec(this: $, dir: string, command: string, ...args: string[]): import("child_process").SpawnSyncReturns; +} + +declare namespace $ { +} + +declare namespace $ { + class $mol_after_tick extends $mol_object2 { + task: () => void; + promise: any; + cancelled: boolean; + constructor(task: () => void); + destructor(): void; + } +} + +declare namespace $ { + class $mol_view_selection extends $mol_object { + static focused(next?: Element[], notify?: 'notify'): Element[]; + } +} + +declare namespace $ { + class $mol_wrapper extends $mol_object2 { + static wrap: (task: (...ags: any[]) => any) => (...ags: any[]) => any; + static run(task: () => Result): Result; + static func(func: (this: Host, ...args: Args) => Result): (this: Host, ...args: Args) => Result; + static get class(): any>(Class: Class) => Class; + static get method(): (obj: object, name: PropertyKey, descr: PropertyDescriptor) => PropertyDescriptor; + static get field(): (obj: Host, name: Field, descr: TypedPropertyDescriptor) => TypedPropertyDescriptor; + } +} + +declare namespace $ { + class $mol_memo extends $mol_wrapper { + static wrap(task: (this: This, next?: Value) => Value): (this: This, next?: Value) => Value | undefined; + } +} + +declare namespace $ { + function $mol_dom_qname(name: string): string; +} + +declare namespace $ { + function $mol_wire_probe(task: () => Value, def?: Value): Value | undefined; +} + +declare namespace $ { + function $mol_wire_watch(): void; +} + +declare namespace $ { + function $mol_const(value: Value): { + (): Value; + '()': Value; + }; +} + +declare namespace $ { + function $mol_wire_solid(): void; +} + +declare namespace $ { + function $mol_dom_render_attributes(el: Element, attrs: { + [key: string]: string | number | boolean | null; + }): void; +} + +declare namespace $ { + function $mol_dom_render_events(el: Element, events: { + [key: string]: (event: Event) => any; + }, passive?: boolean): void; +} + +declare namespace $ { + function $mol_dom_render_styles(el: Element, styles: { + [key: string]: string | number; + }): void; +} + +declare namespace $ { + function $mol_dom_render_children(el: Element | DocumentFragment, childNodes: NodeList | Array): void; +} + +declare namespace $ { + function $mol_dom_render_fields(el: Element, fields: { + [key: string]: any; + }): void; +} + +declare namespace $ { + export function $mol_wire_async(obj: Host): ObjectOrFunctionResultPromisify; + type FunctionResultPromisify = Some extends (...args: infer Args) => infer Res ? Res extends PromiseLike ? Some : (...args: Args) => Promise : Some; + type MethodsResultPromisify = { + [K in keyof Host]: FunctionResultPromisify; + }; + type ObjectOrFunctionResultPromisify = (Some extends (...args: any) => unknown ? FunctionResultPromisify : {}) & (Some extends Object ? MethodsResultPromisify : Some); + export {}; +} + +declare namespace $ { + type $mol_type_keys_extract = { + [Field in keyof Input]: unknown extends Input[Field] ? never : Input[Field] extends never ? never : Input[Field] extends Upper ? [ + Lower + ] extends [Input[Field]] ? Field : never : never; + }[keyof Input]; +} + +declare namespace $ { + type $mol_type_pick = Pick>; +} + +declare namespace $ { + function $mol_style_attach_force(): HTMLStyleElement; + function $mol_style_attach(id: string, text: string): HTMLStyleElement | null; +} + +declare namespace $ { + class $mol_decor { + readonly value: Value; + constructor(value: Value); + prefix(): string; + valueOf(): Value; + postfix(): string; + toString(): string; + } +} + +declare namespace $ { + type $mol_style_unit_length = '%' | 'px' | 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt' | 'cap' | 'ch' | 'em' | 'rem' | 'ex' | 'ic' | 'lh' | 'rlh' | 'vh' | 'vw' | 'vi' | 'vb' | 'vmin' | 'vmax'; + type $mol_style_unit_angle = 'deg' | 'rad' | 'grad' | 'turn'; + type $mol_style_unit_time = 's' | 'ms'; + type $mol_style_unit_any = $mol_style_unit_length | $mol_style_unit_angle | $mol_style_unit_time; + type $mol_style_unit_str = `${number}${Quanity}`; + class $mol_style_unit extends $mol_decor { + readonly literal: Literal; + constructor(value: number, literal: Literal); + postfix(): Literal; + static per(value: number): `${number}%`; + static px(value: number): `${number}px`; + static mm(value: number): `${number}mm`; + static cm(value: number): `${number}cm`; + static Q(value: number): `${number}Q`; + static in(value: number): `${number}in`; + static pc(value: number): `${number}pc`; + static pt(value: number): `${number}pt`; + static cap(value: number): `${number}cap`; + static ch(value: number): `${number}ch`; + static em(value: number): `${number}em`; + static rem(value: number): `${number}rem`; + static ex(value: number): `${number}ex`; + static ic(value: number): `${number}ic`; + static lh(value: number): `${number}lh`; + static rlh(value: number): `${number}rlh`; + static vh(value: number): `${number}vh`; + static vw(value: number): `${number}vw`; + static vi(value: number): `${number}vi`; + static vb(value: number): `${number}vb`; + static vmin(value: number): `${number}vmin`; + static vmax(value: number): `${number}vmax`; + static deg(value: number): `${number}deg`; + static rad(value: number): `${number}rad`; + static grad(value: number): `${number}grad`; + static turn(value: number): `${number}turn`; + static s(value: number): `${number}s`; + static ms(value: number): `${number}ms`; + } +} + +declare namespace $ { + type $mol_style_func_name = 'calc' | 'hsla' | 'rgba' | 'var' | 'clamp' | 'scale' | 'cubic-bezier' | 'linear' | 'steps' | $mol_style_func_image | $mol_style_func_filter; + type $mol_style_func_image = 'url' | 'linear-gradient' | 'radial-gradient' | 'conic-gradient'; + type $mol_style_func_filter = 'blur' | 'brightness' | 'contrast' | 'drop-shadow' | 'grayscale' | 'hue-rotate' | 'invert' | 'opacity' | 'sepia' | 'saturate'; + class $mol_style_func extends $mol_decor { + readonly name: Name; + constructor(name: Name, value: Value); + prefix(): string; + postfix(): string; + static linear_gradient(value: Value): $mol_style_func<"linear-gradient", Value>; + static calc(value: Value): $mol_style_func<"calc", Value>; + static vary(name: Name, defaultValue?: Value): $mol_style_func<"var", Name | (Name | Value)[]>; + static url(href: Href): $mol_style_func<"url", string>; + static hsla(hue: number, saturation: number, lightness: number, alpha: number): $mol_style_func<"hsla", (number | `${number}%`)[]>; + static clamp(min: $mol_style_unit_str, mid: $mol_style_unit_str, max: $mol_style_unit_str): $mol_style_func<"clamp", `${number}${any}`[]>; + static rgba(red: number, green: number, blue: number, alpha: number): $mol_style_func<"rgba", number[]>; + static scale(zoom: number): $mol_style_func<"scale", number[]>; + static linear(...breakpoints: Array]>): $mol_style_func<"linear", string[]>; + static cubic_bezier(x1: number, y1: number, x2: number, y2: number): $mol_style_func<"cubic-bezier", number[]>; + static steps(value: number, step_position: 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both' | 'start' | 'end'): $mol_style_func<"steps", (number | "end" | "start" | "jump-start" | "jump-end" | "jump-none" | "jump-both")[]>; + static blur(value?: $mol_style_unit_str<$mol_style_unit_length>): $mol_style_func<"blur", string>; + static brightness(value?: number | $mol_style_unit_str<'%'>): $mol_style_func<"brightness", string | number>; + static contrast(value?: number | $mol_style_unit_str<'%'>): $mol_style_func<"contrast", string | number>; + static drop_shadow(color: $mol_style_properties_color, x_offset: $mol_style_unit_str<$mol_style_unit_length>, y_offset: $mol_style_unit_str<$mol_style_unit_length>, blur_radius?: $mol_style_unit_str<$mol_style_unit_length>): $mol_style_func<"drop-shadow", (`${number}%` | `${number}px` | `${number}mm` | `${number}cm` | `${number}Q` | `${number}in` | `${number}pc` | `${number}pt` | `${number}cap` | `${number}ch` | `${number}em` | `${number}rem` | `${number}ex` | `${number}ic` | `${number}lh` | `${number}rlh` | `${number}vh` | `${number}vw` | `${number}vi` | `${number}vb` | `${number}vmin` | `${number}vmax` | $mol_style_properties_color)[]>; + static grayscale(value?: number | $mol_style_unit_str<'%'>): $mol_style_func<"grayscale", string | number>; + static hue_rotate(value?: 0 | $mol_style_unit_str<$mol_style_unit_angle>): $mol_style_func<"hue-rotate", string | 0>; + static invert(value?: number | $mol_style_unit_str<'%'>): $mol_style_func<"invert", string | number>; + static opacity(value?: number | $mol_style_unit_str<'%'>): $mol_style_func<"opacity", string | number>; + static sepia(value?: number | $mol_style_unit_str<'%'>): $mol_style_func<"sepia", string | number>; + static saturate(value?: number | $mol_style_unit_str<'%'>): $mol_style_func<"saturate", string | number>; + } +} + +declare namespace $ { + type $mol_type_override = Omit & Over; +} + +declare namespace $ { + export type $mol_style_properties = Partial<$mol_type_override>; + type Common = 'inherit' | 'initial' | 'unset' | 'revert' | 'revert-layer' | $mol_style_func<'var'>; + export type $mol_style_properties_color = 'aliceblue' | 'antiquewhite' | 'aqua' | 'aquamarine' | 'azure' | 'beige' | 'bisque' | 'black' | 'blanchedalmond' | 'blue' | 'blueviolet' | 'brown' | 'burlywood' | 'cadetblue' | 'chartreuse' | 'chocolate' | 'coral' | 'cornflowerblue' | 'cornsilk' | 'crimson' | 'cyan' | 'darkblue' | 'darkcyan' | 'darkgoldenrod' | 'darkgray' | 'darkgreen' | 'darkgrey' | 'darkkhaki' | 'darkmagenta' | 'darkolivegreen' | 'darkorange' | 'darkorchid' | 'darkred' | 'darksalmon' | 'darkseagreen' | 'darkslateblue' | 'darkslategrey' | 'darkturquoise' | 'darkviolet' | 'deeppink' | 'deepskyblue' | 'dimgray' | 'dimgrey' | 'dodgerblue' | 'firebrick' | 'floralwhite' | 'forestgreen' | 'fuchsia' | 'gainsboro' | 'ghostwhite' | 'gold' | 'goldenrod' | 'gray' | 'green' | 'greenyellow' | 'grey' | 'honeydew' | 'hotpink' | 'indianred' | 'indigo' | 'ivory' | 'khaki' | 'lavender' | 'lavenderblush' | 'lawngreen' | 'lemonchiffon' | 'lightblue' | 'lightcoral' | 'lightcyan' | 'lightgoldenrodyellow' | 'lightgray' | 'lightgreen' | 'lightgrey' | 'lightpink' | 'lightsalmon' | 'lightseagreen' | 'lightskyblue' | 'lightslategray' | 'lightslategrey' | 'lightsteelblue' | 'lightyellow' | 'lime' | 'limegreen' | 'linen' | 'magenta' | 'maroon' | 'mediumaquamarine' | 'mediumblue' | 'mediumorchid' | 'mediumpurple' | 'mediumseagreen' | 'mediumslateblue' | 'mediumspringgreen' | 'mediumturquoise' | 'mediumvioletred' | 'midnightblue' | 'mintcream' | 'mistyrose' | 'moccasin' | 'navajowhite' | 'navy' | 'oldlace' | 'olive' | 'olivedrab' | 'orange' | 'orangered' | 'orchid' | 'palegoldenrod' | 'palegreen' | 'paleturquoise' | 'palevioletred' | 'papayawhip' | 'peachpuff' | 'peru' | 'pink' | 'plum' | 'powderblue' | 'purple' | 'rebeccapurple' | 'red' | 'rosybrown' | 'royalblue' | 'saddlebrown' | 'salmon' | 'sandybrown' | 'seagreen' | 'seashell' | 'sienna' | 'silver' | 'skyblue' | 'slateblue' | 'slategray' | 'slategrey' | 'snow' | 'springgreen' | 'steelblue' | 'tan' | 'teal' | 'thistle' | 'tomato' | 'turquoise' | 'violet' | 'wheat' | 'white' | 'whitesmoke' | 'yellow' | 'yellowgreen' | 'transparent' | 'currentcolor' | $mol_style_func<'hsla' | 'rgba' | 'var'> | `#${string}`; + type Length = 0 | `${number}${$mol_style_unit_length}` | $mol_style_func<'calc' | 'var' | 'clamp'>; + type Size = 'auto' | 'max-content' | 'min-content' | 'fit-content' | Length | Common; + type Directions = Value | readonly [Value, Value] | { + top?: Value; + right?: Value; + bottom?: Value; + left?: Value; + }; + type Single_animation_composition = 'replace' | 'add' | 'accumulate'; + type Single_animation_direction = 'normal' | 'reverse' | 'alternate' | 'alternate-reverse'; + type Single_animation_fill_mode = 'none' | 'forwards' | 'backwards' | 'both'; + type Single_animation_iteration_count = 'infinite' | number; + type Single_animation_play_state = 'running' | 'paused'; + type Easing_function = Linear_easing_function | Cubic_bezier_easing_function | Step_easing_function; + type Linear_easing_function = 'linear' | $mol_style_func<'linear'>; + type Cubic_bezier_easing_function = 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | $mol_style_func<'cubic-bezier'>; + type Step_easing_function = 'step-start' | 'step-end' | $mol_style_func<'steps'>; + type Compat_auto = 'searchfield' | 'textarea' | 'push-button' | 'slider-horizontal' | 'checkbox' | 'radio' | 'menulist' | 'listbox' | 'meter' | 'progress-bar' | 'button'; + type Compat_special = 'textfield' | 'menulist-button'; + type Mix_blend_mode = Blend_mode | 'plus-darker' | 'plus-lighter'; + type Blend_mode = 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity'; + type Box = 'border-box' | 'padding-box' | 'content-box'; + type Baseline_position = 'baseline' | `${'first' | 'last'} baseline`; + type Content_distribution = 'space-between' | 'space-around' | 'space-evenly' | 'stretch'; + type Self_position = 'center' | 'start' | 'end' | 'self-start' | 'self-end' | 'flex-start' | 'flex-end'; + type Content_position = 'center' | 'start' | 'end' | 'flex-start' | 'flex-end'; + type Span_align = 'none' | 'start' | 'end' | 'center' | $mol_style_func<'var'>; + type Snap_axis = 'x' | 'y' | 'block' | 'inline' | 'both' | $mol_style_func<'var'>; + type Overflow = 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto' | 'overlay' | Common; + type Overflow_position = 'unsafe' | 'safe'; + type ContainRule = 'size' | 'layout' | 'style' | 'paint' | $mol_style_func<'var'>; + type Repeat = 'repeat-x' | 'repeat-y' | 'repeat' | 'space' | 'round' | 'no-repeat' | $mol_style_func<'var'>; + type BG_size = Length | 'auto' | 'contain' | 'cover'; + interface Overrides { + accentColor?: $mol_style_properties_color | Common; + align?: { + content?: 'normal' | Baseline_position | Content_distribution | Content_position | `${Overflow_position} ${Content_position}` | Common; + items?: 'normal' | 'stretch' | Baseline_position | Self_position | `${Overflow_position} ${Self_position}` | Common; + self?: 'auto' | 'normal' | 'stretch' | Baseline_position | Self_position | `${Overflow_position} ${Self_position}` | Common; + }; + justify?: { + content?: 'normal' | Baseline_position | Content_distribution | Content_position | `${Overflow_position} ${Content_position}` | Common; + items?: 'normal' | 'stretch' | Baseline_position | Self_position | `${Overflow_position} ${Self_position}` | Common; + self?: 'auto' | 'normal' | 'stretch' | Baseline_position | Self_position | `${Overflow_position} ${Self_position}` | Common; + }; + all?: Common; + animation?: { + composition?: Single_animation_composition | Single_animation_composition[][] | Common; + delay?: $mol_style_unit_str<$mol_style_unit_time> | $mol_style_unit_str<$mol_style_unit_time>[][] | Common; + direction?: Single_animation_direction | Single_animation_direction[][] | Common; + duration?: $mol_style_unit_str<$mol_style_unit_time> | $mol_style_unit_str<$mol_style_unit_time>[][] | Common; + fillMode?: Single_animation_fill_mode | Single_animation_fill_mode[][] | Common; + iterationCount?: Single_animation_iteration_count | Single_animation_iteration_count[][] | Common; + name?: 'none' | string & {} | ('none' | string & {})[][] | Common; + playState?: Single_animation_play_state | Single_animation_play_state[][] | Common; + timingFunction?: Easing_function | Easing_function[][] | Common; + }; + appearance?: 'none' | 'auto' | Compat_auto | Compat_special | Common; + aspectRatio?: 'auto' | number | `${number} / ${number}`; + backdropFilter: $mol_style_func<$mol_style_func_filter> | $mol_style_func<'url'> | ($mol_style_func<$mol_style_func_filter> | $mol_style_func<'url'>)[][] | 'none' | Common; + backfaceVisibility: 'visible' | 'hidden' | Common; + justifyContent?: 'start' | 'end' | 'flex-start' | 'flex-end' | 'left' | 'right' | 'space-between' | 'space-around' | 'space-evenly' | 'normal' | 'stretch' | 'center' | Common; + gap?: Length; + background?: 'none' | { + attachment?: 'scroll' | 'fixed' | 'local' | ('scroll' | 'fixed' | 'local')[][] | Common; + blendMode?: Mix_blend_mode | Mix_blend_mode[][] | Common; + clip?: Box | Box[][] | Common; + color?: $mol_style_properties_color | Common; + image?: readonly (readonly [$mol_style_func<$mol_style_func_image> | string & {}])[] | 'none' | Common; + repeat?: Repeat | [Repeat, Repeat] | Common; + position?: 'left' | 'right' | 'top' | 'bottom' | 'center' | Common; + size?: (BG_size | [BG_size, BG_size])[]; + }; + box?: { + shadow?: readonly ([ + ...[inset: 'inset'] | [], + x: Length, + y: Length, + blur: Length, + spread: Length, + color: $mol_style_properties_color + ] | { + inset?: boolean; + x: Length; + y: Length; + blur: Length; + spread: Length; + color: $mol_style_properties_color; + })[] | 'none' | Common; + }; + font?: { + style?: 'normal' | 'italic' | Common; + weight?: 'normal' | 'bold' | 'lighter' | 'bolder' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | Common; + size?: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large' | 'xxx-large' | 'smaller' | 'larger' | Length | Common; + family?: string & {} | 'serif' | 'sans-serif' | 'monospace' | 'cursive' | 'fantasy' | 'system-ui' | 'ui-serif' | 'ui-sans-serif' | 'ui-monospace' | 'ui-rounded' | 'emoji' | 'math' | 'fangsong' | Common; + }; + color?: $mol_style_properties_color | Common; + display?: 'block' | 'inline' | 'run-in' | 'list-item' | 'none' | 'flow' | 'flow-root' | 'table' | 'flex' | 'grid' | 'contents' | 'table-row-group' | 'table-header-group' | 'table-footer-group' | 'table-column-group' | 'table-row' | 'table-cell' | 'table-column' | 'table-caption' | 'inline-block' | 'inline-table' | 'inline-flex' | 'inline-grid' | 'ruby' | 'ruby-base' | 'ruby-text' | 'ruby-base-container' | 'ruby-text-container' | Common; + overflow?: Overflow | { + x?: Overflow | Common; + y?: Overflow | Common; + anchor?: 'auto' | 'none' | Common; + }; + contain?: 'none' | 'strict' | 'content' | ContainRule | readonly ContainRule[] | Common; + whiteSpace?: 'normal' | 'nowrap' | 'break-spaces' | 'pre' | 'pre-wrap' | 'pre-line' | Common; + webkitOverflowScrolling?: 'auto' | 'touch' | Common; + scrollbar?: { + color?: readonly [$mol_style_properties_color, $mol_style_properties_color] | 'auto' | Common; + width?: 'auto' | 'thin' | 'none' | Common; + }; + scroll?: { + snap?: { + type: 'none' | Snap_axis | readonly [Snap_axis, 'mandatory' | 'proximity'] | Common; + stop: 'normal' | 'always' | Common; + align: Span_align | readonly [Span_align, Span_align] | Common; + }; + padding?: Directions; + }; + width?: Size; + minWidth?: Size; + maxWidth?: Size; + height?: Size; + minHeight?: Size; + maxHeight?: Size; + margin?: Directions; + padding?: Directions; + position?: 'static' | 'relative' | 'absolute' | 'sticky' | 'fixed' | Common; + top?: Length | 'auto' | Common; + right?: Length | 'auto' | Common; + bottom?: Length | 'auto' | Common; + left?: Length | 'auto' | Common; + border?: Directions<{ + radius?: Length | [Length, Length]; + style?: 'none' | 'hidden' | 'dotted' | 'dashed' | 'solid' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | Common; + color?: $mol_style_properties_color | Common; + width?: Length | Common; + }>; + flex?: 'none' | 'auto' | { + grow?: number | Common; + shrink?: number | Common; + basis?: Size | Common; + direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse' | Common; + wrap?: 'wrap' | 'nowrap' | 'wrap-reverse' | Common; + }; + zIndex: number | Common; + opacity: number | Common; + } + export {}; +} + +declare namespace $ { + function $mol_style_prop(prefix: string, keys: Keys): Record>; +} + +declare namespace $ { + const $mol_theme: Record<"image" | "line" | "text" | "field" | "current" | "focus" | "back" | "hover" | "card" | "special" | "control" | "shade", $mol_style_func<"var", unknown>>; +} + +declare namespace $ { +} + +declare namespace $ { + let $mol_gap: Record<"text" | "space" | "block" | "blur" | "round", $mol_style_func<"var", unknown>>; +} + +declare namespace $ { +} + +declare namespace $ { + type $mol_view_content = $mol_view | Node | string | number | boolean; + function $mol_view_visible_width(): number; + function $mol_view_visible_height(): number; + function $mol_view_state_key(suffix: string): string; + class $mol_view extends $mol_object { + static Root(this: This, id: number): InstanceType; + autorun(): void; + static autobind(): void; + title(): string; + focused(next?: boolean): boolean; + state_key(suffix?: string): string; + dom_name(): string; + dom_name_space(): string; + sub(): readonly (string | number | boolean | $mol_view | Node)[]; + sub_visible(): readonly (string | number | boolean | $mol_view | Node)[]; + minimal_width(): number; + maximal_width(): number; + minimal_height(): number; + static watchers: Set<$mol_view>; + view_rect(): { + width: number; + height: number; + left: number; + right: number; + top: number; + bottom: number; + } | null; + dom_id(): string; + dom_node_external(next?: Element): Element; + dom_node(next?: Element): Element; + dom_final(): Element | undefined; + dom_tree(next?: Element): Element; + dom_node_actual(): Element; + auto(): any; + render(): void; + static view_classes(): (typeof $mol_view)[]; + static _view_names?: Map; + static view_names(suffix: string): string[]; + view_names_owned(): string[]; + view_names(): Set; + theme(next?: string | null): string | null; + attr_static(): { + [key: string]: string | number | boolean | null; + }; + attr(): {}; + style_size(): { + [key: string]: string | number; + }; + style(): { + [key: string]: string | number; + }; + field(): { + [key: string]: any; + }; + event(): { + [key: string]: (event: Event) => void; + }; + event_async(): { + [x: string]: (event: Event) => Promise; + }; + plugins(): readonly $mol_view[]; + view_find(check: (path: $mol_view, text?: string) => boolean, path?: $mol_view[]): Generator<$mol_view[]>; + force_render(path: Set<$mol_view>): void; + ensure_visible(view: $mol_view, align?: ScrollLogicalPosition): void; + bring(): void; + destructor(): void; + } + type $mol_view_all = $mol_type_pick<$, typeof $mol_view>; +} + +declare namespace $ { +} + +declare namespace $ { + class $mol_plugin extends $mol_view { + dom_node_external(next?: Element): Element; + render(): void; + } +} + +declare namespace $ { + class $mol_dom_listener extends $mol_object { + _node: any; + _event: string; + _handler: (event: any) => any; + _config: boolean | { + passive: boolean; + }; + constructor(_node: any, _event: string, _handler: (event: any) => any, _config?: boolean | { + passive: boolean; + }); + destructor(): void; + } +} + +declare namespace $ { + class $mol_print extends $mol_object { + static before(): $mol_dom_listener; + static after(): $mol_dom_listener; + static active(next?: boolean): boolean; + } +} + +declare namespace $ { + type $mol_style_pseudo_class = ':active' | ':any' | ':any-link' | ':checked' | ':default' | ':defined' | ':dir(rtl)' | ':dir(ltr)' | ':disabled' | ':empty' | ':enabled' | ':first' | ':first-child' | ':first-of-type' | ':fullscreen' | ':focus' | ':focus-visible' | ':focus-within' | ':hover' | ':indeterminate' | ':in-range' | ':invalid' | ':last-child' | ':last-of-type' | ':left' | ':link' | ':not()' | ':nth-child(even)' | ':nth-child(odd)' | ':nth-last-child(even)' | ':nth-last-child(odd)' | ':nth-of-type(even)' | ':nth-of-type(odd)' | ':nth-last-of-type(even)' | ':nth-last-of-type(odd)' | ':only-child' | ':only-of-type' | ':optional' | ':out-of-range' | ':placeholder-shown' | ':read-only' | ':read-write' | ':required' | ':right' | ':root' | ':scope' | ':target' | ':valid' | ':visited'; +} + +declare namespace $ { + type $mol_style_pseudo_element = '::after' | '::before' | '::cue' | '::first-letter' | '::first-line' | '::selection' | '::slotted' | '::backdrop' | '::placeholder' | '::marker' | '::spelling-error' | '::grammar-error' | '::-webkit-calendar-picker-indicator' | '::-webkit-color-swatch' | '::-webkit-color-swatch-wrapper' | '::-webkit-details-marker' | '::-webkit-file-upload-button' | '::-webkit-image-inner-element' | '::-webkit-inner-spin-button' | '::-webkit-input-placeholder' | '::-webkit-input-speech-button' | '::-webkit-keygen-select' | '::-webkit-media-controls-panel' | '::-webkit-media-controls-timeline-container' | '::-webkit-media-slider-container' | '::-webkit-meter-bar' | '::-webkit-meter-even-less-good-value' | '::-webkit-meter-optimum-value' | '::-webkit-meter-suboptimal-value' | '::-webkit-progress-bar' | '::-webkit-progress-value' | '::-webkit-resizer' | '::-webkit-resizer:window-inactive' | '::-webkit-scrollbar' | '::-webkit-scrollbar-button' | '::-webkit-scrollbar-button:disabled' | '::-webkit-scrollbar-button:double-button:horizontal:end:decrement' | '::-webkit-scrollbar-button:double-button:horizontal:end:increment' | '::-webkit-scrollbar-button:double-button:horizontal:end:increment:corner-present' | '::-webkit-scrollbar-button:double-button:horizontal:start:decrement' | '::-webkit-scrollbar-button:double-button:horizontal:start:increment' | '::-webkit-scrollbar-button:double-button:vertical:end:decrement' | '::-webkit-scrollbar-button:double-button:vertical:end:increment' | '::-webkit-scrollbar-button:double-button:vertical:end:increment:corner-present' | '::-webkit-scrollbar-button:double-button:vertical:start:decrement' | '::-webkit-scrollbar-button:double-button:vertical:start:increment' | '::-webkit-scrollbar-button:end' | '::-webkit-scrollbar-button:end:decrement' | '::-webkit-scrollbar-button:end:increment' | '::-webkit-scrollbar-button:horizontal' | '::-webkit-scrollbar-button:horizontal:decrement' | '::-webkit-scrollbar-button:horizontal:decrement:active' | '::-webkit-scrollbar-button:horizontal:decrement:hover' | '::-webkit-scrollbar-button:horizontal:decrement:window-inactive' | '::-webkit-scrollbar-button:horizontal:end' | '::-webkit-scrollbar-button:horizontal:end:decrement' | '::-webkit-scrollbar-button:horizontal:end:increment' | '::-webkit-scrollbar-button:horizontal:end:increment:corner-present' | '::-webkit-scrollbar-button:horizontal:increment' | '::-webkit-scrollbar-button:horizontal:increment:active' | '::-webkit-scrollbar-button:horizontal:increment:hover' | '::-webkit-scrollbar-button:horizontal:increment:window-inactive' | '::-webkit-scrollbar-button:horizontal:start' | '::-webkit-scrollbar-button:horizontal:start:decrement' | '::-webkit-scrollbar-button:horizontal:start:increment' | '::-webkit-scrollbar-button:start' | '::-webkit-scrollbar-button:start:decrement' | '::-webkit-scrollbar-button:start:increment' | '::-webkit-scrollbar-button:vertical' | '::-webkit-scrollbar-button:vertical:decrement' | '::-webkit-scrollbar-button:vertical:decrement:active' | '::-webkit-scrollbar-button:vertical:decrement:hover' | '::-webkit-scrollbar-button:vertical:decrement:window-inactive' | '::-webkit-scrollbar-button:vertical:end' | '::-webkit-scrollbar-button:vertical:end:decrement' | '::-webkit-scrollbar-button:vertical:end:increment' | '::-webkit-scrollbar-button:vertical:end:increment:corner-present' | '::-webkit-scrollbar-button:vertical:increment' | '::-webkit-scrollbar-button:vertical:increment:active' | '::-webkit-scrollbar-button:vertical:increment:hover' | '::-webkit-scrollbar-button:vertical:increment:window-inactive' | '::-webkit-scrollbar-button:vertical:start' | '::-webkit-scrollbar-button:vertical:start:decrement' | '::-webkit-scrollbar-button:vertical:start:increment' | '::-webkit-scrollbar-corner' | '::-webkit-scrollbar-corner:window-inactive' | '::-webkit-scrollbar-thumb' | '::-webkit-scrollbar-thumb:horizontal' | '::-webkit-scrollbar-thumb:horizontal:active' | '::-webkit-scrollbar-thumb:horizontal:hover' | '::-webkit-scrollbar-thumb:horizontal:window-inactive' | '::-webkit-scrollbar-thumb:vertical' | '::-webkit-scrollbar-thumb:vertical:active' | '::-webkit-scrollbar-thumb:vertical:hover' | '::-webkit-scrollbar-thumb:vertical:window-inactive' | '::-webkit-scrollbar-track' | '::-webkit-scrollbar-track-piece' | '::-webkit-scrollbar-track-piece:disabled' | '::-webkit-scrollbar-track-piece:end' | '::-webkit-scrollbar-track-piece:horizontal:decrement' | '::-webkit-scrollbar-track-piece:horizontal:decrement:active' | '::-webkit-scrollbar-track-piece:horizontal:decrement:hover' | '::-webkit-scrollbar-track-piece:horizontal:end' | '::-webkit-scrollbar-track-piece:horizontal:end:corner-present' | '::-webkit-scrollbar-track-piece:horizontal:end:double-button' | '::-webkit-scrollbar-track-piece:horizontal:end:no-button' | '::-webkit-scrollbar-track-piece:horizontal:end:no-button:corner-present' | '::-webkit-scrollbar-track-piece:horizontal:end:single-button' | '::-webkit-scrollbar-track-piece:horizontal:increment' | '::-webkit-scrollbar-track-piece:horizontal:increment:active' | '::-webkit-scrollbar-track-piece:horizontal:increment:hover' | '::-webkit-scrollbar-track-piece:horizontal:start' | '::-webkit-scrollbar-track-piece:horizontal:start:double-button' | '::-webkit-scrollbar-track-piece:horizontal:start:no-button' | '::-webkit-scrollbar-track-piece:horizontal:start:single-button' | '::-webkit-scrollbar-track-piece:start' | '::-webkit-scrollbar-track-piece:vertical:decrement' | '::-webkit-scrollbar-track-piece:vertical:decrement:active' | '::-webkit-scrollbar-track-piece:vertical:decrement:hover' | '::-webkit-scrollbar-track-piece:vertical:end' | '::-webkit-scrollbar-track-piece:vertical:end:corner-present' | '::-webkit-scrollbar-track-piece:vertical:end:double-button' | '::-webkit-scrollbar-track-piece:vertical:end:no-button' | '::-webkit-scrollbar-track-piece:vertical:end:no-button:corner-present' | '::-webkit-scrollbar-track-piece:vertical:end:single-button' | '::-webkit-scrollbar-track-piece:vertical:increment' | '::-webkit-scrollbar-track-piece:vertical:increment:active' | '::-webkit-scrollbar-track-piece:vertical:increment:hover' | '::-webkit-scrollbar-track-piece:vertical:start' | '::-webkit-scrollbar-track-piece:vertical:start:double-button' | '::-webkit-scrollbar-track-piece:vertical:start:no-button' | '::-webkit-scrollbar-track-piece:vertical:start:single-button' | '::-webkit-scrollbar-track:disabled' | '::-webkit-scrollbar-track:horizontal' | '::-webkit-scrollbar-track:horizontal:disabled' | '::-webkit-scrollbar-track:horizontal:disabled:corner-present' | '::-webkit-scrollbar-track:vertical:disabled' | '::-webkit-scrollbar-track:vertical:disabled:corner-present' | '::-webkit-scrollbar:horizontal' | '::-webkit-scrollbar:horizontal:corner-present' | '::-webkit-scrollbar:horizontal:window-inactive' | '::-webkit-scrollbar:vertical' | '::-webkit-scrollbar:vertical:corner-present' | '::-webkit-scrollbar:vertical:window-inactive' | '::-webkit-search-cancel-button' | '::-webkit-search-decoration' | '::-webkit-search-results-button' | '::-webkit-search-results-decoration' | '::-webkit-slider-container' | '::-webkit-slider-runnable-track' | '::-webkit-slider-thumb' | '::-webkit-slider-thumb:disabled' | '::-webkit-slider-thumb:hover' | '::-webkit-textfield-decoration-container' | '::-webkit-validation-bubble' | '::-webkit-validation-bubble-arrow' | '::-webkit-validation-bubble-arrow-clipper' | '::-webkit-validation-bubble-heading' | '::-webkit-validation-bubble-message' | '::-webkit-validation-bubble-text-block'; +} + +declare namespace $ { + type $mol_type_error = Message & { + $mol_type_error: Info; + }; +} + +declare namespace $ { + type Attrs> = { + [name in keyof Attrs]?: { + [val in keyof Config[Extract]]: $mol_style_guard][val]>; + }; + }; + type Medias = { + [query in keyof Config]: $mol_style_guard; + }; + type Keys = '>' | '@' | keyof $mol_style_properties | $mol_style_pseudo_element | $mol_style_pseudo_class | $mol_type_keys_extract $mol_view> | `$${string}`; + export type $mol_style_guard = { + [key in Keys]?: unknown; + } & $mol_style_properties & { + [key in keyof Config]: key extends keyof $mol_style_properties ? $mol_style_properties[key] : key extends '>' | $mol_style_pseudo_class | $mol_style_pseudo_element ? $mol_style_guard : key extends '@' ? Attrs : key extends '@media' ? Medias : key extends `[${string}]` ? { + [val in keyof Config[key]]: $mol_style_guard; + } : key extends `--${string}` ? any : key extends keyof $ ? $mol_style_guard>, Config[key]> : key extends keyof View ? View[key] extends (id?: any) => infer Sub ? Sub extends $mol_view ? $mol_style_guard : $mol_type_error<'Property returns non $mol_view', { + Returns: Sub; + }> : $mol_type_error<'Field is not a Property'> : key extends `$${string}` ? $mol_type_error<'Unknown View Class'> : $mol_type_error<'Unknown CSS Property'>; + }; + export {}; +} + +declare namespace $ { + function $mol_style_sheet>(Component: new () => Component, config0: Config): string; +} + +declare namespace $ { + function $mol_style_define>(Component: new () => Component, config: Config): HTMLStyleElement | null; +} + +declare namespace $ { + + export class $mol_scroll extends $mol_view { + tabindex( ): number + event_scroll( next?: any ): any + scroll_top( next?: number ): number + scroll_left( next?: number ): number + field( ): ({ + 'tabIndex': ReturnType< $mol_scroll['tabindex'] >, + }) & ReturnType< $mol_view['field'] > + event( ): ({ + scroll( next?: ReturnType< $mol_scroll['event_scroll'] > ): ReturnType< $mol_scroll['event_scroll'] >, + }) & ReturnType< $mol_view['event'] > + } + +} + +//# sourceMappingURL=scroll.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_scroll extends $.$mol_scroll { + scroll_top(next?: number, cache?: 'cache'): number; + scroll_left(next?: number, cache?: 'cache'): number; + event_scroll(next?: Event): void; + minimal_height(): number; + minimal_width(): number; + } +} + +declare namespace $.$$ { +} + +declare namespace $ { + let $mol_mem_cached: typeof $mol_wire_probe; +} + +declare namespace $ { + let $mol_layer: Record>; +} + +declare namespace $ { +} + +declare namespace $ { + type $mol_type_enforce = Actual; +} + +declare namespace $ { + + type $mol_view__title__QO7WUTIR = $mol_type_enforce< + string + , + ReturnType< $mol_view['title'] > + > + export class $mol_book2 extends $mol_scroll { + pages( ): readonly($mol_view)[] + menu_title( ): string + sub( ): ReturnType< $mol_book2['pages'] > + minimal_width( ): number + Placeholder( ): $mol_view + Gap( id: any): $mol_view + } + +} + +//# sourceMappingURL=book2.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_book2 extends $.$mol_book2 { + title(): string; + menu_title(): string; + sub(): readonly $mol_view[]; + bring(): void; + } +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_pop_bubble__align__W5EEWFFW = $mol_type_enforce< + ReturnType< $mol_pop['align'] > + , + ReturnType< $mol_pop_bubble['align'] > + > + type $mol_pop_bubble__content__FKIJH21Q = $mol_type_enforce< + ReturnType< $mol_pop['bubble_content'] > + , + ReturnType< $mol_pop_bubble['content'] > + > + type $mol_pop_bubble__height_max__Q5AAY121 = $mol_type_enforce< + ReturnType< $mol_pop['height_max'] > + , + ReturnType< $mol_pop_bubble['height_max'] > + > + export class $mol_pop extends $mol_view { + Anchor( ): any + align( ): string + bubble_content( ): readonly($mol_view_content)[] + height_max( ): number + Bubble( ): $mol_pop_bubble + showed( next?: boolean ): boolean + align_vert( ): string + align_hor( ): string + prefer( ): string + sub( ): readonly(any)[] + sub_visible( ): readonly(any)[] + } + + export class $mol_pop_bubble extends $mol_view { + content( ): readonly($mol_view_content)[] + height_max( ): number + align( ): string + sub( ): ReturnType< $mol_pop_bubble['content'] > + style( ): ({ + 'maxHeight': ReturnType< $mol_pop_bubble['height_max'] >, + }) & ReturnType< $mol_view['style'] > + attr( ): ({ + 'mol_pop_align': ReturnType< $mol_pop_bubble['align'] >, + 'tabindex': number, + }) & ReturnType< $mol_view['attr'] > + } + +} + +//# sourceMappingURL=pop.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_pop extends $.$mol_pop { + showed(next?: boolean): boolean; + sub_visible(): any[]; + height_max(): number; + align(): string; + align_vert(): "suspense" | "top" | "bottom"; + align_hor(): "suspense" | "left" | "right"; + View_port(): $mol_view; + view_port(): { + width: number; + height: number; + left: number; + right: number; + top: number; + bottom: number; + } | { + left: number; + top: number; + width: number; + height: number; + }; + } +} + +declare namespace $ { +} + +declare namespace $ { + enum $mol_keyboard_code { + backspace = 8, + tab = 9, + enter = 13, + shift = 16, + ctrl = 17, + alt = 18, + pause = 19, + capsLock = 20, + escape = 27, + space = 32, + pageUp = 33, + pageDown = 34, + end = 35, + home = 36, + left = 37, + up = 38, + right = 39, + down = 40, + insert = 45, + delete = 46, + key0 = 48, + key1 = 49, + key2 = 50, + key3 = 51, + key4 = 52, + key5 = 53, + key6 = 54, + key7 = 55, + key8 = 56, + key9 = 57, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + metaLeft = 91, + metaRight = 92, + select = 93, + numpad0 = 96, + numpad1 = 97, + numpad2 = 98, + numpad3 = 99, + numpad4 = 100, + numpad5 = 101, + numpad6 = 102, + numpad7 = 103, + numpad8 = 104, + numpad9 = 105, + multiply = 106, + add = 107, + subtract = 109, + decimal = 110, + divide = 111, + F1 = 112, + F2 = 113, + F3 = 114, + F4 = 115, + F5 = 116, + F6 = 117, + F7 = 118, + F8 = 119, + F9 = 120, + F10 = 121, + F11 = 122, + F12 = 123, + numLock = 144, + scrollLock = 145, + semicolon = 186, + equals = 187, + comma = 188, + dash = 189, + period = 190, + forwardSlash = 191, + graveAccent = 192, + bracketOpen = 219, + slashBack = 220, + slashBackLeft = 226, + bracketClose = 221, + quoteSingle = 222 + } +} + +declare namespace $ { + + export class $mol_hotkey extends $mol_plugin { + keydown( next?: any ): any + event( ): ({ + keydown( next?: ReturnType< $mol_hotkey['keydown'] > ): ReturnType< $mol_hotkey['keydown'] >, + }) & ReturnType< $mol_plugin['event'] > + key( ): Record + mod_ctrl( ): boolean + mod_alt( ): boolean + mod_shift( ): boolean + } + +} + +//# sourceMappingURL=hotkey.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_hotkey extends $.$mol_hotkey { + key(): { + readonly [x: number]: ((event: KeyboardEvent) => void) | undefined; + readonly backspace?: ((event: KeyboardEvent) => void) | undefined; + readonly tab?: ((event: KeyboardEvent) => void) | undefined; + readonly enter?: ((event: KeyboardEvent) => void) | undefined; + readonly shift?: ((event: KeyboardEvent) => void) | undefined; + readonly ctrl?: ((event: KeyboardEvent) => void) | undefined; + readonly alt?: ((event: KeyboardEvent) => void) | undefined; + readonly pause?: ((event: KeyboardEvent) => void) | undefined; + readonly capsLock?: ((event: KeyboardEvent) => void) | undefined; + readonly escape?: ((event: KeyboardEvent) => void) | undefined; + readonly space?: ((event: KeyboardEvent) => void) | undefined; + readonly pageUp?: ((event: KeyboardEvent) => void) | undefined; + readonly pageDown?: ((event: KeyboardEvent) => void) | undefined; + readonly end?: ((event: KeyboardEvent) => void) | undefined; + readonly home?: ((event: KeyboardEvent) => void) | undefined; + readonly left?: ((event: KeyboardEvent) => void) | undefined; + readonly up?: ((event: KeyboardEvent) => void) | undefined; + readonly right?: ((event: KeyboardEvent) => void) | undefined; + readonly down?: ((event: KeyboardEvent) => void) | undefined; + readonly insert?: ((event: KeyboardEvent) => void) | undefined; + readonly delete?: ((event: KeyboardEvent) => void) | undefined; + readonly key0?: ((event: KeyboardEvent) => void) | undefined; + readonly key1?: ((event: KeyboardEvent) => void) | undefined; + readonly key2?: ((event: KeyboardEvent) => void) | undefined; + readonly key3?: ((event: KeyboardEvent) => void) | undefined; + readonly key4?: ((event: KeyboardEvent) => void) | undefined; + readonly key5?: ((event: KeyboardEvent) => void) | undefined; + readonly key6?: ((event: KeyboardEvent) => void) | undefined; + readonly key7?: ((event: KeyboardEvent) => void) | undefined; + readonly key8?: ((event: KeyboardEvent) => void) | undefined; + readonly key9?: ((event: KeyboardEvent) => void) | undefined; + readonly A?: ((event: KeyboardEvent) => void) | undefined; + readonly B?: ((event: KeyboardEvent) => void) | undefined; + readonly C?: ((event: KeyboardEvent) => void) | undefined; + readonly D?: ((event: KeyboardEvent) => void) | undefined; + readonly E?: ((event: KeyboardEvent) => void) | undefined; + readonly F?: ((event: KeyboardEvent) => void) | undefined; + readonly G?: ((event: KeyboardEvent) => void) | undefined; + readonly H?: ((event: KeyboardEvent) => void) | undefined; + readonly I?: ((event: KeyboardEvent) => void) | undefined; + readonly J?: ((event: KeyboardEvent) => void) | undefined; + readonly K?: ((event: KeyboardEvent) => void) | undefined; + readonly L?: ((event: KeyboardEvent) => void) | undefined; + readonly M?: ((event: KeyboardEvent) => void) | undefined; + readonly N?: ((event: KeyboardEvent) => void) | undefined; + readonly O?: ((event: KeyboardEvent) => void) | undefined; + readonly P?: ((event: KeyboardEvent) => void) | undefined; + readonly Q?: ((event: KeyboardEvent) => void) | undefined; + readonly R?: ((event: KeyboardEvent) => void) | undefined; + readonly S?: ((event: KeyboardEvent) => void) | undefined; + readonly T?: ((event: KeyboardEvent) => void) | undefined; + readonly U?: ((event: KeyboardEvent) => void) | undefined; + readonly V?: ((event: KeyboardEvent) => void) | undefined; + readonly W?: ((event: KeyboardEvent) => void) | undefined; + readonly X?: ((event: KeyboardEvent) => void) | undefined; + readonly Y?: ((event: KeyboardEvent) => void) | undefined; + readonly Z?: ((event: KeyboardEvent) => void) | undefined; + readonly metaLeft?: ((event: KeyboardEvent) => void) | undefined; + readonly metaRight?: ((event: KeyboardEvent) => void) | undefined; + readonly select?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad0?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad1?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad2?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad3?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad4?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad5?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad6?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad7?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad8?: ((event: KeyboardEvent) => void) | undefined; + readonly numpad9?: ((event: KeyboardEvent) => void) | undefined; + readonly multiply?: ((event: KeyboardEvent) => void) | undefined; + readonly add?: ((event: KeyboardEvent) => void) | undefined; + readonly subtract?: ((event: KeyboardEvent) => void) | undefined; + readonly decimal?: ((event: KeyboardEvent) => void) | undefined; + readonly divide?: ((event: KeyboardEvent) => void) | undefined; + readonly F1?: ((event: KeyboardEvent) => void) | undefined; + readonly F2?: ((event: KeyboardEvent) => void) | undefined; + readonly F3?: ((event: KeyboardEvent) => void) | undefined; + readonly F4?: ((event: KeyboardEvent) => void) | undefined; + readonly F5?: ((event: KeyboardEvent) => void) | undefined; + readonly F6?: ((event: KeyboardEvent) => void) | undefined; + readonly F7?: ((event: KeyboardEvent) => void) | undefined; + readonly F8?: ((event: KeyboardEvent) => void) | undefined; + readonly F9?: ((event: KeyboardEvent) => void) | undefined; + readonly F10?: ((event: KeyboardEvent) => void) | undefined; + readonly F11?: ((event: KeyboardEvent) => void) | undefined; + readonly F12?: ((event: KeyboardEvent) => void) | undefined; + readonly numLock?: ((event: KeyboardEvent) => void) | undefined; + readonly scrollLock?: ((event: KeyboardEvent) => void) | undefined; + readonly semicolon?: ((event: KeyboardEvent) => void) | undefined; + readonly equals?: ((event: KeyboardEvent) => void) | undefined; + readonly comma?: ((event: KeyboardEvent) => void) | undefined; + readonly dash?: ((event: KeyboardEvent) => void) | undefined; + readonly period?: ((event: KeyboardEvent) => void) | undefined; + readonly forwardSlash?: ((event: KeyboardEvent) => void) | undefined; + readonly graveAccent?: ((event: KeyboardEvent) => void) | undefined; + readonly bracketOpen?: ((event: KeyboardEvent) => void) | undefined; + readonly slashBack?: ((event: KeyboardEvent) => void) | undefined; + readonly slashBackLeft?: ((event: KeyboardEvent) => void) | undefined; + readonly bracketClose?: ((event: KeyboardEvent) => void) | undefined; + readonly quoteSingle?: ((event: KeyboardEvent) => void) | undefined; + }; + keydown(event?: KeyboardEvent): void; + } +} + +declare namespace $ { + + export class $mol_nav extends $mol_plugin { + event_key( next?: any ): any + cycle( next?: boolean ): boolean + mod_ctrl( ): boolean + mod_shift( ): boolean + mod_alt( ): boolean + keys_x( next?: readonly(any)[] ): readonly(any)[] + keys_y( next?: readonly(any)[] ): readonly(any)[] + current_x( next?: any ): any + current_y( next?: any ): any + event_up( next?: any ): any + event_down( next?: any ): any + event_left( next?: any ): any + event_right( next?: any ): any + event( ): ({ + keydown( next?: ReturnType< $mol_nav['event_key'] > ): ReturnType< $mol_nav['event_key'] >, + }) & ReturnType< $mol_plugin['event'] > + } + +} + +//# sourceMappingURL=nav.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_nav extends $.$mol_nav { + event_key(event?: KeyboardEvent): undefined; + event_up(event?: KeyboardEvent): undefined; + event_down(event?: KeyboardEvent): undefined; + event_left(event?: KeyboardEvent): undefined; + event_right(event?: KeyboardEvent): undefined; + index_y(): number | null; + index_x(): number | null; + } +} + +declare namespace $ { + let $mol_mem_persist: typeof $mol_wire_solid; +} + +declare namespace $ { + export function $mol_wire_sync(obj: Host): ObjectOrFunctionResultAwaited; + type FunctionResultAwaited = Some extends (...args: infer Args) => infer Res ? (...args: Args) => Awaited : Some; + type MethodsResultAwaited = { + [K in keyof Host]: FunctionResultAwaited; + }; + type ObjectOrFunctionResultAwaited = (Some extends (...args: any) => unknown ? FunctionResultAwaited : {}) & (Some extends Object ? MethodsResultAwaited : Some); + export {}; +} + +declare namespace $ { + class $mol_storage extends $mol_object2 { + static native(): StorageManager; + static persisted(next?: boolean, cache?: 'cache'): boolean; + static estimate(): StorageEstimate; + static dir(): FileSystemDirectoryHandle; + } +} + +declare namespace $ { + class $mol_state_local extends $mol_object { + static 'native()': Pick; + static native(): Storage | { + getItem(key: string): any; + setItem(key: string, value: string): void; + removeItem(key: string): void; + }; + static changes(next?: StorageEvent): StorageEvent | undefined; + static value(key: string, next?: Value | null): Value | null; + prefix(): string; + value(key: string, next?: Value): Value | null; + } +} + +declare namespace $ { + type $mol_charset_encoding = 'utf8' | 'utf-16le' | 'utf-16be' | 'ibm866' | 'iso-8859-2' | 'iso-8859-3' | 'iso-8859-4' | 'iso-8859-5' | 'iso-8859-6' | 'iso-8859-7' | 'iso-8859-8' | 'iso-8859-8i' | 'iso-8859-10' | 'iso-8859-13' | 'iso-8859-14' | 'iso-8859-15' | 'iso-8859-16' | 'koi8-r' | 'koi8-u' | 'koi8-r' | 'macintosh' | 'windows-874' | 'windows-1250' | 'windows-1251' | 'windows-1252' | 'windows-1253' | 'windows-1254' | 'windows-1255' | 'windows-1256' | 'windows-1257' | 'windows-1258' | 'x-mac-cyrillic' | 'gbk' | 'gb18030' | 'hz-gb-2312' | 'big5' | 'euc-jp' | 'iso-2022-jp' | 'shift-jis' | 'euc-kr' | 'iso-2022-kr'; +} + +declare namespace $ { + function $mol_charset_decode(buffer: BufferSource, encoding?: $mol_charset_encoding): string; +} + +declare namespace $ { + function $mol_charset_encode(value: string): Uint8Array; +} + +declare namespace $ { + type $mol_file_type = 'file' | 'dir' | 'link'; + interface $mol_file_stat { + type: $mol_file_type; + size: number; + atime: Date; + mtime: Date; + ctime: Date; + } + class $mol_file_not_found extends Error { + } + abstract class $mol_file extends $mol_object { + static absolute(path: string): $mol_file; + static relative(path: string): $mol_file; + static base: string; + path(): string; + parent(): $mol_file; + abstract stat(next?: $mol_file_stat | null, virt?: 'virt'): $mol_file_stat | null; + reset(): void; + version(): string; + abstract ensure(): void; + abstract drop(): void; + watcher(): { + destructor(): void; + }; + exists(next?: boolean): boolean; + type(): "" | $mol_file_type; + name(): string; + ext(): string; + abstract buffer(next?: Uint8Array): Uint8Array; + text(next?: string, virt?: 'virt'): string; + abstract sub(): $mol_file[]; + abstract resolve(path: string): $mol_file; + abstract relate(base?: $mol_file): string; + abstract append(next: Uint8Array | string): void; + find(include?: RegExp, exclude?: RegExp): $mol_file[]; + size(): number; + open(...modes: readonly ('create' | 'exists_truncate' | 'exists_fail' | 'read_only' | 'write_only' | 'read_write' | 'append')[]): number; + toJSON(): string; + } +} + +declare namespace $ { + let $mol_action: typeof $mol_wire_method; +} + +declare namespace $ { + function $mol_compare_array>(a: Value, b: Value): boolean; +} + +declare namespace $ { + enum $mol_file_mode_open { + create, + exists_truncate, + exists_fail, + read_only, + write_only, + read_write, + append + } + class $mol_file_node extends $mol_file { + static absolute(path: string): $mol_file_node; + static relative(path: string): $mol_file_node; + watcher(): { + destructor(): void; + }; + stat(next?: $mol_file_stat | null, virt?: 'virt'): $mol_file_stat | null; + ensure(): void; + drop(): void; + buffer(next?: Uint8Array): Uint8Array; + sub(): $mol_file[]; + resolve(path: string): $mol_file; + relate(base?: $mol_file): string; + append(next: Uint8Array | string): undefined; + open(...modes: readonly (keyof typeof $mol_file_mode_open)[]): number; + } +} + +declare namespace $ { + class $mol_state_local_node extends $mol_state_local { + static dir(): $mol_file; + static value(key: string, next?: Value | null): Value | null; + } +} + +declare namespace $ { + interface $mol_locale_dict { + [key: string]: string; + } + class $mol_locale extends $mol_object { + static lang_default(): string; + static lang(next?: string): string; + static source(lang: string): any; + static texts(lang: string, next?: $mol_locale_dict): $mol_locale_dict; + static text(key: string): string; + static warn(key: string): null; + } +} + +declare namespace $ { + + type $mol_hotkey__mod_ctrl__CZAV6DFH = $mol_type_enforce< + ReturnType< $mol_string['submit_with_ctrl'] > + , + ReturnType< $mol_hotkey['mod_ctrl'] > + > + type $mol_hotkey__key__RJ1P9SFL = $mol_type_enforce< + ({ + enter( next?: ReturnType< $mol_string['submit'] > ): ReturnType< $mol_string['submit'] >, + }) + , + ReturnType< $mol_hotkey['key'] > + > + export class $mol_string extends $mol_view { + selection_watcher( ): any + error_report( ): any + disabled( ): boolean + value( next?: string ): string + value_changed( next?: ReturnType< $mol_string['value'] > ): ReturnType< $mol_string['value'] > + hint( ): string + hint_visible( ): ReturnType< $mol_string['hint'] > + spellcheck( ): boolean + autocomplete_native( ): string + selection_end( ): number + selection_start( ): number + keyboard( ): string + enter( ): string + length_max( ): number + type( next?: string ): string + event_change( next?: any ): any + submit_with_ctrl( ): boolean + submit( next?: any ): any + Submit( ): $mol_hotkey + dom_name( ): string + enabled( ): boolean + minimal_height( ): number + autocomplete( ): boolean + selection( next?: readonly(number)[] ): readonly(number)[] + auto( ): readonly(any)[] + field( ): ({ + 'disabled': ReturnType< $mol_string['disabled'] >, + 'value': ReturnType< $mol_string['value_changed'] >, + 'placeholder': ReturnType< $mol_string['hint_visible'] >, + 'spellcheck': ReturnType< $mol_string['spellcheck'] >, + 'autocomplete': ReturnType< $mol_string['autocomplete_native'] >, + 'selectionEnd': ReturnType< $mol_string['selection_end'] >, + 'selectionStart': ReturnType< $mol_string['selection_start'] >, + 'inputMode': ReturnType< $mol_string['keyboard'] >, + 'enterkeyhint': ReturnType< $mol_string['enter'] >, + }) & ReturnType< $mol_view['field'] > + attr( ): ({ + 'maxlength': ReturnType< $mol_string['length_max'] >, + 'type': ReturnType< $mol_string['type'] >, + }) & ReturnType< $mol_view['attr'] > + event( ): ({ + input( next?: ReturnType< $mol_string['event_change'] > ): ReturnType< $mol_string['event_change'] >, + }) & ReturnType< $mol_view['event'] > + plugins( ): readonly(any)[] + } + +} + +//# sourceMappingURL=string.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_string extends $.$mol_string { + event_change(next?: Event): void; + error_report(): void; + hint_visible(): string; + disabled(): boolean; + autocomplete_native(): "on" | "off"; + selection_watcher(): $mol_dom_listener; + selection_change(event: Event): void; + selection_start(): number; + selection_end(): number; + } +} + +declare namespace $ { +} + +declare namespace $ { + class $mol_state_time extends $mol_object { + static task(precision: number, reset?: null): $mol_after_timeout | $mol_after_frame; + static now(precision: number): number; + } +} + +declare namespace $ { + + export class $mol_svg extends $mol_view { + dom_name( ): string + dom_name_space( ): string + font_size( ): number + font_family( ): string + style_size( ): Record + } + +} + +//# sourceMappingURL=svg.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_svg extends $.$mol_svg { + computed_style(): Record; + font_size(): number; + font_family(): any; + } +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_svg_root extends $mol_svg { + view_box( ): string + aspect( ): string + dom_name( ): string + attr( ): ({ + 'viewBox': ReturnType< $mol_svg_root['view_box'] >, + 'preserveAspectRatio': ReturnType< $mol_svg_root['aspect'] >, + }) & ReturnType< $mol_svg['attr'] > + } + +} + +//# sourceMappingURL=root.view.tree.d.ts.map +declare namespace $ { + + export class $mol_svg_path extends $mol_svg { + geometry( ): string + dom_name( ): string + attr( ): ({ + 'd': ReturnType< $mol_svg_path['geometry'] >, + }) & ReturnType< $mol_svg['attr'] > + } + +} + +//# sourceMappingURL=path.view.tree.d.ts.map +declare namespace $ { +} + +declare namespace $ { + + type $mol_svg_path__geometry__Z0GGXDUX = $mol_type_enforce< + ReturnType< $mol_icon['path'] > + , + ReturnType< $mol_svg_path['geometry'] > + > + export class $mol_icon extends $mol_svg_root { + path( ): string + Path( ): $mol_svg_path + view_box( ): string + minimal_width( ): number + minimal_height( ): number + sub( ): readonly(any)[] + } + +} + +//# sourceMappingURL=icon.view.tree.d.ts.map +declare namespace $ { + + export class $mol_icon_cross extends $mol_icon { + path( ): string + } + +} + +//# sourceMappingURL=cross.view.tree.d.ts.map +declare namespace $ { +} + +declare namespace $ { + + export class $mol_speck extends $mol_view { + theme( ): string + value( ): any + attr( ): ({ + 'mol_theme': ReturnType< $mol_speck['theme'] >, + }) & ReturnType< $mol_view['attr'] > + style( ): ({ + 'minHeight': string, + }) & ReturnType< $mol_view['style'] > + sub( ): readonly(any)[] + } + +} + +//# sourceMappingURL=speck.view.tree.d.ts.map +declare namespace $ { + + type $mol_speck__value__FYCC6VPH = $mol_type_enforce< + ReturnType< $mol_button['error'] > + , + ReturnType< $mol_speck['value'] > + > + export class $mol_button extends $mol_view { + event_activate( next?: any ): any + clicks( next?: any ): any + event_key_press( next?: any ): any + disabled( ): boolean + tab_index( ): number + hint( ): string + hint_safe( ): ReturnType< $mol_button['hint'] > + error( ): string + enabled( ): boolean + click( next?: any ): any + event_click( next?: any ): any + event( ): ({ + click( next?: ReturnType< $mol_button['event_activate'] > ): ReturnType< $mol_button['event_activate'] >, + dblclick( next?: ReturnType< $mol_button['clicks'] > ): ReturnType< $mol_button['clicks'] >, + keydown( next?: ReturnType< $mol_button['event_key_press'] > ): ReturnType< $mol_button['event_key_press'] >, + }) & ReturnType< $mol_view['event'] > + attr( ): ({ + 'disabled': ReturnType< $mol_button['disabled'] >, + 'role': string, + 'tabindex': ReturnType< $mol_button['tab_index'] >, + 'title': ReturnType< $mol_button['hint_safe'] >, + }) & ReturnType< $mol_view['attr'] > + sub( ): readonly($mol_view_content)[] + Speck( ): $mol_speck + } + +} + +//# sourceMappingURL=button.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_button extends $.$mol_button { + status(next?: any[]): any[]; + disabled(): boolean; + event_activate(next: Event): void; + event_key_press(event: KeyboardEvent): void; + tab_index(): number; + error(): string; + hint_safe(): string; + sub_visible(): ($mol_speck | $mol_view_content)[]; + } +} + +declare namespace $ { +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_button_typed extends $mol_button { + minimal_height( ): number + minimal_width( ): number + } + +} + +//# sourceMappingURL=typed.view.tree.d.ts.map +declare namespace $ { +} + +declare namespace $ { + + export class $mol_button_minor extends $mol_button_typed { + } + +} + +//# sourceMappingURL=minor.view.tree.d.ts.map +declare namespace $ { + function $mol_support_css_overflow_anchor(this: $): boolean; +} + +declare namespace $ { + + type $mol_view__style__L27WXLY3 = $mol_type_enforce< + ({ + 'paddingTop': ReturnType< $mol_list['gap_before'] >, + }) + , + ReturnType< $mol_view['style'] > + > + type $mol_view__style__66STFI1Y = $mol_type_enforce< + ({ + 'paddingTop': ReturnType< $mol_list['gap_after'] >, + }) + , + ReturnType< $mol_view['style'] > + > + export class $mol_list extends $mol_view { + rows( ): readonly($mol_view)[] + gap_before( ): number + gap_after( ): number + render_visible_only( ): boolean + render_over( ): number + sub( ): ReturnType< $mol_list['rows'] > + Empty( ): $mol_view + Gap_before( ): $mol_view + Gap_after( ): $mol_view + view_window( ): readonly(any)[] + } + +} + +//# sourceMappingURL=list.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_list extends $.$mol_list { + sub(): readonly $mol_view[]; + render_visible_only(): boolean; + view_window(next?: [number, number]): [number, number]; + gap_before(): number; + gap_after(): number; + sub_visible(): $mol_view[]; + minimal_height(): number; + force_render(path: Set<$mol_view>): void; + } +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_paragraph extends $mol_view { + line_height( ): number + letter_width( ): number + width_limit( ): number + row_width( ): number + sub( ): readonly(any)[] + } + +} + +//# sourceMappingURL=paragraph.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_paragraph extends $.$mol_paragraph { + maximal_width(): number; + width_limit(): number; + minimal_width(): number; + row_width(): number; + minimal_height(): number; + } +} + +declare namespace $ { +} + +declare namespace $ { + type $mol_type_equals = (() => X extends A ? 1 : 2) extends (() => X extends B ? 1 : 2) ? unknown : never; +} + +declare namespace $ { + type $mol_type_merge = Intersection extends (...a: any[]) => any ? Intersection : Intersection extends new (...a: any[]) => any ? Intersection : Intersection extends object ? $mol_type_merge_object extends Intersection ? unknown extends $mol_type_equals<{ + [Key in keyof Intersection]: Intersection[Key]; + }, Intersection> ? Intersection : { + [Key in keyof Intersection]: $mol_type_merge; + } : Intersection : Intersection; + type $mol_type_merge_object = { + [Key in keyof Intersection]: Intersection[Key]; + }; +} + +declare namespace $ { + type $mol_type_intersect = (Union extends any ? (_: Union) => void : never) extends ((_: infer Intersection) => void) ? Intersection : never; +} + +declare namespace $ { + type $mol_unicode_category = [$mol_unicode_category_binary] | ['General_Category', $mol_char_category_general] | ['Script', $mol_unicode_category_script] | ['Script_Extensions', $mol_unicode_category_script]; + type $mol_unicode_category_binary = 'ASCII' | 'ASCII_Hex_Digit' | 'Alphabetic' | 'Any' | 'Assigned' | 'Bidi_Control' | 'Bidi_Mirrored' | 'Case_Ignorable' | 'Cased' | 'Changes_When_Casefolded' | 'Changes_When_Casemapped' | 'Changes_When_Lowercased' | 'Changes_When_NFKC_Casefolded' | 'Changes_When_Titlecased' | 'Changes_When_Uppercased' | 'Dash' | 'Default_Ignorable_Code_Point' | 'Deprecated' | 'Diacritic' | 'Emoji' | 'Emoji_Component' | 'Emoji_Modifier' | 'Emoji_Modifier_Base' | 'Emoji_Presentation' | 'Extended_Pictographic' | 'Extender' | 'Grapheme_Base' | 'Grapheme_Extend' | 'Hex_Digit' | 'IDS_Binary_Operator' | 'IDS_Trinary_Operator' | 'ID_Continue' | 'ID_Start' | 'Ideographic' | 'Join_Control' | 'Logical_Order_Exception' | 'Lowercase' | 'Math' | 'Noncharacter_Code_Point' | 'Pattern_Syntax' | 'Pattern_White_Space' | 'Quotation_Mark' | 'Radical' | 'Regional_Indicator' | 'Sentence_Terminal' | 'Soft_Dotted' | 'Terminal_Punctuation' | 'Unified_Ideograph' | 'Uppercase' | 'Variation_Selector' | 'White_Space' | 'XID_Continue' | 'XID_Start'; + type $mol_char_category_general = 'Cased_Letter' | 'Close_Punctuation' | 'Connector_Punctuation' | 'Control' | 'Currency_Symbol' | 'Dash_Punctuation' | 'Decimal_Number' | 'Enclosing_Mark' | 'Final_Punctuation' | 'Format' | 'Initial_Punctuation' | 'Letter' | 'Letter_Number' | 'Line_Separator' | 'Lowercase_Letter' | 'Mark' | 'Math_Symbol' | 'Modifier_Letter' | 'Modifier_Symbol' | 'Nonspacing_Mark' | 'Number' | 'Open_Punctuation' | 'Other' | 'Other_Letter' | 'Other_Number' | 'Other_Punctuation' | 'Other_Symbol' | 'Paragraph_Separator' | 'Private_Use' | 'Punctuation' | 'Separator' | 'Space_Separator' | 'Spacing_Mark' | 'Surrogate' | 'Symbol' | 'Titlecase_Letter' | 'Unassigned' | 'Uppercase_Letter'; + type $mol_unicode_category_script = 'Adlam' | 'Ahom' | 'Anatolian_Hieroglyphs' | 'Arabic' | 'Armenian' | 'Avestan' | 'Balinese' | 'Bamum' | 'Bassa_Vah' | 'Batak' | 'Bengali' | 'Bhaiksuki' | 'Bopomofo' | 'Brahmi' | 'Braille' | 'Buginese' | 'Buhid' | 'Canadian_Aboriginal' | 'Carian' | 'Caucasian_Albanian' | 'Chakma' | 'Cham' | 'Chorasmian' | 'Cherokee' | 'Common' | 'Coptic' | 'Cuneiform' | 'Cypriot' | 'Cyrillic' | 'Deseret' | 'Devanagari' | 'Dives_Akuru' | 'Dogra' | 'Duployan' | 'Egyptian_Hieroglyphs' | 'Elbasan' | 'Elymaic' | 'Ethiopic' | 'Georgian' | 'Glagolitic' | 'Gothic' | 'Grantha' | 'Greek' | 'Gujarati' | 'Gunjala_Gondi' | 'Gurmukhi' | 'Han' | 'Hangul' | 'Hanifi_Rohingya' | 'Hanunoo' | 'Hatran' | 'Hebrew' | 'Hiragana' | 'Imperial_Aramaic' | 'Inherited' | 'Inscriptional_Pahlavi' | 'Inscriptional_Parthian' | 'Javanese' | 'Kaithi' | 'Kannada' | 'Katakana' | 'Kayah_Li' | 'Kharoshthi' | 'Khitan_Small_Script' | 'Khmer' | 'Khojki' | 'Khudawadi' | 'Lao' | 'Latin' | 'Lepcha' | 'Limbu' | 'Linear_A' | 'Linear_B' | 'Lisu' | 'Lycian' | 'Lydian' | 'Mahajani' | 'Makasar' | 'Malayalam' | 'Mandaic' | 'Manichaean' | 'Marchen' | 'Medefaidrin' | 'Masaram_Gondi' | 'Meetei_Mayek' | 'Mende_Kikakui' | 'Meroitic_Cursive' | 'Meroitic_Hieroglyphs' | 'Miao' | 'Modi' | 'Mongolian' | 'Mro' | 'Multani' | 'Myanmar' | 'Nabataean' | 'Nandinagari' | 'New_Tai_Lue' | 'Newa' | 'Nko' | 'Nushu' | 'Nyiakeng_Puachue_Hmong' | 'Ogham' | 'Ol_Chiki' | 'Old_Hungarian' | 'Old_Italic' | 'Old_North_Arabian' | 'Old_Permic' | 'Old_Persian' | 'Old_Sogdian' | 'Old_South_Arabian' | 'Old_Turkic' | 'Oriya' | 'Osage' | 'Osmanya' | 'Pahawh_Hmong' | 'Palmyrene' | 'Pau_Cin_Hau' | 'Phags_Pa' | 'Phoenician' | 'Psalter_Pahlavi' | 'Rejang' | 'Runic' | 'Samaritan' | 'Saurashtra' | 'Sharada' | 'Shavian' | 'Siddham' | 'SignWriting' | 'Sinhala' | 'Sogdian' | 'Sora_Sompeng' | 'Soyombo' | 'Sundanese' | 'Syloti_Nagri' | 'Syriac' | 'Tagalog' | 'Tagbanwa' | 'Tai_Le' | 'Tai_Tham' | 'Tai_Viet' | 'Takri' | 'Tamil' | 'Tangut' | 'Telugu' | 'Thaana' | 'Thai' | 'Tibetan' | 'Tifinagh' | 'Tirhuta' | 'Ugaritic' | 'Vai' | 'Wancho' | 'Warang_Citi' | 'Yezidi' | 'Yi' | 'Zanabazar_Square'; +} + +interface String { + match(regexp: RE): ReturnType; + matchAll(regexp: RE): ReturnType; +} +declare namespace $ { + type Groups_to_params = { + [P in keyof T]?: T[P] | boolean | undefined; + }; + export type $mol_regexp_source = number | string | RegExp | { + [key in string]: $mol_regexp_source; + } | readonly [$mol_regexp_source, ...$mol_regexp_source[]]; + export type $mol_regexp_groups = Source extends number ? {} : Source extends string ? {} : Source extends $mol_regexp_source[] ? $mol_type_merge<$mol_type_intersect<{ + [key in Extract]: $mol_regexp_groups; + }[Extract]>> : Source extends RegExp ? Record extends NonNullable>['groups']> ? {} : NonNullable>['groups']> : Source extends { + readonly [key in string]: $mol_regexp_source; + } ? $mol_type_merge<$mol_type_intersect<{ + [key in keyof Source]: $mol_type_merge<$mol_type_override<{ + readonly [k in Extract]: string; + }, { + readonly [k in key]: Source[key] extends string ? Source[key] : string; + }> & $mol_regexp_groups>; + }[keyof Source]>> : never; + export class $mol_regexp> extends RegExp { + readonly groups: (Extract)[]; + constructor(source: string, flags?: string, groups?: (Extract)[]); + [Symbol.matchAll](str: string): IterableIterator>; + [Symbol.match](str: string): null | RegExpMatchArray; + [Symbol.split](str: string): string[]; + test(str: string): boolean; + exec(str: string): RegExpExecArray & $mol_type_override | null; + generate(params: Groups_to_params): string | null; + get native(): RegExp; + static repeat(source: Source, min?: number, max?: number): $mol_regexp<$mol_regexp_groups>; + static repeat_greedy(source: Source, min?: number, max?: number): $mol_regexp<$mol_regexp_groups>; + static vary(sources: Sources): $mol_regexp<$mol_regexp_groups>; + static optional(source: Source): $mol_regexp<$mol_regexp_groups>; + static force_after(source: $mol_regexp_source): $mol_regexp>; + static forbid_after(source: $mol_regexp_source): $mol_regexp>; + static from(source: Source, { ignoreCase, multiline }?: Partial>): $mol_regexp<$mol_regexp_groups>; + static unicode_only(...category: $mol_unicode_category): $mol_regexp>; + static unicode_except(...category: $mol_unicode_category): $mol_regexp>; + static char_range(from: number, to: number): $mol_regexp<{}>; + static char_only(...allowed: readonly [$mol_regexp_source, ...$mol_regexp_source[]]): $mol_regexp<{}>; + static char_except(...forbidden: readonly [$mol_regexp_source, ...$mol_regexp_source[]]): $mol_regexp<{}>; + static decimal_only: $mol_regexp<{}>; + static decimal_except: $mol_regexp<{}>; + static latin_only: $mol_regexp<{}>; + static latin_except: $mol_regexp<{}>; + static space_only: $mol_regexp<{}>; + static space_except: $mol_regexp<{}>; + static word_break_only: $mol_regexp<{}>; + static word_break_except: $mol_regexp<{}>; + static tab: $mol_regexp<{}>; + static slash_back: $mol_regexp<{}>; + static nul: $mol_regexp<{}>; + static char_any: $mol_regexp<{}>; + static begin: $mol_regexp<{}>; + static end: $mol_regexp<{}>; + static or: $mol_regexp<{}>; + static line_end: $mol_regexp<{ + readonly win_end: string; + readonly mac_end: string; + }>; + } + export {}; +} + +declare namespace $ { + + type $mol_paragraph__sub__364UKJV6 = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_paragraph['sub'] > + > + type $mol_paragraph__sub__D7N1XRIY = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_paragraph['sub'] > + > + export class $mol_dimmer extends $mol_paragraph { + parts( ): readonly($mol_view_content)[] + string( id: any): string + haystack( ): string + needle( ): string + sub( ): ReturnType< $mol_dimmer['parts'] > + Low( id: any): $mol_paragraph + High( id: any): $mol_paragraph + } + +} + +//# sourceMappingURL=dimmer.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_dimmer extends $.$mol_dimmer { + parts(): any[]; + strings(): string[]; + string(index: number): string; + view_find(check: (path: $mol_view, text?: string) => boolean, path?: $mol_view[]): Generator<$mol_view[]>; + } +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_hotkey__key__8I8V2GRA = $mol_type_enforce< + ({ + escape( next?: ReturnType< $mol_search['clear'] > ): ReturnType< $mol_search['clear'] >, + }) + , + ReturnType< $mol_hotkey['key'] > + > + type $mol_nav__keys_y__MM9JGKA2 = $mol_type_enforce< + ReturnType< $mol_search['nav_components'] > + , + ReturnType< $mol_nav['keys_y'] > + > + type $mol_nav__current_y__66M457R6 = $mol_type_enforce< + ReturnType< $mol_search['nav_focused'] > + , + ReturnType< $mol_nav['current_y'] > + > + type $mol_string__value__CN1RX8GY = $mol_type_enforce< + ReturnType< $mol_search['query'] > + , + ReturnType< $mol_string['value'] > + > + type $mol_string__hint__JRKTBZHH = $mol_type_enforce< + ReturnType< $mol_search['hint'] > + , + ReturnType< $mol_string['hint'] > + > + type $mol_string__submit__Q7Q65QED = $mol_type_enforce< + ReturnType< $mol_search['submit'] > + , + ReturnType< $mol_string['submit'] > + > + type $mol_string__enabled__CK6SV4MZ = $mol_type_enforce< + ReturnType< $mol_search['enabled'] > + , + ReturnType< $mol_string['enabled'] > + > + type $mol_string__keyboard__YC0MC82A = $mol_type_enforce< + ReturnType< $mol_search['keyboard'] > + , + ReturnType< $mol_string['keyboard'] > + > + type $mol_string__enter__39GFFNIU = $mol_type_enforce< + ReturnType< $mol_search['enter'] > + , + ReturnType< $mol_string['enter'] > + > + type $mol_button_minor__hint__6W30SMXM = $mol_type_enforce< + string + , + ReturnType< $mol_button_minor['hint'] > + > + type $mol_button_minor__click__2SZN9FSY = $mol_type_enforce< + ReturnType< $mol_search['clear'] > + , + ReturnType< $mol_button_minor['click'] > + > + type $mol_button_minor__sub__ITR5MFS7 = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_button_minor['sub'] > + > + type $mol_list__rows__U42RVJSD = $mol_type_enforce< + ReturnType< $mol_search['menu_items'] > + , + ReturnType< $mol_list['rows'] > + > + type $mol_dimmer__haystack__N561NPD4 = $mol_type_enforce< + ReturnType< $mol_search['suggest_label'] > + , + ReturnType< $mol_dimmer['haystack'] > + > + type $mol_dimmer__needle__VKW2QN2Q = $mol_type_enforce< + ReturnType< $mol_search['query'] > + , + ReturnType< $mol_dimmer['needle'] > + > + type $mol_search_plugins__1ALIKN6V = $mol_type_enforce< + ReturnType< $mol_pop['plugins'] >[number] + , + $mol_plugin + > + type $mol_view__sub__KSJRO5VO = $mol_type_enforce< + ReturnType< $mol_search['anchor_content'] > + , + ReturnType< $mol_view['sub'] > + > + type $mol_button_minor__click__UCEW2LOQ = $mol_type_enforce< + ReturnType< $mol_search['suggest_select'] > + , + ReturnType< $mol_button_minor['click'] > + > + type $mol_button_minor__sub__ADIOLDZM = $mol_type_enforce< + ReturnType< $mol_search['suggest_content'] > + , + ReturnType< $mol_button_minor['sub'] > + > + export class $mol_search extends $mol_pop { + clear( next?: any ): any + Hotkey( ): $mol_hotkey + nav_components( ): readonly($mol_view)[] + nav_focused( next?: any ): any + Nav( ): $mol_nav + suggests_showed( next?: boolean ): boolean + query( next?: string ): string + hint( ): string + submit( next?: any ): any + enabled( ): boolean + keyboard( ): string + enter( ): string + bring( ): ReturnType< ReturnType< $mol_search['Query'] >['bring'] > + Query( ): $mol_string + Clear_icon( ): $mol_icon_cross + Clear( ): $mol_button_minor + anchor_content( ): readonly(any)[] + menu_items( ): readonly($mol_view)[] + Menu( ): $mol_list + suggest_select( id: any, next?: any ): any + suggest_label( id: any): string + Suggest_label( id: any): $mol_dimmer + suggest_content( id: any): readonly($mol_view_content)[] + suggests( ): readonly(string)[] + plugins( ): readonly($mol_plugin)[] + showed( next?: ReturnType< $mol_search['suggests_showed'] > ): ReturnType< $mol_search['suggests_showed'] > + align_hor( ): string + Anchor( ): $mol_view + bubble_content( ): readonly($mol_view_content)[] + Suggest( id: any): $mol_button_minor + } + +} + +//# sourceMappingURL=search.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_search extends $.$mol_search { + anchor_content(): ($.$mol_string | $mol_button_minor)[]; + suggests_showed(next?: boolean): boolean; + suggest_selected(next?: string): void; + nav_components(): ($.$mol_string | $mol_button_minor)[]; + nav_focused(component?: $mol_view): $mol_view | $.$mol_string | null; + suggest_label(key: string): string; + menu_items(): $mol_button_minor[]; + suggest_select(id: string, event?: MouseEvent): void; + clear(event?: Event): void; + } +} + +declare namespace $ { +} + +declare namespace $ { + class $mol_state_arg extends $mol_object { + prefix: string; + static prolog: string; + static separator: string; + static href(next?: string): string; + static href_normal(): string; + static dict(next?: { + [key: string]: string | null; + }): Readonly<{ + [key: string]: string; + }>; + static value(key: string, next?: string | null): string | null; + static link(next: Record): string; + static make_link(next: Record): string; + static go(next: { + [key: string]: string | null; + }): void; + constructor(prefix?: string); + value(key: string, next?: string): string | null; + sub(postfix: string): $mol_state_arg; + link(next: Record): string; + } +} + +declare namespace $ { + + export class $mol_link extends $mol_view { + uri_toggle( ): string + hint( ): string + hint_safe( ): ReturnType< $mol_link['hint'] > + target( ): string + file_name( ): string + current( ): boolean + relation( ): string + event_click( next?: any ): any + click( next?: ReturnType< $mol_link['event_click'] > ): ReturnType< $mol_link['event_click'] > + uri( ): string + dom_name( ): string + uri_off( ): string + uri_native( ): any + external( ): boolean + attr( ): ({ + 'href': ReturnType< $mol_link['uri_toggle'] >, + 'title': ReturnType< $mol_link['hint_safe'] >, + 'target': ReturnType< $mol_link['target'] >, + 'download': ReturnType< $mol_link['file_name'] >, + 'mol_link_current': ReturnType< $mol_link['current'] >, + 'rel': ReturnType< $mol_link['relation'] >, + }) & ReturnType< $mol_view['attr'] > + sub( ): readonly($mol_view_content)[] + arg( ): Record + event( ): ({ + click( next?: ReturnType< $mol_link['click'] > ): ReturnType< $mol_link['click'] >, + }) & ReturnType< $mol_view['event'] > + } + +} + +//# sourceMappingURL=link.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_link extends $.$mol_link { + uri_toggle(): string; + uri(): string; + uri_off(): string; + uri_native(): URL; + current(): boolean; + file_name(): string; + minimal_height(): number; + external(): boolean; + target(): '_self' | '_blank' | '_top' | '_parent' | string; + hint_safe(): string; + } +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_view__dom_name__T68U2RFP = $mol_type_enforce< + string + , + ReturnType< $mol_view['dom_name'] > + > + type $mol_view__sub__1K3ZC6MK = $mol_type_enforce< + ReturnType< $mol_page['title_content'] > + , + ReturnType< $mol_view['sub'] > + > + type $mol_view__sub__XAC3O9DN = $mol_type_enforce< + ReturnType< $mol_page['tools'] > + , + ReturnType< $mol_view['sub'] > + > + type $mol_view__minimal_height__YVXWGXPC = $mol_type_enforce< + number + , + ReturnType< $mol_view['minimal_height'] > + > + type $mol_view__dom_name__5PADBLU3 = $mol_type_enforce< + string + , + ReturnType< $mol_view['dom_name'] > + > + type $mol_view__sub__HUECCJFP = $mol_type_enforce< + ReturnType< $mol_page['head'] > + , + ReturnType< $mol_view['sub'] > + > + type $mol_page_body_scroll_top__Y6R75QSF = $mol_type_enforce< + Parameters< $mol_page['body_scroll_top'] >[0] + , + Parameters< ReturnType< $mol_page['Body'] >['scroll_top'] >[0] + > + type $mol_view__sub__MMLWRS78 = $mol_type_enforce< + ReturnType< $mol_page['body'] > + , + ReturnType< $mol_view['sub'] > + > + type $mol_scroll__sub__BTW6JPET = $mol_type_enforce< + ReturnType< $mol_page['body_content'] > + , + ReturnType< $mol_scroll['sub'] > + > + type $mol_view__dom_name__A8WKSAC4 = $mol_type_enforce< + string + , + ReturnType< $mol_view['dom_name'] > + > + type $mol_view__sub__Z99LI3S7 = $mol_type_enforce< + ReturnType< $mol_page['foot'] > + , + ReturnType< $mol_view['sub'] > + > + export class $mol_page extends $mol_view { + tabindex( ): number + Logo( ): any + title_content( ): readonly(any)[] + Title( ): $mol_view + tools( ): readonly($mol_view_content)[] + Tools( ): $mol_view + head( ): readonly(any)[] + Head( ): $mol_view + body_scroll_top( next?: ReturnType< ReturnType< $mol_page['Body'] >['scroll_top'] > ): ReturnType< ReturnType< $mol_page['Body'] >['scroll_top'] > + body( ): readonly($mol_view)[] + Body_content( ): $mol_view + body_content( ): readonly(any)[] + Body( ): $mol_scroll + foot( ): readonly($mol_view)[] + Foot( ): $mol_view + dom_name( ): string + field( ): ({ + 'tabIndex': ReturnType< $mol_page['tabindex'] >, + }) & ReturnType< $mol_view['field'] > + sub( ): readonly(any)[] + } + +} + +//# sourceMappingURL=page.view.tree.d.ts.map +declare namespace $.$$ { +} + +declare namespace $ { + function $mol_match_text(query: string, values: (variant: Variant) => string[]): (variant: Variant) => boolean; +} + +declare namespace $ { + + type $mol_search__query__YKPRDB9G = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_filter'] > + , + ReturnType< $mol_search['query'] > + > + type $mol_dimmer__needle__Q6ASOXJ3 = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_filter'] > + , + ReturnType< $mol_dimmer['needle'] > + > + type $mol_dimmer__haystack__FQH6NSTB = $mol_type_enforce< + ReturnType< $mol_book2_catalog['spread_title'] > + , + ReturnType< $mol_dimmer['haystack'] > + > + type $mol_link__arg__AV0NHCF1 = $mol_type_enforce< + ReturnType< $mol_book2_catalog['arg'] > + , + ReturnType< $mol_link['arg'] > + > + type $mol_link__sub__7RWR632H = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_link_content'] > + , + ReturnType< $mol_link['sub'] > + > + type $mol_list__rows__YEELXA97 = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_links'] > + , + ReturnType< $mol_list['rows'] > + > + type $mol_page__title__AI7MJT7O = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_title'] > + , + ReturnType< $mol_page['title'] > + > + type $mol_page__Logo__C9HCIBAM = $mol_type_enforce< + ReturnType< $mol_book2_catalog['Menu_logo'] > + , + ReturnType< $mol_page['Logo'] > + > + type $mol_page__tools__REDJL6US = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_page['tools'] > + > + type $mol_page__head__9HM3WXHN = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_head'] > + , + ReturnType< $mol_page['head'] > + > + type $mol_page__body__ARO0829V = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_body'] > + , + ReturnType< $mol_page['body'] > + > + type $mol_page__foot__5NARZZEI = $mol_type_enforce< + ReturnType< $mol_book2_catalog['menu_foot'] > + , + ReturnType< $mol_page['foot'] > + > + type $mol_link__arg__9RXU9LN2 = $mol_type_enforce< + ReturnType< $mol_book2_catalog['spread_close_arg'] > + , + ReturnType< $mol_link['arg'] > + > + type $mol_link__sub__LGE30N16 = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_link['sub'] > + > + export class $mol_book2_catalog extends $mol_book2 { + Menu_title( ): ReturnType< ReturnType< $mol_book2_catalog['Menu'] >['Title'] > + menu_title( ): string + Menu_tools( ): ReturnType< ReturnType< $mol_book2_catalog['Menu'] >['Tools'] > + Menu_logo( ): any + menu_head( ): readonly(any)[] + menu_filter( next?: string ): string + Menu_filter( ): $mol_search + arg( id: any): Record + spread_title( id: any): string + Menu_link_title( id: any): $mol_dimmer + menu_link_content( id: any): readonly(any)[] + Menu_link( id: any): $mol_link + menu_links( ): readonly(any)[] + Menu_links( ): $mol_list + menu_body( ): readonly(any)[] + menu_foot( ): readonly(any)[] + Menu( ): $mol_page + spread_close_arg( ): Record + Spread_close_icon( ): $mol_icon_cross + param( ): string + spread( next?: string ): string + spreads( ): Record + Spread( id: any): $mol_view + Spread_default( ): any + spread_ids( ): readonly(string)[] + menu_filter_enabled( ): boolean + spread_ids_filtered( ): readonly(string)[] + menu_tools( ): readonly(any)[] + addon_tools( ): readonly(any)[] + pages( ): readonly(any)[] + Spread_close( ): $mol_link + } + +} + +//# sourceMappingURL=catalog.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_book2_catalog extends $.$mol_book2_catalog { + pages(): any[]; + spread_ids(): readonly string[]; + menu_body(): ($.$mol_list | $.$mol_search)[]; + menu_filter_enabled(): boolean; + menu_links(): $.$mol_link[]; + spread_ids_filtered(): string[]; + Spread(id: string): $mol_view; + Spread_default(): any; + spread(next?: string): string; + arg(spread: string): { + [x: string]: string | null; + }; + spread_close_arg(): { + [x: string]: null; + }; + spread_title(spread: string): string; + } +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_icon_plus extends $mol_icon { + path( ): string + } + +} + +//# sourceMappingURL=plus.view.tree.d.ts.map +declare namespace $ { + enum $hyoo_crus_part { + land = 219, + pass = 255, + gift = 247, + gist = 0, + hash = 253, + rock = 245, + root = 1, + buck = 9 + } +} + +declare namespace $ { + function $mol_base64_encode(src: string | Uint8Array): string; +} + +declare namespace $ { + function $mol_base64_encode_node(str: string | Uint8Array): string; +} + +declare namespace $ { + function $mol_base64_decode(base64: string): Uint8Array; +} + +declare namespace $ { + function $mol_base64_decode_node(base64Str: string): Uint8Array; +} + +declare namespace $ { + function $mol_base64_ae_encode(buffer: Uint8Array): string; + function $mol_base64_ae_decode(str: string): Uint8Array; +} + +declare namespace $ { + class $mol_buffer extends DataView { + static from(this: This, array: number | string | ArrayBufferView): InstanceType; + static toString(): string; + getUint48(offset: number, LE?: boolean): number; + setUint48(offset: number, value: number, LE?: boolean): void; + int8(offset: number, next?: number): number; + uint8(offset: number, next?: number): number; + int16(offset: number, next?: number): number; + uint16(offset: number, next?: number): number; + int32(offset: number, next?: number): number; + uint32(offset: number, next?: number): number; + uint48(offset: number, next?: number): number; + int64(offset: number, next?: bigint): bigint; + uint64(offset: number, next?: bigint): bigint; + float32(offset: number, next?: number): number; + float64(offset: number, next?: number): number; + asArray(): Uint8Array; + toString(): string; + } +} + +declare namespace $ { + type $mol_data_value = (val: Input) => Output; +} + +declare namespace $ { + type $mol_data_tagged_type = Value & { + [Key in Tag]: Value; + }; + type $mol_data_tagged_parser = { + Value: Output; + } & ((val: $mol_data_tagged_type) => Output); + export function $mol_data_tagged>(config: Config): { [Type in keyof Config]: $mol_data_tagged_parser[0], $mol_data_tagged_type, Type>>; }; + export {}; +} + +declare namespace $ { + const $hyoo_crus_ref: { + Value: symbol & { + $hyoo_crus_ref: symbol; + }; + } & ((val: (string | symbol) & {}) => symbol & { + $hyoo_crus_ref: symbol; + }); + type $hyoo_crus_ref = typeof $hyoo_crus_ref.Value; + function $hyoo_crus_ref_land(ref: $hyoo_crus_ref): symbol & { + $hyoo_crus_ref: symbol; + }; + function $hyoo_crus_ref_peer(ref: $hyoo_crus_ref): string; + function $hyoo_crus_ref_head(ref: $hyoo_crus_ref): string; + function $hyoo_crus_ref_encode(ref: $hyoo_crus_ref): Uint8Array; + function $hyoo_crus_ref_decode(bin: Uint8Array): symbol & { + $hyoo_crus_ref: symbol; + }; + function $hyoo_crus_ref_relate(base: $hyoo_crus_ref, ref: $hyoo_crus_ref): symbol & { + $hyoo_crus_ref: symbol; + }; + function $hyoo_crus_ref_resolve(base: $hyoo_crus_ref, ref: $hyoo_crus_ref): symbol & { + $hyoo_crus_ref: symbol; + }; +} + +declare namespace $ { + function $mol_base64_url_encode(buffer: Uint8Array): string; + function $mol_base64_url_decode(str: string): Uint8Array; +} + +declare namespace $ { + var $mol_crypto_native: Crypto; +} + +declare namespace $ { + class $mol_crypto_key extends $mol_buffer { + static from(this: This, serial: number | string | ArrayBufferView): InstanceType; + asArray(): Uint8Array; + toString(): string; + } + class $mol_crypto_key_public extends $mol_crypto_key { + static size_str: number; + static size_bin: number; + native(): Promise; + verify(data: BufferSource, sign: BufferSource): Promise; + } + class $mol_crypto_key_private extends $mol_crypto_key { + static size_str: number; + static size_bin: number; + static size_sign: number; + static generate(): Promise<$mol_crypto_key_private>; + native(): Promise; + public(): $mol_crypto_key_public; + sign(data: BufferSource): Promise; + } +} + +declare namespace $ { + class $mol_crypto_secret extends Object { + readonly native: CryptoKey & { + type: 'secret'; + }; + static size: number; + constructor(native: CryptoKey & { + type: 'secret'; + }); + static generate(): Promise<$mol_crypto_secret>; + static from(serial: BufferSource): Promise<$mol_crypto_secret>; + static pass(pass: string, salt: Uint8Array): Promise<$mol_crypto_secret>; + static derive(private_serial: string, public_serial: string): Promise<$mol_crypto_secret>; + serial(): Promise; + encrypt(open: BufferSource, salt: BufferSource): Promise; + decrypt(closed: BufferSource, salt: BufferSource): Promise; + } +} + +declare namespace $ { + class $hyoo_crus_auth extends $mol_crypto_key_private { + static current(next?: $hyoo_crus_auth | null): $hyoo_crus_auth; + static embryos: string[]; + static grab(): $hyoo_crus_auth; + static generate(): Promise<$hyoo_crus_auth>; + lord(): symbol & { + $hyoo_crus_ref: symbol; + }; + peer(): string; + secret_mutual(pub: string): $mol_crypto_secret; + } +} + +declare namespace $ { + type $hyoo_crus_face_data = Iterable; + class $hyoo_crus_face_map extends Map { + last: number; + total: number; + constructor(entries?: $hyoo_crus_face_data); + sync(right: $hyoo_crus_face_data): void; + time_max(peer: string, time: number): void; + tick(): number; + } +} + +declare namespace $ { + class $mol_wire_dict extends Map { + pub: $mol_wire_pub; + has(key: Key): boolean; + get(key: Key): Value | undefined; + entries(): IterableIterator<[Key, Value]>; + keys(): IterableIterator; + values(): IterableIterator; + forEach(task: (value: Value, key: Key, dict: Map) => void, self?: any): void; + [Symbol.iterator](): IterableIterator<[Key, Value]>; + get size(): number; + set(key: Key, value: Value): this; + delete(key: Key): boolean; + clear(): void; + item(key: Key, next?: Value | null): NonNullable | null; + } +} + +declare namespace $ { + class $mol_wire_set extends Set { + pub: $mol_wire_pub; + has(value: Value): boolean; + entries(): IterableIterator<[Value, Value]>; + keys(): IterableIterator; + values(): IterableIterator; + forEach(task: (value: Value, value2: Value, set: Set) => void, self?: any): void; + [Symbol.iterator](): IterableIterator; + get size(): number; + add(value: Value): this; + delete(value: Value): boolean; + clear(): void; + item(val: Value, next?: boolean): boolean; + } +} + +declare namespace $ { + enum $hyoo_crus_area { + data = 0, + meta = 1 + } + function $hyoo_crus_area_of(numb: string): "data" | "meta"; + function $hyoo_crus_area_to(numb: string, area: keyof typeof $hyoo_crus_area): string; +} + +declare namespace $ { + enum $hyoo_crus_rank { + nil = 0, + get = 1, + add = 3, + mod = 7, + law = 15 + } + type $hyoo_crus_rank_preset = Record; + let $hyoo_crus_rank_private: $hyoo_crus_rank_preset; + let $hyoo_crus_rank_public: $hyoo_crus_rank_preset; + let $hyoo_crus_rank_lobby: $hyoo_crus_rank_preset; + let $hyoo_crus_rank_orgy: $hyoo_crus_rank_preset; +} + +declare namespace $ { + class $hyoo_crus_fund extends $mol_object { + readonly item_make: (head: Key) => Node; + constructor(item_make: (head: Key) => Node); + Item(head: Key): Node; + } +} + +declare namespace $ { + function $mol_crypto_hash(data: Uint8Array): Uint8Array; +} + +declare namespace $ { + type $hyoo_crus_pack_parts = { + lands: Record<$hyoo_crus_ref, { + faces: $hyoo_crus_face_map; + units: $hyoo_crus_unit[]; + }>; + rocks: [Uint8Array, null | Uint8Array][]; + }; + class $hyoo_crus_pack extends $mol_buffer { + toBlob(): Blob; + parts(land?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null): { + lands: Record; + rocks: [Uint8Array, Uint8Array | null][]; + }; + static make({ lands, rocks }: $hyoo_crus_pack_parts): $hyoo_crus_pack; + } +} + +declare namespace $ { + class $hyoo_crus_mine extends $mol_object { + static hash(blob: Uint8Array): Uint8Array; + static rock(hash: Uint8Array, next?: Uint8Array): Uint8Array | null; + static save(blob: Uint8Array): Uint8Array; + } +} + +declare namespace $ { + class $hyoo_crus_mine_node extends $hyoo_crus_mine { + static root(): $mol_file; + static rock_file(hash: Uint8Array): $mol_file; + static rock(hash: Uint8Array, next?: Uint8Array): Uint8Array | null; + } +} + +declare namespace $ { + class $mol_time_base { + static patterns: Record string>; + static formatter(pattern: string): (arg: any) => string; + toString(pattern: string): string; + } +} + +declare namespace $ { + type $mol_time_duration_config = number | string | { + year?: number; + month?: number; + day?: number; + hour?: number; + minute?: number; + second?: number; + }; + class $mol_time_duration extends $mol_time_base { + constructor(config?: $mol_time_duration_config); + readonly year: number; + readonly month: number; + readonly day: number; + readonly hour: number; + readonly minute: number; + readonly second: number; + get normal(): $mol_time_duration; + summ(config: $mol_time_duration_config): $mol_time_duration; + mult(numb: number): $mol_time_duration; + count(config: $mol_time_duration_config): number; + valueOf(): number; + toJSON(): string; + toString(pattern?: string): string; + [Symbol.toPrimitive](mode: 'default' | 'number' | 'string'): string | number; + static patterns: { + '#Y': (duration: $mol_time_duration) => string; + '#M': (duration: $mol_time_duration) => string; + '#D': (duration: $mol_time_duration) => string; + '#h': (duration: $mol_time_duration) => string; + '#m': (duration: $mol_time_duration) => string; + '#s': (duration: $mol_time_duration) => string; + hh: (moment: $mol_time_moment) => string; + h: (moment: $mol_time_moment) => string; + ':mm': (moment: $mol_time_moment) => string; + mm: (moment: $mol_time_moment) => string; + m: (moment: $mol_time_moment) => string; + ':ss': (moment: $mol_time_moment) => string; + ss: (moment: $mol_time_moment) => string; + s: (moment: $mol_time_moment) => string; + '.sss': (moment: $mol_time_moment) => string; + sss: (moment: $mol_time_moment) => string; + }; + } +} + +declare namespace $ { + enum $mol_time_moment_weekdays { + monday = 0, + tuesday = 1, + wednesday = 2, + thursday = 3, + friday = 4, + saturday = 5, + sunday = 6 + } + type $mol_time_moment_config = number | Date | string | { + year?: number; + month?: number; + day?: number; + hour?: number; + minute?: number; + second?: number; + offset?: $mol_time_duration_config; + }; + class $mol_time_moment extends $mol_time_base { + constructor(config?: $mol_time_moment_config); + readonly year: number | undefined; + readonly month: number | undefined; + readonly day: number | undefined; + readonly hour: number | undefined; + readonly minute: number | undefined; + readonly second: number | undefined; + readonly offset: $mol_time_duration | undefined; + get weekday(): number; + _native: Date | undefined; + get native(): Date; + _normal: $mol_time_moment | undefined; + get normal(): $mol_time_moment; + merge(config: $mol_time_moment_config): $mol_time_moment; + shift(config: $mol_time_duration_config): $mol_time_moment; + mask(config: $mol_time_moment_config): $mol_time_moment; + toOffset(config?: $mol_time_duration_config): $mol_time_moment; + valueOf(): number; + toJSON(): string; + toString(pattern?: string): string; + [Symbol.toPrimitive](mode: 'default' | 'number' | 'string'): string | number; + static patterns: { + YYYY: (moment: $mol_time_moment) => string; + AD: (moment: $mol_time_moment) => string; + YY: (moment: $mol_time_moment) => string; + Month: (moment: $mol_time_moment) => string; + 'DD Month': (moment: $mol_time_moment) => string; + 'D Month': (moment: $mol_time_moment) => string; + Mon: (moment: $mol_time_moment) => string; + 'DD Mon': (moment: $mol_time_moment) => string; + 'D Mon': (moment: $mol_time_moment) => string; + '-MM': (moment: $mol_time_moment) => string; + MM: (moment: $mol_time_moment) => string; + M: (moment: $mol_time_moment) => string; + WeekDay: (moment: $mol_time_moment) => string; + WD: (moment: $mol_time_moment) => string; + '-DD': (moment: $mol_time_moment) => string; + DD: (moment: $mol_time_moment) => string; + D: (moment: $mol_time_moment) => string; + Thh: (moment: $mol_time_moment) => string; + hh: (moment: $mol_time_moment) => string; + h: (moment: $mol_time_moment) => string; + ':mm': (moment: $mol_time_moment) => string; + mm: (moment: $mol_time_moment) => string; + m: (moment: $mol_time_moment) => string; + ':ss': (moment: $mol_time_moment) => string; + ss: (moment: $mol_time_moment) => string; + s: (moment: $mol_time_moment) => string; + '.sss': (moment: $mol_time_moment) => string; + sss: (moment: $mol_time_moment) => string; + Z: (moment: $mol_time_moment) => string; + }; + } +} + +declare namespace $ { + type $mol_time_interval_config = string | { + start?: $mol_time_moment_config; + end?: $mol_time_moment_config; + duration?: $mol_time_duration_config; + }; + class $mol_time_interval extends $mol_time_base { + constructor(config: $mol_time_interval_config); + private _start; + get start(): $mol_time_moment; + private _end; + get end(): $mol_time_moment; + private _duration; + get duration(): $mol_time_duration; + toJSON(): string; + toString(): string; + [Symbol.toPrimitive](mode: 'default' | 'number' | 'string'): string; + } +} + +declare namespace $ { + type $mol_type_result = Func extends (...params: any) => infer Result ? Result : Func extends new (...params: any) => infer Result ? Result : never; +} + +declare namespace $ { + function $mol_dom_serialize(node: Node): string; +} + +declare namespace $ { + function $mol_dom_parse(text: string, type?: DOMParserSupportedType): Document; +} + +declare namespace $ { + type json = null | boolean | number | string | { + [key in string]: json; + } | readonly json[]; + export type $hyoo_crus_vary_type = Uint8Array | bigint | $hyoo_crus_ref | $mol_time_moment | $mol_time_duration | $mol_time_interval | $mol_tree2 | json | Node; + export let $hyoo_crus_vary_mapping: { + nil: null; + bin: Uint8ArrayConstructor; + bool: BooleanConstructor; + int: BigIntConstructor; + real: NumberConstructor; + ref: SymbolConstructor; + str: StringConstructor; + time: typeof $mol_time_moment; + dur: typeof $mol_time_duration; + range: typeof $mol_time_interval; + json: ObjectConstructor; + jsan: ArrayConstructor; + dom: { + new (): Element; + prototype: Element; + }; + tree: typeof $mol_tree2; + }; + export type $hyoo_crus_vary_classes = typeof $hyoo_crus_vary_mapping[keyof typeof $hyoo_crus_vary_mapping]; + export type $hyoo_crus_vary_pack = { + tip: keyof typeof $hyoo_crus_vary_tip; + bin: Uint8Array; + }; + export enum $hyoo_crus_vary_tip { + nil = 0, + bin = 1, + bool = 2, + int = 3, + real = 4, + ref = 5, + str = 16, + time = 17, + dur = 18, + range = 19, + json = 20, + jsan = 21, + dom = 22, + tree = 23 + } + export function $hyoo_crus_vary_switch any; + bin: (vary: Uint8Array) => any; + bool: (vary: boolean) => any; + int: (vary: bigint) => any; + real: (vary: number) => any; + ref: (vary: $hyoo_crus_ref) => any; + str: (vary: string) => any; + time: (vary: $mol_time_moment) => any; + dur: (vary: $mol_time_duration) => any; + range: (vary: $mol_time_interval) => any; + json: (vary: {}) => any; + jsan: (vary: any[]) => any; + dom: (vary: Element) => any; + tree: (vary: $mol_tree2) => any; + }>(vary: $hyoo_crus_vary_type, ways: Ways): $mol_type_result; + export function $hyoo_crus_vary_encode(vary: $hyoo_crus_vary_type): $hyoo_crus_vary_pack; + export function $hyoo_crus_vary_decode({ tip, bin }: $hyoo_crus_vary_pack): $hyoo_crus_vary_type; + export {}; +} + +declare namespace $ { + type $mol_type_partial_deep = Val extends object ? Val extends Function ? Val : { + [field in keyof Val]?: $mol_type_partial_deep | undefined; + } : Val; +} + +declare namespace $ { + let $mol_jsx_prefix: string; + let $mol_jsx_crumbs: string; + let $mol_jsx_booked: Set | null; + let $mol_jsx_document: $mol_jsx.JSX.ElementClass['ownerDocument']; + const $mol_jsx_frag = ""; + function $mol_jsx>(Elem: string | ((props: Props, ...children: Children) => Element), props: Props, ...childNodes: Children): Element | DocumentFragment; + namespace $mol_jsx.JSX { + interface Element extends HTMLElement { + class?: string; + } + interface ElementClass { + attributes: {}; + ownerDocument: Pick; + childNodes: Array; + valueOf(): Element; + } + type OrString = { + [key in keyof Dict]: Dict[key] | string; + }; + type IntrinsicElements = { + [key in keyof ElementTagNameMap]?: $.$mol_type_partial_deep>; + }; + interface IntrinsicAttributes { + id?: string; + xmlns?: string; + } + interface ElementAttributesProperty { + attributes: {}; + } + interface ElementChildrenAttribute { + } + } +} + +declare namespace $ { + function $mol_tree2_bin_to_bytes(tree: $mol_tree2): Uint8Array; + function $mol_tree2_bin_from_bytes(bytes: ArrayLike, span?: $mol_span): $mol_tree2; + function $mol_tree2_bin_from_string(str: string, span?: $mol_span): $mol_tree2; +} + +declare namespace $ { + function $mol_tree2_xml_from_dom(dom: Node): $mol_tree2; +} + +declare namespace $ { + function $hyoo_crus_vary_cast_bin(vary: $hyoo_crus_vary_type): Uint8Array | null; + function $hyoo_crus_vary_cast_bool(vary: $hyoo_crus_vary_type): boolean | null; + function $hyoo_crus_vary_cast_int(vary: $hyoo_crus_vary_type): bigint | null; + function $hyoo_crus_vary_cast_real(vary: $hyoo_crus_vary_type): number | null; + function $hyoo_crus_vary_cast_ref(vary: $hyoo_crus_vary_type): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + function $hyoo_crus_vary_cast_str(vary: $hyoo_crus_vary_type): string | null; + function $hyoo_crus_vary_cast_time(vary: $hyoo_crus_vary_type): $mol_time_moment | null; + function $hyoo_crus_vary_cast_dur(vary: $hyoo_crus_vary_type): $mol_time_moment | $mol_time_duration | null; + function $hyoo_crus_vary_cast_range(vary: $hyoo_crus_vary_type): $mol_time_interval | null; + function $hyoo_crus_vary_cast_json(vary: $hyoo_crus_vary_type): any; + function $hyoo_crus_vary_cast_jsan(vary: $hyoo_crus_vary_type): any[] | string[] | number[] | boolean[] | {}[] | null; + function $hyoo_crus_vary_cast_dom(vary: $hyoo_crus_vary_type): Element | HTMLElement | $mol_jsx.JSX.Element | null; + function $hyoo_crus_vary_cast_tree(vary: $hyoo_crus_vary_type): $mol_tree2 | null; + const $hyoo_crus_vary_cast_funcs: { + readonly nil: () => null; + readonly bin: typeof $hyoo_crus_vary_cast_bin; + readonly bool: typeof $hyoo_crus_vary_cast_bool; + readonly int: typeof $hyoo_crus_vary_cast_int; + readonly real: typeof $hyoo_crus_vary_cast_real; + readonly ref: typeof $hyoo_crus_vary_cast_ref; + readonly str: typeof $hyoo_crus_vary_cast_str; + readonly time: typeof $hyoo_crus_vary_cast_time; + readonly dur: typeof $hyoo_crus_vary_cast_dur; + readonly range: typeof $hyoo_crus_vary_cast_range; + readonly json: typeof $hyoo_crus_vary_cast_json; + readonly jsan: typeof $hyoo_crus_vary_cast_jsan; + readonly dom: typeof $hyoo_crus_vary_cast_dom; + readonly tree: typeof $hyoo_crus_vary_cast_tree; + }; + function $hyoo_crus_vary_cast(tip: Tip, vary: $hyoo_crus_vary_type): any; +} + +declare namespace $ { + function $mol_guard_defined(value: T): value is NonNullable; +} + +declare namespace $ { + class $mol_bus extends $mol_object { + readonly name: string; + readonly handle: (data: Data) => void; + readonly channel: BroadcastChannel; + constructor(name: string, handle: (data: Data) => void); + destructor(): void; + send(data: Data): void; + } +} + +declare namespace $ { + function $mol_promise(): Promise & { + done: (res: Result | PromiseLike) => void; + fail: (error?: any) => void; + }; +} + +declare namespace $ { + function $mol_wait_timeout_async(this: $, timeout: number): Promise & { + done: (res: void | PromiseLike) => void; + fail: (error?: any) => void; + } & { + destructor: () => void; + }; + function $mol_wait_timeout(this: $, timeout: number): void; +} + +declare namespace $ { + function $mol_wire_race any)[]>(...tasks: Tasks): { + [index in keyof Tasks]: ReturnType; + }; +} + +declare namespace $ { + class $hyoo_crus_land extends $mol_object { + realm(): $hyoo_crus_realm | null; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + auth(): $hyoo_crus_auth; + faces: $hyoo_crus_face_map; + passes: $mol_wire_dict; + gifts: $mol_wire_dict; + gists: $mol_wire_dict>; + self_all: $mol_wire_set; + self_make(area: keyof typeof $hyoo_crus_area, idea?: number): string; + home(): $hyoo_crus_home; + Data(Node: Node): InstanceType; + Meta(): $hyoo_crus_meta; + Node(Node: Node): $hyoo_crus_fund>; + total(): number; + joined_list(): (symbol & { + $hyoo_crus_ref: symbol; + })[]; + key(): $hyoo_crus_auth | null; + lord_rank(lord: $hyoo_crus_ref, next?: $hyoo_crus_rank): $hyoo_crus_rank; + peer_rank(peer: string): $hyoo_crus_rank; + delta_unit(face?: $hyoo_crus_face_map): $hyoo_crus_unit[]; + delta_pack(face?: $hyoo_crus_face_map): $hyoo_crus_pack | null; + delta_parts(face?: $hyoo_crus_face_map): { + lands: { + [x: symbol]: { + faces: $hyoo_crus_face_map; + units: $hyoo_crus_unit[]; + }; + }; + rocks: [Uint8Array, Uint8Array | null][]; + } | null; + faces_pack(): $hyoo_crus_pack; + apply_unit(delta: readonly $hyoo_crus_unit[], skip_check?: boolean): string[]; + units_verify(delta: readonly $hyoo_crus_unit[]): Promise; + apply_unit_trust(delta: readonly $hyoo_crus_unit[], skip_check?: boolean): string[]; + apply_land(land: $hyoo_crus_land): string[]; + recheck(): void; + check_unit(unit: $hyoo_crus_unit): string; + fork(preset?: $hyoo_crus_rank_preset): $hyoo_crus_land; + gists_ordered(head: string): $hyoo_crus_gist[]; + join(): $hyoo_crus_pass; + give(dest: $hyoo_crus_auth | null, rank: $hyoo_crus_rank): $hyoo_crus_gift; + post(lead: string, head: string, self: string, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): $hyoo_crus_gist; + gist_move(gist: $hyoo_crus_gist, head: string, seat: number): void; + gist_wipe(gist: $hyoo_crus_gist): void; + broadcast(): void; + sync(): this; + bus(): $mol_bus; + loading(): void; + saving(): void; + save(): void; + unit_sign(unit: $hyoo_crus_unit): void; + gist_encode(gist: $hyoo_crus_gist): $hyoo_crus_gist; + gist_decode(gist: $hyoo_crus_gist): $hyoo_crus_vary_type; + gist_decode_raw(gist: $hyoo_crus_gist): $hyoo_crus_vary_type; + key_public(peer: string): $mol_crypto_key_public | null; + secret_mutual(key_public: string): $mol_crypto_secret; + encryptable(): boolean; + encrypted(next?: boolean): boolean; + secret(): $mol_crypto_secret | null; + dump(): { + land: symbol & { + $hyoo_crus_ref: symbol; + }; + units: $hyoo_crus_unit[]; + rocks: [Uint8Array, Uint8Array][]; + }; + } +} + +declare namespace $ { + enum $hyoo_crus_unit_kind { + pass = 255, + gift = 247, + gist = 0 + } + class $hyoo_crus_unit extends $mol_buffer { + static size: 128; + constructor(buffer?: ArrayBuffer, byteOffset?: number, byteLength?: number); + kind(): "pass" | "gist" | "gift"; + choose(ways: { + pass: (unit: $hyoo_crus_pass) => Res; + gift: (unit: $hyoo_crus_gift) => Res; + gist: (unit: $hyoo_crus_gist) => Res; + }): Res; + narrow(): $hyoo_crus_gist | $hyoo_crus_gift | $hyoo_crus_pass; + key(): string; + id6(offset: number, next?: string): string; + id12(offset: number, next?: $hyoo_crus_ref): symbol & { + $hyoo_crus_ref: symbol; + }; + _peer: string; + peer(next?: string): string; + salt(): Uint8Array; + sens(next?: ArrayLike): Uint8Array; + mix(mixin: Uint8Array): void; + sign(next?: ArrayLike): Uint8Array; + signed(): boolean; + _land: $hyoo_crus_land | null; + } +} + +declare namespace $ { + class $hyoo_crus_pass extends $hyoo_crus_unit { + work(): number; + _lord: $hyoo_crus_ref; + lord(next?: $hyoo_crus_ref): symbol & { + $hyoo_crus_ref: symbol; + }; + key(): string; + auth(next?: ArrayLike): Uint8Array; + } +} + +declare namespace $ { + class $hyoo_crus_gift extends $hyoo_crus_unit { + rank(next?: $hyoo_crus_rank): $hyoo_crus_rank; + time(next?: number): number; + free(): Uint8Array; + _dest: $hyoo_crus_ref; + dest(next?: $hyoo_crus_ref): symbol & { + $hyoo_crus_ref: symbol; + }; + key(): string; + bill(): Uint8Array; + static compare(left: $hyoo_crus_gift, right: $hyoo_crus_gift): number; + } +} + +declare namespace $ { + enum $mol_rest_code { + Continue = 100, + Switching_Protocols = 101, + Processing = 102, + OK = 200, + Created = 201, + Accepted = 202, + Non_Authoritative_Information = 203, + No_Content = 204, + Reset_Content = 205, + Partial_Content = 206, + Multi_Status = 207, + Already_Reported = 208, + IM_Used = 226, + Multiple_Choices = 300, + Moved_Permanently = 301, + Found = 302, + See_Other = 303, + Not_Modified = 304, + Use_Proxy = 305, + Temporary_Redirect = 307, + Bad_Request = 400, + Unauthorized = 401, + Payment_Required = 402, + Forbidden = 403, + Not_Found = 404, + Method_Not_Allowed = 405, + Not_Acceptable = 406, + Proxy_Authentication_Required = 407, + Request_Timeout = 408, + Conflict = 409, + Gone = 410, + Length_Required = 411, + Precondition_Failed = 412, + Request_Entity_Too_Large = 413, + Request_URI_Too_Long = 414, + Unsupported_Media_Type = 415, + Requested_Range_Not_Satisfiable = 416, + Expectation_Failed = 417, + Teapot = 418, + Unprocessable_Entity = 422, + Locked = 423, + Failed_Dependency = 424, + Upgrade_Required = 426, + Precondition_Required = 428, + Too_Many_Requests = 429, + Request_Header_Fields_Too_Large = 431, + Unavailable_For_Legal_Reasons = 451, + Internal_Server_Error = 500, + Not_Implemented = 501, + Bad_Gateway = 502, + Service_Unavailable = 503, + Gateway_Timeout = 504, + HTTP_Version_Not_Supported = 505, + Insufficient_Storage = 507, + Loop_Detected = 508, + Not_Extended = 510, + Network_Authentication_Required = 511, + Network_Read_Timeout_Error = 598, + Network_Connect_Timeout_Error = 599 + } +} + +declare namespace $ { + type $mol_rest_port_mime_hi = 'text' | 'application' | 'font' | 'audio' | 'video' | 'image' | 'model'; + type $mol_rest_port_mime = `${$mol_rest_port_mime_hi}/${string}`; + class $mol_rest_port extends $mol_object { + send_code(code: $mol_rest_code): void; + send_type(mime: $mol_rest_port_mime): void; + send_data(data: null | string | Uint8Array | Element | object): void; + send_nil(): void; + send_bin(data: Uint8Array): void; + send_text(data: string): void; + send_json(data: object): void; + send_dom(data: Element): void; + static make(this: This, config: Partial>): InstanceType; + } +} + +declare namespace $ { + class $mol_rest_port_ws extends $mol_rest_port { + } +} + +declare namespace $ { + enum $mol_websocket_frame_op { + con = 0, + txt = 1, + bin = 2, + stop = 8, + ping = 9, + pong = 10 + } + class $mol_websocket_frame extends $mol_buffer { + kind(next?: { + op: keyof typeof $mol_websocket_frame_op; + fin: boolean; + }): { + op: keyof typeof $mol_websocket_frame_op; + fin: boolean; + } | { + op: "stop" | "bin" | "con" | "txt" | "ping" | "pong"; + fin: number; + }; + data(next?: { + size: number; + mask: boolean; + }): { + size: number; + mask: boolean; + } | { + size: number; + mask: number; + }; + size(): number; + mask(): Uint8Array; + toString(): string; + static make(op: keyof typeof $mol_websocket_frame_op, size?: number, mask?: boolean, fin?: boolean): $mol_websocket_frame; + } +} + +declare namespace $ { + class $mol_rest_port_ws_std extends $mol_rest_port_ws { + socket: WebSocket; + send_nil(): void; + send_bin(data: Uint8Array): void; + send_text(data: string): void; + } +} + +declare namespace $ { + class $mol_rest_port_ws_node extends $mol_rest_port_ws { + socket: InstanceType<$node['stream']['Duplex']>; + send_nil(): void; + send_bin(data: Uint8Array): void; + send_text(data: string): void; + } +} + +declare namespace $ { + class $hyoo_crus_yard extends $mol_object { + realm(): $hyoo_crus_realm; + persisted: WeakSet<$hyoo_crus_unit>; + neonatals: $mol_wire_set; + load(land: $hyoo_crus_land): readonly $hyoo_crus_unit[]; + save(land: $hyoo_crus_land, units: readonly $hyoo_crus_unit[]): Promise; + static masters: string[]; + master_cursor(next?: number): number; + master_current(): string; + master_next(): void; + reconnects(reset?: null): number; + master(): $mol_rest_port | null; + slaves: $mol_wire_set<$mol_rest_port>; + sync(): void; + ports(): $mol_rest_port[]; + port_lands(port: $mol_rest_port): $mol_wire_set; + port_income(port: $mol_rest_port, msg: Uint8Array): void; + sync_land(land: $hyoo_crus_ref): void; + sync_port_land([port, land]: [$mol_rest_port, $hyoo_crus_ref]): void; + init_port_land([port, land]: [$mol_rest_port, $hyoo_crus_ref]): void; + face_port_land([port, land]: [$mol_rest_port, $hyoo_crus_ref], next?: $hyoo_crus_face_map | null): $hyoo_crus_face_map | null; + } +} + +declare namespace $ { + class $hyoo_crus_yard_node extends $.$hyoo_crus_yard { + root(): $mol_file; + land_file(land: $hyoo_crus_land): $mol_file; + land_offsets(land: $hyoo_crus_land): Map; + file_sizes: Map; + land_descr(land: $hyoo_crus_land): number; + save(land: $hyoo_crus_land, units: readonly $hyoo_crus_unit[]): Promise; + load(land: $hyoo_crus_land): $hyoo_crus_unit[]; + } +} + +declare namespace $ { + enum $hyoo_crus_gist_tag { + term = 0, + solo = 1, + vals = 2, + keys = 3 + } + class $hyoo_crus_gist extends $hyoo_crus_unit { + _vary: $hyoo_crus_vary_type | undefined; + _open: Uint8Array | null; + hint(tip?: "ref" | "nil" | "bin" | "bool" | "int" | "real" | "str" | "time" | "dur" | "range" | "json" | "jsan" | "dom" | "tree", tag?: "keys" | "term" | "solo" | "vals"): void; + tag(): "keys" | "term" | "solo" | "vals"; + tip(): "ref" | "nil" | "bin" | "bool" | "int" | "real" | "str" | "time" | "dur" | "range" | "json" | "jsan" | "dom" | "tree"; + utf(): boolean; + nil(): boolean; + size(next?: number): number; + time(next?: number): number; + _self: string; + self(next?: string): string; + _head: string; + head(next?: string): string; + key(): string; + _lead: string; + lead(next?: string): string; + hash(next?: Uint8Array, tip?: "ref" | "nil" | "bin" | "bool" | "int" | "real" | "str" | "time" | "dur" | "range" | "json" | "jsan" | "dom" | "tree", tag?: "keys" | "term" | "solo" | "vals"): Uint8Array; + meta(): Uint8Array; + data(next?: Uint8Array, tip?: "ref" | "nil" | "bin" | "bool" | "int" | "real" | "str" | "time" | "dur" | "range" | "json" | "jsan" | "dom" | "tree", tag?: "keys" | "term" | "solo" | "vals"): Uint8Array; + idea(): number; + static compare(left: $hyoo_crus_gist, right: $hyoo_crus_gist): number; + } +} + +declare namespace $ { + class $hyoo_crus_node extends $mol_object { + static tag: "keys" | "term" | "solo" | "vals"; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + } +} + +declare namespace $ { + function $mol_reconcile({ prev, from, to, next, equal, drop, insert, update, }: { + prev: readonly Prev[]; + from: number; + to: number; + next: ArrayLike; + equal: (next: Next, prev: Prev) => boolean; + drop: (prev: Prev, lead: Prev | null) => Prev | null; + insert: (next: Next, lead: Prev | null) => Prev; + update?: (next: Next, prev: Prev, lead: Prev | null) => Prev; + }): void; +} + +declare namespace $ { + class $hyoo_crus_realm extends $mol_object { + lands: $mol_wire_dict; + yard(): $hyoo_crus_yard; + home(): $hyoo_crus_home; + king_grab(preset?: $hyoo_crus_rank_preset): $hyoo_crus_auth; + land_grab(preset?: $hyoo_crus_rank_preset): $hyoo_crus_land; + Land(ref: $hyoo_crus_ref): $hyoo_crus_land; + Node(ref: $hyoo_crus_ref, Node: Node): InstanceType; + apply_pack(pack: $hyoo_crus_pack): void; + } +} + +declare namespace $ { + export class $hyoo_crus_list_vary extends $hyoo_crus_node { + static tag: "keys" | "term" | "solo" | "vals"; + items_vary(next?: readonly $hyoo_crus_vary_type[], tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + } + export function $hyoo_crus_list(parse: Parse): (abstract new () => { + items(next?: readonly ReturnType[]): readonly ReturnType[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: Parse; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + const $hyoo_crus_list_bin_base: (abstract new () => { + items(next?: readonly (Uint8Array | null)[] | undefined): readonly (Uint8Array | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_bin; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_bin extends $hyoo_crus_list_bin_base { + } + const $hyoo_crus_list_bool_base: (abstract new () => { + items(next?: readonly (boolean | null)[] | undefined): readonly (boolean | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_bool; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_bool extends $hyoo_crus_list_bool_base { + } + const $hyoo_crus_list_int_base: (abstract new () => { + items(next?: readonly (bigint | null)[] | undefined): readonly (bigint | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_int; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_int extends $hyoo_crus_list_int_base { + } + const $hyoo_crus_list_real_base: (abstract new () => { + items(next?: readonly (number | null)[] | undefined): readonly (number | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_real; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_real extends $hyoo_crus_list_real_base { + } + const $hyoo_crus_list_ref_base_1: (abstract new () => { + items(next?: readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[] | undefined): readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_ref extends $hyoo_crus_list_ref_base_1 { + } + const $hyoo_crus_list_str_base: (abstract new () => { + items(next?: readonly (string | null)[] | undefined): readonly (string | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_str; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_str extends $hyoo_crus_list_str_base { + } + const $hyoo_crus_list_time_base: (abstract new () => { + items(next?: readonly ($mol_time_moment | null)[] | undefined): readonly ($mol_time_moment | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_time; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_time extends $hyoo_crus_list_time_base { + } + const $hyoo_crus_list_dur_base: (abstract new () => { + items(next?: readonly ($mol_time_moment | $mol_time_duration | null)[] | undefined): readonly ($mol_time_moment | $mol_time_duration | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_dur; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_dur extends $hyoo_crus_list_dur_base { + } + const $hyoo_crus_list_range_base: (abstract new () => { + items(next?: readonly ($mol_time_interval | null)[] | undefined): readonly ($mol_time_interval | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_range; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_range extends $hyoo_crus_list_range_base { + } + const $hyoo_crus_list_json_base: (abstract new () => { + items(next?: readonly any[] | undefined): readonly any[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_json; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_json extends $hyoo_crus_list_json_base { + } + const $hyoo_crus_list_jsan_base: (abstract new () => { + items(next?: readonly (any[] | string[] | number[] | boolean[] | {}[] | null)[] | undefined): readonly (any[] | string[] | number[] | boolean[] | {}[] | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_jsan; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_jsan extends $hyoo_crus_list_jsan_base { + } + const $hyoo_crus_list_dom_base: (abstract new () => { + items(next?: readonly (Element | HTMLElement | $mol_jsx.JSX.Element | null)[] | undefined): readonly (Element | HTMLElement | $mol_jsx.JSX.Element | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_dom; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_dom extends $hyoo_crus_list_dom_base { + } + const $hyoo_crus_list_tree_base: (abstract new () => { + items(next?: readonly ($mol_tree2 | null)[] | undefined): readonly ($mol_tree2 | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_tree; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_list_tree extends $hyoo_crus_list_tree_base { + } + export class $hyoo_crus_list_ref_base extends $hyoo_crus_list_ref { + } + export function $hyoo_crus_list_ref_to(Value: Value): { + new (): { + remote_list(next?: readonly $mol_type_result<$mol_type_result>[] | undefined): readonly $mol_type_result<$mol_type_result>[]; + remote_make(preset: $hyoo_crus_rank_preset): $mol_type_result<$mol_type_result>; + local_make(idea?: number): $mol_type_result<$mol_type_result>; + items(next?: readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[] | undefined): readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + Value: Value; + toJSON(): string; + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export {}; +} + +declare namespace $ { + const $hyoo_crus_dict_base: typeof $hyoo_crus_list_vary; + export class $hyoo_crus_dict extends $hyoo_crus_dict_base { + static tag: "keys" | "term" | "solo" | "vals"; + keys(): readonly $hyoo_crus_vary_type[]; + dive(key: $hyoo_crus_vary_type, Node: Node, auto?: any): InstanceType | null; + static schema: Record; + static with>(this: This, schema: Schema): Omit & (new (...args: any[]) => $mol_type_override, { readonly [Key in keyof Schema]: (auto?: any) => InstanceType | null; }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & Schema; + }; + } + export function $hyoo_crus_dict_to(Value: Value): { + new (): { + Value: Value; + key(key: $hyoo_crus_vary_type, auto?: any): InstanceType | null; + keys(): readonly $hyoo_crus_vary_type[]; + dive(key: $hyoo_crus_vary_type, Node: Node, auto?: any): InstanceType | null; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node_1, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_2): InstanceType; + nodes(Node: Node_3 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + toString(): string; + tag: "keys" | "term" | "solo" | "vals"; + schema: Record; + with>(this: This, schema: Schema): Omit & (new (...args: any[]) => $mol_type_override, { readonly [Key in keyof Schema]: (auto?: any) => InstanceType | null; }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & Schema; + }; + make(this: This_1, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export {}; +} + +declare namespace $ { + export class $hyoo_crus_atom_vary extends $hyoo_crus_node { + static tag: "keys" | "term" | "solo" | "vals"; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type): $hyoo_crus_vary_type; + } + export class $hyoo_crus_atom_enum_base extends $hyoo_crus_atom_vary { + static options: readonly $hyoo_crus_vary_type[]; + } + export function $hyoo_crus_atom_enum(options: Options): (abstract new () => { + val(next?: Options[number]): Options[number] | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + options: Options; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export function $hyoo_crus_atom(parse: Parse): (abstract new () => { + val(next?: ReturnType): ReturnType | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: Parse; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + const $hyoo_crus_atom_bin_base: (abstract new () => { + val(next?: Uint8Array | null | undefined): Uint8Array | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_bin; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_bin extends $hyoo_crus_atom_bin_base { + } + const $hyoo_crus_atom_bool_base: (abstract new () => { + val(next?: boolean | null | undefined): boolean | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_bool; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_bool extends $hyoo_crus_atom_bool_base { + } + const $hyoo_crus_atom_int_base: (abstract new () => { + val(next?: bigint | null | undefined): bigint | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_int; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_int extends $hyoo_crus_atom_int_base { + } + const $hyoo_crus_atom_real_base: (abstract new () => { + val(next?: number | null | undefined): number | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_real; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_real extends $hyoo_crus_atom_real_base { + } + const $hyoo_crus_atom_ref_base_1: (abstract new () => { + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_ref extends $hyoo_crus_atom_ref_base_1 { + } + const $hyoo_crus_atom_str_base: (abstract new () => { + val(next?: string | null | undefined): string | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_str; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_str extends $hyoo_crus_atom_str_base { + } + const $hyoo_crus_atom_time_base: (abstract new () => { + val(next?: $mol_time_moment | null | undefined): $mol_time_moment | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_time; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_time extends $hyoo_crus_atom_time_base { + } + const $hyoo_crus_atom_dur_base: (abstract new () => { + val(next?: $mol_time_moment | $mol_time_duration | null | undefined): $mol_time_moment | $mol_time_duration | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_dur; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_dur extends $hyoo_crus_atom_dur_base { + } + const $hyoo_crus_atom_range_base: (abstract new () => { + val(next?: $mol_time_interval | null | undefined): $mol_time_interval | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_range; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_range extends $hyoo_crus_atom_range_base { + } + const $hyoo_crus_atom_json_base: (abstract new () => { + val(next?: any): any; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_json; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_json extends $hyoo_crus_atom_json_base { + } + const $hyoo_crus_atom_jsan_base: (abstract new () => { + val(next?: any[] | string[] | number[] | boolean[] | {}[] | null | undefined): any[] | string[] | number[] | boolean[] | {}[] | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_jsan; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_jsan extends $hyoo_crus_atom_jsan_base { + } + const $hyoo_crus_atom_dom_base: (abstract new () => { + val(next?: Element | HTMLElement | $mol_jsx.JSX.Element | null | undefined): Element | HTMLElement | $mol_jsx.JSX.Element | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_dom; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_dom extends $hyoo_crus_atom_dom_base { + } + const $hyoo_crus_atom_tree_base: (abstract new () => { + val(next?: $mol_tree2 | null | undefined): $mol_tree2 | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }) & { + parse: typeof $hyoo_crus_vary_cast_tree; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export class $hyoo_crus_atom_tree extends $hyoo_crus_atom_tree_base { + } + export class $hyoo_crus_atom_ref_base extends $hyoo_crus_atom_ref { + static Value: typeof $hyoo_crus_dict; + } + export function $hyoo_crus_atom_ref_to(Value: Value): { + new (): { + Value: Value; + yoke(preset?: $hyoo_crus_rank_preset): $hyoo_crus_land | null; + remote(next?: $mol_type_result<$mol_type_result> | null | undefined): $mol_type_result<$mol_type_result> | null; + remote_ensure(preset?: $hyoo_crus_rank_preset): $mol_type_result<$mol_type_result> | null; + local_ensure(): $mol_type_result<$mol_type_result> | null; + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + toString(): string; + Value: typeof $hyoo_crus_dict; + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + export {}; +} + +declare namespace $ { + const $hyoo_crus_home_base: Omit & (new (...args: any[]) => $mol_type_override<$hyoo_crus_dict, { + readonly Title: (auto?: any) => $hyoo_crus_atom_str | null; + readonly Selection: (auto?: any) => $hyoo_crus_atom_str | null; + readonly Hall: (auto?: any) => { + Value: () => typeof $hyoo_crus_dict; + yoke(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_land | null; + remote(next?: $hyoo_crus_dict | null | undefined): $hyoo_crus_dict | null; + remote_ensure(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_dict | null; + local_ensure(): $hyoo_crus_dict | null; + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + } | null; + }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & { + readonly Title: typeof $hyoo_crus_atom_str; + readonly Selection: typeof $hyoo_crus_atom_str; + readonly Hall: { + new (): { + Value: () => typeof $hyoo_crus_dict; + yoke(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_land | null; + remote(next?: $hyoo_crus_dict | null | undefined): $hyoo_crus_dict | null; + remote_ensure(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_dict | null; + local_ensure(): $hyoo_crus_dict | null; + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + toString(): string; + Value: typeof $hyoo_crus_dict; + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + }; + }; + export class $hyoo_crus_home extends $hyoo_crus_home_base { + hall_by(Node: Node, preset?: $hyoo_crus_rank_preset): InstanceType | null; + } + export {}; +} + +declare namespace $ { + const $hyoo_crus_meta_base: Omit & (new (...args: any[]) => $mol_type_override<$hyoo_crus_dict, { + readonly Inflow: (auto?: any) => $hyoo_crus_list_ref | null; + }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & { + readonly Inflow: typeof $hyoo_crus_list_ref; + }; + }; + export class $hyoo_crus_meta extends $hyoo_crus_meta_base { + } + export {}; +} + +declare namespace $ { + const $hyoo_crus_entity_base: Omit & (new (...args: any[]) => $mol_type_override<$hyoo_crus_dict, { + readonly Title: (auto?: any) => $hyoo_crus_atom_str | null; + }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & { + readonly Title: typeof $hyoo_crus_atom_str; + }; + }; + export class $hyoo_crus_entity extends $hyoo_crus_entity_base { + } + export {}; +} + +declare namespace $ { + const $hyoo_survey_meet_base: Omit & (new (...args: any[]) => $mol_type_override<$hyoo_crus_entity, { + readonly Opinions: (auto?: any) => { + Value: { + new (): { + Value: () => typeof $hyoo_survey_meet_opinion; + yoke(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_land | null; + remote(next?: $hyoo_survey_meet_opinion | null | undefined): $hyoo_survey_meet_opinion | null; + remote_ensure(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_survey_meet_opinion | null; + local_ensure(): $hyoo_survey_meet_opinion | null; + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + toString(): string; + Value: typeof $hyoo_crus_dict; + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + key(key: $hyoo_crus_vary_type, auto?: any): { + Value: () => typeof $hyoo_survey_meet_opinion; + yoke(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_land | null; + remote(next?: $hyoo_survey_meet_opinion | null | undefined): $hyoo_survey_meet_opinion | null; + remote_ensure(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_survey_meet_opinion | null; + local_ensure(): $hyoo_survey_meet_opinion | null; + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + } | null; + keys(): readonly $hyoo_crus_vary_type[]; + dive(key: $hyoo_crus_vary_type, Node: Node_2, auto?: any): InstanceType | null; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node_3, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_4): InstanceType; + nodes(Node: Node_5 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + } | null; + }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & { + readonly Opinions: { + new (): { + Value: { + new (): { + Value: () => typeof $hyoo_survey_meet_opinion; + yoke(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_land | null; + remote(next?: $hyoo_survey_meet_opinion | null | undefined): $hyoo_survey_meet_opinion | null; + remote_ensure(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_survey_meet_opinion | null; + local_ensure(): $hyoo_survey_meet_opinion | null; + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + toString(): string; + Value: typeof $hyoo_crus_dict; + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + key(key: $hyoo_crus_vary_type, auto?: any): { + Value: () => typeof $hyoo_survey_meet_opinion; + yoke(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_crus_land | null; + remote(next?: $hyoo_survey_meet_opinion | null | undefined): $hyoo_survey_meet_opinion | null; + remote_ensure(preset?: $hyoo_crus_rank_preset | undefined): $hyoo_survey_meet_opinion | null; + local_ensure(): $hyoo_survey_meet_opinion | null; + val(next?: (symbol & { + $hyoo_crus_ref: symbol; + }) | null | undefined): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + pick_unit(): $hyoo_crus_gist | undefined; + vary(next?: $hyoo_crus_vary_type | undefined): $hyoo_crus_vary_type; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node): InstanceType; + nodes(Node: Node_1 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + } | null; + keys(): readonly $hyoo_crus_vary_type[]; + dive(key: $hyoo_crus_vary_type, Node: Node_2, auto?: any): InstanceType | null; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node_3, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_4): InstanceType; + nodes(Node: Node_5 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + toString(): string; + tag: "keys" | "term" | "solo" | "vals"; + schema: Record; + with>(this: This_1, schema: Schema): Omit & (new (...args: any[]) => $mol_type_override, { readonly [Key in keyof Schema]: (auto?: any) => InstanceType | null; }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & Schema; + }; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toJSON(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + }; + }; + export class $hyoo_survey_meet extends $hyoo_survey_meet_base { + opinion_my(): $hyoo_survey_meet_opinion | null; + } + const $hyoo_survey_meet_opinion_base: Omit & (new (...args: any[]) => $mol_type_override<$hyoo_crus_entity, { + readonly Pleasant: (auto?: any) => $hyoo_crus_atom_str | null; + readonly Improvement: (auto?: any) => $hyoo_crus_atom_str | null; + readonly Continue: (auto?: any) => $hyoo_crus_atom_bool | null; + readonly Request: (auto?: any) => $hyoo_crus_atom_str | null; + }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & { + readonly Pleasant: typeof $hyoo_crus_atom_str; + readonly Improvement: typeof $hyoo_crus_atom_str; + readonly Continue: typeof $hyoo_crus_atom_bool; + readonly Request: typeof $hyoo_crus_atom_str; + }; + }; + export class $hyoo_survey_meet_opinion extends $hyoo_survey_meet_opinion_base { + } + export {}; +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_stack extends $mol_view { + } + +} + +//# sourceMappingURL=stack.view.tree.d.ts.map +declare namespace $ { + + export class $mol_text_code_token extends $mol_dimmer { + type( ): string + attr( ): ({ + 'mol_text_code_token_type': ReturnType< $mol_text_code_token['type'] >, + }) & ReturnType< $mol_dimmer['attr'] > + } + + export class $mol_text_code_token_link extends $mol_text_code_token { + uri( ): string + dom_name( ): string + type( ): string + attr( ): ({ + 'href': ReturnType< $mol_text_code_token_link['uri'] >, + 'target': string, + }) & ReturnType< $mol_text_code_token['attr'] > + } + +} + +//# sourceMappingURL=token.view.tree.d.ts.map +declare namespace $.$$ { +} + +declare namespace $ { + class $mol_syntax2 { + lexems: Lexems; + constructor(lexems: Lexems); + rules: { + regExp: RegExp; + name: string; + size: number; + }[]; + regexp: RegExp; + tokenize(text: string, handle: (name: string, found: string, chunks: string[], offset: number) => void): void; + parse(text: string, handlers: { + [key in keyof Lexems | '']: (found: string, chunks: string[], offset: number) => void; + }): void; + } +} + +declare namespace $ { + var $mol_syntax2_md_flow: $mol_syntax2<{ + quote: RegExp; + header: RegExp; + list: RegExp; + code: RegExp; + 'code-indent': RegExp; + table: RegExp; + grid: RegExp; + cut: RegExp; + block: RegExp; + }>; + var $mol_syntax2_md_line: $mol_syntax2<{ + strong: RegExp; + emphasis: RegExp; + code: RegExp; + insert: RegExp; + delete: RegExp; + embed: RegExp; + link: RegExp; + 'image-link': RegExp; + 'text-link': RegExp; + 'text-link-http': RegExp; + }>; + const $mol_syntax2_md_code: $mol_syntax2<{ + 'code-indent': RegExp; + 'code-docs': RegExp; + 'code-comment-block': RegExp; + 'code-link': RegExp; + 'code-comment-inline': RegExp; + 'code-string': RegExp; + 'code-number': RegExp; + 'code-call': RegExp; + 'code-sexpr': RegExp; + 'code-field': RegExp; + 'code-keyword': RegExp; + 'code-global': RegExp; + 'code-word': RegExp; + 'code-decorator': RegExp; + 'code-tag': RegExp; + 'code-punctuation': RegExp; + }>; +} + +declare namespace $ { + + type $mol_view__sub__RJL571ED = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_view['sub'] > + > + type $mol_text_code_token__type__ZW6L3PQK = $mol_type_enforce< + ReturnType< $mol_text_code_row['token_type'] > + , + ReturnType< $mol_text_code_token['type'] > + > + type $mol_text_code_token__haystack__3R41XEI1 = $mol_type_enforce< + ReturnType< $mol_text_code_row['token_text'] > + , + ReturnType< $mol_text_code_token['haystack'] > + > + type $mol_text_code_token__needle__9XGCTTTV = $mol_type_enforce< + ReturnType< $mol_text_code_row['highlight'] > + , + ReturnType< $mol_text_code_token['needle'] > + > + type $mol_text_code_token_link__haystack__94GF4WFJ = $mol_type_enforce< + ReturnType< $mol_text_code_row['token_text'] > + , + ReturnType< $mol_text_code_token_link['haystack'] > + > + type $mol_text_code_token_link__needle__0S9MISWM = $mol_type_enforce< + ReturnType< $mol_text_code_row['highlight'] > + , + ReturnType< $mol_text_code_token_link['needle'] > + > + type $mol_text_code_token_link__uri__TN1B1ACE = $mol_type_enforce< + ReturnType< $mol_text_code_row['token_uri'] > + , + ReturnType< $mol_text_code_token_link['uri'] > + > + export class $mol_text_code_row extends $mol_paragraph { + numb( ): number + token_type( id: any): string + token_text( id: any): string + highlight( ): string + token_uri( id: any): string + text( ): string + minimal_height( ): number + numb_showed( ): boolean + syntax( ): any + uri_resolve( id: any): string + Numb( ): $mol_view + Token( id: any): $mol_text_code_token + Token_link( id: any): $mol_text_code_token_link + find_pos( id: any): any + } + +} + +//# sourceMappingURL=row.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_text_code_row extends $.$mol_text_code_row { + maximal_width(): number; + syntax(): $mol_syntax2<{ + 'code-indent': RegExp; + 'code-docs': RegExp; + 'code-comment-block': RegExp; + 'code-link': RegExp; + 'code-comment-inline': RegExp; + 'code-string': RegExp; + 'code-number': RegExp; + 'code-call': RegExp; + 'code-sexpr': RegExp; + 'code-field': RegExp; + 'code-keyword': RegExp; + 'code-global': RegExp; + 'code-word': RegExp; + 'code-decorator': RegExp; + 'code-tag': RegExp; + 'code-punctuation': RegExp; + }>; + tokens(path: number[]): readonly { + name: string; + found: string; + chunks: string[]; + }[]; + sub(): $mol_view[]; + row_content(path: number[]): $mol_text_code_token[]; + Token(path: number[]): $mol_text_code_token; + token_type(path: number[]): string; + token_content(path: number[]): (string | $mol_text_code_token)[]; + token_text(path: number[]): string; + token_uri(path: number[]): string; + view_find(check: (path: $mol_view, text?: string) => boolean, path?: $mol_view[]): Generator<$mol_view[]>; + find_pos(offset: number): { + token: $mol_text_code_token; + offset: number; + } | null; + find_token_pos([offset, ...path]: number[]): { + token: $mol_text_code_token; + offset: number; + } | null; + } +} + +declare namespace $.$$ { +} + +declare namespace $ { + type $mol_blob = Blob; + let $mol_blob: { + new (blobParts?: readonly BlobPart[], options?: BlobPropertyBag): Blob; + prototype: Blob; + }; +} + +declare namespace $ { + + export class $mol_icon_clipboard extends $mol_icon { + path( ): string + } + +} + +//# sourceMappingURL=clipboard.view.tree.d.ts.map +declare namespace $ { + + export class $mol_icon_clipboard_outline extends $mol_icon { + path( ): string + } + +} + +//# sourceMappingURL=outline.view.tree.d.ts.map +declare namespace $ { + function $mol_html_encode(text: string): string; +} + +declare namespace $ { + + type $mol_blob__FE53CLA1 = $mol_type_enforce< + [ readonly(BlobPart)[], ({ + 'type': string, + }) ] + , + ConstructorParameters< typeof $mol_blob > + > + type $mol_blob__3P44WO48 = $mol_type_enforce< + [ readonly(BlobPart)[], ({ + 'type': string, + }) ] + , + ConstructorParameters< typeof $mol_blob > + > + export class $mol_button_copy extends $mol_button_minor { + text( ): ReturnType< $mol_button_copy['title'] > + text_blob( next?: $mol_blob ): $mol_blob + html( ): string + html_blob( next?: $mol_blob ): $mol_blob + Icon( ): $mol_icon_clipboard_outline + title( ): string + blobs( ): readonly($mol_blob)[] + data( ): Record + sub( ): readonly(any)[] + } + +} + +//# sourceMappingURL=copy.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_button_copy extends $.$mol_button_copy { + data(): { + [k: string]: Blob; + }; + html(): string; + attachments(): ClipboardItem[]; + click(event?: Event): void; + } +} + +declare namespace $ { + + type $mol_text_code_row__numb_showed__99QJBIR1 = $mol_type_enforce< + ReturnType< $mol_text_code['sidebar_showed'] > + , + ReturnType< $mol_text_code_row['numb_showed'] > + > + type $mol_text_code_row__numb__W6JLB9SE = $mol_type_enforce< + ReturnType< $mol_text_code['row_numb'] > + , + ReturnType< $mol_text_code_row['numb'] > + > + type $mol_text_code_row__text__DHQ1E3BO = $mol_type_enforce< + ReturnType< $mol_text_code['row_text'] > + , + ReturnType< $mol_text_code_row['text'] > + > + type $mol_text_code_row__syntax__C2RGHP2Y = $mol_type_enforce< + ReturnType< $mol_text_code['syntax'] > + , + ReturnType< $mol_text_code_row['syntax'] > + > + type $mol_text_code_row__uri_resolve__I1RDHBQ1 = $mol_type_enforce< + ReturnType< $mol_text_code['uri_resolve'] > + , + ReturnType< $mol_text_code_row['uri_resolve'] > + > + type $mol_text_code_row__highlight__TJ4GEGEA = $mol_type_enforce< + ReturnType< $mol_text_code['highlight'] > + , + ReturnType< $mol_text_code_row['highlight'] > + > + type $mol_list__render_visible_only__RF805YI7 = $mol_type_enforce< + ReturnType< $mol_text_code['render_visible_only'] > + , + ReturnType< $mol_list['render_visible_only'] > + > + type $mol_list__rows__51HN4LCP = $mol_type_enforce< + ReturnType< $mol_text_code['rows'] > + , + ReturnType< $mol_list['rows'] > + > + type $mol_button_copy__hint__9P5BOR8E = $mol_type_enforce< + string + , + ReturnType< $mol_button_copy['hint'] > + > + type $mol_button_copy__text__BZDB6N66 = $mol_type_enforce< + ReturnType< $mol_text_code['text_export'] > + , + ReturnType< $mol_button_copy['text'] > + > + export class $mol_text_code extends $mol_stack { + sidebar_showed( ): boolean + render_visible_only( ): boolean + row_numb( id: any): number + row_text( id: any): string + syntax( ): any + uri_resolve( id: any): string + highlight( ): string + Row( id: any): $mol_text_code_row + rows( ): readonly(any)[] + Rows( ): $mol_list + text_export( ): string + Copy( ): $mol_button_copy + attr( ): ({ + 'mol_text_code_sidebar_showed': ReturnType< $mol_text_code['sidebar_showed'] >, + }) & ReturnType< $mol_stack['attr'] > + text( ): string + text_lines( ): readonly(string)[] + find_pos( id: any): any + uri_base( ): string + sub( ): readonly(any)[] + } + +} + +//# sourceMappingURL=code.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_text_code extends $.$mol_text_code { + render_visible_only(): boolean; + text_lines(): readonly string[]; + rows(): $.$mol_text_code_row[]; + row_text(index: number): string; + row_numb(index: number): number; + find_pos(offset: number): any; + sub(): ($.$mol_list | $.$mol_button_copy)[]; + syntax(): $mol_syntax2<{ + 'code-indent': RegExp; + 'code-docs': RegExp; + 'code-comment-block': RegExp; + 'code-link': RegExp; + 'code-comment-inline': RegExp; + 'code-string': RegExp; + 'code-number': RegExp; + 'code-call': RegExp; + 'code-sexpr': RegExp; + 'code-field': RegExp; + 'code-keyword': RegExp; + 'code-global': RegExp; + 'code-word': RegExp; + 'code-decorator': RegExp; + 'code-tag': RegExp; + 'code-punctuation': RegExp; + }>; + uri_base(): string; + uri_resolve(uri: string): string; + text_export(): string; + } +} + +declare namespace $.$$ { +} + +declare namespace $ { + + type $mol_textarea_edit__value__NT7OU8X0 = $mol_type_enforce< + ReturnType< $mol_textarea['value'] > + , + ReturnType< $mol_textarea_edit['value'] > + > + type $mol_textarea_edit__hint__6HILB7J4 = $mol_type_enforce< + ReturnType< $mol_textarea['hint'] > + , + ReturnType< $mol_textarea_edit['hint'] > + > + type $mol_textarea_edit__enabled__7BYJ6D55 = $mol_type_enforce< + ReturnType< $mol_textarea['enabled'] > + , + ReturnType< $mol_textarea_edit['enabled'] > + > + type $mol_textarea_edit__spellcheck__QN2ITWPF = $mol_type_enforce< + ReturnType< $mol_textarea['spellcheck'] > + , + ReturnType< $mol_textarea_edit['spellcheck'] > + > + type $mol_textarea_edit__length_max__EQ19XZVB = $mol_type_enforce< + ReturnType< $mol_textarea['length_max'] > + , + ReturnType< $mol_textarea_edit['length_max'] > + > + type $mol_textarea_edit__selection__I5MMOZ6J = $mol_type_enforce< + ReturnType< $mol_textarea['selection'] > + , + ReturnType< $mol_textarea_edit['selection'] > + > + type $mol_textarea_edit__submit__BNH9IF2I = $mol_type_enforce< + ReturnType< $mol_textarea['submit'] > + , + ReturnType< $mol_textarea_edit['submit'] > + > + type $mol_textarea_edit__submit_with_ctrl__LJLERMJN = $mol_type_enforce< + ReturnType< $mol_textarea['submit_with_ctrl'] > + , + ReturnType< $mol_textarea_edit['submit_with_ctrl'] > + > + type $mol_text_code__text__ZSGLME1M = $mol_type_enforce< + ReturnType< $mol_textarea['value'] > + , + ReturnType< $mol_text_code['text'] > + > + type $mol_text_code__render_visible_only__I9WZOASU = $mol_type_enforce< + boolean + , + ReturnType< $mol_text_code['render_visible_only'] > + > + type $mol_text_code__row_numb__NEG2EAW8 = $mol_type_enforce< + ReturnType< $mol_textarea['row_numb'] > + , + ReturnType< $mol_text_code['row_numb'] > + > + type $mol_text_code__sidebar_showed__NAU3NHF4 = $mol_type_enforce< + ReturnType< $mol_textarea['sidebar_showed'] > + , + ReturnType< $mol_text_code['sidebar_showed'] > + > + type $mol_text_code__highlight__JJV762PD = $mol_type_enforce< + ReturnType< $mol_textarea['highlight'] > + , + ReturnType< $mol_text_code['highlight'] > + > + export class $mol_textarea extends $mol_stack { + clickable( next?: boolean ): boolean + sidebar_showed( ): boolean + press( next?: any ): any + hover( next?: any ): any + value( next?: string ): string + hint( ): string + enabled( ): boolean + spellcheck( ): boolean + length_max( ): number + selection( next?: readonly(number)[] ): readonly(number)[] + bring( ): ReturnType< ReturnType< $mol_textarea['Edit'] >['bring'] > + submit( next?: any ): any + submit_with_ctrl( ): boolean + Edit( ): $mol_textarea_edit + row_numb( id: any): number + highlight( ): string + View( ): $mol_text_code + attr( ): ({ + 'mol_textarea_clickable': ReturnType< $mol_textarea['clickable'] >, + 'mol_textarea_sidebar_showed': ReturnType< $mol_textarea['sidebar_showed'] >, + }) & ReturnType< $mol_stack['attr'] > + event( ): ({ + keydown( next?: ReturnType< $mol_textarea['press'] > ): ReturnType< $mol_textarea['press'] >, + pointermove( next?: ReturnType< $mol_textarea['hover'] > ): ReturnType< $mol_textarea['hover'] >, + }) + sub( ): readonly(any)[] + symbols_alt( ): Record + symbols_alt_ctrl( ): Record + symbols_alt_shift( ): Record + } + + export class $mol_textarea_edit extends $mol_string { + dom_name( ): string + enter( ): string + field( ): ({ + 'scrollTop': number, + }) & ReturnType< $mol_string['field'] > + } + +} + +//# sourceMappingURL=textarea.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_textarea extends $.$mol_textarea { + indent_inc(): void; + indent_dec(): void; + symbol_insert(event: KeyboardEvent): void; + clickable(next?: boolean): boolean; + hover(event: PointerEvent): void; + press(event: KeyboardEvent): void; + row_numb(index: number): number; + } +} + +declare namespace $ { +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_view__minimal_height__VSRUUZ2Z = $mol_type_enforce< + number + , + ReturnType< $mol_view['minimal_height'] > + > + type $mol_view__sub__0SK03W4D = $mol_type_enforce< + ReturnType< $mol_labeler['label'] > + , + ReturnType< $mol_view['sub'] > + > + type $mol_view__minimal_height__95HTD1D8 = $mol_type_enforce< + number + , + ReturnType< $mol_view['minimal_height'] > + > + type $mol_view__sub__R5EZ7YPZ = $mol_type_enforce< + ReturnType< $mol_labeler['content'] > + , + ReturnType< $mol_view['sub'] > + > + export class $mol_labeler extends $mol_list { + label( ): readonly($mol_view_content)[] + Label( ): $mol_view + content( ): readonly(any)[] + Content( ): $mol_view + rows( ): readonly(any)[] + } + +} + +//# sourceMappingURL=labeler.view.tree.d.ts.map +declare namespace $ { + + type $mol_view__sub__L4IW98KW = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_view['sub'] > + > + export class $mol_form_field extends $mol_labeler { + name( ): string + bid( ): string + Bid( ): $mol_view + control( ): any + bids( ): readonly(string)[] + label( ): readonly(any)[] + content( ): readonly(any)[] + } + +} + +//# sourceMappingURL=field.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_form_field extends $.$mol_form_field { + bid(): string; + } +} + +declare namespace $ { +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_float extends $mol_view { + style( ): ({ + 'minHeight': string, + }) & ReturnType< $mol_view['style'] > + } + +} + +//# sourceMappingURL=float.view.tree.d.ts.map +declare namespace $ { + function $mol_maybe(value: Value | null | undefined): Value[]; +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_view__sub__48BPCOC8 = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_view['sub'] > + > + export class $mol_check extends $mol_button_minor { + checked( next?: boolean ): boolean + aria_checked( ): string + aria_role( ): string + Icon( ): any + title( ): string + Title( ): $mol_view + label( ): readonly(any)[] + attr( ): ({ + 'mol_check_checked': ReturnType< $mol_check['checked'] >, + 'aria-checked': ReturnType< $mol_check['aria_checked'] >, + 'role': ReturnType< $mol_check['aria_role'] >, + }) & ReturnType< $mol_button_minor['attr'] > + sub( ): readonly($mol_view_content)[] + } + +} + +//# sourceMappingURL=check.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_check extends $.$mol_check { + click(next?: Event): void; + sub(): readonly $mol_view_content[]; + label(): readonly any[]; + aria_checked(): string; + } +} + +declare namespace $ { + + export class $mol_icon_chevron extends $mol_icon { + path( ): string + } + +} + +//# sourceMappingURL=chevron.view.tree.d.ts.map +declare namespace $ { + + export class $mol_check_expand extends $mol_check { + level_style( ): string + expanded( next?: boolean ): boolean + expandable( ): boolean + Icon( ): $mol_icon_chevron + level( ): number + style( ): ({ + 'paddingLeft': ReturnType< $mol_check_expand['level_style'] >, + }) & ReturnType< $mol_check['style'] > + checked( next?: ReturnType< $mol_check_expand['expanded'] > ): ReturnType< $mol_check_expand['expanded'] > + enabled( ): ReturnType< $mol_check_expand['expandable'] > + } + +} + +//# sourceMappingURL=expand.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_check_expand extends $.$mol_check_expand { + level_style(): string; + expandable(): boolean; + } +} + +declare namespace $ { +} + +declare namespace $ { + class $mol_state_session extends $mol_object { + static 'native()': Pick; + static native(): Storage | { + getItem(key: string): any; + setItem(key: string, value: string): void; + removeItem(key: string): void; + }; + static value(key: string, next?: Value): Value; + prefix(): string; + value(key: string, next?: Value): Value; + } +} + +declare namespace $ { + + type $mol_grid_table__sub__AFZXE3P4 = $mol_type_enforce< + ReturnType< $mol_grid['rows'] > + , + ReturnType< $mol_grid_table['sub'] > + > + type $mol_dimmer__needle__CX7Q1GJD = $mol_type_enforce< + ReturnType< $mol_grid['needle'] > + , + ReturnType< $mol_dimmer['needle'] > + > + type $mol_dimmer__haystack__NCV8GOVP = $mol_type_enforce< + ReturnType< $mol_grid['cell_value'] > + , + ReturnType< $mol_dimmer['haystack'] > + > + type $mol_grid_row__cells__M7KETOYM = $mol_type_enforce< + ReturnType< $mol_grid['head_cells'] > + , + ReturnType< $mol_grid_row['cells'] > + > + type $mol_grid_row__minimal_height__RYSS9JX3 = $mol_type_enforce< + ReturnType< $mol_grid['row_height'] > + , + ReturnType< $mol_grid_row['minimal_height'] > + > + type $mol_grid_row__minimal_width__6P68F58W = $mol_type_enforce< + ReturnType< $mol_grid['minimal_width'] > + , + ReturnType< $mol_grid_row['minimal_width'] > + > + type $mol_grid_row__cells__ZDENZNRX = $mol_type_enforce< + ReturnType< $mol_grid['cells'] > + , + ReturnType< $mol_grid_row['cells'] > + > + type $mol_grid_cell__sub__3T1Y3IOC = $mol_type_enforce< + ReturnType< $mol_grid['cell_content_text'] > + , + ReturnType< $mol_grid_cell['sub'] > + > + type $mol_grid_number__sub__VMQ43VG3 = $mol_type_enforce< + ReturnType< $mol_grid['cell_content_number'] > + , + ReturnType< $mol_grid_number['sub'] > + > + type $mol_float__dom_name__S06S5833 = $mol_type_enforce< + string + , + ReturnType< $mol_float['dom_name'] > + > + type $mol_float__sub__8NVDW4N6 = $mol_type_enforce< + ReturnType< $mol_grid['col_head_content'] > + , + ReturnType< $mol_float['sub'] > + > + type $mol_check_expand__level__C60BS97E = $mol_type_enforce< + ReturnType< $mol_grid['cell_level'] > + , + ReturnType< $mol_check_expand['level'] > + > + type $mol_check_expand__label__48TOA1S9 = $mol_type_enforce< + ReturnType< $mol_grid['cell_content'] > + , + ReturnType< $mol_check_expand['label'] > + > + type $mol_check_expand__expanded__GYOP3EOZ = $mol_type_enforce< + ReturnType< $mol_grid['cell_expanded'] > + , + ReturnType< $mol_check_expand['expanded'] > + > + export class $mol_grid extends $mol_view { + rows( ): readonly($mol_view)[] + Table( ): $mol_grid_table + head_cells( ): readonly($mol_view)[] + cells( id: any): readonly($mol_view)[] + cell_content( id: any): readonly($mol_view_content)[] + cell_content_text( id: any): ReturnType< $mol_grid['cell_content'] > + cell_content_number( id: any): ReturnType< $mol_grid['cell_content'] > + col_head_content( id: any): readonly($mol_view_content)[] + cell_level( id: any): number + cell_expanded( id: any, next?: boolean ): boolean + needle( ): string + cell_value( id: any): string + Cell_dimmer( id: any): $mol_dimmer + row_height( ): number + row_ids( ): readonly(string[])[] + row_id( id: any): any + col_ids( ): readonly(any)[] + records( ): Record + record( id: any): any + hierarchy( ): any + hierarchy_col( ): string + minimal_width( ): number + sub( ): readonly(any)[] + Head( ): $mol_grid_row + Row( id: any): $mol_grid_row + Cell( id: any): $mol_view + cell( id: any): any + Cell_text( id: any): $mol_grid_cell + Cell_number( id: any): $mol_grid_number + Col_head( id: any): $mol_float + Cell_branch( id: any): $mol_check_expand + Cell_content( id: any): readonly(any)[] + } + + export class $mol_grid_table extends $mol_list { + } + + export class $mol_grid_row extends $mol_view { + cells( ): readonly($mol_view)[] + sub( ): ReturnType< $mol_grid_row['cells'] > + } + + export class $mol_grid_cell extends $mol_view { + minimal_height( ): number + } + + export class $mol_grid_number extends $mol_grid_cell { + } + +} + +//# sourceMappingURL=grid.view.tree.d.ts.map +declare namespace $.$$ { + interface $mol_grid_node { + id: string; + parent: $mol_grid_node; + sub: $mol_grid_node[]; + } + class $mol_grid extends $.$mol_grid { + head_cells(): readonly $mol_view[]; + col_head_content(colId: string): readonly string[]; + rows(): readonly $mol_view[]; + cells(row_id: string[]): readonly $mol_view[]; + col_type(col_id: string): "number" | "text" | "branch"; + Cell(id: { + row: string[]; + col: string; + }): $mol_view; + cell_content(id: { + row: string[]; + col: string; + }): any[]; + cell_content_text(id: { + row: string[]; + col: string; + }): any[]; + records(): any; + record(id: string): any; + record_ids(): string[]; + row_id(index: number): string; + col_ids(): readonly string[]; + hierarchy(): { + [id: string]: $mol_grid_node; + }; + row_sub_ids(row: string[]): string[][]; + row_root_id(): string[]; + cell_level(id: { + row: string[]; + }): number; + row_ids(): readonly string[][]; + row_expanded(row_id: string[], next?: boolean): boolean | null; + row_expanded_default(row_id: string[]): boolean; + cell_expanded(id: { + row: string[]; + }, next?: boolean): boolean; + } +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_image extends $mol_view { + uri( ): string + loading( ): string + decoding( ): string + cors( ): any + natural_width( ): number + natural_height( ): number + load( next?: any ): any + dom_name( ): string + field( ): Record & ReturnType< $mol_view['field'] > + attr( ): Record & ReturnType< $mol_view['attr'] > + event( ): Record + minimal_width( ): number + minimal_height( ): number + } + +} + +//# sourceMappingURL=image.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_image extends $.$mol_image { + natural_width(next?: null): number; + natural_height(next?: null): number; + load(): void; + } +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_image__uri__BYB5U331 = $mol_type_enforce< + ReturnType< $mol_link_iconed['icon'] > + , + ReturnType< $mol_image['uri'] > + > + type $mol_image__title__FUYO1DJS = $mol_type_enforce< + string + , + ReturnType< $mol_image['title'] > + > + export class $mol_link_iconed extends $mol_link { + icon( ): string + Icon( ): $mol_image + title( ): ReturnType< $mol_link_iconed['uri'] > + sub( ): readonly(any)[] + content( ): readonly(any)[] + host( ): string + } + +} + +//# sourceMappingURL=iconed.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_link_iconed extends $.$mol_link_iconed { + icon(): string; + host(): string; + title(): string; + sub(): readonly any[]; + } +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_link__uri__4QUMDU0X = $mol_type_enforce< + ReturnType< $mol_embed_native['uri'] > + , + ReturnType< $mol_link['uri'] > + > + type $mol_link__sub__RTF083A9 = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_link['sub'] > + > + export class $mol_embed_native extends $mol_scroll { + mime( ): string + title( ): string + Fallback( ): $mol_link + uri_change( next?: any ): any + uri( next?: string ): string + dom_name( ): string + window( ): any + attr( ): ({ + 'data': ReturnType< $mol_embed_native['uri'] >, + 'type': ReturnType< $mol_embed_native['mime'] >, + }) & ReturnType< $mol_scroll['attr'] > + sub( ): readonly(any)[] + message( ): ({ + hashchange( next?: ReturnType< $mol_embed_native['uri_change'] > ): ReturnType< $mol_embed_native['uri_change'] >, + }) + } + +} + +//# sourceMappingURL=native.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_embed_native extends $.$mol_embed_native { + window(): Window; + load(frame: HTMLIFrameElement): Promise; + uri_resource(): string; + message_listener(): $mol_dom_listener; + message_receive(event?: MessageEvent<[string, string]>): void; + uri_change(event: MessageEvent<[string, string]>): void; + auto(): (Window | $mol_dom_listener)[]; + } +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_icon_youtube extends $mol_icon { + path( ): string + } + +} + +//# sourceMappingURL=youtube.view.tree.d.ts.map +declare namespace $ { + + export class $mol_frame extends $mol_embed_native { + uri( next?: string ): string + html( ): any + allow( ): string + dom_name( ): string + attr( ): ({ + 'data': any, + 'type': any, + 'src': ReturnType< $mol_frame['uri'] >, + 'srcdoc': ReturnType< $mol_frame['html'] >, + 'allow': ReturnType< $mol_frame['allow'] >, + }) & ReturnType< $mol_embed_native['attr'] > + fullscreen( ): boolean + accelerometer( ): boolean + autoplay( ): boolean + encription( ): boolean + gyroscope( ): boolean + pip( ): boolean + clipboard_read( ): boolean + clipboard_write( ): boolean + } + +} + +//# sourceMappingURL=frame.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_frame extends $.$mol_frame { + window(): any; + allow(): string; + } +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_image__title__S0RLKJ64 = $mol_type_enforce< + ReturnType< $mol_embed_youtube['title'] > + , + ReturnType< $mol_image['title'] > + > + type $mol_image__uri__VLRXTV7R = $mol_type_enforce< + ReturnType< $mol_embed_youtube['video_preview'] > + , + ReturnType< $mol_image['uri'] > + > + type $mol_frame__title__TAX3OCFW = $mol_type_enforce< + ReturnType< $mol_embed_youtube['title'] > + , + ReturnType< $mol_frame['title'] > + > + type $mol_frame__uri__AW6HYJM2 = $mol_type_enforce< + ReturnType< $mol_embed_youtube['video_embed'] > + , + ReturnType< $mol_frame['uri'] > + > + export class $mol_embed_youtube extends $mol_check { + active( next?: boolean ): boolean + title( ): string + video_preview( ): string + Image( ): $mol_image + Hint( ): $mol_icon_youtube + video_embed( ): string + Frame( ): $mol_frame + uri( ): string + video_id( ): string + checked( next?: ReturnType< $mol_embed_youtube['active'] > ): ReturnType< $mol_embed_youtube['active'] > + sub( ): readonly(any)[] + } + +} + +//# sourceMappingURL=youtube.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_embed_youtube extends $.$mol_embed_youtube { + video_embed(): string; + video_id(): string; + video_preview(): string; + sub(): $.$mol_frame[] | ($.$mol_image | $mol_icon_youtube)[]; + } +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_image__title__Q2Q5VWWJ = $mol_type_enforce< + ReturnType< $mol_embed_any['title'] > + , + ReturnType< $mol_image['title'] > + > + type $mol_image__uri__39WRBR6B = $mol_type_enforce< + ReturnType< $mol_embed_any['uri'] > + , + ReturnType< $mol_image['uri'] > + > + type $mol_embed_native__title__K0CSE073 = $mol_type_enforce< + ReturnType< $mol_embed_any['title'] > + , + ReturnType< $mol_embed_native['title'] > + > + type $mol_embed_native__uri__MQTYJYT1 = $mol_type_enforce< + ReturnType< $mol_embed_any['uri'] > + , + ReturnType< $mol_embed_native['uri'] > + > + type $mol_embed_youtube__title__UN9JGS13 = $mol_type_enforce< + ReturnType< $mol_embed_any['title'] > + , + ReturnType< $mol_embed_youtube['title'] > + > + type $mol_embed_youtube__uri__RKSIQMNE = $mol_type_enforce< + ReturnType< $mol_embed_any['uri'] > + , + ReturnType< $mol_embed_youtube['uri'] > + > + export class $mol_embed_any extends $mol_view { + title( ): string + uri( ): string + Image( ): $mol_image + Object( ): $mol_embed_native + Youtube( ): $mol_embed_youtube + } + +} + +//# sourceMappingURL=any.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_embed_any extends $.$mol_embed_any { + type(): "object" | "image" | "youtube"; + sub(): $.$mol_image[] | $.$mol_embed_youtube[] | $.$mol_embed_native[]; + } +} + +declare namespace $ { + + type $mol_paragraph__sub__WFRC0Z5D = $mol_type_enforce< + ReturnType< $mol_text['block_content'] > + , + ReturnType< $mol_paragraph['sub'] > + > + type $mol_text__uri_resolve__SPR51UNQ = $mol_type_enforce< + ReturnType< $mol_text['uri_resolve'] > + , + ReturnType< $mol_text['uri_resolve'] > + > + type $mol_text__text__7DKG7NGC = $mol_type_enforce< + ReturnType< $mol_text['quote_text'] > + , + ReturnType< $mol_text['text'] > + > + type $mol_text__highlight__SX15JQI2 = $mol_type_enforce< + ReturnType< $mol_text['highlight'] > + , + ReturnType< $mol_text['highlight'] > + > + type $mol_text__auto_scroll__GCB8GOH0 = $mol_type_enforce< + any + , + ReturnType< $mol_text['auto_scroll'] > + > + type $mol_text_list__uri_resolve__YCEOR4CC = $mol_type_enforce< + ReturnType< $mol_text['uri_resolve'] > + , + ReturnType< $mol_text_list['uri_resolve'] > + > + type $mol_text_list__type__N9T6HB0Z = $mol_type_enforce< + ReturnType< $mol_text['list_type'] > + , + ReturnType< $mol_text_list['type'] > + > + type $mol_text_list__text__FFBDD9PH = $mol_type_enforce< + ReturnType< $mol_text['list_text'] > + , + ReturnType< $mol_text_list['text'] > + > + type $mol_text_list__highlight__HGJWWYAU = $mol_type_enforce< + ReturnType< $mol_text['highlight'] > + , + ReturnType< $mol_text_list['highlight'] > + > + type $mol_text_header__minimal_height__UPFAE187 = $mol_type_enforce< + number + , + ReturnType< $mol_text_header['minimal_height'] > + > + type $mol_text_header__level__UMT2WL4R = $mol_type_enforce< + ReturnType< $mol_text['header_level'] > + , + ReturnType< $mol_text_header['level'] > + > + type $mol_text_header__content__4LX4YHX2 = $mol_type_enforce< + ReturnType< $mol_text['block_content'] > + , + ReturnType< $mol_text_header['content'] > + > + type $mol_text_header__arg__8NA4RG28 = $mol_type_enforce< + ReturnType< $mol_text['header_arg'] > + , + ReturnType< $mol_text_header['arg'] > + > + type $mol_text_code__text__7TQY2M85 = $mol_type_enforce< + ReturnType< $mol_text['pre_text'] > + , + ReturnType< $mol_text_code['text'] > + > + type $mol_text_code__highlight__C8I2D82W = $mol_type_enforce< + ReturnType< $mol_text['highlight'] > + , + ReturnType< $mol_text_code['highlight'] > + > + type $mol_text_code__uri_resolve__IZ3UWXTO = $mol_type_enforce< + ReturnType< $mol_text['uri_resolve'] > + , + ReturnType< $mol_text_code['uri_resolve'] > + > + type $mol_text_code__sidebar_showed__DX3A9U4F = $mol_type_enforce< + ReturnType< $mol_text['pre_sidebar_showed'] > + , + ReturnType< $mol_text_code['sidebar_showed'] > + > + type $mol_view__dom_name__D4XB8ED8 = $mol_type_enforce< + string + , + ReturnType< $mol_view['dom_name'] > + > + type $mol_grid__head_cells__8EHPRJ0E = $mol_type_enforce< + ReturnType< $mol_text['table_head_cells'] > + , + ReturnType< $mol_grid['head_cells'] > + > + type $mol_grid__rows__2XY3JZNP = $mol_type_enforce< + ReturnType< $mol_text['table_rows'] > + , + ReturnType< $mol_grid['rows'] > + > + type $mol_grid_row__cells__4V1DO3BI = $mol_type_enforce< + ReturnType< $mol_text['table_cells'] > + , + ReturnType< $mol_grid_row['cells'] > + > + type $mol_text__auto_scroll__583P64ND = $mol_type_enforce< + any + , + ReturnType< $mol_text['auto_scroll'] > + > + type $mol_text__highlight__1UBXD78E = $mol_type_enforce< + ReturnType< $mol_text['highlight'] > + , + ReturnType< $mol_text['highlight'] > + > + type $mol_text__uri_resolve__8G6M8ZV5 = $mol_type_enforce< + ReturnType< $mol_text['uri_resolve'] > + , + ReturnType< $mol_text['uri_resolve'] > + > + type $mol_text__text__66P051G1 = $mol_type_enforce< + ReturnType< $mol_text['table_cell_text'] > + , + ReturnType< $mol_text['text'] > + > + type $mol_grid__rows__W1V7FI0M = $mol_type_enforce< + ReturnType< $mol_text['grid_rows'] > + , + ReturnType< $mol_grid['rows'] > + > + type $mol_grid_row__cells__8E511BF5 = $mol_type_enforce< + ReturnType< $mol_text['grid_cells'] > + , + ReturnType< $mol_grid_row['cells'] > + > + type $mol_text__auto_scroll__RFW694RY = $mol_type_enforce< + any + , + ReturnType< $mol_text['auto_scroll'] > + > + type $mol_text__highlight__QN6PBODS = $mol_type_enforce< + ReturnType< $mol_text['highlight'] > + , + ReturnType< $mol_text['highlight'] > + > + type $mol_text__uri_resolve__9ERDMFRM = $mol_type_enforce< + ReturnType< $mol_text['uri_resolve'] > + , + ReturnType< $mol_text['uri_resolve'] > + > + type $mol_text__text__ZWYGJWPT = $mol_type_enforce< + ReturnType< $mol_text['grid_cell_text'] > + , + ReturnType< $mol_text['text'] > + > + type $mol_dimmer__dom_name__I101WU40 = $mol_type_enforce< + string + , + ReturnType< $mol_dimmer['dom_name'] > + > + type $mol_dimmer__needle__6SL16DZR = $mol_type_enforce< + ReturnType< $mol_text['highlight'] > + , + ReturnType< $mol_dimmer['needle'] > + > + type $mol_dimmer__haystack__V7OX0NQU = $mol_type_enforce< + ReturnType< $mol_text['line_text'] > + , + ReturnType< $mol_dimmer['haystack'] > + > + type $mol_text_span__dom_name__5J64OW2I = $mol_type_enforce< + string + , + ReturnType< $mol_text_span['dom_name'] > + > + type $mol_text_span__type__DSB36Q2G = $mol_type_enforce< + ReturnType< $mol_text['line_type'] > + , + ReturnType< $mol_text_span['type'] > + > + type $mol_text_span__sub__8VQS2OEO = $mol_type_enforce< + ReturnType< $mol_text['line_content'] > + , + ReturnType< $mol_text_span['sub'] > + > + type $mol_text_code_row__numb_showed__65LPEZE9 = $mol_type_enforce< + boolean + , + ReturnType< $mol_text_code_row['numb_showed'] > + > + type $mol_text_code_row__highlight__SBHGS7FD = $mol_type_enforce< + ReturnType< $mol_text['highlight'] > + , + ReturnType< $mol_text_code_row['highlight'] > + > + type $mol_text_code_row__text__JRVNUZDH = $mol_type_enforce< + ReturnType< $mol_text['line_text'] > + , + ReturnType< $mol_text_code_row['text'] > + > + type $mol_text_code_row__uri_resolve__G7JC7RHR = $mol_type_enforce< + ReturnType< $mol_text['uri_resolve'] > + , + ReturnType< $mol_text_code_row['uri_resolve'] > + > + type $mol_text_code_row__syntax__UROGYEVG = $mol_type_enforce< + ReturnType< $mol_text['code_syntax'] > + , + ReturnType< $mol_text_code_row['syntax'] > + > + type $mol_link_iconed__uri__N883JKKH = $mol_type_enforce< + ReturnType< $mol_text['link_uri'] > + , + ReturnType< $mol_link_iconed['uri'] > + > + type $mol_link_iconed__content__FA3AHZ5G = $mol_type_enforce< + ReturnType< $mol_text['line_content'] > + , + ReturnType< $mol_link_iconed['content'] > + > + type $mol_link_iconed__uri__HM9YVQUI = $mol_type_enforce< + ReturnType< $mol_text['link_uri'] > + , + ReturnType< $mol_link_iconed['uri'] > + > + type $mol_link_iconed__content__4T6YSVVU = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_link_iconed['content'] > + > + type $mol_embed_any__uri__PBECSUNE = $mol_type_enforce< + ReturnType< $mol_text['link_uri'] > + , + ReturnType< $mol_embed_any['uri'] > + > + type $mol_embed_any__title__AJ7VOR31 = $mol_type_enforce< + ReturnType< $mol_text['line_text'] > + , + ReturnType< $mol_embed_any['title'] > + > + export class $mol_text extends $mol_list { + auto_scroll( ): any + block_content( id: any): readonly(any)[] + uri_resolve( id: any): string + quote_text( id: any): string + highlight( ): string + list_type( id: any): string + list_text( id: any): string + header_level( id: any): number + header_arg( id: any): Record + pre_text( id: any): string + code_sidebar_showed( ): boolean + pre_sidebar_showed( ): ReturnType< $mol_text['code_sidebar_showed'] > + table_head_cells( id: any): readonly(any)[] + table_rows( id: any): readonly(any)[] + table_cells( id: any): readonly(any)[] + table_cell_text( id: any): string + grid_rows( id: any): readonly(any)[] + grid_cells( id: any): readonly(any)[] + grid_cell_text( id: any): string + line_text( id: any): string + line_type( id: any): string + line_content( id: any): readonly(any)[] + code_syntax( ): any + link_uri( id: any): string + link_host( id: any): string + uri_base( ): string + text( ): string + param( ): string + flow_tokens( ): readonly(any)[] + block_text( id: any): string + auto( ): readonly(any)[] + Paragraph( id: any): $mol_paragraph + Quote( id: any): $mol_text + List( id: any): $mol_text_list + item_index( id: any): number + Header( id: any): $mol_text_header + Pre( id: any): $mol_text_code + Cut( id: any): $mol_view + Table( id: any): $mol_grid + Table_row( id: any): $mol_grid_row + Table_cell( id: any): $mol_text + Grid( id: any): $mol_grid + Grid_row( id: any): $mol_grid_row + Grid_cell( id: any): $mol_text + String( id: any): $mol_dimmer + Span( id: any): $mol_text_span + Code_line( id: any): $mol_text_code_row + Link( id: any): $mol_link_iconed + Link_http( id: any): $mol_link_iconed + Embed( id: any): $mol_embed_any + } + + type $mol_link__arg__SW4YU828 = $mol_type_enforce< + ReturnType< $mol_text_header['arg'] > + , + ReturnType< $mol_link['arg'] > + > + type $mol_link__hint__CP6L90ZT = $mol_type_enforce< + string + , + ReturnType< $mol_link['hint'] > + > + type $mol_link__sub__O7AI8KQW = $mol_type_enforce< + ReturnType< $mol_text_header['content'] > + , + ReturnType< $mol_link['sub'] > + > + export class $mol_text_header extends $mol_paragraph { + arg( ): Record + content( ): readonly(any)[] + Link( ): $mol_link + level( ): number + sub( ): readonly(any)[] + } + + export class $mol_text_span extends $mol_paragraph { + type( ): string + dom_name( ): string + attr( ): ({ + 'mol_text_type': ReturnType< $mol_text_span['type'] >, + }) & ReturnType< $mol_paragraph['attr'] > + } + +} + +//# sourceMappingURL=text.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_text extends $.$mol_text { + flow_tokens(): readonly { + name: string; + found: string; + chunks: string[]; + }[]; + block_type(index: number): string; + rows(): ($mol_view | $.$mol_paragraph | $.$mol_text_code | $.$mol_grid)[]; + param(): string; + header_level(index: number): number; + header_arg(index: number): { + [x: string]: string; + }; + list_type(index: number): string; + item_index(index: number): number; + pre_text(index: number): string; + quote_text(index: number): string; + list_text(index: number): string; + cell_content(indexBlock: number): string[][]; + table_rows(blockId: number): $mol_grid_row[]; + table_head_cells(blockId: number): $.$mol_text[]; + table_cells(id: { + block: number; + row: number; + }): $.$mol_text[]; + table_cell_text(id: { + block: number; + row: number; + cell: number; + }): string; + grid_content(indexBlock: number): string[][]; + grid_rows(blockId: number): $mol_grid_row[]; + grid_cells(id: { + block: number; + row: number; + }): $.$mol_text[]; + grid_cell_text(id: { + block: number; + row: number; + cell: number; + }): string; + uri_base(): string; + uri_base_abs(): URL; + uri_resolve(uri: string): string; + code_syntax(): $mol_syntax2<{ + 'code-indent': RegExp; + 'code-docs': RegExp; + 'code-comment-block': RegExp; + 'code-link': RegExp; + 'code-comment-inline': RegExp; + 'code-string': RegExp; + 'code-number': RegExp; + 'code-call': RegExp; + 'code-sexpr': RegExp; + 'code-field': RegExp; + 'code-keyword': RegExp; + 'code-global': RegExp; + 'code-word': RegExp; + 'code-decorator': RegExp; + 'code-tag': RegExp; + 'code-punctuation': RegExp; + }>; + block_text(index: number): string; + block_content(index: number): ($.$mol_dimmer | $.$mol_text_code_row | $.$mol_link_iconed | $.$mol_embed_any | $mol_text_span)[]; + line_tokens(path: readonly number[]): readonly { + name: string; + found: string; + chunks: string[]; + }[]; + line_token(path: readonly number[]): { + name: string; + found: string; + chunks: string[]; + }; + line_type(path: readonly number[]): string; + line_text(path: readonly number[]): string; + line_content(path: readonly number[]): ($.$mol_dimmer | $.$mol_text_code_row | $.$mol_link_iconed | $.$mol_embed_any | $mol_text_span)[]; + link_uri(path: readonly number[]): string; + link_host(path: readonly number[]): string; + auto_scroll(): void; + } + class $mol_text_header extends $.$mol_text_header { + dom_name(): string; + } +} + +declare namespace $ { +} + +declare namespace $ { +} + +declare namespace $ { + + export class $mol_string_button extends $mol_string { + } + +} + +//# sourceMappingURL=button.view.tree.d.ts.map +declare namespace $ { +} + +declare namespace $ { + + export class $mol_row extends $mol_view { + } + +} + +//# sourceMappingURL=row.view.tree.d.ts.map +declare namespace $ { + + type $mol_list__sub__D19SWTMS = $mol_type_enforce< + ReturnType< $mol_form['body'] > + , + ReturnType< $mol_list['sub'] > + > + type $mol_row__sub__70VKU161 = $mol_type_enforce< + ReturnType< $mol_form['foot'] > + , + ReturnType< $mol_row['sub'] > + > + export class $mol_form extends $mol_list { + keydown( next?: any ): any + form_fields( ): readonly($mol_form_field)[] + body( ): ReturnType< $mol_form['form_fields'] > + Body( ): $mol_list + buttons( ): readonly($mol_view)[] + foot( ): ReturnType< $mol_form['buttons'] > + Foot( ): $mol_row + submit_allowed( ): boolean + submit_blocked( ): boolean + event( ): ({ + keydown( next?: ReturnType< $mol_form['keydown'] > ): ReturnType< $mol_form['keydown'] >, + }) & ReturnType< $mol_list['event'] > + submit( next?: any ): any + rows( ): readonly(any)[] + } + +} + +//# sourceMappingURL=form.view.tree.d.ts.map +declare namespace $.$$ { + class $mol_form extends $.$mol_form { + form_fields(): readonly $mol_form_field[]; + submit_allowed(): boolean; + submit_blocked(): boolean; + keydown(next: KeyboardEvent): void; + } +} + +declare namespace $ { +} + +declare namespace $ { +} + +declare namespace $ { + + type $mol_text_list_item__index__O0UYNV08 = $mol_type_enforce< + ReturnType< $mol_text_list['item_index'] > + , + ReturnType< $mol_text_list_item['index'] > + > + type $mol_text_list_item__sub__1PCTP08G = $mol_type_enforce< + ReturnType< $mol_text_list['block_content'] > + , + ReturnType< $mol_text_list_item['sub'] > + > + export class $mol_text_list extends $mol_text { + type( ): string + auto_scroll( ): any + attr( ): ({ + 'mol_text_list_type': ReturnType< $mol_text_list['type'] >, + }) & ReturnType< $mol_text['attr'] > + Paragraph( id: any): $mol_text_list_item + } + + export class $mol_text_list_item extends $mol_paragraph { + index( ): number + attr( ): ({ + 'mol_text_list_item_index': ReturnType< $mol_text_list_item['index'] >, + }) & ReturnType< $mol_paragraph['attr'] > + } + +} + +//# sourceMappingURL=list.view.tree.d.ts.map +declare namespace $ { + + type $mol_textarea__value__UQEBC1WP = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['pleasant'] > + , + ReturnType< $mol_textarea['value'] > + > + type $mol_form_field__name__32GJWK0R = $mol_type_enforce< + string + , + ReturnType< $mol_form_field['name'] > + > + type $mol_form_field__control__X4BOA6UH = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['Pleasant'] > + , + ReturnType< $mol_form_field['control'] > + > + type $mol_textarea__value__23YPULGQ = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['improvement'] > + , + ReturnType< $mol_textarea['value'] > + > + type $mol_form_field__name__B7Z8EVBQ = $mol_type_enforce< + string + , + ReturnType< $mol_form_field['name'] > + > + type $mol_form_field__control__DO5F7TCT = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['Improvement'] > + , + ReturnType< $mol_form_field['control'] > + > + type $mol_textarea__value__CA762IS6 = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['request'] > + , + ReturnType< $mol_textarea['value'] > + > + type $mol_form_field__name__01K0PT3H = $mol_type_enforce< + string + , + ReturnType< $mol_form_field['name'] > + > + type $mol_form_field__control__TRS4K1KO = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['Request'] > + , + ReturnType< $mol_form_field['control'] > + > + type $mol_text__text__B7O36D0E = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['opinion'] > + , + ReturnType< $mol_text['text'] > + > + type $mol_list__rows__NPM46YNK = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['opinions'] > + , + ReturnType< $mol_list['rows'] > + > + type $mol_string_button__value__TLN3IQAM = $mol_type_enforce< + ReturnType< $hyoo_survey_meet_form['title'] > + , + ReturnType< $mol_string_button['value'] > + > + type $mol_string_button__hint__CIZDFX1I = $mol_type_enforce< + string + , + ReturnType< $mol_string_button['hint'] > + > + export class $hyoo_survey_meet_form extends $mol_page { + title( next?: string ): string + pleasant( next?: string ): string + Pleasant( ): $mol_textarea + Pleasant_field( ): $mol_form_field + improvement( next?: string ): string + Improvement( ): $mol_textarea + Improvement_field( ): $mol_form_field + request( next?: string ): string + Request( ): $mol_textarea + Request_field( ): $mol_form_field + opinion( id: any): string + Opinion( id: any): $mol_text + opinions( ): readonly(any)[] + Opinions( ): $mol_list + meet( ): $hyoo_survey_meet + Title( ): $mol_string_button + body( ): readonly(any)[] + } + +} + +//# sourceMappingURL=form.view.tree.d.ts.map +declare namespace $.$$ { + class $hyoo_survey_meet_form extends $.$hyoo_survey_meet_form { + title(next?: string): string; + pleasant(next?: string): string; + improvement(next?: string): string; + request(next?: string): string; + opinions(): $.$mol_text[]; + opinion(key: string): string; + } +} + +declare namespace $.$$ { +} + +declare namespace $ { + const $hyoo_survey_person_base: Omit & (new (...args: any[]) => $mol_type_override<$hyoo_crus_entity, { + readonly Meets: (auto?: any) => { + remote_list(next?: readonly $hyoo_survey_meet[] | undefined): readonly $hyoo_survey_meet[]; + remote_make(preset: $hyoo_crus_rank_preset): $hyoo_survey_meet; + local_make(idea?: number | undefined): $hyoo_survey_meet; + items(next?: readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[] | undefined): readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + } | null; + }>) & { + schema: { + [x: string]: typeof $hyoo_crus_node; + } & { + readonly Meets: { + new (): { + remote_list(next?: readonly $hyoo_survey_meet[] | undefined): readonly $hyoo_survey_meet[]; + remote_make(preset: $hyoo_crus_rank_preset): $hyoo_survey_meet; + local_make(idea?: number | undefined): $hyoo_survey_meet; + items(next?: readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[] | undefined): readonly ((symbol & { + $hyoo_crus_ref: symbol; + }) | null)[]; + items_vary(next?: readonly $hyoo_crus_vary_type[] | undefined, tag?: "keys" | "term" | "solo" | "vals"): readonly $hyoo_crus_vary_type[]; + splice(next: readonly $hyoo_crus_vary_type[], from?: number, to?: number, tag?: "keys" | "term" | "solo" | "vals"): void; + find(vary: $hyoo_crus_vary_type): $hyoo_crus_gist | null; + has(vary: $hyoo_crus_vary_type, next?: boolean | undefined, tag?: "keys" | "term" | "solo" | "vals"): boolean; + add(vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): void; + cut(vary: $hyoo_crus_vary_type): void; + move(from: number, to: number): void; + wipe(seat: number): void; + node_make(Node: Node, vary: $hyoo_crus_vary_type, tag?: "keys" | "term" | "solo" | "vals"): InstanceType; + land(): $hyoo_crus_land; + head(): string; + realm(): $hyoo_crus_realm | null; + land_ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + ref(): symbol & { + $hyoo_crus_ref: symbol; + }; + toJSON(): string | undefined; + cast(Node: Node_1): InstanceType; + nodes(Node: Node_2 | null): readonly InstanceType[]; + units(): $hyoo_crus_gist[]; + filled(): boolean; + can_change(lord?: symbol & { + $hyoo_crus_ref: symbol; + }): boolean; + last_change(): $mol_time_moment | null; + $: typeof $$; + destructor(): void; + toString(): string; + [Symbol.toStringTag]: string; + [$mol_ambient_ref]: typeof $$; + }; + Value: () => typeof $hyoo_survey_meet; + toJSON(): string; + parse: typeof $hyoo_crus_vary_cast_ref; + tag: "keys" | "term" | "solo" | "vals"; + make(this: This, config: Partial>): InstanceType; + $: typeof $$; + create(this: new (init?: ((instance: any) => void) | undefined) => Instance, init?: ((instance: $mol_type_writable) => void) | undefined): Instance; + toString(): any; + destructor(): void; + [Symbol.toPrimitive](): any; + }; + }; + }; + export class $hyoo_survey_person extends $hyoo_survey_person_base { + meet_make(): $hyoo_survey_meet | undefined; + } + export {}; +} + +declare namespace $ { + + type $mol_button_minor__click__K9AE0CRW = $mol_type_enforce< + ReturnType< $hyoo_survey_app['meet_add'] > + , + ReturnType< $mol_button_minor['click'] > + > + type $mol_button_minor__sub__EADILR3U = $mol_type_enforce< + readonly(any)[] + , + ReturnType< $mol_button_minor['sub'] > + > + type $hyoo_survey_meet_form__meet__DXGEPJXU = $mol_type_enforce< + ReturnType< $hyoo_survey_app['meet'] > + , + ReturnType< $hyoo_survey_meet_form['meet'] > + > + type $hyoo_survey_app_spread_ids__L6OEJGKU = $mol_type_enforce< + `1` + , + string + > + type $hyoo_survey_app_spread_ids__S63DS0RC = $mol_type_enforce< + `2` + , + string + > + export class $hyoo_survey_app extends $mol_book2_catalog { + meet_add( next?: any ): any + Meet_add_icon( ): $mol_icon_plus + Meet_add( ): $mol_button_minor + meet( id: any): $hyoo_survey_meet + Meet( id: any): $hyoo_survey_meet_form + param( ): string + realm( ): $hyoo_crus_realm + menu_title( ): string + menu_tools( ): readonly(any)[] + spread_ids( ): readonly(string)[] + Spread( id: any): ReturnType< $hyoo_survey_app['Meet'] > + } + +} + +//# sourceMappingURL=app.view.tree.d.ts.map +declare namespace $.$$ { + class $hyoo_survey_app extends $.$hyoo_survey_app { + meet_id(next?: $hyoo_crus_ref): (symbol & { + $hyoo_crus_ref: symbol; + }) | null; + profile(): $hyoo_survey_person | null; + meet_add(): void; + spread_ids(): string[]; + meet(id: string): $hyoo_survey_meet; + } +} + +export = $; +//# sourceMappingURL=node.d.ts.map diff --git a/node.d.ts.map b/node.d.ts.map new file mode 100644 index 0000000..57b8800 --- /dev/null +++ b/node.d.ts.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../mam.d.ts","../../../../mol/ambient/ambient.d.ts","../../../../mol/delegate/delegate.d.ts","../../../../mol/owning/owning.d.ts","../../../../mol/fail/fail.d.ts","../../../../mol/fail/hidden/hidden.d.ts","../../../../mol/type/writable/writable.d.ts","../../../../mol/func/name/name.d.ts","../../../../mol/object2/object2.d.ts","../../../../mol/object/object.d.ts","../../../../mol/window/window.node.d.ts","../../../../mol/wire/cursor/cursor.d.ts","../../../../mol/wire/pub/pub.d.ts","../../../../mol/wire/sub/sub.d.ts","../../../../mol/wire/wire.d.ts","../../../../mol/dev/format/format.d.ts","../../../../mol/wire/pub/sub/sub.d.ts","../../../../mol/after/timeout/timeout.d.ts","../../../../mol/after/frame/frame.node.d.ts","../../../../mol/promise/like/like.d.ts","../../../../mol/wire/fiber/fiber.d.ts","../../../../mol/guid/guid.d.ts","../../../../mol/key/key.d.ts","../../../../mol/compare/deep/deep.d.ts","../../../../mol/log3/log3.d.ts","../../../../mol/span/span.d.ts","../../../../mol/tree2/to/string/string.d.ts","../../../../mol/tree2/tree2.d.ts","../../../../mol/error/syntax/syntax.d.ts","../../../../mol/tree2/from/string/string.d.ts","../../../../mol/tree2/from/json/json.d.ts","../../../../mol/term/color/color.d.ts","../../../../mol/log3/log3.node.d.ts","../../../../mol/wire/task/task.d.ts","../../../../mol/wire/method/method.d.ts","../../../../mol/type/tail/tail.d.ts","../../../../mol/type/foot/foot.d.ts","../../../../mol/fail/catch/catch.d.ts","../../../../mol/fail/log/log.d.ts","../../../../mol/wire/atom/atom.d.ts","../../../../mol/wire/solo/solo.d.ts","../../../../mol/wire/plex/plex.d.ts","../../../../mol/mem/mem.d.ts","../../../../mol/dom/context/context.d.ts","../../../../node/node.node.d.ts","../../../../mol/env/env.d.ts","../../../../mol/env/env.node.d.ts","../../../../mol/exec/exec.node.d.ts","../../../../mol/dom/context/context.node.d.ts","../../../../mol/after/tick/tick.d.ts","../../../../mol/view/selection/selection.d.ts","../../../../mol/wrapper/wrapper.d.ts","../../../../mol/memo/memo.d.ts","../../../../mol/dom/qname/qname.d.ts","../../../../mol/wire/probe/probe.d.ts","../../../../mol/wire/watch/watch.d.ts","../../../../mol/const/const.d.ts","../../../../mol/wire/solid/solid.d.ts","../../../../mol/dom/render/attributes/attributes.d.ts","../../../../mol/dom/render/events/events.d.ts","../../../../mol/dom/render/styles/styles.d.ts","../../../../mol/dom/render/children/children.d.ts","../../../../mol/dom/render/fields/fields.d.ts","../../../../mol/wire/async/async.d.ts","../../../../mol/type/keys/extract/extract.d.ts","../../../../mol/type/pick/pick.d.ts","../../../../mol/style/attach/attach.d.ts","../../../../mol/decor/decor.d.ts","../../../../mol/style/unit/unit.d.ts","../../../../mol/style/func/func.d.ts","../../../../mol/type/override/override.d.ts","../../../../mol/style/properties/properties.d.ts","../../../../mol/style/prop/prop.d.ts","../../../../mol/theme/theme.d.ts","../../../../mol/theme/-css/theme.css.d.ts","../../../../mol/gap/gap.d.ts","../../../../mol/gap/-css/gap.css.d.ts","../../../../mol/view/view/view.d.ts","../../../../mol/view/view/-css/view.css.d.ts","../../../../mol/plugin/plugin.d.ts","../../../../mol/dom/listener/listener.d.ts","../../../../mol/print/print.d.ts","../../../../mol/style/pseudo/class.d.ts","../../../../mol/style/pseudo/element.d.ts","../../../../mol/type/error/error.d.ts","../../../../mol/style/guard/guard.d.ts","../../../../mol/style/sheet/sheet.d.ts","../../../../mol/style/define/define.d.ts","../../../../mol/scroll/-view.tree/scroll.view.tree.d.ts","../../../../mol/scroll/scroll.view.d.ts","../../../../mol/scroll/scroll.view.css.d.ts","../../../../mol/mem/cached/cached.d.ts","../../../../mol/layer/layer.d.ts","../../../../mol/layer/-css/layer.css.d.ts","../../../../mol/type/enforce/enforce.d.ts","../../../../mol/book2/-view.tree/book2.view.tree.d.ts","../../../../mol/book2/book2.view.d.ts","../../../../mol/book2/-css/book2.view.css.d.ts","../../../../mol/pop/-view.tree/pop.view.tree.d.ts","../../../../mol/pop/pop.view.d.ts","../../../../mol/pop/-css/pop.view.css.d.ts","../../../../mol/keyboard/code/code.d.ts","../../../../mol/hotkey/-view.tree/hotkey.view.tree.d.ts","../../../../mol/hotkey/hotkey.view.d.ts","../../../../mol/nav/-view.tree/nav.view.tree.d.ts","../../../../mol/nav/nav.view.d.ts","../../../../mol/mem/persist/persist.d.ts","../../../../mol/wire/sync/sync.d.ts","../../../../mol/storage/storage.d.ts","../../../../mol/state/local/local.d.ts","../../../../mol/charset/encoding/encoding.d.ts","../../../../mol/charset/decode/decode.d.ts","../../../../mol/charset/encode/encode.d.ts","../../../../mol/file/file.d.ts","../../../../mol/action/action.d.ts","../../../../mol/compare/array/array.d.ts","../../../../mol/file/file.node.d.ts","../../../../mol/state/local/local.node.d.ts","../../../../mol/locale/locale.d.ts","../../../../mol/string/-view.tree/string.view.tree.d.ts","../../../../mol/string/string.view.d.ts","../../../../mol/string/-css/string.view.css.d.ts","../../../../mol/state/time/time.d.ts","../../../../mol/svg/-view.tree/svg.view.tree.d.ts","../../../../mol/svg/svg.view.d.ts","../../../../mol/svg/root/-css/root.view.css.d.ts","../../../../mol/svg/root/-view.tree/root.view.tree.d.ts","../../../../mol/svg/path/-view.tree/path.view.tree.d.ts","../../../../mol/icon/-css/icon.view.css.d.ts","../../../../mol/icon/-view.tree/icon.view.tree.d.ts","../../../../mol/icon/cross/-view.tree/cross.view.tree.d.ts","../../../../mol/speck/-css/speck.view.css.d.ts","../../../../mol/speck/-view.tree/speck.view.tree.d.ts","../../../../mol/button/-view.tree/button.view.tree.d.ts","../../../../mol/button/button.view.d.ts","../../../../mol/button/-css/button.view.css.d.ts","../../../../mol/button/typed/-css/typed.view.css.d.ts","../../../../mol/button/typed/-view.tree/typed.view.tree.d.ts","../../../../mol/button/minor/-css/minor.view.css.d.ts","../../../../mol/button/minor/-view.tree/minor.view.tree.d.ts","../../../../mol/support/css/css.d.ts","../../../../mol/list/-view.tree/list.view.tree.d.ts","../../../../mol/list/list.view.d.ts","../../../../mol/list/-css/list.view.css.d.ts","../../../../mol/paragraph/-view.tree/paragraph.view.tree.d.ts","../../../../mol/paragraph/paragraph.view.d.ts","../../../../mol/paragraph/-css/paragraph.view.css.d.ts","../../../../mol/type/equals/equals.d.ts","../../../../mol/type/merge/merge.d.ts","../../../../mol/type/intersect/intersect.d.ts","../../../../mol/unicode/unicode.d.ts","../../../../mol/regexp/regexp.d.ts","../../../../mol/dimmer/-view.tree/dimmer.view.tree.d.ts","../../../../mol/dimmer/dimmer.view.d.ts","../../../../mol/dimmer/-css/dimmer.view.css.d.ts","../../../../mol/search/-view.tree/search.view.tree.d.ts","../../../../mol/search/search.view.d.ts","../../../../mol/search/-css/search.view.css.d.ts","../../../../mol/state/arg/arg.node.d.ts","../../../../mol/link/-view.tree/link.view.tree.d.ts","../../../../mol/link/link.view.d.ts","../../../../mol/link/link.view.css.d.ts","../../../../mol/page/-view.tree/page.view.tree.d.ts","../../../../mol/page/page.view.css.d.ts","../../../../mol/match/text.d.ts","../../../../mol/book2/catalog/-view.tree/catalog.view.tree.d.ts","../../../../mol/book2/catalog/catalog.view.d.ts","../../../../mol/book2/catalog/-css/catalog.view.css.d.ts","../../../../mol/icon/plus/-view.tree/plus.view.tree.d.ts","../../../crus/part/part.d.ts","../../../../mol/base64/encode/encode.d.ts","../../../../mol/base64/encode/encode.node.d.ts","../../../../mol/base64/decode/decode.d.ts","../../../../mol/base64/decode/decode.node.d.ts","../../../../mol/base64/ae/ae.d.ts","../../../../mol/buffer/buffer.d.ts","../../../../mol/data/value/value.d.ts","../../../../mol/data/tagged/tagged.d.ts","../../../crus/ref/ref.d.ts","../../../../mol/base64/url/url.d.ts","../../../../mol/crypto/native/native.node.d.ts","../../../../mol/crypto/key/key.d.ts","../../../../mol/crypto/secret/secret.d.ts","../../../crus/auth/auth.d.ts","../../../crus/face/face.d.ts","../../../../mol/wire/dict/dict.d.ts","../../../../mol/wire/set/set.d.ts","../../../crus/area/area.d.ts","../../../crus/rank/rank.d.ts","../../../crus/fund/fund.d.ts","../../../../mol/crypto/hash/hash.d.ts","../../../crus/pack/pack.d.ts","../../../crus/mine/mine.d.ts","../../../crus/mine/mine.node.d.ts","../../../../mol/time/base/base.d.ts","../../../../mol/time/duration/duration.d.ts","../../../../mol/time/moment/moment.d.ts","../../../../mol/time/interval/interval.d.ts","../../../../mol/type/result/result.d.ts","../../../../mol/dom/serialize/serialize.d.ts","../../../../mol/dom/parse/parse.d.ts","../../../crus/vary/vary.d.ts","../../../../mol/type/partial/deep/deep.d.ts","../../../../mol/jsx/jsx.d.ts","../../../../mol/tree2/bin/bin.d.ts","../../../../mol/tree2/xml/from/dom/dom.d.ts","../../../crus/vary/cast/cast.d.ts","../../../../mol/guard/defined.d.ts","../../../../mol/bus/bus.d.ts","../../../../mol/promise/promise/promise.d.ts","../../../../mol/wait/timeout/timeout.d.ts","../../../../mol/wire/race/race.d.ts","../../../crus/land/land.d.ts","../../../crus/unit/unit.d.ts","../../../crus/pass/pass.d.ts","../../../crus/gift/gift.d.ts","../../../../mol/rest/code/code.d.ts","../../../../mol/rest/port/port.d.ts","../../../../mol/rest/port/ws/ws.d.ts","../../../../mol/websocket/frame/frame.d.ts","../../../../mol/rest/port/ws/ws_std.d.ts","../../../../mol/rest/port/ws/ws.node.d.ts","../../../crus/yard/yard.d.ts","../../../crus/yard/yard.node.d.ts","../../../crus/gist/gist.d.ts","../../../crus/node/node.d.ts","../../../../mol/reconcile/reconcile.d.ts","../../../crus/realm/realm.d.ts","../../../crus/list/list.d.ts","../../../crus/dict/dict.d.ts","../../../crus/atom/atom.d.ts","../../../crus/home/home.d.ts","../../../crus/meta/meta.d.ts","../../../crus/entity/entity.d.ts","../../meet/meet.d.ts","../../../../mol/stack/-css/stack.view.css.d.ts","../../../../mol/stack/-view.tree/stack.view.tree.d.ts","../../../../mol/text/code/token/-view.tree/token.view.tree.d.ts","../../../../mol/text/code/token/token.view.css.d.ts","../../../../mol/syntax2/syntax2.d.ts","../../../../mol/syntax2/md/md.d.ts","../../../../mol/text/code/row/-view.tree/row.view.tree.d.ts","../../../../mol/text/code/row/row.view.d.ts","../../../../mol/text/code/row/row.view.css.d.ts","../../../../mol/blob/blob.d.ts","../../../../mol/icon/clipboard/-view.tree/clipboard.view.tree.d.ts","../../../../mol/icon/clipboard/outline/-view.tree/outline.view.tree.d.ts","../../../../mol/html/encode/encode.d.ts","../../../../mol/button/copy/-view.tree/copy.view.tree.d.ts","../../../../mol/button/copy/copy.view.d.ts","../../../../mol/text/code/-view.tree/code.view.tree.d.ts","../../../../mol/text/code/code.view.d.ts","../../../../mol/text/code/code.view.css.d.ts","../../../../mol/textarea/-view.tree/textarea.view.tree.d.ts","../../../../mol/textarea/textarea.view.d.ts","../../../../mol/textarea/-css/textarea.view.css.d.ts","../../../../mol/labeler/-css/labeler.view.css.d.ts","../../../../mol/labeler/-view.tree/labeler.view.tree.d.ts","../../../../mol/form/field/-view.tree/field.view.tree.d.ts","../../../../mol/form/field/field.view.d.ts","../../../../mol/form/field/-css/field.view.css.d.ts","../../../../mol/float/-css/float.view.css.d.ts","../../../../mol/float/-view.tree/float.view.tree.d.ts","../../../../mol/maybe/maybe.d.ts","../../../../mol/check/-css/check.css.d.ts","../../../../mol/check/-view.tree/check.view.tree.d.ts","../../../../mol/check/check.view.d.ts","../../../../mol/icon/chevron/-view.tree/chevron.view.tree.d.ts","../../../../mol/check/expand/-view.tree/expand.view.tree.d.ts","../../../../mol/check/expand/expand.view.d.ts","../../../../mol/check/expand/-css/expand.view.css.d.ts","../../../../mol/state/session/session.d.ts","../../../../mol/grid/-view.tree/grid.view.tree.d.ts","../../../../mol/grid/grid.view.d.ts","../../../../mol/grid/-css/grid.view.css.d.ts","../../../../mol/image/-view.tree/image.view.tree.d.ts","../../../../mol/image/image.view.d.ts","../../../../mol/image/-css/image.view.css.d.ts","../../../../mol/link/iconed/-view.tree/iconed.view.tree.d.ts","../../../../mol/link/iconed/iconed.view.d.ts","../../../../mol/link/iconed/-css/iconed.view.css.d.ts","../../../../mol/embed/native/-view.tree/native.view.tree.d.ts","../../../../mol/embed/native/native.view.d.ts","../../../../mol/embed/native/-css/native.view.css.d.ts","../../../../mol/icon/youtube/-view.tree/youtube.view.tree.d.ts","../../../../mol/frame/-view.tree/frame.view.tree.d.ts","../../../../mol/frame/frame.view.d.ts","../../../../mol/frame/frame.view.css.d.ts","../../../../mol/embed/youtube/-view.tree/youtube.view.tree.d.ts","../../../../mol/embed/youtube/youtube.view.d.ts","../../../../mol/embed/youtube/-css/youtube.view.css.d.ts","../../../../mol/embed/any/-view.tree/any.view.tree.d.ts","../../../../mol/embed/any/any.view.d.ts","../../../../mol/text/text/-view.tree/text.view.tree.d.ts","../../../../mol/text/text/text.view.d.ts","../../../../mol/text/text/-css/text.view.css.d.ts","../../../../mol/string/button/-css/button.view.css.d.ts","../../../../mol/string/button/-view.tree/button.view.tree.d.ts","../../../../mol/row/-css/row.view.css.d.ts","../../../../mol/row/-view.tree/row.view.tree.d.ts","../../../../mol/form/-view.tree/form.view.tree.d.ts","../../../../mol/form/form.view.d.ts","../../../../mol/form/-css/form.view.css.d.ts","../../../../mol/text/list/-css/list.view.css.d.ts","../../../../mol/text/list/-view.tree/list.view.tree.d.ts","../../meet/form/-view.tree/form.view.tree.d.ts","../../meet/form/form.view.d.ts","../../meet/form/form.view.css.d.ts","../../person/person.d.ts","../-view.tree/app.view.tree.d.ts","../app.view.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACbA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzBA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjBA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChCA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzJA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;ACFA;AACA;AACA;AACA;ACHA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtEA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrBA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;ACFA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;ACFA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzCA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACbA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;ACFA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;ACFA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACbA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClFA;AACA;AACA;ACFA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrBA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzBA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjEA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClCA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClCA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrSA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrBA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5CA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChCA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA;AACA;ACFA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;ACFA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;ACHA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7CA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtFA;AACA;AACA;ACFA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;ACFA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file diff --git a/node.deps.json b/node.deps.json new file mode 100644 index 0000000..307a3d3 --- /dev/null +++ b/node.deps.json @@ -0,0 +1 @@ +{"files":["mam.ts","LICENSE","README.md","yarn.lock","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","hyoo/LICENSE","hyoo/hyoo.ts","hyoo/hyoo.meta.tree","hyoo/survey/LICENSE","mol/CNAME","mol/LICENSE","mol/readme.md","mol/index.html","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/view/readme.md","mol/view/view.lang.tree","mol/ambient/readme.md","mol/ambient/ambient.ts","mol/delegate/delegate.ts","mol/owning/owning.ts","mol/fail/fail.ts","mol/fail/hidden/hidden.ts","mol/type/README.md","mol/type/writable/writable.ts","mol/func/name/name.ts","mol/object2/object2.ts","mol/object/object.ts","mol/object/readme.md","mol/window/window.node.ts","mol/wire/cursor/cursor.ts","mol/wire/pub/pub.ts","mol/wire/sub/sub.ts","mol/wire/wire.ts","mol/wire/README.md","mol/dev/format/format.ts","mol/wire/pub/sub/sub.ts","mol/wire/pub/sub/README.md","mol/after/timeout/readme.md","mol/after/timeout/timeout.ts","mol/after/frame/frame.node.ts","mol/promise/like/like.ts","mol/wire/fiber/fiber.ts","mol/wire/fiber/readme.md","mol/guid/guid.ts","mol/key/key.ts","mol/key/README.md","mol/compare/deep/deep.ts","mol/compare/deep/README.md","mol/log3/log3.ts","mol/span/span.ts","mol/tree2/to/string/string.ts","mol/tree2/tree2.ts","mol/tree2/readme.md","mol/error/syntax/syntax.ts","mol/tree2/from/string/string.ts","mol/tree2/from/json/json.ts","mol/term/readme.md","mol/term/color/color.ts","mol/log3/log3.node.ts","mol/wire/task/task.ts","mol/wire/method/README.md","mol/wire/method/method.ts","mol/type/tail/tail.ts","mol/type/foot/foot.ts","mol/fail/catch/catch.ts","mol/fail/log/log.ts","mol/wire/atom/atom.ts","mol/wire/solo/solo.ts","mol/wire/solo/readme.md","mol/wire/plex/plex.ts","mol/mem/mem.ts","mol/dom/context/context.ts","node/node.ts","node/node.node.ts","mol/env/env.ts","mol/env/env.node.ts","mol/exec/exec.node.ts","mol/dom/context/context.node.ts","mol/after/tick/tick.ts","mol/view/selection/selection.ts","mol/wrapper/wrapper.ts","mol/memo/memo.ts","mol/dom/qname/qname.ts","mol/wire/probe/probe.ts","mol/wire/watch/watch.ts","mol/const/const.ts","mol/const/readme.md","mol/wire/solid/solid.ts","mol/dom/render/attributes/attributes.ts","mol/dom/render/events/events.ts","mol/dom/render/styles/styles.ts","mol/dom/render/children/children.ts","mol/dom/render/fields/fields.ts","mol/wire/async/async.ts","mol/wire/async/README.md","mol/type/keys/extract/extract.ts","mol/type/pick/pick.ts","mol/style/readme.md","mol/style/attach/attach.ts","mol/decor/decor.ts","mol/style/unit/unit.ts","mol/style/func/func.ts","mol/type/override/override.ts","mol/style/properties/properties.ts","mol/style/prop/prop.ts","mol/style/prop/readme.md","mol/theme/theme.ts","mol/theme/-css/theme.css.ts","mol/theme/theme.css","mol/gap/gap.ts","mol/gap/-css/gap.css.ts","mol/gap/gap.css","mol/view/view/view.ts","mol/view/view/-css/view.css.ts","mol/view/view/view.css","mol/plugin/plugin.ts","mol/plugin/readme.md","mol/scroll/-view.tree/scroll.view.tree.js","mol/scroll/scroll.view.tree","mol/dom/listener/listener.ts","mol/print/print.ts","mol/style/pseudo/class.ts","mol/style/pseudo/element.ts","mol/type/error/error.ts","mol/style/guard/guard.ts","mol/style/sheet/sheet.ts","mol/style/define/define.ts","mol/scroll/readme.md","mol/scroll/-view.tree/scroll.view.tree.js.map","mol/scroll/-view.tree/scroll.view.tree.d.ts","mol/scroll/-view.tree/scroll.view.tree.d.ts.map","mol/scroll/-view.tree/scroll.view.tree.locale=en.json","mol/scroll/scroll.view.ts","mol/scroll/scroll.view.css.ts","mol/book2/-view.tree/book2.view.tree.js","mol/book2/book2.view.tree","mol/mem/cached/cached.ts","mol/layer/layer.ts","mol/layer/-css/layer.css.ts","mol/layer/layer.css","mol/type/enforce/enforce.ts","mol/book2/readme.md","mol/book2/-view.tree/book2.view.tree.js.map","mol/book2/-view.tree/book2.view.tree.d.ts","mol/book2/-view.tree/book2.view.tree.d.ts.map","mol/book2/-view.tree/book2.view.tree.locale=en.json","mol/book2/book2.view.ts","mol/book2/-css/book2.view.css.ts","mol/book2/book2.view.css","mol/pop/-view.tree/pop.view.tree.js","mol/pop/pop.view.tree","mol/pop/readme.md","mol/pop/-view.tree/pop.view.tree.js.map","mol/pop/-view.tree/pop.view.tree.d.ts","mol/pop/-view.tree/pop.view.tree.d.ts.map","mol/pop/-view.tree/pop.view.tree.locale=en.json","mol/pop/pop.view.ts","mol/pop/-css/pop.view.css.ts","mol/pop/pop.view.css","mol/hotkey/-view.tree/hotkey.view.tree.js","mol/hotkey/hotkey.view.tree","mol/keyboard/code/code.ts","mol/hotkey/readme.md","mol/hotkey/-view.tree/hotkey.view.tree.js.map","mol/hotkey/-view.tree/hotkey.view.tree.d.ts","mol/hotkey/-view.tree/hotkey.view.tree.d.ts.map","mol/hotkey/-view.tree/hotkey.view.tree.locale=en.json","mol/hotkey/hotkey.view.ts","mol/nav/-view.tree/nav.view.tree.js","mol/nav/nav.view.tree","mol/nav/readme.md","mol/nav/-view.tree/nav.view.tree.js.map","mol/nav/-view.tree/nav.view.tree.d.ts","mol/nav/-view.tree/nav.view.tree.d.ts.map","mol/nav/-view.tree/nav.view.tree.locale=en.json","mol/nav/nav.view.ts","mol/mem/persist/persist.ts","mol/wire/sync/sync.ts","mol/wire/sync/README.md","mol/storage/storage.ts","mol/state/local/local.ts","mol/charset/encoding/encoding.ts","mol/charset/decode/decode.ts","mol/charset/encode/encode.ts","mol/file/file.ts","mol/action/action.ts","mol/compare/array/array.ts","mol/file/file.node.ts","mol/state/local/local.node.ts","mol/locale/locale.ts","mol/locale/readme.md","mol/string/-view.tree/string.view.tree.js","mol/string/string.view.tree","mol/string/readme.md","mol/string/-view.tree/string.view.tree.js.map","mol/string/-view.tree/string.view.tree.d.ts","mol/string/-view.tree/string.view.tree.d.ts.map","mol/string/-view.tree/string.view.tree.locale=en.json","mol/string/string.view.ts","mol/string/-css/string.view.css.ts","mol/string/string.view.css","mol/svg/-view.tree/svg.view.tree.js","mol/svg/svg.view.tree","mol/state/time/time.ts","mol/state/time/readme.md","mol/svg/readme.md","mol/svg/-view.tree/svg.view.tree.js.map","mol/svg/-view.tree/svg.view.tree.d.ts","mol/svg/-view.tree/svg.view.tree.d.ts.map","mol/svg/-view.tree/svg.view.tree.locale=en.json","mol/svg/svg.view.ts","mol/svg/root/-view.tree/root.view.tree.js","mol/svg/root/root.view.tree","mol/svg/root/-css/root.view.css.ts","mol/svg/root/-view.tree/root.view.tree.js.map","mol/svg/root/-view.tree/root.view.tree.d.ts","mol/svg/root/-view.tree/root.view.tree.d.ts.map","mol/svg/root/-view.tree/root.view.tree.locale=en.json","mol/svg/root/root.view.css","mol/svg/path/-view.tree/path.view.tree.js","mol/svg/path/-view.tree/path.view.tree.js.map","mol/svg/path/-view.tree/path.view.tree.d.ts","mol/svg/path/-view.tree/path.view.tree.d.ts.map","mol/svg/path/-view.tree/path.view.tree.locale=en.json","mol/svg/path/path.view.tree","mol/icon/-view.tree/icon.view.tree.js","mol/icon/icon.view.tree","mol/icon/LICENSE","mol/icon/README.md","mol/icon/-css/icon.view.css.ts","mol/icon/icon.view.css","mol/icon/-view.tree/icon.view.tree.js.map","mol/icon/-view.tree/icon.view.tree.d.ts","mol/icon/-view.tree/icon.view.tree.d.ts.map","mol/icon/-view.tree/icon.view.tree.locale=en.json","mol/icon/cross/-view.tree/cross.view.tree.js","mol/icon/cross/-view.tree/cross.view.tree.js.map","mol/icon/cross/-view.tree/cross.view.tree.d.ts","mol/icon/cross/-view.tree/cross.view.tree.d.ts.map","mol/icon/cross/-view.tree/cross.view.tree.locale=en.json","mol/icon/cross/cross.view.tree","mol/speck/-view.tree/speck.view.tree.js","mol/speck/speck.view.tree","mol/speck/readme.md","mol/speck/-css/speck.view.css.ts","mol/speck/-view.tree/speck.view.tree.js.map","mol/speck/-view.tree/speck.view.tree.d.ts","mol/speck/-view.tree/speck.view.tree.d.ts.map","mol/speck/-view.tree/speck.view.tree.locale=en.json","mol/speck/speck.view.css","mol/button/-view.tree/button.view.tree.js","mol/button/button.view.tree","mol/button/readme.md","mol/button/-view.tree/button.view.tree.js.map","mol/button/-view.tree/button.view.tree.d.ts","mol/button/-view.tree/button.view.tree.d.ts.map","mol/button/-view.tree/button.view.tree.locale=en.json","mol/button/button.view.ts","mol/button/-css/button.view.css.ts","mol/button/button.view.css","mol/button/typed/-view.tree/typed.view.tree.js","mol/button/typed/typed.view.tree","mol/button/typed/-css/typed.view.css.ts","mol/button/typed/-view.tree/typed.view.tree.js.map","mol/button/typed/-view.tree/typed.view.tree.d.ts","mol/button/typed/-view.tree/typed.view.tree.d.ts.map","mol/button/typed/-view.tree/typed.view.tree.locale=en.json","mol/button/typed/typed.view.css","mol/button/minor/-view.tree/minor.view.tree.js","mol/button/minor/minor.view.tree","mol/button/minor/-css/minor.view.css.ts","mol/button/minor/-view.tree/minor.view.tree.js.map","mol/button/minor/-view.tree/minor.view.tree.d.ts","mol/button/minor/-view.tree/minor.view.tree.d.ts.map","mol/button/minor/-view.tree/minor.view.tree.locale=en.json","mol/button/minor/minor.view.css","mol/list/-view.tree/list.view.tree.js","mol/list/list.view.tree","mol/support/css/css.ts","mol/list/readme.md","mol/list/-view.tree/list.view.tree.js.map","mol/list/-view.tree/list.view.tree.d.ts","mol/list/-view.tree/list.view.tree.d.ts.map","mol/list/-view.tree/list.view.tree.locale=en.json","mol/list/list.view.ts","mol/list/-css/list.view.css.ts","mol/list/list.view.css","mol/paragraph/-view.tree/paragraph.view.tree.js","mol/paragraph/paragraph.view.tree","mol/paragraph/-view.tree/paragraph.view.tree.js.map","mol/paragraph/-view.tree/paragraph.view.tree.d.ts","mol/paragraph/-view.tree/paragraph.view.tree.d.ts.map","mol/paragraph/-view.tree/paragraph.view.tree.locale=en.json","mol/paragraph/paragraph.view.ts","mol/paragraph/-css/paragraph.view.css.ts","mol/paragraph/paragraph.view.css","mol/dimmer/-view.tree/dimmer.view.tree.js","mol/dimmer/dimmer.view.tree","mol/type/equals/equals.ts","mol/type/merge/merge.ts","mol/type/intersect/intersect.ts","mol/unicode/unicode.ts","mol/regexp/README.md","mol/regexp/regexp.ts","mol/dimmer/readme.md","mol/dimmer/-view.tree/dimmer.view.tree.js.map","mol/dimmer/-view.tree/dimmer.view.tree.d.ts","mol/dimmer/-view.tree/dimmer.view.tree.d.ts.map","mol/dimmer/-view.tree/dimmer.view.tree.locale=en.json","mol/dimmer/dimmer.view.ts","mol/dimmer/-css/dimmer.view.css.ts","mol/dimmer/dimmer.view.css","mol/search/-view.tree/search.view.tree.js","mol/search/search.view.tree","mol/search/readme.md","mol/search/-view.tree/search.view.tree.js.map","mol/search/-view.tree/search.view.tree.d.ts","mol/search/-view.tree/search.view.tree.d.ts.map","mol/search/-view.tree/search.view.tree.locale=en.json","mol/search/search.view.ts","mol/search/-css/search.view.css.ts","mol/search/search.view.css","mol/search/search.locale=ru.json","mol/search/search.locale=uk.json","mol/link/-view.tree/link.view.tree.js","mol/link/link.view.tree","mol/state/arg/arg.ts","mol/state/arg/readme.md","mol/state/arg/arg.node.ts","mol/link/readme.md","mol/link/-view.tree/link.view.tree.js.map","mol/link/-view.tree/link.view.tree.d.ts","mol/link/-view.tree/link.view.tree.d.ts.map","mol/link/-view.tree/link.view.tree.locale=en.json","mol/link/link.view.ts","mol/link/link.view.css.ts","mol/page/-view.tree/page.view.tree.js","mol/page/readme.md","mol/page/-view.tree/page.view.tree.js.map","mol/page/-view.tree/page.view.tree.d.ts","mol/page/-view.tree/page.view.tree.d.ts.map","mol/page/-view.tree/page.view.tree.locale=en.json","mol/page/page.view.tree","mol/page/page.view.css.ts","mol/book2/catalog/-view.tree/catalog.view.tree.js","mol/book2/catalog/catalog.view.tree","mol/match/text.ts","mol/book2/catalog/readme.md","mol/book2/catalog/-view.tree/catalog.view.tree.js.map","mol/book2/catalog/-view.tree/catalog.view.tree.d.ts","mol/book2/catalog/-view.tree/catalog.view.tree.d.ts.map","mol/book2/catalog/-view.tree/catalog.view.tree.locale=en.json","mol/book2/catalog/catalog.view.ts","mol/book2/catalog/-css/catalog.view.css.ts","mol/book2/catalog/catalog.view.css","mol/icon/plus/-view.tree/plus.view.tree.js","mol/icon/plus/-view.tree/plus.view.tree.js.map","mol/icon/plus/-view.tree/plus.view.tree.d.ts","mol/icon/plus/-view.tree/plus.view.tree.d.ts.map","mol/icon/plus/-view.tree/plus.view.tree.locale=en.json","mol/icon/plus/plus.view.tree","hyoo/crus/LICENSE","hyoo/crus/readme.md","hyoo/crus/crus.lang.tree","hyoo/crus/part/part.ts","mol/base64/readme.md","mol/base64/encode/encode.ts","mol/base64/encode/encode.node.ts","mol/base64/decode/decode.ts","mol/base64/decode/decode.node.ts","mol/base64/ae/ae.ts","mol/buffer/buffer.ts","mol/data/README.md","mol/data/value/value.ts","mol/data/tagged/readme.md","mol/data/tagged/tagged.ts","hyoo/crus/ref/ref.ts","mol/crypto/README.md","mol/base64/url/url.ts","mol/crypto/native/native.node.ts","mol/crypto/key/key.ts","mol/crypto/secret/secret.ts","hyoo/crus/auth/auth.ts","hyoo/crus/face/face.ts","mol/wire/dict/dict.ts","mol/wire/set/set.ts","hyoo/crus/area/area.ts","hyoo/crus/rank/rank.ts","hyoo/crus/fund/fund.ts","mol/crypto/hash/hash.ts","hyoo/crus/pack/pack.ts","hyoo/crus/mine/mine.ts","hyoo/crus/mine/mine.node.ts","mol/time/readme.md","mol/time/base/base.ts","mol/time/duration/readme.md","mol/time/duration/duration.ts","mol/time/moment/moment.ts","mol/time/moment/readme.md","mol/time/interval/readme.md","mol/time/interval/interval.ts","mol/type/result/result.ts","mol/dom/serialize/serialize.ts","mol/dom/parse/parse.ts","hyoo/crus/vary/vary.ts","mol/type/partial/deep/deep.ts","mol/jsx/jsx.ts","mol/jsx/readme.md","mol/tree2/bin/bin.ts","mol/tree2/xml/from/dom/dom.ts","hyoo/crus/vary/cast/cast.tsx","mol/guard/defined.ts","mol/bus/bus.ts","mol/promise/promise/promise.ts","mol/wait/timeout/timeout.ts","mol/wire/race/race.ts","mol/wire/race/readme.md","hyoo/crus/land/land.ts","hyoo/crus/unit/unit.ts","hyoo/crus/pass/pass.ts","hyoo/crus/gift/gift.ts","mol/rest/readme.md","mol/rest/code/code.ts","mol/rest/port/port.ts","mol/rest/port/ws/ws.ts","mol/websocket/frame/frame.ts","mol/rest/port/ws/ws_std.ts","mol/rest/port/ws/ws.node.ts","hyoo/crus/yard/yard.ts","hyoo/crus/yard/yard.node.ts","hyoo/crus/gist/gist.ts","hyoo/crus/node/node.ts","mol/reconcile/reconcile.ts","hyoo/crus/realm/realm.ts","hyoo/crus/list/list.ts","hyoo/crus/dict/dict.ts","hyoo/crus/atom/atom.ts","hyoo/crus/home/home.ts","hyoo/crus/meta/meta.ts","hyoo/crus/entity/entity.ts","hyoo/survey/meet/meet.ts","mol/stack/-view.tree/stack.view.tree.js","mol/stack/stack.view.tree","mol/stack/readme.md","mol/stack/-css/stack.view.css.ts","mol/stack/-view.tree/stack.view.tree.js.map","mol/stack/-view.tree/stack.view.tree.d.ts","mol/stack/-view.tree/stack.view.tree.d.ts.map","mol/stack/-view.tree/stack.view.tree.locale=en.json","mol/stack/stack.view.css","mol/text/code/token/-view.tree/token.view.tree.js","mol/text/code/token/-view.tree/token.view.tree.js.map","mol/text/code/token/-view.tree/token.view.tree.d.ts","mol/text/code/token/-view.tree/token.view.tree.d.ts.map","mol/text/code/token/-view.tree/token.view.tree.locale=en.json","mol/text/code/token/token.view.tree","mol/text/code/token/token.view.css.ts","mol/text/code/row/-view.tree/row.view.tree.js","mol/text/code/row/row.view.tree","mol/syntax2/readme.md","mol/syntax2/syntax2.ts","mol/syntax2/md/md.ts","mol/text/code/row/-view.tree/row.view.tree.js.map","mol/text/code/row/-view.tree/row.view.tree.d.ts","mol/text/code/row/-view.tree/row.view.tree.d.ts.map","mol/text/code/row/-view.tree/row.view.tree.locale=en.json","mol/text/code/row/row.view.ts","mol/text/code/row/row.view.css.ts","mol/blob/blob.ts","mol/icon/clipboard/-view.tree/clipboard.view.tree.js","mol/icon/clipboard/-view.tree/clipboard.view.tree.js.map","mol/icon/clipboard/-view.tree/clipboard.view.tree.d.ts","mol/icon/clipboard/-view.tree/clipboard.view.tree.d.ts.map","mol/icon/clipboard/-view.tree/clipboard.view.tree.locale=en.json","mol/icon/clipboard/clipboard.view.tree","mol/icon/clipboard/outline/-view.tree/outline.view.tree.js","mol/icon/clipboard/outline/-view.tree/outline.view.tree.js.map","mol/icon/clipboard/outline/-view.tree/outline.view.tree.d.ts","mol/icon/clipboard/outline/-view.tree/outline.view.tree.d.ts.map","mol/icon/clipboard/outline/-view.tree/outline.view.tree.locale=en.json","mol/icon/clipboard/outline/outline.view.tree","mol/button/copy/-view.tree/copy.view.tree.js","mol/button/copy/copy.view.tree","mol/html/encode/encode.ts","mol/button/copy/-view.tree/copy.view.tree.js.map","mol/button/copy/-view.tree/copy.view.tree.d.ts","mol/button/copy/-view.tree/copy.view.tree.d.ts.map","mol/button/copy/-view.tree/copy.view.tree.locale=en.json","mol/button/copy/copy.view.ts","mol/text/code/-view.tree/code.view.tree.js","mol/text/code/code.view.tree","mol/text/code/-view.tree/code.view.tree.js.map","mol/text/code/-view.tree/code.view.tree.d.ts","mol/text/code/-view.tree/code.view.tree.d.ts.map","mol/text/code/-view.tree/code.view.tree.locale=en.json","mol/text/code/code.view.ts","mol/text/code/code.view.css.ts","mol/text/code/code.locale=ru.json","mol/text/code/code.locale=uk.json","mol/textarea/-view.tree/textarea.view.tree.js","mol/textarea/textarea.view.tree","mol/textarea/readme.md","mol/textarea/-view.tree/textarea.view.tree.js.map","mol/textarea/-view.tree/textarea.view.tree.d.ts","mol/textarea/-view.tree/textarea.view.tree.d.ts.map","mol/textarea/-view.tree/textarea.view.tree.locale=en.json","mol/textarea/textarea.view.ts","mol/textarea/-css/textarea.view.css.ts","mol/textarea/textarea.view.css","mol/labeler/-view.tree/labeler.view.tree.js","mol/labeler/labeler.view.tree","mol/labeler/readme.md","mol/labeler/-css/labeler.view.css.ts","mol/labeler/-view.tree/labeler.view.tree.js.map","mol/labeler/-view.tree/labeler.view.tree.d.ts","mol/labeler/-view.tree/labeler.view.tree.d.ts.map","mol/labeler/-view.tree/labeler.view.tree.locale=en.json","mol/labeler/labeler.view.css","mol/form/field/-view.tree/field.view.tree.js","mol/form/field/field.view.tree","mol/form/field/-view.tree/field.view.tree.js.map","mol/form/field/-view.tree/field.view.tree.d.ts","mol/form/field/-view.tree/field.view.tree.d.ts.map","mol/form/field/-view.tree/field.view.tree.locale=en.json","mol/form/field/field.view.ts","mol/form/field/-css/field.view.css.ts","mol/form/field/field.view.css","mol/float/-view.tree/float.view.tree.js","mol/float/float.view.tree","mol/float/-css/float.view.css.ts","mol/float/-view.tree/float.view.tree.js.map","mol/float/-view.tree/float.view.tree.d.ts","mol/float/-view.tree/float.view.tree.d.ts.map","mol/float/-view.tree/float.view.tree.locale=en.json","mol/float/float.view.css","mol/check/-view.tree/check.view.tree.js","mol/check/check.view.tree","mol/maybe/maybe.ts","mol/check/-css/check.css.ts","mol/check/check.css","mol/check/readme.md","mol/check/-view.tree/check.view.tree.js.map","mol/check/-view.tree/check.view.tree.d.ts","mol/check/-view.tree/check.view.tree.d.ts.map","mol/check/-view.tree/check.view.tree.locale=en.json","mol/check/check.view.ts","mol/icon/chevron/-view.tree/chevron.view.tree.js","mol/icon/chevron/-view.tree/chevron.view.tree.js.map","mol/icon/chevron/-view.tree/chevron.view.tree.d.ts","mol/icon/chevron/-view.tree/chevron.view.tree.d.ts.map","mol/icon/chevron/-view.tree/chevron.view.tree.locale=en.json","mol/icon/chevron/chevron.view.tree","mol/check/expand/-view.tree/expand.view.tree.js","mol/check/expand/expand.view.tree","mol/check/expand/-view.tree/expand.view.tree.js.map","mol/check/expand/-view.tree/expand.view.tree.d.ts","mol/check/expand/-view.tree/expand.view.tree.d.ts.map","mol/check/expand/-view.tree/expand.view.tree.locale=en.json","mol/check/expand/expand.view.ts","mol/check/expand/-css/expand.view.css.ts","mol/check/expand/expand.view.css","mol/grid/-view.tree/grid.view.tree.js","mol/grid/grid.view.tree","mol/state/session/session.ts","mol/grid/-view.tree/grid.view.tree.js.map","mol/grid/-view.tree/grid.view.tree.d.ts","mol/grid/-view.tree/grid.view.tree.d.ts.map","mol/grid/-view.tree/grid.view.tree.locale=en.json","mol/grid/grid.view.ts","mol/grid/-css/grid.view.css.ts","mol/grid/grid.view.css","mol/image/-view.tree/image.view.tree.js","mol/image/image.view.tree","mol/image/-view.tree/image.view.tree.js.map","mol/image/-view.tree/image.view.tree.d.ts","mol/image/-view.tree/image.view.tree.d.ts.map","mol/image/-view.tree/image.view.tree.locale=en.json","mol/image/image.view.ts","mol/image/-css/image.view.css.ts","mol/image/image.view.css","mol/link/iconed/-view.tree/iconed.view.tree.js","mol/link/iconed/iconed.view.tree","mol/link/iconed/readme.md","mol/link/iconed/-view.tree/iconed.view.tree.js.map","mol/link/iconed/-view.tree/iconed.view.tree.d.ts","mol/link/iconed/-view.tree/iconed.view.tree.d.ts.map","mol/link/iconed/-view.tree/iconed.view.tree.locale=en.json","mol/link/iconed/iconed.view.ts","mol/link/iconed/-css/iconed.view.css.ts","mol/link/iconed/iconed.view.css","mol/embed/native/-view.tree/native.view.tree.js","mol/embed/native/native.view.tree","mol/embed/native/-view.tree/native.view.tree.js.map","mol/embed/native/-view.tree/native.view.tree.d.ts","mol/embed/native/-view.tree/native.view.tree.d.ts.map","mol/embed/native/-view.tree/native.view.tree.locale=en.json","mol/embed/native/native.view.ts","mol/embed/native/-css/native.view.css.ts","mol/embed/native/native.view.css","mol/icon/youtube/-view.tree/youtube.view.tree.js","mol/icon/youtube/-view.tree/youtube.view.tree.js.map","mol/icon/youtube/-view.tree/youtube.view.tree.d.ts","mol/icon/youtube/-view.tree/youtube.view.tree.d.ts.map","mol/icon/youtube/-view.tree/youtube.view.tree.locale=en.json","mol/icon/youtube/youtube.view.tree","mol/frame/-view.tree/frame.view.tree.js","mol/frame/frame.view.tree","mol/frame/-view.tree/frame.view.tree.js.map","mol/frame/-view.tree/frame.view.tree.d.ts","mol/frame/-view.tree/frame.view.tree.d.ts.map","mol/frame/-view.tree/frame.view.tree.locale=en.json","mol/frame/frame.view.ts","mol/frame/frame.view.css.ts","mol/embed/youtube/-view.tree/youtube.view.tree.js","mol/embed/youtube/youtube.view.tree","mol/embed/youtube/-view.tree/youtube.view.tree.js.map","mol/embed/youtube/-view.tree/youtube.view.tree.d.ts","mol/embed/youtube/-view.tree/youtube.view.tree.d.ts.map","mol/embed/youtube/-view.tree/youtube.view.tree.locale=en.json","mol/embed/youtube/youtube.view.ts","mol/embed/youtube/-css/youtube.view.css.ts","mol/embed/youtube/youtube.view.css","mol/embed/any/-view.tree/any.view.tree.js","mol/embed/any/any.view.tree","mol/embed/any/-view.tree/any.view.tree.js.map","mol/embed/any/-view.tree/any.view.tree.d.ts","mol/embed/any/-view.tree/any.view.tree.d.ts.map","mol/embed/any/-view.tree/any.view.tree.locale=en.json","mol/embed/any/any.view.ts","mol/text/text/-view.tree/text.view.tree.js","mol/text/text/text.view.tree","mol/text/text/readme.md","mol/text/text/-view.tree/text.view.tree.js.map","mol/text/text/-view.tree/text.view.tree.d.ts","mol/text/text/-view.tree/text.view.tree.d.ts.map","mol/text/text/-view.tree/text.view.tree.locale=en.json","mol/text/text/text.view.ts","mol/text/text/-css/text.view.css.ts","mol/text/text/text.view.css","mol/text/text/text.locale=ru.json","mol/text/text/text.locale=uk.json","mol/string/button/-view.tree/button.view.tree.js","mol/string/button/button.view.tree","mol/string/button/-css/button.view.css.ts","mol/string/button/-view.tree/button.view.tree.js.map","mol/string/button/-view.tree/button.view.tree.d.ts","mol/string/button/-view.tree/button.view.tree.d.ts.map","mol/string/button/-view.tree/button.view.tree.locale=en.json","mol/string/button/button.view.css","mol/row/-view.tree/row.view.tree.js","mol/row/row.view.tree","mol/row/readme.md","mol/row/-css/row.view.css.ts","mol/row/-view.tree/row.view.tree.js.map","mol/row/-view.tree/row.view.tree.d.ts","mol/row/-view.tree/row.view.tree.d.ts.map","mol/row/-view.tree/row.view.tree.locale=en.json","mol/row/row.view.css","mol/form/-view.tree/form.view.tree.js","mol/form/form.view.tree","mol/form/readme.md","mol/form/-view.tree/form.view.tree.js.map","mol/form/-view.tree/form.view.tree.d.ts","mol/form/-view.tree/form.view.tree.d.ts.map","mol/form/-view.tree/form.view.tree.locale=en.json","mol/form/form.view.ts","mol/form/-css/form.view.css.ts","mol/form/form.view.css","mol/text/list/-view.tree/list.view.tree.js","mol/text/list/list.view.tree","mol/text/list/-css/list.view.css.ts","mol/text/list/-view.tree/list.view.tree.js.map","mol/text/list/-view.tree/list.view.tree.d.ts","mol/text/list/-view.tree/list.view.tree.d.ts.map","mol/text/list/-view.tree/list.view.tree.locale=en.json","mol/text/list/list.view.css","hyoo/survey/meet/form/-view.tree/form.view.tree.js","hyoo/survey/meet/form/form.view.tree","hyoo/survey/meet/form/-view.tree/form.view.tree.js.map","hyoo/survey/meet/form/-view.tree/form.view.tree.d.ts","hyoo/survey/meet/form/-view.tree/form.view.tree.d.ts.map","hyoo/survey/meet/form/-view.tree/form.view.tree.locale=en.json","hyoo/survey/meet/form/form.view.ts","hyoo/survey/meet/form/form.view.css.ts","hyoo/survey/app/-view.tree/app.view.tree.js","hyoo/survey/app/app.view.tree","hyoo/survey/person/person.ts","hyoo/survey/app/CNAME","hyoo/survey/app/index.html","hyoo/survey/app/-view.tree/app.view.tree.js.map","hyoo/survey/app/-view.tree/app.view.tree.d.ts","hyoo/survey/app/-view.tree/app.view.tree.d.ts.map","hyoo/survey/app/-view.tree/app.view.tree.locale=en.json","hyoo/survey/app/app.view.ts"],"mods":{},"deps_in":{"hyoo/survey":{"hyoo/survey/app":-3,"hyoo/survey/meet":-9007199254740991,"hyoo/survey/app/-view.tree/app.view.tree.js":-3,"hyoo/survey/person":-9007199254740991},"hyoo":{"hyoo/survey":-9007199254740991,"hyoo/crus":-9007199254740991},"":{"hyoo":-9007199254740991,"mol":-9007199254740991,"node":-9007199254740991,"node_modules":-9007199254740991},"hyoo/survey/app/app.view.tree":{"hyoo/survey/app":0},"hyoo/survey/app/-view.tree/app.view.tree.js":{"hyoo/survey/app/app.view.tree":0,"hyoo/survey/app":0},"hyoo/survey/app":{},"mol/book2/catalog":{"hyoo/survey/app/-view.tree/app.view.tree.js":-1,"hyoo/survey/app":-1},"mol/book2":{"mol/book2/catalog":-1,"mol/book2/catalog/-view.tree/catalog.view.tree.js":-1},"mol":{"mol/book2":-9007199254740991,"mol/scroll":-9007199254740991,"mol/view":-9007199254740991,"mol/window":-9007199254740991,"mol/object":-9007199254740991,"mol/object2":-9007199254740991,"mol/ambient":-9007199254740991,"mol/owning":-9007199254740991,"mol/delegate":-9007199254740991,"mol/fail":-9007199254740991,"mol/type":-9007199254740991,"mol/func":-9007199254740991,"mol/mem":-9007199254740991,"mol/wire":-9007199254740991,"mol/dev":-9007199254740991,"mol/after":-9007199254740991,"mol/promise":-9007199254740991,"mol/key":-9007199254740991,"mol/guid":-9007199254740991,"mol/compare":-9007199254740991,"mol/log3":-9007199254740991,"mol/tree2":-9007199254740991,"mol/span":-9007199254740991,"mol/error":-9007199254740991,"mol/term":-9007199254740991,"mol/dom":-9007199254740991,"mol/exec":-9007199254740991,"mol/env":-9007199254740991,"mol/memo":-9007199254740991,"mol/wrapper":-9007199254740991,"mol/const":-9007199254740991,"mol/plugin":-9007199254740991,"mol/style":-9007199254740991,"mol/theme":-9007199254740991,"mol/decor":-9007199254740991,"mol/gap":-9007199254740991,"mol/print":-9007199254740991,"mol/layer":-9007199254740991,"mol/search":-9007199254740991,"mol/pop":-9007199254740991,"mol/hotkey":-9007199254740991,"mol/keyboard":-9007199254740991,"mol/nav":-9007199254740991,"mol/locale":-1.25,"mol/state":-9007199254740991,"mol/storage":-9007199254740991,"mol/file":-9007199254740991,"mol/charset":-9007199254740991,"mol/action":-9007199254740991,"mol/string":-9007199254740991,"mol/icon":-9007199254740991,"mol/svg":-9007199254740991,"mol/button":-9007199254740991,"mol/speck":-9007199254740991,"mol/list":-9007199254740991,"mol/support":-9007199254740991,"mol/dimmer":-9007199254740991,"mol/paragraph":-9007199254740991,"mol/regexp":-9007199254740991,"mol/unicode":-1,"mol/link":-9007199254740991,"mol/page":-9007199254740991,"mol/match":-9007199254740991,"mol/buffer":-9007199254740991,"mol/base64":-9007199254740991,"mol/data":-9007199254740991,"mol/time":-9007199254740991,"mol/rest":-9007199254740991,"mol/websocket":-9007199254740991,"mol/guard":-9007199254740991,"mol/crypto":-9007199254740991,"mol/jsx":-9007199254740991,"mol/bus":-9007199254740991,"mol/wait":-9007199254740991,"mol/reconcile":-9007199254740991,"mol/textarea":-9007199254740991,"mol/stack":-9007199254740991,"mol/text":-9007199254740991,"mol/syntax2":-9007199254740991,"mol/blob":-9007199254740991,"mol/html":-9007199254740991,"mol/form":-9007199254740991,"mol/row":-9007199254740991,"mol/labeler":-9007199254740991,"mol/grid":-9007199254740991,"mol/float":-9007199254740991,"mol/check":-9007199254740991,"mol/maybe":-9007199254740991,"mol/image":-9007199254740991,"mol/embed":-9007199254740991,"mol/frame":-9007199254740991},"mol/book2/book2.view.tree":{"mol/book2":0},"mol/book2/-view.tree/book2.view.tree.js":{"mol/book2/book2.view.tree":0,"mol/book2":0},"mol/scroll":{"mol/book2/-view.tree/book2.view.tree.js":-1,"mol/book2":-1,"mol/pop":0,"mol/page":-1,"mol/page/-view.tree/page.view.tree.js":-3,"mol/embed/native/-view.tree/native.view.tree.js":-1,"mol/embed/native":-1},"mol/scroll/scroll.view.tree":{"mol/scroll":0},"mol/scroll/-view.tree/scroll.view.tree.js":{"mol/scroll/scroll.view.tree":0,"mol/scroll":0},"mol/view/view":{"mol/scroll/-view.tree/scroll.view.tree.js":-1,"mol/plugin":-1,"mol/scroll":-1,"mol/style/define":-2,"mol/style/guard":-1,"mol/style/sheet":-2,"mol/book2/-view.tree/book2.view.tree.js":-3,"mol/book2":0,"mol/pop/-view.tree/pop.view.tree.js":-1,"mol/pop":-1,"mol/string/-view.tree/string.view.tree.js":-1,"mol/string":-1,"mol/svg/-view.tree/svg.view.tree.js":-1,"mol/svg":-1,"mol/button/-view.tree/button.view.tree.js":-1,"mol/speck/-view.tree/speck.view.tree.js":-1,"mol/speck":-1,"mol/button":-1,"mol/list/-view.tree/list.view.tree.js":-1,"mol/list":-1,"mol/paragraph/-view.tree/paragraph.view.tree.js":-1,"mol/paragraph":-1,"mol/dimmer":-2,"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-1,"mol/link/-view.tree/link.view.tree.js":-1,"mol/link":-1,"mol/page":-1,"mol/page/-view.tree/page.view.tree.js":-1,"mol/book2/catalog/-view.tree/catalog.view.tree.js":-3,"mol/book2/catalog":-2,"mol/stack/-view.tree/stack.view.tree.js":-1,"mol/stack":-1,"mol/text/code/row/-view.tree/row.view.tree.js":-3,"mol/text/code/row":-1,"mol/row/-view.tree/row.view.tree.js":-1,"mol/row":-1,"mol/form":-2,"mol/labeler/-view.tree/labeler.view.tree.js":-3,"mol/labeler":-1,"mol/form/field/-view.tree/field.view.tree.js":-3,"mol/form/field":-1,"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/grid/-view.tree/grid.view.tree.js":-1,"mol/float/-view.tree/float.view.tree.js":-1,"mol/float":-1,"mol/check/-view.tree/check.view.tree.js":-3,"mol/check":-1,"mol/grid":-1,"mol/image/-view.tree/image.view.tree.js":-1,"mol/image":-1,"mol/embed/any/-view.tree/any.view.tree.js":-1,"mol/embed/any":-1,"mol/text/text":-1},"mol/view":{"mol/view/view":0,"mol/view/selection":-9007199254740991,"mol/pop":-2,"mol/button":-2,"mol/dimmer":-2,"mol/search":-2,"mol/link":-2,"mol/page":-2,"mol/labeler":-2,"mol/check":-2,"mol/grid":-2},"mol/window":{"mol/view/view":-2,"mol/pop":-3,"mol/list":-3,"mol/paragraph":-3},"mol/object":{"mol/window":-1,"mol/view/view":-1,"mol/view/selection":-1,"mol/print":-1,"mol/dom/listener":-1,"mol/locale":-1,"mol/state/local":-1,"mol/state/local/local.ts":-1,"mol/file":-1,"mol/file/file.ts":-1,"mol/state/time":-1,"mol/state/arg":-1,"hyoo/crus/node":-1,"hyoo/crus/land":-1,"hyoo/crus/realm":-1,"hyoo/crus/yard":-1,"mol/rest/port":-1,"hyoo/crus/yard/yard.ts":-1,"hyoo/crus/mine":-1,"hyoo/crus/mine/mine.ts":-1,"hyoo/crus/fund":-1,"mol/bus":-1,"mol/state/session":-1},"mol/object2":{"mol/object":-1,"mol/after/timeout":-1,"mol/span":-1,"mol/after/tick":-1,"mol/wrapper":-1,"mol/storage":-1},"mol/ambient":{"mol/object2":-2,"mol/style/sheet":-2},"mol/owning":{"mol/object2":-3,"mol/wire/fiber":-4,"mol/wire/atom":-3,"mol/plugin":-3,"mol/view/view":-3},"mol/delegate":{"mol/owning":-3},"mol/fail/hidden":{"mol/object2":-3,"mol/wire/fiber":-4,"mol/tree2":-4,"mol/fail/catch":-2,"mol/view/view":-4,"mol/file":-4,"mol/file/file.ts":-4,"mol/string":-4,"mol/button":-4,"hyoo/crus/land":-6},"mol/fail":{"mol/fail/hidden":-9007199254740991,"mol/wire/pub":-4,"mol/wire/pub/sub":-3,"mol/span":-3,"mol/tree2":-4,"mol/tree2/from/string":-4,"mol/fail/log":-9007199254740991,"mol/fail/catch":-9007199254740991,"mol/exec":-3,"mol/wire/watch":-3,"mol/file":-2,"mol/regexp":-4,"mol/buffer":-3,"hyoo/crus/unit":-3,"hyoo/crus/ref":-2,"hyoo/crus/gift":-4,"mol/time/moment":-2,"mol/websocket/frame":-4,"hyoo/crus/pack":-5,"hyoo/crus/auth":-3,"hyoo/crus/land":-3,"hyoo/crus/vary":-2,"hyoo/crus/atom":-5,"mol/jsx":-4,"mol/tree2/xml/from/dom":-2,"mol/wire/race":-2,"hyoo/crus/gist":-3,"mol/reconcile":-2,"mol/syntax2":-4},"mol/type/writable":{"mol/object2":-3},"mol/type":{"mol/type/writable":-9007199254740991,"mol/type/foot":-9007199254740991,"mol/type/tail":-9007199254740991,"mol/type/pick":-9007199254740991,"mol/type/keys":-9007199254740991,"mol/type/override":-9007199254740991,"mol/type/error":-9007199254740991,"mol/type/enforce":-9007199254740991,"mol/type/merge":-9007199254740991,"mol/type/equals":-9007199254740991,"mol/type/intersect":-9007199254740991,"mol/type/result":-9007199254740991,"mol/type/partial":-9007199254740991},"mol/func/name":{"mol/object2":-3,"mol/wire/atom":-3,"mol/view/view":-4,"mol/style/sheet":-2,"mol/buffer":-3,"mol/jsx":-4},"mol/func":{"mol/func/name":-9007199254740991},"mol/mem":{"mol/view/view":-2,"mol/view/selection":-2,"mol/scroll/-view.tree/scroll.view.tree.js":-1,"mol/scroll":-1,"mol/print":-2,"mol/book2/-view.tree/book2.view.tree.js":-1,"mol/book2":-1,"mol/mem/cached":-9007199254740991,"mol/pop/-view.tree/pop.view.tree.js":-1,"mol/pop":-1,"mol/hotkey/-view.tree/hotkey.view.tree.js":-1,"mol/hotkey":-1,"mol/nav/-view.tree/nav.view.tree.js":-1,"mol/nav":-1,"mol/locale":-2,"mol/state/local":-2,"mol/storage":-2,"mol/mem/persist":-9007199254740991,"mol/state/local/local.ts":-2,"mol/file":-2,"mol/file/file.ts":-2,"mol/string/-view.tree/string.view.tree.js":-1,"mol/string":-1,"mol/svg":-2,"mol/state/time":-2,"mol/icon/-view.tree/icon.view.tree.js":-1,"mol/icon":-1,"mol/button/-view.tree/button.view.tree.js":-1,"mol/button":-1,"mol/list/-view.tree/list.view.tree.js":-1,"mol/list":-1,"mol/paragraph":-2,"mol/dimmer/-view.tree/dimmer.view.tree.js":-1,"mol/dimmer":-1,"mol/search/-view.tree/search.view.tree.js":-1,"mol/search":-1,"mol/link/-view.tree/link.view.tree.js":-1,"mol/link":-1,"mol/state/arg":-2,"mol/page":-1,"mol/page/-view.tree/page.view.tree.js":-1,"mol/book2/catalog/-view.tree/catalog.view.tree.js":-1,"mol/book2/catalog":-1,"hyoo/crus/realm":-2,"hyoo/crus/yard":-2,"hyoo/crus/yard/yard.ts":-2,"hyoo/crus/auth":-2,"hyoo/crus/mine":-2,"hyoo/crus/mine/mine.ts":-2,"hyoo/crus/atom":-2,"hyoo/crus/land":-2,"hyoo/crus/fund":-2,"hyoo/crus/node":-2,"hyoo/crus/list":-2,"hyoo/crus/dict":-2,"hyoo/survey/meet":-2,"mol/text/code/row/-view.tree/row.view.tree.js":-1,"mol/text/code/row":-1,"mol/button/copy/-view.tree/copy.view.tree.js":-1,"mol/button/copy":-1,"mol/text/code/-view.tree/code.view.tree.js":-1,"mol/text/code":-1,"mol/textarea/-view.tree/textarea.view.tree.js":-1,"mol/textarea":-1,"mol/form/-view.tree/form.view.tree.js":-1,"mol/form":-1,"mol/labeler/-view.tree/labeler.view.tree.js":-1,"mol/labeler":-1,"mol/form/field/-view.tree/field.view.tree.js":-1,"mol/form/field":-1,"mol/text/list/-view.tree/list.view.tree.js":-1,"mol/text/list":-1,"mol/check/-view.tree/check.view.tree.js":-1,"mol/check":-1,"mol/check/expand/-view.tree/expand.view.tree.js":-1,"mol/check/expand":-1,"mol/grid/-view.tree/grid.view.tree.js":-1,"mol/grid":-1,"mol/state/session":-2,"mol/image/-view.tree/image.view.tree.js":-1,"mol/image":-1,"mol/link/iconed/-view.tree/iconed.view.tree.js":-1,"mol/link/iconed":-1,"mol/embed/native/-view.tree/native.view.tree.js":-1,"mol/embed/native":-1,"mol/frame/-view.tree/frame.view.tree.js":-1,"mol/frame":-1,"mol/embed/youtube/-view.tree/youtube.view.tree.js":-1,"mol/embed/youtube":-1,"mol/embed/any/-view.tree/any.view.tree.js":-1,"mol/embed/any":-1,"mol/text/text/-view.tree/text.view.tree.js":-1,"mol/text/text":-1,"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-1,"hyoo/survey/meet/form":-1,"hyoo/survey/app/-view.tree/app.view.tree.js":-1,"hyoo/survey/app":-1},"mol/wire/solo":{"mol/mem":-1},"mol/wire":{"mol/wire/solo":-5,"mol/wire/atom":-4,"mol/wire/fiber":-9007199254740991,"mol/wire/pub/sub":-3,"mol/wire/method":-9007199254740991,"mol/wire/task":-4,"mol/wire/plex":-5,"mol/wire/probe":-9007199254740991,"mol/wire/watch":-2,"mol/wire/solid":-2,"mol/wire/async":-9007199254740991,"mol/wire/sync":-9007199254740991,"mol/wire/dict":-9007199254740991,"mol/wire/set":-9007199254740991,"mol/wire/race":-9007199254740991},"mol/wire/sub":{"mol/wire":-1,"mol/wire/pub/sub":-1},"mol/wire/pub":{"mol/wire/sub":-1,"mol/wire/pub/sub":-1,"mol/wire/fiber":-5,"mol/wire/dict":-2,"mol/wire/set":-2},"mol/wire/cursor":{"mol/wire/pub":-2,"mol/wire/sub":-2,"mol/wire/pub/sub":-2,"mol/wire/fiber":-2,"mol/wire/atom":-3,"mol/wire/task":-3},"mol/wire/atom":{"mol/wire/solo":-4,"mol/wire/plex":-4,"mol/wire/watch":-2},"mol/wire/fiber":{"mol/wire/atom":-1,"mol/wire/task":-1,"mol/wire/solo":-5,"mol/wire/plex":-5,"mol/wire/probe":-2,"mol/wire/solid":-2,"mol/plugin":-3,"mol/view/view":-3,"mol/wire/async":-2},"mol/wire/pub/sub":{"mol/wire/fiber":-1,"mol/wire/solid":-1},"mol/dev/format":{"mol/wire/pub/sub":-2,"mol/wire/fiber":-2,"mol/const":-2,"mol/view/view":-2,"hyoo/crus/pass":-2,"hyoo/crus/gift":-2,"mol/time/moment":-2,"hyoo/crus/face":-2,"hyoo/crus/atom":-2,"hyoo/crus/land":-2,"hyoo/crus/gist":-2,"hyoo/crus/node":-2,"hyoo/crus/list":-2,"hyoo/crus/dict":-2},"mol/dev":{"mol/dev/format":-9007199254740991},"mol/after/frame":{"mol/wire/fiber":-2,"mol/wire/atom":-2,"mol/view/view":-3,"mol/state/time":-2},"mol/after":{"mol/after/frame":-9007199254740991,"mol/after/timeout":-9007199254740991,"mol/after/tick":-9007199254740991},"mol/after/timeout":{"mol/after/frame":-1,"mol/state/time":-2,"mol/wait/timeout":-2},"mol/promise/like":{"mol/wire/fiber":-3,"mol/wire/task":-3,"mol/fail/log":-2,"mol/fail/catch":-2,"mol/wire/atom":-3,"mol/view/view":-4,"mol/wire/race":-2},"mol/promise":{"mol/promise/like":-9007199254740991,"mol/promise/promise":-9007199254740991},"mol/key":{"mol/wire/atom":-3,"hyoo/crus/yard":-4,"hyoo/crus/yard/yard.ts":-4},"mol/guid":{"mol/key":-3},"mol/wire/method":{"mol/wire/atom":-2,"mol/action":-1},"mol/wire/task":{"mol/wire/method":-2,"mol/wire/async":-2,"mol/wire/sync":-4},"mol/compare/deep":{"mol/wire/task":-5,"mol/wire/atom":-5,"hyoo/crus/mine":-3,"hyoo/crus/atom":-3,"hyoo/crus/list":-4},"mol/compare":{"mol/compare/deep":-9007199254740991,"mol/compare/array":-9007199254740991},"mol/log3":{"mol/wire/task":-5,"mol/exec":-2,"mol/storage":-5,"mol/file":-6,"hyoo/crus/yard":-3,"hyoo/crus/yard/yard.ts":-3,"hyoo/crus/realm":-4,"hyoo/crus/land":-3},"mol/log3/log3.ts":{"mol/log3":0},"mol/tree2/from/json":{"mol/log3":-3,"hyoo/crus/vary/cast":-3},"mol/tree2/from":{"mol/tree2/from/json":-9007199254740991},"mol/tree2":{"mol/tree2/from":-9007199254740991,"mol/tree2/from/string":-1,"mol/tree2/from/json":-1,"hyoo/crus/vary":-1,"mol/tree2/bin":-1,"hyoo/crus/vary/cast":-3,"mol/tree2/xml":-9007199254740991,"mol/tree2/xml/from/dom":-1},"mol/span":{"mol/tree2":-2,"mol/tree2/from/string":-2,"mol/error/syntax":-3,"mol/tree2/from/json":-1,"mol/tree2/bin":-2},"mol/tree2/from/string":{"hyoo/crus/vary":-3,"hyoo/crus/vary/cast":-5,"mol/tree2/from":-2},"mol/error/syntax":{"mol/tree2/from/string":-4},"mol/error":{"mol/error/syntax":-9007199254740991},"mol/tree2/to/string":{"mol/tree2":-3},"mol/tree2/to":{"mol/tree2/to/string":-9007199254740991},"mol/term/color":{"mol/log3":-1},"mol/term":{"mol/term/color":-9007199254740991},"mol/type/foot":{"mol/wire/atom":-3},"mol/type/tail":{"mol/type/foot":-1.25,"mol/wire/solo":-2},"mol/fail/log":{"mol/wire/atom":-5,"mol/view/view":-4,"node":-3,"mol/book2":-5,"mol/file":-3,"mol/button":-4,"mol/list":-5,"mol/link":-4,"hyoo/crus/yard":-4,"hyoo/crus/yard/yard.ts":-4,"hyoo/crus/land":-4,"mol/text/code":-4,"mol/embed/any":-4,"mol/text/text":-4},"mol/fail/catch":{"mol/fail/log":-2,"mol/locale":-4,"hyoo/crus/land":-5},"mol/wire/plex":{"mol/mem":-1},"mol/dom/context":{"mol/view/view":-3,"mol/view/selection":-3,"mol/dom/render/children":-3,"mol/style/attach":-2,"mol/print":-3,"mol/pop":-4,"mol/state/local":-4,"mol/storage":-3,"mol/state/local/local.ts":-4,"mol/locale":-3,"mol/string":-3,"mol/svg":-3,"mol/support/css":-3,"mol/link":-3,"hyoo/crus/yard":-3,"mol/rest/port":-3,"mol/dom/serialize":-2,"hyoo/crus/yard/yard.ts":-3,"hyoo/crus/vary":-2,"mol/dom/parse":-2,"mol/jsx":-2,"mol/blob":-1,"mol/button/copy":-3,"mol/text/code":-3,"mol/state/session":-4,"mol/embed/native":-4,"mol/text/text":-3},"mol/dom":{"mol/dom/context":-9007199254740991,"mol/dom/qname":-9007199254740991,"mol/dom/render":-9007199254740991,"mol/dom/listener":-9007199254740991,"mol/dom/serialize":-9007199254740991,"mol/dom/parse":-9007199254740991},"mol/dom/context/context.ts":{"mol/dom/context":0},"node":{"mol/dom/context":-1,"mol/exec":-2,"mol/state/local":-3,"mol/charset/encode":-1,"mol/file":-1,"mol/rest/port/ws":-2,"hyoo/crus/yard":-3,"mol/crypto/native":-1,"mol/blob":-1},"node/node.ts":{"node":0},"node_modules":{"node":-2},"mol/exec":{"mol/dom/context":-4},"mol/env":{"mol/exec":-4},"mol/env/env.ts":{"mol/env":0},"mol/view/selection":{"mol/view/view":-3},"mol/after/tick":{"mol/view/selection":-3,"mol/style/attach":-1,"mol/text/text":-4},"mol/memo":{"mol/view/view":-2,"mol/crypto/key":-2,"hyoo/crus/auth":-2,"hyoo/crus/node":-2},"mol/wrapper":{"mol/memo":-1},"mol/dom/qname":{"mol/view/view":-3,"mol/style/sheet":-2},"mol/wire/probe":{"mol/view/view":-3,"mol/mem/cached":-1,"hyoo/crus/yard":-3,"hyoo/crus/yard/yard.ts":-3,"hyoo/crus/dict":-3},"mol/wire/watch":{"mol/view/view":-4},"mol/const":{"mol/view/view":-3,"mol/file":-4,"hyoo/crus/realm":-3,"hyoo/crus/land":-5},"mol/wire/solid":{"mol/view/view":-3,"mol/mem/persist":-1,"hyoo/crus/auth":-3,"hyoo/crus/mine":-3,"hyoo/crus/mine/mine.ts":-3,"hyoo/crus/land":-3,"mol/embed/native":-3},"mol/dom/render/attributes":{"mol/view/view":-3},"mol/dom/render":{"mol/dom/render/attributes":-9007199254740991,"mol/dom/render/events":-9007199254740991,"mol/dom/render/styles":-9007199254740991,"mol/dom/render/children":-9007199254740991,"mol/dom/render/fields":-9007199254740991},"mol/dom/render/events":{"mol/view/view":-3},"mol/plugin":{"mol/hotkey/-view.tree/hotkey.view.tree.js":-1,"mol/hotkey":-1,"mol/nav/-view.tree/nav.view.tree.js":-1,"mol/nav":-1,"mol/search":-2,"mol/scroll/-view.tree/scroll.view.tree.js":-6},"mol/dom/render/styles":{"mol/view/view":-3},"mol/dom/render/children":{"mol/view/view":-3,"mol/jsx":-2},"mol/dom/render/fields":{"mol/view/view":-3},"mol/wire/async":{"mol/view/view":-3,"mol/string":-4,"hyoo/crus/yard":-5,"hyoo/crus/yard/yard.ts":-5,"hyoo/crus/land":-4,"mol/embed/native":-4},"mol/type/pick":{"mol/view/view":-1},"mol/type/keys/extract":{"mol/type/pick":-3,"mol/style/guard":-1},"mol/type/keys":{"mol/type/keys/extract":-9007199254740991},"mol/style/attach":{"mol/view/view":0,"mol/theme":0,"mol/gap":0,"mol/style/define":-2,"mol/book2":0,"mol/layer":0,"mol/pop":0,"mol/string":0,"mol/icon":0,"mol/svg/root":0,"mol/speck":0,"mol/button":0,"mol/button/minor":0,"mol/button/typed":0,"mol/list":0,"mol/paragraph":0,"mol/dimmer":0,"mol/search":0,"mol/book2/catalog":0,"mol/stack":0,"mol/textarea":0,"mol/row":0,"mol/form":0,"mol/labeler":0,"mol/form/field":0,"mol/text/list":0,"mol/float":0,"mol/check":0,"mol/check/expand":0,"mol/grid":0,"mol/image":0,"mol/link/iconed":0,"mol/embed/native":0,"mol/embed/youtube":0,"mol/text/text":0,"mol/string/button":0},"mol/style":{"mol/style/attach":-9007199254740991,"mol/style/prop":-9007199254740991,"mol/style/func":-9007199254740991,"mol/style/unit":-9007199254740991,"mol/style/properties":-9007199254740991,"mol/style/define":-9007199254740991,"mol/style/guard":-9007199254740991,"mol/style/pseudo":-9007199254740991,"mol/style/sheet":-9007199254740991},"mol/theme":{"mol/view/view":-1,"mol/book2":-1,"mol/pop":-1,"mol/string":-1,"mol/icon":-1,"mol/speck/-view.tree/speck.view.tree.js":-3,"mol/speck":-3,"mol/button/typed":-1,"mol/button/minor":-1,"mol/dimmer":-1,"mol/search":-1,"mol/link":-2,"mol/page":-2,"mol/text/code/row":-3,"mol/textarea":-1,"mol/labeler":-1,"mol/form/field":-1,"mol/float":-1,"mol/grid":-1,"mol/link/iconed":0,"mol/text/text":-1,"mol/string/button":-1,"hyoo/survey/meet/form":-4},"mol/style/prop":{"mol/theme":-1,"mol/gap":-1,"mol/layer":-1},"mol/style/func":{"mol/style/prop":-2,"mol/style/properties":-1,"mol/page":-1,"mol/text/code/token":-1},"mol/style/unit":{"mol/style/func":-1,"mol/style/properties":-1,"mol/scroll":-1,"mol/link":-1,"mol/page":-1,"mol/text/code/row":-1,"mol/text/code":-1,"mol/frame":-2},"mol/decor":{"mol/style/unit":-1,"mol/style/func":-1},"mol/style/properties":{"mol/style/guard":-1,"mol/style/prop":-3},"mol/type/override":{"mol/style/properties":-1,"mol/regexp":-2,"hyoo/crus/dict":-4},"mol/gap":{"mol/view/view":-1,"mol/pop":-1,"mol/string":-1,"mol/button":-1,"mol/button/typed":-1,"mol/link":-2,"mol/page":-3,"mol/text/code":-3,"mol/textarea":-1,"mol/row":-1,"mol/form":-1,"mol/labeler":-1,"mol/form/field":-1,"mol/grid":-1,"mol/image":-1,"mol/link/iconed":-1,"mol/embed/native":-1,"mol/text/text":-1,"hyoo/survey/meet/form":-3},"mol/print":{"mol/scroll":-3,"mol/list":-3},"mol/dom/listener":{"mol/print":-3,"mol/string":-3,"mol/embed/native":-3},"mol/style/define":{"mol/scroll":-1,"mol/link":-1,"mol/page":-1,"mol/text/code/token":-1,"mol/text/code/row":-1,"mol/text/code":-1,"mol/frame":-1,"hyoo/survey/meet/form":-1},"mol/style/guard":{"mol/style/define":-2,"mol/style/sheet":-2},"mol/style/pseudo":{"mol/style/guard":-1},"mol/type/error":{"mol/style/guard":-2},"mol/style/sheet":{"mol/style/define":-3},"mol/mem/cached":{"mol/book2":-3,"mol/storage":-3,"mol/file":-5,"mol/list":-3},"mol/layer":{"mol/book2":-1,"mol/pop":-1,"mol/string":-1,"mol/speck":-1,"mol/button":-1,"mol/textarea":-1,"mol/float":-1},"mol/type/enforce":{"mol/book2":-1,"mol/pop":-1,"mol/string":-1,"mol/icon":-1,"mol/button":-1,"mol/list":-1,"mol/dimmer":-1,"mol/search":-1,"mol/page":-1,"mol/book2/catalog":-1,"mol/text/code/row":-1,"mol/button/copy":-1,"mol/text/code":-1,"mol/textarea":-1,"mol/form":-1,"mol/labeler":-1,"mol/form/field":-1,"mol/text/list":-1,"mol/check":-1,"mol/grid":-1,"mol/link/iconed":-1,"mol/embed/native":-1,"mol/embed/youtube":-1,"mol/embed/any":-1,"mol/text/text":-1,"hyoo/survey/meet/form":-1,"hyoo/survey/app":-1},"mol/book2/catalog/catalog.view.tree":{"mol/book2/catalog":0},"mol/book2/catalog/-view.tree/catalog.view.tree.js":{"mol/book2/catalog/catalog.view.tree":0,"mol/book2/catalog":0},"mol/search":{"mol/book2/catalog/-view.tree/catalog.view.tree.js":-3,"mol/book2/catalog":-1},"mol/search/search.view.tree":{"mol/search":0},"mol/search/-view.tree/search.view.tree.js":{"mol/search/search.view.tree":0,"mol/search":0},"mol/pop":{"mol/search/-view.tree/search.view.tree.js":-1,"mol/search":-1},"mol/pop/pop.view.tree":{"mol/pop":0},"mol/pop/-view.tree/pop.view.tree.js":{"mol/pop/pop.view.tree":0,"mol/pop":0},"mol/hotkey":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/string/-view.tree/string.view.tree.js":-3,"mol/string":-1,"mol/search":-1},"mol/hotkey/hotkey.view.tree":{"mol/hotkey":0},"mol/hotkey/-view.tree/hotkey.view.tree.js":{"mol/hotkey/hotkey.view.tree":0,"mol/hotkey":0},"mol/keyboard/code":{"mol/hotkey":-3,"mol/nav":-4,"mol/button":-3,"mol/textarea":-4,"mol/form":-3},"mol/keyboard":{"mol/keyboard/code":-9007199254740991},"mol/nav":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-1},"mol/nav/nav.view.tree":{"mol/nav":0},"mol/nav/-view.tree/nav.view.tree.js":{"mol/nav/nav.view.tree":0,"mol/nav":0},"mol/locale":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-3,"mol/text/code/-view.tree/code.view.tree.js":-3,"mol/text/code":-3,"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":-3},"mol/state/local":{"mol/locale":-3,"hyoo/crus/auth":-3},"mol/state":{"mol/state/local":-9007199254740991,"mol/state/time":-9007199254740991,"mol/state/arg":-9007199254740991,"mol/state/session":-9007199254740991},"mol/storage":{"mol/state/local":-4,"mol/state/local/local.ts":-4},"mol/mem/persist":{"mol/storage":-3},"mol/wire/sync":{"mol/storage":-3,"hyoo/crus/yard":-3,"hyoo/crus/yard/yard.ts":-3,"hyoo/crus/auth":-3,"hyoo/crus/realm":-3,"hyoo/crus/land":-3,"mol/wait/timeout":-2,"mol/button/copy":-3,"mol/embed/native":-3},"mol/state/local/local.ts":{"mol/state/local":0},"mol/file":{"mol/state/local":-3,"mol/locale":-3,"hyoo/crus/yard":-3,"hyoo/crus/mine":-3},"mol/charset/decode":{"mol/file":-4,"mol/file/file.ts":-4,"hyoo/crus/vary":-3},"mol/charset":{"mol/charset/decode":-9007199254740991,"mol/charset/encoding":-9007199254740991,"mol/charset/encode":-9007199254740991},"mol/charset/encoding":{"mol/charset/decode":-1},"mol/charset/encode":{"mol/file":-4,"mol/file/file.ts":-4,"mol/rest/port":-3,"mol/rest/port/ws":-3,"mol/crypto/secret":-6,"hyoo/crus/vary":-3},"mol/file/file.ts":{"mol/file":0},"mol/action":{"mol/file":-2,"mol/string":-2,"mol/state/arg":-2,"hyoo/crus/yard":-2,"mol/rest/port":-2,"mol/rest/port/ws":-2,"hyoo/crus/face":-2,"hyoo/crus/yard/yard.ts":-2,"hyoo/crus/auth":-2,"hyoo/crus/realm":-2,"hyoo/crus/mine":-2,"hyoo/crus/mine/mine.ts":-2,"hyoo/crus/land":-2,"hyoo/crus/list":-3,"hyoo/survey/person":-2},"mol/compare/array":{"mol/file":-5},"mol/string":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-1,"mol/textarea/-view.tree/textarea.view.tree.js":-1,"mol/textarea":-1,"mol/string/button":-1,"mol/string/button/-view.tree/button.view.tree.js":-1},"mol/string/string.view.tree":{"mol/string":0},"mol/string/-view.tree/string.view.tree.js":{"mol/string/string.view.tree":0,"mol/string":0},"mol/icon/cross":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-2,"mol/book2/catalog/-view.tree/catalog.view.tree.js":-3,"mol/book2/catalog":-2},"mol/icon":{"mol/icon/cross":-1,"mol/icon/cross/-view.tree/cross.view.tree.js":-1,"mol/icon/plus":-1,"mol/icon/plus/-view.tree/plus.view.tree.js":-1,"mol/icon/clipboard":-1,"mol/icon/clipboard/-view.tree/clipboard.view.tree.js":-1,"mol/icon/clipboard/outline":-1,"mol/icon/clipboard/outline/-view.tree/outline.view.tree.js":-1,"mol/icon/chevron":-1,"mol/icon/chevron/-view.tree/chevron.view.tree.js":-1,"mol/icon/youtube":-1,"mol/icon/youtube/-view.tree/youtube.view.tree.js":-1},"mol/icon/icon.view.tree":{"mol/icon":0},"mol/icon/-view.tree/icon.view.tree.js":{"mol/icon/icon.view.tree":0,"mol/icon":0},"mol/svg/root":{"mol/icon/-view.tree/icon.view.tree.js":-1,"mol/icon":-1},"mol/svg":{"mol/svg/root":-1,"mol/svg/root/-view.tree/root.view.tree.js":-1,"mol/svg/path":-1,"mol/svg/path/-view.tree/path.view.tree.js":-1},"mol/svg/svg.view.tree":{"mol/svg":0},"mol/svg/-view.tree/svg.view.tree.js":{"mol/svg/svg.view.tree":0,"mol/svg":0},"mol/state/time":{"mol/svg":-3},"mol/svg/root/root.view.tree":{"mol/svg/root":0},"mol/svg/root/-view.tree/root.view.tree.js":{"mol/svg/root/root.view.tree":0,"mol/svg/root":0},"mol/svg/path":{"mol/icon/-view.tree/icon.view.tree.js":-3,"mol/icon":-1},"mol/svg/path/-view.tree/path.view.tree.js":{"mol/svg/path":0},"mol/icon/cross/-view.tree/cross.view.tree.js":{"mol/icon/cross":0},"mol/button/minor":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-1,"hyoo/survey/app/-view.tree/app.view.tree.js":-3,"mol/button/copy/-view.tree/copy.view.tree.js":-1,"mol/button/copy":-1,"mol/check/-view.tree/check.view.tree.js":-1,"mol/check":-1,"hyoo/survey/app":-1},"mol/button":{"mol/button/minor":-9007199254740991,"mol/button/typed":-1,"mol/button/typed/-view.tree/typed.view.tree.js":-1,"mol/button/copy":-9007199254740991},"mol/button/button.view.tree":{"mol/button":0},"mol/button/-view.tree/button.view.tree.js":{"mol/button/button.view.tree":0,"mol/button":0},"mol/speck":{"mol/button/-view.tree/button.view.tree.js":-3,"mol/button":-1},"mol/speck/speck.view.tree":{"mol/speck":0},"mol/speck/-view.tree/speck.view.tree.js":{"mol/speck/speck.view.tree":0,"mol/speck":0},"mol/button/minor/minor.view.tree":{"mol/button/minor":0},"mol/button/minor/-view.tree/minor.view.tree.js":{"mol/button/minor/minor.view.tree":0,"mol/button/minor":0},"mol/button/typed":{"mol/button/minor/-view.tree/minor.view.tree.js":-1,"mol/button/minor":-1},"mol/button/typed/typed.view.tree":{"mol/button/typed":0},"mol/button/typed/-view.tree/typed.view.tree.js":{"mol/button/typed/typed.view.tree":0,"mol/button/typed":0},"mol/list":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-1,"mol/book2/catalog/-view.tree/catalog.view.tree.js":-3,"mol/book2/catalog":-1,"mol/text/code/-view.tree/code.view.tree.js":-3,"mol/text/code":-1,"mol/form/-view.tree/form.view.tree.js":-1,"mol/form":-1,"mol/labeler/-view.tree/labeler.view.tree.js":-1,"mol/labeler":-1,"mol/text/text/-view.tree/text.view.tree.js":-1,"mol/grid/-view.tree/grid.view.tree.js":-1,"mol/grid":-1,"mol/text/text":-1,"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-3,"hyoo/survey/meet/form":-1},"mol/list/list.view.tree":{"mol/list":0},"mol/list/-view.tree/list.view.tree.js":{"mol/list/list.view.tree":0,"mol/list":0},"mol/support/css":{"mol/list":-3,"mol/text/code":-3},"mol/support":{"mol/support/css":-9007199254740991},"mol/dimmer":{"mol/search/-view.tree/search.view.tree.js":-3,"mol/search":-1,"mol/book2/catalog/-view.tree/catalog.view.tree.js":-3,"mol/book2/catalog":-1,"mol/text/code/token":-1,"mol/text/code/token/-view.tree/token.view.tree.js":-1,"mol/grid/-view.tree/grid.view.tree.js":-3,"mol/grid":-1,"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":-1},"mol/dimmer/dimmer.view.tree":{"mol/dimmer":0},"mol/dimmer/-view.tree/dimmer.view.tree.js":{"mol/dimmer/dimmer.view.tree":0,"mol/dimmer":0},"mol/paragraph":{"mol/dimmer/-view.tree/dimmer.view.tree.js":-1,"mol/dimmer":-1,"mol/text/code/row/-view.tree/row.view.tree.js":-1,"mol/text/code/row":-1,"mol/text/text/-view.tree/text.view.tree.js":-1,"mol/text/list/-view.tree/list.view.tree.js":-1,"mol/text/list":-1,"mol/text/text":-1},"mol/paragraph/paragraph.view.tree":{"mol/paragraph":0},"mol/paragraph/-view.tree/paragraph.view.tree.js":{"mol/paragraph/paragraph.view.tree":0,"mol/paragraph":0},"mol/regexp":{"mol/dimmer":-3},"mol/type/merge":{"mol/regexp":-2},"mol/type/equals":{"mol/type/merge":-3},"mol/type/intersect":{"mol/regexp":-2},"mol/unicode":{"mol/regexp":-2},"mol/link":{"mol/book2/catalog/-view.tree/catalog.view.tree.js":-3,"mol/book2/catalog":-1,"mol/link/iconed":-1,"mol/link/iconed/-view.tree/iconed.view.tree.js":-1,"mol/embed/native/-view.tree/native.view.tree.js":-3,"mol/embed/native":-1,"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":-1},"mol/link/link.view.tree":{"mol/link":0},"mol/link/-view.tree/link.view.tree.js":{"mol/link/link.view.tree":0,"mol/link":0},"mol/state/arg":{"mol/link":-3,"mol/book2/catalog":-3,"mol/link/iconed":-3,"mol/text/text":-4,"hyoo/survey/app":-3},"mol/state/arg/arg.ts":{"mol/state/arg":0},"mol/page":{"mol/book2/catalog/-view.tree/catalog.view.tree.js":-3,"mol/book2/catalog":-1,"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-1,"hyoo/survey/meet/form":-1},"mol/page/-view.tree/page.view.tree.js":{"mol/page":0},"mol/match":{"mol/book2/catalog":-4},"mol/icon/plus":{"hyoo/survey/app/-view.tree/app.view.tree.js":-3,"hyoo/survey/app":-2},"mol/icon/plus/-view.tree/plus.view.tree.js":{"mol/icon/plus":0},"hyoo/survey/meet":{"hyoo/survey/app/-view.tree/app.view.tree.js":-3,"hyoo/survey/meet/form":-2,"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-3,"hyoo/survey/person":-2,"hyoo/survey/app":-2},"hyoo/crus/entity":{"hyoo/survey/meet":-1,"hyoo/survey/person":-1},"hyoo/crus":{"hyoo/crus/entity":-9007199254740991,"hyoo/crus/dict":-9007199254740991,"hyoo/crus/list":-9007199254740991,"hyoo/crus/node":-9007199254740991,"hyoo/crus/gist":-9007199254740991,"hyoo/crus/unit":-9007199254740991,"hyoo/crus/part":-9007199254740991,"hyoo/crus/pass":-9007199254740991,"hyoo/crus/ref":-9007199254740991,"hyoo/crus/gift":-9007199254740991,"hyoo/crus/rank":-9007199254740991,"hyoo/crus/land":-9007199254740991,"hyoo/crus/realm":-9007199254740991,"hyoo/crus/yard":-9007199254740991,"hyoo/crus/pack":-9007199254740991,"hyoo/crus/face":-9007199254740991,"hyoo/crus/auth":-9007199254740991,"hyoo/crus/mine":-9007199254740991,"hyoo/crus/area":-9007199254740991,"hyoo/crus/home":-9007199254740991,"hyoo/crus/atom":-9007199254740991,"hyoo/crus/vary":-9007199254740991,"hyoo/crus/meta":-9007199254740991,"hyoo/crus/fund":-9007199254740991},"hyoo/crus/dict":{"hyoo/crus/entity":-1,"hyoo/crus/home":-1,"hyoo/crus/atom":-2,"hyoo/crus/meta":-1,"hyoo/survey/meet":-2},"hyoo/crus/list":{"hyoo/crus/dict":-2,"hyoo/crus/meta":-2,"hyoo/survey/person":-2},"hyoo/crus/node":{"hyoo/crus/list":-1,"hyoo/crus/realm":-2,"hyoo/crus/atom":-1,"hyoo/crus/dict":-2},"hyoo/crus/gist":{"hyoo/crus/node":-2,"hyoo/crus/atom":-2,"hyoo/crus/list":-2,"hyoo/crus/dict":-2},"hyoo/crus/unit":{"hyoo/crus/gist":-1,"hyoo/crus/pass":-1,"hyoo/crus/gift":-1,"hyoo/crus/yard":-2,"hyoo/crus/yard/yard.ts":-2},"hyoo/crus/part":{"hyoo/crus/unit":-2,"hyoo/crus/pack":-4},"mol/buffer":{"hyoo/crus/unit":-1,"mol/websocket/frame":-1,"hyoo/crus/pack":-1,"mol/crypto/key":-1,"hyoo/crus/gist":-3},"mol/base64/ae":{"mol/buffer":-3,"hyoo/crus/ref":-2,"hyoo/crus/unit":-4,"hyoo/crus/pack":-5,"hyoo/crus/auth":-3,"hyoo/crus/mine":-3,"hyoo/crus/area":-2,"hyoo/crus/land":-4,"hyoo/crus/vary/cast":-3},"mol/base64":{"mol/base64/ae":-9007199254740991,"mol/base64/encode":-9007199254740991,"mol/base64/decode":-9007199254740991,"mol/base64/url":-9007199254740991},"mol/base64/encode":{"mol/base64/ae":-2,"mol/base64/url":-2},"mol/base64/encode/encode.ts":{"mol/base64/encode":0},"mol/base64/decode":{"mol/base64/ae":-2,"mol/base64/url":-2},"mol/base64/decode/decode.ts":{"mol/base64/decode":0},"hyoo/crus/pass":{"hyoo/crus/yard":-5,"hyoo/crus/yard/yard.ts":-5,"hyoo/crus/gist":-7},"hyoo/crus/ref":{"hyoo/crus/pass":-2,"hyoo/crus/gift":-2,"hyoo/crus/unit":-2,"hyoo/crus/realm":-2,"hyoo/crus/yard":-2,"hyoo/crus/pack":-2,"hyoo/crus/yard/yard.ts":-2,"hyoo/crus/auth":-3,"hyoo/crus/land":-2,"hyoo/crus/vary":-1,"hyoo/crus/vary/cast":-3,"hyoo/crus/atom":-4,"hyoo/crus/node":-3,"hyoo/survey/app":-2},"mol/data/tagged":{"hyoo/crus/ref":-1},"mol/data":{"mol/data/tagged":-9007199254740991,"mol/data/value":-9007199254740991},"mol/data/value":{"mol/data/tagged":-2,"hyoo/crus/atom":-2,"hyoo/crus/list":-2},"hyoo/crus/gift":{"hyoo/crus/gist":-7},"hyoo/crus/rank":{"hyoo/crus/gift":-2,"hyoo/crus/realm":-2,"hyoo/crus/land":-2,"hyoo/crus/atom":-3,"hyoo/crus/home":-3,"hyoo/crus/node":-3,"hyoo/crus/list":-3,"hyoo/survey/meet":-3,"hyoo/survey/person":-3,"hyoo/survey/app":-3},"mol/time/moment":{"hyoo/crus/gift":-4,"hyoo/crus/vary":-1,"mol/time/interval":-2,"hyoo/crus/vary/cast":-3,"hyoo/crus/gist":-4,"hyoo/crus/node":-3},"mol/time":{"mol/time/moment":-9007199254740991,"mol/time/duration":-9007199254740991,"mol/time/base":-9007199254740991,"mol/time/interval":-9007199254740991},"mol/time/duration":{"mol/time/moment":-2,"hyoo/crus/vary":-1,"mol/time/interval":-2,"hyoo/crus/vary/cast":-3},"mol/time/base":{"mol/time/duration":-1,"mol/time/moment":-1,"mol/time/interval":-1},"hyoo/crus/land":{"hyoo/crus/unit":-2,"hyoo/crus/realm":-2,"hyoo/crus/yard":-2,"hyoo/crus/yard/yard.ts":-2,"hyoo/crus/node":-3},"hyoo/crus/realm":{"hyoo/survey/app/-view.tree/app.view.tree.js":-3,"hyoo/survey/app":-2,"hyoo/crus/list":-3},"mol/wire/dict":{"hyoo/crus/realm":-2,"hyoo/crus/land":-2},"hyoo/crus/yard":{"hyoo/crus/gist":-3},"mol/wire/set":{"hyoo/crus/yard":-2,"hyoo/crus/yard/yard.ts":-2,"hyoo/crus/land":-2},"mol/rest/port/ws":{"hyoo/crus/yard":-3,"hyoo/crus/yard/yard.ts":-3},"mol/rest/port":{"mol/rest/port/ws":-1,"mol/rest/port/ws/ws.ts":-1,"hyoo/crus/yard":-2,"hyoo/crus/yard/yard.ts":-2},"mol/rest":{"mol/rest/port":-9007199254740991,"mol/rest/code":-9007199254740991},"mol/rest/code":{"mol/rest/port":-2},"mol/dom/serialize":{"mol/rest/port":-3,"hyoo/crus/vary":-3,"hyoo/crus/vary/cast":-3},"mol/rest/port/ws/ws.ts":{"mol/rest/port/ws":0},"mol/websocket/frame":{"mol/rest/port/ws":-3},"mol/websocket":{"mol/websocket/frame":-9007199254740991},"mol/guard":{"hyoo/crus/yard":-4,"hyoo/crus/yard/yard.ts":-4,"hyoo/crus/land":-5,"hyoo/crus/list":-5},"hyoo/crus/pack":{"hyoo/crus/yard":-3,"hyoo/crus/yard/yard.ts":-3,"hyoo/crus/realm":-2,"hyoo/crus/land":-3},"hyoo/crus/face":{"hyoo/crus/pack":-3,"hyoo/crus/yard":-3,"hyoo/crus/yard/yard.ts":-3,"hyoo/crus/land":-2},"mol/crypto/hash":{"hyoo/crus/pack":-8,"hyoo/crus/mine":-3,"hyoo/crus/mine/mine.ts":-3,"hyoo/crus/land":-4,"hyoo/crus/gist":-3},"mol/crypto":{"mol/crypto/hash":-9007199254740991,"mol/crypto/key":-9007199254740991,"mol/crypto/native":-9007199254740991,"mol/crypto/secret":-9007199254740991},"hyoo/crus/yard/yard.ts":{"hyoo/crus/yard":0},"hyoo/crus/auth":{"hyoo/crus/realm":-3,"hyoo/crus/land":-3,"hyoo/crus/node":-3},"mol/crypto/key":{"hyoo/crus/auth":-1,"hyoo/crus/land":-3},"mol/base64/url":{"mol/crypto/key":-3},"mol/crypto/native":{"mol/crypto/key":-3,"mol/crypto/secret":-3},"mol/crypto/secret":{"hyoo/crus/auth":-3,"hyoo/crus/land":-3},"hyoo/crus/mine":{"hyoo/crus/realm":-4,"hyoo/crus/land":-3},"hyoo/crus/mine/mine.ts":{"hyoo/crus/mine":0},"hyoo/crus/area":{"hyoo/crus/land":-2,"hyoo/crus/atom":-4,"hyoo/crus/list":-4},"hyoo/crus/home":{"hyoo/crus/entity":-3},"hyoo/crus/atom":{"hyoo/crus/home":-2,"hyoo/crus/entity":-4,"hyoo/survey/meet":-2},"hyoo/crus/vary":{"hyoo/crus/atom":-2,"hyoo/crus/vary/cast":-1,"hyoo/crus/land":-2,"hyoo/crus/gist":-2,"hyoo/crus/list":-2,"hyoo/crus/dict":-2},"mol/time/interval":{"hyoo/crus/vary":-1,"hyoo/crus/vary/cast":-3},"mol/type/result":{"hyoo/crus/vary":-1,"hyoo/crus/atom":-3,"hyoo/crus/list":-2},"mol/dom/parse":{"hyoo/crus/vary":-3,"hyoo/crus/vary/cast":-5},"hyoo/crus/vary/cast":{"hyoo/crus/atom":-1,"hyoo/crus/land":-5,"hyoo/crus/list":-1},"mol/jsx":{"hyoo/crus/vary/cast":0},"mol/type/partial/deep":{"mol/jsx":-3},"mol/type/partial":{"mol/type/partial/deep":-9007199254740991},"mol/tree2/bin":{"hyoo/crus/vary/cast":-3},"mol/tree2/xml/from/dom":{"hyoo/crus/vary/cast":-3},"mol/tree2/xml/from":{"mol/tree2/xml/from/dom":-9007199254740991},"mol/tree2/xml":{"mol/tree2/xml/from":-9007199254740991},"hyoo/crus/meta":{"hyoo/crus/entity":-3},"hyoo/crus/fund":{"hyoo/crus/land":-2},"mol/bus":{"hyoo/crus/land":-3},"mol/wait/timeout":{"hyoo/crus/land":-3,"mol/embed/native":-3},"mol/wait":{"mol/wait/timeout":-9007199254740991},"mol/promise/promise":{"mol/wait/timeout":-2},"mol/wire/race":{"hyoo/crus/land":-3},"mol/reconcile":{"hyoo/crus/list":-3},"hyoo/survey/meet/form":{"hyoo/survey/app/-view.tree/app.view.tree.js":-3,"hyoo/survey/app":-1},"hyoo/survey/meet/form/form.view.tree":{"hyoo/survey/meet/form":0},"hyoo/survey/meet/form/-view.tree/form.view.tree.js":{"hyoo/survey/meet/form/form.view.tree":0,"hyoo/survey/meet/form":0},"mol/textarea":{"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-3,"hyoo/survey/meet/form":-1},"mol/textarea/textarea.view.tree":{"mol/textarea":0},"mol/textarea/-view.tree/textarea.view.tree.js":{"mol/textarea/textarea.view.tree":0,"mol/textarea":0},"mol/stack":{"mol/textarea/-view.tree/textarea.view.tree.js":-1,"mol/text/code/-view.tree/code.view.tree.js":-1,"mol/text/code":-1,"mol/textarea":-1},"mol/stack/stack.view.tree":{"mol/stack":0},"mol/stack/-view.tree/stack.view.tree.js":{"mol/stack/stack.view.tree":0,"mol/stack":0},"mol/text/code":{"mol/textarea/-view.tree/textarea.view.tree.js":-3,"mol/textarea":-1,"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":0},"mol/text":{"mol/text/code":-9007199254740991,"mol/text/text":0,"mol/text/list":-9007199254740991,"mol/text/text/-view.tree/text.view.tree.js":-1},"mol/text/code/code.view.tree":{"mol/text/code":0},"mol/text/code/-view.tree/code.view.tree.js":{"mol/text/code/code.view.tree":0,"mol/text/code":0},"mol/text/code/row":{"mol/text/code/-view.tree/code.view.tree.js":-3,"mol/text/code":-1,"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":-1},"mol/text/code/row/row.view.tree":{"mol/text/code/row":0},"mol/text/code/row/-view.tree/row.view.tree.js":{"mol/text/code/row/row.view.tree":0,"mol/text/code/row":0},"mol/text/code/token":{"mol/text/code/row/-view.tree/row.view.tree.js":-3,"mol/text/code/row":-1},"mol/text/code/token/-view.tree/token.view.tree.js":{"mol/text/code/token":0},"mol/syntax2/md":{"mol/text/code/row":-3,"mol/text/code":-3,"mol/text/text":-3},"mol/syntax2":{"mol/syntax2/md":-1},"mol/button/copy":{"mol/text/code/-view.tree/code.view.tree.js":-3,"mol/text/code":-1},"mol/button/copy/copy.view.tree":{"mol/button/copy":0},"mol/button/copy/-view.tree/copy.view.tree.js":{"mol/button/copy/copy.view.tree":0,"mol/button/copy":0},"mol/blob":{"mol/button/copy/-view.tree/copy.view.tree.js":-3,"mol/button/copy":-1},"mol/icon/clipboard/outline":{"mol/button/copy/-view.tree/copy.view.tree.js":-3,"mol/button/copy":-2},"mol/icon/clipboard":{"mol/icon/clipboard/outline":-9007199254740991},"mol/icon/clipboard/-view.tree/clipboard.view.tree.js":{"mol/icon/clipboard":0},"mol/icon/clipboard/outline/-view.tree/outline.view.tree.js":{"mol/icon/clipboard/outline":0},"mol/html/encode":{"mol/button/copy":-3},"mol/html":{"mol/html/encode":-9007199254740991},"mol/form/field":{"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-3,"mol/form":-2,"hyoo/survey/meet/form":-1},"mol/form":{"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-9007199254740991},"mol/form/form.view.tree":{"mol/form":0},"mol/form/-view.tree/form.view.tree.js":{"mol/form/form.view.tree":0,"mol/form":0},"mol/row":{"mol/form/-view.tree/form.view.tree.js":-3,"mol/form":-1},"mol/row/row.view.tree":{"mol/row":0},"mol/row/-view.tree/row.view.tree.js":{"mol/row/row.view.tree":0,"mol/row":0},"mol/form/field/field.view.tree":{"mol/form/field":0},"mol/form/field/-view.tree/field.view.tree.js":{"mol/form/field/field.view.tree":0,"mol/form/field":0},"mol/labeler":{"mol/form/field/-view.tree/field.view.tree.js":-1,"mol/form/field":-1},"mol/labeler/labeler.view.tree":{"mol/labeler":0},"mol/labeler/-view.tree/labeler.view.tree.js":{"mol/labeler/labeler.view.tree":0,"mol/labeler":0},"mol/text/text":{"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-3,"mol/text/list/-view.tree/list.view.tree.js":-1,"mol/text/list":-1,"hyoo/survey/meet/form":-1},"mol/text/text/text.view.tree":{"mol/text/text":0},"mol/text/text/-view.tree/text.view.tree.js":{"mol/text/text/text.view.tree":0,"mol/text/text":0},"mol/text/list":{"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-3},"mol/text/list/list.view.tree":{"mol/text/list":0},"mol/text/list/-view.tree/list.view.tree.js":{"mol/text/list/list.view.tree":0,"mol/text/list":0},"mol/grid":{"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":-1},"mol/grid/grid.view.tree":{"mol/grid":0},"mol/grid/-view.tree/grid.view.tree.js":{"mol/grid/grid.view.tree":0,"mol/grid":0},"mol/float":{"mol/grid/-view.tree/grid.view.tree.js":-3,"mol/grid":-1},"mol/float/float.view.tree":{"mol/float":0},"mol/float/-view.tree/float.view.tree.js":{"mol/float/float.view.tree":0,"mol/float":0},"mol/check/expand":{"mol/grid/-view.tree/grid.view.tree.js":-3,"mol/grid":-1},"mol/check":{"mol/check/expand":0,"mol/check/expand/-view.tree/expand.view.tree.js":-1,"mol/embed/youtube/-view.tree/youtube.view.tree.js":-1,"mol/embed/youtube":-1},"mol/check/check.view.tree":{"mol/check":0},"mol/check/-view.tree/check.view.tree.js":{"mol/check/check.view.tree":0,"mol/check":0},"mol/maybe":{"mol/check":-4},"mol/check/expand/expand.view.tree":{"mol/check/expand":0},"mol/check/expand/-view.tree/expand.view.tree.js":{"mol/check/expand/expand.view.tree":0,"mol/check/expand":0},"mol/icon/chevron":{"mol/check/expand/-view.tree/expand.view.tree.js":-3,"mol/check/expand":-2},"mol/icon/chevron/-view.tree/chevron.view.tree.js":{"mol/icon/chevron":0},"mol/state/session":{"mol/grid":-3},"mol/link/iconed":{"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":-1},"mol/link/iconed/iconed.view.tree":{"mol/link/iconed":0},"mol/link/iconed/-view.tree/iconed.view.tree.js":{"mol/link/iconed/iconed.view.tree":0,"mol/link/iconed":0},"mol/image":{"mol/link/iconed/-view.tree/iconed.view.tree.js":-3,"mol/link/iconed":-1,"mol/embed/any/-view.tree/any.view.tree.js":-3,"mol/embed/youtube/-view.tree/youtube.view.tree.js":-3,"mol/embed/youtube":-1,"mol/embed/any":-1},"mol/image/image.view.tree":{"mol/image":0},"mol/image/-view.tree/image.view.tree.js":{"mol/image/image.view.tree":0,"mol/image":0},"mol/embed/any":{"mol/text/text/-view.tree/text.view.tree.js":-3,"mol/text/text":-1},"mol/embed":{"mol/embed/any":-9007199254740991,"mol/embed/native":-9007199254740991,"mol/embed/youtube":-9007199254740991},"mol/embed/any/any.view.tree":{"mol/embed/any":0},"mol/embed/any/-view.tree/any.view.tree.js":{"mol/embed/any/any.view.tree":0,"mol/embed/any":0},"mol/embed/native":{"mol/embed/any/-view.tree/any.view.tree.js":-3,"mol/frame/-view.tree/frame.view.tree.js":-1,"mol/frame":-1,"mol/embed/any":-1},"mol/embed/native/native.view.tree":{"mol/embed/native":0},"mol/embed/native/-view.tree/native.view.tree.js":{"mol/embed/native/native.view.tree":0,"mol/embed/native":0},"mol/embed/youtube":{"mol/embed/any/-view.tree/any.view.tree.js":-3,"mol/embed/any":-1},"mol/embed/youtube/youtube.view.tree":{"mol/embed/youtube":0},"mol/embed/youtube/-view.tree/youtube.view.tree.js":{"mol/embed/youtube/youtube.view.tree":0,"mol/embed/youtube":0},"mol/icon/youtube":{"mol/embed/youtube/-view.tree/youtube.view.tree.js":-3,"mol/embed/youtube":-2},"mol/icon/youtube/-view.tree/youtube.view.tree.js":{"mol/icon/youtube":0},"mol/frame":{"mol/embed/youtube/-view.tree/youtube.view.tree.js":-3,"mol/embed/youtube":-1},"mol/frame/frame.view.tree":{"mol/frame":0},"mol/frame/-view.tree/frame.view.tree.js":{"mol/frame/frame.view.tree":0,"mol/frame":0},"mol/string/button":{"hyoo/survey/meet/form/-view.tree/form.view.tree.js":-3,"hyoo/survey/meet/form":-1},"mol/string/button/button.view.tree":{"mol/string/button":0},"mol/string/button/-view.tree/button.view.tree.js":{"mol/string/button/button.view.tree":0,"mol/string/button":0},"hyoo/survey/person":{"hyoo/survey/app":-3}},"deps_out":{"hyoo/survey/app":{"hyoo/survey":-3,"hyoo/survey/app/app.view.tree":0,"mol/mem":-1,"hyoo/crus/ref":-2,"mol/state/arg":-3,"hyoo/survey/person":-3,"hyoo/crus/rank":-3,"hyoo/survey/meet":-2,"mol/book2/catalog":-1,"mol/icon/plus":-2,"mol/button/minor":-1,"hyoo/survey/meet/form":-1,"hyoo/crus/realm":-2,"mol/type/enforce":-1,"hyoo/survey/app/-view.tree/app.view.tree.js":0},"hyoo/survey":{"hyoo":-9007199254740991},"hyoo":{"":-9007199254740991},"hyoo/survey/app/app.view.tree":{"hyoo/survey/app/-view.tree/app.view.tree.js":0},"hyoo/survey/app/-view.tree/app.view.tree.js":{"mol/book2/catalog":-1,"mol/icon/plus":-3,"mol/button/minor":-3,"hyoo/survey/meet":-3,"hyoo/survey/meet/form":-3,"hyoo/crus/realm":-3,"hyoo/survey":-3,"mol/mem":-1},"mol/book2/catalog":{"mol/book2":-1,"mol/book2/catalog/catalog.view.tree":0,"mol/mem":-1,"mol/match":-4,"mol/view/view":-2,"mol/state/arg":-3,"mol/style/attach":0,"mol/search":-1,"mol/dimmer":-1,"mol/link":-1,"mol/list":-1,"mol/page":-1,"mol/icon/cross":-2,"mol/type/enforce":-1,"mol/book2/catalog/-view.tree/catalog.view.tree.js":0},"mol/book2":{"mol":-9007199254740991,"mol/book2/book2.view.tree":0,"mol/fail/log":-5,"mol/mem":-1,"mol/mem/cached":-3,"mol/view/view":0,"mol/style/attach":0,"mol/theme":-1,"mol/layer":-1,"mol/scroll":-1,"mol/type/enforce":-1,"mol/book2/-view.tree/book2.view.tree.js":0},"mol":{"":-9007199254740991},"mol/book2/book2.view.tree":{"mol/book2/-view.tree/book2.view.tree.js":0},"mol/book2/-view.tree/book2.view.tree.js":{"mol/scroll":-1,"mol/view/view":-3,"mol/mem":-1},"mol/scroll":{"mol":-9007199254740991,"mol/scroll/scroll.view.tree":0,"mol/mem":-1,"mol/print":-3,"mol/view/view":-1,"mol/scroll/-view.tree/scroll.view.tree.js":0,"mol/style/unit":-1,"mol/style/define":-1},"mol/scroll/scroll.view.tree":{"mol/scroll/-view.tree/scroll.view.tree.js":0},"mol/scroll/-view.tree/scroll.view.tree.js":{"mol/view/view":-1,"mol/mem":-1,"mol/plugin":-6},"mol/view/view":{"mol/view":0,"mol/window":-2,"mol/object":-1,"mol/mem":-2,"mol/fail/log":-4,"mol/dom/context":-3,"mol/view/selection":-3,"mol/memo":-2,"mol/dom/qname":-3,"mol/wire/probe":-3,"mol/wire/watch":-4,"mol/const":-3,"mol/wire/solid":-3,"mol/dom/render/attributes":-3,"mol/dom/render/events":-3,"mol/promise/like":-4,"mol/dom/render/styles":-3,"mol/dom/render/children":-3,"mol/dom/render/fields":-3,"mol/func/name":-4,"mol/owning":-3,"mol/wire/fiber":-3,"mol/wire/async":-3,"mol/dev/format":-2,"mol/fail/hidden":-4,"mol/after/frame":-3,"mol/type/pick":-1,"mol/style/attach":0,"mol/theme":-1,"mol/gap":-1},"mol/view":{"mol":-9007199254740991},"mol/window":{"mol":-9007199254740991,"mol/object":-1},"mol/object":{"mol":-9007199254740991,"mol/object2":-1},"mol/object2":{"mol":-9007199254740991,"mol/ambient":-2,"mol/owning":-3,"mol/fail/hidden":-3,"mol/type/writable":-3,"mol/func/name":-3},"mol/ambient":{"mol":-9007199254740991},"mol/owning":{"mol":-9007199254740991,"mol/delegate":-3},"mol/delegate":{"mol":-9007199254740991},"mol/fail/hidden":{"mol/fail":-9007199254740991},"mol/fail":{"mol":-9007199254740991},"mol/type/writable":{"mol/type":-9007199254740991},"mol/type":{"mol":-9007199254740991},"mol/func/name":{"mol/func":-9007199254740991},"mol/func":{"mol":-9007199254740991},"mol/mem":{"mol":-9007199254740991,"mol/wire/solo":-1,"mol/wire/plex":-1},"mol/wire/solo":{"mol/wire":-5,"mol/wire/atom":-4,"mol/wire/fiber":-5,"mol/type/tail":-2},"mol/wire":{"mol":-9007199254740991,"mol/wire/sub":-1},"mol/wire/sub":{"mol/wire/pub":-1,"mol/wire/cursor":-2},"mol/wire/pub":{"mol/fail":-4,"mol/wire/cursor":-2},"mol/wire/cursor":{},"mol/wire/atom":{"mol/wire":-4,"mol/wire/fiber":-1,"mol/func/name":-3,"mol/key":-3,"mol/after/frame":-2,"mol/wire/cursor":-3,"mol/wire/method":-2,"mol/type/foot":-3,"mol/owning":-3,"mol/compare/deep":-5,"mol/fail/log":-5,"mol/promise/like":-3},"mol/wire/fiber":{"mol/wire":-9007199254740991,"mol/wire/pub/sub":-1,"mol/after/frame":-2,"mol/wire/cursor":-2,"mol/promise/like":-3,"mol/dev/format":-2,"mol/owning":-4,"mol/wire/pub":-5,"mol/fail/hidden":-4},"mol/wire/pub/sub":{"mol/wire/pub":-1,"mol/wire/sub":-1,"mol/wire/cursor":-2,"mol/wire":-3,"mol/fail":-3,"mol/dev/format":-2},"mol/dev/format":{"mol/dev":-9007199254740991},"mol/dev":{"mol":-9007199254740991},"mol/after/frame":{"mol/after":-9007199254740991,"mol/after/timeout":-1},"mol/after":{"mol":-9007199254740991},"mol/after/timeout":{"mol/after":-9007199254740991,"mol/object2":-1},"mol/promise/like":{"mol/promise":-9007199254740991},"mol/promise":{"mol":-9007199254740991},"mol/key":{"mol":-9007199254740991,"mol/guid":-3},"mol/guid":{"mol":-9007199254740991},"mol/wire/method":{"mol/wire":-9007199254740991,"mol/wire/task":-2},"mol/wire/task":{"mol/wire":-4,"mol/wire/fiber":-1,"mol/compare/deep":-5,"mol/log3":-5,"mol/promise/like":-3,"mol/wire/cursor":-3},"mol/compare/deep":{"mol/compare":-9007199254740991},"mol/compare":{"mol":-9007199254740991},"mol/log3":{"mol":-9007199254740991,"mol/log3/log3.ts":0,"mol/tree2/from/json":-3,"mol/term/color":-1},"mol/log3/log3.ts":{},"mol/tree2/from/json":{"mol/tree2/from":-9007199254740991,"mol/span":-1,"mol/tree2":-1},"mol/tree2/from":{"mol/tree2":-9007199254740991,"mol/tree2/from/string":-2},"mol/tree2":{"mol":-9007199254740991,"mol/span":-2,"mol/fail":-4,"mol/tree2/to/string":-3,"mol/fail/hidden":-4},"mol/span":{"mol":-9007199254740991,"mol/object2":-1,"mol/fail":-3},"mol/tree2/from/string":{"mol/tree2":-1,"mol/span":-2,"mol/fail":-4,"mol/error/syntax":-4},"mol/error/syntax":{"mol/error":-9007199254740991,"mol/span":-3},"mol/error":{"mol":-9007199254740991},"mol/tree2/to/string":{"mol/tree2/to":-9007199254740991},"mol/tree2/to":{},"mol/term/color":{"mol/term":-9007199254740991},"mol/term":{"mol":-9007199254740991},"mol/type/foot":{"mol/type":-9007199254740991,"mol/type/tail":-1.25},"mol/type/tail":{"mol/type":-9007199254740991},"mol/fail/log":{"mol/fail":-9007199254740991,"mol/promise/like":-2,"mol/fail/catch":-2},"mol/fail/catch":{"mol/fail":-9007199254740991,"mol/promise/like":-2,"mol/fail/hidden":-2},"mol/wire/plex":{"mol/wire":-5,"mol/wire/atom":-4,"mol/wire/fiber":-5},"mol/dom/context":{"mol/dom":-9007199254740991,"mol/dom/context/context.ts":0,"node":-1,"mol/exec":-4},"mol/dom":{"mol":-9007199254740991},"mol/dom/context/context.ts":{},"node":{"":-9007199254740991,"node/node.ts":0,"node_modules":-2,"mol/fail/log":-3},"node_modules":{"":-9007199254740991},"mol/exec":{"mol":-9007199254740991,"mol/log3":-2,"node":-2,"mol/env":-4,"mol/fail":-3},"mol/env":{"mol":-9007199254740991,"mol/env/env.ts":0},"mol/env/env.ts":{},"mol/view/selection":{"mol/view":-9007199254740991,"mol/object":-1,"mol/mem":-2,"mol/dom/context":-3,"mol/after/tick":-3},"mol/after/tick":{"mol/after":-9007199254740991,"mol/object2":-1},"mol/memo":{"mol":-9007199254740991,"mol/wrapper":-1},"mol/wrapper":{"mol":-9007199254740991,"mol/object2":-1},"mol/dom/qname":{"mol/dom":-9007199254740991},"mol/wire/probe":{"mol/wire":-9007199254740991,"mol/wire/fiber":-2},"mol/wire/watch":{"mol/wire":-2,"mol/wire/atom":-2,"mol/fail":-3},"mol/const":{"mol":-9007199254740991,"mol/dev/format":-2},"mol/wire/solid":{"mol/wire":-2,"mol/wire/fiber":-2,"mol/wire/pub/sub":-1},"mol/dom/render/attributes":{"mol/dom/render":-9007199254740991},"mol/dom/render":{"mol/dom":-9007199254740991},"mol/dom/render/events":{"mol/dom/render":-9007199254740991},"mol/plugin":{"mol":-9007199254740991,"mol/view/view":-1,"mol/owning":-3,"mol/wire/fiber":-3},"mol/dom/render/styles":{"mol/dom/render":-9007199254740991},"mol/dom/render/children":{"mol/dom/render":-9007199254740991,"mol/dom/context":-3},"mol/dom/render/fields":{"mol/dom/render":-9007199254740991},"mol/wire/async":{"mol/wire":-9007199254740991,"mol/wire/fiber":-2,"mol/wire/task":-2},"mol/type/pick":{"mol/type":-9007199254740991,"mol/type/keys/extract":-3},"mol/type/keys/extract":{"mol/type/keys":-9007199254740991},"mol/type/keys":{"mol/type":-9007199254740991},"mol/style/attach":{"mol/style":-9007199254740991,"mol/after/tick":-1,"mol/dom/context":-2},"mol/style":{"mol":-9007199254740991},"mol/theme":{"mol":-9007199254740991,"mol/style/prop":-1,"mol/style/attach":0},"mol/style/prop":{"mol/style":-9007199254740991,"mol/style/func":-2,"mol/style/properties":-3},"mol/style/func":{"mol/style":-9007199254740991,"mol/style/unit":-1,"mol/decor":-1},"mol/style/unit":{"mol/style":-9007199254740991,"mol/decor":-1},"mol/decor":{"mol":-9007199254740991},"mol/style/properties":{"mol/style":-9007199254740991,"mol/type/override":-1,"mol/style/func":-1,"mol/style/unit":-1},"mol/type/override":{"mol/type":-9007199254740991},"mol/gap":{"mol":-9007199254740991,"mol/style/prop":-1,"mol/style/attach":0},"mol/print":{"mol":-9007199254740991,"mol/object":-1,"mol/mem":-2,"mol/dom/listener":-3,"mol/dom/context":-3},"mol/dom/listener":{"mol/dom":-9007199254740991,"mol/object":-1},"mol/style/define":{"mol/style":-9007199254740991,"mol/view/view":-2,"mol/style/guard":-2,"mol/style/attach":-2,"mol/style/sheet":-3},"mol/style/guard":{"mol/style":-9007199254740991,"mol/view/view":-1,"mol/style/properties":-1,"mol/style/pseudo":-1,"mol/type/keys/extract":-1,"mol/type/error":-2},"mol/style/pseudo":{"mol/style":-9007199254740991},"mol/type/error":{"mol/type":-9007199254740991},"mol/style/sheet":{"mol/style":-9007199254740991,"mol/view/view":-2,"mol/style/guard":-2,"mol/dom/qname":-2,"mol/ambient":-2,"mol/func/name":-2},"mol/mem/cached":{"mol/mem":-9007199254740991,"mol/wire/probe":-1},"mol/layer":{"mol":-9007199254740991,"mol/style/prop":-1,"mol/style/attach":0},"mol/type/enforce":{"mol/type":-9007199254740991},"mol/book2/catalog/catalog.view.tree":{"mol/book2/catalog/-view.tree/catalog.view.tree.js":0},"mol/book2/catalog/-view.tree/catalog.view.tree.js":{"mol/book2":-1,"mol/search":-3,"mol/dimmer":-3,"mol/link":-3,"mol/list":-3,"mol/page":-3,"mol/icon/cross":-3,"mol/view/view":-3,"mol/mem":-1},"mol/search":{"mol":-9007199254740991,"mol/search/search.view.tree":0,"mol/mem":-1,"mol/view/view":-1,"mol/style/attach":0,"mol/theme":-1,"mol/pop":-1,"mol/hotkey":-1,"mol/nav":-1,"mol/locale":-3,"mol/string":-1,"mol/icon/cross":-2,"mol/button/minor":-1,"mol/list":-1,"mol/dimmer":-1,"mol/type/enforce":-1,"mol/plugin":-2,"mol/view":-2,"mol/search/-view.tree/search.view.tree.js":0},"mol/search/search.view.tree":{"mol/search/-view.tree/search.view.tree.js":0},"mol/search/-view.tree/search.view.tree.js":{"mol/pop":-1,"mol/hotkey":-3,"mol/nav":-3,"mol/locale":-3,"mol/string":-3,"mol/icon/cross":-3,"mol/button/minor":-3,"mol/list":-3,"mol/dimmer":-3,"mol/view/view":-3,"mol/mem":-1},"mol/pop":{"mol":-9007199254740991,"mol/pop/pop.view.tree":0,"mol/mem":-1,"mol/window":-3,"mol/view/view":-1,"mol/dom/context":-4,"mol/style/attach":0,"mol/gap":-1,"mol/layer":-1,"mol/theme":-1,"mol/scroll":0,"mol/type/enforce":-1,"mol/view":-2,"mol/pop/-view.tree/pop.view.tree.js":0},"mol/pop/pop.view.tree":{"mol/pop/-view.tree/pop.view.tree.js":0},"mol/pop/-view.tree/pop.view.tree.js":{"mol/view/view":-1,"mol/mem":-1},"mol/hotkey":{"mol":-9007199254740991,"mol/hotkey/hotkey.view.tree":0,"mol/keyboard/code":-3,"mol/plugin":-1,"mol/mem":-1,"mol/hotkey/-view.tree/hotkey.view.tree.js":0},"mol/hotkey/hotkey.view.tree":{"mol/hotkey/-view.tree/hotkey.view.tree.js":0},"mol/hotkey/-view.tree/hotkey.view.tree.js":{"mol/plugin":-1,"mol/mem":-1},"mol/keyboard/code":{"mol/keyboard":-9007199254740991},"mol/keyboard":{"mol":-9007199254740991},"mol/nav":{"mol":-9007199254740991,"mol/nav/nav.view.tree":0,"mol/keyboard/code":-4,"mol/plugin":-1,"mol/mem":-1,"mol/nav/-view.tree/nav.view.tree.js":0},"mol/nav/nav.view.tree":{"mol/nav/-view.tree/nav.view.tree.js":0},"mol/nav/-view.tree/nav.view.tree.js":{"mol/plugin":-1,"mol/mem":-1},"mol/locale":{"mol":-1.25,"mol/object":-1,"mol/mem":-2,"mol/state/local":-3,"mol/dom/context":-3,"mol/file":-3,"mol/fail/catch":-4},"mol/state/local":{"mol/state":-9007199254740991,"mol/object":-1,"mol/dom/context":-4,"mol/mem":-2,"mol/storage":-4,"mol/state/local/local.ts":0,"node":-3,"mol/file":-3},"mol/state":{"mol":-9007199254740991},"mol/storage":{"mol":-9007199254740991,"mol/object2":-1,"mol/mem":-2,"mol/dom/context":-3,"mol/mem/persist":-3,"mol/mem/cached":-3,"mol/log3":-5,"mol/wire/sync":-3},"mol/mem/persist":{"mol/mem":-9007199254740991,"mol/wire/solid":-1},"mol/wire/sync":{"mol/wire":-9007199254740991,"mol/wire/task":-4},"mol/state/local/local.ts":{"mol/object":-1,"mol/dom/context":-4,"mol/mem":-2,"mol/storage":-4},"mol/file":{"mol":-9007199254740991,"mol/object":-1,"mol/mem":-2,"mol/fail/hidden":-4,"mol/charset/decode":-4,"mol/charset/encode":-4,"mol/file/file.ts":0,"node":-1,"mol/fail":-2,"mol/const":-4,"mol/fail/log":-3,"mol/action":-2,"mol/mem/cached":-5,"mol/compare/array":-5,"mol/log3":-6},"mol/charset/decode":{"mol/charset":-9007199254740991,"mol/charset/encoding":-1},"mol/charset":{"mol":-9007199254740991},"mol/charset/encoding":{"mol/charset":-9007199254740991},"mol/charset/encode":{"mol/charset":-9007199254740991,"node":-1},"mol/file/file.ts":{"mol/object":-1,"mol/mem":-2,"mol/fail/hidden":-4,"mol/charset/decode":-4,"mol/charset/encode":-4},"mol/action":{"mol":-9007199254740991,"mol/wire/method":-1},"mol/compare/array":{"mol/compare":-9007199254740991},"mol/string":{"mol":-9007199254740991,"mol/string/string.view.tree":0,"mol/action":-2,"mol/fail/hidden":-4,"mol/mem":-1,"mol/dom/listener":-3,"mol/dom/context":-3,"mol/wire/async":-4,"mol/style/attach":0,"mol/gap":-1,"mol/theme":-1,"mol/layer":-1,"mol/view/view":-1,"mol/hotkey":-1,"mol/type/enforce":-1,"mol/string/-view.tree/string.view.tree.js":0},"mol/string/string.view.tree":{"mol/string/-view.tree/string.view.tree.js":0},"mol/string/-view.tree/string.view.tree.js":{"mol/view/view":-1,"mol/hotkey":-3,"mol/mem":-1},"mol/icon/cross":{"mol/icon":-1,"mol/icon/cross/-view.tree/cross.view.tree.js":0},"mol/icon":{"mol":-9007199254740991,"mol/style/attach":0,"mol/icon/icon.view.tree":0,"mol/theme":-1,"mol/svg/root":-1,"mol/svg/path":-1,"mol/mem":-1,"mol/type/enforce":-1,"mol/icon/-view.tree/icon.view.tree.js":0},"mol/icon/icon.view.tree":{"mol/icon/-view.tree/icon.view.tree.js":0},"mol/icon/-view.tree/icon.view.tree.js":{"mol/svg/root":-1,"mol/svg/path":-3,"mol/mem":-1},"mol/svg/root":{"mol/svg":-1,"mol/style/attach":0,"mol/svg/root/root.view.tree":0,"mol/svg/root/-view.tree/root.view.tree.js":0},"mol/svg":{"mol":-9007199254740991,"mol/svg/svg.view.tree":0,"mol/mem":-2,"mol/dom/context":-3,"mol/state/time":-3,"mol/view/view":-1,"mol/svg/-view.tree/svg.view.tree.js":0},"mol/svg/svg.view.tree":{"mol/svg/-view.tree/svg.view.tree.js":0},"mol/svg/-view.tree/svg.view.tree.js":{"mol/view/view":-1},"mol/state/time":{"mol/state":-9007199254740991,"mol/object":-1,"mol/mem":-2,"mol/after/timeout":-2,"mol/after/frame":-2},"mol/svg/root/root.view.tree":{"mol/svg/root/-view.tree/root.view.tree.js":0},"mol/svg/root/-view.tree/root.view.tree.js":{"mol/svg":-1},"mol/svg/path":{"mol/svg":-1,"mol/svg/path/-view.tree/path.view.tree.js":0},"mol/svg/path/-view.tree/path.view.tree.js":{"mol/svg":-1},"mol/icon/cross/-view.tree/cross.view.tree.js":{"mol/icon":-1},"mol/button/minor":{"mol/button":-9007199254740991,"mol/style/attach":0,"mol/button/minor/minor.view.tree":0,"mol/theme":-1,"mol/button/typed":-1,"mol/button/minor/-view.tree/minor.view.tree.js":0},"mol/button":{"mol":-9007199254740991,"mol/button/button.view.tree":0,"mol/mem":-1,"mol/fail/hidden":-4,"mol/keyboard/code":-3,"mol/fail/log":-4,"mol/style/attach":0,"mol/gap":-1,"mol/layer":-1,"mol/view/view":-1,"mol/speck":-1,"mol/type/enforce":-1,"mol/view":-2,"mol/button/-view.tree/button.view.tree.js":0},"mol/button/button.view.tree":{"mol/button/-view.tree/button.view.tree.js":0},"mol/button/-view.tree/button.view.tree.js":{"mol/view/view":-1,"mol/speck":-3,"mol/mem":-1},"mol/speck":{"mol":-9007199254740991,"mol/style/attach":0,"mol/speck/speck.view.tree":0,"mol/layer":-1,"mol/view/view":-1,"mol/theme":-3,"mol/speck/-view.tree/speck.view.tree.js":0},"mol/speck/speck.view.tree":{"mol/speck/-view.tree/speck.view.tree.js":0},"mol/speck/-view.tree/speck.view.tree.js":{"mol/view/view":-1,"mol/theme":-3},"mol/button/minor/minor.view.tree":{"mol/button/minor/-view.tree/minor.view.tree.js":0},"mol/button/minor/-view.tree/minor.view.tree.js":{"mol/button/typed":-1},"mol/button/typed":{"mol/button":-1,"mol/style/attach":0,"mol/button/typed/typed.view.tree":0,"mol/gap":-1,"mol/theme":-1,"mol/button/typed/-view.tree/typed.view.tree.js":0},"mol/button/typed/typed.view.tree":{"mol/button/typed/-view.tree/typed.view.tree.js":0},"mol/button/typed/-view.tree/typed.view.tree.js":{"mol/button":-1},"mol/list":{"mol":-9007199254740991,"mol/list/list.view.tree":0,"mol/mem":-1,"mol/support/css":-3,"mol/print":-3,"mol/mem/cached":-3,"mol/window":-3,"mol/fail/log":-5,"mol/view/view":-1,"mol/style/attach":0,"mol/type/enforce":-1,"mol/list/-view.tree/list.view.tree.js":0},"mol/list/list.view.tree":{"mol/list/-view.tree/list.view.tree.js":0},"mol/list/-view.tree/list.view.tree.js":{"mol/view/view":-1,"mol/mem":-1},"mol/support/css":{"mol/support":-9007199254740991,"mol/dom/context":-3},"mol/support":{"mol":-9007199254740991},"mol/dimmer":{"mol":-9007199254740991,"mol/dimmer/dimmer.view.tree":0,"mol/mem":-1,"mol/regexp":-3,"mol/view/view":-2,"mol/style/attach":0,"mol/theme":-1,"mol/paragraph":-1,"mol/type/enforce":-1,"mol/view":-2,"mol/dimmer/-view.tree/dimmer.view.tree.js":0},"mol/dimmer/dimmer.view.tree":{"mol/dimmer/-view.tree/dimmer.view.tree.js":0},"mol/dimmer/-view.tree/dimmer.view.tree.js":{"mol/paragraph":-1,"mol/mem":-1},"mol/paragraph":{"mol":-9007199254740991,"mol/paragraph/paragraph.view.tree":0,"mol/mem":-2,"mol/view/view":-1,"mol/window":-3,"mol/style/attach":0,"mol/paragraph/-view.tree/paragraph.view.tree.js":0},"mol/paragraph/paragraph.view.tree":{"mol/paragraph/-view.tree/paragraph.view.tree.js":0},"mol/paragraph/-view.tree/paragraph.view.tree.js":{"mol/view/view":-1},"mol/regexp":{"mol":-9007199254740991,"mol/type/merge":-2,"mol/type/intersect":-2,"mol/type/override":-2,"mol/fail":-4,"mol/unicode":-2},"mol/type/merge":{"mol/type":-9007199254740991,"mol/type/equals":-3},"mol/type/equals":{"mol/type":-9007199254740991},"mol/type/intersect":{"mol/type":-9007199254740991},"mol/unicode":{"mol":-1},"mol/link":{"mol":-9007199254740991,"mol/link/link.view.tree":0,"mol/mem":-1,"mol/state/arg":-3,"mol/dom/context":-3,"mol/fail/log":-4,"mol/view/view":-1,"mol/view":-2,"mol/link/-view.tree/link.view.tree.js":0,"mol/style/unit":-1,"mol/style/define":-1,"mol/theme":-2,"mol/gap":-2},"mol/link/link.view.tree":{"mol/link/-view.tree/link.view.tree.js":0},"mol/link/-view.tree/link.view.tree.js":{"mol/view/view":-1,"mol/mem":-1},"mol/state/arg":{"mol/state":-9007199254740991,"mol/state/arg/arg.ts":0,"mol/object":-1,"mol/mem":-2,"mol/action":-2},"mol/page":{"mol":-9007199254740991,"mol/view/view":-1,"mol/scroll":-1,"mol/mem":-1,"mol/type/enforce":-1,"mol/view":-2,"mol/page/-view.tree/page.view.tree.js":0,"mol/style/unit":-1,"mol/style/func":-1,"mol/style/define":-1,"mol/theme":-2,"mol/gap":-3},"mol/page/-view.tree/page.view.tree.js":{"mol/view/view":-1,"mol/scroll":-3,"mol/mem":-1},"mol/match":{"mol":-9007199254740991},"mol/icon/plus":{"mol/icon":-1,"mol/icon/plus/-view.tree/plus.view.tree.js":0},"mol/icon/plus/-view.tree/plus.view.tree.js":{"mol/icon":-1},"hyoo/survey/meet":{"hyoo/survey":-9007199254740991,"hyoo/crus/entity":-1,"hyoo/crus/dict":-2,"hyoo/crus/atom":-2,"mol/mem":-2,"hyoo/crus/rank":-3},"hyoo/crus/entity":{"hyoo/crus":-9007199254740991,"hyoo/crus/dict":-1,"hyoo/crus/atom":-4,"hyoo/crus/home":-3,"hyoo/crus/meta":-3},"hyoo/crus":{"hyoo":-9007199254740991},"hyoo/crus/dict":{"hyoo/crus":-9007199254740991,"hyoo/crus/list":-2,"hyoo/crus/gist":-2,"mol/mem":-2,"hyoo/crus/vary":-2,"hyoo/crus/node":-2,"mol/type/override":-4,"mol/dev/format":-2,"mol/wire/probe":-3},"hyoo/crus/list":{"hyoo/crus":-9007199254740991,"hyoo/crus/node":-1,"hyoo/crus/gist":-2,"mol/mem":-2,"hyoo/crus/vary":-2,"mol/reconcile":-3,"mol/compare/deep":-4,"hyoo/crus/area":-4,"mol/dev/format":-2,"mol/data/value":-2,"hyoo/crus/vary/cast":-1,"mol/type/result":-2,"mol/guard":-5,"mol/action":-3,"hyoo/crus/rank":-3,"hyoo/crus/realm":-3},"hyoo/crus/node":{"hyoo/crus":-9007199254740991,"mol/object":-1,"hyoo/crus/gist":-2,"hyoo/crus/land":-3,"hyoo/crus/auth":-3,"mol/memo":-2,"hyoo/crus/ref":-3,"mol/mem":-2,"hyoo/crus/rank":-3,"mol/time/moment":-3,"mol/dev/format":-2},"hyoo/crus/gist":{"hyoo/crus":-9007199254740991,"hyoo/crus/unit":-1,"hyoo/crus/vary":-2,"mol/fail":-3,"mol/crypto/hash":-3,"mol/buffer":-3,"mol/dev/format":-2,"mol/time/moment":-4,"hyoo/crus/pass":-7,"hyoo/crus/gift":-7,"hyoo/crus/yard":-3},"hyoo/crus/unit":{"hyoo/crus":-9007199254740991,"hyoo/crus/part":-2,"mol/buffer":-1,"mol/fail":-3,"mol/base64/ae":-4,"hyoo/crus/ref":-2,"hyoo/crus/land":-2},"hyoo/crus/part":{"hyoo/crus":-9007199254740991},"mol/buffer":{"mol":-9007199254740991,"mol/base64/ae":-3,"mol/func/name":-3,"mol/fail":-3},"mol/base64/ae":{"mol/base64":-9007199254740991,"mol/base64/encode":-2,"mol/base64/decode":-2},"mol/base64":{"mol":-9007199254740991},"mol/base64/encode":{"mol/base64":-9007199254740991,"mol/base64/encode/encode.ts":0},"mol/base64/encode/encode.ts":{},"mol/base64/decode":{"mol/base64":-9007199254740991,"mol/base64/decode/decode.ts":0},"mol/base64/decode/decode.ts":{},"hyoo/crus/pass":{"hyoo/crus":-9007199254740991,"hyoo/crus/unit":-1,"hyoo/crus/ref":-2,"mol/dev/format":-2},"hyoo/crus/ref":{"hyoo/crus":-9007199254740991,"mol/data/tagged":-1,"mol/fail":-2,"mol/base64/ae":-2},"mol/data/tagged":{"mol/data":-9007199254740991,"mol/data/value":-2},"mol/data":{"mol":-9007199254740991},"mol/data/value":{"mol/data":-9007199254740991},"hyoo/crus/gift":{"hyoo/crus":-9007199254740991,"hyoo/crus/unit":-1,"hyoo/crus/rank":-2,"mol/fail":-4,"hyoo/crus/ref":-2,"mol/dev/format":-2,"mol/time/moment":-4},"hyoo/crus/rank":{"hyoo/crus":-9007199254740991},"mol/time/moment":{"mol/time":-9007199254740991,"mol/time/duration":-2,"mol/fail":-2,"mol/time/base":-1,"mol/dev/format":-2},"mol/time":{"mol":-9007199254740991},"mol/time/duration":{"mol/time":-9007199254740991,"mol/time/base":-1},"mol/time/base":{"mol/time":-9007199254740991},"hyoo/crus/land":{"hyoo/crus":-9007199254740991,"mol/object":-1,"hyoo/crus/auth":-3,"hyoo/crus/face":-2,"mol/wire/dict":-2,"hyoo/crus/ref":-2,"mol/wire/set":-2,"mol/action":-2,"hyoo/crus/area":-2,"hyoo/crus/rank":-2,"mol/fail":-3,"mol/base64/ae":-4,"mol/mem":-2,"hyoo/crus/fund":-2,"mol/const":-5,"hyoo/crus/pack":-3,"hyoo/crus/mine":-3,"mol/wire/sync":-3,"mol/crypto/key":-3,"hyoo/crus/vary/cast":-5,"mol/guard":-5,"hyoo/crus/vary":-2,"mol/crypto/hash":-4,"mol/fail/log":-4,"mol/bus":-3,"mol/wire/async":-4,"mol/wire/solid":-3,"mol/log3":-3,"mol/wait/timeout":-3,"mol/wire/race":-3,"mol/fail/catch":-5,"mol/fail/hidden":-6,"mol/crypto/secret":-3,"mol/dev/format":-2},"hyoo/crus/realm":{"hyoo/crus":-9007199254740991,"mol/object":-1,"mol/wire/dict":-2,"hyoo/crus/ref":-2,"hyoo/crus/land":-2,"mol/mem":-2,"mol/const":-3,"hyoo/crus/auth":-3,"mol/action":-2,"hyoo/crus/rank":-2,"mol/wire/sync":-3,"hyoo/crus/node":-2,"hyoo/crus/pack":-2,"mol/log3":-4,"hyoo/crus/mine":-4},"mol/wire/dict":{"mol/wire":-9007199254740991,"mol/wire/pub":-2},"hyoo/crus/yard":{"hyoo/crus":-9007199254740991,"mol/object":-1,"mol/mem":-2,"hyoo/crus/unit":-2,"mol/wire/set":-2,"hyoo/crus/ref":-2,"hyoo/crus/land":-2,"mol/action":-2,"mol/wire/probe":-3,"mol/dom/context":-3,"mol/rest/port/ws":-3,"mol/wire/async":-5,"mol/log3":-3,"mol/rest/port":-2,"mol/key":-4,"mol/guard":-4,"mol/fail/log":-4,"mol/wire/sync":-3,"hyoo/crus/pack":-3,"hyoo/crus/pass":-5,"hyoo/crus/face":-3,"hyoo/crus/yard/yard.ts":0,"mol/file":-3,"node":-3},"mol/wire/set":{"mol/wire":-9007199254740991,"mol/wire/pub":-2},"mol/rest/port/ws":{"mol/rest/port":-1,"mol/action":-2,"mol/charset/encode":-3,"mol/rest/port/ws/ws.ts":0,"node":-2,"mol/websocket/frame":-3},"mol/rest/port":{"mol/rest":-9007199254740991,"mol/object":-1,"mol/rest/code":-2,"mol/action":-2,"mol/dom/context":-3,"mol/charset/encode":-3,"mol/dom/serialize":-3},"mol/rest":{"mol":-9007199254740991},"mol/rest/code":{"mol/rest":-9007199254740991},"mol/dom/serialize":{"mol/dom":-9007199254740991,"mol/dom/context":-2},"mol/rest/port/ws/ws.ts":{"mol/rest/port":-1},"mol/websocket/frame":{"mol/websocket":-9007199254740991,"mol/buffer":-1,"mol/fail":-4},"mol/websocket":{"mol":-9007199254740991},"mol/guard":{"mol":-9007199254740991},"hyoo/crus/pack":{"hyoo/crus":-9007199254740991,"hyoo/crus/ref":-2,"hyoo/crus/face":-3,"mol/buffer":-1,"hyoo/crus/part":-4,"mol/base64/ae":-5,"mol/fail":-5,"mol/crypto/hash":-8},"hyoo/crus/face":{"hyoo/crus":-9007199254740991,"mol/action":-2,"mol/dev/format":-2},"mol/crypto/hash":{"mol/crypto":-9007199254740991},"mol/crypto":{"mol":-9007199254740991},"hyoo/crus/yard/yard.ts":{"mol/object":-1,"mol/mem":-2,"hyoo/crus/unit":-2,"mol/wire/set":-2,"hyoo/crus/ref":-2,"hyoo/crus/land":-2,"mol/action":-2,"mol/wire/probe":-3,"mol/dom/context":-3,"mol/rest/port/ws":-3,"mol/wire/async":-5,"mol/log3":-3,"mol/rest/port":-2,"mol/key":-4,"mol/guard":-4,"mol/fail/log":-4,"mol/wire/sync":-3,"hyoo/crus/pack":-3,"hyoo/crus/pass":-5,"hyoo/crus/face":-3},"hyoo/crus/auth":{"hyoo/crus":-9007199254740991,"mol/crypto/key":-1,"mol/mem":-2,"mol/wire/solid":-3,"mol/state/local":-3,"mol/action":-2,"mol/wire/sync":-3,"mol/fail":-3,"mol/memo":-2,"hyoo/crus/ref":-3,"mol/base64/ae":-3,"mol/crypto/secret":-3},"mol/crypto/key":{"mol/crypto":-9007199254740991,"mol/buffer":-1,"mol/base64/url":-3,"mol/memo":-2,"mol/crypto/native":-3},"mol/base64/url":{"mol/base64":-9007199254740991,"mol/base64/encode":-2,"mol/base64/decode":-2},"mol/crypto/native":{"mol/crypto":-9007199254740991,"node":-1},"mol/crypto/secret":{"mol/crypto":-9007199254740991,"mol/crypto/native":-3,"mol/charset/encode":-6},"hyoo/crus/mine":{"hyoo/crus":-9007199254740991,"mol/object":-1,"mol/mem":-2,"mol/crypto/hash":-3,"mol/wire/solid":-3,"mol/action":-2,"hyoo/crus/mine/mine.ts":0,"mol/file":-3,"mol/base64/ae":-3,"mol/compare/deep":-3},"hyoo/crus/mine/mine.ts":{"mol/object":-1,"mol/mem":-2,"mol/crypto/hash":-3,"mol/wire/solid":-3,"mol/action":-2},"hyoo/crus/area":{"hyoo/crus":-9007199254740991,"mol/base64/ae":-2},"hyoo/crus/home":{"hyoo/crus":-9007199254740991,"hyoo/crus/dict":-1,"hyoo/crus/atom":-2,"hyoo/crus/rank":-3},"hyoo/crus/atom":{"hyoo/crus":-9007199254740991,"hyoo/crus/node":-1,"hyoo/crus/gist":-2,"mol/mem":-2,"hyoo/crus/vary":-2,"mol/compare/deep":-3,"mol/dev/format":-2,"mol/fail":-5,"hyoo/crus/vary/cast":-1,"mol/data/value":-2,"hyoo/crus/dict":-2,"hyoo/crus/rank":-3,"mol/type/result":-3,"hyoo/crus/ref":-4,"hyoo/crus/area":-4},"hyoo/crus/vary":{"hyoo/crus":-9007199254740991,"hyoo/crus/ref":-1,"mol/time/moment":-1,"mol/time/duration":-1,"mol/time/interval":-1,"mol/tree2":-1,"mol/dom/context":-2,"mol/type/result":-1,"mol/fail":-2,"mol/charset/encode":-3,"mol/dom/serialize":-3,"mol/charset/decode":-3,"mol/dom/parse":-3,"mol/tree2/from/string":-3},"mol/time/interval":{"mol/time":-9007199254740991,"mol/time/moment":-2,"mol/time/duration":-2,"mol/time/base":-1},"mol/type/result":{"mol/type":-9007199254740991},"mol/dom/parse":{"mol/dom":-9007199254740991,"mol/dom/context":-2},"hyoo/crus/vary/cast":{"hyoo/crus/vary":-1,"mol/jsx":0,"hyoo/crus/ref":-3,"mol/dom/serialize":-3,"mol/time/moment":-3,"mol/time/duration":-3,"mol/time/interval":-3,"mol/base64/ae":-3,"mol/dom/parse":-5,"mol/tree2/bin":-3,"mol/tree2":-3,"mol/tree2/from/string":-5,"mol/tree2/from/json":-3,"mol/tree2/xml/from/dom":-3},"mol/jsx":{"mol":-9007199254740991,"mol/dom/context":-2,"mol/fail":-4,"mol/func/name":-4,"mol/dom/render/children":-2,"mol/type/partial/deep":-3},"mol/type/partial/deep":{"mol/type/partial":-9007199254740991},"mol/type/partial":{"mol/type":-9007199254740991},"mol/tree2/bin":{"mol/tree2":-1,"mol/span":-2},"mol/tree2/xml/from/dom":{"mol/tree2/xml/from":-9007199254740991,"mol/tree2":-1,"mol/fail":-2},"mol/tree2/xml/from":{"mol/tree2/xml":-9007199254740991},"mol/tree2/xml":{"mol/tree2":-9007199254740991},"hyoo/crus/meta":{"hyoo/crus":-9007199254740991,"hyoo/crus/dict":-1,"hyoo/crus/list":-2},"hyoo/crus/fund":{"hyoo/crus":-9007199254740991,"mol/object":-1,"mol/mem":-2},"mol/bus":{"mol":-9007199254740991,"mol/object":-1},"mol/wait/timeout":{"mol/wait":-9007199254740991,"mol/promise/promise":-2,"mol/after/timeout":-2,"mol/wire/sync":-2},"mol/wait":{"mol":-9007199254740991},"mol/promise/promise":{"mol/promise":-9007199254740991},"mol/wire/race":{"mol/wire":-9007199254740991,"mol/promise/like":-2,"mol/fail":-2},"mol/reconcile":{"mol":-9007199254740991,"mol/fail":-2},"hyoo/survey/meet/form":{"hyoo/survey/meet":-2,"hyoo/survey/meet/form/form.view.tree":0,"mol/mem":-1,"mol/page":-1,"mol/textarea":-1,"mol/form/field":-1,"mol/text/text":-1,"mol/list":-1,"mol/string/button":-1,"mol/type/enforce":-1,"hyoo/survey/meet/form/-view.tree/form.view.tree.js":0,"mol/style/define":-1,"mol/theme":-4,"mol/gap":-3},"hyoo/survey/meet/form/form.view.tree":{"hyoo/survey/meet/form/-view.tree/form.view.tree.js":0},"hyoo/survey/meet/form/-view.tree/form.view.tree.js":{"mol/page":-1,"mol/textarea":-3,"mol/form/field":-3,"mol/text/text":-3,"mol/list":-3,"hyoo/survey/meet":-3,"mol/string/button":-3,"mol/mem":-1,"mol/form":-9007199254740991,"mol/text/list":-3},"mol/textarea":{"mol":-9007199254740991,"mol/textarea/textarea.view.tree":0,"mol/keyboard/code":-4,"mol/mem":-1,"mol/style/attach":0,"mol/gap":-1,"mol/theme":-1,"mol/layer":-1,"mol/stack":-1,"mol/text/code":-1,"mol/string":-1,"mol/type/enforce":-1,"mol/textarea/-view.tree/textarea.view.tree.js":0},"mol/textarea/textarea.view.tree":{"mol/textarea/-view.tree/textarea.view.tree.js":0},"mol/textarea/-view.tree/textarea.view.tree.js":{"mol/stack":-1,"mol/text/code":-3,"mol/mem":-1,"mol/string":-1},"mol/stack":{"mol":-9007199254740991,"mol/style/attach":0,"mol/stack/stack.view.tree":0,"mol/view/view":-1,"mol/stack/-view.tree/stack.view.tree.js":0},"mol/stack/stack.view.tree":{"mol/stack/-view.tree/stack.view.tree.js":0},"mol/stack/-view.tree/stack.view.tree.js":{"mol/view/view":-1},"mol/text/code":{"mol/text":-9007199254740991,"mol/text/code/code.view.tree":0,"mol/support/css":-3,"mol/mem":-1,"mol/syntax2/md":-3,"mol/dom/context":-3,"mol/fail/log":-4,"mol/stack":-1,"mol/text/code/row":-1,"mol/list":-1,"mol/button/copy":-1,"mol/locale":-3,"mol/type/enforce":-1,"mol/text/code/-view.tree/code.view.tree.js":0,"mol/style/unit":-1,"mol/style/define":-1,"mol/gap":-3},"mol/text":{"mol":-9007199254740991},"mol/text/code/code.view.tree":{"mol/text/code/-view.tree/code.view.tree.js":0},"mol/text/code/-view.tree/code.view.tree.js":{"mol/stack":-1,"mol/text/code/row":-3,"mol/list":-3,"mol/button/copy":-3,"mol/locale":-3,"mol/mem":-1},"mol/text/code/row":{"mol/text/code/row/row.view.tree":0,"mol/syntax2/md":-3,"mol/mem":-1,"mol/view/view":-1,"mol/paragraph":-1,"mol/text/code/token":-1,"mol/type/enforce":-1,"mol/text/code/row/-view.tree/row.view.tree.js":0,"mol/style/unit":-1,"mol/style/define":-1,"mol/theme":-3},"mol/text/code/row/row.view.tree":{"mol/text/code/row/-view.tree/row.view.tree.js":0},"mol/text/code/row/-view.tree/row.view.tree.js":{"mol/paragraph":-1,"mol/view/view":-3,"mol/text/code/token":-3,"mol/mem":-1},"mol/text/code/token":{"mol/dimmer":-1,"mol/text/code/token/-view.tree/token.view.tree.js":0,"mol/style/func":-1,"mol/style/define":-1},"mol/text/code/token/-view.tree/token.view.tree.js":{"mol/dimmer":-1},"mol/syntax2/md":{"mol/syntax2":-1},"mol/syntax2":{"mol":-9007199254740991,"mol/fail":-4},"mol/button/copy":{"mol/button":-9007199254740991,"mol/button/copy/copy.view.tree":0,"mol/mem":-1,"mol/html/encode":-3,"mol/wire/sync":-3,"mol/dom/context":-3,"mol/button/minor":-1,"mol/blob":-1,"mol/icon/clipboard/outline":-2,"mol/type/enforce":-1,"mol/button/copy/-view.tree/copy.view.tree.js":0},"mol/button/copy/copy.view.tree":{"mol/button/copy/-view.tree/copy.view.tree.js":0},"mol/button/copy/-view.tree/copy.view.tree.js":{"mol/button/minor":-1,"mol/blob":-3,"mol/icon/clipboard/outline":-3,"mol/mem":-1},"mol/blob":{"mol":-9007199254740991,"node":-1,"mol/dom/context":-1},"mol/icon/clipboard/outline":{"mol/icon/clipboard":-9007199254740991,"mol/icon":-1,"mol/icon/clipboard/outline/-view.tree/outline.view.tree.js":0},"mol/icon/clipboard":{"mol/icon":-1,"mol/icon/clipboard/-view.tree/clipboard.view.tree.js":0},"mol/icon/clipboard/-view.tree/clipboard.view.tree.js":{"mol/icon":-1},"mol/icon/clipboard/outline/-view.tree/outline.view.tree.js":{"mol/icon":-1},"mol/html/encode":{"mol/html":-9007199254740991},"mol/html":{"mol":-9007199254740991},"mol/form/field":{"mol/form/field/field.view.tree":0,"mol/mem":-1,"mol/style/attach":0,"mol/theme":-1,"mol/gap":-1,"mol/labeler":-1,"mol/view/view":-1,"mol/type/enforce":-1,"mol/form/field/-view.tree/field.view.tree.js":0},"mol/form":{"mol":-9007199254740991,"mol/form/form.view.tree":0,"mol/mem":-1,"mol/form/field":-2,"mol/keyboard/code":-3,"mol/style/attach":0,"mol/gap":-1,"mol/list":-1,"mol/row":-1,"mol/type/enforce":-1,"mol/view/view":-2,"mol/form/-view.tree/form.view.tree.js":0},"mol/form/form.view.tree":{"mol/form/-view.tree/form.view.tree.js":0},"mol/form/-view.tree/form.view.tree.js":{"mol/list":-1,"mol/row":-3,"mol/mem":-1},"mol/row":{"mol":-9007199254740991,"mol/style/attach":0,"mol/row/row.view.tree":0,"mol/gap":-1,"mol/view/view":-1,"mol/row/-view.tree/row.view.tree.js":0},"mol/row/row.view.tree":{"mol/row/-view.tree/row.view.tree.js":0},"mol/row/-view.tree/row.view.tree.js":{"mol/view/view":-1},"mol/form/field/field.view.tree":{"mol/form/field/-view.tree/field.view.tree.js":0},"mol/form/field/-view.tree/field.view.tree.js":{"mol/labeler":-1,"mol/view/view":-3,"mol/mem":-1},"mol/labeler":{"mol":-9007199254740991,"mol/style/attach":0,"mol/labeler/labeler.view.tree":0,"mol/theme":-1,"mol/gap":-1,"mol/list":-1,"mol/view/view":-1,"mol/mem":-1,"mol/type/enforce":-1,"mol/view":-2,"mol/labeler/-view.tree/labeler.view.tree.js":0},"mol/labeler/labeler.view.tree":{"mol/labeler/-view.tree/labeler.view.tree.js":0},"mol/labeler/-view.tree/labeler.view.tree.js":{"mol/list":-1,"mol/view/view":-3,"mol/mem":-1},"mol/text/text":{"mol/text":0,"mol/text/text/text.view.tree":0,"mol/mem":-1,"mol/syntax2/md":-3,"mol/dom/context":-3,"mol/state/arg":-4,"mol/fail/log":-4,"mol/after/tick":-4,"mol/style/attach":0,"mol/gap":-1,"mol/theme":-1,"mol/text/code":0,"mol/list":-1,"mol/paragraph":-1,"mol/view/view":-1,"mol/grid":-1,"mol/dimmer":-1,"mol/text/code/row":-1,"mol/link/iconed":-1,"mol/embed/any":-1,"mol/link":-1,"mol/locale":-3,"mol/type/enforce":-1,"mol/text/text/-view.tree/text.view.tree.js":0},"mol/text/text/text.view.tree":{"mol/text/text/-view.tree/text.view.tree.js":0},"mol/text/text/-view.tree/text.view.tree.js":{"mol/list":-1,"mol/paragraph":-1,"mol/text":-1,"mol/text/code":-3,"mol/view/view":-3,"mol/grid":-3,"mol/dimmer":-3,"mol/text/code/row":-3,"mol/link/iconed":-3,"mol/embed/any":-3,"mol/mem":-1,"mol/link":-3,"mol/locale":-3},"mol/text/list":{"mol/text":-9007199254740991,"mol/style/attach":0,"mol/text/list/list.view.tree":0,"mol/text/text":-1,"mol/mem":-1,"mol/paragraph":-1,"mol/type/enforce":-1,"mol/text/list/-view.tree/list.view.tree.js":0},"mol/text/list/list.view.tree":{"mol/text/list/-view.tree/list.view.tree.js":0},"mol/text/list/-view.tree/list.view.tree.js":{"mol/text/text":-1,"mol/mem":-1,"mol/paragraph":-1},"mol/grid":{"mol":-9007199254740991,"mol/grid/grid.view.tree":0,"mol/mem":-1,"mol/view/view":-1,"mol/state/session":-3,"mol/style/attach":0,"mol/gap":-1,"mol/theme":-1,"mol/dimmer":-1,"mol/float":-1,"mol/check/expand":-1,"mol/list":-1,"mol/type/enforce":-1,"mol/view":-2,"mol/grid/-view.tree/grid.view.tree.js":0},"mol/grid/grid.view.tree":{"mol/grid/-view.tree/grid.view.tree.js":0},"mol/grid/-view.tree/grid.view.tree.js":{"mol/view/view":-1,"mol/dimmer":-3,"mol/float":-3,"mol/check/expand":-3,"mol/mem":-1,"mol/list":-1},"mol/float":{"mol":-9007199254740991,"mol/style/attach":0,"mol/float/float.view.tree":0,"mol/layer":-1,"mol/theme":-1,"mol/view/view":-1,"mol/float/-view.tree/float.view.tree.js":0},"mol/float/float.view.tree":{"mol/float/-view.tree/float.view.tree.js":0},"mol/float/-view.tree/float.view.tree.js":{"mol/view/view":-1},"mol/check/expand":{"mol/check":0,"mol/check/expand/expand.view.tree":0,"mol/style/attach":0,"mol/icon/chevron":-2,"mol/mem":-1,"mol/check/expand/-view.tree/expand.view.tree.js":0},"mol/check":{"mol":-9007199254740991,"mol/style/attach":0,"mol/check/check.view.tree":0,"mol/maybe":-4,"mol/view":-2,"mol/button/minor":-1,"mol/view/view":-1,"mol/mem":-1,"mol/type/enforce":-1,"mol/check/-view.tree/check.view.tree.js":0},"mol/check/check.view.tree":{"mol/check/-view.tree/check.view.tree.js":0},"mol/check/-view.tree/check.view.tree.js":{"mol/button/minor":-1,"mol/view/view":-3,"mol/mem":-1},"mol/maybe":{"mol":-9007199254740991},"mol/check/expand/expand.view.tree":{"mol/check/expand/-view.tree/expand.view.tree.js":0},"mol/check/expand/-view.tree/expand.view.tree.js":{"mol/check":-1,"mol/icon/chevron":-3,"mol/mem":-1},"mol/icon/chevron":{"mol/icon":-1,"mol/icon/chevron/-view.tree/chevron.view.tree.js":0},"mol/icon/chevron/-view.tree/chevron.view.tree.js":{"mol/icon":-1},"mol/state/session":{"mol/state":-9007199254740991,"mol/object":-1,"mol/dom/context":-4,"mol/mem":-2},"mol/link/iconed":{"mol/link":-1,"mol/link/iconed/iconed.view.tree":0,"mol/mem":-1,"mol/state/arg":-3,"mol/style/attach":0,"mol/theme":0,"mol/gap":-1,"mol/image":-1,"mol/type/enforce":-1,"mol/link/iconed/-view.tree/iconed.view.tree.js":0},"mol/link/iconed/iconed.view.tree":{"mol/link/iconed/-view.tree/iconed.view.tree.js":0},"mol/link/iconed/-view.tree/iconed.view.tree.js":{"mol/link":-1,"mol/image":-3,"mol/mem":-1},"mol/image":{"mol":-9007199254740991,"mol/image/image.view.tree":0,"mol/mem":-1,"mol/style/attach":0,"mol/gap":-1,"mol/view/view":-1,"mol/image/-view.tree/image.view.tree.js":0},"mol/image/image.view.tree":{"mol/image/-view.tree/image.view.tree.js":0},"mol/image/-view.tree/image.view.tree.js":{"mol/view/view":-1,"mol/mem":-1},"mol/embed/any":{"mol/embed":-9007199254740991,"mol/embed/any/any.view.tree":0,"mol/mem":-1,"mol/fail/log":-4,"mol/view/view":-1,"mol/image":-1,"mol/embed/native":-1,"mol/embed/youtube":-1,"mol/type/enforce":-1,"mol/embed/any/-view.tree/any.view.tree.js":0},"mol/embed":{"mol":-9007199254740991},"mol/embed/any/any.view.tree":{"mol/embed/any/-view.tree/any.view.tree.js":0},"mol/embed/any/-view.tree/any.view.tree.js":{"mol/view/view":-1,"mol/image":-3,"mol/embed/native":-3,"mol/embed/youtube":-3,"mol/mem":-1},"mol/embed/native":{"mol/embed":-9007199254740991,"mol/embed/native/native.view.tree":0,"mol/mem":-1,"mol/wire/solid":-3,"mol/wire/sync":-3,"mol/dom/listener":-3,"mol/dom/context":-4,"mol/wire/async":-4,"mol/wait/timeout":-3,"mol/style/attach":0,"mol/gap":-1,"mol/scroll":-1,"mol/link":-1,"mol/type/enforce":-1,"mol/embed/native/-view.tree/native.view.tree.js":0},"mol/embed/native/native.view.tree":{"mol/embed/native/-view.tree/native.view.tree.js":0},"mol/embed/native/-view.tree/native.view.tree.js":{"mol/scroll":-1,"mol/link":-3,"mol/mem":-1},"mol/embed/youtube":{"mol/embed":-9007199254740991,"mol/embed/youtube/youtube.view.tree":0,"mol/mem":-1,"mol/style/attach":0,"mol/check":-1,"mol/image":-1,"mol/icon/youtube":-2,"mol/frame":-1,"mol/type/enforce":-1,"mol/embed/youtube/-view.tree/youtube.view.tree.js":0},"mol/embed/youtube/youtube.view.tree":{"mol/embed/youtube/-view.tree/youtube.view.tree.js":0},"mol/embed/youtube/-view.tree/youtube.view.tree.js":{"mol/check":-1,"mol/image":-3,"mol/icon/youtube":-3,"mol/frame":-3,"mol/mem":-1},"mol/icon/youtube":{"mol/icon":-1,"mol/icon/youtube/-view.tree/youtube.view.tree.js":0},"mol/icon/youtube/-view.tree/youtube.view.tree.js":{"mol/icon":-1},"mol/frame":{"mol":-9007199254740991,"mol/frame/frame.view.tree":0,"mol/embed/native":-1,"mol/mem":-1,"mol/frame/-view.tree/frame.view.tree.js":0,"mol/style/define":-1,"mol/style/unit":-2},"mol/frame/frame.view.tree":{"mol/frame/-view.tree/frame.view.tree.js":0},"mol/frame/-view.tree/frame.view.tree.js":{"mol/embed/native":-1,"mol/mem":-1},"mol/string/button":{"mol/string":-1,"mol/style/attach":0,"mol/string/button/button.view.tree":0,"mol/theme":-1,"mol/string/button/-view.tree/button.view.tree.js":0},"mol/string/button/button.view.tree":{"mol/string/button/-view.tree/button.view.tree.js":0},"mol/string/button/-view.tree/button.view.tree.js":{"mol/string":-1},"hyoo/survey/person":{"hyoo/survey":-9007199254740991,"hyoo/crus/entity":-1,"hyoo/crus/list":-2,"hyoo/survey/meet":-2,"mol/action":-2,"hyoo/crus/rank":-3}},"sloc":{"ts":11984,"LICENSE":181,"md":3741,"lock":926,"js":9,"json":114,"tree":904,"CNAME":2,"html":15,"css":1017,"tsx":342},"deps":{"hyoo/survey/app":{"..":-9007199254740991,"./app.view.tree":0,"/hyoo/survey/app":-1,"/mol/mem":-1,"/hyoo/crus/ref":-2,"/mol/state/arg/value":-3,"/hyoo/survey/person":-3,"/hyoo/crus/rank/public":-3,"/mol/mem/key":-1,"/hyoo/survey/meet":-2,"/mol/book2/catalog":-1,"/mol/icon/plus":-2,"/mol/button/minor":-1,"/hyoo/survey/meet/form":-1,"/hyoo/crus/realm":-2,"/hyoo/survey":-3,"/hyoo/survey/app/prototype":-1,"/mol/type/enforce":-1,"/hyoo/survey/app/spread/ids":-1,"/hyoo/survey/app/-view.tree/app.view.tree.js":0},"hyoo/survey":{"..":-9007199254740991},"hyoo":{"..":-9007199254740991},"":{},"hyoo/survey/app/app.view.tree":{"/hyoo/survey/app/-view.tree/app.view.tree.js":0},"hyoo/survey/app/-view.tree/app.view.tree.js":{"/hyoo/survey/app":-1,"/mol/book2/catalog":-1,"/mol/icon/plus":-3,"/mol/button/minor":-3,"/hyoo/survey/meet":-3,"/hyoo/survey/meet/form":-3,"/hyoo/crus/realm":-3,"/hyoo/survey":-3,"/mol/mem":-1,"/hyoo/survey/app/prototype":-1,"/mol/mem/key":-1},"mol/book2/catalog":{"..":-9007199254740991,"./catalog.view.tree":0,"/mol/book2/catalog":-1,"/mol/mem":-1,"/mol/book2":-1,"/mol/match/text":-4,"/mol/view":-2,"/mol/state/arg/value":-3,"/mol/style/attach":0,"/mol/book2/catalog/menu/filter":0,"/mol/search":-1,"/mol/dimmer":-1,"/mol/link":-1,"/mol/list":-1,"/mol/page":-1,"/mol/icon/cross":-2,"/mol/book2/catalog/prototype":-1,"/mol/mem/key":-1,"/mol/type/enforce":-1,"/mol/book2/catalog/-view.tree/catalog.view.tree.js":0},"mol/book2":{"..":-9007199254740991,"./book2.view.tree":0,"/mol/book2":0,"/mol/fail/log":-5,"/mol/mem":-1,"/mol/mem/cached":-3,"/mol/view":0,"/mol/style/attach":0,"/mol/theme/field":-1,"/mol/theme/focus":-2,"/mol/layer/speck":-1,"/mol/theme/card":-1,"/mol/book2/placeholder":0,"/mol/book2/gap":0,"/mol/scroll":-1,"/mol/book2/prototype":-1,"/mol/mem/key":-1,"/mol/type/enforce":-1,"/mol/book2/-view.tree/book2.view.tree.js":0},"mol":{"..":-9007199254740991},"mol/book2/book2.view.tree":{"/mol/book2/-view.tree/book2.view.tree.js":0},"mol/book2/-view.tree/book2.view.tree.js":{"/mol/book2":-1,"/mol/scroll":-1,"/mol/view":-3,"/mol/mem":-1,"/mol/book2/prototype":-1,"/mol/mem/key":-1},"mol/scroll":{"..":-9007199254740991,"./scroll.view.tree":0,"/mol/scroll":-1,"/mol/mem":-1,"/mol/print/active":-3,"/mol/view":-1,"/mol/scroll/prototype":-1,"/mol/scroll/-view.tree/scroll.view.tree.js":0,"/mol/style/unit":-1,"/mol/style/define":-1},"mol/scroll/scroll.view.tree":{"/mol/scroll/-view.tree/scroll.view.tree.js":0},"mol/scroll/-view.tree/scroll.view.tree.js":{"/mol/scroll":-1,"/mol/view":-1,"/mol/mem":-1,"/mol/scroll/prototype":-1},"mol/view/view":{"..":-9007199254740991,"/mol/view/content":-1,"/mol/view":0,"/mol/view/visible/width":-1,"/mol/window/size":-2,"/mol/view/visible/height":-1,"/mol/view/state/key":-1,"/mol/object":-1,"/mol/mem/key":-2,"/mol/mem":-2,"/mol/fail/log":-4,"/mol/dom/context/document/query/selector/all":-3,"/mol/view/selection/focused":-3,"/mol/memo/method":-2,"/mol/dom/qname":-3,"/mol/wire/probe":-3,"/mol/wire/watch":-4,"/mol/dom/context/document/create/element":-3,"/mol/const":-3,"/mol/wire/solid":-3,"/mol/dom/render/attributes":-3,"/mol/dom/render/events":-3,"/mol/plugin":-6,"/mol/promise/like":-4,"/mol/dom/render/styles":-3,"/mol/dom/context":-3,"/mol/dom/render/children":-3,"/mol/dom/render/fields":-3,"/mol/func/name":-4,"/mol/owning/get":-3,"/mol/wire/fiber":-3,"/mol/wire/async":-3,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/fail/hidden":-4,"/mol/after/frame":-3,"/mol/view/all":-1,"/mol/type/pick":-1,"/mol/style/attach":0,"/mol/theme/line":-1,"/mol/gap/round":-1,"/mol/view/root":0,"/mol/theme/back":-1,"/mol/theme/text":-1,"/mol/view/error":0,"/mol/theme/hover":-1},"mol/view":{"..":-9007199254740991},"mol/window":{"..":-9007199254740991,"./window.ts":0,"/mol/window":-1,"/mol/object":-1},"mol/object":{"..":-9007199254740991,"/mol/object/field":-1,"/mol/object":-1,"/mol/object2":-1},"mol/object2":{"..":-9007199254740991,"/mol/object2":-1,"/mol/ambient/ref":-2,"/mol/owning/get":-3,"/mol/fail/hidden":-3,"/mol/type/writable":-3,"/mol/func/name":-3},"mol/ambient":{"..":-9007199254740991,"/mol/ambient/ref":-1,"/mol/ambient/context":-1,"/mol/ambient":-1},"mol/owning":{"..":-9007199254740991,"/mol/owning/map":-1,"/mol/owning/allow":-1,"/mol/delegate":-3,"/mol/owning/get":-1,"/mol/owning/map/get":-2,"/mol/owning/check":-1,"/mol/owning/catch":-1,"/mol/owning/map/set":-2},"mol/delegate":{"..":-9007199254740991,"/mol/delegate":-1},"mol/fail/hidden":{"..":-9007199254740991,"/mol/fail/hidden":-1},"mol/fail":{"..":-9007199254740991,"/mol/fail":-1},"mol/type/writable":{"..":-9007199254740991,"/mol/type/writable":-1},"mol/type":{"..":-9007199254740991},"mol/func/name":{"..":-9007199254740991,"/mol/func/name":-1,"/mol/func/name/from":-1},"mol/func":{"..":-9007199254740991},"mol/mem":{"..":-9007199254740991,"/mol/mem":-1,"/mol/wire/solo":-1,"/mol/mem/key":-1,"/mol/wire/plex":-1},"mol/wire/solo":{"..":-9007199254740991,"/mol/wire/solo":-1,"/mol/wire/atom/solo":-4,"/mol/wire/fiber/warm":-5,"/mol/wire/auto":-5,"/mol/type/tail":-2},"mol/wire":{"..":-9007199254740991,"/mol/wire/auto/sub":-1,"/mol/wire/sub":-1,"/mol/wire/auto":-1,"/mol/wire/affected":-1},"mol/wire/sub":{"..":-9007199254740991,"/mol/wire/sub":-1,"/mol/wire/pub":-1,"/mol/wire/cursor":-2},"mol/wire/pub":{"..":-9007199254740991,"/mol/wire/pub":-1,"/mol/wire/sub":-3,"/mol/fail":-4,"/mol/wire/auto":-3,"/mol/wire/cursor/stale":-2},"mol/wire/cursor":{"..":-9007199254740991,"/mol/wire/cursor":-1},"mol/wire/atom":{"..":-9007199254740991,"/mol/wire/atom":-1,"/mol/wire/fiber":-1,"/mol/func/name":-3,"/mol/key":-3,"/mol/after/frame":-2,"/mol/wire/atom/watcher":-3,"/mol/wire/atom/watch":-3,"/mol/wire/atom/watching":-3,"/mol/wire/cursor/final":-4,"/mol/wire/atom/watching/delete":-5,"/mol/wire/cursor/stale":-5,"/mol/wire/atom/watching/add":-3,"/mol/wire/method":-2,"/mol/type/foot":-3,"/mol/wire/fiber/warm":-4,"/mol/wire/auto":-4,"/mol/owning/check":-3,"/mol/compare/deep":-5,"/mol/fail/log":-5,"/mol/owning/catch":-4,"/mol/wire/cursor/fresh":-3,"/mol/promise/like":-3},"mol/wire/fiber":{"..":-9007199254740991,"/mol/wire/fiber":-1,"/mol/wire/pub/sub":-1,"/mol/after/frame":-2,"/mol/wire/fiber/plan/task":-5,"/mol/wire/cursor/final":-3,"/mol/promise/like":-3,"/mol/wire/fiber/planning/add":-3,"/mol/wire/fiber/plan":-3,"/mol/wire/fiber/reaping/add":-3,"/mol/dev/format/head":-2,"/mol/wire/cursor/stale":-2,"/mol/wire/cursor/doubt":-3,"/mol/wire/cursor/fresh":-3,"/mol/dev/format/div":-3,"/mol/owning/check":-4,"/mol/dev/format/auto":-4,"/mol/dev/format/shade":-5,"/mol/dev/format/body":-6,"/mol/dev/format/native":-5,"/mol/wire/pub":-5,"/mol/wire/fiber/warm":-3,"/mol/fail/hidden":-4},"mol/wire/pub/sub":{"..":-9007199254740991,"/mol/wire/pub/sub":-1,"/mol/wire/pub":-1,"/mol/wire/sub":-1,"/mol/wire/cursor/stale":-2,"/mol/wire/auto":-3,"/mol/fail":-3,"/mol/wire/cursor/fresh":-3,"/mol/wire/cursor/final":-3,"/mol/wire/cursor/doubt":-3,"/mol/dev/format/head":-2,"/mol/dev/format/native":-3},"mol/dev/format":{"..":-9007199254740991,"/mol/dev/format/register":-1,"/mol/dev/format/head":-1,"/mol/dev/format/body":-1,"/mol/dev/format/accent":-1,"/mol/dev/format/native":-1,"/mol/dev/format/shade":-1,"/mol/dev/format/auto":-1,"/mol/dev/format/element":-1,"/mol/dev/format/span":-1,"/mol/dev/format/div":-1,"/mol/dev/format/element/bind":-1,"/mol/dev/format/ol":-1,"/mol/dev/format/li":-1,"/mol/dev/format/table":-1,"/mol/dev/format/tr":-1,"/mol/dev/format/td":-1,"/mol/dev/format/span/bind":-1,"/mol/dev/format/strong":-1,"/mol/dev/format/string":-1,"/mol/dev/format/indent":-1,"/mol/dev/format/div/bind":-1},"mol/dev":{"..":-9007199254740991},"mol/after/frame":{"..":-9007199254740991,"./frame.ts":0,"/mol/after/frame":-1,"/mol/after/timeout":-1},"mol/after":{"..":-9007199254740991},"mol/after/timeout":{"..":-9007199254740991,"/mol/after/timeout":-1,"/mol/object2":-1},"mol/promise/like":{"..":-9007199254740991,"/mol/promise/like":-1},"mol/promise":{"..":-9007199254740991},"mol/key":{"..":-9007199254740991,"/mol/key/store":-1,"/mol/key":-1,"/mol/key/store/get":-3,"/mol/guid":-3,"/mol/key/store/set":-3},"mol/guid":{"..":-9007199254740991,"/mol/guid":-1},"mol/wire/method":{"..":-9007199254740991,"/mol/wire/method":-1,"/mol/wire/task/getter":-2},"mol/wire/task":{"..":-9007199254740991,"/mol/wire/task":-1,"/mol/wire/fiber":-1,"/mol/wire/task/get":-3,"/mol/wire/auto":-4,"/mol/compare/deep":-5,"/mol/log3/warn":-5,"/mol/promise/like":-3,"/mol/wire/cursor/fresh":-4,"/mol/wire/cursor/final":-3},"mol/compare/deep":{"..":-9007199254740991,"/mol/compare/deep/cache":-1,"/mol/compare/deep":-1,"/mol/compare/deep/cache/get":-2,"/mol/compare/deep/cache/set":-3},"mol/compare":{"..":-9007199254740991},"mol/log3":{"..":-9007199254740991,"/mol/log3/event":-1,"/mol/log3/logger":-1,"/mol/log3/come":-1,"/mol/log3/done":-1,"/mol/log3/fail":-1,"/mol/log3/warn":-1,"/mol/log3/rise":-1,"/mol/log3/area":-1,"/mol/log3/area/lazy":-1,"/mol/log3/stack":-1,"/mol/log3/area/call":-3,"./log3.ts":0,"/mol/log3/node/make":-1,"/mol/tree2/from/json":-3,"/mol/term/color/blue":-1,"/mol/term/color/green":-1,"/mol/term/color/red":-1,"/mol/term/color/yellow":-1,"/mol/term/color/magenta":-1,"/mol/term/color/cyan":-1},"mol/log3/log3.ts":{"/mol/log3/event":-1,"/mol/log3/logger":-1,"/mol/log3/come":-1,"/mol/log3/done":-1,"/mol/log3/fail":-1,"/mol/log3/warn":-1,"/mol/log3/rise":-1,"/mol/log3/area":-1,"/mol/log3/area/lazy":-1,"/mol/log3/stack":-1,"/mol/log3/area/call":-3},"mol/tree2/from/json":{"..":-9007199254740991,"/mol/tree2/from/json":-1,"/mol/span/unknown":-1,"/mol/tree2":-1,"/mol/tree2/data":-3},"mol/tree2/from":{"..":-9007199254740991},"mol/tree2":{"..":-9007199254740991,"/mol/tree2/path":-1,"/mol/tree2/hack":-1,"/mol/tree2":-1,"/mol/tree2/belt":-1,"/mol/span":-2,"/mol/span/unknown":-3,"/mol/tree2/list":-3,"/mol/tree2/data":-3,"/mol/fail":-4,"/mol/tree2/struct":-3,"/mol/tree2/from/string":-2,"/mol/tree2/to/string":-3,"/mol/fail/hidden":-4,"/mol/tree2/empty":-1},"mol/span":{"..":-9007199254740991,"/mol/span":-1,"/mol/object2":-1,"/mol/span/begin":-2,"/mol/fail":-3},"mol/tree2/from/string":{"..":-9007199254740991,"/mol/tree2/from/string":-1,"/mol/tree2":-1,"/mol/span/entire":-2,"/mol/tree2/list":-2,"/mol/fail":-4,"/mol/error/syntax":-4},"mol/error/syntax":{"..":-9007199254740991,"/mol/error/syntax":-1,"/mol/span":-3},"mol/error":{"..":-9007199254740991},"mol/tree2/to/string":{"..":-9007199254740991,"/mol/tree2/to/string":-1,"/mol/tree2":-2},"mol/tree2/to":{"..":-9007199254740991},"mol/term/color":{"..":-9007199254740991,"/mol/term/color":-1},"mol/term":{"..":-9007199254740991},"mol/type/foot":{"..":-9007199254740991,"/mol/type/tail":-1.25,"/mol/type/foot":-1},"mol/type/tail":{"..":-9007199254740991,"/mol/type/tail":-1},"mol/fail/log":{"..":-9007199254740991,"/mol/fail/log":-1,"/mol/promise/like":-2,"/mol/fail/catch":-2},"mol/fail/catch":{"..":-9007199254740991,"/mol/fail/catch":-1,"/mol/promise/like":-2,"/mol/fail/hidden":-2},"mol/wire/plex":{"..":-9007199254740991,"/mol/wire/plex":-1,"/mol/wire/atom/plex":-4,"/mol/wire/fiber/warm":-5,"/mol/wire/auto":-5},"mol/dom/context":{"..":-9007199254740991,"/mol/dom/context":-1,"./context.ts":0,"/node/jsdom":-1},"mol/dom":{"..":-9007199254740991},"mol/dom/context/context.ts":{"/mol/dom/context":-1},"node":{"..":-9007199254740991,"./node.ts":0,"/node":0,"module":-2,"path":-2,"fs":-2,"/mol/exec":-4,"/mol/fail/log":-3},"node/node.ts":{},"node_modules":{"..":-9007199254740991},"mol/exec":{"..":-9007199254740991,"./exec.ts":0,"/mol/exec":-1,"/mol/log3/come":-2,"/node/path/relative":-3,"/node/child_process":-2,"/node/path/resolve":-4,"/mol/env":-4,"/mol/fail":-3},"mol/env":{"..":-9007199254740991,"/mol/env":-1,"./env.ts":0},"mol/env/env.ts":{"/mol/env":-1},"mol/view/selection":{"..":-9007199254740991,"/mol/view/selection":-1,"/mol/object":-1,"/mol/mem":-2,"/mol/dom/context/document/active/element":-3,"/mol/after/tick":-3,"/mol/dom/context/blur":-4},"mol/after/tick":{"..":-9007199254740991,"/mol/after/tick":-1,"/mol/object2":-1},"mol/memo":{"..":-9007199254740991,"/mol/memo":-1,"/mol/wrapper":-1},"mol/wrapper":{"..":-9007199254740991,"/mol/wrapper":-1,"/mol/object2":-1},"mol/dom/qname":{"..":-9007199254740991,"/mol/dom/qname":-1},"mol/wire/probe":{"..":-9007199254740991,"/mol/wire/probe":-1,"/mol/wire/fiber/warm":-2},"mol/wire/watch":{"..":-9007199254740991,"/mol/wire/watch":-1,"/mol/wire/auto":-2,"/mol/wire/atom":-2,"/mol/fail":-3},"mol/const":{"..":-9007199254740991,"/mol/const":-1,"/mol/dev/format/head":-2,"/mol/dev/format/span":-2,"/mol/dev/format/auto":-2},"mol/wire/solid":{"..":-9007199254740991,"/mol/wire/solid":-1,"/mol/wire/auto":-2,"/mol/wire/fiber":-2,"/mol/wire/pub/sub":-1},"mol/dom/render/attributes":{"..":-9007199254740991,"/mol/dom/render/attributes":-1},"mol/dom/render":{"..":-9007199254740991},"mol/dom/render/events":{"..":-9007199254740991,"/mol/dom/render/events":-1},"mol/plugin":{"..":-9007199254740991,"/mol/plugin":-1,"/mol/view":-1,"/mol/owning/get":-3,"/mol/wire/fiber":-3},"mol/dom/render/styles":{"..":-9007199254740991,"/mol/dom/render/styles":-1},"mol/dom/render/children":{"..":-9007199254740991,"/mol/dom/render/children":-1,"/mol/dom/context":-3,"/mol/dom/context/document/create/text/node":-5},"mol/dom/render/fields":{"..":-9007199254740991,"/mol/dom/render/fields":-1},"mol/wire/async":{"..":-9007199254740991,"/mol/wire/async":-1,"/mol/wire/fiber":-2,"/mol/wire/task/getter":-2},"mol/type/pick":{"..":-9007199254740991,"/mol/type/pick":-1,"/mol/type/keys/extract":-3},"mol/type/keys/extract":{"..":-9007199254740991,"/mol/type/keys/extract":-1},"mol/type/keys":{"..":-9007199254740991},"mol/style/attach":{"..":-9007199254740991,"/mol/after/tick":-1,"/mol/style/attach/force":-1,"/mol/style/attach":-1,"/mol/dom/context/document":-2},"mol/style":{"..":-9007199254740991},"mol/theme":{"..":-9007199254740991,"/mol/theme":0,"/mol/style/prop":-1,"/mol/style/attach":0,"/mol/theme/dark":-0.25,"/mol/theme/light":-0.25,"/mol/theme/base":-0.25,"/mol/theme/accent":-0.25,"/mol/theme/current":-0.25,"/mol/theme/special":-0.25,"/mol/theme/hue":-1,"/mol/theme/hue/spread":-1,"/mol/theme/text":-1,"/mol/theme/back":-1,"/mol/theme/luma":-1,"/mol/theme/image":-1,"/mol/theme/card":-1,"/mol/theme/field":-1,"/mol/theme/hover":-1,"/mol/theme/shade":-1,"/mol/theme/line":-1,"/mol/theme/focus":-1,"/mol/theme/control":-1},"mol/style/prop":{"..":-9007199254740991,"/mol/style/prop":-1,"/mol/style/func/vary":-3,"/mol/style/func":-2},"mol/style/func":{"..":-9007199254740991,"/mol/style/func/name":-1,"/mol/style/func/image":-1,"/mol/style/func/filter":-1,"/mol/style/unit":-1,"/mol/style/func":-1,"/mol/decor":-1,"/mol/style/unit/str":-2,"/mol/style/unit/length":-2,"/mol/style/properties/color":-3,"/mol/style/unit/angle":-2},"mol/style/unit":{"..":-9007199254740991,"/mol/style/unit/length":-1,"/mol/style/unit/angle":-1,"/mol/style/unit/time":-1,"/mol/style/unit/any":-1,"/mol/style/unit/str":-1,"/mol/style/unit":-1,"/mol/decor":-1},"mol/decor":{"..":-9007199254740991,"/mol/decor":-1},"mol/style/properties":{"..":-9007199254740991,"/mol/style/properties":-1,"/mol/type/override":-1,"/mol/style/func":-1,"/mol/style/properties/color":-1,"/mol/style/unit/length":-1,"/mol/style/unit/str":-3,"/mol/style/unit/time":-3,"/mol/style/func/filter":-2,"/mol/style/func/image":-3},"mol/type/override":{"..":-9007199254740991,"/mol/type/override":-1},"mol/gap":{"..":-9007199254740991,"/mol/gap":-1,"/mol/style/prop":-1,"/mol/style/attach":0,"/mol/gap/block":-1,"/mol/gap/text":-1,"/mol/gap/round":-1,"/mol/gap/space":-1,"/mol/gap/blur":-1},"mol/print":{"..":-9007199254740991,"/mol/print":-1,"/mol/object":-1,"/mol/mem":-2,"/mol/dom/listener":-3,"/mol/dom/context":-3},"mol/dom/listener":{"..":-9007199254740991,"/mol/dom/listener":-1,"/mol/object":-1},"mol/style/define":{"..":-9007199254740991,"/mol/style/define":-1,"/mol/view":-2,"/mol/style/guard":-2,"/mol/style/attach":-2,"/mol/style/sheet":-3},"mol/style/guard":{"..":-9007199254740991,"/mol/view":-1,"/mol/style/guard":-1,"/mol/style/properties":-1,"/mol/style/pseudo/element":-1,"/mol/style/pseudo/class":-1,"/mol/type/keys/extract":-1,"/mol/type/error":-2},"mol/style/pseudo":{"..":-9007199254740991,"/mol/style/pseudo/class":-1,"/mol/style/pseudo/element":-1},"mol/type/error":{"..":-9007199254740991,"/mol/type/error":-1},"mol/style/sheet":{"..":-9007199254740991,"/mol/style/sheet":-1,"/mol/view":-2,"/mol/style/guard":-2,"/mol/dom/qname":-2,"/mol/ambient":-2,"/mol/func/name":-2},"mol/mem/cached":{"..":-9007199254740991,"/mol/mem/cached":-1,"/mol/wire/probe":-1},"mol/layer":{"..":-9007199254740991,"/mol/layer":-1,"/mol/style/prop":-1,"/mol/style/attach":0,"/mol/layer/hover":-1,"/mol/layer/focus":-1,"/mol/layer/speck":-1,"/mol/layer/float":-1,"/mol/layer/popup":-1},"mol/type/enforce":{"..":-9007199254740991,"/mol/type/enforce":-1},"mol/book2/catalog/catalog.view.tree":{"/mol/book2/catalog/-view.tree/catalog.view.tree.js":0},"mol/book2/catalog/-view.tree/catalog.view.tree.js":{"/mol/book2/catalog":-1,"/mol/book2":-1,"/mol/search":-3,"/mol/dimmer":-3,"/mol/link":-3,"/mol/list":-3,"/mol/page":-3,"/mol/icon/cross":-3,"/mol/view":-3,"/mol/mem":-1,"/mol/book2/catalog/prototype":-1,"/mol/mem/key":-1},"mol/search":{"..":-9007199254740991,"./search.view.tree":0,"/mol/search":0,"/mol/mem":-1,"/mol/view":-1,"/mol/style/attach":0,"/mol/search/anchor":0,"/mol/search/query":0,"/mol/search/menu":0,"/mol/search/suggest":0,"/mol/search/suggest/label/high":0,"/mol/theme/shade":-1,"/mol/pop":-1,"/mol/hotkey":-1,"/mol/nav":-1,"/mol/locale/text":-3,"/mol/search/hint":-3,"/mol/string":-1,"/mol/icon/cross":-2,"/mol/button/minor":-1,"/mol/list":-1,"/mol/dimmer":-1,"/mol/search/prototype":-1,"/mol/mem/key":-1,"/mol/type/enforce":-1,"/mol/search/plugins":-1,"/mol/plugin":-2,"/mol/view/content":-2,"/mol/search/-view.tree/search.view.tree.js":0},"mol/search/search.view.tree":{"/mol/search/-view.tree/search.view.tree.js":0},"mol/search/-view.tree/search.view.tree.js":{"/mol/search":-1,"/mol/pop":-1,"/mol/hotkey":-3,"/mol/nav":-3,"/mol/locale/text":-3,"/mol/search/hint":-3,"/mol/string":-3,"/mol/icon/cross":-3,"/mol/button/minor":-3,"/mol/list":-3,"/mol/dimmer":-3,"/mol/view":-3,"/mol/mem":-1,"/mol/search/prototype":-1,"/mol/mem/key":-1},"mol/pop":{"..":-9007199254740991,"./pop.view.tree":0,"/mol/pop":0,"/mol/mem":-1,"/mol/window/size":-3,"/mol/view":-1,"/mol/dom/context/get/computed/style":-5,"/mol/dom/context/document/document/element":-4,"/mol/style/attach":0,"/mol/pop/bubble":0,"/mol/gap/round":-1,"/mol/layer/popup":-1,"/mol/theme/back":-1,"/mol/theme/card":-1,"/mol/scroll":0,"/mol/pop/align":0,"/mol/pop/prototype":-1,"/mol/type/enforce":-1,"/mol/view/content":-2,"/mol/pop/-view.tree/pop.view.tree.js":0},"mol/pop/pop.view.tree":{"/mol/pop/-view.tree/pop.view.tree.js":0},"mol/pop/-view.tree/pop.view.tree.js":{"/mol/pop":-1,"/mol/view":-1,"/mol/pop/bubble":-1,"/mol/mem":-1,"/mol/pop/prototype":-1},"mol/hotkey":{"..":-9007199254740991,"./hotkey.view.tree":0,"/mol/hotkey":-1,"/mol/keyboard/code":-3,"/mol/plugin":-1,"/mol/mem":-1,"/mol/hotkey/prototype":-1,"/mol/hotkey/-view.tree/hotkey.view.tree.js":0},"mol/hotkey/hotkey.view.tree":{"/mol/hotkey/-view.tree/hotkey.view.tree.js":0},"mol/hotkey/-view.tree/hotkey.view.tree.js":{"/mol/hotkey":-1,"/mol/plugin":-1,"/mol/mem":-1,"/mol/hotkey/prototype":-1},"mol/keyboard/code":{"..":-9007199254740991,"/mol/keyboard/code":-1},"mol/keyboard":{"..":-9007199254740991},"mol/nav":{"..":-9007199254740991,"./nav.view.tree":0,"/mol/nav":-1,"/mol/keyboard/code/up":-4,"/mol/keyboard/code/down":-4,"/mol/keyboard/code/left":-4,"/mol/keyboard/code/right":-4,"/mol/keyboard/code/page/up":-4,"/mol/keyboard/code/page/down":-4,"/mol/plugin":-1,"/mol/mem":-1,"/mol/nav/prototype":-1,"/mol/nav/-view.tree/nav.view.tree.js":0},"mol/nav/nav.view.tree":{"/mol/nav/-view.tree/nav.view.tree.js":0},"mol/nav/-view.tree/nav.view.tree.js":{"/mol/nav":-1,"/mol/plugin":-1,"/mol/mem":-1,"/mol/nav/prototype":-1},"mol/locale":{"..":-9007199254740991,"/mol/locale/dict":-1,"/mol":-1.25,"/mol/locale":-1,"/mol/object":-1,"/mol/mem":-2,"/mol/state/local/value":-3,"/mol/dom/context/navigator/language/replace":-3,"/mol/mem/key":-2,"/mol/file/relative":-3,"/mol/fail/catch":-4},"mol/state/local":{"..":-9007199254740991,"/mol/state/local":-1,"/mol/object":-1,"/mol/dom/context/local/storage":-4,"/mol/mem":-2,"/mol/mem/key":-2,"/mol/storage/persisted":-4,"/mol/state/local/value":-3,"./local.ts":0,"/mol/state/local/node":-1,"/node/os/homedir":-3,"/mol/file/absolute":-3},"mol/state":{"..":-9007199254740991},"mol/storage":{"..":-9007199254740991,"/mol/storage":-1,"/mol/object2":-1,"/mol/mem":-2,"/mol/dom/context/navigator/storage":-3,"/mol/mem/persist":-3,"/mol/mem/cached":-3,"/mol/log3/done":-5,"/mol/log3/fail":-5,"/mol/wire/sync":-3},"mol/mem/persist":{"..":-9007199254740991,"/mol/mem/persist":-1,"/mol/wire/solid":-1},"mol/wire/sync":{"..":-9007199254740991,"/mol/wire/sync":-1,"/mol/wire/task/getter":-4},"mol/state/local/local.ts":{"/mol/state/local":-1,"/mol/object":-1,"/mol/dom/context/local/storage":-4,"/mol/mem":-2,"/mol/mem/key":-2,"/mol/storage/persisted":-4,"/mol/state/local/value":-3},"mol/file":{"..":-9007199254740991,"/mol/file/type":-1,"/mol/file/stat":-1,"/mol/file/not/found":-1,"/mol/file":-1,"/mol/object":-1,"/mol/mem/key":-2,"/mol/fail/hidden":-4,"/mol/file/web/watcher":-3,"/mol/mem":-2,"/mol/charset/decode":-4,"/mol/charset/encode":-4,"./file.ts":0,"/node/fs/stat/sync":-1,"/mol/fail":-2,"/mol/file/mode/open":-1,"/node/fs/constants":-2,"/mol/file/node":-1,"/mol/const":-4,"/node/path/resolve":-3,"/node/chokidar/watch":-3,"/mol/file/relative":-4,"/mol/fail/log":-3,"/node/fs/mkdir/sync":-4,"/mol/action":-2,"/node/fs/unlink/sync":-3,"/mol/mem/cached":-5,"/node/fs/read/file/sync":-5,"/mol/compare/array":-5,"/mol/log3/rise":-6,"/node/fs/write/file/sync":-4,"/node/fs/readdir/sync":-4,"/node/path/join":-3,"/node/path/relative":-3,"/node/fs/append/file/sync":-4,"/node/fs/open/sync":-3},"mol/charset/decode":{"..":-9007199254740991,"/mol/charset/encoding":-1,"/mol/charset/decode":-1},"mol/charset":{"..":-9007199254740991},"mol/charset/encoding":{"..":-9007199254740991,"/mol/charset/encoding":-1},"mol/charset/encode":{"..":-9007199254740991,"/node/util":-1,"/mol/charset/encode":-1},"mol/file/file.ts":{"/mol/file/type":-1,"/mol/file/stat":-1,"/mol/file/not/found":-1,"/mol/file":-1,"/mol/object":-1,"/mol/mem/key":-2,"/mol/fail/hidden":-4,"/mol/file/web/watcher":-3,"/mol/mem":-2,"/mol/charset/decode":-4,"/mol/charset/encode":-4},"mol/action":{"..":-9007199254740991,"/mol/action":-1,"/mol/wire/method":-1},"mol/compare/array":{"..":-9007199254740991,"/mol/compare/array":-1},"mol/string":{"..":-9007199254740991,"./string.view.tree":0,"/mol/string":0,"/mol/action":-2,"/mol/fail/hidden":-4,"/mol/mem":-1,"/mol/dom/listener":-3,"/mol/dom/context/document":-4,"/mol/wire/async":-4,"/mol/dom/context/document/active/element":-3,"/mol/style/attach":0,"/mol/gap/round":-1,"/mol/gap/text":-1,"/mol/theme/field":-1,"/mol/theme/text":-1,"/mol/theme/line":-1,"/mol/layer/hover":-1,"/mol/layer/focus":-1,"/mol/theme/focus":-1,"/mol/theme/shade":-1,"/mol/view":-1,"/mol/hotkey":-1,"/mol/string/prototype":-1,"/mol/type/enforce":-1,"/mol/string/-view.tree/string.view.tree.js":0},"mol/string/string.view.tree":{"/mol/string/-view.tree/string.view.tree.js":0},"mol/string/-view.tree/string.view.tree.js":{"/mol/string":-1,"/mol/view":-1,"/mol/hotkey":-3,"/mol/mem":-1,"/mol/string/prototype":-1},"mol/icon/cross":{"..":-9007199254740991,"/mol/icon/cross":-1,"/mol/icon":-1,"/mol/icon/cross/-view.tree/cross.view.tree.js":0},"mol/icon":{"..":-9007199254740991,"/mol/style/attach":0,"./icon.view.tree":0,"/mol/icon":0,"/mol/theme/back":-1,"/mol/icon/path":0,"/mol/svg/root":-1,"/mol/svg/path":-1,"/mol/mem":-1,"/mol/icon/prototype":-1,"/mol/type/enforce":-1,"/mol/icon/-view.tree/icon.view.tree.js":0},"mol/icon/icon.view.tree":{"/mol/icon/-view.tree/icon.view.tree.js":0},"mol/icon/-view.tree/icon.view.tree.js":{"/mol/icon":-1,"/mol/svg/root":-1,"/mol/svg/path":-3,"/mol/mem":-1,"/mol/icon/prototype":-1},"mol/svg/root":{"..":-9007199254740991,"/mol/style/attach":0,"./root.view.tree":0,"/mol/svg/root":0,"/mol/svg":-1,"/mol/svg/root/-view.tree/root.view.tree.js":0},"mol/svg":{"..":-9007199254740991,"./svg.view.tree":0,"/mol/svg":-1,"/mol/mem":-2,"/mol/dom/context":-3,"/mol/state/time/now":-3,"/mol/view":-1,"/mol/svg/-view.tree/svg.view.tree.js":0},"mol/svg/svg.view.tree":{"/mol/svg/-view.tree/svg.view.tree.js":0},"mol/svg/-view.tree/svg.view.tree.js":{"/mol/svg":-1,"/mol/view":-1},"mol/state/time":{"..":-9007199254740991,"/mol/state/time":-1,"/mol/object":-1,"/mol/mem/key":-2,"/mol/after/timeout":-2,"/mol/after/frame":-2},"mol/svg/root/root.view.tree":{"/mol/svg/root/-view.tree/root.view.tree.js":0},"mol/svg/root/-view.tree/root.view.tree.js":{"/mol/svg/root":-1,"/mol/svg":-1},"mol/svg/path":{"..":-9007199254740991,"/mol/svg/path":-1,"/mol/svg":-1,"/mol/svg/path/-view.tree/path.view.tree.js":0},"mol/svg/path/-view.tree/path.view.tree.js":{"/mol/svg/path":-1,"/mol/svg":-1},"mol/icon/cross/-view.tree/cross.view.tree.js":{"/mol/icon/cross":-1,"/mol/icon":-1},"mol/button/minor":{"..":-9007199254740991,"/mol/style/attach":0,"./minor.view.tree":0,"/mol/button/minor":0,"/mol/theme/control":-1,"/mol/theme/shade":-1,"/mol/button/typed":-1,"/mol/button/minor/-view.tree/minor.view.tree.js":0},"mol/button":{"..":-9007199254740991,"./button.view.tree":0,"/mol/button":0,"/mol/mem":-1,"/mol/fail/hidden":-4,"/mol/keyboard/code/enter":-3,"/mol/fail/log":-4,"/mol/style/attach":0,"/mol/gap/round":-1,"/mol/layer/hover":-1,"/mol/layer/focus":-1,"/mol/view":-1,"/mol/speck":-1,"/mol/button/prototype":-1,"/mol/type/enforce":-1,"/mol/view/content":-2,"/mol/button/-view.tree/button.view.tree.js":0},"mol/button/button.view.tree":{"/mol/button/-view.tree/button.view.tree.js":0},"mol/button/-view.tree/button.view.tree.js":{"/mol/button":-1,"/mol/view":-1,"/mol/speck":-3,"/mol/mem":-1,"/mol/button/prototype":-1},"mol/speck":{"..":-9007199254740991,"/mol/style/attach":0,"./speck.view.tree":0,"/mol/speck":0,"/mol/layer/speck":-1,"/mol/view":-1,"/mol/theme/accent":-3,"/mol/speck/-view.tree/speck.view.tree.js":0},"mol/speck/speck.view.tree":{"/mol/speck/-view.tree/speck.view.tree.js":0},"mol/speck/-view.tree/speck.view.tree.js":{"/mol/speck":-1,"/mol/view":-1,"/mol/theme/accent":-3},"mol/button/minor/minor.view.tree":{"/mol/button/minor/-view.tree/minor.view.tree.js":0},"mol/button/minor/-view.tree/minor.view.tree.js":{"/mol/button/minor":-1,"/mol/button/typed":-1},"mol/button/typed":{"..":-9007199254740991,"/mol/style/attach":0,"./typed.view.tree":0,"/mol/button/typed":0,"/mol/gap/text":-1,"/mol/gap/round":-1,"/mol/gap/space":-1,"/mol/theme/hover":-1,"/mol/theme/focus":-1,"/mol/button":-1,"/mol/button/typed/-view.tree/typed.view.tree.js":0},"mol/button/typed/typed.view.tree":{"/mol/button/typed/-view.tree/typed.view.tree.js":0},"mol/button/typed/-view.tree/typed.view.tree.js":{"/mol/button/typed":-1,"/mol/button":-1},"mol/list":{"..":-9007199254740991,"./list.view.tree":0,"/mol/list":0,"/mol/mem":-1,"/mol/support/css/overflow/anchor":-3,"/mol/print/active":-3,"/mol/mem/cached":-3,"/mol/window/size":-3,"/mol/fail/log":-5,"/mol/view":-1,"/mol/style/attach":0,"/mol/list/gap/before":0,"/mol/list/gap/after":0,"/mol/list/prototype":-1,"/mol/type/enforce":-1,"/mol/list/-view.tree/list.view.tree.js":0},"mol/list/list.view.tree":{"/mol/list/-view.tree/list.view.tree.js":0},"mol/list/-view.tree/list.view.tree.js":{"/mol/list":-1,"/mol/view":-1,"/mol/mem":-1,"/mol/list/prototype":-1},"mol/support/css":{"..":-9007199254740991,"/mol/support/css/overflow/anchor":-1,"/mol/dom/context":-3},"mol/support":{"..":-9007199254740991},"mol/dimmer":{"..":-9007199254740991,"./dimmer.view.tree":0,"/mol/dimmer":0,"/mol/mem":-2,"/mol/regexp/from":-3,"/mol/view":-2,"/mol/style/attach":0,"/mol/dimmer/low":0,"/mol/dimmer/high":0,"/mol/theme/focus":-1,"/mol/paragraph":-1,"/mol/mem/key":-1,"/mol/dimmer/prototype":-1,"/mol/type/enforce":-1,"/mol/view/content":-2,"/mol/dimmer/-view.tree/dimmer.view.tree.js":0},"mol/dimmer/dimmer.view.tree":{"/mol/dimmer/-view.tree/dimmer.view.tree.js":0},"mol/dimmer/-view.tree/dimmer.view.tree.js":{"/mol/dimmer":-1,"/mol/paragraph":-1,"/mol/mem/key":-1,"/mol/dimmer/prototype":-1},"mol/paragraph":{"..":-9007199254740991,"./paragraph.view.tree":0,"/mol/paragraph":0,"/mol/mem":-2,"/mol/view":-1,"/mol/window/size":-3,"/mol/style/attach":0,"/mol/paragraph/-view.tree/paragraph.view.tree.js":0},"mol/paragraph/paragraph.view.tree":{"/mol/paragraph/-view.tree/paragraph.view.tree.js":0},"mol/paragraph/-view.tree/paragraph.view.tree.js":{"/mol/paragraph":-1,"/mol/view":-1},"mol/regexp":{"..":-9007199254740991,"/mol/regexp/source":-1,"/mol/regexp/groups":-1,"/mol/type/merge":-2,"/mol/type/intersect":-2,"/mol/type/override":-2,"/mol/regexp":-1,"/mol/regexp/from":-2,"/mol/fail":-4,"/mol/regexp/repeat/greedy":-3,"/mol/regexp/optional":-5,"/mol/unicode/category":-2},"mol/type/merge":{"..":-9007199254740991,"/mol/type/merge":-1,"/mol/type/merge/object":-1,"/mol/type/equals":-3},"mol/type/equals":{"..":-9007199254740991,"/mol/type/equals":-1},"mol/type/intersect":{"..":-9007199254740991,"/mol/type/intersect":-1},"mol/unicode":{"..":-9007199254740991,"/mol/unicode/category":-1,"/mol/unicode/category/binary":-1,"/mol/char/category/general":-1,"/mol/unicode/category/script":-1},"mol/link":{"..":-9007199254740991,"./link.view.tree":0,"/mol/link":-1,"/mol/mem":-1,"/mol/state/arg":-3,"/mol/state/arg/href":-3,"/mol/state/arg/href/normal":-3,"/mol/state/arg/value":-4,"/mol/dom/context/location/origin":-3,"/mol/fail/log":-4,"/mol/view":-1,"/mol/link/prototype":-1,"/mol/view/content":-2,"/mol/link/-view.tree/link.view.tree.js":0,"/mol/style/unit":-1,"/mol/style/define":-1,"/mol/theme/control":-2,"/mol/gap/text":-2,"/mol/gap/space":-2,"/mol/gap/round":-3,"/mol/theme/hover":-4,"/mol/theme/focus":-3,"/mol/theme/current":-5},"mol/link/link.view.tree":{"/mol/link/-view.tree/link.view.tree.js":0},"mol/link/-view.tree/link.view.tree.js":{"/mol/link":-1,"/mol/view":-1,"/mol/mem":-1,"/mol/link/prototype":-1},"mol/state/arg":{"..":-9007199254740991,"./arg.ts":0,"/mol/state/arg":-1,"/mol/object":-1,"/mol/mem":-2,"/mol/mem/key":-2,"/mol/action":-2},"mol/state/arg/arg.ts":{},"mol/page":{"..":-9007199254740991,"/mol/page":-1,"/mol/view":-1,"/mol/scroll":-1,"/mol/mem":-1,"/mol/page/prototype":-1,"/mol/type/enforce":-1,"/mol/page/body/scroll/top":-1,"/mol/view/content":-2,"/mol/page/-view.tree/page.view.tree.js":0,"/mol/style/unit":-1,"/mol/style/func":-1,"/mol/style/define":-1,"/mol/theme/text":-2,"/mol/gap/block":-3,"/mol/theme/card":-4,"/mol/gap/round":-4,"/mol/gap/text":-3},"mol/page/-view.tree/page.view.tree.js":{"/mol/page":-1,"/mol/view":-1,"/mol/scroll":-3,"/mol/mem":-1,"/mol/page/prototype":-1},"mol/match":{"..":-9007199254740991,"/mol/match/text":-1},"mol/icon/plus":{"..":-9007199254740991,"/mol/icon/plus":-1,"/mol/icon":-1,"/mol/icon/plus/-view.tree/plus.view.tree.js":0},"mol/icon/plus/-view.tree/plus.view.tree.js":{"/mol/icon/plus":-1,"/mol/icon":-1},"hyoo/survey/meet":{"..":-9007199254740991,"/hyoo/survey/meet":-1,"/hyoo/crus/entity/with":-1,"/hyoo/crus/dict/to":-2,"/hyoo/crus/atom/ref/to":-2,"/hyoo/survey/meet/opinion":-1,"/mol/mem":-2,"/hyoo/crus/rank/public":-3,"/hyoo/crus/atom/str":-2,"/hyoo/crus/atom/bool":-2},"hyoo/crus/entity":{"..":-9007199254740991,"/hyoo/crus/entity":-1,"/hyoo/crus/dict/with":-1,"/hyoo/crus/atom/str":-2},"hyoo/crus":{"..":-9007199254740991},"hyoo/crus/dict":{"..":-9007199254740991,"/hyoo/crus/dict":-1,"/hyoo/crus/list/vary":-2,"/hyoo/crus/gist/tag":-2,"/hyoo/crus/gist/tag/keys":-2,"/mol/mem":-2,"/hyoo/crus/vary/type":-2,"/hyoo/crus/node":-2,"/mol/type/override":-4,"/mol/dev/format/head":-2,"/mol/wire/probe":-3,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/dev/format/auto":-4,"/mol/dev/format/tr":-3,"/mol/dev/format/td":-4,"/hyoo/crus/dict/to":-1},"hyoo/crus/list":{"..":-9007199254740991,"/hyoo/crus/list/vary":-1,"/hyoo/crus/node":-1,"/hyoo/crus/gist/tag":-2,"/hyoo/crus/gist/tag/vals":-2,"/mol/mem":-2,"/hyoo/crus/vary/type":-2,"/mol/reconcile":-3,"/mol/compare/deep":-4,"/hyoo/crus/area/of":-4,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/dev/format/auto":-4,"/hyoo/crus/list":-1,"/mol/data/value":-2,"/hyoo/crus/list/bin":-1,"/hyoo/crus/vary/cast/bin":-1,"/hyoo/crus/list/bool":-1,"/hyoo/crus/vary/cast/bool":-1,"/hyoo/crus/list/int":-1,"/hyoo/crus/vary/cast/int":-1,"/hyoo/crus/list/real":-1,"/hyoo/crus/vary/cast/real":-1,"/hyoo/crus/list/ref":-1,"/hyoo/crus/vary/cast/ref":-1,"/hyoo/crus/list/str":-1,"/hyoo/crus/vary/cast/str":-1,"/hyoo/crus/list/time":-1,"/hyoo/crus/vary/cast/time":-1,"/hyoo/crus/list/dur":-1,"/hyoo/crus/vary/cast/dur":-1,"/hyoo/crus/list/range":-1,"/hyoo/crus/vary/cast/range":-1,"/hyoo/crus/list/json":-1,"/hyoo/crus/vary/cast/json":-1,"/hyoo/crus/list/jsan":-1,"/hyoo/crus/vary/cast/jsan":-1,"/hyoo/crus/list/dom":-1,"/hyoo/crus/vary/cast/dom":-1,"/hyoo/crus/list/tree":-1,"/hyoo/crus/vary/cast/tree":-1,"/hyoo/crus/list/ref/base":-1,"/hyoo/crus/list/ref/to":-1,"/mol/type/result":-2,"/hyoo/crus/list/to":-4,"/mol/guard/defined":-5,"/mol/action":-3,"/hyoo/crus/rank/preset":-3},"hyoo/crus/node":{"..":-9007199254740991,"/hyoo/crus/node":-1,"/mol/object":-1,"/hyoo/crus/gist/tag":-2,"/hyoo/crus/gist/tag/vals":-2,"/hyoo/crus/land":-3,"/hyoo/crus/auth/current":-3,"/mol/memo/method":-2,"/hyoo/crus/ref":-3,"/mol/mem/key":-2,"/hyoo/crus/atom/vary":-4,"/hyoo/crus/list/vary":-4,"/hyoo/crus/dict":-4,"/mol/mem":-2,"/hyoo/crus/rank/add":-3,"/hyoo/crus/gist":-3,"/mol/time/moment":-3,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4},"hyoo/crus/gist":{"..":-9007199254740991,"/hyoo/crus/gist/tag":-1,"/hyoo/crus/gist":-1,"/hyoo/crus/unit":-1,"/hyoo/crus/vary/type":-2,"/hyoo/crus/vary/tip":-3,"/mol/fail":-3,"/mol/crypto/hash":-3,"/mol/buffer":-3,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/dev/format/shade":-4,"/mol/dev/format/accent":-4,"/mol/time/moment":-4},"hyoo/crus/unit":{"..":-9007199254740991,"/hyoo/crus/unit/kind":-1,"/hyoo/crus/part/pass":-2,"/hyoo/crus/part/gift":-2,"/hyoo/crus/part/gist":-2,"/hyoo/crus/unit":-1,"/mol/buffer":-1,"/hyoo/crus/unit/size":-3,"/mol/fail":-3,"/hyoo/crus/pass":-3,"/hyoo/crus/gift":-3,"/hyoo/crus/gist":-3,"/mol/base64/ae/encode":-4,"/mol/base64/ae/decode":-4,"/hyoo/crus/ref":-2,"/hyoo/crus/ref/decode":-4,"/hyoo/crus/ref/encode":-4,"/hyoo/crus/land":-2},"hyoo/crus/part":{"..":-9007199254740991,"/hyoo/crus/part":-1},"mol/buffer":{"..":-9007199254740991,"/mol/buffer":-1,"/mol/base64/ae/decode":-3,"/mol/func/name":-3,"/mol/fail":-3,"/mol/base64/ae/encode":-3},"mol/base64/ae":{"..":-9007199254740991,"/mol/base64/ae/encode":-1,"/mol/base64/encode":-2,"/mol/base64/ae/decode":-1,"/mol/base64/decode":-2},"mol/base64":{"..":-9007199254740991},"mol/base64/encode":{"..":-9007199254740991,"/mol/base64/encode":-1,"./encode.ts":0,"/mol/base64/encode/node":-1},"mol/base64/encode/encode.ts":{"/mol/base64/encode":-1},"mol/base64/decode":{"..":-9007199254740991,"/mol/base64/decode":-1,"./decode.ts":0,"/mol/base64/decode/node":-1},"mol/base64/decode/decode.ts":{"/mol/base64/decode":-1},"hyoo/crus/pass":{"..":-9007199254740991,"/hyoo/crus/pass":-1,"/hyoo/crus/unit":-1,"/hyoo/crus/ref":-2,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4},"hyoo/crus/ref":{"..":-9007199254740991,"/hyoo/crus/ref":-1,"/mol/data/tagged":-1,"/mol/fail":-2,"/hyoo/crus/ref/land":-1,"/hyoo/crus/ref/peer":-1,"/hyoo/crus/ref/head":-1,"/hyoo/crus/ref/encode":-1,"/mol/base64/ae/decode":-2,"/hyoo/crus/ref/decode":-1,"/mol/base64/ae/encode":-3,"/hyoo/crus/ref/relate":-1,"/hyoo/crus/ref/resolve":-1},"mol/data/tagged":{"..":-9007199254740991,"/mol/data/tagged/type":-1,"/mol/data/tagged/parser":-1,"/mol/data/tagged":-1,"/mol/data/value":-2},"mol/data":{"..":-9007199254740991},"mol/data/value":{"..":-9007199254740991,"/mol/data/value":-1},"hyoo/crus/gift":{"..":-9007199254740991,"/hyoo/crus/gift":-1,"/hyoo/crus/unit":-1,"/hyoo/crus/rank":-2,"/hyoo/crus/unit/kind/gift":-3,"/hyoo/crus/rank/nil":-3,"/hyoo/crus/rank/law":-3,"/mol/fail":-4,"/hyoo/crus/ref":-2,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/dev/format/shade":-4,"/mol/time/moment":-4},"hyoo/crus/rank":{"..":-9007199254740991,"/hyoo/crus/rank":-1,"/hyoo/crus/rank/preset":-1,"/hyoo/crus/rank/private":-1,"/hyoo/crus/rank/public":-1,"/hyoo/crus/rank/get":-1,"/hyoo/crus/rank/lobby":-1,"/hyoo/crus/rank/add":-1,"/hyoo/crus/rank/orgy":-1,"/hyoo/crus/rank/mod":-1},"mol/time/moment":{"..":-9007199254740991,"/mol/time/moment/weekdays":-1,"/mol/time/moment/config":-1,"/mol/time/duration/config":-2,"/mol/fail":-2,"/mol/time/moment":-1,"/mol/time/base":-1,"/mol/time/duration":-2,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/dev/format/accent":-4,"/mol/time/moment/patterns":-4},"mol/time":{"..":-9007199254740991},"mol/time/duration":{"..":-9007199254740991,"/mol/time/duration/config":-1,"/mol/time/duration":-1,"/mol/time/base":-1,"/mol/time/moment":-3,"/mol/time/moment/patterns":-4},"mol/time/base":{"..":-9007199254740991,"/mol/time/base":-1},"hyoo/crus/land":{"..":-9007199254740991,"/hyoo/crus/land":-1,"/mol/object":-1,"/hyoo/crus/realm":-3,"/hyoo/crus/auth/current":-3,"/hyoo/crus/face/map":-2,"/mol/wire/dict":-2,"/hyoo/crus/pass":-2,"/hyoo/crus/ref":-2,"/hyoo/crus/gift":-2,"/hyoo/crus/gist":-2,"/mol/wire/set":-2,"/mol/action":-2,"/hyoo/crus/area":-2,"/hyoo/crus/rank/add":-3,"/hyoo/crus/area/to":-3,"/hyoo/crus/rank/nil":-3,"/mol/fail":-3,"/mol/base64/ae/encode":-4,"/hyoo/crus/home":-3,"/mol/mem/key":-2,"/hyoo/crus/node":-2,"/mol/mem":-2,"/hyoo/crus/meta":-3,"/hyoo/crus/fund":-2,"/mol/const":-5,"/hyoo/crus/ref/peer":-3,"/hyoo/crus/auth/from":-3,"/hyoo/crus/rank":-2,"/hyoo/crus/rank/law":-3,"/hyoo/crus/rank/get":-3,"/hyoo/crus/unit":-2,"/hyoo/crus/pack/make":-3,"/hyoo/crus/mine/rock":-3,"/mol/wire/sync":-3,"/hyoo/crus/ref/encode":-3,"/mol/crypto/key/public/from":-3,"/hyoo/crus/gift/compare":-6,"/hyoo/crus/gist/compare":-4,"/hyoo/crus/area/of":-3,"/hyoo/crus/rank/mod":-7,"/hyoo/crus/rank/public":-2,"/hyoo/crus/vary/cast/ref":-5,"/mol/guard/defined":-5,"/hyoo/crus/auth":-3,"/hyoo/crus/vary/type":-2,"/hyoo/crus/gist/tag":-3,"/hyoo/crus/ref/relate":-3,"/hyoo/crus/vary/encode":-3,"/mol/crypto/hash":-4,"/hyoo/crus/mine/hash":-4,"/mol/fail/log":-4,"/mol/bus":-3,"/mol/wire/async":-4,"/mol/wire/solid":-3,"/mol/log3/rise":-3,"/mol/log3/fail":-3,"/mol/wait/timeout":-3,"/mol/wire/race":-3,"/hyoo/crus/mine/save":-3,"/hyoo/crus/ref/resolve":-3,"/hyoo/crus/vary/decode":-3,"/mol/fail/catch":-5,"/mol/fail/hidden":-6,"/mol/crypto/secret":-3,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4.25,"/mol/dev/format/auto":-4},"hyoo/crus/realm":{"..":-9007199254740991,"/hyoo/crus/realm":-1,"/mol/object":-1,"/mol/wire/dict":-2,"/hyoo/crus/ref":-2,"/hyoo/crus/land":-2,"/mol/mem":-2,"/hyoo/crus/yard/make":-3,"/mol/const":-3,"/hyoo/crus/auth/current":-3,"/mol/action":-2,"/hyoo/crus/rank/public":-2,"/hyoo/crus/auth/grab":-3,"/mol/wire/sync":-3,"/hyoo/crus/rank/nil":-3,"/hyoo/crus/rank/law":-3,"/hyoo/crus/auth/from":-3,"/mol/mem/key":-2,"/hyoo/crus/land/make":-3,"/hyoo/crus/node":-2,"/hyoo/crus/ref/land":-3,"/hyoo/crus/ref/head":-3,"/hyoo/crus/pack":-2,"/mol/log3/warn":-4,"/hyoo/crus/mine/save":-4},"mol/wire/dict":{"..":-9007199254740991,"/mol/wire/dict":-1,"/mol/wire/pub":-2},"hyoo/crus/yard":{"..":-9007199254740991,"/hyoo/crus/yard":-1,"/mol/object":-1,"/mol/mem":-2,"/hyoo/crus/realm":-3,"/hyoo/crus/unit":-2,"/mol/wire/set":-2,"/hyoo/crus/ref":-2,"/hyoo/crus/land":-2,"/hyoo/crus/yard/masters":-3,"/mol/action":-2,"/hyoo/crus/yard/masters/length":-3,"/mol/wire/probe":-3,"/mol/dom/context":-3,"/mol/rest/port/ws/std/make":-3,"/mol/wire/async":-5,"/mol/log3/fail":-5,"/mol/rest/port":-2,"/mol/log3/come":-5,"/mol/key":-4,"/mol/guard/defined":-4,"/mol/fail/log":-4,"/mol/mem/key":-2,"/mol/wire/sync":-3,"/hyoo/crus/pack":-3,"/mol/log3/rise":-3,"/hyoo/crus/pass":-5,"/hyoo/crus/pack/make":-4,"/hyoo/crus/face/map":-3,"./yard.ts":0,"/hyoo/crus/yard/node":-1,"/mol/file/relative":-3,"/node/fs/write":-4,"/hyoo/crus/unit/size":-3,"/node/fs/ftruncate/sync":-3,"/node/fs/read/file/sync":-3,"/hyoo/crus/pack/from":-3},"mol/wire/set":{"..":-9007199254740991,"/mol/wire/set":-1,"/mol/wire/pub":-2},"mol/rest/port/ws":{"..":-9007199254740991,"/mol/rest/port/ws":-1,"/mol/rest/port":-1,"/mol/rest/port/ws/std":-1,"/mol/action":-2,"/mol/charset/encode":-3,"./ws.ts":0,"/mol/rest/port/ws/node":-1,"/node/stream":-2,"/mol/websocket/frame/make":-3},"mol/rest/port":{"..":-9007199254740991,"/mol/rest/port/mime/hi":-1,"/mol/rest/port/mime":-1,"/mol/rest/port":-1,"/mol/object":-1,"/mol/rest/code":-2,"/mol/action":-2,"/mol/dom/context":-3,"/mol/charset/encode":-3,"/mol/dom/serialize":-3},"mol/rest":{"..":-9007199254740991},"mol/rest/code":{"..":-9007199254740991,"/mol/rest/code":-1},"mol/dom/serialize":{"..":-9007199254740991,"/mol/dom/serialize":-1,"/mol/dom/context":-2},"mol/rest/port/ws/ws.ts":{"/mol/rest/port/ws":-1,"/mol/rest/port":-1},"mol/websocket/frame":{"..":-9007199254740991,"/mol/websocket/frame/op":-1,"/mol/websocket/frame":-1,"/mol/buffer":-1,"/mol/fail":-4,"/mol/websocket/frame/from":-3},"mol/websocket":{"..":-9007199254740991},"mol/guard":{"..":-9007199254740991,"/mol/guard/defined":-1},"hyoo/crus/pack":{"..":-9007199254740991,"/hyoo/crus/pack/parts":-1,"/hyoo/crus/ref":-2,"/hyoo/crus/face/map":-3,"/hyoo/crus/unit":-3,"/hyoo/crus/pack":-1,"/mol/buffer":-1,"/hyoo/crus/part/land":-4,"/hyoo/crus/ref/decode":-7,"/mol/base64/ae/encode":-8,"/hyoo/crus/part/pass":-6,"/mol/fail":-5,"/hyoo/crus/pass":-7,"/hyoo/crus/unit/size":-4,"/hyoo/crus/part/gift":-6,"/hyoo/crus/gift":-7,"/hyoo/crus/part/hash":-6,"/hyoo/crus/part/rock":-4,"/mol/crypto/hash":-8,"/hyoo/crus/part/buck":-6,"/hyoo/crus/gist":-5,"/hyoo/crus/ref/encode":-4,"/mol/base64/ae/decode":-5},"hyoo/crus/face":{"..":-9007199254740991,"/hyoo/crus/face/data":-1,"/hyoo/crus/face/map":-1,"/mol/action":-2,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/dev/format/shade":-4},"mol/crypto/hash":{"..":-9007199254740991,"/mol/crypto/hash":-1},"mol/crypto":{"..":-9007199254740991},"hyoo/crus/yard/yard.ts":{"/hyoo/crus/yard":-1,"/mol/object":-1,"/mol/mem":-2,"/hyoo/crus/realm":-3,"/hyoo/crus/unit":-2,"/mol/wire/set":-2,"/hyoo/crus/ref":-2,"/hyoo/crus/land":-2,"/hyoo/crus/yard/masters":-3,"/mol/action":-2,"/hyoo/crus/yard/masters/length":-3,"/mol/wire/probe":-3,"/mol/dom/context":-3,"/mol/rest/port/ws/std/make":-3,"/mol/wire/async":-5,"/mol/log3/fail":-5,"/mol/rest/port":-2,"/mol/log3/come":-5,"/mol/key":-4,"/mol/guard/defined":-4,"/mol/fail/log":-4,"/mol/mem/key":-2,"/mol/wire/sync":-3,"/hyoo/crus/pack":-3,"/mol/log3/rise":-3,"/hyoo/crus/pass":-5,"/hyoo/crus/pack/make":-4,"/hyoo/crus/face/map":-3},"hyoo/crus/auth":{"..":-9007199254740991,"/hyoo/crus/auth":-1,"/mol/crypto/key/private":-1,"/mol/mem":-2,"/mol/wire/solid":-3,"/mol/state/local/value":-3,"/hyoo/crus/auth/from":-4,"/mol/action":-2,"/mol/wire/sync":-3,"/hyoo/crus/unit/kind/pass":-4,"/mol/fail":-3,"/mol/memo/method":-2,"/hyoo/crus/ref/decode":-3,"/mol/base64/ae/encode":-3,"/mol/mem/key":-2,"/mol/crypto/secret":-3},"mol/crypto/key":{"..":-9007199254740991,"/mol/crypto/key":-1,"/mol/buffer":-1,"/mol/base64/url/decode":-5,"/mol/memo/method":-2,"/mol/base64/url/encode":-3,"/mol/crypto/key/public":-1,"/mol/crypto/native/subtle/import/key":-3,"/mol/crypto/native/subtle/verify":-3,"/mol/crypto/key/private":-1,"/mol/crypto/native/subtle/generate/key":-3,"/mol/crypto/native/subtle/export/key":-3,"/mol/crypto/native/subtle/sign":-3},"mol/base64/url":{"..":-9007199254740991,"/mol/base64/url/encode":-1,"/mol/base64/encode":-2,"/mol/base64/url/decode":-1,"/mol/base64/decode":-2},"mol/crypto/native":{"..":-9007199254740991,"./native.ts":0,"/mol/crypto/native":-1,"/node/crypto/webcrypto":-1},"mol/crypto/secret":{"..":-9007199254740991,"/mol/crypto/secret":-1,"/mol/crypto/native/subtle/generate/key":-4,"/mol/crypto/native/subtle/import/key":-3,"/mol/crypto/native/subtle/derive/key":-3,"/mol/charset/encode":-6,"/mol/crypto/native/subtle/export/key":-3,"/mol/crypto/native/subtle/encrypt":-3,"/mol/crypto/native/subtle/decrypt":-3},"hyoo/crus/mine":{"..":-9007199254740991,"/hyoo/crus/mine":-1,"/mol/object":-1,"/mol/mem/key":-2,"/mol/crypto/hash":-3,"/mol/wire/solid":-3,"/mol/action":-2,"./mine.ts":0,"/hyoo/crus/mine/node":-1,"/mol/mem":-2,"/mol/file/relative":-3,"/mol/base64/ae/encode":-3,"/mol/compare/deep":-3},"hyoo/crus/mine/mine.ts":{"/hyoo/crus/mine":-1,"/mol/object":-1,"/mol/mem/key":-2,"/mol/crypto/hash":-3,"/mol/wire/solid":-3,"/mol/action":-2},"hyoo/crus/area":{"..":-9007199254740991,"/hyoo/crus/area":-1,"/hyoo/crus/area/of":-1,"/mol/base64/ae/decode":-2,"/hyoo/crus/area/to":-1,"/mol/base64/ae/encode":-2},"hyoo/crus/home":{"..":-9007199254740991,"/hyoo/crus/home":-1,"/hyoo/crus/dict/with":-1,"/hyoo/crus/atom/str":-2,"/hyoo/crus/atom/ref/to":-2,"/hyoo/crus/dict":-2,"/hyoo/crus/rank/preset":-3},"hyoo/crus/atom":{"..":-9007199254740991,"/hyoo/crus/atom/vary":-1,"/hyoo/crus/node":-1,"/hyoo/crus/gist/tag":-2,"/hyoo/crus/gist/tag/solo":-2,"/mol/mem":-2,"/hyoo/crus/vary/type":-2,"/mol/compare/deep":-3,"/mol/dev/format/head":-2,"/mol/dev/format/span":-3,"/mol/dev/format/native":-4,"/mol/dev/format/auto":-4,"/hyoo/crus/atom/enum/base":-1,"/hyoo/crus/atom/enum":-1,"/mol/fail":-5,"/hyoo/crus/vary/cast/str":-1,"/hyoo/crus/atom":-1,"/mol/data/value":-2,"/hyoo/crus/atom/bin":-1,"/hyoo/crus/vary/cast/bin":-1,"/hyoo/crus/atom/bool":-1,"/hyoo/crus/vary/cast/bool":-1,"/hyoo/crus/atom/int":-1,"/hyoo/crus/vary/cast/int":-1,"/hyoo/crus/atom/real":-1,"/hyoo/crus/vary/cast/real":-1,"/hyoo/crus/atom/ref":-1,"/hyoo/crus/vary/cast/ref":-1,"/hyoo/crus/atom/str":-1,"/hyoo/crus/atom/time":-1,"/hyoo/crus/vary/cast/time":-1,"/hyoo/crus/atom/dur":-1,"/hyoo/crus/vary/cast/dur":-1,"/hyoo/crus/atom/range":-1,"/hyoo/crus/vary/cast/range":-1,"/hyoo/crus/atom/json":-1,"/hyoo/crus/vary/cast/json":-1,"/hyoo/crus/atom/jsan":-1,"/hyoo/crus/vary/cast/jsan":-1,"/hyoo/crus/atom/dom":-1,"/hyoo/crus/vary/cast/dom":-1,"/hyoo/crus/atom/tree":-1,"/hyoo/crus/vary/cast/tree":-1,"/hyoo/crus/atom/ref/base":-1,"/hyoo/crus/dict":-2,"/hyoo/crus/atom/ref/to":-1,"/hyoo/crus/rank/preset":-3,"/mol/type/result":-3,"/hyoo/crus/ref":-4,"/hyoo/crus/area/of":-4},"hyoo/crus/vary":{"..":-9007199254740991,"/hyoo/crus/vary/type":-1,"/hyoo/crus/ref":-1,"/mol/time/moment":-1,"/mol/time/duration":-1,"/mol/time/interval":-1,"/mol/tree2":-1,"/hyoo/crus/vary/mapping":-1,"/mol/dom/context":-2,"/hyoo/crus/vary/classes":-1,"/hyoo/crus/vary/pack":-1,"/hyoo/crus/vary/tip":-1,"/hyoo/crus/vary/switch":-1,"/mol/type/result":-1,"/mol/time/moment/prototype":-3,"/mol/time/duration/prototype":-3,"/mol/time/interval/prototype":-3,"/mol/tree2/prototype":-3,"/mol/fail":-2,"/hyoo/crus/vary/encode":-1,"/hyoo/crus/ref/encode":-3,"/mol/charset/encode":-3,"/mol/dom/serialize":-3,"/hyoo/crus/vary/decode":-1,"/hyoo/crus/ref/decode":-3,"/mol/charset/decode":-3,"/mol/dom/parse":-3,"/mol/tree2/from/string":-3},"mol/time/interval":{"..":-9007199254740991,"/mol/time/interval/config":-1,"/mol/time/moment/config":-2,"/mol/time/duration/config":-2,"/mol/time/interval":-1,"/mol/time/base":-1,"/mol/time/duration":-2,"/mol/time/moment":-2},"mol/type/result":{"..":-9007199254740991,"/mol/type/result":-1},"mol/dom/parse":{"..":-9007199254740991,"/mol/dom/parse":-1,"/mol/dom/context":-2},"hyoo/crus/vary/cast":{"..":-9007199254740991,"/mol/jsx":0,"/hyoo/crus/vary/cast/bin":-1,"/hyoo/crus/vary/type":-1,"/hyoo/crus/vary/encode":-2,"/hyoo/crus/vary/cast/bool":-1,"/hyoo/crus/vary/switch":-2,"/hyoo/crus/vary/cast/int":-1,"/hyoo/crus/vary/cast/real":-1,"/hyoo/crus/vary/cast/ref":-1,"/hyoo/crus/ref/decode":-3,"/hyoo/crus/ref":-5,"/hyoo/crus/vary/cast/str":-1,"/mol/dom/serialize":-3,"/hyoo/crus/vary/cast/time":-1,"/mol/time/moment":-3,"/hyoo/crus/vary/cast/dur":-1,"/mol/time/duration":-3,"/hyoo/crus/vary/cast/range":-1,"/mol/time/interval":-3,"/hyoo/crus/vary/cast/json":-1,"/hyoo/crus/vary/cast/jsan":-1,"/hyoo/crus/vary/cast/dom":-1,"/mol/base64/ae/encode":-3,"/mol/dom/parse":-5,"/hyoo/crus/vary/cast/tree":-1,"/mol/tree2/bin/from/bytes":-3,"/mol/tree2/struct":-3,"/mol/tree2/from/string":-5,"/mol/tree2/data":-5,"/mol/tree2/from/json":-3,"/mol/tree2/xml/from/dom":-3,"/hyoo/crus/vary/cast/funcs":-1,"/hyoo/crus/vary/cast":-1,"/hyoo/crus/vary/tip":-2},"mol/jsx":{"..":-9007199254740991,"/mol/jsx/prefix":-1,"/mol/jsx/crumbs":-1,"/mol/jsx/booked":-1,"/mol/jsx/document":-1,"/mol/jsx":-1,"/mol/dom/context/document/create/element":-2,"/mol/dom/context/document/create/document/fragment":-2,"/mol/jsx/frag":-1,"/mol/jsx/crumbs/replace":-2,"/mol/jsx/booked/has":-3,"/mol/fail":-4,"/mol/jsx/booked/add":-4,"/mol/jsx/document/get/element/by/id":-2,"/mol/func/name/from":-4,"/mol/jsx/document/create/element":-4,"/mol/jsx/document/create/document/fragment":-4,"/mol/dom/render/children":-2,"/mol/type/partial/deep":-3},"mol/type/partial/deep":{"..":-9007199254740991,"/mol/type/partial/deep":-1},"mol/type/partial":{"..":-9007199254740991},"mol/tree2/bin":{"..":-9007199254740991,"/mol/tree2/bin/to/bytes":-1,"/mol/tree2":-1,"/mol/tree2/bin/from/bytes":-1,"/mol/span/unknown":-2,"/mol/tree2/list":-2,"/mol/tree2/data":-3,"/mol/tree2/bin/from/string":-1},"mol/tree2/xml/from/dom":{"..":-9007199254740991,"/mol/tree2/xml/from/dom":-1,"/mol/tree2":-1,"/mol/tree2/list":-4,"/mol/tree2/struct":-4,"/mol/tree2/data":-4,"/mol/fail":-2},"mol/tree2/xml/from":{"..":-9007199254740991},"mol/tree2/xml":{"..":-9007199254740991},"hyoo/crus/meta":{"..":-9007199254740991,"/hyoo/crus/meta":-1,"/hyoo/crus/dict/with":-1,"/hyoo/crus/list/ref":-2},"hyoo/crus/fund":{"..":-9007199254740991,"/hyoo/crus/fund":-1,"/mol/object":-1,"/mol/mem/key":-2},"mol/bus":{"..":-9007199254740991,"/mol/bus":-1,"/mol/object":-1},"mol/wait/timeout":{"..":-9007199254740991,"/mol/wait/timeout/async":-1,"/mol/promise":-2,"/mol/after/timeout":-2,"/mol/wait/timeout":-1,"/mol/wire/sync":-2},"mol/wait":{"..":-9007199254740991},"mol/promise/promise":{"..":-9007199254740991,"/mol/promise":-1},"mol/wire/race":{"..":-9007199254740991,"/mol/wire/race":-1,"/mol/promise/like":-2,"/mol/fail":-2},"mol/reconcile":{"..":-9007199254740991,"/mol/reconcile":-1,"/mol/fail":-2},"hyoo/survey/meet/form":{"..":-9007199254740991,"./form.view.tree":0,"/hyoo/survey/meet/form":-1,"/mol/mem":-1,"/mol/page":-1,"/mol/textarea":-1,"/mol/form/field":-1,"/mol/text":-1,"/mol/list":-1,"/hyoo/survey/meet":-2,"/mol/string/button":-1,"/hyoo/survey/meet/form/prototype":-1,"/mol/mem/key":-1,"/mol/type/enforce":-1,"/hyoo/survey/meet/form/-view.tree/form.view.tree.js":0,"/mol/style/define":-1,"/mol/theme/card":-4,"/mol/gap/block":-3},"hyoo/survey/meet/form/form.view.tree":{"/hyoo/survey/meet/form/-view.tree/form.view.tree.js":0},"hyoo/survey/meet/form/-view.tree/form.view.tree.js":{"/hyoo/survey/meet/form":-1,"/mol/page":-1,"/mol/textarea":-3,"/mol/form/field":-3,"/mol/text":-3,"/mol/list":-3,"/hyoo/survey/meet":-3,"/mol/string/button":-3,"/mol/mem":-1,"/hyoo/survey/meet/form/prototype":-1,"/mol/mem/key":-1},"mol/textarea":{"..":-9007199254740991,"./textarea.view.tree":0,"/mol/textarea":0,"/mol/keyboard/code":-4,"/mol/mem":-1,"/mol/keyboard/code/tab":-5,"/mol/style/attach":0,"/mol/gap/round":-1,"/mol/textarea/view":0,"/mol/textarea/view/copy":0,"/mol/textarea/clickable":0,"/mol/textarea/edit":0,"/mol/gap/text":-1,"/mol/theme/text":-1,"/mol/textarea/sidebar/showed":0,"/mol/layer/hover":-1,"/mol/layer/focus":-1,"/mol/stack":-1,"/mol/text/code":-1,"/mol/textarea/prototype":-1,"/mol/string":-1,"/mol/type/enforce":-1,"/mol/textarea/-view.tree/textarea.view.tree.js":0},"mol/textarea/textarea.view.tree":{"/mol/textarea/-view.tree/textarea.view.tree.js":0},"mol/textarea/-view.tree/textarea.view.tree.js":{"/mol/textarea":-1,"/mol/stack":-1,"/mol/textarea/edit":-1,"/mol/text/code":-3,"/mol/mem":-1,"/mol/textarea/prototype":-1,"/mol/string":-1},"mol/stack":{"..":-9007199254740991,"/mol/style/attach":0,"./stack.view.tree":0,"/mol/stack":0,"/mol/view":-1,"/mol/stack/-view.tree/stack.view.tree.js":0},"mol/stack/stack.view.tree":{"/mol/stack/-view.tree/stack.view.tree.js":0},"mol/stack/-view.tree/stack.view.tree.js":{"/mol/stack":-1,"/mol/view":-1},"mol/text/code":{"..":-9007199254740991,"./code.view.tree":0,"/mol/text/code":-1,"/mol/support/css/overflow/anchor":-3,"/mol/mem":-1,"/mol/mem/key":-1,"/mol/syntax2/md/code":-3,"/mol/dom/context/document/location/href":-3,"/mol/fail/log":-4,"/mol/stack":-1,"/mol/text/code/row":-1,"/mol/list":-1,"/mol/button/copy":-1,"/mol/locale/text":-3,"/mol/text/code/prototype":-1,"/mol/type/enforce":-1,"/mol/text/code/-view.tree/code.view.tree.js":0,"/mol/style/unit":-1,"/mol/style/define":-1,"/mol/gap/text":-3},"mol/text":{"..":-9007199254740991},"mol/text/code/code.view.tree":{"/mol/text/code/-view.tree/code.view.tree.js":0},"mol/text/code/-view.tree/code.view.tree.js":{"/mol/text/code":-1,"/mol/stack":-1,"/mol/text/code/row":-3,"/mol/list":-3,"/mol/button/copy":-3,"/mol/locale/text":-3,"/mol/mem/key":-1,"/mol/text/code/prototype":-1,"/mol/mem":-1},"mol/text/code/row":{"..":-9007199254740991,"./row.view.tree":0,"/mol/text/code/row":-1,"/mol/syntax2/md/code":-3,"/mol/mem/key":-1,"/mol/view":-1,"/mol/paragraph":-1,"/mol/text/code/token":-1,"/mol/text/code/token/link":-1,"/mol/mem":-1,"/mol/text/code/row/prototype":-1,"/mol/type/enforce":-1,"/mol/text/code/row/-view.tree/row.view.tree.js":0,"/mol/style/unit":-1,"/mol/style/define":-1,"/mol/theme/shade":-3},"mol/text/code/row/row.view.tree":{"/mol/text/code/row/-view.tree/row.view.tree.js":0},"mol/text/code/row/-view.tree/row.view.tree.js":{"/mol/text/code/row":-1,"/mol/paragraph":-1,"/mol/view":-3,"/mol/text/code/token":-3,"/mol/text/code/token/link":-3,"/mol/mem":-1,"/mol/text/code/row/prototype":-1,"/mol/mem/key":-1},"mol/text/code/token":{"..":-9007199254740991,"/mol/text/code/token":-1,"/mol/dimmer":-1,"/mol/text/code/token/link":-1,"/mol/text/code/token/-view.tree/token.view.tree.js":0,"/mol/style/func":-1,"/mol/style/define":-1},"mol/text/code/token/-view.tree/token.view.tree.js":{"/mol/text/code/token":-1,"/mol/dimmer":-1,"/mol/text/code/token/link":-1},"mol/syntax2/md":{"..":-9007199254740991,"/mol/syntax2/md/flow":-1,"/mol/syntax2":-1,"/mol/syntax2/md/line":-1,"/mol/syntax2/md/code":-1},"mol/syntax2":{"..":-9007199254740991,"/mol/syntax2":-1,"/mol/fail":-4},"mol/button/copy":{"..":-9007199254740991,"./copy.view.tree":0,"/mol/button/copy":-1,"/mol/mem":-1,"/mol/html/encode":-3,"/mol/wire/sync":-3,"/mol/dom/context/navigator/clipboard":-3,"/mol/button/minor":-1,"/mol/blob":-1,"/mol/icon/clipboard/outline":-2,"/mol/button/copy/prototype":-1,"/mol/type/enforce":-1,"/mol/button/copy/-view.tree/copy.view.tree.js":0},"mol/button/copy/copy.view.tree":{"/mol/button/copy/-view.tree/copy.view.tree.js":0},"mol/button/copy/-view.tree/copy.view.tree.js":{"/mol/button/copy":-1,"/mol/button/minor":-1,"/mol/blob":-3,"/mol/icon/clipboard/outline":-3,"/mol/mem":-1,"/mol/button/copy/prototype":-1},"mol/blob":{"..":-9007199254740991,"/mol/blob":-1,"/node/buffer":-1,"/mol/dom/context":-1},"mol/icon/clipboard/outline":{"..":-9007199254740991,"/mol/icon/clipboard/outline":-1,"/mol/icon":-1,"/mol/icon/clipboard/outline/-view.tree/outline.view.tree.js":0},"mol/icon/clipboard":{"..":-9007199254740991,"/mol/icon/clipboard":-1,"/mol/icon":-1,"/mol/icon/clipboard/-view.tree/clipboard.view.tree.js":0},"mol/icon/clipboard/-view.tree/clipboard.view.tree.js":{"/mol/icon/clipboard":-1,"/mol/icon":-1},"mol/icon/clipboard/outline/-view.tree/outline.view.tree.js":{"/mol/icon/clipboard/outline":-1,"/mol/icon":-1},"mol/html/encode":{"..":-9007199254740991,"/mol/html/encode":-1},"mol/html":{"..":-9007199254740991},"mol/form/field":{"..":-9007199254740991,"./field.view.tree":0,"/mol/form/field":0,"/mol/mem":-1,"/mol/style/attach":0,"/mol/form/field/bid":0,"/mol/theme/focus":-1,"/mol/form/field/content":0,"/mol/gap/round":-1,"/mol/labeler":-1,"/mol/view":-1,"/mol/form/field/prototype":-1,"/mol/type/enforce":-1,"/mol/form/field/-view.tree/field.view.tree.js":0},"mol/form":{"..":-9007199254740991,"./form.view.tree":0,"/mol/form":0,"/mol/mem":-1,"/mol/form/field":-2,"/mol/keyboard/code/enter":-3,"/mol/style/attach":0,"/mol/gap/block":-1,"/mol/form/body":0,"/mol/list":-1,"/mol/row":-1,"/mol/form/prototype":-1,"/mol/type/enforce":-1,"/mol/view":-2,"/mol/form/-view.tree/form.view.tree.js":0},"mol/form/form.view.tree":{"/mol/form/-view.tree/form.view.tree.js":0},"mol/form/-view.tree/form.view.tree.js":{"/mol/form":-1,"/mol/list":-1,"/mol/row":-3,"/mol/mem":-1,"/mol/form/prototype":-1},"mol/row":{"..":-9007199254740991,"/mol/style/attach":0,"./row.view.tree":0,"/mol/row":0,"/mol/gap/block":-1,"/mol/view":-1,"/mol/row/-view.tree/row.view.tree.js":0},"mol/row/row.view.tree":{"/mol/row/-view.tree/row.view.tree.js":0},"mol/row/-view.tree/row.view.tree.js":{"/mol/row":-1,"/mol/view":-1},"mol/form/field/field.view.tree":{"/mol/form/field/-view.tree/field.view.tree.js":0},"mol/form/field/-view.tree/field.view.tree.js":{"/mol/form/field":-1,"/mol/labeler":-1,"/mol/view":-3,"/mol/mem":-1,"/mol/form/field/prototype":-1},"mol/labeler":{"..":-9007199254740991,"/mol/style/attach":0,"./labeler.view.tree":0,"/mol/labeler":0,"/mol/labeler/label":0,"/mol/theme/shade":-1,"/mol/gap/block":-1,"/mol/labeler/content":0,"/mol/gap/text":-1,"/mol/list":-1,"/mol/view":-1,"/mol/mem":-1,"/mol/labeler/prototype":-1,"/mol/type/enforce":-1,"/mol/view/content":-2,"/mol/labeler/-view.tree/labeler.view.tree.js":0},"mol/labeler/labeler.view.tree":{"/mol/labeler/-view.tree/labeler.view.tree.js":0},"mol/labeler/-view.tree/labeler.view.tree.js":{"/mol/labeler":-1,"/mol/list":-1,"/mol/view":-3,"/mol/mem":-1,"/mol/labeler/prototype":-1},"mol/text/text":{"..":-9007199254740991,"./text.view.tree":0,"/mol/text":0,"/mol/mem":-1,"/mol/syntax2/md/flow/tokenize":-3,"/mol/mem/key":-1,"/mol/dom/context/document/location/href":-3,"/mol/state/arg/separator":-4,"/mol/state/arg/link":-4,"/mol/fail/log":-4,"/mol/syntax2/md/code":-3,"/mol/syntax2/md/line/tokenize":-3,"/mol/after/tick":-4,"/mol/text/header":0,"/mol/style/attach":0,"/mol/gap/round":-1,"/mol/text/paragraph":0,"/mol/gap/text":-1,"/mol/text/span":0,"/mol/text/string":0,"/mol/text/quote":0,"/mol/gap/block":-1,"/mol/theme/card":-1,"/mol/theme/back":-1,"/mol/text/header/link":0,"/mol/text/table/cell":0,"/mol/text/grid/cell":0,"/mol/text/cut":0,"/mol/theme/line":-1,"/mol/text/link/http":0,"/mol/text/link":0,"/mol/text/link/icon":0,"/mol/text/embed":0,"/mol/text/embed/youtube":0,"/mol/text/embed/youtube/image":0,"/mol/text/embed/youtube/frame":0,"/mol/text/embed/object":0,"/mol/text/embed/object/fallback":0,"/mol/text/embed/image":0,"/mol/text/pre":0,"/mol/text/code/line":0,"/mol/text/type":0,"/mol/theme/special":-1,"/mol/theme/shade":-1,"/mol/list":-1,"/mol/paragraph":-1,"/mol/text/list":-1,"/mol/text/code":-1,"/mol/view":-1,"/mol/grid":-1,"/mol/grid/row":-1,"/mol/dimmer":-1,"/mol/text/code/row":-1,"/mol/link/iconed":-1,"/mol/embed/any":-1,"/mol/text/prototype":-1,"/mol/link":-1,"/mol/locale/text":-3,"/mol/text/header/prototype":-1,"/mol/type/enforce":-1,"/mol/text/text/-view.tree/text.view.tree.js":0},"mol/text/text/text.view.tree":{"/mol/text/text/-view.tree/text.view.tree.js":0},"mol/text/text/-view.tree/text.view.tree.js":{"/mol/text":-1,"/mol/list":-1,"/mol/paragraph":-1,"/mol/text/list":-3,"/mol/text/header":-1,"/mol/text/code":-3,"/mol/view":-3,"/mol/grid":-3,"/mol/grid/row":-3,"/mol/dimmer":-3,"/mol/text/span":-1,"/mol/text/code/row":-3,"/mol/link/iconed":-3,"/mol/embed/any":-3,"/mol/mem/key":-1,"/mol/text/prototype":-1,"/mol/link":-3,"/mol/locale/text":-3,"/mol/mem":-1,"/mol/text/header/prototype":-1},"mol/text/list":{"..":-9007199254740991,"/mol/style/attach":0,"./list.view.tree":0,"/mol/text/list":0,"/mol/text/list/item":0,"/mol/text/list/type":0,"/mol/text":-1,"/mol/mem/key":-1,"/mol/text/list/prototype":-1,"/mol/paragraph":-1,"/mol/type/enforce":-1,"/mol/text/list/-view.tree/list.view.tree.js":0},"mol/text/list/list.view.tree":{"/mol/text/list/-view.tree/list.view.tree.js":0},"mol/text/list/-view.tree/list.view.tree.js":{"/mol/text/list":-1,"/mol/text":-1,"/mol/text/list/item":-1,"/mol/mem/key":-1,"/mol/text/list/prototype":-1,"/mol/paragraph":-1},"mol/grid":{"..":-9007199254740991,"./grid.view.tree":0,"/mol/grid/node":-1,"/mol/grid":0,"/mol/mem":-1,"/mol/view":-1,"/mol/mem/key":-1,"/mol/state/session/value":-3,"/mol/style/attach":0,"/mol/grid/gap":0,"/mol/grid/table":0,"/mol/grid/head":0,"/mol/gap/text":-1,"/mol/theme/line":-1,"/mol/grid/row":0,"/mol/grid/col/head":0,"/mol/theme/shade":-1,"/mol/grid/cell/dimmer":0,"/mol/dimmer":-1,"/mol/grid/cell":-1,"/mol/grid/number":-1,"/mol/float":-1,"/mol/check/expand":-1,"/mol/grid/prototype":-1,"/mol/list":-1,"/mol/type/enforce":-1,"/mol/view/content":-2,"/mol/grid/-view.tree/grid.view.tree.js":0},"mol/grid/grid.view.tree":{"/mol/grid/-view.tree/grid.view.tree.js":0},"mol/grid/-view.tree/grid.view.tree.js":{"/mol/grid":-1,"/mol/view":-1,"/mol/grid/table":-1,"/mol/dimmer":-3,"/mol/grid/row":-1,"/mol/grid/cell":-1,"/mol/grid/number":-1,"/mol/float":-3,"/mol/check/expand":-3,"/mol/mem":-1,"/mol/grid/prototype":-1,"/mol/mem/key":-1,"/mol/list":-1},"mol/float":{"..":-9007199254740991,"/mol/style/attach":0,"./float.view.tree":0,"/mol/float":0,"/mol/layer/float":-1,"/mol/theme/card":-1,"/mol/theme/back":-1,"/mol/view":-1,"/mol/float/-view.tree/float.view.tree.js":0},"mol/float/float.view.tree":{"/mol/float/-view.tree/float.view.tree.js":0},"mol/float/-view.tree/float.view.tree.js":{"/mol/float":-1,"/mol/view":-1},"mol/check/expand":{"..":-9007199254740991,"./expand.view.tree":0,"/mol/check/expand":0,"/mol/style/attach":0,"/mol/check/expand/icon":0,"/mol/check/checked":0,"/mol/check/expand/label":0,"/mol/check":-1,"/mol/icon/chevron":-2,"/mol/mem":-1,"/mol/check/expand/prototype":-1,"/mol/check/expand/-view.tree/expand.view.tree.js":0},"mol/check":{"..":-9007199254740991,"/mol/style/attach":0,"/mol/check":0,"/mol/check/title":0,"./check.view.tree":0,"/mol/maybe":-4,"/mol/view/content":-2,"/mol/button/minor":-1,"/mol/view":-1,"/mol/mem":-1,"/mol/check/prototype":-1,"/mol/type/enforce":-1,"/mol/check/-view.tree/check.view.tree.js":0},"mol/check/check.view.tree":{"/mol/check/-view.tree/check.view.tree.js":0},"mol/check/-view.tree/check.view.tree.js":{"/mol/check":-1,"/mol/button/minor":-1,"/mol/view":-3,"/mol/mem":-1,"/mol/check/prototype":-1},"mol/maybe":{"..":-9007199254740991,"/mol/maybe":-1},"mol/check/expand/expand.view.tree":{"/mol/check/expand/-view.tree/expand.view.tree.js":0},"mol/check/expand/-view.tree/expand.view.tree.js":{"/mol/check/expand":-1,"/mol/check":-1,"/mol/icon/chevron":-3,"/mol/mem":-1,"/mol/check/expand/prototype":-1},"mol/icon/chevron":{"..":-9007199254740991,"/mol/icon/chevron":-1,"/mol/icon":-1,"/mol/icon/chevron/-view.tree/chevron.view.tree.js":0},"mol/icon/chevron/-view.tree/chevron.view.tree.js":{"/mol/icon/chevron":-1,"/mol/icon":-1},"mol/state/session":{"..":-9007199254740991,"/mol/state/session":-1,"/mol/object":-1,"/mol/dom/context/session/storage":-4,"/mol/mem/key":-2,"/mol/state/session/value":-3},"mol/link/iconed":{"..":-9007199254740991,"./iconed.view.tree":0,"/mol/link/iconed":0,"/mol/mem":-1,"/mol/state/arg/href":-3,"/mol/style/attach":0,"/mol/theme/dark":-0.25,"/mol/gap/text":-1,"/mol/link/iconed/icon":0,"/mol/theme":0,"/mol/theme/image":-1,"/mol/link":-1,"/mol/image":-1,"/mol/link/iconed/prototype":-1,"/mol/type/enforce":-1,"/mol/link/iconed/-view.tree/iconed.view.tree.js":0},"mol/link/iconed/iconed.view.tree":{"/mol/link/iconed/-view.tree/iconed.view.tree.js":0},"mol/link/iconed/-view.tree/iconed.view.tree.js":{"/mol/link/iconed":-1,"/mol/link":-1,"/mol/image":-3,"/mol/mem":-1,"/mol/link/iconed/prototype":-1},"mol/image":{"..":-9007199254740991,"./image.view.tree":0,"/mol/image":0,"/mol/mem":-1,"/mol/style/attach":0,"/mol/gap/round":-1,"/mol/view":-1,"/mol/image/prototype":-1,"/mol/image/-view.tree/image.view.tree.js":0},"mol/image/image.view.tree":{"/mol/image/-view.tree/image.view.tree.js":0},"mol/image/-view.tree/image.view.tree.js":{"/mol/image":-1,"/mol/view":-1,"/mol/mem":-1,"/mol/image/prototype":-1},"mol/embed/any":{"..":-9007199254740991,"./any.view.tree":0,"/mol/embed/any":-1,"/mol/mem":-1,"/mol/fail/log":-4,"/mol/view":-1,"/mol/image":-1,"/mol/embed/native":-1,"/mol/embed/youtube":-1,"/mol/embed/any/prototype":-1,"/mol/type/enforce":-1,"/mol/embed/any/-view.tree/any.view.tree.js":0},"mol/embed":{"..":-9007199254740991},"mol/embed/any/any.view.tree":{"/mol/embed/any/-view.tree/any.view.tree.js":0},"mol/embed/any/-view.tree/any.view.tree.js":{"/mol/embed/any":-1,"/mol/view":-1,"/mol/image":-3,"/mol/embed/native":-3,"/mol/embed/youtube":-3,"/mol/mem":-1,"/mol/embed/any/prototype":-1},"mol/embed/native":{"..":-9007199254740991,"./native.view.tree":0,"/mol/embed/native":0,"/mol/mem":-1,"/mol/wire/solid":-3,"/mol/wire/sync":-3,"/mol/dom/listener":-3,"/mol/dom/context":-4,"/mol/wire/async":-4,"/mol/wait/timeout":-3,"/mol/style/attach":0,"/mol/gap/round":-1,"/mol/scroll":-1,"/mol/link":-1,"/mol/embed/native/prototype":-1,"/mol/type/enforce":-1,"/mol/embed/native/-view.tree/native.view.tree.js":0},"mol/embed/native/native.view.tree":{"/mol/embed/native/-view.tree/native.view.tree.js":0},"mol/embed/native/-view.tree/native.view.tree.js":{"/mol/embed/native":-1,"/mol/scroll":-1,"/mol/link":-3,"/mol/mem":-1,"/mol/embed/native/prototype":-1},"mol/embed/youtube":{"..":-9007199254740991,"./youtube.view.tree":0,"/mol/embed/youtube":0,"/mol/mem":-1,"/mol/style/attach":0,"/mol/embed/youtube/image":0,"/mol/embed/youtube/hint":0,"/mol/check":-1,"/mol/image":-1,"/mol/icon/youtube":-2,"/mol/frame":-1,"/mol/embed/youtube/prototype":-1,"/mol/type/enforce":-1,"/mol/embed/youtube/-view.tree/youtube.view.tree.js":0},"mol/embed/youtube/youtube.view.tree":{"/mol/embed/youtube/-view.tree/youtube.view.tree.js":0},"mol/embed/youtube/-view.tree/youtube.view.tree.js":{"/mol/embed/youtube":-1,"/mol/check":-1,"/mol/image":-3,"/mol/icon/youtube":-3,"/mol/frame":-3,"/mol/mem":-1,"/mol/embed/youtube/prototype":-1},"mol/icon/youtube":{"..":-9007199254740991,"/mol/icon/youtube":-1,"/mol/icon":-1,"/mol/icon/youtube/-view.tree/youtube.view.tree.js":0},"mol/icon/youtube/-view.tree/youtube.view.tree.js":{"/mol/icon/youtube":-1,"/mol/icon":-1},"mol/frame":{"..":-9007199254740991,"./frame.view.tree":0,"/mol/frame":-1,"/mol/embed/native":-1,"/mol/mem":-1,"/mol/frame/prototype":-1,"/mol/frame/-view.tree/frame.view.tree.js":0,"/mol/style/define":-1,"/mol/style/unit/vh":-2},"mol/frame/frame.view.tree":{"/mol/frame/-view.tree/frame.view.tree.js":0},"mol/frame/-view.tree/frame.view.tree.js":{"/mol/frame":-1,"/mol/embed/native":-1,"/mol/mem":-1,"/mol/frame/prototype":-1},"mol/string/button":{"..":-9007199254740991,"/mol/style/attach":0,"./button.view.tree":0,"/mol/string/button":0,"/mol/theme/control":-1,"/mol/string":-1,"/mol/string/button/-view.tree/button.view.tree.js":0},"mol/string/button/button.view.tree":{"/mol/string/button/-view.tree/button.view.tree.js":0},"mol/string/button/-view.tree/button.view.tree.js":{"/mol/string/button":-1,"/mol/string":-1},"hyoo/survey/person":{"..":-9007199254740991,"/hyoo/survey/person":-1,"/hyoo/crus/entity/with":-1,"/hyoo/crus/list/ref/to":-2,"/hyoo/survey/meet":-2,"/mol/action":-2,"/hyoo/crus/rank/orgy":-3}}} \ No newline at end of file diff --git a/node.js b/node.js new file mode 100644 index 0000000..df32968 --- /dev/null +++ b/node.js @@ -0,0 +1,15032 @@ +#!/usr/bin/env node +"use strict"; +var exports = void 0; + +var $node = $node || {} +void function( module ) { var exports = module.exports = this; function require( id ) { return $node[ id.replace( /^.\// , "../" ) ] }; +; +"use strict"; +Error.stackTraceLimit = 50; +var $; +(function ($) { +})($ || ($ = {})); +module.exports = $; + +; + +$node[ "../mam.ts" ] = $node[ "../mam.ts" ] = module.exports }.call( {} , {} ) +; +"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 $ = ( typeof module === 'object' ) ? ( module['export'+'s'] = globalThis ) : globalThis +$.$$ = $ + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_ambient_ref = Symbol('$mol_ambient_ref'); + function $mol_ambient(overrides) { + return Object.setPrototypeOf(overrides, this || $); + } + $.$mol_ambient = $mol_ambient; +})($ || ($ = {})); + +; +"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), + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_owning_map = new WeakMap(); + function $mol_owning_allow(having) { + try { + if (!having) + return false; + if (typeof having !== 'object' && typeof having !== 'function') + return false; + if (having instanceof $mol_delegate) + return false; + if (typeof having['destructor'] !== 'function') + return false; + return true; + } + catch { + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail(error) { + throw error; + } + $.$mol_fail = $mol_fail; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail_hidden(error) { + throw error; + } + $.$mol_fail_hidden = $mol_fail_hidden; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const named = new WeakSet(); + function $mol_func_name(func) { + let name = func.name; + if (name?.length > 1) + return name; + if (named.has(func)) + return name; + for (let key in this) { + try { + if (this[key] !== func) + continue; + name = key; + Object.defineProperty(func, 'name', { value: name }); + break; + } + catch { } + } + named.add(func); + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_object2 { + static $ = $; + [Symbol.toStringTag]; + [$mol_ambient_ref] = null; + get $() { + if (this[$mol_ambient_ref]) + return this[$mol_ambient_ref]; + const owner = $mol_owning_get(this); + return this[$mol_ambient_ref] = 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) { + const obj = new this; + if (init) + init(obj); + return obj; + } + static [Symbol.toPrimitive]() { + return this.toString(); + } + static toString() { + return this[Symbol.toStringTag] || this.$.$mol_func_name(this); + } + static toJSON() { + return this.toString(); + } + destructor() { } + static destructor() { } + toString() { + return this[Symbol.toStringTag] || this.constructor.name + '<>'; + } + } + $.$mol_object2 = $mol_object2; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + let $$; + (function ($$) { + let $; + })($$ = $_1.$$ || ($_1.$$ = {})); + $_1.$mol_object_field = Symbol('$mol_object_field'); + class $mol_object extends $mol_object2 { + static make(config) { + return super.create(obj => { + for (let key in config) + obj[key] = config[key]; + }); + } + } + $_1.$mol_object = $mol_object; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_window extends $mol_object { + static size() { + return { + width: 1024, + height: 768, + }; + } + } + $.$mol_window = $mol_window; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_wire_cursor; + (function ($mol_wire_cursor) { + $mol_wire_cursor[$mol_wire_cursor["stale"] = -1] = "stale"; + $mol_wire_cursor[$mol_wire_cursor["doubt"] = -2] = "doubt"; + $mol_wire_cursor[$mol_wire_cursor["fresh"] = -3] = "fresh"; + $mol_wire_cursor[$mol_wire_cursor["final"] = -4] = "final"; + })($mol_wire_cursor = $.$mol_wire_cursor || ($.$mol_wire_cursor = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_pub extends Object { + data = []; + static get [Symbol.species]() { + return Array; + } + sub_from = 0; + get sub_list() { + const res = []; + for (let i = this.sub_from; i < this.data.length; i += 2) { + res.push(this.data[i]); + } + return res; + } + get sub_empty() { + return this.sub_from === this.data.length; + } + sub_on(sub, pub_pos) { + const pos = this.data.length; + this.data.push(sub, pub_pos); + return pos; + } + sub_off(sub_pos) { + if (!(sub_pos < this.data.length)) { + $mol_fail(new Error(`Wrong pos ${sub_pos}`)); + } + const end = this.data.length - 2; + if (sub_pos !== end) { + this.peer_move(end, sub_pos); + } + this.data.pop(); + this.data.pop(); + if (this.data.length === this.sub_from) + this.reap(); + } + reap() { } + promote() { + $mol_wire_auto()?.track_next(this); + } + fresh() { } + complete() { } + get incompleted() { + return false; + } + emit(quant = $mol_wire_cursor.stale) { + for (let i = this.sub_from; i < this.data.length; i += 2) { + ; + this.data[i].absorb(quant); + } + } + peer_move(from_pos, to_pos) { + const peer = this.data[from_pos]; + const self_pos = this.data[from_pos + 1]; + this.data[to_pos] = peer; + this.data[to_pos + 1] = self_pos; + peer.peer_repos(self_pos, to_pos); + } + peer_repos(peer_pos, self_pos) { + this.data[peer_pos + 1] = self_pos; + } + } + $.$mol_wire_pub = $mol_wire_pub; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_wire_auto_sub = null; + function $mol_wire_auto(next = $.$mol_wire_auto_sub) { + return $.$mol_wire_auto_sub = next; + } + $.$mol_wire_auto = $mol_wire_auto; + $.$mol_wire_affected = []; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $['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) { + try { + return val[$.$mol_dev_format_head](); + } + catch (error) { + return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), ''); + } + } + if (typeof val === 'function') { + return $mol_dev_format_native(val); + } + if (Symbol.toStringTag in val) { + return $mol_dev_format_native(val); + } + 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'); + 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)); + 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', { + ...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' + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_pub_sub extends $mol_wire_pub { + pub_from = 0; + cursor = $mol_wire_cursor.stale; + get temp() { + return false; + } + get pub_list() { + const res = []; + const max = this.cursor >= 0 ? this.cursor : this.sub_from; + for (let i = this.pub_from; i < max; i += 2) { + if (this.data[i]) + res.push(this.data[i]); + } + return res; + } + track_on() { + this.cursor = this.pub_from; + const sub = $mol_wire_auto(); + $mol_wire_auto(this); + return sub; + } + promote() { + if (this.cursor >= this.pub_from) { + $mol_fail(new Error('Circular subscription')); + } + super.promote(); + } + track_next(pub) { + if (this.cursor < 0) + $mol_fail(new Error('Promo to non begun sub')); + if (this.cursor < this.sub_from) { + const next = this.data[this.cursor]; + if (pub === undefined) + return next ?? null; + if (next === pub) { + this.cursor += 2; + return next; + } + if (next) { + if (this.sub_from < this.data.length) { + this.peer_move(this.sub_from, this.data.length); + } + this.peer_move(this.cursor, this.sub_from); + this.sub_from += 2; + } + } + else { + if (pub === undefined) + return null; + if (this.sub_from < this.data.length) { + this.peer_move(this.sub_from, this.data.length); + } + this.sub_from += 2; + } + this.data[this.cursor] = pub; + this.data[this.cursor + 1] = pub.sub_on(this, this.cursor); + this.cursor += 2; + return pub; + } + track_off(sub) { + $mol_wire_auto(sub); + if (this.cursor < 0) { + $mol_fail(new Error('End of non begun sub')); + } + for (let cursor = this.pub_from; cursor < this.cursor; cursor += 2) { + const pub = this.data[cursor]; + pub.fresh(); + } + this.cursor = $mol_wire_cursor.fresh; + } + pub_off(sub_pos) { + this.data[sub_pos] = undefined; + this.data[sub_pos + 1] = undefined; + } + destructor() { + for (let cursor = this.data.length - 2; cursor >= this.sub_from; cursor -= 2) { + const sub = this.data[cursor]; + const pos = this.data[cursor + 1]; + sub.pub_off(pos); + this.data.pop(); + this.data.pop(); + } + this.cursor = this.pub_from; + this.track_cut(); + this.cursor = $mol_wire_cursor.final; + } + track_cut() { + if (this.cursor < this.pub_from) { + $mol_fail(new Error('Cut of non begun sub')); + } + let tail = 0; + for (let cursor = this.cursor; cursor < this.sub_from; cursor += 2) { + const pub = this.data[cursor]; + pub?.sub_off(this.data[cursor + 1]); + if (this.sub_from < this.data.length) { + this.peer_move(this.data.length - 2, cursor); + this.data.pop(); + this.data.pop(); + } + else { + ++tail; + } + } + for (; tail; --tail) { + this.data.pop(); + this.data.pop(); + } + this.sub_from = this.cursor; + } + complete() { } + complete_pubs() { + const limit = this.cursor < 0 ? this.sub_from : this.cursor; + for (let cursor = this.pub_from; cursor < limit; cursor += 2) { + const pub = this.data[cursor]; + if (pub?.incompleted) + return; + } + for (let cursor = this.pub_from; cursor < limit; cursor += 2) { + const pub = this.data[cursor]; + pub?.complete(); + } + } + absorb(quant = $mol_wire_cursor.stale) { + if (this.cursor === $mol_wire_cursor.final) + return; + if (this.cursor >= quant) + return; + this.cursor = quant; + this.emit($mol_wire_cursor.doubt); + } + [$mol_dev_format_head]() { + return $mol_dev_format_native(this); + } + get pub_empty() { + return this.sub_from === this.pub_from; + } + } + $.$mol_wire_pub_sub = $mol_wire_pub_sub; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_timeout extends $mol_object2 { + delay; + task; + id; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_frame extends $mol_after_timeout { + task; + constructor(task) { + super(16, task); + this.task = task; + } + } + $.$mol_after_frame = $mol_after_frame; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_promise_like(val) { + return val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'; + } + $.$mol_promise_like = $mol_promise_like; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const handled = new WeakSet(); + class $mol_wire_fiber extends $mol_wire_pub_sub { + task; + host; + static warm = true; + static planning = new Set(); + static reaping = new Set(); + static plan_task = null; + static plan() { + if (this.plan_task) + return; + this.plan_task = new $mol_after_frame(() => { + try { + this.sync(); + } + finally { + $mol_wire_fiber.plan_task = null; + } + }); + } + static sync() { + while (this.planning.size) { + for (const fiber of this.planning) { + this.planning.delete(fiber); + if (fiber.cursor >= 0) + continue; + if (fiber.cursor === $mol_wire_cursor.final) + continue; + fiber.fresh(); + } + } + while (this.reaping.size) { + const fibers = this.reaping; + this.reaping = new Set; + for (const fiber of fibers) { + if (!fiber.sub_empty) + continue; + fiber.destructor(); + } + } + } + [Symbol.toStringTag]; + cache = undefined; + get args() { + return this.data.slice(0, this.pub_from); + } + result() { + if ($mol_promise_like(this.cache)) + return; + if (this.cache instanceof Error) + return; + return this.cache; + } + get incompleted() { + return $mol_promise_like(this.cache); + } + field() { + return this.task.name + '<>'; + } + constructor(id, task, host, args) { + super(); + this.task = task; + this.host = host; + if (args) + this.data.push(...args); + this.pub_from = this.sub_from = args?.length ?? 0; + this[Symbol.toStringTag] = id; + } + plan() { + $mol_wire_fiber.planning.add(this); + $mol_wire_fiber.plan(); + } + reap() { + $mol_wire_fiber.reaping.add(this); + $mol_wire_fiber.plan(); + } + toString() { + return this[Symbol.toStringTag]; + } + toJSON() { + return this[Symbol.toStringTag]; + } + [$mol_dev_format_head]() { + const cursor = { + [$mol_wire_cursor.stale]: '🔴', + [$mol_wire_cursor.doubt]: '🟡', + [$mol_wire_cursor.fresh]: '🟢', + [$mol_wire_cursor.final]: '🔵', + }[this.cursor] ?? this.cursor.toString(); + return $mol_dev_format_div({}, $mol_owning_check(this, this.cache) + ? $mol_dev_format_auto({ + [$mol_dev_format_head]: () => $mol_dev_format_shade(cursor), + [$mol_dev_format_body]: () => $mol_dev_format_native(this), + }) + : $mol_dev_format_shade($mol_dev_format_native(this), cursor), $mol_dev_format_auto(this.cache)); + } + get $() { + return (this.host ?? this.task)['$']; + } + emit(quant = $mol_wire_cursor.stale) { + if (this.sub_empty) + this.plan(); + else + super.emit(quant); + } + fresh() { + if (this.cursor === $mol_wire_cursor.fresh) + return; + if (this.cursor === $mol_wire_cursor.final) + return; + check: if (this.cursor === $mol_wire_cursor.doubt) { + for (let i = this.pub_from; i < this.sub_from; i += 2) { + ; + this.data[i]?.fresh(); + if (this.cursor !== $mol_wire_cursor.doubt) + break check; + } + this.cursor = $mol_wire_cursor.fresh; + return; + } + const bu = this.track_on(); + let result; + try { + switch (this.pub_from) { + case 0: + result = this.task.call(this.host); + break; + case 1: + result = this.task.call(this.host, this.data[0]); + break; + default: + result = this.task.call(this.host, ...this.args); + break; + } + if ($mol_promise_like(result) && !handled.has(result)) { + const put = (res) => { + if (this.cache === result) + this.put(res); + return res; + }; + result = result.then(put, put); + } + } + catch (error) { + if (error instanceof Error || $mol_promise_like(error)) { + result = error; + } + else { + result = new Error(String(error), { cause: error }); + } + if ($mol_promise_like(result) && !handled.has(result)) { + result = result.finally(() => { + if (this.cache === result) + this.absorb(); + }); + } + } + if ($mol_promise_like(result) && !handled.has(result)) { + result = Object.assign(result, { + destructor: result['destructor'] ?? (() => { }) + }); + handled.add(result); + const error = new Error(`Promise in ${this}`); + Object.defineProperty(result, 'stack', { get: () => error.stack }); + } + if (!$mol_promise_like(result)) { + this.track_cut(); + } + this.track_off(bu); + this.put(result); + } + refresh() { + this.cursor = $mol_wire_cursor.stale; + this.fresh(); + } + sync() { + if (!$mol_wire_fiber.warm) { + return this.result(); + } + this.promote(); + this.fresh(); + if (this.cache instanceof Error) { + return $mol_fail_hidden(this.cache); + } + if ($mol_promise_like(this.cache)) { + return $mol_fail_hidden(this.cache); + } + return this.cache; + } + async async() { + while (true) { + this.fresh(); + if (this.cache instanceof Error) { + $mol_fail_hidden(this.cache); + } + if (!$mol_promise_like(this.cache)) + return this.cache; + await Promise.race([this.cache, this.step()]); + if (!$mol_promise_like(this.cache)) + return this.cache; + if (this.cursor === $mol_wire_cursor.final) { + await new Promise(() => { }); + } + } + } + step() { + return new Promise(done => { + const sub = new $mol_wire_pub_sub; + const prev = sub.track_on(); + sub.track_next(this); + sub.track_off(prev); + sub.absorb = () => { + done(null); + sub.destructor(); + }; + }); + } + } + $.$mol_wire_fiber = $mol_wire_fiber; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_guid(length = 8, exists = () => false) { + for (;;) { + let id = Math.random().toString(36).substring(2, length + 2).toUpperCase(); + if (exists(id)) + continue; + return id; + } + } + $.$mol_guid = $mol_guid; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_key_store = new WeakMap(); + function $mol_key(value) { + if (typeof value === 'bigint') + return value.toString() + 'n'; + if (typeof value === 'symbol') + return value.description; + if (!value) + return JSON.stringify(value); + if (typeof value !== 'object' && typeof value !== 'function') + return JSON.stringify(value); + return JSON.stringify(value, (field, value) => { + if (typeof value === 'bigint') + return value.toString() + 'n'; + if (typeof value === 'symbol') + return value.description; + if (!value) + return value; + if (typeof value !== 'object' && typeof value !== 'function') + return value; + if (Array.isArray(value)) + return value; + const proto = Reflect.getPrototypeOf(value); + if (!proto) + return value; + if (Reflect.getPrototypeOf(proto) === null) + return value; + if ('toJSON' in value) + return value; + if (value instanceof RegExp) + return value.toString(); + if (value instanceof Uint8Array) + return [...value]; + let key = $.$mol_key_store.get(value); + if (key) + return key; + key = $mol_guid(); + $.$mol_key_store.set(value, key); + return key; + }); + } + $.$mol_key = $mol_key; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_compare_deep_cache = new WeakMap(); + function $mol_compare_deep(left, right) { + if (Object.is(left, right)) + return true; + if (left === null) + return false; + if (right === null) + return false; + if (typeof left !== 'object') + return false; + if (typeof right !== 'object') + return false; + const left_proto = Reflect.getPrototypeOf(left); + const right_proto = Reflect.getPrototypeOf(right); + if (left_proto !== right_proto) + return false; + if (left instanceof Boolean) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof Number) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof String) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof Date) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof RegExp) + return left.source === right.source && left.flags === right.flags; + if (left instanceof Error) + return left.message === right.message && left.stack === right.stack; + let left_cache = $.$mol_compare_deep_cache.get(left); + if (left_cache) { + const right_cache = left_cache.get(right); + if (typeof right_cache === 'boolean') + return right_cache; + } + else { + left_cache = new WeakMap([[right, true]]); + $.$mol_compare_deep_cache.set(left, left_cache); + } + let result; + try { + if (!left_proto) + result = compare_pojo(left, right); + else if (!Reflect.getPrototypeOf(left_proto)) + result = compare_pojo(left, right); + else if (Symbol.toPrimitive in left) + result = compare_primitive(left, right); + else if (Array.isArray(left)) + result = compare_array(left, right); + else if (left instanceof Set) + result = compare_set(left, right); + else if (left instanceof Map) + result = compare_map(left, right); + else if (ArrayBuffer.isView(left)) + result = compare_buffer(left, right); + else if (Symbol.iterator in left) + result = compare_iterator(left[Symbol.iterator](), right[Symbol.iterator]()); + else + result = false; + } + finally { + left_cache.set(right, result); + } + return result; + } + $.$mol_compare_deep = $mol_compare_deep; + function compare_array(left, right) { + const len = left.length; + if (len !== right.length) + return false; + for (let i = 0; i < len; ++i) { + if (!$mol_compare_deep(left[i], right[i])) + return false; + } + return true; + } + function compare_buffer(left, right) { + const len = left.byteLength; + if (len !== right.byteLength) + return false; + if (left instanceof DataView) + return compare_buffer(new Uint8Array(left.buffer, left.byteOffset, left.byteLength), new Uint8Array(right.buffer, left.byteOffset, left.byteLength)); + for (let i = 0; i < len; ++i) { + if (left[i] !== right[i]) + return false; + } + return true; + } + function compare_iterator(left, right) { + while (true) { + const left_next = left.next(); + const right_next = right.next(); + if (left_next.done !== right_next.done) + return false; + if (left_next.done) + break; + if (!$mol_compare_deep(left_next.value, right_next.value)) + return false; + } + return true; + } + function compare_set(left, right) { + if (left.size !== right.size) + return false; + return compare_iterator(left.values(), right.values()); + } + function compare_map(left, right) { + if (left.size !== right.size) + return false; + return compare_iterator(left.keys(), right.keys()) + && compare_iterator(left.values(), right.values()); + } + function compare_pojo(left, right) { + const left_keys = Object.getOwnPropertyNames(left); + const right_keys = Object.getOwnPropertyNames(right); + if (!compare_array(left_keys, right_keys)) + return false; + for (let key of left_keys) { + if (!$mol_compare_deep(left[key], right[key])) + return false; + } + const left_syms = Object.getOwnPropertySymbols(left); + const right_syms = Object.getOwnPropertySymbols(right); + if (!compare_array(left_syms, right_syms)) + return false; + for (let key of left_syms) { + if (!$mol_compare_deep(left[key], right[key])) + return false; + } + return true; + } + function compare_primitive(left, right) { + return Object.is(left[Symbol.toPrimitive]('default'), right[Symbol.toPrimitive]('default')); + } +})($ || ($ = {})); + +; +"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 = []; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_span extends $mol_object2 { + uri; + source; + row; + col; + length; + constructor(uri, source, row, col, length) { + super(); + this.uri = uri; + this.source = source; + this.row = row; + this.col = col; + this.length = length; + this[Symbol.toStringTag] = `${this.uri}#${this.row}:${this.col}/${this.length}`; + } + static unknown = $mol_span.begin('?'); + static begin(uri, source = '') { + return new $mol_span(uri, source, 1, 1, 0); + } + static end(uri, source) { + return new $mol_span(uri, source, 1, source.length + 1, 0); + } + static entire(uri, source) { + return new $mol_span(uri, source, 1, 1, source.length); + } + toString() { + return this[Symbol.toStringTag]; + } + toJSON() { + return { + uri: this.uri, + row: this.row, + col: this.col, + length: this.length + }; + } + error(message, Class = Error) { + return new Class(`${message} (${this})`); + } + span(row, col, length) { + return new $mol_span(this.uri, this.source, row, col, length); + } + after(length = 0) { + return new $mol_span(this.uri, this.source, this.row, this.col + this.length, length); + } + slice(begin, end = -1) { + let len = this.length; + if (begin < 0) + begin += len; + if (end < 0) + end += len; + if (begin < 0 || begin > len) + this.$.$mol_fail(this.error(`Begin value '${begin}' out of range`, RangeError)); + if (end < 0 || end > len) + this.$.$mol_fail(this.error(`End value '${end}' out of range`, RangeError)); + if (end < begin) + this.$.$mol_fail(this.error(`End value '${end}' can't be less than begin value`, RangeError)); + return this.span(this.row, this.col + begin, end - begin); + } + } + $.$mol_span = $mol_span; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_to_string(tree) { + let output = []; + function dump(tree, prefix = '') { + if (tree.type.length) { + if (!prefix.length) { + prefix = "\t"; + } + output.push(tree.type); + if (tree.kids.length == 1) { + output.push(' '); + dump(tree.kids[0], prefix); + return; + } + output.push("\n"); + } + else if (tree.value.length || prefix.length) { + output.push("\\" + tree.value + "\n"); + } + for (const kid of tree.kids) { + output.push(prefix); + dump(kid, prefix + "\t"); + } + } + dump(tree); + return output.join(''); + } + $.$mol_tree2_to_string = $mol_tree2_to_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_tree2 extends Object { + type; + value; + kids; + span; + constructor(type, value, kids, span) { + super(); + this.type = type; + this.value = value; + this.kids = kids; + this.span = span; + this[Symbol.toStringTag] = type || '\\' + value; + } + static list(kids, span = $mol_span.unknown) { + return new $mol_tree2('', '', kids, span); + } + list(kids) { + return $mol_tree2.list(kids, this.span); + } + static data(value, kids = [], span = $mol_span.unknown) { + const chunks = value.split('\n'); + if (chunks.length > 1) { + let kid_span = span.span(span.row, span.col, 0); + const data = chunks.map(chunk => { + kid_span = kid_span.after(chunk.length); + return new $mol_tree2('', chunk, [], kid_span); + }); + kids = [...data, ...kids]; + value = ''; + } + return new $mol_tree2('', value, kids, span); + } + data(value, kids = []) { + return $mol_tree2.data(value, kids, this.span); + } + static struct(type, kids = [], span = $mol_span.unknown) { + if (/[ \n\t\\]/.test(type)) { + $$.$mol_fail(span.error(`Wrong type ${JSON.stringify(type)}`)); + } + return new $mol_tree2(type, '', kids, span); + } + struct(type, kids = []) { + return $mol_tree2.struct(type, kids, this.span); + } + clone(kids, span = this.span) { + return new $mol_tree2(this.type, this.value, kids, span); + } + text() { + var values = []; + for (var kid of this.kids) { + if (kid.type) + continue; + values.push(kid.value); + } + return this.value + values.join('\n'); + } + static fromString(str, uri = 'unknown') { + return $$.$mol_tree2_from_string(str, uri); + } + toString() { + return $$.$mol_tree2_to_string(this); + } + insert(value, ...path) { + if (path.length === 0) + return value; + const type = path[0]; + if (typeof type === 'string') { + let replaced = false; + const sub = this.kids.map((item, index) => { + if (item.type !== type) + return item; + replaced = true; + return item.insert(value, ...path.slice(1)); + }).filter(Boolean); + if (!replaced && value) { + sub.push(this.struct(type, []).insert(value, ...path.slice(1))); + } + return this.clone(sub); + } + else if (typeof type === 'number') { + const sub = this.kids.slice(); + sub[type] = (sub[type] || this.list([])) + .insert(value, ...path.slice(1)); + return this.clone(sub.filter(Boolean)); + } + else { + const kids = ((this.kids.length === 0) ? [this.list([])] : this.kids) + .map(item => item.insert(value, ...path.slice(1))) + .filter(Boolean); + return this.clone(kids); + } + } + select(...path) { + let next = [this]; + for (const type of path) { + if (!next.length) + break; + const prev = next; + next = []; + for (var item of prev) { + switch (typeof (type)) { + case 'string': + for (var child of item.kids) { + if (child.type == type) { + next.push(child); + } + } + break; + case 'number': + if (type < item.kids.length) + next.push(item.kids[type]); + break; + default: next.push(...item.kids); + } + } + } + return this.list(next); + } + filter(path, value) { + const sub = this.kids.filter(item => { + var found = item.select(...path); + if (value === undefined) { + return Boolean(found.kids.length); + } + else { + return found.kids.some(child => child.value == value); + } + }); + return this.clone(sub); + } + hack_self(belt, context = {}) { + let handle = belt[this.type] || belt['']; + if (!handle || handle === Object.prototype[this.type]) { + handle = (input, belt, context) => [ + input.clone(input.hack(belt, context), context.span) + ]; + } + try { + return handle(this, belt, context); + } + catch (error) { + error.message += `\n${this.clone([])}${this.span}`; + $mol_fail_hidden(error); + } + } + hack(belt, context = {}) { + return [].concat(...this.kids.map(child => child.hack_self(belt, context))); + } + error(message, Class = Error) { + return this.span.error(`${message}\n${this.clone([])}`, Class); + } + } + $.$mol_tree2 = $mol_tree2; + class $mol_tree2_empty extends $mol_tree2 { + constructor() { + super('', '', [], $mol_span.unknown); + } + } + $.$mol_tree2_empty = $mol_tree2_empty; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_error_syntax extends SyntaxError { + reason; + line; + span; + constructor(reason, line, span) { + super(`${reason}\n${span}\n${line.substring(0, span.col - 1).replace(/\S/g, ' ')}${''.padEnd(span.length, '!')}\n${line}`); + this.reason = reason; + this.line = line; + this.span = span; + } + } + $.$mol_error_syntax = $mol_error_syntax; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_from_string(str, uri = '?') { + const span = $mol_span.entire(uri, str); + var root = $mol_tree2.list([], span); + var stack = [root]; + var pos = 0, row = 0, min_indent = 0; + while (str.length > pos) { + var indent = 0; + var line_start = pos; + row++; + while (str.length > pos && str[pos] == '\t') { + indent++; + pos++; + } + if (!root.kids.length) { + min_indent = indent; + } + indent -= min_indent; + if (indent < 0 || indent >= stack.length) { + const sp = span.span(row, 1, pos - line_start); + while (str.length > pos && str[pos] != '\n') { + pos++; + } + if (indent < 0) { + if (str.length > pos) { + this.$mol_fail(new this.$mol_error_syntax(`Too few tabs`, str.substring(line_start, pos), sp)); + } + } + else { + this.$mol_fail(new this.$mol_error_syntax(`Too many tabs`, str.substring(line_start, pos), sp)); + } + } + stack.length = indent + 1; + var parent = stack[indent]; + while (str.length > pos && str[pos] != '\\' && str[pos] != '\n') { + var error_start = pos; + while (str.length > pos && (str[pos] == ' ' || str[pos] == '\t')) { + pos++; + } + if (pos > error_start) { + let line_end = str.indexOf('\n', pos); + if (line_end === -1) + line_end = str.length; + const sp = span.span(row, error_start - line_start + 1, pos - error_start); + this.$mol_fail(new this.$mol_error_syntax(`Wrong nodes separator`, str.substring(line_start, line_end), sp)); + } + var type_start = pos; + while (str.length > pos && + str[pos] != '\\' && + str[pos] != ' ' && + str[pos] != '\t' && + str[pos] != '\n') { + pos++; + } + if (pos > type_start) { + let next = new $mol_tree2(str.slice(type_start, pos), '', [], span.span(row, type_start - line_start + 1, pos - type_start)); + const parent_kids = parent.kids; + parent_kids.push(next); + parent = next; + } + if (str.length > pos && str[pos] == ' ') { + pos++; + } + } + if (str.length > pos && str[pos] == '\\') { + var data_start = pos; + while (str.length > pos && str[pos] != '\n') { + pos++; + } + let next = new $mol_tree2('', str.slice(data_start + 1, pos), [], span.span(row, data_start - line_start + 2, pos - data_start - 1)); + const parent_kids = parent.kids; + parent_kids.push(next); + parent = next; + } + if (str.length === pos && stack.length > 0) { + const sp = span.span(row, pos - line_start + 1, 1); + this.$mol_fail(new this.$mol_error_syntax(`Unexpected EOF, LF required`, str.substring(line_start, str.length), sp)); + } + stack.push(parent); + pos++; + } + return root; + } + $.$mol_tree2_from_string = $mol_tree2_from_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_from_json(json, span = $mol_span.unknown) { + if (typeof json === 'boolean' || typeof json === 'number' || json === null) { + return new $mol_tree2(String(json), '', [], span); + } + if (typeof json === 'string') { + return $mol_tree2.data(json, [], span); + } + if (Array.isArray(json)) { + const sub = json.map(json => $mol_tree2_from_json(json, span)); + return new $mol_tree2('/', '', sub, span); + } + if (ArrayBuffer.isView(json)) { + const buf = new Uint8Array(json.buffer, json.byteOffset, json.byteLength); + return $mol_tree2.data(String.fromCharCode(...buf), [], span); + } + if (json instanceof Date) { + return new $mol_tree2('', json.toISOString(), [], span); + } + if (typeof json.toJSON === 'function') { + return $mol_tree2_from_json(json.toJSON()); + } + if (json.toString !== Object.prototype.toString) { + return $mol_tree2.data(json.toString(), [], span); + } + if (json instanceof Error) { + const { name, message, stack } = json; + json = { ...json, name, message, stack }; + } + const sub = []; + for (var key in json) { + const val = json[key]; + if (val === undefined) + continue; + const subsub = $mol_tree2_from_json(val, span); + if (/^[^\n\t\\ ]+$/.test(key)) { + sub.push(new $mol_tree2(key, '', [subsub], span)); + } + else { + sub.push($mol_tree2.data(key, [subsub], span)); + } + } + return new $mol_tree2('*', '', sub, span); + } + $.$mol_tree2_from_json = $mol_tree2_from_json; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_term_color { + static reset = this.ansi(0, 0); + static bold = this.ansi(1, 22); + static italic = this.ansi(3, 23); + static underline = this.ansi(4, 24); + static inverse = this.ansi(7, 27); + static hidden = this.ansi(8, 28); + static strike = this.ansi(9, 29); + static gray = this.ansi(90, 39); + static red = this.ansi(91, 39); + static green = this.ansi(92, 39); + static yellow = this.ansi(93, 39); + static blue = this.ansi(94, 39); + static magenta = this.ansi(95, 39); + static cyan = this.ansi(96, 39); + static Gray = (str) => this.inverse(this.gray(str)); + static Red = (str) => this.inverse(this.red(str)); + static Green = (str) => this.inverse(this.green(str)); + static Yellow = (str) => this.inverse(this.yellow(str)); + static Blue = (str) => this.inverse(this.blue(str)); + static Magenta = (str) => this.inverse(this.magenta(str)); + static Cyan = (str) => this.inverse(this.cyan(str)); + static ansi(open, close) { + if (typeof process === 'undefined') + return String; + if (!process.stdout.isTTY) + return String; + const prefix = `\x1b[${open}m`; + const postfix = `\x1b[${close}m`; + const suffix_regexp = new RegExp(postfix.replace('[', '\\['), 'g'); + return function colorer(str) { + str = String(str); + if (str === '') + return str; + const suffix = str.replace(suffix_regexp, prefix); + return prefix + suffix + postfix; + }; + } + } + $.$mol_term_color = $mol_term_color; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_log3_node_make(level, output, type, color) { + return function $mol_log3_logger(event) { + if (!event.time) + event = { time: new Date().toISOString(), ...event }; + let tree = this.$mol_tree2_from_json(event); + tree = tree.struct(type, tree.kids); + let str = color(tree.toString()); + this.console[level](str); + const self = this; + return () => self.console.groupEnd(); + }; + } + $.$mol_log3_node_make = $mol_log3_node_make; + $.$mol_log3_come = $mol_log3_node_make('info', 'stdout', 'come', $mol_term_color.blue); + $.$mol_log3_done = $mol_log3_node_make('info', 'stdout', 'done', $mol_term_color.green); + $.$mol_log3_fail = $mol_log3_node_make('error', 'stderr', 'fail', $mol_term_color.red); + $.$mol_log3_warn = $mol_log3_node_make('warn', 'stderr', 'warn', $mol_term_color.yellow); + $.$mol_log3_rise = $mol_log3_node_make('log', 'stdout', 'rise', $mol_term_color.magenta); + $.$mol_log3_area = $mol_log3_node_make('log', 'stdout', 'area', $mol_term_color.cyan); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_task extends $mol_wire_fiber { + static getter(task) { + return function $mol_wire_task_get(host, args) { + const sub = $mol_wire_auto(); + const existen = sub?.track_next(); + reuse: if (existen) { + if (!existen.temp) + break reuse; + if (existen.host !== host) + break reuse; + if (existen.task !== task) + break reuse; + if (!$mol_compare_deep(existen.args, args)) + break reuse; + return existen; + } + const next = new $mol_wire_task(`${host?.[Symbol.toStringTag] ?? host}.${task.name}<#>`, task, host, args); + if (existen?.temp) { + $$.$mol_log3_warn({ + place: '$mol_wire_task', + message: `Non idempotency`, + existen, + next, + hint: 'Ignore it', + }); + } + return next; + }; + } + get temp() { + return true; + } + complete() { + if ($mol_promise_like(this.cache)) + return; + this.destructor(); + } + put(next) { + const prev = this.cache; + this.cache = next; + if ($mol_promise_like(next)) { + this.cursor = $mol_wire_cursor.fresh; + if (next !== prev) + this.emit(); + return next; + } + this.cursor = $mol_wire_cursor.final; + if (this.sub_empty) + this.destructor(); + else if (next !== prev) + this.emit(); + return next; + } + } + $.$mol_wire_task = $mol_wire_task; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_method(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const temp = $mol_wire_task.getter(orig); + const value = function (...args) { + const fiber = temp(this ?? null, args); + return fiber.sync(); + }; + Object.defineProperty(value, 'name', { value: orig.name + ' ' }); + Object.assign(value, { orig }); + const descr2 = { ...descr, value }; + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_method = $mol_wire_method; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const catched = new WeakMap(); + function $mol_fail_catch(error) { + if (typeof error !== 'object') + return false; + if ($mol_promise_like(error)) + $mol_fail_hidden(error); + if (catched.get(error)) + return false; + catched.set(error, true); + return true; + } + $.$mol_fail_catch = $mol_fail_catch; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail_log(error) { + if ($mol_promise_like(error)) + return false; + if (!$mol_fail_catch(error)) + return false; + console.error(error); + return true; + } + $.$mol_fail_log = $mol_fail_log; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_atom extends $mol_wire_fiber { + static solo(host, task) { + const field = task.name + '<>'; + const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value; + if (existen) + return existen; + const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host); + const key = `${prefix}.${field}`; + const fiber = new $mol_wire_atom(key, task, host, []); + (host ?? task)[field] = fiber; + return fiber; + } + static plex(host, task, key) { + const field = task.name + '<>'; + let dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value; + const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host); + const key_str = $mol_key(key); + if (dict) { + const existen = dict.get(key_str); + if (existen) + return existen; + } + else { + dict = (host ?? task)[field] = new Map(); + } + const id = `${prefix}.${task.name}<${key_str.replace(/^"|"$/g, "'")}>`; + const fiber = new $mol_wire_atom(id, task, host, [key]); + dict.set(key_str, fiber); + return fiber; + } + static watching = new Set(); + static watcher = null; + static watch() { + $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch); + for (const atom of $mol_wire_atom.watching) { + if (atom.cursor === $mol_wire_cursor.final) { + $mol_wire_atom.watching.delete(atom); + } + else { + atom.cursor = $mol_wire_cursor.stale; + atom.fresh(); + } + } + } + watch() { + if (!$mol_wire_atom.watcher) { + $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch); + } + $mol_wire_atom.watching.add(this); + } + resync(args) { + return this.put(this.task.call(this.host, ...args)); + } + once() { + return this.sync(); + } + channel() { + return Object.assign((next) => { + if (next !== undefined) + return this.resync([...this.args, next]); + if (!$mol_wire_fiber.warm) + return this.result(); + if ($mol_wire_auto()?.temp) { + return this.once(); + } + else { + return this.sync(); + } + }, { atom: this }); + } + destructor() { + super.destructor(); + const prev = this.cache; + if ($mol_owning_check(this, prev)) { + prev.destructor(); + } + if (this.pub_from === 0) { + ; + (this.host ?? this.task)[this.field()] = null; + } + else { + ; + (this.host ?? this.task)[this.field()].delete($mol_key(this.args[0])); + } + } + put(next) { + const prev = this.cache; + update: if (next !== prev) { + try { + if ($mol_compare_deep(prev, next)) + break update; + } + catch (error) { + $mol_fail_log(error); + } + if ($mol_owning_check(this, prev)) { + prev.destructor(); + } + if ($mol_owning_catch(this, next)) { + try { + next[Symbol.toStringTag] = this[Symbol.toStringTag]; + } + catch { + Object.defineProperty(next, Symbol.toStringTag, { value: this[Symbol.toStringTag] }); + } + } + if (!this.sub_empty) + this.emit(); + } + this.cache = next; + this.cursor = $mol_wire_cursor.fresh; + if ($mol_promise_like(next)) + return next; + this.complete_pubs(); + return next; + } + } + __decorate([ + $mol_wire_method + ], $mol_wire_atom.prototype, "resync", null); + __decorate([ + $mol_wire_method + ], $mol_wire_atom.prototype, "once", null); + $.$mol_wire_atom = $mol_wire_atom; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_solo(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const descr2 = { + ...descr, + value: function (...args) { + let atom = $mol_wire_atom.solo(this, orig); + if ((args.length === 0) || (args[0] === undefined)) { + if (!$mol_wire_fiber.warm) + return atom.result(); + if ($mol_wire_auto()?.temp) { + return atom.once(); + } + else { + return atom.sync(); + } + } + return atom.resync(args); + } + }; + Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' }); + Reflect.defineProperty(descr2.value, 'length', { value: orig.length }); + Object.assign(descr2.value, { orig }); + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_solo = $mol_wire_solo; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_plex(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const descr2 = { + ...descr, + value: function (...args) { + let atom = $mol_wire_atom.plex(this, orig, args[0]); + if ((args.length === 1) || (args[1] === undefined)) { + if (!$mol_wire_fiber.warm) + return atom.result(); + if ($mol_wire_auto()?.temp) { + return atom.once(); + } + else { + return atom.sync(); + } + } + return atom.resync(args); + } + }; + Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' }); + Reflect.defineProperty(descr2.value, 'length', { value: orig.length }); + Object.assign(descr2.value, { orig }); + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_plex = $mol_wire_plex; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem = $mol_wire_solo; + $.$mol_mem_key = $mol_wire_plex; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $node = new Proxy({ require }, { + get(target, name, wrapper) { + if (target[name]) + return target[name]; + const mod = target.require('module'); + if (mod.builtinModules.indexOf(name) >= 0) + return target.require(name); + if (name[0] === '.') + return target.require(name); + const path = target.require('path'); + const fs = target.require('fs'); + let dir = path.resolve('.'); + const suffix = `./node_modules/${name}`; + const $$ = $; + while (!fs.existsSync(path.join(dir, suffix))) { + const parent = path.resolve(dir, '..'); + if (parent === dir) { + $$.$mol_exec('.', 'npm', 'install', '--omit=dev', name); + try { + $$.$mol_exec('.', 'npm', 'install', '--omit=dev', '@types/' + name); + } + catch { } + break; + } + else { + dir = parent; + } + } + try { + return target.require(name); + } + catch (error) { + if (error.code === 'ERR_REQUIRE_ESM') { + const module = cache.get(name); + if (module) + return module; + throw import(name).then(module => cache.set(name, module)); + } + $.$mol_fail_log(error); + return null; + } + }, + set(target, name, value) { + target[name] = value; + return true; + }, +}); +const cache = new Map(); +require = (req => Object.assign(function require(name) { + return $node[name]; +}, req))(require); + +; +"use strict"; +var $; +(function ($) { + function $mol_env() { + return {}; + } + $.$mol_env = $mol_env; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_env = function $mol_env() { + return this.process.env; + }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_exec(dir, command, ...args) { + let [app, ...args0] = command.split(' '); + args = [...args0, ...args]; + this.$mol_log3_come({ + place: '$mol_exec', + dir: $node.path.relative('', dir), + message: 'Run', + command: `${app} ${args.join(' ')}`, + }); + var res = $node['child_process'].spawnSync(app, args, { + cwd: $node.path.resolve(dir), + shell: true, + env: this.$mol_env(), + }); + if (res.status || res.error) { + return $mol_fail(res.error || new Error(res.stderr.toString(), { cause: res.stdout })); + } + if (!res.stdout) + res.stdout = Buffer.from([]); + return res; + } + $.$mol_exec = $mol_exec; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_dom_context = new $node.jsdom.JSDOM('', { url: 'https://localhost/' }).window; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_tick extends $mol_object2 { + task; + promise; + cancelled = false; + constructor(task) { + super(); + this.task = task; + this.promise = Promise.resolve().then(() => { + if (this.cancelled) + return; + task(); + }); + } + destructor() { + this.cancelled = true; + } + } + $.$mol_after_tick = $mol_after_tick; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_view_selection extends $mol_object { + static focused(next, notify) { + const parents = []; + let element = next?.[0] ?? $mol_dom_context.document.activeElement; + while (element) { + parents.push(element); + element = element.parentNode; + } + if (!next || notify) + return parents; + new $mol_after_tick(() => { + const element = this.focused()[0]; + if (element) + element.focus(); + else + $mol_dom_context.blur(); + }); + return parents; + } + } + __decorate([ + $mol_mem + ], $mol_view_selection, "focused", null); + $.$mol_view_selection = $mol_view_selection; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wrapper extends $mol_object2 { + static wrap; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_memo extends $mol_wrapper { + static wrap(task) { + const store = new WeakMap(); + return function (next) { + if (next === undefined && store.has(this)) + return store.get(this); + const val = task.call(this, next) ?? next; + store.set(this, val); + return val; + }; + } + } + $.$mol_memo = $mol_memo; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_qname(name) { + return name.replace(/\W/g, '').replace(/^(?=\d+)/, '_'); + } + $.$mol_dom_qname = $mol_dom_qname; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_probe(task, def) { + const warm = $mol_wire_fiber.warm; + try { + $mol_wire_fiber.warm = false; + const res = task(); + if (res === undefined) + return def; + return res; + } + finally { + $mol_wire_fiber.warm = warm; + } + } + $.$mol_wire_probe = $mol_wire_probe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_watch() { + const atom = $mol_wire_auto(); + if (atom instanceof $mol_wire_atom) { + atom.watch(); + } + else { + $mol_fail(new Error('Atom is required for watching')); + } + } + $.$mol_wire_watch = $mol_wire_watch; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_const(value) { + const getter = (() => value); + getter['()'] = value; + getter[Symbol.toStringTag] = value; + getter[$mol_dev_format_head] = () => $mol_dev_format_span({}, '()=> ', $mol_dev_format_auto(value)); + return getter; + } + $.$mol_const = $mol_const; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_solid() { + let current = $mol_wire_auto(); + if (current.temp) + current = current.host; + if (current.reap !== nothing) { + current?.sub_on(sub, sub.data.length); + } + current.reap = nothing; + } + $.$mol_wire_solid = $mol_wire_solid; + const nothing = () => { }; + const sub = new $mol_wire_pub_sub; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_attributes(el, attrs) { + for (let name in attrs) { + let val = attrs[name]; + if (val === undefined) { + continue; + } + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_events(el, events, passive = false) { + for (let name in events) { + el.addEventListener(name, events[name], { passive }); + } + } + $.$mol_dom_render_events = $mol_dom_render_events; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_styles(el, styles) { + for (let name in styles) { + let val = styles[name]; + const style = el.style; + const kebab = (name) => name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()); + if (typeof val === 'number') { + style.setProperty(kebab(name), `${val}px`); + } + else { + style.setProperty(kebab(name), val); + } + } + } + $.$mol_dom_render_styles = $mol_dom_render_styles; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_async(obj) { + let fiber; + const temp = $mol_wire_task.getter(obj); + return new Proxy(obj, { + get(obj, field) { + const val = obj[field]; + if (typeof val !== 'function') + return val; + let fiber; + const temp = $mol_wire_task.getter(val); + return function $mol_wire_async(...args) { + fiber?.destructor(); + fiber = temp(obj, args); + return fiber.async(); + }; + }, + apply(obj, self, args) { + fiber?.destructor(); + fiber = temp(self, args); + return fiber.async(); + }, + }); + } + $.$mol_wire_async = $mol_wire_async; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + let all = []; + let el = null; + let timer = null; + function $mol_style_attach_force() { + if (all.length) { + el.innerHTML += '\n' + all.join('\n\n'); + all = []; + } + timer = null; + return el; + } + $.$mol_style_attach_force = $mol_style_attach_force; + 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($mol_style_attach_force); + return el; + } + $.$mol_style_attach = $mol_style_attach; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_decor { + value; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_style_unit extends $mol_decor { + literal; + constructor(value, literal) { + super(value); + this.literal = literal; + } + postfix() { + return this.literal; + } + static per(value) { return `${value}%`; } + static px(value) { return `${value}px`; } + static mm(value) { return `${value}mm`; } + static cm(value) { return `${value}cm`; } + static Q(value) { return `${value}Q`; } + static in(value) { return `${value}in`; } + static pc(value) { return `${value}pc`; } + static pt(value) { return `${value}pt`; } + static cap(value) { return `${value}cap`; } + static ch(value) { return `${value}ch`; } + static em(value) { return `${value}em`; } + static rem(value) { return `${value}rem`; } + static ex(value) { return `${value}ex`; } + static ic(value) { return `${value}ic`; } + static lh(value) { return `${value}lh`; } + static rlh(value) { return `${value}rlh`; } + static vh(value) { return `${value}vh`; } + static vw(value) { return `${value}vw`; } + static vi(value) { return `${value}vi`; } + static vb(value) { return `${value}vb`; } + static vmin(value) { return `${value}vmin`; } + static vmax(value) { return `${value}vmax`; } + static deg(value) { return `${value}deg`; } + static rad(value) { return `${value}rad`; } + static grad(value) { return `${value}grad`; } + static turn(value) { return `${value}turn`; } + static s(value) { return `${value}s`; } + static ms(value) { return `${value}ms`; } + } + $.$mol_style_unit = $mol_style_unit; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const { per } = $mol_style_unit; + class $mol_style_func extends $mol_decor { + name; + constructor(name, value) { + super(value); + this.name = name; + } + prefix() { return this.name + '('; } + postfix() { return ')'; } + static linear_gradient(value) { + return new $mol_style_func('linear-gradient', value); + } + static calc(value) { + return new $mol_style_func('calc', value); + } + static vary(name, defaultValue) { + return new $mol_style_func('var', defaultValue ? [name, defaultValue] : 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 clamp(min, mid, max) { + return new $mol_style_func('clamp', [min, mid, max]); + } + static rgba(red, green, blue, alpha) { + return new $mol_style_func('rgba', [red, green, blue, alpha]); + } + static scale(zoom) { + return new $mol_style_func('scale', [zoom]); + } + static linear(...breakpoints) { + return new $mol_style_func("linear", breakpoints.map((e) => Array.isArray(e) + ? String(e[0]) + + " " + + (typeof e[1] === "number" ? e[1] + "%" : e[1].toString()) + : String(e))); + } + static cubic_bezier(x1, y1, x2, y2) { + return new $mol_style_func('cubic-bezier', [x1, y1, x2, y2]); + } + static steps(value, step_position) { + return new $mol_style_func('steps', [value, step_position]); + } + static blur(value) { + return new $mol_style_func('blur', value ?? ""); + } + static brightness(value) { + return new $mol_style_func('brightness', value ?? ""); + } + static contrast(value) { + return new $mol_style_func('contrast', value ?? ""); + } + static drop_shadow(color, x_offset, y_offset, blur_radius) { + return new $mol_style_func("drop-shadow", blur_radius + ? [color, x_offset, y_offset, blur_radius] + : [color, x_offset, y_offset]); + } + static grayscale(value) { + return new $mol_style_func('grayscale', value ?? ""); + } + static hue_rotate(value) { + return new $mol_style_func('hue-rotate', value ?? ""); + } + static invert(value) { + return new $mol_style_func('invert', value ?? ""); + } + static opacity(value) { + return new $mol_style_func('opacity', value ?? ""); + } + static sepia(value) { + return new $mol_style_func('sepia', value ?? ""); + } + static saturate(value) { + return new $mol_style_func('saturate', value ?? ""); + } + } + $.$mol_style_func = $mol_style_func; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_style_prop(prefix, keys) { + const record = keys.reduce((rec, key) => { + rec[key] = $mol_style_func.vary(`--${prefix}_${key}`); + return rec; + }, {}); + return record; + } + $.$mol_style_prop = $mol_style_prop; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_theme = $mol_style_prop('mol_theme', [ + 'back', + 'hover', + 'card', + 'current', + 'special', + 'text', + 'control', + 'shade', + 'line', + 'focus', + 'field', + 'image', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/theme/theme.css", ":root {\n\t--mol_theme_hue: 210deg;\n\t--mol_theme_hue_spread: 90deg;\n}\n\n:where([mol_theme]) {\n\tcolor: var(--mol_theme_text);\n\tfill: var(--mol_theme_text);\n\tbackground-color: var(--mol_theme_back);\n}\n\t\n:root, [mol_theme=\"$mol_theme_dark\"], :where([mol_theme=\"$mol_theme_dark\"]) [mol_theme] {\n\n\t--mol_theme_luma: -1;\n\t--mol_theme_image: invert(1) hue-rotate( 180deg );\n\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\n\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\n\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\n\t\n\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\n\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\n\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\n\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\n\t\n\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\n\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\n\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\n\n\t/* --mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 35% .05 var(--mol_theme_hue) / .25 );\n\t--mol_theme_field: oklch( 0% 0 var(--mol_theme_hue) / .25 );\n\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\n\t\n\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\n\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\n\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .2 );\n\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 120deg ) );\n\t\n\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\n\t--mol_theme_current: oklch( 80% .2 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_special: oklch( 80% .3 calc( var(--mol_theme_hue) + 60deg ) ); */\n\n}\n\n[mol_theme=\"$mol_theme_light\"], :where([mol_theme=\"$mol_theme_light\"]) [mol_theme] {\n\t\n\t--mol_theme_luma: 1;\n\t--mol_theme_image: none;\n\t\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\n\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\n\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\n\t\n\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\n\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\n\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\n\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\n\t\n\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\n\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\n\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\n\t\n\t/* --mol_theme_back: oklch( 93% .01 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 100% .02 var(--mol_theme_hue) / .25 );\n\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\n\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\n\t\n\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\n\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\n\t--mol_theme_line: oklch( 70% 0 var(--mol_theme_hue) / .2 );\n\t--mol_theme_focus: oklch( 20% .8 calc( var(--mol_theme_hue) + 120deg ) );\n\t\n\t--mol_theme_control: oklch( 45% .25 var(--mol_theme_hue) );\n\t--mol_theme_current: oklch( 45% .5 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_special: oklch( 45% .5 calc( var(--mol_theme_hue) + 60deg ) ); */\n\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 30% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 80% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 80%, 95%, .25 );\n\t/* --mol_theme_back: oklch( 95% .02 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 80% .05 var(--mol_theme_hue) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 40% .2 calc( var(--mol_theme_hue) + 120deg ) );\n\t--mol_theme_card: oklch( 50% .3 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 75% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 90%, .25 );\n\t/* --mol_theme_back: oklch( 90% .03 calc( var(--mol_theme_hue) + 120deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_current\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_current\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 92% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\n\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_special\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + 60deg ) );\n\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_special\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 92% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\n\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) + 60deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\n}\n"); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_gap = $mol_style_prop('mol_gap', [ + 'block', + 'text', + 'round', + 'space', + 'blur', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/gap/gap.css", ":root {\n\t--mol_gap_block: .75rem;\n\t--mol_gap_text: .5rem .75rem;\n\t--mol_gap_round: .25rem;\n\t--mol_gap_space: .25rem;\n\t--mol_gap_blur: .5rem;\n}\n"); +})($ || ($ = {})); + +; +"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; + const error_showed = new WeakMap(); + class $mol_view extends $mol_object { + static Root(id) { + return new this; + } + autorun() { + try { + this.dom_tree(); + document.title = this.title(); + } + catch (error) { + $mol_fail_log(error); + } + } + static autobind() { + const nodes = $mol_dom_context.document.querySelectorAll('[mol_view_root]:not([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.toString().match(/.*\.(\w+)/)?.[1] ?? this.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() { + let min = 0; + try { + const sub = this.sub(); + if (!sub) + return 0; + sub.forEach(view => { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_width()); + } + }); + } + catch (error) { + $mol_fail_log(error); + return 24; + } + return min; + } + maximal_width() { + return this.minimal_width(); + } + minimal_height() { + let min = 0; + try { + for (const view of this.sub() ?? []) { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_height()); + } + } + } + catch (error) { + $mol_fail_log(error); + return 24; + } + return min; + } + static watchers = new Set(); + view_rect() { + if ($mol_wire_probe(() => this.view_rect()) === undefined) { + $mol_wire_watch(); + return null; + } + else { + const { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect(); + return { width, height, left, right, top, bottom }; + } + } + dom_id() { + return this.toString().replace(//g, ')').replaceAll(/"/g, "'"); + } + dom_node_external(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 + '>'); + return node; + } + dom_node(next) { + $mol_wire_solid(); + const node = this.dom_node_external(next); + $mol_dom_render_attributes(node, this.attr_static()); + const events = this.event_async(); + $mol_dom_render_events(node, events); + return node; + } + dom_final() { + this.render(); + const sub = this.sub_visible(); + if (!sub) + return; + for (const el of sub) { + if (el && typeof el === 'object' && 'dom_final' in el) { + el['dom_final'](); + } + } + return this.dom_node(); + } + dom_tree(next) { + const node = this.dom_node(next); + render: 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_fail_log(error); + const mol_view_error = $mol_promise_like(error) ? 'Promise' : error.name || error.constructor.name; + $mol_dom_render_attributes(node, { mol_view_error }); + if ($mol_promise_like(error)) + break render; + if ((error_showed.get(error) ?? this) !== this) + break render; + try { + const message = error.message || error; + node.innerText = message.replace(/^|$/mg, '\xA0\xA0'); + } + catch { } + error_showed.set(error, this); + } + try { + this.auto(); + } + catch (error) { + $mol_fail_log(error); + } + return node; + } + dom_node_actual() { + const node = this.dom_node(); + $mol_dom_render_styles(node, this.style_size()); + const attr = this.attr(); + const style = this.style(); + $mol_dom_render_attributes(node, attr); + $mol_dom_render_styles(node, style); + return node; + } + auto() { + return null; + } + 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() + : child instanceof $mol_dom_context.Node + ? child + : 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'](); + $mol_dom_render_fields(node, this.field()); + } + static view_classes() { + const proto = this.prototype; + let current = proto; + const classes = []; + while (current) { + if (current.constructor.name !== classes.at(-1)?.name) { + classes.push(current.constructor); + } + if (!(current instanceof $mol_view)) + break; + current = Object.getPrototypeOf(current); + } + return classes; + } + static _view_names; + static view_names(suffix) { + let cache = Reflect.getOwnPropertyDescriptor(this, '_view_names')?.value; + if (!cache) + cache = this._view_names = new Map; + const cached = cache.get(suffix); + if (cached) + return cached; + const names = []; + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + for (const Class of this.view_classes()) { + if (suffix in Class.prototype) + names.push(this.$.$mol_func_name(Class) + suffix2); + else + break; + } + cache.set(suffix, names); + return names; + } + view_names_owned() { + const names = []; + let owner = $mol_owning_get(this); + if (!(owner?.host instanceof $mol_view)) + return names; + const suffix = owner.task.name.trim(); + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + names.push(...owner.host.constructor.view_names(suffix)); + for (let prefix of owner.host.view_names_owned()) { + names.push(prefix + suffix2); + } + return names; + } + view_names() { + const names = new Set(); + for (let name of this.view_names_owned()) + names.add(name); + for (let Class of this.constructor.view_classes()) { + const name = this.$.$mol_func_name(Class); + if (name) + names.add(name); + } + return names; + } + theme(next = null) { + return next; + } + attr_static() { + let attrs = {}; + for (let name of this.view_names()) + attrs[name.replace(/\$/g, '').replace(/^(?=\d)/, '_').toLowerCase()] = ''; + return attrs; + } + attr() { + return { + mol_theme: this.theme() ?? undefined, + }; + } + style_size() { + return { + minHeight: this.minimal_height(), + minWidth: this.minimal_width(), + }; + } + style() { + return {}; + } + field() { + return {}; + } + event() { + return {}; + } + event_async() { + return { ...$mol_wire_async(this.event()) }; + } + plugins() { + return []; + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this)); + } + *view_find(check, path = []) { + if (check(this)) + return yield [...path, this]; + try { + for (const item of this.sub()) { + if (item instanceof $mol_view) { + yield* item.view_find(check, [...path, this]); + } + } + } + catch (error) { + if ($mol_promise_like(error)) + $mol_fail_hidden(error); + $mol_fail_log(error); + } + } + 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); + } + } + ensure_visible(view, align = "start") { + const path = this.view_find(v => v === view).next().value; + this.force_render(new Set(path)); + try { + this.dom_final(); + } + catch (err) { + $mol_fail_log(err); + } + view.dom_node().scrollIntoView({ block: align }); + } + bring() { + const win = this.$.$mol_dom_context; + if (win.parent !== win.self && !win.document.hasFocus()) + return; + new this.$.$mol_after_frame(() => { + this.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' }); + this.focused(true); + }); + } + destructor() { + const node = $mol_wire_probe(() => this.dom_node()); + if (!node) + return; + const events = $mol_wire_probe(() => this.event_async()); + if (!events) + return; + for (let event_name in events) { + node.removeEventListener(event_name, events[event_name]); + } + } + } + __decorate([ + $mol_mem + ], $mol_view.prototype, "autorun", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "title", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "focused", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "dom_name", 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_memo.method + ], $mol_view.prototype, "dom_id", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "dom_node", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "dom_final", 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, "render", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "view_names_owned", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "view_names", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "theme", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "event_async", null); + __decorate([ + $mol_mem_key + ], $mol_view, "Root", null); + __decorate([ + $mol_mem + ], $mol_view, "autobind", null); + __decorate([ + $mol_memo.method + ], $mol_view, "view_classes", null); + $.$mol_view = $mol_view; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/view/view/view.css", "[mol_view] {\n\ttransition-property: 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\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-shrink: 0;\n\tcontain: style;\n\tscrollbar-color: var(--mol_theme_line) transparent;\n\tscrollbar-width: thin;\n}\t\n\n[mol_view]::selection {\n\tbackground: var(--mol_theme_line);\n}\t\n\n[mol_view]::-webkit-scrollbar {\n\twidth: .25rem;\n\theight: .25rem;\n}\n\n[mol_view]::-webkit-scrollbar-corner {\n\tbackground-color: var(--mol_theme_line);\n}\n\n[mol_view]::-webkit-scrollbar-track {\n\tbackground-color: transparent;\n}\n\n[mol_view]::-webkit-scrollbar-thumb {\n\tbackground-color: var(--mol_theme_line);\n\tborder-radius: var(--mol_gap_round);\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-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n\tfont-size: 1rem;\n\tline-height: 1.5rem;\n\tbackground: var(--mol_theme_back);\n\tcolor: var(--mol_theme_text);\n\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\n\ttab-size: 4;\n\toverscroll-behavior: contain; /** Disable navigation gestures **/\n}\n\n@media print {\n\t[mol_view_root] {\n\t\theight: auto;\n\t}\n}\n\n[mol_view][mol_view_error]:not([mol_view_error=\"Promise\"]) {\n\tbackground-image: repeating-linear-gradient(\n\t\t-45deg,\n\t\t#f92323,\n\t\t#f92323 .5rem,\n\t\t#ff3d3d .5rem,\n\t\t#ff3d3d 1.5rem\n\t);\n\tcolor: black;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n@keyframes mol_view_wait {\n\tfrom {\n\t\topacity: .25;\n\t}\n\t20% {\n\t\topacity: .75;\n\t}\n\tto {\n\t\topacity: .25;\n\t}\n}\n\n:where([mol_view][mol_view_error=\"Promise\"]) {\n\tbackground: var(--mol_theme_hover);\n}\n\n[mol_view][mol_view_error=\"Promise\"] {\n\tanimation: mol_view_wait 1s steps( 20, end ) infinite;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_plugin extends $mol_view { + dom_node_external(next) { + return next ?? $mol_owning_get(this).host.dom_node(); + } + render() { + this.dom_node_actual(); + } + } + $.$mol_plugin = $mol_plugin; +})($ || ($ = {})); + +; + ($.$mol_scroll) = class $mol_scroll extends ($.$mol_view) { + tabindex(){ + return -1; + } + event_scroll(next){ + if(next !== undefined) return next; + return null; + } + scroll_top(next){ + if(next !== undefined) return next; + return 0; + } + scroll_left(next){ + if(next !== undefined) return next; + return 0; + } + field(){ + return {...(super.field()), "tabIndex": (this.tabindex())}; + } + event(){ + return {...(super.event()), "scroll": (next) => (this.event_scroll(next))}; + } + }; + ($mol_mem(($.$mol_scroll.prototype), "event_scroll")); + ($mol_mem(($.$mol_scroll.prototype), "scroll_top")); + ($mol_mem(($.$mol_scroll.prototype), "scroll_left")); + + +; +"use strict"; +var $; +(function ($) { + class $mol_dom_listener extends $mol_object { + _node; + _event; + _handler; + _config; + 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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"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}]`; + let res = `[${block}_${path.join('_')}]`; + if (prefix) + res = prefix + ' :where(' + res + ')'; + return res; + }; + 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) + ' :where([' + $mol_dom_qname(key) + '])', [], config[key]); + } + else if (key === '>') { + const types = config[key]; + for (let type in types) { + make_class(selector(prefix, path) + ' > :where([' + $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) + ':where([' + 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 if (key[0] === '[' && key[key.length - 1] === ']') { + const attr = key.slice(1, -1); + const vals = config[key]; + for (let val in vals) { + make_class(selector(prefix, path) + ':where([' + attr + '=' + JSON.stringify(val) + '])', [], vals[val]); + } + } + 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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_scroll extends $.$mol_scroll { + scroll_top(next, cache) { + const el = this.dom_node(); + if (next !== undefined && !cache) + el.scrollTop = next; + return el.scrollTop; + } + scroll_left(next, cache) { + const el = this.dom_node(); + if (next !== undefined && !cache) + el.scrollLeft = next; + return el.scrollLeft; + } + event_scroll(next) { + const el = this.dom_node(); + this.scroll_left(el.scrollLeft, 'cache'); + this.scroll_top(el.scrollTop, 'cache'); + } + minimal_height() { + return this.$.$mol_print.active() ? null : 0; + } + minimal_width() { + return this.$.$mol_print.active() ? null : 0; + } + } + __decorate([ + $mol_mem + ], $mol_scroll.prototype, "scroll_top", null); + __decorate([ + $mol_mem + ], $mol_scroll.prototype, "scroll_left", null); + $$.$mol_scroll = $mol_scroll; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem, px } = $mol_style_unit; + $mol_style_define($mol_scroll, { + display: 'grid', + overflow: 'auto', + flex: { + direction: 'column', + grow: 1, + shrink: 1, + }, + outline: 'none', + align: { + self: 'stretch', + items: 'flex-start', + }, + boxSizing: 'border-box', + willChange: 'scroll-position', + scroll: { + padding: [rem(.75), 0], + }, + maxHeight: per(100), + maxWidth: per(100), + webkitOverflowScrolling: 'touch', + contain: 'content', + '>': { + $mol_view: { + transform: 'translateZ(0)', + gridArea: '1/1', + }, + }, + '::before': { + display: 'none', + }, + '::after': { + display: 'none', + }, + '::-webkit-scrollbar': { + width: rem(.25), + height: rem(.25), + }, + '@media': { + 'print': { + overflow: 'visible', + contain: 'none', + maxHeight: 'unset', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_book2) = class $mol_book2 extends ($.$mol_scroll) { + pages(){ + return []; + } + menu_title(){ + return ""; + } + sub(){ + return (this.pages()); + } + minimal_width(){ + return 0; + } + Placeholder(){ + const obj = new this.$.$mol_view(); + return obj; + } + Gap(id){ + const obj = new this.$.$mol_view(); + (obj.title) = () => (""); + return obj; + } + }; + ($mol_mem(($.$mol_book2.prototype), "Placeholder")); + ($mol_mem_key(($.$mol_book2.prototype), "Gap")); + + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_cached = $mol_wire_probe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_layer = $mol_style_prop('mol_layer', [ + 'hover', + 'focus', + 'speck', + 'float', + 'popup', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/layer/layer.css", ":root {\n\t--mol_layer_hover: 1;\n\t--mol_layer_focus: 2;\n\t--mol_layer_speck: 3;\n\t--mol_layer_float: 4;\n\t--mol_layer_popup: 5;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_book2 extends $.$mol_book2 { + title() { + return this.pages().map(page => { + try { + return page?.title(); + } + catch (error) { + $mol_fail_log(error); + } + }).reverse().filter(Boolean).join(' | '); + } + menu_title() { + return this.pages()[0]?.title() || this.title(); + } + sub() { + const next = [...this.pages(), this.Placeholder()]; + const prev = $mol_mem_cached(() => this.sub()) ?? []; + for (let i = 1; i++;) { + const p = prev[prev.length - i]; + const n = next[next.length - i]; + if (!n) + break; + if (p === n) + continue; + n.bring(); + break; + } + return next; + } + bring() { + const pages = this.pages(); + if (pages.length) + pages[pages.length - 1].bring(); + else + super.bring(); + } + } + __decorate([ + $mol_mem + ], $mol_book2.prototype, "sub", null); + $$.$mol_book2 = $mol_book2; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/book2/book2.view.css", "[mol_book2] {\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: stretch;\n\tflex: 1 1 auto;\n\talign-self: stretch;\n\tmargin: 0;\n\t/* box-shadow: 0 0 0 1px var(--mol_theme_line); */\n\t/* transform: translateZ(0); */\n\ttransition: none;\n\toverflow: overlay;\n\tscroll-snap-type: x mandatory;\n\t/* padding: 0 1px;\n\tscroll-padding: 0 1px;\n\tgap: 1px; */\n}\n\n[mol_book2] > * {\n/* \tflex: none; */\n\tscroll-snap-stop: always;\n\tscroll-snap-align: end;\n\tposition: relative;\n\tmin-height: 100%;\n\tmax-height: 100%;\n\tmax-width: 100%;\n\tflex-shrink: 0;\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_field);\n}\n\n[mol_book2] > *:not(:first-of-type):before,\n[mol_book2] > *:not(:last-of-type)::after {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 1.5rem;\n\twidth: 2px;\n\theight: 1rem;\n\tbackground: linear-gradient(\n\t\tto bottom,\n\t\tvar(--mol_theme_focus) 0%,\n\t\tvar(--mol_theme_focus) 14%,\n\t\ttransparent 15%,\n\t\ttransparent 42%,\n\t\tvar(--mol_theme_focus) 43%,\n\t\tvar(--mol_theme_focus) 57%,\n\t\ttransparent 58%,\n\t\ttransparent 85%,\n\t\tvar(--mol_theme_focus) 86%,\n\t\tvar(--mol_theme_focus) 100%\n\t);\n\topacity: .5;\n\tz-index: var(--mol_layer_speck);\n}\n[mol_book2] > *:not(:first-of-type):before {\n\tleft: -1px;\n}\n[mol_book2] > *:not(:last-of-type)::after {\n\tright: -1px;\n}\n\n:where([mol_book2]) > * {\n\tbackground-color: var(--mol_theme_card);\n\t/* box-shadow: 0 0 0 1px var(--mol_theme_back); */\n}\n\n[mol_book2] > [mol_book2] {\n\tdisplay: contents;\n}\n\n[mol_book2] > *:first-child {\n\tscroll-snap-align: start;\n}\n\n[mol_book2] > [mol_view] {\n\ttransform: none; /* prevent content clipping */\n}\n\n[mol_book2_placeholder] {\n\tflex: 1 1 0;\n\tbackground: none;\n}\n\n[mol_book2_gap] {\n\tbackground: none;\n\tflex-grow: 1;\n\tscroll-snap-align: none;\n\tmargin-right: -1px;\n\tbox-shadow: none;\n}\n\n[mol_book2_gap]::before,\n[mol_book2_gap]::after {\n\tdisplay: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_pop) = class $mol_pop extends ($.$mol_view) { + 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; + } + showed(next){ + if(next !== undefined) return next; + return false; + } + align_vert(){ + return ""; + } + align_hor(){ + return ""; + } + prefer(){ + return "vert"; + } + sub(){ + return [(this.Anchor())]; + } + sub_visible(){ + return [(this.Anchor()), (this.Bubble())]; + } + }; + ($mol_mem(($.$mol_pop.prototype), "Bubble")); + ($mol_mem(($.$mol_pop.prototype), "showed")); + ($.$mol_pop_bubble) = class $mol_pop_bubble extends ($.$mol_view) { + content(){ + return []; + } + height_max(){ + return 9999; + } + align(){ + return ""; + } + sub(){ + return (this.content()); + } + style(){ + return {...(super.style()), "maxHeight": (this.height_max())}; + } + attr(){ + return { + ...(super.attr()), + "mol_pop_align": (this.align()), + "tabindex": 0 + }; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_pop extends $.$mol_pop { + showed(next = false) { + this.focused(); + return next; + } + sub_visible() { + return [ + this.Anchor(), + ...this.showed() ? [this.Bubble()] : [], + ]; + } + height_max() { + const viewport = this.$.$mol_window.size(); + const rect_bubble = this.view_rect(); + const align = this.align_vert(); + if (align === 'bottom') + return (viewport.height - rect_bubble.bottom) * .66; + if (align === 'top') + return rect_bubble.top * .66; + return 0; + } + align() { + switch (this.prefer()) { + case 'hor': return `${this.align_hor()}_${this.align_vert()}`; + case 'vert': return `${this.align_vert()}_${this.align_hor()}`; + default: return this.prefer(); + } + } + align_vert() { + const viewport = this.view_port(); + const rect_pop = this.view_rect(); + if (!rect_pop) + return 'suspense'; + return rect_pop.top > (viewport.top + viewport.height / 2) ? 'top' : 'bottom'; + } + align_hor() { + const viewport = this.view_port(); + const rect_pop = this.view_rect(); + if (!rect_pop) + return 'suspense'; + return rect_pop.left > (viewport.left + viewport.width / 2) ? 'left' : 'right'; + } + View_port() { + const view = new $mol_view; + view.dom_node = () => { + let node = this.dom_node(); + while (node = node.offsetParent) { + if (this.$.$mol_dom_context.getComputedStyle(node).overflow !== 'visible') + return node; + } + return this.$.$mol_dom_context.document.documentElement; + }; + return view; + } + view_port() { + return this.View_port().view_rect() ?? { ...this.$.$mol_window.size(), left: 0, top: 0 }; + } + } + __decorate([ + $mol_mem + ], $mol_pop.prototype, "showed", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "sub_visible", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "height_max", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align_vert", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align_hor", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "View_port", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "view_port", null); + $$.$mol_pop = $mol_pop; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"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_bubble] {\n\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\n\tborder-radius: var(--mol_gap_round);\n\tposition: absolute;\n\tz-index: var(--mol_layer_popup);\n\tbackground: var(--mol_theme_back);\n\tmax-width: none;\n\tmax-height: none;\n\t/* overflow: hidden;\n\toverflow-y: scroll;\n\toverflow-y: overlay; */\n\tword-break: normal;\n\twidth: max-content;\n\theight: max-content;\n\tflex-direction: column;\n\tmax-width: 80vw;\n\tmax-height: 80vw;\n\tcontain: paint;\n\ttransition-property: opacity;\n}\n\n:where( [mol_pop_bubble] > * ) {\n\tbackground: var(--mol_theme_card);\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=\"suspense_suspense\"] {\n\topacity: 0;\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_hotkey) = class $mol_hotkey extends ($.$mol_plugin) { + keydown(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.keydown(next))}; + } + key(){ + return {}; + } + mod_ctrl(){ + return false; + } + mod_alt(){ + return false; + } + mod_shift(){ + return false; + } + }; + ($mol_mem(($.$mol_hotkey.prototype), "keydown")); + + +; +"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 = {})); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_hotkey extends $.$mol_hotkey { + key() { + return super.key(); + } + keydown(event) { + if (!event) + return; + if (event.defaultPrevented) + return; + let name = $mol_keyboard_code[event.keyCode]; + if (this.mod_ctrl() !== (event.ctrlKey || event.metaKey)) + return; + if (this.mod_alt() !== event.altKey) + return; + if (this.mod_shift() !== event.shiftKey) + return; + const handle = this.key()[name]; + if (handle) + handle(event); + } + } + $$.$mol_hotkey = $mol_hotkey; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_nav) = class $mol_nav extends ($.$mol_plugin) { + event_key(next){ + if(next !== undefined) return next; + return null; + } + cycle(next){ + if(next !== undefined) return next; + return false; + } + mod_ctrl(){ + return false; + } + mod_shift(){ + return false; + } + mod_alt(){ + return false; + } + keys_x(next){ + if(next !== undefined) return next; + return []; + } + keys_y(next){ + if(next !== undefined) return next; + return []; + } + current_x(next){ + if(next !== undefined) return next; + return null; + } + current_y(next){ + if(next !== undefined) return next; + return null; + } + event_up(next){ + if(next !== undefined) return next; + return null; + } + event_down(next){ + if(next !== undefined) return next; + return null; + } + event_left(next){ + if(next !== undefined) return next; + return null; + } + event_right(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.event_key(next))}; + } + }; + ($mol_mem(($.$mol_nav.prototype), "event_key")); + ($mol_mem(($.$mol_nav.prototype), "cycle")); + ($mol_mem(($.$mol_nav.prototype), "keys_x")); + ($mol_mem(($.$mol_nav.prototype), "keys_y")); + ($mol_mem(($.$mol_nav.prototype), "current_x")); + ($mol_mem(($.$mol_nav.prototype), "current_y")); + ($mol_mem(($.$mol_nav.prototype), "event_up")); + ($mol_mem(($.$mol_nav.prototype), "event_down")); + ($mol_mem(($.$mol_nav.prototype), "event_left")); + ($mol_mem(($.$mol_nav.prototype), "event_right")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_nav extends $.$mol_nav { + event_key(event) { + if (!event) + return event; + if (event.defaultPrevented) + return; + if (this.mod_ctrl() && !event.ctrlKey) + return; + if (this.mod_shift() && !event.shiftKey) + return; + if (this.mod_alt() && !event.altKey) + return; + switch (event.keyCode) { + case $mol_keyboard_code.up: return this.event_up(event); + case $mol_keyboard_code.down: return this.event_down(event); + case $mol_keyboard_code.left: return this.event_left(event); + case $mol_keyboard_code.right: return this.event_right(event); + case $mol_keyboard_code.pageUp: return this.event_up(event); + case $mol_keyboard_code.pageDown: return this.event_down(event); + } + } + event_up(event) { + if (!event) + return event; + const keys = this.keys_y(); + if (keys.length < 1) + return; + const index_y = this.index_y(); + const index_old = index_y === null ? 0 : index_y; + const index_new = (index_old + keys.length - 1) % keys.length; + event.preventDefault(); + if (index_old === 0 && !this.cycle()) + return; + this.current_y(this.keys_y()[index_new]); + } + event_down(event) { + if (!event) + return event; + const keys = this.keys_y(); + if (keys.length < 1) + return; + const index_y = this.index_y(); + const index_old = index_y === null ? keys.length - 1 : index_y; + const index_new = (index_old + 1) % keys.length; + event.preventDefault(); + if (index_new === 0 && !this.cycle()) + return; + this.current_y(this.keys_y()[index_new]); + } + event_left(event) { + if (!event) + return event; + const keys = this.keys_x(); + if (keys.length < 1) + return; + const index_x = this.index_x(); + const index_old = index_x === null ? 0 : index_x; + const index_new = (index_old + keys.length - 1) % keys.length; + event.preventDefault(); + if (index_old === 0 && !this.cycle()) + return; + this.current_x(this.keys_x()[index_new]); + } + event_right(event) { + if (!event) + return event; + const keys = this.keys_x(); + if (keys.length < 1) + return; + const index_x = this.index_x(); + const index_old = index_x === null ? keys.length - 1 : index_x; + const index_new = (index_old + 1) % keys.length; + event.preventDefault(); + if (index_new === 0 && !this.cycle()) + return; + this.current_x(this.keys_x()[index_new]); + } + index_y() { + let index = this.keys_y().indexOf(this.current_y()); + if (index < 0) + return null; + return index; + } + index_x() { + let index = this.keys_x().indexOf(this.current_x()); + if (index < 0) + return null; + return index; + } + } + $$.$mol_nav = $mol_nav; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_persist = $mol_wire_solid; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_sync(obj) { + return new Proxy(obj, { + get(obj, field) { + const val = obj[field]; + if (typeof val !== 'function') + return val; + const temp = $mol_wire_task.getter(val); + return function $mol_wire_sync(...args) { + const fiber = temp(obj, args); + return fiber.sync(); + }; + }, + apply(obj, self, args) { + const temp = $mol_wire_task.getter(obj); + const fiber = temp(self, args); + return fiber.sync(); + }, + }); + } + $.$mol_wire_sync = $mol_wire_sync; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_storage extends $mol_object2 { + static native() { + return this.$.$mol_dom_context.navigator.storage ?? { + persisted: async () => false, + persist: async () => false, + estimate: async () => ({}), + getDirectory: async () => null, + }; + } + static persisted(next, cache) { + $mol_mem_persist(); + if (cache) + return Boolean(next); + const native = this.native(); + if (next && !$mol_mem_cached(() => this.persisted())) { + native.persist().then(actual => { + setTimeout(() => this.persisted(actual, 'cache'), 5000); + if (actual) + this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` }); + else + this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` }); + }); + } + return next ?? $mol_wire_sync(native).persisted(); + } + static estimate() { + return $mol_wire_sync(this.native() ?? {}).estimate(); + } + static dir() { + return $mol_wire_sync(this.native()).getDirectory(); + } + } + __decorate([ + $mol_mem + ], $mol_storage, "native", null); + __decorate([ + $mol_mem + ], $mol_storage, "persisted", null); + $.$mol_storage = $mol_storage; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_state_local extends $mol_object { + static 'native()'; + 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 changes(next) { return next; } + static value(key, next) { + this.changes(); + 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)); + this.$.$mol_storage.persisted(true); + } + return next; + } + prefix() { return ''; } + value(key, next) { + return $mol_state_local.value(this.prefix() + '.' + key, next); + } + } + __decorate([ + $mol_mem + ], $mol_state_local, "changes", null); + __decorate([ + $mol_mem_key + ], $mol_state_local, "value", null); + $.$mol_state_local = $mol_state_local; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const decoders = {}; + function $mol_charset_decode(buffer, encoding = 'utf8') { + let decoder = decoders[encoding]; + if (!decoder) + decoder = decoders[encoding] = new TextDecoder(encoding); + return decoder.decode(buffer); + } + $.$mol_charset_decode = $mol_charset_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const TextEncoder = globalThis.TextEncoder ?? $node.util.TextEncoder; + const encoder = new TextEncoder(); + function $mol_charset_encode(value) { + return encoder.encode(value); + } + $.$mol_charset_encode = $mol_charset_encode; +})($ || ($ = {})); + +; +"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'); + } + static base = ''; + path() { + return '.'; + } + parent() { + return this.resolve('..'); + } + reset() { + try { + this.stat(null); + } + 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) { + let exists = Boolean(this.stat()); + if (next === undefined) + return exists; + if (next === exists) + return exists; + if (next) { + this.parent().exists(true); + this.ensure(); + } + else { + this.drop(); + } + 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, virt) { + if (virt) { + const now = new Date; + this.stat({ + type: 'file', + size: 0, + atime: now, + mtime: now, + ctime: now, + }, 'virt'); + return next; + } + if (next === undefined) { + return $mol_charset_decode(this.buffer(undefined)); + } + else { + const buffer = next === undefined ? undefined : $mol_charset_encode(next); + this.buffer(buffer); + return next; + } + } + 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 ?? 0; + default: return 0; + } + } + open(...modes) { + return 0; + } + toJSON() { + return this.path(); + } + } + __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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_action = $mol_wire_method; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_compare_array(a, b) { + if (a === b) + return true; + if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) + return false; + if (a.length !== b.length) + return false; + for (let i = 0; i < a.length; i++) + if (a[i] !== b[i]) + return false; + return true; + } + $.$mol_compare_array = $mol_compare_array; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function stat_convert(stat) { + if (!stat) + return null; + let type; + if (stat.isDirectory()) + type = 'dir'; + if (stat.isFile()) + type = 'file'; + if (stat.isSymbolicLink()) + type = 'link'; + if (!type) + return $mol_fail(new Error(`Unsupported file type`)); + return { + type, + size: Number(stat.size), + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime + }; + } + function buffer_normalize(buf) { + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + let $mol_file_mode_open; + (function ($mol_file_mode_open) { + $mol_file_mode_open[$mol_file_mode_open["create"] = $node.fs.constants.O_CREAT] = "create"; + $mol_file_mode_open[$mol_file_mode_open["exists_truncate"] = $node.fs.constants.O_TRUNC] = "exists_truncate"; + $mol_file_mode_open[$mol_file_mode_open["exists_fail"] = $node.fs.constants.O_EXCL] = "exists_fail"; + $mol_file_mode_open[$mol_file_mode_open["read_only"] = $node.fs.constants.O_RDONLY] = "read_only"; + $mol_file_mode_open[$mol_file_mode_open["write_only"] = $node.fs.constants.O_WRONLY] = "write_only"; + $mol_file_mode_open[$mol_file_mode_open["read_write"] = $node.fs.constants.O_RDWR] = "read_write"; + $mol_file_mode_open[$mol_file_mode_open["append"] = $node.fs.constants.O_APPEND] = "append"; + })($mol_file_mode_open = $.$mol_file_mode_open || ($.$mol_file_mode_open = {})); + class $mol_file_node extends $mol_file { + static absolute(path) { + return this.make({ + path: $mol_const(path) + }); + } + static relative(path) { + return this.absolute($node.path.resolve(this.base, path).replace(/\\/g, '/')); + } + watcher() { + const watcher = $node.chokidar.watch(this.path(), { + persistent: true, + ignored: /(^\.|___$)/, + depth: 0, + ignoreInitial: true, + awaitWriteFinish: { + stabilityThreshold: 100, + }, + }); + watcher + .on('all', (type, path) => { + const file = $mol_file.relative(path.replace(/\\/g, '/')); + file.reset(); + if (type === 'change') { + this.stat(null); + } + else { + file.parent().reset(); + } + }) + .on('error', $mol_fail_log); + return { + destructor() { + watcher.close(); + } + }; + } + stat(next, virt) { + let stat = next; + const path = this.path(); + this.parent().watcher(); + if (virt) + return next; + try { + stat = next ?? stat_convert($node.fs.statSync(path, { throwIfNoEntry: false })); + } + catch (error) { + if (error.code === 'ENOENT') + error = new $mol_file_not_found(`File not found`); + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + return stat; + } + ensure() { + const path = this.path(); + try { + $node.fs.mkdirSync(path); + } + catch (e) { + e.message += '\n' + path; + this.$.$mol_fail_hidden(e); + } + } + drop() { + $node.fs.unlinkSync(this.path()); + } + buffer(next) { + const path = this.path(); + if (next === undefined) { + if (!this.stat()) + return new Uint8Array; + try { + const prev = $mol_mem_cached(() => this.buffer()); + next = buffer_normalize($node.fs.readFileSync(path)); + if (prev !== undefined && !$mol_compare_array(prev, next)) { + this.$.$mol_log3_rise({ + place: `$mol_file_node..buffer()`, + message: 'Changed', + path: this.relate(), + }); + } + return next; + } + catch (error) { + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + } + this.parent().exists(true); + const now = new Date; + this.stat({ + type: 'file', + size: next.length, + atime: now, + mtime: now, + ctime: now, + }, 'virt'); + try { + $node.fs.writeFileSync(path, next); + } + catch (error) { + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + return next; + } + sub() { + if (!this.exists()) + return []; + if (this.type() !== 'dir') + return []; + const path = this.path(); + this.stat(); + try { + return $node.fs.readdirSync(path) + .filter(name => !/^\.+$/.test(name)) + .map(name => this.resolve(name)); + } + catch (e) { + e.message += '\n' + path; + return this.$.$mol_fail_hidden(e); + } + } + resolve(path) { + return this.constructor.relative($node.path.join(this.path(), path)); + } + relate(base = this.constructor.relative('.')) { + return $node.path.relative(base.path(), this.path()).replace(/\\/g, '/'); + } + append(next) { + const path = this.path(); + try { + $node.fs.appendFileSync(path, next); + } + catch (e) { + e.message += '\n' + path; + return this.$.$mol_fail_hidden(e); + } + } + open(...modes) { + return $node.fs.openSync(this.path(), modes.reduce((res, mode) => res | $mol_file_mode_open[mode], 0)); + } + } + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "watcher", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "stat", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "ensure", null); + __decorate([ + $mol_action + ], $mol_file_node.prototype, "drop", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "buffer", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "sub", null); + __decorate([ + $mol_mem_key + ], $mol_file_node, "absolute", null); + $.$mol_file_node = $mol_file_node; + $.$mol_file = $mol_file_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_state_local_node extends $mol_state_local { + static dir() { + const base = process.env.XDG_DATA_HOME || ($node.os.homedir() + '/.local/share'); + return $mol_file.absolute(base).resolve('./hyoo_state_local'); + } + static value(key, next) { + const file = this.dir().resolve(encodeURIComponent(key) + '.json'); + if (next === null) { + file.exists(false); + return null; + } + const arg = next === undefined ? undefined : JSON.stringify(next); + return JSON.parse(file.text(arg) || 'null'); + } + } + __decorate([ + $mol_mem + ], $mol_state_local_node, "dir", null); + __decorate([ + $mol_mem_key + ], $mol_state_local_node, "value", null); + $.$mol_state_local_node = $mol_state_local_node; + $.$mol_state_local = $mol_state_local_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_locale extends $mol_object { + static lang_default() { + return 'en'; + } + static lang(next) { + return this.$.$mol_state_local.value('locale', next) || $mol_dom_context.navigator.language.replace(/-.*/, '') || this.lang_default(); + } + static source(lang) { + return JSON.parse(this.$.$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 ($mol_fail_catch(error)) { + const def = this.lang_default(); + if (lang === def) + throw error; + } + } + return {}; + } + static text(key) { + const lang = this.lang(); + const target = this.texts(lang)[key]; + if (target) + return target; + this.warn(key); + const en = this.texts('en')[key]; + if (!en) + return key; + return en; + } + static warn(key) { + console.warn(`Not translated to "${this.lang()}": ${key}`); + return null; + } + } + __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); + __decorate([ + $mol_mem_key + ], $mol_locale, "warn", null); + $.$mol_locale = $mol_locale; +})($ || ($ = {})); + +; + ($.$mol_string) = class $mol_string extends ($.$mol_view) { + selection_watcher(){ + return null; + } + error_report(){ + return null; + } + disabled(){ + return false; + } + value(next){ + if(next !== undefined) return next; + return ""; + } + value_changed(next){ + return (this.value(next)); + } + hint(){ + return ""; + } + hint_visible(){ + return (this.hint()); + } + spellcheck(){ + return true; + } + autocomplete_native(){ + return ""; + } + selection_end(){ + return 0; + } + selection_start(){ + return 0; + } + keyboard(){ + return "text"; + } + enter(){ + return "go"; + } + length_max(){ + return +Infinity; + } + type(next){ + if(next !== undefined) return next; + return "text"; + } + event_change(next){ + if(next !== undefined) return next; + return null; + } + submit_with_ctrl(){ + return false; + } + submit(next){ + if(next !== undefined) return next; + return null; + } + Submit(){ + const obj = new this.$.$mol_hotkey(); + (obj.mod_ctrl) = () => ((this.submit_with_ctrl())); + (obj.key) = () => ({"enter": (next) => (this.submit(next))}); + return obj; + } + dom_name(){ + return "input"; + } + enabled(){ + return true; + } + minimal_height(){ + return 40; + } + autocomplete(){ + return false; + } + selection(next){ + if(next !== undefined) return next; + return [0, 0]; + } + auto(){ + return [(this.selection_watcher()), (this.error_report())]; + } + field(){ + return { + ...(super.field()), + "disabled": (this.disabled()), + "value": (this.value_changed()), + "placeholder": (this.hint_visible()), + "spellcheck": (this.spellcheck()), + "autocomplete": (this.autocomplete_native()), + "selectionEnd": (this.selection_end()), + "selectionStart": (this.selection_start()), + "inputMode": (this.keyboard()), + "enterkeyhint": (this.enter()) + }; + } + attr(){ + return { + ...(super.attr()), + "maxlength": (this.length_max()), + "type": (this.type()) + }; + } + event(){ + return {...(super.event()), "input": (next) => (this.event_change(next))}; + } + plugins(){ + return [(this.Submit())]; + } + }; + ($mol_mem(($.$mol_string.prototype), "value")); + ($mol_mem(($.$mol_string.prototype), "type")); + ($mol_mem(($.$mol_string.prototype), "event_change")); + ($mol_mem(($.$mol_string.prototype), "submit")); + ($mol_mem(($.$mol_string.prototype), "Submit")); + ($mol_mem(($.$mol_string.prototype), "selection")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_string extends $.$mol_string { + event_change(next) { + if (!next) + return; + const el = next.target; + const from = el.selectionStart; + const to = el.selectionEnd; + try { + el.value = this.value_changed(el.value); + } + catch (error) { + const el = this.dom_node(); + if (error instanceof Error) { + el.setCustomValidity(error.message); + el.reportValidity(); + } + $mol_fail_hidden(error); + } + if (to === null) + return; + el.selectionEnd = to; + el.selectionStart = from; + this.selection_change(next); + } + error_report() { + try { + if (this.focused()) + this.value(); + } + catch (error) { + const el = this.dom_node(); + if (error instanceof Error) { + el.setCustomValidity(error.message); + el.reportValidity(); + } + } + } + hint_visible() { + return (this.enabled() ? this.hint() : '') || ' '; + } + disabled() { + return !this.enabled(); + } + autocomplete_native() { + return this.autocomplete() ? 'on' : 'off'; + } + selection_watcher() { + return new $mol_dom_listener(this.$.$mol_dom_context.document, 'selectionchange', $mol_wire_async(event => this.selection_change(event))); + } + selection_change(event) { + const el = this.dom_node(); + if (el !== this.$.$mol_dom_context.document.activeElement) + return; + const [from, to] = this.selection([ + el.selectionStart, + el.selectionEnd, + ]); + el.selectionEnd = to; + el.selectionStart = from; + if (to !== from && el.selectionEnd === el.selectionStart) { + el.selectionEnd = to; + } + } + selection_start() { + const el = this.dom_node(); + if (el.selectionStart === null) + return undefined; + return this.selection()[0]; + } + selection_end() { + const el = this.dom_node(); + if (el.selectionEnd === null) + return undefined; + return this.selection()[1]; + } + } + __decorate([ + $mol_action + ], $mol_string.prototype, "event_change", null); + __decorate([ + $mol_mem + ], $mol_string.prototype, "error_report", null); + __decorate([ + $mol_mem + ], $mol_string.prototype, "selection_watcher", null); + $$.$mol_string = $mol_string; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/string/string.view.css", "[mol_string] {\n\tbox-sizing: border-box;\n\toutline-offset: 0;\n\tborder: none;\n\tborder-radius: var(--mol_gap_round);\n\twhite-space: pre-line;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tpadding: var(--mol_gap_text);\n\ttext-align: left;\n\tposition: relative;\n\tfont: inherit;\n\tflex: 1 1 auto;\n\tbackground: transparent;\n\tmin-width: 0;\n\tcolor: inherit;\n\tbackground: var(--mol_theme_field);\n}\n\n[mol_string]:disabled:not(:placeholder-shown) {\n\tbackground-color: transparent;\n\tcolor: var(--mol_theme_text);\n}\n\n[mol_string]:where(:not(:disabled)) {\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_line);\n}\n\n[mol_string]:where(:not(:disabled)):hover {\n\tbox-shadow: inset 0 0 0 2px var(--mol_theme_line);\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_string]:focus {\n\toutline: none;\n\tz-index: var(--mol_layer_focus);\n\tcolor: var(--mol_theme_text);\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_focus);\n}\n\n[mol_string]::placeholder {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_string]::-ms-clear {\n\tdisplay: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_svg) = class $mol_svg extends ($.$mol_view) { + dom_name(){ + return "svg"; + } + dom_name_space(){ + return "http://www.w3.org/2000/svg"; + } + font_size(){ + return 16; + } + font_family(){ + return ""; + } + style_size(){ + return {}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + class $mol_state_time extends $mol_object { + static task(precision, reset) { + if (precision) { + return new $mol_after_timeout(precision, () => this.task(precision, null)); + } + else { + return new $mol_after_frame(() => this.task(precision, null)); + } + } + static now(precision) { + this.task(precision); + return Date.now(); + } + } + __decorate([ + $mol_mem_key + ], $mol_state_time, "task", null); + __decorate([ + $mol_mem_key + ], $mol_state_time, "now", null); + $.$mol_state_time = $mol_state_time; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_svg extends $.$mol_svg { + computed_style() { + const win = this.$.$mol_dom_context; + const style = win.getComputedStyle(this.dom_node()); + if (!style['font-size']) + $mol_state_time.now(0); + return style; + } + font_size() { + return parseInt(this.computed_style()['font-size']) || 16; + } + font_family() { + return this.computed_style()['font-family']; + } + } + __decorate([ + $mol_mem + ], $mol_svg.prototype, "computed_style", null); + __decorate([ + $mol_mem + ], $mol_svg.prototype, "font_size", null); + __decorate([ + $mol_mem + ], $mol_svg.prototype, "font_family", null); + $$.$mol_svg = $mol_svg; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_svg_root) = class $mol_svg_root extends ($.$mol_svg) { + view_box(){ + return "0 0 100 100"; + } + aspect(){ + return "xMidYMid"; + } + dom_name(){ + return "svg"; + } + attr(){ + return { + ...(super.attr()), + "viewBox": (this.view_box()), + "preserveAspectRatio": (this.aspect()) + }; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/svg/root/root.view.css", "[mol_svg_root] {\n\toverflow: hidden;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_svg_path) = class $mol_svg_path extends ($.$mol_svg) { + geometry(){ + return ""; + } + dom_name(){ + return "path"; + } + attr(){ + return {...(super.attr()), "d": (this.geometry())}; + } + }; + + +; +"use strict"; + +; + ($.$mol_icon) = class $mol_icon extends ($.$mol_svg_root) { + path(){ + return ""; + } + Path(){ + const obj = new this.$.$mol_svg_path(); + (obj.geometry) = () => ((this.path())); + return obj; + } + view_box(){ + return "0 0 24 24"; + } + minimal_width(){ + return 16; + } + minimal_height(){ + return 16; + } + sub(){ + return [(this.Path())]; + } + }; + ($mol_mem(($.$mol_icon.prototype), "Path")); + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/icon/icon.view.css", "[mol_icon] {\n\tfill: currentColor;\n\tstroke: none;\n\twidth: 1em;\n\theight: 1.5em;\n\tflex: 0 0 auto;\n\tvertical-align: top;\n\tdisplay: inline-block;\n\tfilter: drop-shadow(0px 1px 1px var(--mol_theme_back));\n\ttransform-origin: center;\n}\n\n[mol_icon_path] {\n\ttransform-origin: center;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_icon_cross) = class $mol_icon_cross extends ($.$mol_icon) { + path(){ + return "M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_speck) = class $mol_speck extends ($.$mol_view) { + theme(){ + return "$mol_theme_accent"; + } + value(){ + return null; + } + attr(){ + return {...(super.attr()), "mol_theme": (this.theme())}; + } + style(){ + return {...(super.style()), "minHeight": "1em"}; + } + sub(){ + return [(this.value())]; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/speck/speck.view.css", "[mol_speck] {\n\tfont-size: .625rem;\n\tborder-radius: 1rem;\n\tmargin: -0.5rem -0.25rem;\n\talign-self: flex-start;\n\tmin-height: 1em;\n\tmin-width: .5em;\n\tvertical-align: sub;\n\tpadding: .25em .5em;\n\tposition: absolute;\n\tz-index: var(--mol_layer_speck);\n\ttext-align: center;\n\tline-height: 1;\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tuser-select: none;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_button) = class $mol_button extends ($.$mol_view) { + event_activate(next){ + if(next !== undefined) return next; + return null; + } + clicks(next){ + if(next !== undefined) return next; + return null; + } + event_key_press(next){ + if(next !== undefined) return next; + return null; + } + disabled(){ + return false; + } + tab_index(){ + return 0; + } + hint(){ + return ""; + } + hint_safe(){ + return (this.hint()); + } + error(){ + return ""; + } + enabled(){ + return true; + } + click(next){ + if(next !== undefined) return next; + return null; + } + event_click(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return { + ...(super.event()), + "click": (next) => (this.event_activate(next)), + "dblclick": (next) => (this.clicks(next)), + "keydown": (next) => (this.event_key_press(next)) + }; + } + attr(){ + return { + ...(super.attr()), + "disabled": (this.disabled()), + "role": "button", + "tabindex": (this.tab_index()), + "title": (this.hint_safe()) + }; + } + sub(){ + return [(this.title())]; + } + Speck(){ + const obj = new this.$.$mol_speck(); + (obj.value) = () => ((this.error())); + return obj; + } + }; + ($mol_mem(($.$mol_button.prototype), "event_activate")); + ($mol_mem(($.$mol_button.prototype), "clicks")); + ($mol_mem(($.$mol_button.prototype), "event_key_press")); + ($mol_mem(($.$mol_button.prototype), "click")); + ($mol_mem(($.$mol_button.prototype), "event_click")); + ($mol_mem(($.$mol_button.prototype), "Speck")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_button extends $.$mol_button { + status(next = [null]) { return next; } + disabled() { + return !this.enabled(); + } + event_activate(next) { + if (!next) + return; + if (!this.enabled()) + return; + try { + this.event_click(next); + this.click(next); + this.status([null]); + } + catch (error) { + Promise.resolve().then(() => this.status([error])); + $mol_fail_hidden(error); + } + } + event_key_press(event) { + if (event.keyCode === $mol_keyboard_code.enter) { + return this.event_activate(event); + } + } + tab_index() { + return this.enabled() ? super.tab_index() : -1; + } + error() { + const [error] = this.status(); + if (!error) + return ''; + if (error instanceof Promise) { + return $mol_fail_hidden(error); + } + return String(error.message ?? error); + } + hint_safe() { + try { + return this.hint(); + } + catch (error) { + $mol_fail_log(error); + return ''; + } + } + sub_visible() { + return [ + ...this.error() ? [this.Speck()] : [], + ...this.sub(), + ]; + } + } + __decorate([ + $mol_mem + ], $mol_button.prototype, "status", null); + $$.$mol_button = $mol_button; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/button.view.css", "[mol_button] {\n\tborder: none;\n\tfont: inherit;\n\tdisplay: inline-flex;\n\tflex-shrink: 0;\n\ttext-decoration: inherit;\n\tcursor: inherit;\n\tposition: relative;\n\tbox-sizing: border-box;\n\tword-break: normal;\n\tcursor: default;\n\tuser-select: none;\n\tborder-radius: var(--mol_gap_round);\n\tbackground: transparent;\n\tcolor: inherit;\n}\n\n[mol_button]:where(:not(:disabled)):hover {\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_button]:focus-visible {\n\toutline: none;\n\tz-index: var(--mol_layer_focus);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_button_typed) = class $mol_button_typed extends ($.$mol_button) { + minimal_height(){ + return 40; + } + minimal_width(){ + return 40; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/typed/typed.view.css", "[mol_button_typed] {\n\talign-content: center;\n\talign-items: center;\n\tpadding: var(--mol_gap_text);\n\tborder-radius: var(--mol_gap_round);\n\tgap: var(--mol_gap_space);\n\tuser-select: none;\n\tcursor: pointer;\n}\n\n[mol_button_typed][disabled] {\n\tpointer-events: none;\n}\n\n[mol_button_typed]:hover ,\n[mol_button_typed]:focus-visible {\n\tbox-shadow: inset 0 0 0 10rem var(--mol_theme_hover);\n}\n\n[mol_button_typed]:active {\n\tcolor: var(--mol_theme_focus);\n}\n\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_button_minor) = class $mol_button_minor extends ($.$mol_button_typed) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/minor/minor.view.css", "[mol_button_minor] {\n\tcolor: var(--mol_theme_control);\n}\n\n[mol_button_minor][disabled] {\n\tcolor: var(--mol_theme_shade);\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_list) = class $mol_list extends ($.$mol_view) { + rows(){ + return []; + } + gap_before(){ + return 0; + } + gap_after(){ + return 0; + } + 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]; + } + }; + ($mol_mem(($.$mol_list.prototype), "Empty")); + ($mol_mem(($.$mol_list.prototype), "Gap_before")); + ($mol_mem(($.$mol_list.prototype), "Gap_after")); + + +; +"use strict"; +var $; +(function ($) { + let cache = null; + function $mol_support_css_overflow_anchor() { + return cache ?? (cache = this.$mol_dom_context.CSS?.supports('overflow-anchor:auto') ?? false); + } + $.$mol_support_css_overflow_anchor = $mol_support_css_overflow_anchor; +})($ || ($ = {})); + +; +"use strict"; + +; +"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(next) { + const kids = this.sub(); + if (kids.length < 3) + return [0, kids.length]; + if (this.$.$mol_print.active()) + return [0, kids.length]; + const rect = this.view_rect(); + if (next) + return next; + let [min, max] = $mol_mem_cached(() => this.view_window()) ?? [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 gap_before = $mol_mem_cached(() => this.gap_before()) ?? 0; + const gap_after = $mol_mem_cached(() => this.gap_after()) ?? 0; + let top = Math.ceil(rect?.top ?? 0) + gap_before; + let bottom = Math.ceil(rect?.bottom ?? 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(rect?.top ?? 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) && (bottom < limit_bottom) && (max < kids.length)) { + min2 = max; + top2 = bottom; + } + if ((bottom > limit_bottom) && (top > limit_top) && (min > 0)) { + max2 = min; + bottom2 = top; + } + while (anchoring && ((top2 > limit_top) && (min2 > 0))) { + --min2; + top2 -= kids[min2].minimal_height(); + } + while (bottom2 < limit_bottom && max2 < kids.length) { + bottom2 += kids[max2].minimal_height(); + ++max2; + } + 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() { + return [ + ...this.gap_before() ? [this.Gap_before()] : [], + ...this.sub().slice(...this.view_window()), + ...this.gap_after() ? [this.Gap_after()] : [], + ]; + } + minimal_height() { + return this.sub().reduce((sum, view) => { + try { + return sum + view.minimal_height(); + } + catch (error) { + $mol_fail_log(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]) { + this.view_window([this.render_visible_only() ? index : 0, 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; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/list/list.view.css", "[mol_list] {\n\twill-change: contents;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\tmax-width: 100%;\n\t/* display: flex;\n\talign-items: stretch;\n\talign-content: stretch; */\n\ttransition: none;\n\tmin-height: 1.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"); +})($ || ($ = {})); + +; + ($.$mol_paragraph) = class $mol_paragraph extends ($.$mol_view) { + line_height(){ + return 24; + } + letter_width(){ + return 7; + } + width_limit(){ + return +Infinity; + } + row_width(){ + return 0; + } + sub(){ + return [(this.title())]; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_paragraph extends $.$mol_paragraph { + maximal_width() { + let width = 0; + const letter = this.letter_width(); + for (const kid of this.sub()) { + if (!kid) + continue; + if (kid instanceof $mol_view) { + width += kid.maximal_width(); + } + else if (typeof kid !== 'object') { + width += String(kid).length * letter; + } + } + return width; + } + width_limit() { + return this.$.$mol_window.size().width; + } + minimal_width() { + return this.letter_width(); + } + row_width() { + return Math.max(Math.min(this.width_limit(), this.maximal_width()), this.letter_width()); + } + minimal_height() { + return Math.max(1, Math.ceil(this.maximal_width() / this.row_width())) * this.line_height(); + } + } + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "maximal_width", null); + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "row_width", null); + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "minimal_height", null); + $$.$mol_paragraph = $mol_paragraph; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/paragraph/paragraph.view.css", ":where([mol_paragraph]) {\n\tmargin: 0;\n\tmax-width: 100%;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_dimmer) = class $mol_dimmer extends ($.$mol_paragraph) { + parts(){ + return []; + } + string(id){ + return ""; + } + haystack(){ + return ""; + } + needle(){ + return ""; + } + sub(){ + return (this.parts()); + } + Low(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ([(this.string(id))]); + return obj; + } + High(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ([(this.string(id))]); + return obj; + } + }; + ($mol_mem_key(($.$mol_dimmer.prototype), "Low")); + ($mol_mem_key(($.$mol_dimmer.prototype), "High")); + + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + class $mol_regexp extends RegExp { + groups; + constructor(source, flags = 'gsu', groups = []) { + super(source, flags); + this.groups = groups; + } + *[Symbol.matchAll](str) { + const index = this.lastIndex; + this.lastIndex = 0; + try { + while (this.lastIndex < str.length) { + const found = this.exec(str); + if (!found) + break; + yield found; + } + } + finally { + this.lastIndex = index; + } + } + [Symbol.match](str) { + const res = [...this[Symbol.matchAll](str)].filter(r => r.groups).map(r => r[0]); + if (!res.length) + return null; + return res; + } + [Symbol.split](str) { + const res = []; + let token_last = null; + for (let token of this[Symbol.matchAll](str)) { + if (token.groups && (token_last ? token_last.groups : true)) + res.push(''); + res.push(token[0]); + token_last = token; + } + if (!res.length) + res.push(''); + return res; + } + test(str) { + return Boolean(str.match(this)); + } + exec(str) { + const from = this.lastIndex; + if (from >= str.length) + return null; + const res = super.exec(str); + if (res === null) { + this.lastIndex = str.length; + if (!str) + return null; + return Object.assign([str.slice(from)], { + index: from, + input: str, + }); + } + if (from === this.lastIndex) { + $mol_fail(new Error('Captured empty substring')); + } + const groups = {}; + const skipped = str.slice(from, this.lastIndex - res[0].length); + if (skipped) { + this.lastIndex = this.lastIndex - res[0].length; + return Object.assign([skipped], { + index: from, + input: res.input, + }); + } + for (let i = 0; i < this.groups.length; ++i) { + const group = this.groups[i]; + groups[group] = groups[group] || res[i + 1] || ''; + } + return Object.assign(res, { groups }); + } + generate(params) { + return null; + } + get native() { + return new RegExp(this.source, this.flags); + } + static repeat(source, min = 0, max = Number.POSITIVE_INFINITY) { + const regexp = $mol_regexp.from(source); + const upper = Number.isFinite(max) ? max : ''; + const str = `(?:${regexp.source}){${min},${upper}}?`; + const regexp2 = new $mol_regexp(str, regexp.flags, regexp.groups); + regexp2.generate = params => { + const res = regexp.generate(params); + if (res) + return res; + if (min > 0) + return res; + return ''; + }; + return regexp2; + } + static repeat_greedy(source, min = 0, max = Number.POSITIVE_INFINITY) { + const regexp = $mol_regexp.from(source); + const upper = Number.isFinite(max) ? max : ''; + const str = `(?:${regexp.source}){${min},${upper}}`; + const regexp2 = new $mol_regexp(str, regexp.flags, regexp.groups); + regexp2.generate = params => { + const res = regexp.generate(params); + if (res) + return res; + if (min > 0) + return res; + return ''; + }; + return regexp2; + } + static vary(sources) { + const groups = []; + const chunks = sources.map(source => { + const regexp = $mol_regexp.from(source); + groups.push(...regexp.groups); + return regexp.source; + }); + return new $mol_regexp(`(?:${chunks.join('|')})`, '', groups); + } + static optional(source) { + return $mol_regexp.repeat_greedy(source, 0, 1); + } + static force_after(source) { + const regexp = $mol_regexp.from(source); + return new $mol_regexp(`(?=${regexp.source})`, regexp.flags, regexp.groups); + } + static forbid_after(source) { + const regexp = $mol_regexp.from(source); + return new $mol_regexp(`(?!${regexp.source})`, regexp.flags, regexp.groups); + } + static from(source, { ignoreCase, multiline } = { + ignoreCase: false, + multiline: false, + }) { + let flags = 'gsu'; + if (multiline) + flags += 'm'; + if (ignoreCase) + flags += 'i'; + if (typeof source === 'number') { + const src = `\\u{${source.toString(16)}}`; + const regexp = new $mol_regexp(src, flags); + regexp.generate = () => src; + return regexp; + } + if (typeof source === 'string') { + const src = source.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + const regexp = new $mol_regexp(src, flags); + regexp.generate = () => source; + return regexp; + } + else if (source instanceof $mol_regexp) { + const regexp = new $mol_regexp(source.source, flags, source.groups); + regexp.generate = params => source.generate(params); + return regexp; + } + if (source instanceof RegExp) { + const test = new RegExp('|' + source.source); + const groups = Array.from({ length: test.exec('').length - 1 }, (_, i) => String(i + 1)); + const regexp = new $mol_regexp(source.source, source.flags, groups); + regexp.generate = () => ''; + return regexp; + } + if (Array.isArray(source)) { + const patterns = source.map(src => Array.isArray(src) + ? $mol_regexp.optional(src) + : $mol_regexp.from(src)); + const chunks = patterns.map(pattern => pattern.source); + const groups = []; + let index = 0; + for (const pattern of patterns) { + for (let group of pattern.groups) { + if (Number(group) >= 0) { + groups.push(String(index++)); + } + else { + groups.push(group); + } + } + } + const regexp = new $mol_regexp(chunks.join(''), flags, groups); + regexp.generate = params => { + let res = ''; + for (const pattern of patterns) { + let sub = pattern.generate(params); + if (sub === null) + return ''; + res += sub; + } + return res; + }; + return regexp; + } + else { + const groups = []; + const chunks = Object.keys(source).map(name => { + groups.push(name); + const regexp = $mol_regexp.from(source[name]); + groups.push(...regexp.groups); + return `(${regexp.source})`; + }); + const regexp = new $mol_regexp(`(?:${chunks.join('|')})`, flags, groups); + const validator = new RegExp('^' + regexp.source + '$', flags); + regexp.generate = (params) => { + for (let option in source) { + if (option in params) { + if (typeof params[option] === 'boolean') { + if (!params[option]) + continue; + } + else { + const str = String(params[option]); + if (str.match(validator)) + return str; + $mol_fail(new Error(`Wrong param: ${option}=${str}`)); + } + } + else { + if (typeof source[option] !== 'object') + continue; + } + const res = $mol_regexp.from(source[option]).generate(params); + if (res) + return res; + } + return null; + }; + return regexp; + } + } + static unicode_only(...category) { + return new $mol_regexp(`\\p{${category.join('=')}}`); + } + static unicode_except(...category) { + return new $mol_regexp(`\\P{${category.join('=')}}`); + } + static char_range(from, to) { + return new $mol_regexp(`${$mol_regexp.from(from).source}-${$mol_regexp.from(to).source}`); + } + static char_only(...allowed) { + const regexp = allowed.map(f => $mol_regexp.from(f).source).join(''); + return new $mol_regexp(`[${regexp}]`); + } + static char_except(...forbidden) { + const regexp = forbidden.map(f => $mol_regexp.from(f).source).join(''); + return new $mol_regexp(`[^${regexp}]`); + } + static decimal_only = $mol_regexp.from(/\d/gsu); + static decimal_except = $mol_regexp.from(/\D/gsu); + static latin_only = $mol_regexp.from(/\w/gsu); + static latin_except = $mol_regexp.from(/\W/gsu); + static space_only = $mol_regexp.from(/\s/gsu); + static space_except = $mol_regexp.from(/\S/gsu); + static word_break_only = $mol_regexp.from(/\b/gsu); + static word_break_except = $mol_regexp.from(/\B/gsu); + static tab = $mol_regexp.from(/\t/gsu); + static slash_back = $mol_regexp.from(/\\/gsu); + static nul = $mol_regexp.from(/\0/gsu); + static char_any = $mol_regexp.from(/./gsu); + static begin = $mol_regexp.from(/^/gsu); + static end = $mol_regexp.from(/$/gsu); + static or = $mol_regexp.from(/|/gsu); + static line_end = $mol_regexp.from({ + win_end: [['\r'], '\n'], + mac_end: '\r', + }); + } + $.$mol_regexp = $mol_regexp; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_dimmer extends $.$mol_dimmer { + parts() { + const needle = this.needle(); + if (needle.length < 2) + return [this.haystack()]; + let chunks = []; + let strings = this.strings(); + for (let index = 0; index < strings.length; index++) { + if (strings[index] === '') + continue; + chunks.push((index % 2) ? this.High(index) : this.Low(index)); + } + return chunks; + } + strings() { + const options = this.needle().split(/\s+/g).filter(Boolean); + if (!options.length) + return [this.haystack()]; + const variants = { ...options }; + const regexp = $mol_regexp.from({ needle: variants }, { ignoreCase: true }); + return this.haystack().split(regexp); + } + string(index) { + return this.strings()[index]; + } + *view_find(check, path = []) { + if (check(this, this.haystack())) { + yield [...path, this]; + } + } + } + __decorate([ + $mol_mem + ], $mol_dimmer.prototype, "strings", null); + $$.$mol_dimmer = $mol_dimmer; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/dimmer/dimmer.view.css", "[mol_dimmer] {\n\tdisplay: block;\n\tmax-width: 100%;\n}\n\n[mol_dimmer_low] {\n\tdisplay: inline;\n\topacity: 0.8;\n}\n\n[mol_dimmer_high] {\n\tdisplay: inline;\n\tcolor: var(--mol_theme_focus);\n\ttext-shadow: 0 0;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_search) = class $mol_search extends ($.$mol_pop) { + clear(next){ + if(next !== undefined) return next; + return null; + } + Hotkey(){ + const obj = new this.$.$mol_hotkey(); + (obj.key) = () => ({"escape": (next) => (this.clear(next))}); + return obj; + } + nav_components(){ + return []; + } + nav_focused(next){ + if(next !== undefined) return next; + return null; + } + Nav(){ + const obj = new this.$.$mol_nav(); + (obj.keys_y) = () => ((this.nav_components())); + (obj.current_y) = (next) => ((this.nav_focused(next))); + return obj; + } + suggests_showed(next){ + if(next !== undefined) return next; + return false; + } + query(next){ + if(next !== undefined) return next; + return ""; + } + hint(){ + return (this.$.$mol_locale.text("$mol_search_hint")); + } + submit(next){ + if(next !== undefined) return next; + return null; + } + enabled(){ + return true; + } + keyboard(){ + return "search"; + } + enter(){ + return "search"; + } + bring(){ + return (this.Query().bring()); + } + Query(){ + const obj = new this.$.$mol_string(); + (obj.value) = (next) => ((this.query(next))); + (obj.hint) = () => ((this.hint())); + (obj.submit) = (next) => ((this.submit(next))); + (obj.enabled) = () => ((this.enabled())); + (obj.keyboard) = () => ((this.keyboard())); + (obj.enter) = () => ((this.enter())); + return obj; + } + Clear_icon(){ + const obj = new this.$.$mol_icon_cross(); + return obj; + } + Clear(){ + const obj = new this.$.$mol_button_minor(); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_search_Clear_hint"))); + (obj.click) = (next) => ((this.clear(next))); + (obj.sub) = () => ([(this.Clear_icon())]); + return obj; + } + anchor_content(){ + return [(this.Query()), (this.Clear())]; + } + menu_items(){ + return []; + } + Menu(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.menu_items())); + return obj; + } + suggest_select(id, next){ + if(next !== undefined) return next; + return null; + } + suggest_label(id){ + return ""; + } + Suggest_label(id){ + const obj = new this.$.$mol_dimmer(); + (obj.haystack) = () => ((this.suggest_label(id))); + (obj.needle) = () => ((this.query())); + return obj; + } + suggest_content(id){ + return [(this.Suggest_label(id))]; + } + suggests(){ + return []; + } + plugins(){ + return [ + ...(super.plugins()), + (this.Hotkey()), + (this.Nav()) + ]; + } + showed(next){ + return (this.suggests_showed(next)); + } + align_hor(){ + return "right"; + } + Anchor(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.anchor_content())); + return obj; + } + bubble_content(){ + return [(this.Menu())]; + } + Suggest(id){ + const obj = new this.$.$mol_button_minor(); + (obj.click) = (next) => ((this.suggest_select(id, next))); + (obj.sub) = () => ((this.suggest_content(id))); + return obj; + } + }; + ($mol_mem(($.$mol_search.prototype), "clear")); + ($mol_mem(($.$mol_search.prototype), "Hotkey")); + ($mol_mem(($.$mol_search.prototype), "nav_focused")); + ($mol_mem(($.$mol_search.prototype), "Nav")); + ($mol_mem(($.$mol_search.prototype), "suggests_showed")); + ($mol_mem(($.$mol_search.prototype), "query")); + ($mol_mem(($.$mol_search.prototype), "submit")); + ($mol_mem(($.$mol_search.prototype), "Query")); + ($mol_mem(($.$mol_search.prototype), "Clear_icon")); + ($mol_mem(($.$mol_search.prototype), "Clear")); + ($mol_mem(($.$mol_search.prototype), "Menu")); + ($mol_mem_key(($.$mol_search.prototype), "suggest_select")); + ($mol_mem_key(($.$mol_search.prototype), "Suggest_label")); + ($mol_mem(($.$mol_search.prototype), "Anchor")); + ($mol_mem_key(($.$mol_search.prototype), "Suggest")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_search extends $.$mol_search { + anchor_content() { + return [ + this.Query(), + ...this.query() ? [this.Clear()] : [], + ]; + } + suggests_showed(next = true) { + this.query(); + if (!this.focused()) + return false; + return next; + } + suggest_selected(next) { + if (next === undefined) + return; + this.query(next); + this.Query().focused(true); + } + nav_components() { + return [ + this.Query(), + ...this.menu_items(), + ]; + } + nav_focused(component) { + if (!this.focused()) + return null; + if (component == null) { + for (let comp of this.nav_components()) { + if (comp && comp.focused()) + return comp; + } + return null; + } + if (this.suggests_showed()) { + this.ensure_visible(component, "center"); + component.focused(true); + } + return component; + } + suggest_label(key) { + return key; + } + menu_items() { + return this.suggests().map((suggest) => this.Suggest(suggest)); + } + suggest_select(id, event) { + this.query(id); + this.Query().selection([id.length, id.length]); + this.Query().focused(true); + } + clear(event) { + this.query(''); + } + } + __decorate([ + $mol_mem + ], $mol_search.prototype, "anchor_content", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "suggests_showed", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "nav_focused", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "menu_items", null); + $$.$mol_search = $mol_search; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/search/search.view.css", "[mol_search] {\n\talign-self: flex-start;\n\tflex: auto;\n}\n\n[mol_search_anchor] {\n\tflex: 1 1 auto;\n}\n\n[mol_search_query] {\n\tflex-grow: 1;\n}\n\n[mol_search_menu] {\n\tmin-height: .75rem;\n\tdisplay: flex;\n}\n\n[mol_search_suggest] {\n\ttext-align: left;\n}\n\n[mol_search_suggest_label_high] {\n\tcolor: var(--mol_theme_shade);\n\ttext-shadow: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_link) = class $mol_link extends ($.$mol_view) { + uri_toggle(){ + return ""; + } + hint(){ + return ""; + } + hint_safe(){ + return (this.hint()); + } + target(){ + return "_self"; + } + file_name(){ + return ""; + } + current(){ + return false; + } + relation(){ + return ""; + } + event_click(next){ + if(next !== undefined) return next; + return null; + } + click(next){ + return (this.event_click(next)); + } + uri(){ + return ""; + } + dom_name(){ + return "a"; + } + uri_off(){ + return ""; + } + uri_native(){ + return null; + } + external(){ + return false; + } + attr(){ + return { + ...(super.attr()), + "href": (this.uri_toggle()), + "title": (this.hint_safe()), + "target": (this.target()), + "download": (this.file_name()), + "mol_link_current": (this.current()), + "rel": (this.relation()) + }; + } + sub(){ + return [(this.title())]; + } + arg(){ + return {}; + } + event(){ + return {...(super.event()), "click": (next) => (this.click(next))}; + } + }; + ($mol_mem(($.$mol_link.prototype), "event_click")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + class $mol_state_arg extends $mol_object { + prefix; + static prolog = ''; + static separator = ' '; + static href(next) { + return next || process.argv.slice(2).join(' '); + } + static href_normal() { + return this.link({}); + } + static dict(next) { + if (next !== void 0) + this.href(this.make_link(next)); + var href = this.href(); + var chunks = href.split(' '); + var params = {}; + chunks.forEach(chunk => { + if (!chunk) + return; + var vals = chunk.split('=').map(decodeURIComponent); + params[vals.shift()] = vals.join('='); + }); + return params; + } + static value(key, next) { + if (next === void 0) + return this.dict()[key] ?? null; + this.href(this.link({ [key]: next })); + return next; + } + static link(next) { + const params = {}; + var prev = this.dict(); + for (var key in prev) { + params[key] = prev[key]; + } + for (var key in next) { + params[key] = next[key]; + } + return this.make_link(params); + } + static make_link(next) { + const chunks = []; + for (const key in next) { + if (next[key] !== null) { + chunks.push([key, next[key]].map(encodeURIComponent).join('=')); + } + } + return chunks.join(' '); + } + static go(next) { + this.href(this.make_link(next)); + } + constructor(prefix = '') { + super(); + this.prefix = prefix; + } + value(key, next) { + return this.constructor.value(this.prefix + key, next); + } + sub(postfix) { + return new this.constructor(this.prefix + postfix + '.'); + } + link(next) { + const prefix = this.prefix; + const dict = {}; + for (var key in next) { + dict[prefix + key] = next[key]; + } + return this.constructor.link(dict); + } + } + __decorate([ + $mol_mem + ], $mol_state_arg, "href", null); + __decorate([ + $mol_mem + ], $mol_state_arg, "href_normal", null); + __decorate([ + $mol_mem + ], $mol_state_arg, "dict", null); + __decorate([ + $mol_mem_key + ], $mol_state_arg, "value", null); + __decorate([ + $mol_action + ], $mol_state_arg, "go", null); + $.$mol_state_arg = $mol_state_arg; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_link extends $.$mol_link { + uri_toggle() { + return this.current() ? this.uri_off() : this.uri(); + } + uri() { + return new this.$.$mol_state_arg(this.state_key()).link(this.arg()); + } + uri_off() { + const arg2 = {}; + for (let i in this.arg()) + arg2[i] = null; + return new this.$.$mol_state_arg(this.state_key()).link(arg2); + } + uri_native() { + const base = this.$.$mol_state_arg.href(); + return new URL(this.uri(), base); + } + current() { + const base = this.$.$mol_state_arg.href_normal(); + const target = this.uri_native().toString(); + if (base === target) + return true; + const args = this.arg(); + const keys = Object.keys(args).filter(key => args[key] != null); + if (keys.length === 0) + return false; + for (const key of keys) { + if (this.$.$mol_state_arg.value(key) != args[key]) + return false; + } + return true; + } + file_name() { + return null; + } + minimal_height() { + return Math.max(super.minimal_height(), 24); + } + external() { + return this.uri_native().origin !== $mol_dom_context.location.origin; + } + target() { + return this.external() ? '_blank' : '_self'; + } + hint_safe() { + try { + return this.hint(); + } + catch (error) { + $mol_fail_log(error); + return ''; + } + } + } + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_toggle", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_off", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_native", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "current", null); + $$.$mol_link = $mol_link; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const { rem } = $mol_style_unit; + $mol_style_define($mol_link, { + textDecoration: 'none', + color: $mol_theme.control, + stroke: 'currentcolor', + cursor: 'pointer', + padding: $mol_gap.text, + boxSizing: 'border-box', + position: 'relative', + minWidth: rem(2.5), + gap: $mol_gap.space, + border: { + radius: $mol_gap.round, + }, + ':hover': { + background: { + color: $mol_theme.hover, + }, + }, + ':focus-visible': { + outline: 'none', + background: { + color: $mol_theme.hover, + }, + }, + ':active': { + color: $mol_theme.focus, + }, + '@': { + mol_link_current: { + 'true': { + color: $mol_theme.current, + textShadow: '0 0', + } + } + }, + }); +})($ || ($ = {})); + +; + ($.$mol_page) = class $mol_page extends ($.$mol_view) { + tabindex(){ + return -1; + } + Logo(){ + return null; + } + title_content(){ + return [(this.Logo()), (this.title())]; + } + Title(){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("h1"); + (obj.sub) = () => ((this.title_content())); + return obj; + } + tools(){ + return []; + } + Tools(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.tools())); + return obj; + } + head(){ + return [(this.Title()), (this.Tools())]; + } + Head(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (64); + (obj.dom_name) = () => ("header"); + (obj.sub) = () => ((this.head())); + return obj; + } + body_scroll_top(next){ + return (this.Body().scroll_top(next)); + } + body(){ + return []; + } + Body_content(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.body())); + return obj; + } + body_content(){ + return [(this.Body_content())]; + } + Body(){ + const obj = new this.$.$mol_scroll(); + (obj.sub) = () => ((this.body_content())); + return obj; + } + foot(){ + return []; + } + Foot(){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("footer"); + (obj.sub) = () => ((this.foot())); + return obj; + } + dom_name(){ + return "article"; + } + field(){ + return {...(super.field()), "tabIndex": (this.tabindex())}; + } + sub(){ + return [ + (this.Head()), + (this.Body()), + (this.Foot()) + ]; + } + }; + ($mol_mem(($.$mol_page.prototype), "Title")); + ($mol_mem(($.$mol_page.prototype), "Tools")); + ($mol_mem(($.$mol_page.prototype), "Head")); + ($mol_mem(($.$mol_page.prototype), "Body_content")); + ($mol_mem(($.$mol_page.prototype), "Body")); + ($mol_mem(($.$mol_page.prototype), "Foot")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem } = $mol_style_unit; + const { hsla } = $mol_style_func; + $mol_style_define($mol_page, { + display: 'flex', + flex: { + basis: 'auto', + direction: 'column', + }, + position: 'relative', + alignSelf: 'stretch', + maxWidth: per(100), + maxHeight: per(100), + boxSizing: 'border-box', + color: $mol_theme.text, + ':focus': { + outline: 'none', + }, + Head: { + display: 'flex', + flexWrap: 'wrap', + justifyContent: 'flex-end', + flex: 'none', + position: 'relative', + margin: 0, + minHeight: rem(4), + padding: $mol_gap.block, + background: { + color: $mol_theme.card, + }, + border: { + radius: $mol_gap.round, + }, + box: { + shadow: [[0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla(0, 0, 0, .25)]], + }, + zIndex: 2, + }, + Title: { + minHeight: rem(2), + margin: 0, + padding: $mol_gap.text, + gap: $mol_gap.text, + wordBreak: 'normal', + textShadow: '0 0', + font: { + size: 'inherit', + weight: 'normal', + }, + flex: { + grow: 1, + shrink: 1, + basis: 'auto', + }, + }, + Tools: { + flex: { + basis: 'auto', + grow: 1000, + shrink: 1, + }, + display: 'flex', + justifyContent: 'flex-end', + alignItems: 'flex-start', + flexWrap: 'wrap', + }, + Body: { + flex: { + grow: 1000, + shrink: 1, + basis: per(100), + }, + }, + Body_content: { + padding: $mol_gap.block, + flex: { + direction: 'column', + shrink: 1, + grow: 1, + }, + justify: { + self: 'stretch', + }, + }, + Foot: { + display: 'flex', + justifyContent: 'space-between', + flex: 'none', + margin: 0, + background: { + color: $mol_theme.card, + }, + border: { + radius: $mol_gap.round, + }, + box: { + shadow: [[0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla(0, 0, 0, .25)]], + }, + zIndex: 1, + padding: $mol_gap.block, + ':empty': { + display: 'none', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_book2_catalog) = class $mol_book2_catalog extends ($.$mol_book2) { + Menu_title(){ + return (this.Menu().Title()); + } + menu_title(){ + return ""; + } + Menu_tools(){ + return (this.Menu().Tools()); + } + Menu_logo(){ + return null; + } + menu_head(){ + return [(this.Menu_title()), (this.Menu_tools())]; + } + menu_filter(next){ + if(next !== undefined) return next; + return ""; + } + Menu_filter(){ + const obj = new this.$.$mol_search(); + (obj.query) = (next) => ((this.menu_filter(next))); + return obj; + } + arg(id){ + return {}; + } + spread_title(id){ + return ""; + } + Menu_link_title(id){ + const obj = new this.$.$mol_dimmer(); + (obj.needle) = () => ((this.menu_filter())); + (obj.haystack) = () => ((this.spread_title(id))); + return obj; + } + menu_link_content(id){ + return [(this.Menu_link_title(id))]; + } + Menu_link(id){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.arg(id))); + (obj.sub) = () => ((this.menu_link_content(id))); + return obj; + } + menu_links(){ + return [(this.Menu_link("0"))]; + } + Menu_links(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.menu_links())); + return obj; + } + menu_body(){ + return [(this.Menu_filter()), (this.Menu_links())]; + } + menu_foot(){ + return []; + } + Menu(){ + const obj = new this.$.$mol_page(); + (obj.title) = () => ((this.menu_title())); + (obj.Logo) = () => ((this.Menu_logo())); + (obj.tools) = () => ([...(this.menu_tools()), ...(this.addon_tools())]); + (obj.head) = () => ((this.menu_head())); + (obj.body) = () => ((this.menu_body())); + (obj.foot) = () => ((this.menu_foot())); + return obj; + } + spread_close_arg(){ + return {}; + } + Spread_close_icon(){ + const obj = new this.$.$mol_icon_cross(); + return obj; + } + param(){ + return ""; + } + spread(next){ + if(next !== undefined) return next; + return ""; + } + spreads(){ + return {}; + } + Spread(id){ + const obj = new this.$.$mol_view(); + return obj; + } + Spread_default(){ + return null; + } + spread_ids(){ + return []; + } + menu_filter_enabled(){ + return false; + } + spread_ids_filtered(){ + return []; + } + menu_tools(){ + return []; + } + addon_tools(){ + return []; + } + pages(){ + return [(this.Menu())]; + } + Spread_close(){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.spread_close_arg())); + (obj.sub) = () => ([(this.Spread_close_icon())]); + return obj; + } + }; + ($mol_mem(($.$mol_book2_catalog.prototype), "menu_filter")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu_filter")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Menu_link_title")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Menu_link")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu_links")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Spread_close_icon")); + ($mol_mem(($.$mol_book2_catalog.prototype), "spread")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Spread")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Spread_close")); + + +; +"use strict"; +var $; +(function ($) { + function $mol_match_text(query, values) { + const tags = query.toLowerCase().trim().split(/\s+/).filter(tag => tag); + if (tags.length === 0) + return () => true; + return (variant) => { + const vals = values(variant); + return tags.every(tag => vals.some(val => val.toLowerCase().indexOf(tag) >= 0)); + }; + } + $.$mol_match_text = $mol_match_text; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_book2_catalog extends $.$mol_book2_catalog { + pages() { + const spread = this.spread() === '' ? this.Spread_default() : this.Spread(this.spread()); + return [ + this.Menu(), + ...spread + ? spread instanceof $mol_book2 + ? spread.pages() + : [spread] + : [], + ]; + } + spread_ids() { + return Object.keys(this.spreads()); + } + menu_body() { + return [ + ...this.menu_filter_enabled() ? [this.Menu_filter()] : [], + this.Menu_links(), + ]; + } + menu_filter_enabled() { + return this.spread_ids().length >= 10; + } + menu_links() { + return this.spread_ids_filtered() + .map(spread => this.Menu_link(spread)); + } + spread_ids_filtered() { + return this.spread_ids() + .filter($mol_match_text(this.menu_filter(), spread => [this.spread_title(spread)])); + } + Spread(id) { + return this.spreads()[id]; + } + Spread_default() { + return this.spreads()['']; + } + spread(next) { + return this.$.$mol_state_arg.value(this.param(), next) ?? ''; + } + arg(spread) { + return { [this.param()]: spread || null }; + } + spread_close_arg() { + return { [this.param()]: null }; + } + spread_title(spread) { + const page = this.Spread(spread); + return page instanceof $mol_book2 + && page.menu_title() + || page.title(); + } + } + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "pages", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread_ids", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "menu_body", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "menu_links", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread_ids_filtered", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread", null); + $$.$mol_book2_catalog = $mol_book2_catalog; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/book2/catalog/catalog.view.css", "[mol_book2_catalog_menu_filter] {\n\tflex-shrink: 0;\n\tflex-grow: 0;\n\talign-self: stretch;\n}\n\n"); +})($ || ($ = {})); + +; + ($.$mol_icon_plus) = class $mol_icon_plus extends ($.$mol_icon) { + path(){ + return "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_part; + (function ($hyoo_crus_part) { + $hyoo_crus_part[$hyoo_crus_part["land"] = 219] = "land"; + $hyoo_crus_part[$hyoo_crus_part["pass"] = 255] = "pass"; + $hyoo_crus_part[$hyoo_crus_part["gift"] = 247] = "gift"; + $hyoo_crus_part[$hyoo_crus_part["gist"] = 0] = "gist"; + $hyoo_crus_part[$hyoo_crus_part["hash"] = 253] = "hash"; + $hyoo_crus_part[$hyoo_crus_part["rock"] = 245] = "rock"; + $hyoo_crus_part[$hyoo_crus_part["root"] = 1] = "root"; + $hyoo_crus_part[$hyoo_crus_part["buck"] = 9] = "buck"; + })($hyoo_crus_part = $.$hyoo_crus_part || ($.$hyoo_crus_part = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_encode(src) { + throw new Error('Not implemented'); + } + $.$mol_base64_encode = $mol_base64_encode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_encode_node(str) { + if (!str) + return ''; + if (Buffer.isBuffer(str)) + return str.toString('base64'); + return Buffer.from(str).toString('base64'); + } + $.$mol_base64_encode_node = $mol_base64_encode_node; + $.$mol_base64_encode = $mol_base64_encode_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_decode(base64) { + throw new Error('Not implemented'); + } + $.$mol_base64_decode = $mol_base64_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_decode_node(base64Str) { + base64Str = base64Str.replace(/-/g, '+').replace(/_/g, '/'); + const buffer = Buffer.from(base64Str, 'base64'); + return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); + } + $.$mol_base64_decode_node = $mol_base64_decode_node; + $.$mol_base64_decode = $mol_base64_decode_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_ae_encode(buffer) { + return $mol_base64_encode(buffer).replace(/\+/g, 'æ').replace(/\//g, 'Æ').replace(/=/g, ''); + } + $.$mol_base64_ae_encode = $mol_base64_ae_encode; + function $mol_base64_ae_decode(str) { + return $mol_base64_decode(str.replace(/æ/g, '+').replace(/Æ/g, '/')); + } + $.$mol_base64_ae_decode = $mol_base64_ae_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_buffer extends DataView { + static from(array) { + if (typeof array === 'number') + array = new Uint8Array(array); + if (typeof array === 'string') + array = $mol_base64_ae_decode(array); + return new this(array.buffer, array.byteOffset, array.byteLength); + } + static toString() { + return $$.$mol_func_name(this); + } + getUint48(offset, LE = false) { + if (offset % 4) { + return this.getUint16(offset, LE) + this.getUint32(offset + 2, LE) * 2 ** 16; + } + else { + return this.getUint32(offset, LE) + this.getUint16(offset + 4, LE) * 2 ** 32; + } + } + setUint48(offset, value, LE = false) { + if (offset % 4) { + this.setUint16(offset, value & ((1 << 16) - 1), LE); + this.setUint32(offset + 2, (value / 2 ** 16) | 0, LE); + } + else { + this.setUint32(offset, value | 0, LE); + this.setUint16(offset + 4, (value / 2 ** 32) | 0, LE); + } + } + int8(offset, next) { + if (next === undefined) + return this.getInt8(offset); + if (next >= -(2 ** 7) && next < 2 ** 7) + return this.setInt8(offset, next), next; + $mol_fail(new Error(`Wrong int8 value ${next}`)); + } + uint8(offset, next) { + if (next === undefined) + return this.getUint8(offset); + if (next >= 0 && next < 2 ** 8) + return this.setUint8(offset, next), next; + $mol_fail(new Error(`Wrong uint8 value ${next}`)); + } + int16(offset, next) { + if (next === undefined) + return this.getInt16(offset, !!'LE'); + if (next >= -(2 ** 15) && next < 2 ** 15) + return this.setInt16(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int16 value ${next}`)); + } + uint16(offset, next) { + if (next === undefined) + return this.getUint16(offset, !!'LE'); + if (next >= 0 && next < 2 ** 16) + return this.setUint16(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint16 value ${next}`)); + } + int32(offset, next) { + if (next === undefined) + return this.getInt32(offset, !!'LE'); + if (next >= -(2 ** 31) && next < 2 ** 31) + return this.setInt32(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int32 value ${next}`)); + } + uint32(offset, next) { + if (next === undefined) + return this.getUint32(offset, !!'LE'); + if (next >= 0 && next < 2 ** 32) + return this.setUint32(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint32 value ${next}`)); + } + uint48(offset, next) { + if (next === undefined) + return this.getUint48(offset, !!'LE'); + if (next >= 0 && next < 2 ** 48) + return this.setUint48(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint48 value ${next}`)); + } + int64(offset, next) { + if (next === undefined) + return this.getBigInt64(offset, !!'LE'); + if (next >= -(2 ** 63) && next < 2 ** 63) + return this.setBigInt64(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int64 value ${next}`)); + } + uint64(offset, next) { + if (next === undefined) + return this.getBigUint64(offset, !!'LE'); + if (next >= 0 && next < 2 ** 64) + return this.setBigUint64(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint64 value ${next}`)); + } + float32(offset, next) { + if (next !== undefined) + this.setFloat32(offset, next, !!'LE'); + return this.getFloat32(offset, !!'LE'); + } + float64(offset, next) { + if (next !== undefined) + this.setFloat64(offset, next, !!'LE'); + return this.getFloat64(offset, !!'LE'); + } + asArray() { + return new Uint8Array(this.buffer, this.byteOffset, this.byteLength); + } + toString() { + return $mol_base64_ae_encode(this.asArray()); + } + } + $.$mol_buffer = $mol_buffer; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_data_tagged(config) { + return config; + } + $.$mol_data_tagged = $mol_data_tagged; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$hyoo_crus_ref = $mol_data_tagged({ $hyoo_crus_ref: (val) => { + if (typeof val === 'string') + val = Symbol.for(val.replace(/_+$/, '')); + if (/^(([a-zæA-ZÆ0-9]{8})?_){0,2}([a-zæA-ZÆ0-9]{8})?$/.test(val.description)) + return val; + $mol_fail(new Error(`Wrong ref (${val.description})`)); + } }).$hyoo_crus_ref; + function $hyoo_crus_ref_land(ref) { + return $.$hyoo_crus_ref(ref.description.slice(0, 17)); + } + $.$hyoo_crus_ref_land = $hyoo_crus_ref_land; + function $hyoo_crus_ref_peer(ref) { + return ref.description.split('_')[0] ?? ''; + } + $.$hyoo_crus_ref_peer = $hyoo_crus_ref_peer; + function $hyoo_crus_ref_head(ref) { + return ref.description.split('_')[2] ?? ''; + } + $.$hyoo_crus_ref_head = $hyoo_crus_ref_head; + function $hyoo_crus_ref_encode(ref) { + return $mol_base64_ae_decode((ref.description || '_') + .split(/_/g) + .map(numb => numb || 'AAAAAAAA') + .join('')); + } + $.$hyoo_crus_ref_encode = $hyoo_crus_ref_encode; + function $hyoo_crus_ref_decode(bin) { + return $.$hyoo_crus_ref([...$mol_base64_ae_encode(bin).match(/(.{8})/g) ?? []] + .map(numb => numb === 'AAAAAAAA' ? '' : numb) + .join('_').replace(/_+$/, '')); + } + $.$hyoo_crus_ref_decode = $hyoo_crus_ref_decode; + function $hyoo_crus_ref_relate(base, ref) { + if (!ref.description.padEnd(18, '_').startsWith(base.description.slice(0, 18).padEnd(18, '_'))) + return ref; + return $.$hyoo_crus_ref(('__' + (ref.description.split('_')[2] ?? '')).replace(/_+$/, '')); + } + $.$hyoo_crus_ref_relate = $hyoo_crus_ref_relate; + function $hyoo_crus_ref_resolve(base, ref) { + if (!ref.description) + return $hyoo_crus_ref_land(base); + if (!ref.description.startsWith('__')) + return ref; + return $.$hyoo_crus_ref(base.description.slice(0, 18).padEnd(18, '_') + ref.description.slice(2)); + } + $.$hyoo_crus_ref_resolve = $hyoo_crus_ref_resolve; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_url_encode(buffer) { + return $mol_base64_encode(buffer).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); + } + $.$mol_base64_url_encode = $mol_base64_url_encode; + function $mol_base64_url_decode(str) { + return $mol_base64_decode(str.replace(/-/g, '+').replace(/_/g, '/')); + } + $.$mol_base64_url_decode = $mol_base64_url_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_crypto_native = $node.crypto.webcrypto; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const algorithm = { + name: 'ECDSA', + hash: 'SHA-256', + namedCurve: "P-256", + }; + class $mol_crypto_key extends $mol_buffer { + static from(serial) { + if (typeof serial === 'string') { + serial = new Uint8Array([ + ...$mol_base64_url_decode(serial.slice(0, 43)), + ...$mol_base64_url_decode(serial.slice(43, 86)), + ...$mol_base64_url_decode(serial.slice(86, 129)), + ]); + } + return super.from(serial); + } + asArray() { + return new Uint8Array(this.buffer, this.byteOffset, this.byteLength); + } + toString() { + const arr = this.asArray(); + return $mol_base64_url_encode(arr.subarray(0, 32)) + + $mol_base64_url_encode(arr.subarray(32, 64)) + + $mol_base64_url_encode(arr.subarray(64)); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key.prototype, "toString", null); + $.$mol_crypto_key = $mol_crypto_key; + class $mol_crypto_key_public extends $mol_crypto_key { + static size_str = 86; + static size_bin = 64; + async native() { + const str = this.toString(); + return $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['verify'], + kty: "EC", + x: str.slice(0, 43), + y: str.slice(43, 86), + }, algorithm, true, ['verify']); + } + async verify(data, sign) { + return await $mol_crypto_native.subtle.verify(algorithm, await this.native(), sign, data); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key_public.prototype, "native", null); + $.$mol_crypto_key_public = $mol_crypto_key_public; + class $mol_crypto_key_private extends $mol_crypto_key { + static size_str = 129; + static size_bin = 96; + static size_sign = 64; + static async generate() { + const pair = await $mol_crypto_native.subtle.generateKey(algorithm, true, ['sign', 'verify']); + const { x, y, d } = await $mol_crypto_native.subtle.exportKey('jwk', pair.privateKey); + return this.from(x + y + d); + } + async native() { + const str = this.toString(); + return await $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['sign'], + kty: "EC", + x: str.slice(0, 43), + y: str.slice(43, 86), + d: str.slice(86, 129), + }, algorithm, true, ['sign']); + } + public() { + return new $mol_crypto_key_public(this.buffer, this.byteOffset, this.byteOffset + 64); + } + async sign(data) { + return new Uint8Array(await $mol_crypto_native.subtle.sign(algorithm, await this.native(), data)); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key_private.prototype, "native", null); + __decorate([ + $mol_memo.method + ], $mol_crypto_key_private.prototype, "public", null); + $.$mol_crypto_key_private = $mol_crypto_key_private; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const algorithm = { + name: 'AES-CBC', + length: 128, + tagLength: 32, + }; + class $mol_crypto_secret extends Object { + native; + static size = 16; + constructor(native) { + super(); + this.native = native; + } + static async generate() { + return new this(await $mol_crypto_native.subtle.generateKey(algorithm, true, ['encrypt', 'decrypt'])); + } + static async from(serial) { + return new this(await $mol_crypto_native.subtle.importKey('raw', serial, algorithm, true, ['encrypt', 'decrypt'])); + } + static async pass(pass, salt) { + return new this(await $mol_crypto_native.subtle.deriveKey({ + name: "PBKDF2", + salt, + iterations: 10_000, + hash: "SHA-256", + }, await $mol_crypto_native.subtle.importKey("raw", $mol_charset_encode(pass), "PBKDF2", false, ["deriveKey"]), algorithm, true, ['encrypt', 'decrypt'])); + } + static async derive(private_serial, public_serial) { + const ecdh = { name: "ECDH", namedCurve: "P-256" }; + const jwk = { crv: 'P-256', ext: true, kty: 'EC' }; + const private_key = await $mol_crypto_native.subtle.importKey('jwk', { + ...jwk, + key_ops: ['deriveKey'], + x: private_serial.slice(0, 43), + y: private_serial.slice(43, 86), + d: private_serial.slice(86, 129), + }, ecdh, true, ['deriveKey']); + const public_key = await $mol_crypto_native.subtle.importKey('jwk', { + ...jwk, + key_ops: [], + x: public_serial.slice(0, 43), + y: public_serial.slice(43, 86), + }, ecdh, true, []); + const secret = await $mol_crypto_native.subtle.deriveKey({ + name: "ECDH", + public: public_key, + }, private_key, algorithm, true, ["encrypt", "decrypt"]); + return new this(secret); + } + async serial() { + return new Uint8Array(await $mol_crypto_native.subtle.exportKey('raw', this.native)); + } + async encrypt(open, salt) { + return new Uint8Array(await $mol_crypto_native.subtle.encrypt({ + ...algorithm, + iv: salt, + }, this.native, open)); + } + async decrypt(closed, salt) { + return new Uint8Array(await $mol_crypto_native.subtle.decrypt({ + ...algorithm, + iv: salt, + }, this.native, closed)); + } + } + $.$mol_crypto_secret = $mol_crypto_secret; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_auth extends $mol_crypto_key_private { + static current(next) { + $mol_wire_solid(); + if (next === undefined) { + const key = String($mol_state_local.value('$hyoo_crus_auth') ?? ''); + if (key) + return $hyoo_crus_auth.from(key); + } + if (!next) + next = this.grab(); + $mol_state_local.value('$hyoo_crus_auth', next.toString()); + return next; + } + static embryos = []; + static grab() { + if (this.embryos.length) + return this.from(this.embryos.pop()); + return $mol_wire_sync(this).generate(); + } + static async generate() { + for (let i = 0; i < 4096; ++i) { + const auth = await super.generate(); + if (auth.uint8(0) !== $hyoo_crus_unit_kind.pass) + continue; + return this.from(auth); + } + $mol_fail(new Error(`Too long key generation`)); + } + lord() { + return $hyoo_crus_ref_decode(new Uint8Array(this.buffer, 2, 12)); + } + peer() { + return $mol_base64_ae_encode(new Uint8Array(this.buffer, 2, 6)); + } + secret_mutual(pub) { + return $mol_wire_sync($mol_crypto_secret).derive(this.toString(), pub.toString()); + } + } + __decorate([ + $mol_memo.method + ], $hyoo_crus_auth.prototype, "lord", null); + __decorate([ + $mol_memo.method + ], $hyoo_crus_auth.prototype, "peer", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_auth.prototype, "secret_mutual", null); + __decorate([ + $mol_mem + ], $hyoo_crus_auth, "current", null); + __decorate([ + $mol_action + ], $hyoo_crus_auth, "grab", null); + $.$hyoo_crus_auth = $hyoo_crus_auth; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_face_map extends Map { + last = 0; + total = 0; + constructor(entries) { + super(); + if (entries) + this.sync(entries); + } + sync(right) { + if (right instanceof $hyoo_crus_face_map) + this.total = right.total; + for (const [peer, time] of right) + this.time_max(peer, time); + } + time_max(peer, time) { + if (this.last < time) + this.last = time; + let prev = this.get(peer) ?? 0; + if (prev < time) + this.set(peer, time); + } + tick() { + return this.last = Math.max(this.last + 1, Date.now()); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), $mol_dev_format_shade(' ', this.total), $mol_dev_format_shade(' ', new Date(this.last))); + } + } + __decorate([ + $mol_action + ], $hyoo_crus_face_map.prototype, "tick", null); + $.$hyoo_crus_face_map = $hyoo_crus_face_map; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_dict extends Map { + pub = new $mol_wire_pub; + has(key) { + this.pub.promote(); + return super.has(key); + } + get(key) { + this.pub.promote(); + return super.get(key); + } + entries() { + this.pub.promote(); + return super.entries(); + } + keys() { + this.pub.promote(); + return super.keys(); + } + values() { + this.pub.promote(); + return super.values(); + } + forEach(task, self) { + this.pub.promote(); + super.forEach(task, self); + } + [Symbol.iterator]() { + this.pub.promote(); + return super[Symbol.iterator](); + } + get size() { + this.pub.promote(); + return super.size; + } + set(key, value) { + if (super.get(key) === value) + return this; + super.set(key, value); + this.pub?.emit(); + return this; + } + delete(key) { + const res = super.delete(key); + if (res) + this.pub.emit(); + return res; + } + clear() { + if (!super.size) + return; + super.clear(); + this.pub.emit(); + } + item(key, next) { + if (next === undefined) + return this.get(key) ?? null; + if (next === null) + this.delete(key); + else + this.set(key, next); + return next; + } + } + $.$mol_wire_dict = $mol_wire_dict; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_set extends Set { + pub = new $mol_wire_pub; + has(value) { + this.pub.promote(); + return super.has(value); + } + entries() { + this.pub.promote(); + return super.entries(); + } + keys() { + this.pub.promote(); + return super.keys(); + } + values() { + this.pub.promote(); + return super.values(); + } + forEach(task, self) { + this.pub.promote(); + super.forEach(task, self); + } + [Symbol.iterator]() { + this.pub.promote(); + return super[Symbol.iterator](); + } + get size() { + this.pub.promote(); + return super.size; + } + add(value) { + if (super.has(value)) + return this; + super.add(value); + this.pub.emit(); + return this; + } + delete(value) { + const res = super.delete(value); + if (res) + this.pub.emit(); + return res; + } + clear() { + if (!super.size) + return; + super.clear(); + this.pub.emit(); + } + item(val, next) { + if (next === undefined) + return this.has(val); + if (next) + this.add(val); + else + this.delete(val); + return next; + } + } + $.$mol_wire_set = $mol_wire_set; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_area; + (function ($hyoo_crus_area) { + $hyoo_crus_area[$hyoo_crus_area["data"] = 0] = "data"; + $hyoo_crus_area[$hyoo_crus_area["meta"] = 1] = "meta"; + })($hyoo_crus_area = $.$hyoo_crus_area || ($.$hyoo_crus_area = {})); + function $hyoo_crus_area_of(numb) { + const num = $mol_base64_ae_decode(numb || 'AAAAAAAA')[0]; + return $hyoo_crus_area[num % 2]; + } + $.$hyoo_crus_area_of = $hyoo_crus_area_of; + function $hyoo_crus_area_to(numb, area) { + const buf = $mol_base64_ae_decode(numb || 'AAAAAAAA'); + buf[0] -= buf[0] % 2 - $hyoo_crus_area[area]; + numb = $mol_base64_ae_encode(buf); + return numb; + } + $.$hyoo_crus_area_to = $hyoo_crus_area_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_rank; + (function ($hyoo_crus_rank) { + $hyoo_crus_rank[$hyoo_crus_rank["nil"] = 0] = "nil"; + $hyoo_crus_rank[$hyoo_crus_rank["get"] = 1] = "get"; + $hyoo_crus_rank[$hyoo_crus_rank["add"] = 3] = "add"; + $hyoo_crus_rank[$hyoo_crus_rank["mod"] = 7] = "mod"; + $hyoo_crus_rank[$hyoo_crus_rank["law"] = 15] = "law"; + })($hyoo_crus_rank = $.$hyoo_crus_rank || ($.$hyoo_crus_rank = {})); + $.$hyoo_crus_rank_private = {}; + $.$hyoo_crus_rank_public = { '': $hyoo_crus_rank.get }; + $.$hyoo_crus_rank_lobby = { '': $hyoo_crus_rank.add }; + $.$hyoo_crus_rank_orgy = { '': $hyoo_crus_rank.mod }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_fund extends $mol_object { + item_make; + constructor(item_make) { + super(); + this.item_make = item_make; + } + Item(head) { + return this.item_make(head); + } + } + __decorate([ + $mol_mem_key + ], $hyoo_crus_fund.prototype, "Item", null); + $.$hyoo_crus_fund = $hyoo_crus_fund; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let sponge = new Uint32Array(80); + function $mol_crypto_hash(data) { + const bits = data.byteLength << 3; + const kbits = bits >> 5; + const kword = 0x80 << (24 - bits & 0b11111); + const bytes = 16 + (bits + 64 >>> 9 << 4); + const klens = bytes - 1; + const words = new Int32Array(data.buffer, data.byteOffset, data.byteLength >> 2); + let tail = 0; + for (let i = words.length * 4; i < data.length; ++i) { + tail |= data[i] << (i << 3 & 0b11000); + } + const hash = new Int32Array([1732584193, -271733879, -1732584194, 271733878, -1009589776]); + for (let i = 0; i < bytes; i += 16) { + let h0 = hash[0]; + let h1 = hash[1]; + let h2 = hash[2]; + let h3 = hash[3]; + let h4 = hash[4]; + for (let j = 0; j < 80; ++j) { + let turn; + if (j < 16) { + const k = i + j; + if (k === klens) { + sponge[j] = bits; + } + else { + let word = k === words.length ? tail : + k > words.length ? 0 : + words[k]; + word = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF; + if (k === kbits) + word |= kword; + sponge[j] = word; + } + turn = (h1 & h2 | ~h1 & h3) + 1518500249; + } + else { + const shuffle = sponge[j - 3] ^ sponge[j - 8] ^ sponge[j - 14] ^ sponge[j - 16]; + sponge[j] = shuffle << 1 | shuffle >>> 31; + turn = + j < 20 ? (h1 & h2 | ~h1 & h3) + 1518500249 : + j < 40 ? (h1 ^ h2 ^ h3) + 1859775393 : + j < 60 ? (h1 & h2 | h1 & h3 | h2 & h3) - 1894007588 : + (h1 ^ h2 ^ h3) - 899497514; + } + const next = turn + h4 + (sponge[j] >>> 0) + ((h0 << 5) | (h0 >>> 27)); + h4 = h3; + h3 = h2; + h2 = (h1 << 30) | (h1 >>> 2); + h1 = h0; + h0 = next; + } + hash[0] += h0; + hash[1] += h1; + hash[2] += h2; + hash[3] += h3; + hash[4] += h4; + } + for (let i = 0; i < 20; ++i) { + const word = hash[i]; + hash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF; + } + return new Uint8Array(hash.buffer); + } + $.$mol_crypto_hash = $mol_crypto_hash; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_pack extends $mol_buffer { + toBlob() { + return new Blob([this], { type: 'application/vnd.hyoo_crus_pack' }); + } + parts(land = null) { + const lands = {}; + if (land) + lands[land] = { faces: new $hyoo_crus_face_map, units: [] }; + const rocks = []; + const buf = this.asArray(); + for (let offset = 0; offset < this.byteLength;) { + const kind = this.uint8(offset); + if (kind % 2) { + switch (kind) { + case $hyoo_crus_part.land: { + const faces = new $hyoo_crus_face_map; + faces.total = this.uint32(offset) >> 8; + offset += 4; + land = $hyoo_crus_ref_decode(new Uint8Array(buf.buffer, buf.byteOffset + offset, 18)); + offset += 18; + const len = this.uint16(offset); + offset += 2; + for (let i = 0; i < len; ++i) { + const peer = $mol_base64_ae_encode(new Uint8Array(buf.buffer, buf.byteOffset + offset, 6)); + const time = this.uint48(offset + 6); + faces.time_max(peer, time); + offset += 12; + } + lands[land] = { faces, units: [] }; + continue; + } + case $hyoo_crus_part.pass: { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_pass(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + case $hyoo_crus_part.gift: { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_gift(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + case $hyoo_crus_part.hash: { + const hash = buf.slice(offset += 4, offset += 24); + rocks.push([hash, null]); + continue; + } + case $hyoo_crus_part.rock: { + const size = this.uint32(offset) >> 8; + if (size === 0) { + const hash = buf.slice(offset + 4, offset + 4 + 24); + rocks.push([hash, null]); + offset += 4 + 24; + } + else { + const rock = buf.slice(offset + 4, offset + 4 + size); + const hash = $mol_crypto_hash(rock); + rocks.push([hash, rock]); + offset += Math.ceil(size / 8 + .5) * 8; + } + continue; + } + case $hyoo_crus_part.buck: { + offset += 128; + continue; + } + default: $mol_fail(new Error(`Unknown CRUS Pack Part (${kind.toString(2)}) at (${offset.toString(16)})`)); + } + } + else { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_gist(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + } + return { lands, rocks }; + } + static make({ lands, rocks }) { + let size = 0; + for (const land of Reflect.ownKeys(lands)) { + size += 24; + size += lands[land].faces.size * 12; + size += lands[land].units.length * $hyoo_crus_unit.size; + } + for (const [hash, rock] of rocks) { + size += rock ? Math.ceil(rock.length / 8 + .5) * 8 : 24; + } + if (size === 0) + return null; + const buff = new Uint8Array(size); + const pack = new $hyoo_crus_pack(buff.buffer); + let offset = 0; + for (const land of Reflect.ownKeys(lands)) { + const faces = lands[land].faces; + pack.uint32(offset, $hyoo_crus_part.land | (faces.total << 8)); + buff.set($hyoo_crus_ref_encode(land), offset + 4); + pack.uint16(offset + 22, faces.size); + offset += 24; + for (const [peer, time] of faces) { + buff.set($mol_base64_ae_decode(peer), offset); + pack.uint48(offset + 6, time); + offset += 12; + } + for (const unit of lands[land].units) { + buff.set(unit.asArray(), offset); + offset += unit.byteLength; + } + } + for (const [hash, rock] of rocks) { + const len = rock?.length ?? 0; + pack.uint32(offset, $hyoo_crus_part.rock | (len << 8)); + if (rock) + buff.set(rock, offset + 4); + else + buff.set(hash, offset + 4); + offset += rock ? Math.ceil(len / 8 + .5) * 8 : 24; + } + return pack; + } + } + $.$hyoo_crus_pack = $hyoo_crus_pack; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_mine extends $mol_object { + static hash(blob) { + return $mol_crypto_hash(blob); + } + static rock(hash, next) { + $mol_wire_solid(); + return next ?? null; + } + static save(blob) { + const hash = this.hash(blob); + this.rock(hash, blob); + return hash; + } + } + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine, "hash", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine, "rock", null); + __decorate([ + $mol_action + ], $hyoo_crus_mine, "save", null); + $.$hyoo_crus_mine = $hyoo_crus_mine; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_mine_node extends $hyoo_crus_mine { + static root() { + return $mol_file.relative('.crus'); + } + static rock_file(hash) { + const id = $mol_base64_ae_encode(hash); + return this.root().resolve(`rock/${id.slice(0, 2)}/${id}.blob`); + } + static rock(hash, next) { + $mol_wire_solid(); + const buf = this.rock_file(hash).buffer(next); + if (!next) + return buf; + if ($mol_compare_deep(hash, this.hash(buf))) + return buf; + return null; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_mine_node, "root", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine_node, "rock_file", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine_node, "rock", null); + $.$hyoo_crus_mine_node = $hyoo_crus_mine_node; + $.$hyoo_crus_mine = $hyoo_crus_mine_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_base { + static patterns = {}; + static formatter(pattern) { + if (this.patterns[pattern]) + return this.patterns[pattern]; + var tokens = Object.keys(this.patterns) + .sort() + .reverse() + .map((token) => token.replace(/([-+*.\[\]()\^])/g, '\\$1')); + var lexer = RegExp('(.*?)(' + tokens.join('|') + '|$)', 'g'); + var funcs = []; + pattern.replace(lexer, (str, text, token) => { + if (text) + funcs.push(() => text); + if (token) + funcs.push(this.patterns[token]); + return str; + }); + return this.patterns[pattern] = (arg) => { + return funcs.reduce((res, func) => res + func(arg), ''); + }; + } + toString(pattern) { + const Base = this.constructor; + const formatter = Base.formatter(pattern); + return formatter(this); + } + } + $.$mol_time_base = $mol_time_base; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_duration extends $mol_time_base { + constructor(config = 0) { + super(); + if (typeof config === 'number') { + if (!Number.isFinite(config)) + throw new RangeError(`Wrong ms count`); + this.second = config / 1000; + return; + } + if (typeof config === 'string') { + if (config === 'Z') { + this.hour = 0; + this.minute = 0; + return; + } + duration: { + const parser = /^P(?:([+-]?\d+(?:\.\d+)?)Y)?(?:([+-]?\d+(?:\.\d+)?)M)?(?:([+-]?\d+(?:\.\d+)?)D)?(?:T(?:([+-]?\d+(?:\.\d+)?)h)?(?:([+-]?\d+(?:\.\d+)?)m)?(?:([+-]?\d+(?:\.\d+)?)s)?)?$/i; + const found = parser.exec(config); + if (!found) + break duration; + if (found[1]) + this.year = Number(found[1]); + if (found[2]) + this.month = Number(found[2]); + if (found[3]) + this.day = Number(found[3]); + if (found[4]) + this.hour = Number(found[4]); + if (found[5]) + this.minute = Number(found[5]); + if (found[6]) + this.second = Number(found[6]); + return; + } + offset: { + var parser = /^[+-](\d\d)(?::?(\d\d))?$/i; + var found = parser.exec(config); + if (!found) + break offset; + if (found[1]) + this.hour = Number(found[1]); + if (found[2]) + this.minute = Number(found[2]); + return; + } + throw new Error(`Can not parse time duration (${config})`); + } + this.year = config.year || 0; + this.month = config.month || 0; + this.day = config.day || 0; + this.hour = config.hour || 0; + this.minute = config.minute || 0; + this.second = config.second || 0; + } + year = 0; + month = 0; + day = 0; + hour = 0; + minute = 0; + second = 0; + get normal() { + let second = this.second ?? 0; + let minute = this.minute ?? 0; + let hour = this.hour ?? 0; + let day = this.day ?? 0; + minute += Math.floor(second / 60); + second = second % 60; + hour += Math.floor(minute / 60); + minute = minute % 60; + day += Math.floor(hour / 24); + hour = hour % 24; + return new $mol_time_duration({ + year: this.year, + month: this.month, + day: day, + hour: hour, + minute: minute, + second: second, + }); + } + summ(config) { + const duration = new $mol_time_duration(config); + return new $mol_time_duration({ + year: this.year + duration.year, + month: this.month + duration.month, + day: this.day + duration.day, + hour: this.hour + duration.hour, + minute: this.minute + duration.minute, + second: this.second + duration.second, + }); + } + mult(numb) { + return new $mol_time_duration({ + year: this.year && this.year * numb, + month: this.month && this.month * numb, + day: this.day && this.day * numb, + hour: this.hour && this.hour * numb, + minute: this.minute && this.minute * numb, + second: this.second && this.second * numb, + }); + } + count(config) { + const duration = new $mol_time_duration(config); + return this.valueOf() / duration.valueOf(); + } + valueOf() { + var day = this.year * 365 + this.month * 30.4 + this.day; + var second = ((day * 24 + this.hour) * 60 + this.minute) * 60 + this.second; + return second * 1000; + } + toJSON() { return this.toString(); } + toString(pattern = 'P#Y#M#DT#h#m#s') { + return super.toString(pattern); + } + [Symbol.toPrimitive](mode) { + return mode === 'number' ? this.valueOf() : this.toString(); + } + static patterns = { + '#Y': (duration) => { + if (!duration.year) + return ''; + return duration.year + 'Y'; + }, + '#M': (duration) => { + if (!duration.month) + return ''; + return duration.month + 'M'; + }, + '#D': (duration) => { + if (!duration.day) + return ''; + return duration.day + 'D'; + }, + '#h': (duration) => { + if (!duration.hour) + return ''; + return duration.hour + 'H'; + }, + '#m': (duration) => { + if (!duration.minute) + return ''; + return duration.minute + 'M'; + }, + '#s': (duration) => { + if (!duration.second) + return ''; + return duration.second + 'S'; + }, + 'hh': (moment) => { + if (moment.hour == null) + return ''; + return String(100 + moment.hour).slice(1); + }, + 'h': (moment) => { + if (moment.hour == null) + return ''; + return String(moment.hour); + }, + ':mm': (moment) => { + if (moment.minute == null) + return ''; + return ':' + $mol_time_moment.patterns['mm'](moment); + }, + 'mm': (moment) => { + if (moment.minute == null) + return ''; + return String(100 + moment.minute).slice(1); + }, + 'm': (moment) => { + if (moment.minute == null) + return ''; + return String(moment.minute); + }, + ':ss': (moment) => { + if (moment.second == null) + return ''; + return ':' + $mol_time_moment.patterns['ss'](moment); + }, + 'ss': (moment) => { + if (moment.second == null) + return ''; + return String(100 + moment.second | 0).slice(1); + }, + 's': (moment) => { + if (moment.second == null) + return ''; + return String(moment.second | 0); + }, + '.sss': (moment) => { + if (moment.second == null) + return ''; + return '.' + $mol_time_moment.patterns['sss'](moment); + }, + 'sss': (moment) => { + if (moment.second == null) + return ''; + const millisecond = (moment.second - Math.trunc(moment.second)).toFixed(3); + return millisecond.slice(2); + }, + }; + } + $.$mol_time_duration = $mol_time_duration; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_time_moment_weekdays; + (function ($mol_time_moment_weekdays) { + $mol_time_moment_weekdays[$mol_time_moment_weekdays["monday"] = 0] = "monday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["tuesday"] = 1] = "tuesday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["wednesday"] = 2] = "wednesday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["thursday"] = 3] = "thursday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["friday"] = 4] = "friday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["saturday"] = 5] = "saturday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["sunday"] = 6] = "sunday"; + })($mol_time_moment_weekdays = $.$mol_time_moment_weekdays || ($.$mol_time_moment_weekdays = {})); + function numb(str, max) { + const numb = Number(str); + if (numb < max) + return numb; + $mol_fail(new Error(`Wrong time component ${str}`)); + } + class $mol_time_moment extends $mol_time_base { + constructor(config = new Date) { + super(); + if (typeof config === 'number') { + config = new Date(config); + if (Number.isNaN(config.valueOf())) + throw new RangeError(`Wrong ms count`); + } + if (typeof config === 'string') { + const parsed = /^(?:(\d\d?\d?\d?)(?:-?(\d\d?)(?:-?(\d\d?))?)?)?(?:[T ](?:(\d\d?)(?::?(\d\d?)(?::?(\d\d?(?:\.\d+)?))?)?)?(Z|[\+\-]\d\d?(?::?(?:\d\d?)?)?)?)?$/.exec(config); + if (!parsed) + throw new Error(`Can not parse time moment (${config})`); + if (parsed[1]) + this.year = numb(parsed[1], 9999); + if (parsed[2]) + this.month = numb(parsed[2], 13) - 1; + if (parsed[3]) + this.day = numb(parsed[3], 32) - 1; + if (parsed[4]) + this.hour = numb(parsed[4], 60); + if (parsed[5]) + this.minute = numb(parsed[5], 60); + if (parsed[6]) + this.second = numb(parsed[6], 60); + if (parsed[7]) + this.offset = new $mol_time_duration(parsed[7]); + return; + } + if (config instanceof Date) { + this.year = config.getFullYear(); + this.month = config.getMonth(); + this.day = config.getDate() - 1; + this.hour = config.getHours(); + this.minute = config.getMinutes(); + this.second = config.getSeconds() + config.getMilliseconds() / 1000; + const offset = -config.getTimezoneOffset(); + this.offset = new $mol_time_duration({ + hour: (offset < 0) ? Math.ceil(offset / 60) : Math.floor(offset / 60), + minute: offset % 60 + }); + return; + } + this.year = config.year; + this.month = config.month; + this.day = config.day; + this.hour = config.hour; + this.minute = config.minute; + this.second = config.second; + this.offset = config.offset == null ? config.offset : new $mol_time_duration(config.offset); + } + year; + month; + day; + hour; + minute; + second; + offset; + get weekday() { + return (this.native.getDay() + 6) % 7; + } + _native; + get native() { + if (this._native) + return this._native; + const utc = this.toOffset('Z'); + return this._native = new Date(Date.UTC(utc.year ?? 0, utc.month ?? 0, (utc.day ?? 0) + 1, utc.hour ?? 0, utc.minute ?? 0, utc.second != undefined ? Math.floor(utc.second) : 0, utc.second != undefined ? Math.floor((utc.second - Math.floor(utc.second)) * 1000) : 0)); + } + _normal; + get normal() { + if (this._normal) + return this._normal; + const moment = new $mol_time_moment(this.native); + return this._normal = new $mol_time_moment({ + year: this.year === undefined ? undefined : moment.year, + month: this.month === undefined ? undefined : moment.month, + day: this.day === undefined ? undefined : moment.day, + hour: this.hour === undefined ? undefined : moment.hour, + minute: this.minute === undefined ? undefined : moment.minute, + second: this.second === undefined ? undefined : moment.second, + offset: this.offset === undefined ? undefined : moment.offset, + }); + } + merge(config) { + const moment = new $mol_time_moment(config); + return new $mol_time_moment({ + year: moment.year === undefined ? this.year : moment.year, + month: moment.month === undefined ? this.month : moment.month, + day: moment.day === undefined ? this.day : moment.day, + hour: moment.hour === undefined ? this.hour : moment.hour, + minute: moment.minute === undefined ? this.minute : moment.minute, + second: moment.second === undefined ? this.second : moment.second, + offset: moment.offset === undefined ? this.offset : moment.offset, + }); + } + shift(config) { + const duration = new $mol_time_duration(config); + const moment = new $mol_time_moment().merge({ + year: this.year, + month: this.month, + day: this.day, + hour: this.hour ?? 0, + minute: this.minute ?? 0, + second: this.second ?? 0, + offset: this.offset ?? 0 + }); + const second = moment.second + (duration.second ?? 0); + const native = new Date(moment.year + (duration.year ?? 0), moment.month + (duration.month ?? 0), moment.day + 1 + (duration.day ?? 0), moment.hour + (duration.hour ?? 0), moment.minute + (duration.minute ?? 0), Math.floor(second), (second - Math.floor(second)) * 1000); + if (isNaN(native.valueOf())) + throw new Error('Wrong time'); + return new $mol_time_moment({ + year: this.year === undefined ? undefined : native.getFullYear(), + month: this.month === undefined ? undefined : native.getMonth(), + day: this.day === undefined ? undefined : native.getDate() - 1, + hour: this.hour === undefined ? undefined : native.getHours(), + minute: this.minute === undefined ? undefined : native.getMinutes(), + second: this.second === undefined ? undefined : native.getSeconds() + native.getMilliseconds() / 1000, + offset: this.offset, + }); + } + mask(config) { + const mask = new $mol_time_moment(config); + return new $mol_time_moment({ + year: mask.year === undefined ? undefined : this.year, + month: mask.month === undefined ? undefined : this.month, + day: mask.day === undefined ? undefined : this.day, + hour: mask.hour === undefined ? undefined : this.hour, + minute: mask.minute === undefined ? undefined : this.minute, + second: mask.second === undefined ? undefined : this.second, + offset: mask.offset === undefined ? undefined : this.offset, + }); + } + toOffset(config = new $mol_time_moment().offset) { + const duration = new $mol_time_duration(config); + const offset = this.offset || new $mol_time_moment().offset; + let with_time = new $mol_time_moment('T00:00:00').merge(this); + const moment = with_time.shift(duration.summ(offset.mult(-1))); + return moment.merge({ offset: duration }); + } + valueOf() { return this.native.getTime(); } + toJSON() { return this.toString(); } + toString(pattern = 'YYYY-MM-DDThh:mm:ss.sssZ') { + return super.toString(pattern); + } + [Symbol.toPrimitive](mode) { + return mode === 'number' ? this.valueOf() : this.toString(); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', $mol_dev_format_accent(this.toString('YYYY-MM-DD hh:mm:ss.sss Z'))); + } + static patterns = { + 'YYYY': (moment) => { + if (moment.year == null) + return ''; + return String(moment.year); + }, + 'AD': (moment) => { + if (moment.year == null) + return ''; + return String(Math.floor(moment.year / 100) + 1); + }, + 'YY': (moment) => { + if (moment.year == null) + return ''; + return String(moment.year % 100); + }, + 'Month': (pattern => (moment) => { + if (moment.month == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { month: 'long' })), + 'DD Month': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['DD'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Month'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: '2-digit', month: 'long' })), + 'D Month': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['D'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Month'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: 'numeric', month: 'long' })), + 'Mon': (pattern => (moment) => { + if (moment.month == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { month: 'short' })), + 'DD Mon': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['DD'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Mon'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: '2-digit', month: 'short' })), + 'D Mon': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['D'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Mon'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: 'numeric', month: 'short' })), + '-MM': (moment) => { + if (moment.month == null) + return ''; + return '-' + $mol_time_moment.patterns['MM'](moment); + }, + 'MM': (moment) => { + if (moment.month == null) + return ''; + return String(100 + moment.month + 1).slice(1); + }, + 'M': (moment) => { + if (moment.month == null) + return ''; + return String(moment.month + 1); + }, + 'WeekDay': (pattern => (moment) => { + if (moment.day == null) + return ''; + if (moment.month == null) + return ''; + if (moment.year == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { weekday: 'long' })), + 'WD': (pattern => (moment) => { + if (moment.day == null) + return ''; + if (moment.month == null) + return ''; + if (moment.year == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { weekday: 'short' })), + '-DD': (moment) => { + if (moment.day == null) + return ''; + return '-' + $mol_time_moment.patterns['DD'](moment); + }, + 'DD': (moment) => { + if (moment.day == null) + return ''; + return String(100 + moment.day + 1).slice(1); + }, + 'D': (moment) => { + if (moment.day == null) + return ''; + return String(moment.day + 1); + }, + 'Thh': (moment) => { + if (moment.hour == null) + return ''; + return 'T' + $mol_time_moment.patterns['hh'](moment); + }, + 'hh': (moment) => { + if (moment.hour == null) + return ''; + return String(100 + moment.hour).slice(1); + }, + 'h': (moment) => { + if (moment.hour == null) + return ''; + return String(moment.hour); + }, + ':mm': (moment) => { + if (moment.minute == null) + return ''; + return ':' + $mol_time_moment.patterns['mm'](moment); + }, + 'mm': (moment) => { + if (moment.minute == null) + return ''; + return String(100 + moment.minute).slice(1); + }, + 'm': (moment) => { + if (moment.minute == null) + return ''; + return String(moment.minute); + }, + ':ss': (moment) => { + if (moment.second == null) + return ''; + return ':' + $mol_time_moment.patterns['ss'](moment); + }, + 'ss': (moment) => { + if (moment.second == null) + return ''; + return String(100 + moment.second | 0).slice(1); + }, + 's': (moment) => { + if (moment.second == null) + return ''; + return String(moment.second | 0); + }, + '.sss': (moment) => { + if (moment.second == null) + return ''; + if (moment.second === (moment.second | 0)) + return ''; + return '.' + $mol_time_moment.patterns['sss'](moment); + }, + 'sss': (moment) => { + if (moment.second == null) + return ''; + const millisecond = (moment.second - Math.trunc(moment.second)).toFixed(3); + return millisecond.slice(2); + }, + 'Z': (moment) => { + const offset = moment.offset; + if (!offset) + return ''; + let hour = offset.hour; + let sign = '+'; + if (hour < 0) { + sign = '-'; + hour = -hour; + } + return sign + String(100 + hour).slice(1) + ':' + String(100 + offset.minute).slice(1); + } + }; + } + $.$mol_time_moment = $mol_time_moment; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_interval extends $mol_time_base { + constructor(config) { + super(); + if (typeof config === 'string') { + var chunks = config.split('/'); + if (chunks[0]) { + if (chunks[0][0].toUpperCase() === 'P') { + this._duration = new $mol_time_duration(chunks[0]); + } + else { + this._start = new $mol_time_moment(chunks[0]); + } + } + else { + this._start = new $mol_time_moment(); + } + if (chunks[1]) { + if (chunks[1][0].toUpperCase() === 'P') { + this._duration = new $mol_time_duration(chunks[1]); + } + else { + this._end = new $mol_time_moment(chunks[1]); + } + } + else { + this._end = new $mol_time_moment(); + } + return; + } + if (config.start !== undefined) + this._start = new $mol_time_moment(config.start); + if (config.end !== undefined) + this._end = new $mol_time_moment(config.end); + if (config.duration !== undefined) + this._duration = new $mol_time_duration(config.duration); + } + _start; + get start() { + if (this._start) + return this._start; + return this._start = this._end.shift(this._duration.mult(-1)); + } + _end; + get end() { + if (this._end) + return this._end; + return this._end = this._start.shift(this._duration); + } + _duration; + get duration() { + if (this._duration) + return this._duration; + return this._duration = new $mol_time_duration(this._end.valueOf() - this._start.valueOf()); + } + toJSON() { return this.toString(); } + toString() { + return (this._start || this._duration || '').toString() + '/' + (this._end || this._duration || '').toString(); + } + [Symbol.toPrimitive](mode) { + return this.toString(); + } + } + $.$mol_time_interval = $mol_time_interval; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_serialize(node) { + const serializer = new $mol_dom_context.XMLSerializer; + return serializer.serializeToString(node); + } + $.$mol_dom_serialize = $mol_dom_serialize; +})($ || ($ = {})); + +; +"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'); + if (error.length) + throw new Error(error[0].textContent); + return doc; + } + $.$mol_dom_parse = $mol_dom_parse; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$hyoo_crus_vary_mapping = { + nil: null, + bin: Uint8Array, + bool: Boolean, + int: BigInt, + real: Number, + ref: Symbol, + str: String, + time: $mol_time_moment, + dur: $mol_time_duration, + range: $mol_time_interval, + json: Object, + jsan: Array, + dom: $mol_dom_context.Element, + tree: $mol_tree2, + }; + let $hyoo_crus_vary_tip; + (function ($hyoo_crus_vary_tip) { + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["nil"] = 0] = "nil"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["bin"] = 1] = "bin"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["bool"] = 2] = "bool"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["int"] = 3] = "int"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["real"] = 4] = "real"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["ref"] = 5] = "ref"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["str"] = 16] = "str"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["time"] = 17] = "time"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["dur"] = 18] = "dur"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["range"] = 19] = "range"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["json"] = 20] = "json"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["jsan"] = 21] = "jsan"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["dom"] = 22] = "dom"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["tree"] = 23] = "tree"; + })($hyoo_crus_vary_tip = $.$hyoo_crus_vary_tip || ($.$hyoo_crus_vary_tip = {})); + function $hyoo_crus_vary_switch(vary, ways) { + if (vary === null) + return ways.nil(vary); + switch (typeof vary) { + case "boolean": return ways.bool(vary); + case "bigint": return ways.int(vary); + case "number": return ways.real(vary); + case "string": return ways.str(vary); + case 'symbol': return ways.ref(vary); + } + switch (Reflect.getPrototypeOf(vary)) { + case Object.prototype: return ways.json(vary); + case Array.prototype: return ways.jsan(vary); + case Uint8Array.prototype: return ways.bin(vary); + case $mol_time_moment.prototype: return ways.time(vary); + case $mol_time_duration.prototype: return ways.dur(vary); + case $mol_time_interval.prototype: return ways.range(vary); + case $mol_tree2.prototype: return ways.tree(vary); + } + if (vary instanceof $mol_dom_context.Element) + return ways.dom(vary); + return $mol_fail(new TypeError(`Unsupported vary type`)); + } + $.$hyoo_crus_vary_switch = $hyoo_crus_vary_switch; + function $hyoo_crus_vary_encode(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => ({ tip: 'nil', bin: new Uint8Array([]) }), + bin: vary => ({ tip: 'bin', bin: vary }), + bool: vary => ({ tip: 'bool', bin: new Uint8Array([Number(vary)]) }), + int: vary => ({ tip: 'int', bin: new Uint8Array(new BigInt64Array([vary]).buffer) }), + real: vary => ({ tip: 'real', bin: new Uint8Array(new Float64Array([vary]).buffer) }), + ref: vary => ({ tip: 'ref', bin: $hyoo_crus_ref_encode(vary) }), + str: vary => ({ tip: 'str', bin: $mol_charset_encode(vary) }), + time: vary => ({ tip: 'time', bin: $mol_charset_encode(String(vary)) }), + dur: vary => ({ tip: 'dur', bin: $mol_charset_encode(String(vary)) }), + range: vary => ({ tip: 'range', bin: $mol_charset_encode(String(vary)) }), + json: vary => ({ tip: 'json', bin: $mol_charset_encode(JSON.stringify(vary)) }), + jsan: vary => ({ tip: 'jsan', bin: $mol_charset_encode(JSON.stringify(vary)) }), + dom: vary => ({ tip: 'dom', bin: $mol_charset_encode($mol_dom_serialize(vary)) }), + tree: vary => ({ tip: 'tree', bin: $mol_charset_encode(String(vary)) }), + }); + } + $.$hyoo_crus_vary_encode = $hyoo_crus_vary_encode; + function $hyoo_crus_vary_decode({ tip, bin }) { + switch (tip) { + case 'nil': return null; + case 'bin': return bin; + case 'bool': return Boolean(bin[0]); + case 'int': return new BigInt64Array(bin.buffer, bin.byteOffset, bin.byteLength / 8)[0]; + case 'real': return new Float64Array(bin.buffer, bin.byteOffset, bin.byteLength / 8)[0]; + case 'ref': return $hyoo_crus_ref_decode(bin); + case 'str': return $mol_charset_decode(bin); + case 'time': return new $mol_time_moment($mol_charset_decode(bin)); + case 'dur': return new $mol_time_duration($mol_charset_decode(bin)); + case 'range': return new $mol_time_interval($mol_charset_decode(bin)); + case 'json': return JSON.parse($mol_charset_decode(bin)); + case 'jsan': return JSON.parse($mol_charset_decode(bin)); + case 'dom': return $mol_dom_parse($mol_charset_decode(bin)).documentElement; + case 'tree': return $$.$mol_tree2_from_string($mol_charset_decode(bin)); + } + } + $.$hyoo_crus_vary_decode = $hyoo_crus_vary_decode; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_jsx_prefix = ''; + $.$mol_jsx_crumbs = ''; + $.$mol_jsx_booked = null; + $.$mol_jsx_document = { + getElementById: () => null, + createElementNS: (space, name) => $mol_dom_context.document.createElementNS(space, name), + createDocumentFragment: () => $mol_dom_context.document.createDocumentFragment(), + }; + $.$mol_jsx_frag = ''; + function $mol_jsx(Elem, props, ...childNodes) { + const id = props && props.id || ''; + const guid = id ? $.$mol_jsx_prefix ? $.$mol_jsx_prefix + '/' + id : id : $.$mol_jsx_prefix; + const crumbs_self = id ? $.$mol_jsx_crumbs.replace(/(\S+)/g, `$1_${id.replace(/\/.*/i, '')}`) : $.$mol_jsx_crumbs; + if (Elem && $.$mol_jsx_booked) { + if ($.$mol_jsx_booked.has(id)) { + $mol_fail(new Error(`JSX already has tag with id ${JSON.stringify(guid)}`)); + } + else { + $.$mol_jsx_booked.add(id); + } + } + let node = guid ? $.$mol_jsx_document.getElementById(guid) : null; + if ($.$mol_jsx_prefix) { + const prefix_ext = $.$mol_jsx_prefix; + const booked_ext = $.$mol_jsx_booked; + const crumbs_ext = $.$mol_jsx_crumbs; + for (const field in props) { + const func = props[field]; + if (typeof func !== 'function') + continue; + const wrapper = function (...args) { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + const crumbs = $.$mol_jsx_crumbs; + try { + $.$mol_jsx_prefix = prefix_ext; + $.$mol_jsx_booked = booked_ext; + $.$mol_jsx_crumbs = crumbs_ext; + return func.call(this, ...args); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + $.$mol_jsx_crumbs = crumbs; + } + }; + $mol_func_name_from(wrapper, func); + props[field] = wrapper; + } + } + if (typeof Elem !== 'string') { + if ('prototype' in Elem) { + const view = node && node[String(Elem)] || new Elem; + Object.assign(view, props); + view[Symbol.toStringTag] = guid; + view.childNodes = childNodes; + if (!view.ownerDocument) + view.ownerDocument = $.$mol_jsx_document; + view.className = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem); + node = view.valueOf(); + node[String(Elem)] = view; + return node; + } + else { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + const crumbs = $.$mol_jsx_crumbs; + try { + $.$mol_jsx_prefix = guid; + $.$mol_jsx_booked = new Set; + $.$mol_jsx_crumbs = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem); + return Elem(props, ...childNodes); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + $.$mol_jsx_crumbs = crumbs; + } + } + } + if (!node) { + node = Elem + ? $.$mol_jsx_document.createElementNS(props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem) + : $.$mol_jsx_document.createDocumentFragment(); + } + $mol_dom_render_children(node, [].concat(...childNodes)); + if (!Elem) + return node; + if (guid) + node.id = guid; + for (const key in props) { + if (key === 'id') + continue; + if (typeof props[key] === 'string') { + if (typeof node[key] === 'string') + node[key] = props[key]; + node.setAttribute(key, props[key]); + } + else if (props[key] && + typeof props[key] === 'object' && + Reflect.getPrototypeOf(props[key]) === Reflect.getPrototypeOf({})) { + if (typeof node[key] === 'object') { + Object.assign(node[key], props[key]); + continue; + } + } + else { + node[key] = props[key]; + } + } + if ($.$mol_jsx_crumbs) + node.className = (props?.['class'] ? props['class'] + ' ' : '') + crumbs_self; + return node; + } + $.$mol_jsx = $mol_jsx; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_bin_to_bytes(tree) { + return Uint8Array.from(tree.kids, kid => parseInt(kid.value, 16)); + } + $.$mol_tree2_bin_to_bytes = $mol_tree2_bin_to_bytes; + function $mol_tree2_bin_from_bytes(bytes, span = $mol_span.unknown) { + return $mol_tree2.list(Array.from(bytes, code => { + return $mol_tree2.data(code.toString(16).padStart(2, '0'), [], span); + }), span); + } + $.$mol_tree2_bin_from_bytes = $mol_tree2_bin_from_bytes; + function $mol_tree2_bin_from_string(str, span = $mol_span.unknown) { + return $mol_tree2_bin_from_bytes([...new TextEncoder().encode(str)], span); + } + $.$mol_tree2_bin_from_string = $mol_tree2_bin_from_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_xml_from_dom(dom) { + switch (dom.nodeType) { + case dom.DOCUMENT_NODE: { + let kids = []; + for (const kid of dom.childNodes) { + kids.push($mol_tree2_xml_from_dom(kid)); + } + return $mol_tree2.list(kids); + } + case dom.PROCESSING_INSTRUCTION_NODE: { + return $mol_tree2.struct('?', [ + $mol_tree2.struct(dom.nodeName, dom.nodeValue.split(' ').map(chunk => { + const [, name, value] = /^(.*?)(?:="(.*?)")?$/.exec(chunk); + const kids = value ? [$mol_tree2.data(value)] : []; + return $mol_tree2.struct(name, kids); + })) + ]); + } + case dom.DOCUMENT_TYPE_NODE: { + const dom2 = dom; + return $mol_tree2.struct('!', [ + $mol_tree2.struct('DOCTYPE', [ + $mol_tree2.struct(dom2.name) + ]) + ]); + } + case dom.ELEMENT_NODE: { + let kids = []; + for (const attr of dom.attributes) { + kids.push($mol_tree2.struct('@', [ + $mol_tree2.struct(attr.nodeName, [ + $mol_tree2.data(attr.nodeValue) + ]) + ])); + } + for (const kid of dom.childNodes) { + const k = $mol_tree2_xml_from_dom(kid); + if (k.type || k.value) + kids.push(k); + } + return $mol_tree2.struct(dom.nodeName, kids); + } + case dom.COMMENT_NODE: { + return $mol_tree2.struct('--', [ + $mol_tree2.data(dom.nodeValue) + ]); + } + case dom.TEXT_NODE: { + if (!dom.nodeValue.trim()) + return $mol_tree2.list([]); + return $mol_tree2.data(dom.nodeValue.replace(/\s+/g, ' ')); + } + } + return $mol_fail(new Error(`Unsupported node ${dom.nodeName}`)); + } + $.$mol_tree2_xml_from_dom = $mol_tree2_xml_from_dom; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $hyoo_crus_vary_cast_bin(vary) { + return vary === null || vary === '' ? null : $hyoo_crus_vary_encode(vary).bin; + } + $.$hyoo_crus_vary_cast_bin = $hyoo_crus_vary_cast_bin; + function $hyoo_crus_vary_cast_bool(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => Boolean(vary.length), + bool: vary => vary, + int: vary => Boolean(vary), + real: vary => Boolean(vary), + ref: vary => Boolean(vary.description), + str: vary => Boolean(vary), + time: vary => Boolean(vary.valueOf()), + dur: vary => Boolean(vary.valueOf()), + range: vary => Boolean(vary.duration.valueOf()), + json: vary => Boolean(Reflect.ownKeys(vary).length), + jsan: vary => Boolean(vary.length), + dom: vary => Boolean(vary.attributes.length + vary.childNodes.length), + tree: vary => Boolean(vary.value || vary.kids.length), + }); + } + $.$hyoo_crus_vary_cast_bool = $hyoo_crus_vary_cast_bool; + function $hyoo_crus_vary_cast_int(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => BigInt(vary.length), + bool: vary => BigInt(vary), + int: vary => vary, + real: vary => Number.isFinite(vary) ? BigInt(Math.trunc(vary)) : null, + ref: vary => null, + str: vary => { + try { + return vary ? BigInt(vary) : null; + } + catch { + return null; + } + }, + time: vary => BigInt(vary.valueOf()), + dur: vary => BigInt(vary.valueOf()), + range: vary => BigInt(vary.duration.valueOf()), + json: vary => BigInt(Reflect.ownKeys(vary).length), + jsan: vary => BigInt(vary.length), + dom: vary => BigInt(vary.attributes.length + vary.childNodes.length), + tree: vary => { + try { + return BigInt(vary.value); + } + catch { + return BigInt(vary.kids.length); + } + }, + }); + } + $.$hyoo_crus_vary_cast_int = $hyoo_crus_vary_cast_int; + function $hyoo_crus_vary_cast_real(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => vary.length, + bool: vary => Number(vary), + int: vary => Number(vary), + real: vary => vary, + ref: vary => null, + str: vary => vary ? Number(vary) : null, + time: vary => vary.valueOf(), + dur: vary => vary.valueOf(), + range: vary => vary.duration.valueOf(), + json: vary => Reflect.ownKeys(vary).length, + jsan: vary => vary.length, + dom: vary => Number(vary.attributes.length + vary.childNodes.length), + tree: vary => Number(vary.value || vary.kids.length), + }); + } + $.$hyoo_crus_vary_cast_real = $hyoo_crus_vary_cast_real; + function $hyoo_crus_vary_cast_ref(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => (!vary.length || vary.length % 6) ? null : $hyoo_crus_ref_decode(vary), + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => vary, + str: vary => { + try { + return $hyoo_crus_ref(vary); + } + catch { + return null; + } + }, + time: vary => null, + dur: vary => null, + range: vary => null, + json: vary => null, + jsan: vary => null, + dom: vary => null, + tree: vary => { + try { + return $hyoo_crus_ref(vary.type); + } + catch { + return null; + } + }, + }); + } + $.$hyoo_crus_vary_cast_ref = $hyoo_crus_vary_cast_ref; + function $hyoo_crus_vary_cast_str(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => [...vary].map(n => n.toString(16).padStart(2, '0')).join(''), + bool: vary => String(vary), + int: vary => String(vary), + real: vary => String(vary), + ref: vary => vary.description, + str: vary => vary, + time: vary => String(vary), + dur: vary => String(vary), + range: vary => String(vary), + json: vary => JSON.stringify(vary), + jsan: vary => JSON.stringify(vary), + dom: vary => $mol_dom_serialize(vary), + tree: vary => String(vary), + }); + } + $.$hyoo_crus_vary_cast_str = $hyoo_crus_vary_cast_str; + function $hyoo_crus_vary_cast_time(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => new $mol_time_moment(Number(vary & 0xffffffffffffn)), + real: vary => { + try { + return new $mol_time_moment(vary); + } + catch { + return null; + } + }, + ref: vary => null, + str: vary => { + try { + return vary ? new $mol_time_moment(vary) : null; + } + catch { + return null; + } + }, + time: vary => vary, + dur: vary => null, + range: vary => null, + json: vary => { + try { + return new $mol_time_moment(vary); + } + catch { + return null; + } + }, + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_time = $hyoo_crus_vary_cast_time; + function $hyoo_crus_vary_cast_dur(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => new $mol_time_duration(Number(vary & 0xffffffffffffn)), + real: vary => { + try { + return new $mol_time_duration(vary); + } + catch { + return null; + } + }, + ref: vary => null, + str: vary => { + try { + return new $mol_time_duration(vary); + } + catch { + return null; + } + }, + time: vary => vary, + dur: vary => null, + range: vary => null, + json: vary => new $mol_time_duration(vary), + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_dur = $hyoo_crus_vary_cast_dur; + function $hyoo_crus_vary_cast_range(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => null, + str: vary => { + try { + return vary ? new $mol_time_interval(vary) : null; + } + catch { + return null; + } + }, + time: vary => new $mol_time_interval({ start: vary, duration: 0 }), + dur: vary => null, + range: vary => vary, + json: vary => { + try { + return new $mol_time_interval(vary); + } + catch { + return null; + } + }, + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_range = $hyoo_crus_vary_cast_range; + function $hyoo_crus_vary_cast_json(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => null, + str: vary => { + if (!vary) + return null; + try { + const res = JSON.parse(vary); + if (typeof res === 'object') + return res; + return null; + } + catch { + return null; + } + }, + time: vary => ({ ...vary }), + dur: vary => ({ ...vary }), + range: vary => ({ ...vary }), + json: vary => vary, + jsan: vary => Object(vary[0]), + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_json = $hyoo_crus_vary_cast_json; + function $hyoo_crus_vary_cast_jsan(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => [...vary], + bool: vary => [vary], + int: vary => [vary.toString()], + real: vary => Number.isFinite(vary) ? [vary] : null, + ref: vary => [vary.description], + str: vary => { + if (!vary) + return null; + try { + return [].concat(JSON.parse(vary)); + } + catch { + return [vary]; + } + }, + time: vary => [vary.toJSON()], + dur: vary => [vary.toJSON()], + range: vary => [vary.toJSON()], + json: vary => [vary], + jsan: vary => vary, + dom: vary => [$mol_dom_serialize(vary)], + tree: vary => [vary.toString()], + }); + } + $.$hyoo_crus_vary_cast_jsan = $hyoo_crus_vary_cast_jsan; + function $hyoo_crus_vary_cast_dom(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => $mol_jsx("body", null, vary && $mol_base64_ae_encode(vary)), + bool: vary => $mol_jsx("body", null, vary), + int: vary => $mol_jsx("body", null, vary), + real: vary => $mol_jsx("body", null, vary), + ref: vary => $mol_jsx("body", null, vary.description), + str: vary => { + if (!vary) + return null; + try { + return vary ? $mol_dom_parse(vary, 'application/xhtml+xml').documentElement : null; + } + catch { + return $mol_jsx("body", null, vary); + } + }, + time: vary => $mol_jsx("body", null, vary), + dur: vary => $mol_jsx("body", null, vary), + range: vary => $mol_jsx("body", null, vary), + json: vary => $mol_jsx("body", null, JSON.stringify(vary)), + jsan: vary => $mol_jsx("body", null, JSON.stringify(vary)), + dom: vary => vary, + tree: vary => $mol_jsx("body", null, vary), + }); + } + $.$hyoo_crus_vary_cast_dom = $hyoo_crus_vary_cast_dom; + function $hyoo_crus_vary_cast_tree(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => $mol_tree2_bin_from_bytes(vary), + bool: vary => $mol_tree2.struct(vary.toString()), + int: vary => $mol_tree2.struct(vary.toString()), + real: vary => $mol_tree2.struct(vary.toString()), + ref: vary => $mol_tree2.struct(vary.description), + str: vary => { + if (!vary) + return null; + try { + return $$.$mol_tree2_from_string(vary); + } + catch { + return $$.$mol_tree2.data(vary); + } + }, + time: vary => $mol_tree2.struct(vary.toString()), + dur: vary => $mol_tree2.struct(vary.toString()), + range: vary => $mol_tree2.struct(vary.toString()), + json: vary => $$.$mol_tree2_from_json(vary), + jsan: vary => $$.$mol_tree2_from_json(vary), + dom: vary => $$.$mol_tree2_xml_from_dom(vary), + tree: vary => vary, + }); + } + $.$hyoo_crus_vary_cast_tree = $hyoo_crus_vary_cast_tree; + $.$hyoo_crus_vary_cast_funcs = { + nil: () => null, + bin: $hyoo_crus_vary_cast_bin, + bool: $hyoo_crus_vary_cast_bool, + int: $hyoo_crus_vary_cast_int, + real: $hyoo_crus_vary_cast_real, + ref: $hyoo_crus_vary_cast_ref, + str: $hyoo_crus_vary_cast_str, + time: $hyoo_crus_vary_cast_time, + dur: $hyoo_crus_vary_cast_dur, + range: $hyoo_crus_vary_cast_range, + json: $hyoo_crus_vary_cast_json, + jsan: $hyoo_crus_vary_cast_jsan, + dom: $hyoo_crus_vary_cast_dom, + tree: $hyoo_crus_vary_cast_tree, + }; + function $hyoo_crus_vary_cast(tip, vary) { + return $.$hyoo_crus_vary_cast_funcs[tip](vary); + } + $.$hyoo_crus_vary_cast = $hyoo_crus_vary_cast; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_guard_defined(value) { + return value !== null && value !== undefined; + } + $.$mol_guard_defined = $mol_guard_defined; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_bus extends $mol_object { + name; + handle; + channel; + constructor(name, handle) { + super(); + this.name = name; + this.handle = handle; + const channel = new BroadcastChannel(name); + channel.onmessage = (event) => this.handle(event.data); + this.channel = channel; + } + destructor() { + this.channel.close(); + } + send(data) { + this.channel.postMessage(data); + } + } + $.$mol_bus = $mol_bus; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_promise() { + let done; + let fail; + const promise = new Promise((d, f) => { + done = d; + fail = f; + }); + return Object.assign(promise, { + done, + fail, + }); + } + $.$mol_promise = $mol_promise; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wait_timeout_async(timeout) { + const promise = $mol_promise(); + const task = new this.$mol_after_timeout(timeout, () => promise.done()); + return Object.assign(promise, { + destructor: () => task.destructor() + }); + } + $.$mol_wait_timeout_async = $mol_wait_timeout_async; + function $mol_wait_timeout(timeout) { + return this.$mol_wire_sync(this).$mol_wait_timeout_async(timeout); + } + $.$mol_wait_timeout = $mol_wait_timeout; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_race(...tasks) { + const results = tasks.map(task => { + try { + return task(); + } + catch (error) { + return error; + } + }); + const promises = results.filter(res => $mol_promise_like(res)); + if (promises.length) + $mol_fail(Promise.race(promises)); + const error = results.find(res => res instanceof Error); + if (error) + $mol_fail(error); + return results; + } + $.$mol_wire_race = $mol_wire_race; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_land extends $mol_object { + realm() { + return null; + } + ref() { + return this.auth().lord(); + } + auth() { + return this.$.$hyoo_crus_auth.current(); + } + faces = new $hyoo_crus_face_map; + passes = new $mol_wire_dict(); + gifts = new $mol_wire_dict(); + gists = new $mol_wire_dict(); + self_all = new $mol_wire_set(); + self_make(area, idea = Math.floor(Math.random() * 2 ** 48)) { + const auth = this.auth(); + const rank = this.lord_rank(auth.lord()); + if (rank === $hyoo_crus_rank.add) + return $hyoo_crus_area_to(auth.peer(), 'data'); + if (rank === $hyoo_crus_rank.nil) + $mol_fail(new Error('Rank too low (nil)')); + for (let i = 0; i < 4096; ++i) { + idea = (idea + 1) % 2 ** 48; + if (!idea) + continue; + if ($hyoo_crus_area[idea % 2] !== area) + continue; + const idea_str = $mol_base64_ae_encode(new Uint8Array(new BigUint64Array([BigInt(idea)]).buffer, 0, 6)); + if (this.self_all.has(idea_str)) + continue; + this.self_all.add(idea_str); + return idea_str; + } + $mol_fail(new Error(`Too long self generation`)); + } + home() { + return this.Data($hyoo_crus_home); + } + Data(Node) { + return this.Node(Node).Item(''); + } + Meta() { + return this.Node($hyoo_crus_meta).Item('AQAAAAAA'); + } + Node(Node) { + return new $hyoo_crus_fund((head) => { + if (head === 'AAAAAAAA') + return this.Node(Node).Item(''); + return Node.make({ + land: () => this.sync(), + head: $mol_const(head), + }); + }); + } + total() { + let total = this.passes.size + this.gifts.size; + for (const units of this.gists.values()) + total += units.size; + return total; + } + joined_list() { + return [...this.passes.values()].map(unit => unit.lord()); + } + key() { + const pass = this.passes.get($hyoo_crus_ref_peer(this.ref())); + if (!pass) + return null; + return $hyoo_crus_auth.from(pass.auth()); + } + lord_rank(lord, next) { + if (lord === this.ref()) + return $hyoo_crus_rank.law; + const prev = this.gifts.get(lord)?.rank() + ?? this.gifts.get($hyoo_crus_ref(''))?.rank() + ?? $hyoo_crus_rank.get; + if (next === undefined) + return prev; + if (next === prev) + return prev; + const key = this.passes.get($hyoo_crus_ref_peer(lord))?.auth(); + if (!key) + $mol_fail(new Error(`No pub key for lord (${lord.description})`)); + this.give($hyoo_crus_auth.from(key), next); + return next; + } + peer_rank(peer) { + const auth = this.passes.get(peer); + if (!auth) + return $hyoo_crus_rank.get; + return this.lord_rank(auth.lord()); + } + delta_unit(face = new $hyoo_crus_face_map) { + this.loading(); + const delta = []; + const passed = new Set(); + const auth = (peer) => { + if (passed.has(peer)) + return; + if (face.get(peer)) + return; + const pass = this.passes.get(peer); + if (!pass) + $mol_fail(new Error(`No pass for Peer (${peer})`)); + delta.push(pass); + passed.add(peer); + }; + for (const [lord, unit] of this.gifts) { + const time = face.get(unit.peer()) ?? 0; + if (time >= unit.time()) + continue; + auth(unit.peer()); + delta.push(unit); + } + for (const kids of this.gists.values()) { + for (const unit of kids.values()) { + const time = face.get(unit.peer()) ?? 0; + if (time >= unit.time()) + continue; + auth(unit.peer()); + delta.push(unit); + } + } + if (delta.length || this.faces.total <= this.faces.total) + return delta; + return this.delta_unit(); + } + delta_pack(face = new $hyoo_crus_face_map) { + const parts = this.delta_parts(face); + if (!parts) + return null; + const pack = $hyoo_crus_pack.make(parts); + return pack; + } + delta_parts(face = new $hyoo_crus_face_map) { + const units = this.delta_unit(face); + if (!units.length) + return null; + const rocks = []; + for (let unit of units) { + if (unit.kind() !== 'gist') + continue; + const gist = unit.narrow(); + if (gist.size() <= 32) + continue; + const rock = this.$.$hyoo_crus_mine.rock(gist.hash()) ?? null; + rocks.push([gist.hash(), rock]); + } + return { + lands: { + [this.ref()]: { + faces: new $hyoo_crus_face_map, + units, + }, + }, + rocks, + }; + } + faces_pack() { + const pack = $hyoo_crus_pack.make({ + lands: { + [this.ref()]: { faces: this.faces, units: [] }, + }, + rocks: [], + }); + return pack; + } + apply_unit(delta, skip_check = false) { + if (!delta.length) + return []; + const errors = $mol_wire_sync(this).units_verify(delta); + if (errors.some(v => v)) + return errors; + return this.apply_unit_trust(delta, skip_check); + } + async units_verify(delta) { + const passes = delta.filter(unit => unit.kind() === 'pass'); + const auth = new Map(passes.map((unit) => [unit.peer(), unit.auth()])); + const mixin = $hyoo_crus_ref_encode(this.ref()); + return await Promise.all(delta.map(async (unit) => { + let key_public = this.key_public(unit.peer()); + if (!key_public) { + const key_serial = auth.get(unit.peer()); + if (!key_serial) + return `No public key for peer (${unit.peer()})`; + key_public = $mol_crypto_key_public.from(key_serial); + } + const sens = unit.sens().slice(); + for (let i = 0; i < mixin.length; ++i) + sens[i + 14] ^= mixin[i + 14]; + return await key_public.verify(sens, unit.sign()) ? '' : `Wrong unit sign`; + })); + } + apply_unit_trust(delta, skip_check = false) { + return delta.map(unit => { + if (!skip_check) { + const error = this.check_unit(unit); + if (error) + return error; + } + let need_recheck = false; + const res = unit.choose({ + pass: next => { + const peer = next.peer(); + const exists = this.passes.get(peer); + if (exists) + return ''; + this.passes.set(peer, next); + this.faces.total++; + }, + gift: next => { + const dest = next.dest(); + const prev = this.gifts.get(dest); + if (prev && $hyoo_crus_gift.compare(prev, next) <= 0) + return ''; + this.gifts.set(dest, next); + this.faces.time_max(next.peer(), next.time()); + if (!prev) + this.faces.total++; + if ((prev?.rank() ?? $hyoo_crus_rank.nil) > next.rank()) + need_recheck = true; + }, + gist: next => { + const head = next.head(); + const self = next.self(); + let units = this.gists.get(head); + if (!units) + this.gists.set(head, units = new $mol_wire_dict); + const prev = units.get(self); + if (prev && $hyoo_crus_gist.compare(prev, next) <= 0) + return ''; + units.set(self, next); + this.self_all.add(self); + this.faces.time_max(next.peer(), next.time()); + if (!prev) + this.faces.total++; + }, + }); + if (need_recheck) + this.recheck(); + return res ?? ''; + }); + } + apply_land(land) { + return this.apply_unit_trust(land.delta_unit()); + } + recheck() { + for (const [peer, pass] of this.passes) { + if (!this.check_unit(pass)) + continue; + this.passes.delete(peer); + this.faces.total--; + } + for (const [lord, gift] of this.gifts) { + if (!this.check_unit(gift)) + continue; + this.gifts.delete(lord); + this.faces.total--; + } + for (const [head, units] of this.gists) { + for (const [self, gist] of units) { + if (!this.check_unit(gist)) + continue; + units.delete(self); + this.faces.total--; + } + } + } + check_unit(unit) { + return unit.choose({ + pass: next => this.lord_rank(next.lord()) < $hyoo_crus_rank.add ? 'Need add rank to join' : '', + gift: next => this.peer_rank(next.peer()) < $hyoo_crus_rank.law ? 'Need law rank to change rank' : '', + gist: next => { + if ($hyoo_crus_area_of(next.self()) !== $hyoo_crus_area_of(next.self())) + return 'Need same area'; + if ($hyoo_crus_area_to(next.peer(), 'data') === next.self()) { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.add ? 'Need add rank to post self data' : ''; + } + else { + if ($hyoo_crus_area_of(next.self()) === 'data') { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.mod ? 'Need mod rank to post any data' : ''; + } + else { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.law ? 'Need law rank to post to meta area' : ''; + } + } + }, + }); + } + fork(preset = $hyoo_crus_rank_public) { + const realm = this.realm(); + if (!realm) + $mol_fail(new Error('Realm is required to fork')); + const land = realm.land_grab(preset); + land.Meta().Inflow(null).items_vary([this.ref()]); + return land; + } + gists_ordered(head) { + this.sync(); + const queue = [...this.gists.get(head)?.values() ?? []]; + const res = []; + const slices = new WeakMap; + for (const gist of queue) + slices.set(gist, 0); + merge: if ($hyoo_crus_area_of(head) === 'data') { + const inflow = (this.Meta().Inflow()?.items_vary().slice().reverse() ?? []) + .map($hyoo_crus_vary_cast_ref) + .filter($mol_guard_defined); + if (!inflow.length) + break merge; + const exists = new Set([...this.gists.get(head)?.keys() ?? []]); + const realm = this.realm(); + let slice = 0; + if (realm) + for (const ref of inflow) { + ++slice; + const land = realm.Land(ref); + for (const gist of land.gists_ordered(head)) { + if (exists.has(gist.self())) + continue; + queue.push(gist); + exists.add(gist.self()); + slices.set(gist, slice); + } + } + } + if (queue.length < 2) + return queue.filter(unit => !unit.nil()); + const compare = (left, right) => { + return (slices.get(left) - slices.get(right)) || $hyoo_crus_gist.compare(left, right); + }; + queue.sort(compare); + const locate = (self) => { + for (let i = res.length - 1; i >= 0; --i) { + if (res[i].self() === self) + return i; + } + return -1; + }; + while (queue.length) { + res.push(queue.pop()); + for (let cursor = queue.length - 1; cursor >= 0; --cursor) { + const kid = queue[cursor]; + let index = 0; + if (kid.lead()) { + index = locate(kid.lead()) + 1; + if (!index) + continue; + } + while (res[index] && (compare(res[index], kid) < 0)) + ++index; + const exists = locate(kid.self()); + if (index === exists) { + if (cursor === queue.length - 1) + queue.pop(); + continue; + } + if (exists >= 0) { + res.splice(exists, 1); + if (exists < index) + --index; + } + res.splice(index, 0, kid); + if (cursor === queue.length - 1) + queue.pop(); + cursor = queue.length; + } + } + return res; + } + join() { + const auth = this.auth(); + const prev = this.passes.get(auth.peer()); + if (prev) + return prev; + const next = new $hyoo_crus_pass; + next.auth(auth.public().asArray()); + next._land = this; + const error = this.apply_unit_trust([next])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return next; + } + give(dest, rank) { + this.join(); + const auth = this.auth(); + const unit = new $hyoo_crus_gift; + unit.rank(rank); + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.dest(dest ? dest.lord() : $hyoo_crus_ref('')); + unit._land = this; + if (rank >= $hyoo_crus_rank.get) { + const secret_land = this.secret(); + if (secret_land) { + if (!dest) + $mol_fail(new Error(`Encrypted land can't be shared to everyone`)); + const secret_mutual = this.secret_mutual(dest.toString()); + if (secret_mutual) { + const secret_bin = $mol_wire_sync(secret_land).serial(); + const bill = $mol_wire_sync(secret_mutual).encrypt(secret_bin, unit.salt()); + unit.bill().set(bill); + } + } + } + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return unit; + } + post(lead, head, self, vary, tag = 'term') { + if (typeof vary === 'symbol') + vary = $hyoo_crus_ref_relate(this.ref(), vary); + this.join(); + const auth = this.auth(); + const unit = new $hyoo_crus_gist; + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.lead(lead); + unit.head(head); + unit._vary = vary; + unit._land = this; + let { tip, bin } = $hyoo_crus_vary_encode(vary); + unit._open = bin; + if (vary !== null && this.encrypted()) { + unit.hash($mol_crypto_hash(bin), tip, tag); + } + else { + if (bin.byteLength > 32) + unit.hash(this.$.$hyoo_crus_mine.hash(bin), tip, tag); + else + unit.data(bin, tip, tag); + } + unit.self(self || this.self_make($hyoo_crus_area_of(head), unit.idea())); + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return unit; + } + gist_move(gist, head, seat) { + if (gist.nil()) + $mol_fail(new RangeError(`Can't move wiped gist`)); + const units = this.gists_ordered(head).filter(unit => !unit.nil()); + if (seat > units.length) + $mol_fail(new RangeError(`Seat (${seat}) out of units length (${units.length})`)); + const lead = seat ? units[seat - 1].self() : ''; + const vary = this.gist_decode(gist); + if (gist.head() === head) { + const seat_prev = units.indexOf(gist); + if (seat === seat_prev) + return; + if (seat === seat_prev + 1) + return; + const prev = seat_prev ? units[seat_prev - 1].self() : ''; + const next = units[seat_prev + 1]; + if (next) + this.post(prev, head, next.self(), this.gist_decode(next), next.tag()); + } + else { + this.gist_wipe(gist); + } + this.post(lead, head, gist.self(), vary, gist.tag()); + } + gist_wipe(gist) { + const units = this.gists_ordered(gist.head()).filter(unit => !unit.nil()); + const seat = units.indexOf(gist); + this.post(seat ? units[seat - 1].self() : '', gist.head(), gist.self(), null, 'term'); + } + broadcast() { + this.realm()?.yard().neonatals.add(this.ref()); + } + sync() { + this.loading(); + try { + this.saving(); + this.bus(); + } + catch (error) { + $mol_fail_log(error); + } + this.realm()?.yard().sync_land(this.ref()); + return this; + } + bus() { + return new this.$.$mol_bus(`$hyoo_crus_land:${this.ref().description}`, $mol_wire_async(bins => { + const yard = this.realm().yard(); + this.apply_unit_trust(bins.map(bin => { + const unit = new $hyoo_crus_unit(bin).narrow(); + yard.persisted.add(unit); + return unit; + })); + })); + } + loading() { + $mol_wire_solid(); + const realm = this.realm(); + if (!realm) + return; + const units = realm.yard().load(this) ?? []; + $mol_wire_sync(this.$).$mol_log3_rise({ + place: this, + message: 'Load Unit', + units: units.length, + }); + const errors = this.apply_unit_trust(units, !!'skip_check').filter(Boolean); + if (errors.length) + this.$.$mol_log3_fail({ + place: this, + message: errors.join('\n'), + }); + } + saving() { + this.$.$mol_wait_timeout(250); + this.save(); + } + save() { + const yard = this.realm()?.yard(); + if (!yard) + return; + const encoding = []; + const signing = []; + const persisting = []; + for (const pass of this.passes.values()) { + if (!pass.signed()) + signing.push(pass); + if (!yard.persisted.has(pass)) + persisting.push(pass); + } + for (const gift of this.gifts.values()) { + if (!gift.signed()) + signing.push(gift); + if (!yard.persisted.has(gift)) + persisting.push(gift); + } + for (const kids of this.gists.values()) { + for (const gist of kids.values()) { + if (!gist.signed()) { + encoding.push(gist); + signing.push(gist); + } + if (!yard.persisted.has(gist)) + persisting.push(gist); + } + } + $mol_wire_race(...encoding.map(unit => () => this.gist_encode(unit))); + $mol_wire_race(...signing.map(unit => () => this.unit_sign(unit))); + if (persisting.length) + $mol_wire_sync(yard).save(this, persisting); + this.bus().send(persisting.map(unit => unit.buffer)); + } + unit_sign(unit) { + if (unit.signed()) + return; + const key = $mol_wire_sync(unit._land.auth()); + const mixin = $hyoo_crus_ref_encode(unit._land.ref()); + const sens = unit.sens().slice(); + for (let i = 0; i < mixin.length; ++i) + sens[i + 14] ^= mixin[i + 14]; + const sign = new Uint8Array(key.sign(sens)); + unit.sign(sign); + } + gist_encode(gist) { + if (gist._open === null) + return gist; + if (gist.nil()) + return gist; + let bin = gist._open; + const secret = gist._land.secret(); + if (secret) + bin = new Uint8Array($mol_wire_sync(secret).encrypt(bin, gist.salt())); + if (bin.byteLength > 32) + gist.hash(this.$.$hyoo_crus_mine.save(bin), gist.tip(), gist.tag()); + else + gist.data(bin, gist.tip(), gist.tag()); + return gist; + } + gist_decode(gist) { + let vary = this.gist_decode_raw(gist); + if (typeof vary === 'symbol') + vary = $hyoo_crus_ref_resolve(this.ref(), vary); + return vary; + } + gist_decode_raw(gist) { + if (this.gists.get(gist.head())?.get(gist.self()) !== gist) { + for (const id of this.Meta().Inflow()?.items_vary() ?? []) { + const vary = this.realm()?.Land($hyoo_crus_vary_cast_ref(id)).gist_decode_raw(gist); + if (vary !== undefined) + return vary; + } + return undefined; + } + const secret = this.secret(); + if (gist._vary !== undefined) + return gist._vary; + if (gist._open !== null) + return gist._vary = $hyoo_crus_vary_decode({ tip: gist.tip(), bin: gist._open }); + let bin = gist.size() > 32 ? this.$.$hyoo_crus_mine.rock(gist.hash()) : gist.data(); + if (secret && bin && !gist.nil()) { + try { + bin = new Uint8Array($mol_wire_sync(secret).decrypt(bin, gist.salt())); + } + catch (error) { + if ($mol_fail_catch(error)) { + if (error.message) + $mol_fail_hidden(error); + else + $mol_fail_hidden(new Error(`Can't decrypt`, { cause: error })); + } + } + } + gist._open = bin; + return gist._vary = (bin ? $hyoo_crus_vary_decode({ tip: gist.tip(), bin }) : null); + } + key_public(peer) { + const key = this.passes.get(peer)?.auth(); + return key ? $mol_crypto_key_public.from(key) : null; + } + secret_mutual(key_public) { + return $mol_wire_sync($mol_crypto_secret).derive(this.auth().toString(), key_public); + } + encryptable() { + return !this.gists.size; + } + encrypted(next) { + $mol_wire_solid(); + const gift = this.gifts.get(this.ref()); + const prev = gift?.bill().some(b => b) ?? false; + if (next === undefined) + return prev; + if (prev === next) + return prev; + if (!this.encryptable()) + $mol_fail(new Error(`Non empty Land never encrypted`)); + this.join(); + const auth = this.auth(); + const secret = $mol_wire_sync($mol_crypto_secret).generate(); + const secret_land = $mol_wire_sync(secret).serial(); + const secret_mutual = auth.secret_mutual(auth.public().toString()); + const unit = new $hyoo_crus_gift; + unit.rank($hyoo_crus_rank.law); + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.dest(auth.lord()); + unit._land = this; + const secret_closed = $mol_wire_sync(secret_mutual).encrypt(secret_land, unit.salt()); + unit.bill().set(new Uint8Array(secret_closed)); + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + return next; + } + secret() { + if (!this.encrypted()) + return null; + const auth = this.auth(); + const gift = this.gifts.get(auth.lord()); + if (!gift) + return $mol_fail(new Error(`Access denied`)); + const bill = gift.bill(); + if (!bill.some(b => b)) + return $mol_fail(new Error(`No key to decrypt`)); + const secret_mutual = auth.secret_mutual(this.key_public(gift.peer()).toString()); + if (!secret_mutual) + return $mol_fail(new Error(`Can't decrypt secret`)); + const secret_land = $mol_wire_sync(secret_mutual).decrypt(bill, gift.salt()); + return $mol_wire_sync($mol_crypto_secret).from(secret_land); + } + dump() { + this.saving(); + const units = []; + const rocks = []; + for (const pass of this.passes.values()) + units.push(pass); + for (const gift of this.gifts.values()) + units.push(gift); + for (const kids of this.gists.values()) { + for (const gist of kids.values()) { + units.push(gist); + if (gist.size() <= 32) + continue; + const rock = this.$.$hyoo_crus_mine.rock(gist.hash()); + if (!rock) + continue; + rocks.push([gist.hash(), rock]); + } + } + return { + land: this.ref(), + units, rocks, + }; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', $mol_dev_format_auto(this.faces.total)); + } + } + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "self_make", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "Data", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "Meta", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "Node", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "total", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "joined_list", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "key", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "lord_rank", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "faces_pack", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "apply_unit", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "apply_unit_trust", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "fork", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gists_ordered", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "join", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "give", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "post", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "gist_move", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "gist_wipe", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "sync", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "bus", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "loading", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "saving", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "unit_sign", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_encode", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_decode", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_decode_raw", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "key_public", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "secret_mutual", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "encryptable", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "encrypted", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "secret", null); + $.$hyoo_crus_land = $hyoo_crus_land; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_unit_kind; + (function ($hyoo_crus_unit_kind) { + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["pass"] = $hyoo_crus_part.pass] = "pass"; + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["gift"] = $hyoo_crus_part.gift] = "gift"; + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["gist"] = $hyoo_crus_part.gist] = "gist"; + })($hyoo_crus_unit_kind = $.$hyoo_crus_unit_kind || ($.$hyoo_crus_unit_kind = {})); + class $hyoo_crus_unit extends $mol_buffer { + static size = 128; + constructor(buffer = new ArrayBuffer($hyoo_crus_unit.size), byteOffset = 0, byteLength = buffer.byteLength) { + super(buffer, byteOffset, byteLength); + } + kind() { + const val = this.uint8(0); + if ((val & 1) === 0) + return 'gist'; + const kind = $hyoo_crus_unit_kind[val]; + if (kind) + return kind; + $mol_fail(new Error(`Unknown unit kind (${val})`)); + } + choose(ways) { + const way = this.kind(); + const Unit = { + pass: $hyoo_crus_pass, + gift: $hyoo_crus_gift, + gist: $hyoo_crus_gist, + }[way]; + if (this instanceof Unit) + return ways[way](this); + const unit = new Unit(this.buffer, this.byteOffset, this.byteLength); + return ways[way](unit); + } + narrow() { + return this.choose({ + gist: unit => unit, + pass: unit => unit, + gift: unit => unit, + }); + } + key() { + return this.narrow().key(); + } + id6(offset, next) { + if (next === undefined) { + const str = $mol_base64_ae_encode(new Uint8Array(this.buffer, offset, 6)); + return str === 'AAAAAAAA' ? '' : str; + } + else { + this.asArray().set($mol_base64_ae_decode(next || 'AAAAAAAA'), offset); + return next; + } + } + id12(offset, next) { + if (next === undefined) { + return $hyoo_crus_ref_decode(new Uint8Array(this.buffer, offset, 12)); + } + else { + this.asArray().set($hyoo_crus_ref_encode(next), offset); + return next; + } + } + _peer; + peer(next) { + if (next === undefined && this._peer !== undefined) + return this._peer; + else + return this._peer = this.id6(2, next); + } + salt() { + return new Uint8Array(this.buffer, this.byteOffset + 2, 16); + } + sens(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset, 64); + if (next) + prev.set(next); + return prev; + } + mix(mixin) { + for (let i = 0; i < mixin.length; ++i) { + this.uint8(14 + i, this.uint8(14 + i) ^ mixin[i]); + } + } + sign(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset + 64, 64); + if (next) + prev.set(next); + return prev; + } + signed() { + return this.sign().some(b => b); + } + _land = null; + } + $.$hyoo_crus_unit = $hyoo_crus_unit; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_pass extends $hyoo_crus_unit { + work() { + return this.uint8(1); + } + _lord; + lord(next) { + if (next === undefined && this._lord !== undefined) + return this._lord; + else + return this._lord = this.id12(2, next); + } + key() { + return this.id6(2); + } + auth(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset, 64); + if (next) + prev.set(next); + return prev; + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' 🔑 ', $mol_dev_format_span({}, this.lord().description)); + } + } + $.$hyoo_crus_pass = $hyoo_crus_pass; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_gift extends $hyoo_crus_unit { + rank(next) { + if (next !== undefined) + this.uint8(0, $hyoo_crus_unit_kind.gift); + next = this.uint8(1, next); + if (next < $hyoo_crus_rank.nil || next > $hyoo_crus_rank.law) { + $mol_fail(new RangeError(`Wrong rank ${next}`)); + } + return next; + } + time(next) { + return this.uint48(8, next); + } + free() { + return new Uint8Array(this.buffer, this.byteOffset + 26, 6); + } + _dest; + dest(next) { + if (next === undefined && this._dest !== undefined) + return this._dest; + else + return this._dest = this.id12(14, next); + } + key() { + return this.dest().description; + } + bill() { + return new Uint8Array(this.buffer, this.byteOffset + 32, 32); + } + static compare(left, right) { + return (right.time() - left.time()) || (right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' 🏅 ', $mol_dev_format_span({}, this.dest().description), this.bill().some(v => v) ? ' 🔐' : ' 📢', $hyoo_crus_rank[this.rank()], ' ', $mol_dev_format_shade(new $mol_time_moment(this.time()).toString('YYYY-MM-DD hh:mm:ss.sss'))); + } + } + $.$hyoo_crus_gift = $hyoo_crus_gift; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_rest_code; + (function ($mol_rest_code) { + $mol_rest_code[$mol_rest_code["Continue"] = 100] = "Continue"; + $mol_rest_code[$mol_rest_code["Switching_Protocols"] = 101] = "Switching_Protocols"; + $mol_rest_code[$mol_rest_code["Processing"] = 102] = "Processing"; + $mol_rest_code[$mol_rest_code["OK"] = 200] = "OK"; + $mol_rest_code[$mol_rest_code["Created"] = 201] = "Created"; + $mol_rest_code[$mol_rest_code["Accepted"] = 202] = "Accepted"; + $mol_rest_code[$mol_rest_code["Non_Authoritative_Information"] = 203] = "Non_Authoritative_Information"; + $mol_rest_code[$mol_rest_code["No_Content"] = 204] = "No_Content"; + $mol_rest_code[$mol_rest_code["Reset_Content"] = 205] = "Reset_Content"; + $mol_rest_code[$mol_rest_code["Partial_Content"] = 206] = "Partial_Content"; + $mol_rest_code[$mol_rest_code["Multi_Status"] = 207] = "Multi_Status"; + $mol_rest_code[$mol_rest_code["Already_Reported"] = 208] = "Already_Reported"; + $mol_rest_code[$mol_rest_code["IM_Used"] = 226] = "IM_Used"; + $mol_rest_code[$mol_rest_code["Multiple_Choices"] = 300] = "Multiple_Choices"; + $mol_rest_code[$mol_rest_code["Moved_Permanently"] = 301] = "Moved_Permanently"; + $mol_rest_code[$mol_rest_code["Found"] = 302] = "Found"; + $mol_rest_code[$mol_rest_code["See_Other"] = 303] = "See_Other"; + $mol_rest_code[$mol_rest_code["Not_Modified"] = 304] = "Not_Modified"; + $mol_rest_code[$mol_rest_code["Use_Proxy"] = 305] = "Use_Proxy"; + $mol_rest_code[$mol_rest_code["Temporary_Redirect"] = 307] = "Temporary_Redirect"; + $mol_rest_code[$mol_rest_code["Bad_Request"] = 400] = "Bad_Request"; + $mol_rest_code[$mol_rest_code["Unauthorized"] = 401] = "Unauthorized"; + $mol_rest_code[$mol_rest_code["Payment_Required"] = 402] = "Payment_Required"; + $mol_rest_code[$mol_rest_code["Forbidden"] = 403] = "Forbidden"; + $mol_rest_code[$mol_rest_code["Not_Found"] = 404] = "Not_Found"; + $mol_rest_code[$mol_rest_code["Method_Not_Allowed"] = 405] = "Method_Not_Allowed"; + $mol_rest_code[$mol_rest_code["Not_Acceptable"] = 406] = "Not_Acceptable"; + $mol_rest_code[$mol_rest_code["Proxy_Authentication_Required"] = 407] = "Proxy_Authentication_Required"; + $mol_rest_code[$mol_rest_code["Request_Timeout"] = 408] = "Request_Timeout"; + $mol_rest_code[$mol_rest_code["Conflict"] = 409] = "Conflict"; + $mol_rest_code[$mol_rest_code["Gone"] = 410] = "Gone"; + $mol_rest_code[$mol_rest_code["Length_Required"] = 411] = "Length_Required"; + $mol_rest_code[$mol_rest_code["Precondition_Failed"] = 412] = "Precondition_Failed"; + $mol_rest_code[$mol_rest_code["Request_Entity_Too_Large"] = 413] = "Request_Entity_Too_Large"; + $mol_rest_code[$mol_rest_code["Request_URI_Too_Long"] = 414] = "Request_URI_Too_Long"; + $mol_rest_code[$mol_rest_code["Unsupported_Media_Type"] = 415] = "Unsupported_Media_Type"; + $mol_rest_code[$mol_rest_code["Requested_Range_Not_Satisfiable"] = 416] = "Requested_Range_Not_Satisfiable"; + $mol_rest_code[$mol_rest_code["Expectation_Failed"] = 417] = "Expectation_Failed"; + $mol_rest_code[$mol_rest_code["Teapot"] = 418] = "Teapot"; + $mol_rest_code[$mol_rest_code["Unprocessable_Entity"] = 422] = "Unprocessable_Entity"; + $mol_rest_code[$mol_rest_code["Locked"] = 423] = "Locked"; + $mol_rest_code[$mol_rest_code["Failed_Dependency"] = 424] = "Failed_Dependency"; + $mol_rest_code[$mol_rest_code["Upgrade_Required"] = 426] = "Upgrade_Required"; + $mol_rest_code[$mol_rest_code["Precondition_Required"] = 428] = "Precondition_Required"; + $mol_rest_code[$mol_rest_code["Too_Many_Requests"] = 429] = "Too_Many_Requests"; + $mol_rest_code[$mol_rest_code["Request_Header_Fields_Too_Large"] = 431] = "Request_Header_Fields_Too_Large"; + $mol_rest_code[$mol_rest_code["Unavailable_For_Legal_Reasons"] = 451] = "Unavailable_For_Legal_Reasons"; + $mol_rest_code[$mol_rest_code["Internal_Server_Error"] = 500] = "Internal_Server_Error"; + $mol_rest_code[$mol_rest_code["Not_Implemented"] = 501] = "Not_Implemented"; + $mol_rest_code[$mol_rest_code["Bad_Gateway"] = 502] = "Bad_Gateway"; + $mol_rest_code[$mol_rest_code["Service_Unavailable"] = 503] = "Service_Unavailable"; + $mol_rest_code[$mol_rest_code["Gateway_Timeout"] = 504] = "Gateway_Timeout"; + $mol_rest_code[$mol_rest_code["HTTP_Version_Not_Supported"] = 505] = "HTTP_Version_Not_Supported"; + $mol_rest_code[$mol_rest_code["Insufficient_Storage"] = 507] = "Insufficient_Storage"; + $mol_rest_code[$mol_rest_code["Loop_Detected"] = 508] = "Loop_Detected"; + $mol_rest_code[$mol_rest_code["Not_Extended"] = 510] = "Not_Extended"; + $mol_rest_code[$mol_rest_code["Network_Authentication_Required"] = 511] = "Network_Authentication_Required"; + $mol_rest_code[$mol_rest_code["Network_Read_Timeout_Error"] = 598] = "Network_Read_Timeout_Error"; + $mol_rest_code[$mol_rest_code["Network_Connect_Timeout_Error"] = 599] = "Network_Connect_Timeout_Error"; + })($mol_rest_code = $.$mol_rest_code || ($.$mol_rest_code = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port extends $mol_object { + send_code(code) { } + send_type(mime) { } + send_data(data) { + if (data === null) + return this.send_nil(); + if (typeof data === 'string') + return this.send_text(data); + if (data instanceof Uint8Array) + return this.send_bin(data); + if (data instanceof $mol_dom_context.Element) + return this.send_dom(data); + return this.send_json(data); + } + send_nil() { + this.send_code(204); + } + send_bin(data) { + this.send_code(200); + this.send_type('application/octet-stream'); + } + send_text(data) { + this.send_code(200); + this.send_type('text/plain'); + this.send_bin($mol_charset_encode(data)); + } + send_json(data) { + this.send_code(200); + this.send_type('application/json'); + this.send_text(JSON.stringify(data)); + } + send_dom(data) { + this.send_code(200); + this.send_type('text/html'); + this.send_text($mol_dom_serialize(data)); + } + static make(config) { + return super.make(config); + } + } + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_data", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_text", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_json", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_dom", null); + __decorate([ + ($mol_action) + ], $mol_rest_port, "make", null); + $.$mol_rest_port = $mol_rest_port; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws extends $mol_rest_port { + } + $.$mol_rest_port_ws = $mol_rest_port_ws; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_websocket_frame_op; + (function ($mol_websocket_frame_op) { + $mol_websocket_frame_op[$mol_websocket_frame_op["con"] = 0] = "con"; + $mol_websocket_frame_op[$mol_websocket_frame_op["txt"] = 1] = "txt"; + $mol_websocket_frame_op[$mol_websocket_frame_op["bin"] = 2] = "bin"; + $mol_websocket_frame_op[$mol_websocket_frame_op["stop"] = 8] = "stop"; + $mol_websocket_frame_op[$mol_websocket_frame_op["ping"] = 9] = "ping"; + $mol_websocket_frame_op[$mol_websocket_frame_op["pong"] = 10] = "pong"; + })($mol_websocket_frame_op = $.$mol_websocket_frame_op || ($.$mol_websocket_frame_op = {})); + class $mol_websocket_frame extends $mol_buffer { + kind(next) { + if (next) { + this.setUint8(0, Number(next.fin) << 7 | $mol_websocket_frame_op[next.op]); + return next; + } + else { + const state = this.getUint8(0); + const fin = state >> 7; + const op = $mol_websocket_frame_op[state & 0b1111]; + if (op === undefined) + $mol_fail(new Error(`Wrong op (${state.toString(2)})`)); + return { op, fin }; + } + } + data(next) { + if (next === undefined) { + const state = this.getUint8(1); + const mask = state >> 7; + let size = state & 0b0111_1111; + if (size === 126) + size = this.getUint16(2); + else if (size === 127) + size = this.getUint32(6); + return { size, mask }; + } + else { + if (next.size >= 2 ** 16) { + this.setUint8(1, 127 | Number(next.mask) << 7); + this.setUint32(6, next.size); + } + else if (next.size >= 126) { + this.setUint8(1, 126 | Number(next.mask) << 7); + this.setUint16(2, next.size); + } + else { + this.setUint8(1, next.size | Number(next.mask) << 7); + } + return next; + } + } + size() { + const short = this.getUint8(1) & 0b0111_1111; + const mask = this.getUint8(1) >> 7; + return (short === 127 ? 10 : short === 126 ? 4 : 2) + (mask ? 4 : 0); + } + mask() { + return new Uint8Array(this.buffer, this.byteOffset + this.size() - 4, 4); + } + toString() { + const { op, fin } = this.kind(); + const { size, mask } = this.data(); + return `${op}${fin ? '!' : '+'}${size}${mask ? '@' : '#'}`; + } + static make(op, size = 0, mask = false, fin = true) { + const head = (size >= 2 ** 16 ? 10 : size >= 126 ? 4 : 2) + (mask ? 4 : 0); + const frame = $mol_websocket_frame.from(head); + frame.kind({ op, fin }); + frame.data({ size, mask }); + return frame; + } + } + $.$mol_websocket_frame = $mol_websocket_frame; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws_std extends $mol_rest_port_ws { + socket; + send_nil() { + if (this.socket.readyState !== this.socket.OPEN) + return; + this.socket.send(''); + } + send_bin(data) { + if (this.socket.readyState !== this.socket.OPEN) + return; + this.socket.send(data); + } + send_text(data) { + if (this.socket.readyState !== this.socket.OPEN) + return; + const bin = $mol_charset_encode(data); + this.socket.send(bin); + } + } + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_text", null); + $.$mol_rest_port_ws_std = $mol_rest_port_ws_std; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws_node extends $mol_rest_port_ws { + socket; + send_nil() { + if (this.socket.writableEnded) + return; + this.socket.write($mol_websocket_frame.make('pong', 0).asArray()); + } + send_bin(data) { + if (this.socket.writableEnded) + return; + this.socket.write($mol_websocket_frame.make('bin', data.byteLength).asArray()); + this.socket.write(data); + } + send_text(data) { + if (this.socket.writableEnded) + return; + const bin = $mol_charset_encode(data); + this.socket.write($mol_websocket_frame.make('txt', bin.byteLength).asArray()); + this.socket.write(bin); + } + } + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_text", null); + $.$mol_rest_port_ws_node = $mol_rest_port_ws_node; + $.$mol_rest_port_ws = $mol_rest_port_ws_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_yard extends $mol_object { + realm() { + return null; + } + persisted = new WeakSet(); + neonatals = new $mol_wire_set(); + load(land) { + return []; + } + async save(land, units) { } + static masters = []; + master_cursor(next = 0) { + return next; + } + master_current() { + return this.$.$hyoo_crus_yard.masters[this.master_cursor()]; + } + master_next() { + this.master_cursor((this.master_cursor() + 1) % this.$.$hyoo_crus_yard.masters.length); + } + reconnects(reset) { + return ($mol_wire_probe(() => this.reconnects()) ?? 0) + 1; + } + master() { + this.reconnects(); + const link = this.master_current(); + if (!link) + return null; + const socket = new $mol_dom_context.WebSocket(link.replace(/^http/, 'ws')); + socket.binaryType = 'arraybuffer'; + const port = $mol_rest_port_ws_std.make({ socket }); + socket.onmessage = async (event) => { + if (event.data instanceof ArrayBuffer) { + if (!event.data.byteLength) + return; + await $mol_wire_async(this).port_income(port, new Uint8Array(event.data)); + } + else { + this.$.$mol_log3_fail({ + place: this, + message: 'Wrong data', + data: event.data + }); + } + }; + let interval; + socket.onclose = () => { + clearInterval(interval); + setTimeout(() => this.reconnects(null), 1000); + }; + Object.assign(socket, { + destructor: () => { + socket.onclose = () => { }; + clearInterval(interval); + socket.close(); + } + }); + return new Promise((done, fail) => { + socket.onopen = () => { + this.$.$mol_log3_come({ + place: this, + message: 'Connected', + port: $mol_key(port), + server: link, + }); + interval = setInterval(() => socket.send(new Uint8Array), 30000); + done(port); + }; + socket.onerror = () => { + socket.onclose = event => { + fail(new Error(`Master (${link}) is unavailable (${event.code})`)); + clearInterval(interval); + interval = setTimeout(() => { + this.master_next(); + this.reconnects(null); + }, 1000); + }; + }; + }); + } + slaves = new $mol_wire_set(); + sync() { + for (const port of this.ports()) { + for (const land of this.neonatals) { + this.sync_port_land([port, land]); + } + for (const land of this.port_lands(port)) { + this.sync_port_land([port, land]); + } + } + this.neonatals.clear(); + } + ports() { + try { + return [this.master(), ...this.slaves].filter($mol_guard_defined); + } + catch (error) { + $mol_fail_log(error); + return [...this.slaves]; + } + } + port_lands(port) { + return new $mol_wire_set(); + } + port_income(port, msg) { + const pack = $mol_wire_sync($hyoo_crus_pack).from(msg); + const parts = $mol_wire_sync(pack).parts(); + $mol_wire_sync(this.$).$mol_log3_rise({ + place: this, + message: 'Gain Pack', + port: $mol_key(port), + lands: parts.lands, + rocks: parts.rocks.length, + }); + const lands = this.port_lands(port); + for (const land of Reflect.ownKeys(parts.lands)) { + lands.add(land); + const faces = parts.lands[land].faces; + let port_faces = this.face_port_land([port, land]); + if (port_faces) + port_faces.sync(faces); + else + this.face_port_land([port, land], port_faces = faces); + const units = parts.lands[land].units; + for (let unit of units) { + const unit2 = unit.narrow(); + if (unit2 instanceof $hyoo_crus_pass) + continue; + port_faces.time_max(unit2.peer(), unit2.time()); + } + } + this.realm().apply_pack(pack); + } + sync_land(land) { + for (const port of this.ports()) { + this.port_lands(port).add(land); + } + this.sync(); + } + sync_port_land([port, land]) { + try { + this.init_port_land([port, land]); + const faces = this.face_port_land([port, land]); + if (!faces) + return; + const Land = this.realm().Land(land); + Land.saving(); + const parts = Land.delta_parts(faces); + if (!parts) + return; + this.$.$mol_log3_rise({ + place: this, + message: 'Send Unit', + port: $mol_key(port), + lands: parts.lands, + rocks: parts.rocks.length, + }); + port.send_bin($hyoo_crus_pack.make(parts).asArray()); + faces.sync(Land.faces); + } + catch (error) { + $mol_fail_log(error); + } + } + init_port_land([port, land]) { + this.$.$mol_log3_rise({ + place: this, + message: 'Send Face', + port: $mol_key(port), + land: land, + faces: this.realm().Land(land).faces, + }); + port.send_bin(this.realm().Land(land).faces_pack().asArray()); + } + face_port_land([port, land], next = null) { + return next; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "realm", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master_cursor", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master_current", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard.prototype, "master_next", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "reconnects", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "sync", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "ports", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "port_lands", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard.prototype, "port_income", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "sync_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "sync_port_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "init_port_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "face_port_land", null); + $.$hyoo_crus_yard = $hyoo_crus_yard; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_yard_node extends $.$hyoo_crus_yard { + root() { + return $mol_file.relative('.crus'); + } + land_file(land) { + const id = land.ref().description; + const dir = this.root().resolve(`unit/${id.slice(0, 2)}`); + dir.exists(true); + return dir.resolve(`${id}.crus`); + } + land_offsets(land) { + return new Map(); + } + file_sizes = new Map(); + land_descr(land) { + return this.land_file(land).open('create', 'read_write'); + } + async save(land, units) { + const descr = this.land_descr(land); + const offsets = this.land_offsets(land); + const append = []; + for (const unit of units) { + const off = offsets.get(unit.key()); + if (off === undefined) { + append.push(unit); + } + else { + $node.fs.write(descr, unit, 0, unit.byteLength, off, () => { }); + } + } + if (!append.length) + return; + let size = this.file_sizes.get(descr) ?? 0; + let offset = size; + size += append.length * $hyoo_crus_unit.size; + $node.fs.ftruncateSync(descr, size); + this.file_sizes.set(descr, size); + for (const unit of append) { + $node.fs.write(descr, unit, 0, unit.byteLength, offset, () => { }); + offsets.set(unit.key(), offset); + offset += unit.byteLength; + } + } + load(land) { + const descr = this.land_descr(land); + const buf = $node.fs.readFileSync(descr); + if (!buf.length) + return []; + this.file_sizes.set(descr, buf.length); + const pack = $hyoo_crus_pack.from(buf); + const { lands, rocks } = pack.parts(land.ref()); + const units = lands[land.ref()]?.units ?? []; + const offsets = this.land_offsets(land); + for (let i = 0; i < units.length; ++i) { + offsets.set(units[i].key(), i * $hyoo_crus_unit.size); + } + return units; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_yard_node.prototype, "root", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard_node.prototype, "land_file", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard_node.prototype, "land_descr", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard_node.prototype, "load", null); + $.$hyoo_crus_yard_node = $hyoo_crus_yard_node; + $.$hyoo_crus_yard = $hyoo_crus_yard_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_gist_tag; + (function ($hyoo_crus_gist_tag) { + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["term"] = 0] = "term"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["solo"] = 1] = "solo"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["vals"] = 2] = "vals"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["keys"] = 3] = "keys"; + })($hyoo_crus_gist_tag = $.$hyoo_crus_gist_tag || ($.$hyoo_crus_gist_tag = {})); + class $hyoo_crus_gist extends $hyoo_crus_unit { + _vary = undefined; + _open = null; + hint(tip = 'null', tag = 'term') { + this.uint8(0, ($hyoo_crus_gist_tag[tag] << 1) | ($hyoo_crus_vary_tip[tip] << 3)); + } + tag() { + return $hyoo_crus_gist_tag[(this.uint8(0) >> 1) & 0b11]; + } + tip() { + return $hyoo_crus_vary_tip[this.uint8(0) >> 3]; + } + utf() { + return Boolean(this.uint8(0) & 0b10000000); + } + nil() { + return !this.uint16(0); + } + size(next) { + return this.uint8(1, next); + } + time(next) { + return this.uint48(8, next); + } + _self; + self(next) { + if (next === undefined && this._self !== undefined) + return this._self; + else + return this._self = this.id6(14, next); + } + _head; + head(next) { + if (next === undefined && this._head !== undefined) + return this._head; + else + return this._head = this.id6(20, next); + } + key() { + return `${this.head()}/${this.self()}`; + } + _lead; + lead(next) { + if (next === undefined && this._lead !== undefined) + return this._lead; + else + return this._lead = this.id6(26, next); + } + hash(next, tip = 'null', tag = 'term') { + const bin = new Uint8Array(this.buffer, this.byteOffset + 32, 20); + if (next !== undefined) { + this.hint(tip, tag); + this.size(255); + bin.set(next); + } + if (this.size() > 32) + return bin; + $mol_fail(new Error('No stored hash')); + } + meta() { + return new Uint8Array(this.buffer, this.byteOffset + 42, 12); + } + data(next, tip = 'null', tag = 'term') { + if (next === undefined) { + const size = this.size(); + if (size > 32) + $mol_fail(new Error('Too long data')); + return new Uint8Array(this.buffer, this.byteOffset + 32, size); + } + else { + this.hint(tip, tag); + if (next.byteLength > 32) + $mol_fail(new Error('Too long data')); + this.uint8(1, next.byteLength); + const bin = new Uint8Array(this.buffer, this.byteOffset + 32, next.byteLength); + bin.set(next); + new Uint8Array(this.buffer, this.byteOffset + 32 + next.length, 32 - next.length).fill(0); + return bin; + } + } + idea() { + const bin = new Uint8Array(this.buffer, this.byteOffset + 20, 44); + const hash = $mol_crypto_hash(bin); + const buf = new $mol_buffer(hash.buffer); + return buf.uint48(0); + } + static compare(left, right) { + return (right.time() - left.time()) || (right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' ', this.lead() || 'AAAAAAAA', $mol_dev_format_shade('\\'), $mol_dev_format_accent(this.head() || 'AAAAAAAA'), $mol_dev_format_shade('/'), this.self() || 'AAAAAAAA', ' ', $mol_dev_format_shade(new $mol_time_moment(this.time()).toString('YYYY-MM-DD hh:mm:ss.sss')), ' ', { + term: '💼', + solo: '1️⃣', + vals: '🎹', + keys: '🔑', + }[this.tag()], this.tip(), ' ', $mol_dev_format_native(this._vary)); + } + } + $.$hyoo_crus_gist = $hyoo_crus_gist; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_node extends $mol_object { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.vals]; + land() { + return null; + } + head() { + return ''; + } + realm() { + return this.land()?.realm() ?? null; + } + land_ref() { + return this.land()?.ref() ?? this.$.$hyoo_crus_auth.current().lord(); + } + ref() { + return $hyoo_crus_ref(this.land_ref().description + '_' + this.head()); + } + toJSON() { + return this.ref().description; + } + cast(Node) { + return this.land().Node(Node).Item(this.head()); + } + nodes(Node) { + const land = this.land(); + const map = { + term: () => land.Node(Node || $hyoo_crus_atom_vary), + solo: () => land.Node(Node || $hyoo_crus_atom_vary), + vals: () => land.Node(Node || $hyoo_crus_list_vary), + keys: () => land.Node(Node || $hyoo_crus_dict), + }; + return this.units().map(unit => map[unit.tag()]().Item(unit.self())); + } + units() { + return this.land().gists_ordered(this.head()).filter(unit => !unit.nil()); + } + filled() { + return this.units().length > 0; + } + can_change(lord = this.land().auth().lord()) { + return this.land().lord_rank(lord) >= $hyoo_crus_rank.add; + } + last_change() { + const land = this.land(); + let last = 0; + const map = { + term: () => null, + solo: () => land.Node($hyoo_crus_atom_vary), + vals: () => land.Node($hyoo_crus_list_vary), + keys: () => land.Node($hyoo_crus_dict), + }; + const visit = (gist) => { + if (gist.time() > last) + last = gist.time(); + map[gist.tag()]()?.Item(gist.self()).units().forEach(visit); + }; + for (const gist of this.units()) + visit(gist); + return last ? new $mol_time_moment(last) : null; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head()); + } + } + __decorate([ + $mol_memo.method + ], $hyoo_crus_node.prototype, "ref", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_node.prototype, "cast", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_node.prototype, "nodes", null); + __decorate([ + $mol_mem + ], $hyoo_crus_node.prototype, "units", null); + __decorate([ + $mol_mem + ], $hyoo_crus_node.prototype, "last_change", null); + $.$hyoo_crus_node = $hyoo_crus_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_reconcile({ prev, from, to, next, equal, drop, insert, update, }) { + if (!update) + update = (next, prev, lead) => insert(next, drop(prev, lead)); + let p = from; + let n = 0; + let lead = p ? prev[p - 1] : null; + if (to > prev.length) + $mol_fail(new RangeError(`To(${to}) greater then length(${prev.length})`)); + if (from > to) + $mol_fail(new RangeError(`From(${to}) greater then to(${to})`)); + while (p < to || n < next.length) { + if (p < to && n < next.length && equal(next[n], prev[p])) { + lead = prev[p]; + ++p; + ++n; + } + else if (next.length - n > to - p) { + lead = insert(next[n], lead); + ++n; + } + else if (next.length - n < to - p) { + lead = drop(prev[p], lead); + ++p; + } + else { + lead = update(next[n], prev[p], lead); + ++p; + ++n; + } + } + } + $.$mol_reconcile = $mol_reconcile; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_realm extends $mol_object { + lands = new $mol_wire_dict(); + yard() { + return this.$.$hyoo_crus_yard.make({ + realm: $mol_const(this), + }); + } + home() { + return this.Land(this.$.$hyoo_crus_auth.current().lord()).home(); + } + king_grab(preset = $hyoo_crus_rank_public) { + const king = this.$.$hyoo_crus_auth.grab(); + const colony = $mol_wire_sync($hyoo_crus_land).make({}); + colony.auth = $mol_const(king); + if ((preset[''] ?? $hyoo_crus_rank.nil) === $hyoo_crus_rank.nil) { + colony.encrypted(true); + } + const self = this.$.$hyoo_crus_auth.current(); + colony.give(self, $hyoo_crus_rank.law); + for (const key in preset) + colony.give(key ? $hyoo_crus_auth.from(key) : null, preset[key]); + this.Land(colony.ref()).apply_unit_trust(colony.delta_unit()); + return king; + } + land_grab(preset = $hyoo_crus_rank_public) { + return this.Land(this.king_grab(preset).lord()); + } + Land(ref) { + let land = this.lands.get(ref); + if (land) + return land; + land = $hyoo_crus_land.make({ + realm: $mol_const(this), + ref: $mol_const(ref), + }); + this.lands.set(ref, land); + return land; + } + Node(ref, Node) { + const land = this.Land($hyoo_crus_ref_land(ref)); + return land.Node(Node).Item($hyoo_crus_ref_head(ref)); + } + apply_pack(pack) { + const { lands, rocks } = pack.parts(); + for (const land of Reflect.ownKeys(lands)) { + const errors = this.Land(land).apply_unit(lands[land].units).filter(Boolean); + for (const error of errors) + this.$.$mol_log3_warn({ + place: `${this}.apply_pack()`, + message: error, + hint: 'Send it to developer', + }); + } + for (const [hash, rock] of rocks) { + if (!rock) + continue; + this.$.$hyoo_crus_mine.save(rock); + } + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_realm.prototype, "yard", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "king_grab", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "land_grab", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_realm.prototype, "Land", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "apply_pack", null); + $.$hyoo_crus_realm = $hyoo_crus_realm; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_list_vary extends $hyoo_crus_node { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.vals]; + items_vary(next, tag = 'term') { + const units = this.units(); + if (next === undefined) + return units.map(unit => this.land().gist_decode(unit)); + this.splice(next, 0, units.length, tag); + return this.items_vary(); + } + splice(next, from = this.units().length, to = from, tag = 'term') { + const land = this.land(); + $mol_reconcile({ + prev: this.units(), + from, + to, + next, + equal: (next, prev) => $mol_compare_deep(this.land().gist_decode(prev), next), + drop: (prev, lead) => this.land().post(lead?.self() ?? '', prev.head(), prev.self(), null), + insert: (next, lead) => this.land().post(lead?.self() ?? '', this.head(), land.self_make($hyoo_crus_area_of(this.head())), next, tag), + update: (next, prev, lead) => this.land().post(lead?.self() ?? '', prev.head(), prev.self(), next, prev.tag()), + }); + } + find(vary) { + for (const unit of this.units()) { + if ($mol_compare_deep(this.land().gist_decode(unit), vary)) + return unit; + } + return null; + } + has(vary, next, tag = 'term') { + if (next === undefined) + return Boolean(this.find(vary)); + if (next) + this.add(vary, tag); + else + this.cut(vary); + return next; + } + add(vary, tag = 'term') { + if (this.has(vary)) + return; + this.land().post('', this.head(), '', vary, tag); + } + cut(vary) { + const units = [...this.units()]; + for (let i = 0; i < units.length; ++i) { + if (!$mol_compare_deep(this.land().gist_decode(units[i]), vary)) + continue; + this.land().post(units[i - 1]?.self() ?? 0, units[i].head(), units[i].self(), null); + units.splice(i, 1); + --i; + } + } + move(from, to) { + this.land().gist_move(this.units()[from], this.head(), to); + } + wipe(seat) { + this.land().gist_wipe(this.units()[seat]); + } + node_make(Node, vary, tag = 'term') { + this.splice([vary], undefined, undefined, tag); + return this.land().Node(Node).Item(this.units().at(-1).self()); + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(this.items_vary())); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_list_vary.prototype, "items_vary", null); + $.$hyoo_crus_list_vary = $hyoo_crus_list_vary; + function $hyoo_crus_list(parse) { + class Narrow extends $hyoo_crus_list_vary { + static parse = parse; + items(next) { + return this.items_vary(next?.map(parse)).map(parse); + } + } + __decorate([ + $mol_mem + ], Narrow.prototype, "items", null); + return Narrow; + } + $.$hyoo_crus_list = $hyoo_crus_list; + class $hyoo_crus_list_bin extends $hyoo_crus_list($hyoo_crus_vary_cast_bin) { + } + $.$hyoo_crus_list_bin = $hyoo_crus_list_bin; + class $hyoo_crus_list_bool extends $hyoo_crus_list($hyoo_crus_vary_cast_bool) { + } + $.$hyoo_crus_list_bool = $hyoo_crus_list_bool; + class $hyoo_crus_list_int extends $hyoo_crus_list($hyoo_crus_vary_cast_int) { + } + $.$hyoo_crus_list_int = $hyoo_crus_list_int; + class $hyoo_crus_list_real extends $hyoo_crus_list($hyoo_crus_vary_cast_real) { + } + $.$hyoo_crus_list_real = $hyoo_crus_list_real; + class $hyoo_crus_list_ref extends $hyoo_crus_list($hyoo_crus_vary_cast_ref) { + } + $.$hyoo_crus_list_ref = $hyoo_crus_list_ref; + class $hyoo_crus_list_str extends $hyoo_crus_list($hyoo_crus_vary_cast_str) { + } + $.$hyoo_crus_list_str = $hyoo_crus_list_str; + class $hyoo_crus_list_time extends $hyoo_crus_list($hyoo_crus_vary_cast_time) { + } + $.$hyoo_crus_list_time = $hyoo_crus_list_time; + class $hyoo_crus_list_dur extends $hyoo_crus_list($hyoo_crus_vary_cast_dur) { + } + $.$hyoo_crus_list_dur = $hyoo_crus_list_dur; + class $hyoo_crus_list_range extends $hyoo_crus_list($hyoo_crus_vary_cast_range) { + } + $.$hyoo_crus_list_range = $hyoo_crus_list_range; + class $hyoo_crus_list_json extends $hyoo_crus_list($hyoo_crus_vary_cast_json) { + } + $.$hyoo_crus_list_json = $hyoo_crus_list_json; + class $hyoo_crus_list_jsan extends $hyoo_crus_list($hyoo_crus_vary_cast_jsan) { + } + $.$hyoo_crus_list_jsan = $hyoo_crus_list_jsan; + class $hyoo_crus_list_dom extends $hyoo_crus_list($hyoo_crus_vary_cast_dom) { + } + $.$hyoo_crus_list_dom = $hyoo_crus_list_dom; + class $hyoo_crus_list_tree extends $hyoo_crus_list($hyoo_crus_vary_cast_tree) { + } + $.$hyoo_crus_list_tree = $hyoo_crus_list_tree; + class $hyoo_crus_list_ref_base extends $hyoo_crus_list_ref { + } + $.$hyoo_crus_list_ref_base = $hyoo_crus_list_ref_base; + function $hyoo_crus_list_ref_to(Value) { + class Ref extends $hyoo_crus_list_ref_base { + static Value = Value; + static toJSON() { + return '$hyoo_crus_list_to<' + Value() + '>'; + } + remote_list(next) { + const realm = this.realm(); + const Node = Value(); + return this.items_vary(next?.map(item => item.ref())) + .map($hyoo_crus_vary_cast_ref) + .filter($mol_guard_defined) + .map(ref => realm.Node(ref, Node)); + } + remote_make(preset) { + const land = this.realm().land_grab(preset); + this.splice([land.ref()]); + return land.Node(Value()).Item(''); + } + local_make(idea) { + const area = $hyoo_crus_area_of(this.head()); + const self = this.land().self_make(area, idea); + const node = this.land().Node(Value()).Item(self); + this.splice([node.ref()]); + return node; + } + } + __decorate([ + $mol_mem + ], Ref.prototype, "remote_list", null); + __decorate([ + $mol_action + ], Ref.prototype, "remote_make", null); + __decorate([ + $mol_action + ], Ref.prototype, "local_make", null); + return Ref; + } + $.$hyoo_crus_list_ref_to = $hyoo_crus_list_ref_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_dict extends ($hyoo_crus_list_vary) { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.keys]; + keys() { + return this.items_vary(); + } + dive(key, Node, auto) { + if (this.can_change() && auto !== undefined) + this.has(key, true, Node.tag); + const unit = this.find(key); + return unit ? this.land().Node(Node).Item(unit.self()) : null; + } + static schema = {}; + static with(schema) { + const Entity = class Entity extends this { + }; + for (const Field in schema) { + Object.defineProperty(Entity.prototype, Field, { + value: function (auto) { + return this.dive(Field, schema[Field], auto); + } + }); + } + return Object.assign(Entity, { schema: { ...this.schema, ...schema } }); + } + ; + [$mol_dev_format_head]() { + const keys = $mol_wire_probe(() => this.keys()); + const nodes = $mol_wire_probe(() => this.nodes(null)) ?? []; + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(keys?.map((key, index) => new Pair(key, nodes[index])))); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_dict.prototype, "keys", null); + $.$hyoo_crus_dict = $hyoo_crus_dict; + class Pair { + key; + val; + constructor(key, val) { + this.key = key; + this.val = val; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_tr({}, $mol_dev_format_td({}, $mol_dev_format_auto(this.key)), $mol_dev_format_td({}, ': '), $mol_dev_format_td({}, $mol_dev_format_auto(this.val))); + } + } + function $hyoo_crus_dict_to(Value) { + return class Dict extends $hyoo_crus_dict { + Value = Value; + key(key, auto) { + this.has(key, auto === undefined ? undefined : true, Value.tag); + const unit = this.find(key); + if (!unit) + return null; + return this.land().Node(this.Value).Item(unit.self()); + } + static toString() { + return '$hyoo_crus_dict_to(' + Value + ')'; + } + }; + } + $.$hyoo_crus_dict_to = $hyoo_crus_dict_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_atom_vary extends $hyoo_crus_node { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.solo]; + pick_unit() { + return this.units().at(0); + } + vary(next) { + let unit_prev = this.pick_unit(); + let prev = unit_prev ? this.land().gist_decode(unit_prev) : null; + if (next === undefined) + return prev; + if ($mol_compare_deep(prev, next)) + return next; + this.land().post('', unit_prev?.head() ?? this.head(), unit_prev?.self() ?? '', next); + return this.vary(); + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(this.vary())); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_atom_vary.prototype, "vary", null); + $.$hyoo_crus_atom_vary = $hyoo_crus_atom_vary; + class $hyoo_crus_atom_enum_base extends $hyoo_crus_atom_vary { + static options = []; + } + $.$hyoo_crus_atom_enum_base = $hyoo_crus_atom_enum_base; + function $hyoo_crus_atom_enum(options) { + class Narrow extends $hyoo_crus_atom_enum_base { + static options = options; + val(next) { + validate: if (next !== undefined) { + for (const option of options) { + if ($mol_compare_deep(option, next)) + break validate; + } + $mol_fail(new Error(`Wrong value (${$hyoo_crus_vary_cast_str(next)})`)); + } + const val = this.vary(next); + for (const option of options) { + if ($mol_compare_deep(option, val)) + return val; + } + return null; + } + } + __decorate([ + $mol_mem + ], Narrow.prototype, "val", null); + return Narrow; + } + $.$hyoo_crus_atom_enum = $hyoo_crus_atom_enum; + function $hyoo_crus_atom(parse) { + class Narrow extends $hyoo_crus_atom_vary { + static parse = parse; + val(next) { + if (next !== undefined) + parse(next); + const res = this.vary(next); + try { + return parse(res); + } + catch { + return null; + } + } + } + return Narrow; + } + $.$hyoo_crus_atom = $hyoo_crus_atom; + class $hyoo_crus_atom_bin extends $hyoo_crus_atom($hyoo_crus_vary_cast_bin) { + } + $.$hyoo_crus_atom_bin = $hyoo_crus_atom_bin; + class $hyoo_crus_atom_bool extends $hyoo_crus_atom($hyoo_crus_vary_cast_bool) { + } + $.$hyoo_crus_atom_bool = $hyoo_crus_atom_bool; + class $hyoo_crus_atom_int extends $hyoo_crus_atom($hyoo_crus_vary_cast_int) { + } + $.$hyoo_crus_atom_int = $hyoo_crus_atom_int; + class $hyoo_crus_atom_real extends $hyoo_crus_atom($hyoo_crus_vary_cast_real) { + } + $.$hyoo_crus_atom_real = $hyoo_crus_atom_real; + class $hyoo_crus_atom_ref extends $hyoo_crus_atom($hyoo_crus_vary_cast_ref) { + } + $.$hyoo_crus_atom_ref = $hyoo_crus_atom_ref; + class $hyoo_crus_atom_str extends $hyoo_crus_atom($hyoo_crus_vary_cast_str) { + } + $.$hyoo_crus_atom_str = $hyoo_crus_atom_str; + class $hyoo_crus_atom_time extends $hyoo_crus_atom($hyoo_crus_vary_cast_time) { + } + $.$hyoo_crus_atom_time = $hyoo_crus_atom_time; + class $hyoo_crus_atom_dur extends $hyoo_crus_atom($hyoo_crus_vary_cast_dur) { + } + $.$hyoo_crus_atom_dur = $hyoo_crus_atom_dur; + class $hyoo_crus_atom_range extends $hyoo_crus_atom($hyoo_crus_vary_cast_range) { + } + $.$hyoo_crus_atom_range = $hyoo_crus_atom_range; + class $hyoo_crus_atom_json extends $hyoo_crus_atom($hyoo_crus_vary_cast_json) { + } + $.$hyoo_crus_atom_json = $hyoo_crus_atom_json; + class $hyoo_crus_atom_jsan extends $hyoo_crus_atom($hyoo_crus_vary_cast_jsan) { + } + $.$hyoo_crus_atom_jsan = $hyoo_crus_atom_jsan; + class $hyoo_crus_atom_dom extends $hyoo_crus_atom($hyoo_crus_vary_cast_dom) { + } + $.$hyoo_crus_atom_dom = $hyoo_crus_atom_dom; + class $hyoo_crus_atom_tree extends $hyoo_crus_atom($hyoo_crus_vary_cast_tree) { + } + $.$hyoo_crus_atom_tree = $hyoo_crus_atom_tree; + class $hyoo_crus_atom_ref_base extends $hyoo_crus_atom_ref { + static Value = $hyoo_crus_dict; + } + $.$hyoo_crus_atom_ref_base = $hyoo_crus_atom_ref_base; + function $hyoo_crus_atom_ref_to(Value) { + class Ref extends $hyoo_crus_atom_ref_base { + Value = Value; + static toString() { + return '$hyoo_crus_atom_ref_to<' + Value() + '>'; + } + yoke(preset) { + const realm = this.realm(); + const Ref = this.cast($hyoo_crus_atom_ref); + const ref = Ref.val(); + if (ref) + return realm.Land(ref); + if (preset === undefined) + return null; + const land = realm.land_grab(preset); + Ref.val(land.ref()); + return land; + } + remote(next) { + const realm = this.realm(); + let ref = next?.ref() ?? next; + ref = $hyoo_crus_vary_cast_ref(this.vary(ref)); + if (!ref) + return null; + return realm.Node(ref, Value()); + } + remote_ensure(preset) { + this.yoke(preset); + return this.remote(); + } + local_ensure() { + if (this.remote()) + return this.remote(); + const node = this.land().Node(Value()).Item(this.land().self_make($hyoo_crus_area_of(this.head()))); + return this.remote(node); + } + } + __decorate([ + $mol_mem + ], Ref.prototype, "yoke", null); + __decorate([ + $mol_mem + ], Ref.prototype, "remote", null); + __decorate([ + $mol_mem + ], Ref.prototype, "local_ensure", null); + return Ref; + } + $.$hyoo_crus_atom_ref_to = $hyoo_crus_atom_ref_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_home extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + Selection: $hyoo_crus_atom_str, + Hall: $hyoo_crus_atom_ref_to(() => $hyoo_crus_dict), + }) { + hall_by(Node, preset) { + return this.Hall(null)?.remote_ensure(preset)?.cast(Node) ?? null; + } + } + $.$hyoo_crus_home = $hyoo_crus_home; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_meta extends $hyoo_crus_dict.with({ + Inflow: $hyoo_crus_list_ref, + }) { + } + $.$hyoo_crus_meta = $hyoo_crus_meta; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_entity extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + }) { + } + $.$hyoo_crus_entity = $hyoo_crus_entity; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_survey_meet extends $hyoo_crus_entity.with({ + Opinions: $hyoo_crus_dict_to($hyoo_crus_atom_ref_to(() => $hyoo_survey_meet_opinion)) + }) { + opinion_my() { + const key = this.land().auth().peer(); + return this.Opinions(true)?.key(key, true)?.remote_ensure($hyoo_crus_rank_public) ?? null; + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_meet.prototype, "opinion_my", null); + $.$hyoo_survey_meet = $hyoo_survey_meet; + class $hyoo_survey_meet_opinion extends $hyoo_crus_entity.with({ + Pleasant: $hyoo_crus_atom_str, + Improvement: $hyoo_crus_atom_str, + Continue: $hyoo_crus_atom_bool, + Request: $hyoo_crus_atom_str, + }) { + } + $.$hyoo_survey_meet_opinion = $hyoo_survey_meet_opinion; +})($ || ($ = {})); + +; + ($.$mol_stack) = class $mol_stack extends ($.$mol_view) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/stack/stack.view.css", "[mol_stack] {\n\tdisplay: grid;\n\t/* width: max-content; */\n\t/* height: max-content; */\n\talign-items: flex-start;\n\tjustify-items: flex-start;\n}\n\n[mol_stack] > * {\n\tgrid-area: 1/1;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_text_code_token) = class $mol_text_code_token extends ($.$mol_dimmer) { + type(){ + return ""; + } + attr(){ + return {...(super.attr()), "mol_text_code_token_type": (this.type())}; + } + }; + ($.$mol_text_code_token_link) = class $mol_text_code_token_link extends ($.$mol_text_code_token) { + uri(){ + return ""; + } + dom_name(){ + return "a"; + } + type(){ + return "code-link"; + } + attr(){ + return { + ...(super.attr()), + "href": (this.uri()), + "target": "_blank" + }; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { hsla } = $mol_style_func; + $mol_style_define($mol_text_code_token, { + display: 'inline', + textDecoration: 'none', + '@': { + mol_text_code_token_type: { + 'code-keyword': { + color: hsla(0, 70, 60, 1), + }, + 'code-field': { + color: hsla(300, 70, 50, 1), + }, + 'code-tag': { + color: hsla(330, 70, 50, 1), + }, + 'code-global': { + color: hsla(30, 80, 50, 1), + }, + 'code-decorator': { + color: hsla(180, 40, 50, 1), + }, + 'code-punctuation': { + color: hsla(0, 0, 50, 1), + }, + 'code-string': { + color: hsla(90, 40, 50, 1), + }, + 'code-number': { + color: hsla(55, 65, 45, 1), + }, + 'code-call': { + color: hsla(270, 60, 50, 1), + }, + 'code-link': { + color: hsla(210, 60, 50, 1), + }, + 'code-comment-inline': { + opacity: .5, + }, + 'code-comment-block': { + opacity: .5, + }, + 'code-docs': { + opacity: .75, + }, + }, + } + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text_code_row) = class $mol_text_code_row extends ($.$mol_paragraph) { + numb(){ + return 0; + } + token_type(id){ + return ""; + } + token_text(id){ + return ""; + } + highlight(){ + return ""; + } + token_uri(id){ + return ""; + } + text(){ + return ""; + } + minimal_height(){ + return 24; + } + numb_showed(){ + return true; + } + syntax(){ + return null; + } + uri_resolve(id){ + return ""; + } + Numb(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.numb())]); + return obj; + } + Token(id){ + const obj = new this.$.$mol_text_code_token(); + (obj.type) = () => ((this.token_type(id))); + (obj.haystack) = () => ((this.token_text(id))); + (obj.needle) = () => ((this.highlight())); + return obj; + } + Token_link(id){ + const obj = new this.$.$mol_text_code_token_link(); + (obj.haystack) = () => ((this.token_text(id))); + (obj.needle) = () => ((this.highlight())); + (obj.uri) = () => ((this.token_uri(id))); + return obj; + } + find_pos(id){ + return null; + } + }; + ($mol_mem(($.$mol_text_code_row.prototype), "Numb")); + ($mol_mem_key(($.$mol_text_code_row.prototype), "Token")); + ($mol_mem_key(($.$mol_text_code_row.prototype), "Token_link")); + + +; +"use strict"; +var $; +(function ($) { + class $mol_syntax2 { + lexems; + constructor(lexems) { + this.lexems = lexems; + for (let name in lexems) { + this.rules.push({ + name: name, + regExp: lexems[name], + size: RegExp('^$|' + lexems[name].source).exec('').length - 1, + }); + } + const parts = '(' + this.rules.map(rule => rule.regExp.source).join(')|(') + ')'; + this.regexp = RegExp(`([\\s\\S]*?)(?:(${parts})|$(?![^]))`, 'gmu'); + } + rules = []; + regexp; + tokenize(text, handle) { + let end = 0; + lexing: while (end < text.length) { + const start = end; + this.regexp.lastIndex = start; + var found = this.regexp.exec(text); + end = this.regexp.lastIndex; + if (start === end) + throw new Error('Empty token'); + var prefix = found[1]; + if (prefix) + handle('', prefix, [prefix], start); + var suffix = found[2]; + if (!suffix) + continue; + let offset = 4; + for (let rule of this.rules) { + if (found[offset - 1]) { + handle(rule.name, suffix, found.slice(offset, offset + rule.size), start + prefix.length); + continue lexing; + } + offset += rule.size + 1; + } + $mol_fail(new Error('$mol_syntax2 is broken')); + } + } + parse(text, handlers) { + this.tokenize(text, (name, ...args) => handlers[name](...args)); + } + } + $.$mol_syntax2 = $mol_syntax2; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_syntax2_md_flow = new $mol_syntax2({ + 'quote': /^((?:(?:[>"] )(?:[^]*?)$(\r?\n?))+)([\n\r]*)/, + 'header': /^([#=]+)(\s+)(.*?)$([\n\r]*)/, + 'list': /^((?:(?: ?([*+-])|(?:\d+[\.\)])+) +(?:[^]*?)$(?:\r?\n?)(?: (?:[^]*?)$(?:\r?\n?))*)+)((?:\r?\n)*)/, + 'code': /^(```\s*)([\w.-]*)[\r\n]+([^]*?)^(```)$([\n\r]*)/, + 'code-indent': /^((?:(?: |\t)(?:[^]*?)$\r?\n?)+)([\n\r]*)/, + 'table': /((?:^\|.+?$\r?\n?)+)([\n\r]*)/, + 'grid': /((?:^ *! .*?$\r?\n?)+)([\n\r]*)/, + 'cut': /^--+$((?:\r?\n)*)/, + 'block': /^(.*?)$((?:\r?\n)*)/, + }); + $.$mol_syntax2_md_line = new $mol_syntax2({ + 'strong': /\*\*(.+?)\*\*/, + 'emphasis': /\*(?!\s)(.+?)\*|\/\/(?!\s)(.+?)\/\//, + 'code': /```(.+?)```|;;(.+?);;|`(.+?)`/, + 'insert': /\+\+(.+?)\+\+/, + 'delete': /~~(.+?)~~|--(.+?)--/, + 'embed': /""(?:(.*?)\\)?(.*?)""/, + 'link': /\\\\(?:(.*?)\\)?(.*?)\\\\/, + 'image-link': /!\[([^\[\]]*?)\]\((.*?)\)/, + 'text-link': /\[(.*?(?:\[[^\[\]]*?\][^\[\]]*?)*)\]\((.*?)\)/, + 'text-link-http': /\b(https?:\/\/[^\s,.;:!?")]+(?:[,.;:!?")][^\s,.;:!?")]+)+)/, + }); + $.$mol_syntax2_md_code = new $mol_syntax2({ + 'code-indent': /\t+/, + 'code-docs': /\/\/\/.*?$/, + 'code-comment-block': /(?:\/\*[^]*?\*\/|\/\+[^]*?\+\/|)/, + 'code-link': /(?:\w+:\/\/|#)\S+?(?=\s|\\\\|""|$)/, + 'code-comment-inline': /\/\/.*?(?:$|\/\/)/, + 'code-string': /(?:".*?"|'.*?'|`.*?`|\/.+?\/[dygimsu]*(?!\p{Letter})|(?:^|[ \t])\\[^\n]*\n)/, + 'code-number': /[+-]?(?:\d*\.)?\d+\w*/, + 'code-call': /\.?\w+ *(?=\()/, + 'code-sexpr': /\((\w+ )/, + 'code-field': /(?:(?:\.|::|->)\w+|[\w-]+\??\s*:(?!\/\/|:))/, + 'code-keyword': /\b(throw|readonly|unknown|keyof|typeof|never|from|class|struct|interface|type|function|extends|implements|module|namespace|import|export|include|require|var|val|let|const|for|do|while|until|in|out|of|new|if|then|else|switch|case|this|return|async|await|yield|try|catch|break|continue|get|set|public|private|protected|string|boolean|number|null|undefined|true|false|void|int|float|ref)\b/, + 'code-global': /[$]+\w*|\b[A-Z][a-z0-9]+[A-Z]\w*/, + 'code-word': /\w+/, + 'code-decorator': /@\s*\S+/, + 'code-tag': /<\/?[\w-]+\/?>?|&\w+;/, + 'code-punctuation': /[\-\[\]\{\}\(\)<=>~!\?@#%&\*_\+\\\/\|;:\.,\^]+?/, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text_code_row extends $.$mol_text_code_row { + maximal_width() { + return this.text().length * this.letter_width(); + } + syntax() { + return this.$.$mol_syntax2_md_code; + } + tokens(path) { + const tokens = []; + const text = (path.length > 0) + ? this.tokens(path.slice(0, path.length - 1))[path[path.length - 1]].found.slice(1, -1) + : this.text(); + this.syntax().tokenize(text, (name, found, chunks) => { + if (name === 'code-sexpr') { + tokens.push({ name: 'code-punctuation', found: '(', chunks: [] }); + tokens.push({ name: 'code-call', found: chunks[0], chunks: [] }); + } + else { + tokens.push({ name, found, chunks }); + } + }); + return tokens; + } + sub() { + return [ + ...this.numb_showed() ? [this.Numb()] : [], + ...this.row_content([]) + ]; + } + row_content(path) { + return this.tokens(path).map((t, i) => this.Token([...path, i])); + } + Token(path) { + return this.token_type(path) === 'code-link' ? this.Token_link(path) : super.Token(path); + } + token_type(path) { + return this.tokens([...path.slice(0, path.length - 1)])[path[path.length - 1]].name; + } + token_content(path) { + const tokens = this.tokens([...path.slice(0, path.length - 1)]); + const token = tokens[path[path.length - 1]]; + switch (token.name) { + case 'code-string': return [ + token.found[0], + ...this.row_content(path), + token.found[token.found.length - 1], + ]; + default: return [token.found]; + } + } + token_text(path) { + const tokens = this.tokens([...path.slice(0, path.length - 1)]); + const token = tokens[path[path.length - 1]]; + return token.found; + } + token_uri(path) { + const uri = this.token_text(path); + return this.uri_resolve(uri); + } + *view_find(check, path = []) { + if (check(this, this.text())) { + yield [...path, this]; + } + } + find_pos(offset) { + return this.find_token_pos([offset]); + } + find_token_pos([offset, ...path]) { + for (const [index, token] of this.tokens(path).entries()) { + if (token.found.length >= offset) { + const token = this.Token([...path, index]); + return { token, offset }; + } + else { + offset -= token.found.length; + } + } + return null; + } + } + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "row_content", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_type", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_content", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_text", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_uri", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "find_pos", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "find_token_pos", null); + $$.$mol_text_code_row = $mol_text_code_row; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { rem } = $mol_style_unit; + $mol_style_define($mol_text_code_row, { + display: 'block', + position: 'relative', + font: { + family: 'monospace', + }, + Numb: { + textAlign: 'right', + color: $mol_theme.shade, + width: rem(3), + margin: { + left: rem(-4), + }, + display: 'inline-block', + whiteSpace: 'nowrap', + userSelect: 'none', + position: 'absolute', + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_blob = ($node.buffer?.Blob ?? $mol_dom_context.Blob); +})($ || ($ = {})); + +; + ($.$mol_icon_clipboard) = class $mol_icon_clipboard extends ($.$mol_icon) { + path(){ + return "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3"; + } + }; + + +; +"use strict"; + +; + ($.$mol_icon_clipboard_outline) = class $mol_icon_clipboard_outline extends ($.$mol_icon) { + path(){ + return "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3M7,7H17V5H19V19H5V5H7V7Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_button_copy) = class $mol_button_copy extends ($.$mol_button_minor) { + text(){ + return (this.title()); + } + text_blob(next){ + if(next !== undefined) return next; + const obj = new this.$.$mol_blob([(this.text())], {"type": "text/plain"}); + return obj; + } + html(){ + return ""; + } + html_blob(next){ + if(next !== undefined) return next; + const obj = new this.$.$mol_blob([(this.html())], {"type": "text/html"}); + return obj; + } + Icon(){ + const obj = new this.$.$mol_icon_clipboard_outline(); + return obj; + } + title(){ + return ""; + } + blobs(){ + return [(this.text_blob()), (this.html_blob())]; + } + data(){ + return {}; + } + sub(){ + return [(this.Icon()), (this.title())]; + } + }; + ($mol_mem(($.$mol_button_copy.prototype), "text_blob")); + ($mol_mem(($.$mol_button_copy.prototype), "html_blob")); + ($mol_mem(($.$mol_button_copy.prototype), "Icon")); + + +; +"use strict"; +var $; +(function ($) { + const mapping = { + '<': '<', + '>': '>', + '"': '"', + '&': '&', + }; + function $mol_html_encode(text) { + return text.replace(/[&<">]/gi, str => mapping[str]); + } + $.$mol_html_encode = $mol_html_encode; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_button_copy extends $.$mol_button_copy { + data() { + return Object.fromEntries(this.blobs().map(blob => [blob.type, blob])); + } + html() { + return $mol_html_encode(this.text()); + } + attachments() { + return [new ClipboardItem(this.data())]; + } + click(event) { + const cb = $mol_wire_sync(this.$.$mol_dom_context.navigator.clipboard); + cb.writeText?.(this.text()); + cb.write?.(this.attachments()); + if (cb.writeText === undefined && cb.write === undefined) { + throw new Error("doesn't support copy to clipoard"); + } + } + } + __decorate([ + $mol_mem + ], $mol_button_copy.prototype, "html", null); + __decorate([ + $mol_mem + ], $mol_button_copy.prototype, "attachments", null); + $$.$mol_button_copy = $mol_button_copy; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text_code) = class $mol_text_code extends ($.$mol_stack) { + sidebar_showed(){ + return false; + } + render_visible_only(){ + return false; + } + row_numb(id){ + return 0; + } + row_text(id){ + return ""; + } + syntax(){ + return null; + } + uri_resolve(id){ + return ""; + } + highlight(){ + return ""; + } + Row(id){ + const obj = new this.$.$mol_text_code_row(); + (obj.numb_showed) = () => ((this.sidebar_showed())); + (obj.numb) = () => ((this.row_numb(id))); + (obj.text) = () => ((this.row_text(id))); + (obj.syntax) = () => ((this.syntax())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + rows(){ + return [(this.Row("0"))]; + } + Rows(){ + const obj = new this.$.$mol_list(); + (obj.render_visible_only) = () => ((this.render_visible_only())); + (obj.rows) = () => ((this.rows())); + return obj; + } + text_export(){ + return ""; + } + Copy(){ + const obj = new this.$.$mol_button_copy(); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_text_code_Copy_hint"))); + (obj.text) = () => ((this.text_export())); + return obj; + } + attr(){ + return {...(super.attr()), "mol_text_code_sidebar_showed": (this.sidebar_showed())}; + } + text(){ + return ""; + } + text_lines(){ + return []; + } + find_pos(id){ + return null; + } + uri_base(){ + return ""; + } + sub(){ + return [(this.Rows()), (this.Copy())]; + } + }; + ($mol_mem_key(($.$mol_text_code.prototype), "Row")); + ($mol_mem(($.$mol_text_code.prototype), "Rows")); + ($mol_mem(($.$mol_text_code.prototype), "Copy")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text_code extends $.$mol_text_code { + render_visible_only() { + return this.$.$mol_support_css_overflow_anchor(); + } + text_lines() { + return this.text().split('\n'); + } + rows() { + return this.text_lines().map((_, index) => this.Row(index + 1)); + } + row_text(index) { + return this.text_lines()[index - 1]; + } + row_numb(index) { + return index; + } + find_pos(offset) { + for (const [index, line] of this.text_lines().entries()) { + if (line.length >= offset) { + return this.Row(index + 1).find_pos(offset); + } + else { + offset -= line.length + 1; + } + } + return null; + } + sub() { + return [ + this.Rows(), + ...this.sidebar_showed() ? [this.Copy()] : [] + ]; + } + syntax() { + return this.$.$mol_syntax2_md_code; + } + uri_base() { + return $mol_dom_context.document.location.href; + } + uri_resolve(uri) { + if (/^(\w+script+:)+/.test(uri)) + return null; + try { + const url = new URL(uri, this.uri_base()); + return url.toString(); + } + catch (error) { + $mol_fail_log(error); + return null; + } + } + text_export() { + return this.text() + '\n'; + } + } + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "text_lines", null); + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "rows", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "row_text", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "find_pos", null); + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "sub", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "uri_resolve", null); + $$.$mol_text_code = $mol_text_code; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { rem, px } = $mol_style_unit; + $mol_style_define($mol_text_code, { + whiteSpace: 'pre-wrap', + font: { + family: 'monospace', + }, + Rows: { + padding: $mol_gap.text, + }, + Row: { + font: { + family: 'inherit', + }, + }, + Copy: { + alignSelf: 'flex-start', + justifySelf: 'flex-start', + }, + '@': { + 'mol_text_code_sidebar_showed': { + true: { + $mol_text_code_row: { + margin: { + left: rem(1.75), + }, + }, + }, + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_textarea) = class $mol_textarea extends ($.$mol_stack) { + clickable(next){ + if(next !== undefined) return next; + return false; + } + sidebar_showed(){ + return false; + } + press(next){ + if(next !== undefined) return next; + return null; + } + hover(next){ + if(next !== undefined) return next; + return null; + } + value(next){ + if(next !== undefined) return next; + return ""; + } + hint(){ + return " "; + } + enabled(){ + return true; + } + spellcheck(){ + return true; + } + length_max(){ + return +Infinity; + } + selection(next){ + if(next !== undefined) return next; + return []; + } + bring(){ + return (this.Edit().bring()); + } + submit(next){ + if(next !== undefined) return next; + return null; + } + submit_with_ctrl(){ + return true; + } + Edit(){ + const obj = new this.$.$mol_textarea_edit(); + (obj.value) = (next) => ((this.value(next))); + (obj.hint) = () => ((this.hint())); + (obj.enabled) = () => ((this.enabled())); + (obj.spellcheck) = () => ((this.spellcheck())); + (obj.length_max) = () => ((this.length_max())); + (obj.selection) = (next) => ((this.selection(next))); + (obj.submit) = (next) => ((this.submit(next))); + (obj.submit_with_ctrl) = () => ((this.submit_with_ctrl())); + return obj; + } + row_numb(id){ + return 0; + } + highlight(){ + return ""; + } + View(){ + const obj = new this.$.$mol_text_code(); + (obj.text) = () => ((this.value())); + (obj.render_visible_only) = () => (false); + (obj.row_numb) = (id) => ((this.row_numb(id))); + (obj.sidebar_showed) = () => ((this.sidebar_showed())); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + attr(){ + return { + ...(super.attr()), + "mol_textarea_clickable": (this.clickable()), + "mol_textarea_sidebar_showed": (this.sidebar_showed()) + }; + } + event(){ + return {"keydown": (next) => (this.press(next)), "pointermove": (next) => (this.hover(next))}; + } + sub(){ + return [(this.Edit()), (this.View())]; + } + symbols_alt(){ + return { + "comma": "<", + "period": ">", + "dash": "−", + "equals": "≈", + "graveAccent": "́", + "forwardSlash": "÷", + "E": "€", + "V": "✔", + "X": "×", + "C": "©", + "P": "§", + "H": "₽", + "key0": "°", + "key8": "•", + "key2": "@", + "key3": "#", + "key4": "$", + "key6": "^", + "key7": "&", + "bracketOpen": "[", + "bracketClose": "]", + "slashBack": "|" + }; + } + symbols_alt_ctrl(){ + return {"space": " "}; + } + symbols_alt_shift(){ + return { + "V": "✅", + "X": "❌", + "O": "⭕", + "key1": "❗", + "key4": "💲", + "key7": "❓", + "comma": "«", + "period": "»", + "semicolon": "“", + "quoteSingle": "”", + "dash": "—", + "equals": "≠", + "graveAccent": "̱", + "bracketOpen": "{", + "bracketClose": "}" + }; + } + }; + ($mol_mem(($.$mol_textarea.prototype), "clickable")); + ($mol_mem(($.$mol_textarea.prototype), "press")); + ($mol_mem(($.$mol_textarea.prototype), "hover")); + ($mol_mem(($.$mol_textarea.prototype), "value")); + ($mol_mem(($.$mol_textarea.prototype), "selection")); + ($mol_mem(($.$mol_textarea.prototype), "submit")); + ($mol_mem(($.$mol_textarea.prototype), "Edit")); + ($mol_mem(($.$mol_textarea.prototype), "View")); + ($.$mol_textarea_edit) = class $mol_textarea_edit extends ($.$mol_string) { + dom_name(){ + return "textarea"; + } + enter(){ + return "enter"; + } + field(){ + return {...(super.field()), "scrollTop": 0}; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_textarea extends $.$mol_textarea { + indent_inc() { + let text = this.value(); + let [from, to] = this.selection(); + const rows = text.split('\n'); + let start = 0; + for (let i = 0; i < rows.length; ++i) { + let end = start + rows[i].length; + if (end >= from && start <= to) { + if (to === from || start !== to) { + rows[i] = '\t' + rows[i]; + to += 1; + end += 1; + } + } + start = end + 1; + } + this.value(rows.join('\n')); + this.selection([from + 1, to]); + } + indent_dec() { + let text = this.value(); + let [from, to] = this.selection(); + const rows = text.split('\n'); + let start = 0; + for (let i = 0; i < rows.length; ++i) { + const end = start + rows[i].length; + if (end >= from && start <= to && rows[i].startsWith('\t')) { + rows[i] = rows[i].slice(1); + to -= 1; + if (start < from) + from -= 1; + } + start = end + 1; + } + this.value(rows.join('\n')); + this.selection([from, to]); + } + symbol_insert(event) { + const symbol = event.shiftKey + ? this.symbols_alt_shift()[$mol_keyboard_code[event.keyCode]] + : event.ctrlKey + ? this.symbols_alt_ctrl()[$mol_keyboard_code[event.keyCode]] + : this.symbols_alt()[$mol_keyboard_code[event.keyCode]]; + if (!symbol) + return; + event.preventDefault(); + document.execCommand('insertText', false, symbol); + } + clickable(next) { + if (!this.enabled()) + return true; + return next ?? false; + } + hover(event) { + this.clickable(event.ctrlKey); + } + press(event) { + if (event.altKey) { + this.symbol_insert(event); + } + else { + switch (event.keyCode) { + case !event.shiftKey && $mol_keyboard_code.tab: + this.indent_inc(); + break; + case event.shiftKey && $mol_keyboard_code.tab: + this.indent_dec(); + break; + default: return; + } + event.preventDefault(); + } + } + row_numb(index) { + return index; + } + } + __decorate([ + $mol_mem + ], $mol_textarea.prototype, "clickable", null); + $$.$mol_textarea = $mol_textarea; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/textarea/textarea.view.css", "[mol_textarea] {\n\tflex: 1 0 auto;\n\tflex-direction: column;\n\tvertical-align: top;\n\tmin-height: max-content;\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n\tborder-radius: var(--mol_gap_round);\n\tfont-family: monospace;\n\tposition: relative;\n\ttab-size: 4;\n}\n\n[mol_textarea_view] {\n\tpointer-events: none;\n\twhite-space: inherit;\n\tfont-family: inherit;\n\ttab-size: inherit;\n\tuser-select: none;\n}\n\n[mol_textarea_view_copy] {\n\tpointer-events: all;\n}\n\n[mol_textarea_clickable] > [mol_textarea_view] {\n\tpointer-events: all;\n\tuser-select: auto;\n}\n\n[mol_textarea_clickable] > [mol_textarea_edit] {\n\tuser-select: none;\n}\n\n[mol_textarea_edit] {\n\tfont-family: inherit;\n\tpadding: var(--mol_gap_text);\n\tcolor: transparent !important;\n\tcaret-color: var(--mol_theme_text);\n\tresize: none;\n\ttext-align: inherit;\n\twhite-space: inherit;\n\tborder-radius: inherit;\n\toverflow-anchor: none;\n\tposition: absolute;\n\theight: 100%;\n\twidth: 100%;\n\ttab-size: inherit;\n}\n\n[mol_textarea_sidebar_showed] [mol_textarea_edit] {\n\tleft: 1.75rem;\n\twidth: calc( 100% - 1.75rem );\n}\n\n[mol_textarea_edit]:hover + [mol_textarea_view] {\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_textarea_edit]:focus + [mol_textarea_view] {\n\tz-index: var(--mol_layer_focus);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_labeler) = class $mol_labeler extends ($.$mol_list) { + label(){ + return [(this.title())]; + } + Label(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (32); + (obj.sub) = () => ((this.label())); + return obj; + } + content(){ + return []; + } + Content(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (24); + (obj.sub) = () => ((this.content())); + return obj; + } + rows(){ + return [(this.Label()), (this.Content())]; + } + }; + ($mol_mem(($.$mol_labeler.prototype), "Label")); + ($mol_mem(($.$mol_labeler.prototype), "Content")); + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/labeler/labeler.view.css", "[mol_labeler] {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: stretch;\n\tcursor: inherit;\n}\n\n[mol_labeler_label] {\n\tmin-height: 2rem;\n\tcolor: var(--mol_theme_shade);\n\tpadding: .5rem .75rem 0;\n\tgap: 0 var(--mol_gap_block);\n\tflex-wrap: wrap;\n}\n\n[mol_labeler_content] {\n\tdisplay: flex;\n\tpadding: var(--mol_gap_text);\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_form_field) = class $mol_form_field extends ($.$mol_labeler) { + name(){ + return ""; + } + bid(){ + return ""; + } + Bid(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.bid())]); + return obj; + } + control(){ + return null; + } + bids(){ + return []; + } + label(){ + return [(this.name()), (this.Bid())]; + } + content(){ + return [(this.control())]; + } + }; + ($mol_mem(($.$mol_form_field.prototype), "Bid")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_form_field extends $.$mol_form_field { + bid() { + return this.bids().filter(Boolean)[0] ?? ''; + } + } + __decorate([ + $mol_mem + ], $mol_form_field.prototype, "bid", null); + $$.$mol_form_field = $mol_form_field; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/form/field/field.view.css", "[mol_form_field] {\n\talign-items: stretch;\n}\n\n[mol_form_field_bid] {\n\tcolor: var(--mol_theme_focus);\n\tdisplay: inline-block;\n\ttext-shadow: 0 0;\n}\n\n[mol_form_field_content] {\n\tborder-radius: var(--mol_gap_round);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_float) = class $mol_float extends ($.$mol_view) { + style(){ + return {...(super.style()), "minHeight": "auto"}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/float/float.view.css", "[mol_float] {\n\tposition: sticky;\n\ttop: 0;\n\tleft: 0;\n\tz-index: var(--mol_layer_float);\n\topacity: 1;\n\ttransition: opacity .25s ease-in;\n\tdisplay: block;\n\tbackground: linear-gradient( var(--mol_theme_card), var(--mol_theme_card) ), var(--mol_theme_back);\n\tbox-shadow: 0 0 .5rem hsla(0,0%,0%,.25);\n}\n\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_check) = class $mol_check extends ($.$mol_button_minor) { + checked(next){ + if(next !== undefined) return next; + return false; + } + aria_checked(){ + return "false"; + } + aria_role(){ + return "checkbox"; + } + Icon(){ + return null; + } + title(){ + return ""; + } + Title(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.title())]); + return obj; + } + label(){ + return [(this.Title())]; + } + attr(){ + return { + ...(super.attr()), + "mol_check_checked": (this.checked()), + "aria-checked": (this.aria_checked()), + "role": (this.aria_role()) + }; + } + sub(){ + return [(this.Icon()), (this.label())]; + } + }; + ($mol_mem(($.$mol_check.prototype), "checked")); + ($mol_mem(($.$mol_check.prototype), "Title")); + + +; +"use strict"; +var $; +(function ($) { + function $mol_maybe(value) { + return (value == null) ? [] : [value]; + } + $.$mol_maybe = $mol_maybe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/check/check.css", "[mol_check] {\n\tflex: 0 0 auto;\n\tjustify-content: flex-start;\n\talign-content: center;\n\t/* align-items: flex-start; */\n\tborder: none;\n\tfont-weight: inherit;\n\tbox-shadow: none;\n\ttext-align: left;\n\tdisplay: inline-flex;\n\tflex-wrap: nowrap;\n}\n\n[mol_check_title] {\n\tflex-shrink: 1;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_check extends $.$mol_check { + click(next) { + if (next?.defaultPrevented) + return; + this.checked(!this.checked()); + if (next) + next.preventDefault(); + } + sub() { + return [ + ...$mol_maybe(this.Icon()), + ...this.label(), + ]; + } + label() { + return this.title() ? super.label() : []; + } + aria_checked() { + return String(this.checked()); + } + } + $$.$mol_check = $mol_check; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_icon_chevron) = class $mol_icon_chevron extends ($.$mol_icon) { + path(){ + return "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_check_expand) = class $mol_check_expand extends ($.$mol_check) { + level_style(){ + return "0px"; + } + expanded(next){ + if(next !== undefined) return next; + return false; + } + expandable(){ + return false; + } + Icon(){ + const obj = new this.$.$mol_icon_chevron(); + return obj; + } + level(){ + return 0; + } + style(){ + return {...(super.style()), "paddingLeft": (this.level_style())}; + } + checked(next){ + return (this.expanded(next)); + } + enabled(){ + return (this.expandable()); + } + }; + ($mol_mem(($.$mol_check_expand.prototype), "expanded")); + ($mol_mem(($.$mol_check_expand.prototype), "Icon")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_check_expand extends $.$mol_check_expand { + level_style() { + return `${this.level() * 1 - 1}rem`; + } + expandable() { + return this.expanded() !== null; + } + } + $$.$mol_check_expand = $mol_check_expand; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/check/expand/expand.view.css", "[mol_check_expand] {\n\tmin-width: 20px;\n}\n\n:where([mol_check_expand][disabled]) [mol_check_expand_icon] {\n\tvisibility: hidden;\n}\n\n[mol_check_expand_icon] {\n\tbox-shadow: none;\n}\n[mol_check_expand_icon] {\n\ttransform: rotateZ(0deg);\n}\n\n:where([mol_check_checked]) [mol_check_expand_icon] {\n\ttransform: rotateZ(90deg);\n}\n\n[mol_check_expand_icon] {\n\tvertical-align: text-top;\n}\n\n[mol_check_expand_label] {\n\tmargin-left: 0;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_grid) = class $mol_grid extends ($.$mol_view) { + rows(){ + return []; + } + Table(){ + const obj = new this.$.$mol_grid_table(); + (obj.sub) = () => ((this.rows())); + return obj; + } + head_cells(){ + return []; + } + cells(id){ + return []; + } + cell_content(id){ + return []; + } + cell_content_text(id){ + return (this.cell_content(id)); + } + cell_content_number(id){ + return (this.cell_content(id)); + } + col_head_content(id){ + return []; + } + cell_level(id){ + return 0; + } + cell_expanded(id, next){ + if(next !== undefined) return next; + return false; + } + needle(){ + return ""; + } + cell_value(id){ + return ""; + } + Cell_dimmer(id){ + const obj = new this.$.$mol_dimmer(); + (obj.needle) = () => ((this.needle())); + (obj.haystack) = () => ((this.cell_value(id))); + return obj; + } + row_height(){ + return 32; + } + row_ids(){ + return []; + } + row_id(id){ + return null; + } + col_ids(){ + return []; + } + records(){ + return {}; + } + record(id){ + return null; + } + hierarchy(){ + return null; + } + hierarchy_col(){ + return ""; + } + minimal_width(){ + return 0; + } + sub(){ + return [(this.Head()), (this.Table())]; + } + Head(){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.head_cells())); + return obj; + } + Row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.minimal_height) = () => ((this.row_height())); + (obj.minimal_width) = () => ((this.minimal_width())); + (obj.cells) = () => ((this.cells(id))); + return obj; + } + Cell(id){ + const obj = new this.$.$mol_view(); + return obj; + } + cell(id){ + return null; + } + Cell_text(id){ + const obj = new this.$.$mol_grid_cell(); + (obj.sub) = () => ((this.cell_content_text(id))); + return obj; + } + Cell_number(id){ + const obj = new this.$.$mol_grid_number(); + (obj.sub) = () => ((this.cell_content_number(id))); + return obj; + } + Col_head(id){ + const obj = new this.$.$mol_float(); + (obj.dom_name) = () => ("th"); + (obj.sub) = () => ((this.col_head_content(id))); + return obj; + } + Cell_branch(id){ + const obj = new this.$.$mol_check_expand(); + (obj.level) = () => ((this.cell_level(id))); + (obj.label) = () => ((this.cell_content(id))); + (obj.expanded) = (next) => ((this.cell_expanded(id, next))); + return obj; + } + Cell_content(id){ + return [(this.Cell_dimmer(id))]; + } + }; + ($mol_mem(($.$mol_grid.prototype), "Table")); + ($mol_mem_key(($.$mol_grid.prototype), "cell_expanded")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_dimmer")); + ($mol_mem(($.$mol_grid.prototype), "Head")); + ($mol_mem_key(($.$mol_grid.prototype), "Row")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_text")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_number")); + ($mol_mem_key(($.$mol_grid.prototype), "Col_head")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_branch")); + ($.$mol_grid_table) = class $mol_grid_table extends ($.$mol_list) {}; + ($.$mol_grid_row) = class $mol_grid_row extends ($.$mol_view) { + cells(){ + return []; + } + sub(){ + return (this.cells()); + } + }; + ($.$mol_grid_cell) = class $mol_grid_cell extends ($.$mol_view) { + minimal_height(){ + return 40; + } + }; + ($.$mol_grid_number) = class $mol_grid_number extends ($.$mol_grid_cell) {}; + + +; +"use strict"; +var $; +(function ($) { + class $mol_state_session extends $mol_object { + static 'native()'; + 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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_grid extends $.$mol_grid { + head_cells() { + return this.col_ids().map(colId => this.Col_head(colId)); + } + col_head_content(colId) { + return [colId]; + } + rows() { + return this.row_ids().map(id => this.Row(id)); + } + cells(row_id) { + return this.col_ids().map(col_id => this.Cell({ row: row_id, col: col_id })); + } + col_type(col_id) { + if (col_id === this.hierarchy_col()) + return 'branch'; + const rowFirst = this.row_id(0); + const val = this.record(rowFirst[rowFirst.length - 1])[col_id]; + if (typeof val === 'number') + return 'number'; + return 'text'; + } + Cell(id) { + switch (this.col_type(id.col).valueOf()) { + case 'branch': return this.Cell_branch(id); + case 'number': return this.Cell_number(id); + } + return this.Cell_text(id); + } + cell_content(id) { + return [this.record(id.row[id.row.length - 1])[id.col]]; + } + cell_content_text(id) { + return this.cell_content(id).map(val => typeof val === 'object' ? JSON.stringify(val) : val); + } + records() { + return []; + } + record(id) { + return this.records()[id]; + } + record_ids() { + return Object.keys(this.records()); + } + row_id(index) { + return this.row_ids().slice(index, index + 1).valueOf()[0]; + } + col_ids() { + const rowFirst = this.row_id(0); + if (rowFirst === void 0) + return []; + const record = this.record(rowFirst[rowFirst.length - 1]); + if (!record) + return []; + return Object.keys(record); + } + hierarchy() { + const hierarchy = {}; + const root = hierarchy[''] = { + id: '', + parent: null, + sub: [], + }; + this.record_ids().map(id => { + root.sub.push(hierarchy[id] = { + id, + parent: root, + sub: [], + }); + }); + return hierarchy; + } + row_sub_ids(row) { + return this.hierarchy()[row[row.length - 1]].sub.map(child => row.concat(child.id)); + } + row_root_id() { + return ['']; + } + cell_level(id) { + return id.row.length - 1; + } + row_ids() { + const next = []; + const add = (row) => { + next.push(row); + if (this.row_expanded(row)) { + this.row_sub_ids(row).forEach(child => add(child)); + } + }; + this.row_sub_ids(this.row_root_id()).forEach(child => add(child)); + return next; + } + row_expanded(row_id, next) { + if (!this.row_sub_ids(row_id).length) + return null; + const key = `row_expanded(${JSON.stringify(row_id)})`; + const next2 = $mol_state_session.value(key, next); + return (next2 == null) ? this.row_expanded_default(row_id) : next2; + } + row_expanded_default(row_id) { + return true; + } + cell_expanded(id, next) { + return this.row_expanded(id.row, next); + } + } + __decorate([ + $mol_mem + ], $mol_grid.prototype, "head_cells", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "rows", null); + __decorate([ + $mol_mem_key + ], $mol_grid.prototype, "col_type", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "record_ids", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "hierarchy", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "row_ids", null); + $$.$mol_grid = $mol_grid; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/grid/grid.view.css", "[mol_grid] {\n\tdisplay: block;\n\tflex: 0 1 auto;\n\tposition: relative;\n\toverflow-x: auto;\n}\n\n[mol_grid_gap] {\n\tposition: absolute;\n\tpadding: .1px;\n\ttop: 0;\n\ttransform: translateZ(0);\n}\n\n[mol_grid_table] {\n\tborder-spacing: 0;\n\tdisplay: table-row-group;\n\tposition: relative;\n}\n\n[mol_grid_table] > * {\n\tdisplay: table-row;\n\ttransition: none;\n}\n\n[mol_grid_head] > *,\n[mol_grid_table] > * > * {\n\tdisplay: table-cell;\n\tpadding: var(--mol_gap_text);\n\twhite-space: nowrap;\n\tvertical-align: middle;\n\tbox-shadow: inset 1px 1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_row]:where(:first-child) > * {\n\tbox-shadow: inset 1px 0 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_table] > * > *:where(:first-child) {\n\tbox-shadow: inset 0px 1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_head] > * {\n\tbox-shadow: inset 1px -1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_head] > *:where(:first-child) {\n\tbox-shadow: inset 0px -1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_table] > [mol_grid_row]:where(:first-child) > *:where(:first-child) {\n\tbox-shadow: none;\n}\t\n\n[mol_grid_head] {\n\tdisplay: table-row;\n\ttransform: none !important;\n}\n\n/* [mol_grid_cell_number] {\n\ttext-align: right;\n} */\n\n[mol_grid_col_head] {\n\tfont-weight: inherit;\n\ttext-align: inherit;\n\tdisplay: table-cell;\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_grid_cell_dimmer] {\n\tdisplay: inline-block;\n\tvertical-align: inherit;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_image) = class $mol_image extends ($.$mol_view) { + uri(){ + return ""; + } + loading(){ + return "eager"; + } + decoding(){ + return "async"; + } + cors(){ + return null; + } + natural_width(){ + return 0; + } + natural_height(){ + return 0; + } + load(next){ + if(next !== undefined) return next; + return null; + } + dom_name(){ + return "img"; + } + field(){ + return { + ...(super.field()), + "src": (this.uri()), + "alt": (this.title()), + "loading": (this.loading()), + "decoding": (this.decoding()), + "crossOrigin": (this.cors()) + }; + } + attr(){ + return { + ...(super.attr()), + "width": (this.natural_width()), + "height": (this.natural_height()) + }; + } + event(){ + return {"load": (next) => (this.load(next))}; + } + minimal_width(){ + return 16; + } + minimal_height(){ + return 16; + } + }; + ($mol_mem(($.$mol_image.prototype), "load")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_image extends $.$mol_image { + natural_width(next) { + const dom = this.dom_node(); + if (dom.naturalWidth) + return dom.naturalWidth; + const found = this.uri().match(/\bwidth=(\d+)/); + return found ? Number(found[1]) : null; + } + natural_height(next) { + const dom = this.dom_node(); + if (dom.naturalHeight) + return dom.naturalHeight; + const found = this.uri().match(/\bheight=(\d+)/); + return found ? Number(found[1]) : null; + } + load() { + this.natural_width(null); + this.natural_height(null); + } + } + __decorate([ + $mol_mem + ], $mol_image.prototype, "natural_width", null); + __decorate([ + $mol_mem + ], $mol_image.prototype, "natural_height", null); + $$.$mol_image = $mol_image; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/image/image.view.css", "[mol_image] {\n\tborder-radius: var(--mol_gap_round);\n\toverflow: hidden;\n\tflex: 0 1 auto;\n\tmax-width: 100%;\n\tobject-fit: cover;\n\theight: fit-content;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_link_iconed) = class $mol_link_iconed extends ($.$mol_link) { + icon(){ + return ""; + } + Icon(){ + const obj = new this.$.$mol_image(); + (obj.uri) = () => ((this.icon())); + (obj.title) = () => (""); + return obj; + } + title(){ + return (this.uri()); + } + sub(){ + return [(this.Icon())]; + } + content(){ + return [(this.title())]; + } + host(){ + return ""; + } + }; + ($mol_mem(($.$mol_link_iconed.prototype), "Icon")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_link_iconed extends $.$mol_link_iconed { + icon() { + return `https://favicon.yandex.net/favicon/${this.host()}?color=0,0,0,0&size=32&stub=1`; + } + host() { + const base = this.$.$mol_state_arg.href(); + const url = new URL(this.uri(), base); + return url.hostname; + } + title() { + const uri = this.uri(); + const host = this.host(); + const suffix = (host ? uri.split(this.host(), 2)[1] : uri)?.replace(/^[\/\?#!]+/, ''); + return decodeURIComponent(suffix || host).replace(/^\//, ' '); + } + sub() { + return [ + ...this.host() ? [this.Icon()] : [], + ...this.content() ? [' ', ...this.content()] : [], + ]; + } + } + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "icon", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "host", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "title", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "sub", null); + $$.$mol_link_iconed = $mol_link_iconed; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/link/iconed/iconed.view.css", "[mol_link_iconed] {\n\talign-items: baseline;\n\tdisplay: inline-flex;\n\tpadding: var(--mol_gap_text);\n}\n\n[mol_link_iconed_icon] {\n\tbox-shadow: none;\n\theight: 1.5em;\n\twidth: 1em;\n\tflex: 0 0 auto;\n\tdisplay: inline-block;\n\talign-self: normal;\n\tvertical-align: top;\n\tborder-radius: 0;\n\tobject-fit: scale-down;\n\topacity: .75;\n}\n\n[mol_theme=\"$mol_theme_dark\"] [mol_link_iconed_icon] {\n\tfilter: var(--mol_theme_image);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_embed_native) = class $mol_embed_native extends ($.$mol_scroll) { + mime(){ + return ""; + } + title(){ + return ""; + } + Fallback(){ + const obj = new this.$.$mol_link(); + (obj.uri) = () => ((this.uri())); + (obj.sub) = () => ([(this.title())]); + return obj; + } + uri_change(next){ + if(next !== undefined) return next; + return null; + } + uri(next){ + if(next !== undefined) return next; + return ""; + } + dom_name(){ + return "object"; + } + window(){ + return null; + } + attr(){ + return { + ...(super.attr()), + "data": (this.uri()), + "type": (this.mime()) + }; + } + sub(){ + return [(this.Fallback())]; + } + message(){ + return {"hashchange": (next) => (this.uri_change(next))}; + } + }; + ($mol_mem(($.$mol_embed_native.prototype), "Fallback")); + ($mol_mem(($.$mol_embed_native.prototype), "uri_change")); + ($mol_mem(($.$mol_embed_native.prototype), "uri")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_native extends $.$mol_embed_native { + window() { + $mol_wire_solid(); + return $mol_wire_sync(this).load(this.dom_node_actual()); + } + load(frame) { + return new Promise((done, fail) => { + frame.onload = () => { + try { + if (frame.contentWindow.location.href === 'about:blank') { + return; + } + } + catch { } + done(frame.contentWindow); + }; + frame.onerror = (event) => { + fail(typeof event === 'string' ? new Error(event) : event.error || event); + }; + }); + } + uri_resource() { + return this.uri().replace(/#.*/, ''); + } + message_listener() { + return new $mol_dom_listener($mol_dom_context, 'message', $mol_wire_async(this).message_receive); + } + message_receive(event) { + if (!event) + return; + if (event.source !== this.window()) + return; + if (!Array.isArray(event.data)) + return; + this.message()[event.data[0]]?.(event); + } + uri_change(event) { + this.$.$mol_wait_timeout(1000); + this.uri(event.data[1]); + } + auto() { + return [ + this.message_listener(), + this.window(), + ]; + } + } + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "window", null); + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "uri_resource", null); + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "message_listener", null); + $$.$mol_embed_native = $mol_embed_native; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/embed/native/native.view.css", "[mol_embed_native] {\n\tmax-width: 100%;\n\tmax-height: 100vh;\n\tobject-fit: cover;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tobject-position: top left;\n\tborder-radius: var(--mol_gap_round);\n\taspect-ratio: 4/3;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_icon_youtube) = class $mol_icon_youtube extends ($.$mol_icon) { + path(){ + return "M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_frame) = class $mol_frame extends ($.$mol_embed_native) { + uri(next){ + if(next !== undefined) return next; + return "about:config"; + } + html(){ + return null; + } + allow(){ + return ""; + } + dom_name(){ + return "iframe"; + } + attr(){ + return { + ...(super.attr()), + "data": null, + "type": null, + "src": (this.uri()), + "srcdoc": (this.html()), + "allow": (this.allow()) + }; + } + fullscreen(){ + return true; + } + accelerometer(){ + return true; + } + autoplay(){ + return true; + } + encription(){ + return true; + } + gyroscope(){ + return true; + } + pip(){ + return true; + } + clipboard_read(){ + return true; + } + clipboard_write(){ + return true; + } + }; + ($mol_mem(($.$mol_frame.prototype), "uri")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_frame extends $.$mol_frame { + window() { + return super.window(); + } + allow() { + return [ + ...this.fullscreen() ? ['fullscreen'] : [], + ...this.accelerometer() ? ['accelerometer'] : [], + ...this.autoplay() ? ['autoplay'] : [], + ...this.encription() ? ['encrypted-media'] : [], + ...this.gyroscope() ? ['gyroscope'] : [], + ...this.pip() ? ['picture-in-picture'] : [], + ...this.clipboard_read() ? [`clipboard-read ${this.uri()}`] : [], + ...this.clipboard_write() ? [`clipboard-write ${this.uri()}`] : [], + ].join('; '); + } + } + $$.$mol_frame = $mol_frame; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_define($mol_frame, { + border: { + style: 'none', + }, + maxHeight: $mol_style_unit.vh(100), + }); +})($ || ($ = {})); + +; + ($.$mol_embed_youtube) = class $mol_embed_youtube extends ($.$mol_check) { + active(next){ + if(next !== undefined) return next; + return false; + } + title(){ + return ""; + } + video_preview(){ + return ""; + } + Image(){ + const obj = new this.$.$mol_image(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.video_preview())); + return obj; + } + Hint(){ + const obj = new this.$.$mol_icon_youtube(); + return obj; + } + video_embed(){ + return ""; + } + Frame(){ + const obj = new this.$.$mol_frame(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.video_embed())); + return obj; + } + uri(){ + return ""; + } + video_id(){ + return ""; + } + checked(next){ + return (this.active(next)); + } + sub(){ + return [ + (this.Image()), + (this.Hint()), + (this.Frame()) + ]; + } + }; + ($mol_mem(($.$mol_embed_youtube.prototype), "active")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Image")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Hint")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Frame")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_youtube extends $.$mol_embed_youtube { + video_embed() { + return `https://www.youtube.com/embed/${encodeURIComponent(this.video_id())}?autoplay=1&loop=1`; + } + video_id() { + return this.uri().match(/^https\:\/\/www\.youtube\.com\/(?:embed\/|shorts\/|watch\?v=)([^\/&?#]+)/)?.[1] + ?? this.uri().match(/^https\:\/\/youtu\.be\/([^\/&?#]+)/)?.[1] + ?? 'about:blank'; + } + video_preview() { + return `https://i.ytimg.com/vi/${this.video_id()}/sddefault.jpg`; + } + sub() { + return this.active() + ? [this.Frame()] + : [this.Image(), this.Hint()]; + } + } + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_embed", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_id", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_preview", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "sub", null); + $$.$mol_embed_youtube = $mol_embed_youtube; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/embed/youtube/youtube.view.css", "[mol_embed_youtube] {\n\tpadding: 0;\n\tmax-width: 100%;\n}\n\n[mol_embed_youtube_image] {\n\tflex: auto 1 1;\n}\n\n[mol_embed_youtube_hint] {\n\tposition: absolute;\n left: 50%;\n top: 50%;\n width: 50%;\n height: 50%;\n opacity: 0.3;\n transform: translate(-50%, -50%);\n}\n\n[mol_embed_youtube]:hover [mol_embed_youtube_hint] {\n\topacity: .6;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_embed_any) = class $mol_embed_any extends ($.$mol_view) { + title(){ + return ""; + } + uri(){ + return ""; + } + Image(){ + const obj = new this.$.$mol_image(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + Object(){ + const obj = new this.$.$mol_embed_native(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + Youtube(){ + const obj = new this.$.$mol_embed_youtube(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + }; + ($mol_mem(($.$mol_embed_any.prototype), "Image")); + ($mol_mem(($.$mol_embed_any.prototype), "Object")); + ($mol_mem(($.$mol_embed_any.prototype), "Youtube")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_any extends $.$mol_embed_any { + type() { + try { + const uri = this.uri(); + if (/\b(png|gif|jpg|jpeg|jfif|webp|svg)\b/.test(uri)) + return 'image'; + if (/^https:\/\/www\.youtube\.com\//.test(uri)) + return 'youtube'; + if (/^https:\/\/youtu\.be\//.test(uri)) + return 'youtube'; + } + catch (error) { + $mol_fail_log(error); + return 'image'; + } + return 'object'; + } + sub() { + switch (this.type()) { + case 'image': return [this.Image()]; + case 'youtube': return [this.Youtube()]; + default: return [this.Object()]; + } + } + } + __decorate([ + $mol_mem + ], $mol_embed_any.prototype, "type", null); + __decorate([ + $mol_mem + ], $mol_embed_any.prototype, "sub", null); + $$.$mol_embed_any = $mol_embed_any; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text) = class $mol_text extends ($.$mol_list) { + auto_scroll(){ + return null; + } + block_content(id){ + return []; + } + uri_resolve(id){ + return ""; + } + quote_text(id){ + return ""; + } + highlight(){ + return ""; + } + list_type(id){ + return "-"; + } + list_text(id){ + return ""; + } + header_level(id){ + return 1; + } + header_arg(id){ + return {}; + } + pre_text(id){ + return ""; + } + code_sidebar_showed(){ + return true; + } + pre_sidebar_showed(){ + return (this.code_sidebar_showed()); + } + table_head_cells(id){ + return []; + } + table_rows(id){ + return []; + } + table_cells(id){ + return []; + } + table_cell_text(id){ + return ""; + } + grid_rows(id){ + return []; + } + grid_cells(id){ + return []; + } + grid_cell_text(id){ + return ""; + } + line_text(id){ + return ""; + } + line_type(id){ + return ""; + } + line_content(id){ + return []; + } + code_syntax(){ + return null; + } + link_uri(id){ + return ""; + } + link_host(id){ + return ""; + } + uri_base(){ + return ""; + } + text(){ + return ""; + } + param(){ + return ""; + } + flow_tokens(){ + return []; + } + block_text(id){ + return ""; + } + auto(){ + return [(this.auto_scroll())]; + } + Paragraph(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ((this.block_content(id))); + return obj; + } + Quote(id){ + const obj = new this.$.$mol_text(); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.quote_text(id))); + (obj.highlight) = () => ((this.highlight())); + (obj.auto_scroll) = () => (null); + return obj; + } + List(id){ + const obj = new this.$.$mol_text_list(); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.type) = () => ((this.list_type(id))); + (obj.text) = () => ((this.list_text(id))); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + item_index(id){ + return 0; + } + Header(id){ + const obj = new this.$.$mol_text_header(); + (obj.minimal_height) = () => (40); + (obj.level) = () => ((this.header_level(id))); + (obj.content) = () => ((this.block_content(id))); + (obj.arg) = () => ((this.header_arg(id))); + return obj; + } + Pre(id){ + const obj = new this.$.$mol_text_code(); + (obj.text) = () => ((this.pre_text(id))); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.sidebar_showed) = () => ((this.pre_sidebar_showed())); + return obj; + } + Cut(id){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("hr"); + return obj; + } + Table(id){ + const obj = new this.$.$mol_grid(); + (obj.head_cells) = () => ((this.table_head_cells(id))); + (obj.rows) = () => ((this.table_rows(id))); + return obj; + } + Table_row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.table_cells(id))); + return obj; + } + Table_cell(id){ + const obj = new this.$.$mol_text(); + (obj.auto_scroll) = () => (null); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.table_cell_text(id))); + return obj; + } + Grid(id){ + const obj = new this.$.$mol_grid(); + (obj.rows) = () => ((this.grid_rows(id))); + return obj; + } + Grid_row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.grid_cells(id))); + return obj; + } + Grid_cell(id){ + const obj = new this.$.$mol_text(); + (obj.auto_scroll) = () => (null); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.grid_cell_text(id))); + return obj; + } + String(id){ + const obj = new this.$.$mol_dimmer(); + (obj.dom_name) = () => ("span"); + (obj.needle) = () => ((this.highlight())); + (obj.haystack) = () => ((this.line_text(id))); + return obj; + } + Span(id){ + const obj = new this.$.$mol_text_span(); + (obj.dom_name) = () => ("span"); + (obj.type) = () => ((this.line_type(id))); + (obj.sub) = () => ((this.line_content(id))); + return obj; + } + Code_line(id){ + const obj = new this.$.$mol_text_code_row(); + (obj.numb_showed) = () => (false); + (obj.highlight) = () => ((this.highlight())); + (obj.text) = () => ((this.line_text(id))); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.syntax) = () => ((this.code_syntax())); + return obj; + } + Link(id){ + const obj = new this.$.$mol_link_iconed(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.content) = () => ((this.line_content(id))); + return obj; + } + Link_http(id){ + const obj = new this.$.$mol_link_iconed(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.content) = () => ([(this.link_host(id))]); + return obj; + } + Embed(id){ + const obj = new this.$.$mol_embed_any(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.title) = () => ((this.line_text(id))); + return obj; + } + }; + ($mol_mem_key(($.$mol_text.prototype), "Paragraph")); + ($mol_mem_key(($.$mol_text.prototype), "Quote")); + ($mol_mem_key(($.$mol_text.prototype), "List")); + ($mol_mem_key(($.$mol_text.prototype), "Header")); + ($mol_mem_key(($.$mol_text.prototype), "Pre")); + ($mol_mem_key(($.$mol_text.prototype), "Cut")); + ($mol_mem_key(($.$mol_text.prototype), "Table")); + ($mol_mem_key(($.$mol_text.prototype), "Table_row")); + ($mol_mem_key(($.$mol_text.prototype), "Table_cell")); + ($mol_mem_key(($.$mol_text.prototype), "Grid")); + ($mol_mem_key(($.$mol_text.prototype), "Grid_row")); + ($mol_mem_key(($.$mol_text.prototype), "Grid_cell")); + ($mol_mem_key(($.$mol_text.prototype), "String")); + ($mol_mem_key(($.$mol_text.prototype), "Span")); + ($mol_mem_key(($.$mol_text.prototype), "Code_line")); + ($mol_mem_key(($.$mol_text.prototype), "Link")); + ($mol_mem_key(($.$mol_text.prototype), "Link_http")); + ($mol_mem_key(($.$mol_text.prototype), "Embed")); + ($.$mol_text_header) = class $mol_text_header extends ($.$mol_paragraph) { + arg(){ + return {}; + } + content(){ + return []; + } + Link(){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.arg())); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_text_header_Link_hint"))); + (obj.sub) = () => ((this.content())); + return obj; + } + level(){ + return 1; + } + sub(){ + return [(this.Link())]; + } + }; + ($mol_mem(($.$mol_text_header.prototype), "Link")); + ($.$mol_text_span) = class $mol_text_span extends ($.$mol_paragraph) { + type(){ + return ""; + } + dom_name(){ + return "span"; + } + attr(){ + return {...(super.attr()), "mol_text_type": (this.type())}; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text extends $.$mol_text { + flow_tokens() { + const tokens = []; + this.$.$mol_syntax2_md_flow.tokenize(this.text(), (name, found, chunks) => tokens.push({ name, found, chunks })); + return tokens; + } + block_type(index) { + return this.flow_tokens()[index].name; + } + rows() { + return this.flow_tokens().map(({ name }, index) => { + switch (name) { + case 'quote': return this.Quote(index); + case 'header': return this.Header(index); + case 'list': return this.List(index); + case 'code': return this.Pre(index); + case 'code-indent': return this.Pre(index); + case 'table': return this.Table(index); + case 'grid': return this.Grid(index); + case 'cut': return this.Cut(index); + default: return this.Paragraph(index); + } + }); + } + param() { + return this.toString().replace(/^.*?[\)>]\./, '').replace(/[(<>)]/g, ''); + } + header_level(index) { + return this.flow_tokens()[index].chunks[0].length; + } + header_arg(index) { + return { + [this.param()]: this.block_text(index) + }; + } + list_type(index) { + return this.flow_tokens()[index].chunks[1] ?? ''; + } + item_index(index) { + return this.flow_tokens().slice(0, index).filter(token => token.name === 'block').length + 1; + } + pre_text(index) { + const token = this.flow_tokens()[index]; + return (token.chunks[2] ?? token.chunks[0].replace(/^(\t| (?:\+\+|--|\*\*| ))/gm, '')).replace(/[\n\r]*$/, ''); + } + quote_text(index) { + return this.flow_tokens()[index].chunks[0].replace(/^[>"] /mg, ''); + } + list_text(index) { + return this.flow_tokens()[index].chunks[0].replace(/^([-*+]|(?:\d+[\.\)])+) ?/mg, '').replace(/^ ?/mg, ''); + } + cell_content(indexBlock) { + return this.flow_tokens()[indexBlock].chunks[0] + .split(/\r?\n/g) + .filter(row => row && !/\|--/.test(row)) + .map((row, rowId) => { + return row.split(/\|/g) + .filter(cell => cell) + .map((cell, cellId) => cell.trim()); + }); + } + table_rows(blockId) { + return this.cell_content(blockId) + .slice(1) + .map((row, rowId) => this.Table_row({ block: blockId, row: rowId + 1 })); + } + table_head_cells(blockId) { + return this.cell_content(blockId)[0] + .map((cell, cellId) => this.Table_cell({ block: blockId, row: 0, cell: cellId })); + } + table_cells(id) { + return this.cell_content(id.block)[id.row] + .map((cell, cellId) => this.Table_cell({ block: id.block, row: id.row, cell: cellId })); + } + table_cell_text(id) { + return this.cell_content(id.block)[id.row][id.cell]; + } + grid_content(indexBlock) { + return [...this.flow_tokens()[indexBlock].chunks[0].match(/(?:^! .*?$\r?\n?)+(?:^ +! .*?$\r?\n?)*/gm)] + .map((row, rowId) => { + const cells = []; + for (const line of row.trim().split(/\r?\n/)) { + const [_, indent, content] = /^( *)! (.*)/.exec(line); + const col = Math.ceil(indent.length / 2); + cells[col] = (cells[col] ? cells[col] + '\n' : '') + content; + } + return cells; + }); + } + grid_rows(blockId) { + return this.grid_content(blockId) + .map((row, rowId) => this.Grid_row({ block: blockId, row: rowId })); + } + grid_cells(id) { + return this.grid_content(id.block)[id.row] + .map((cell, cellId) => this.Grid_cell({ block: id.block, row: id.row, cell: cellId })); + } + grid_cell_text(id) { + return this.grid_content(id.block)[id.row][id.cell]; + } + uri_base() { + return $mol_dom_context.document.location.href; + } + uri_base_abs() { + return new URL(this.uri_base(), $mol_dom_context.document.location.href); + } + uri_resolve(uri) { + if (/^(\w+script+:)+/.test(uri)) + return null; + if (/^#\!/.test(uri)) { + const params = {}; + for (const chunk of uri.slice(2).split(this.$.$mol_state_arg.separator)) { + if (!chunk) + continue; + const vals = chunk.split('=').map(decodeURIComponent); + params[vals.shift()] = vals.join('='); + } + return this.$.$mol_state_arg.link(params); + } + try { + const url = new URL(uri, this.uri_base_abs()); + return url.toString(); + } + catch (error) { + $mol_fail_log(error); + return null; + } + } + code_syntax() { + return this.$.$mol_syntax2_md_code; + } + block_text(index) { + const token = this.flow_tokens()[index]; + switch (token.name) { + case 'header': return token.chunks[2]; + default: return token.chunks[0]; + } + } + block_content(index) { + return this.line_content([index]); + } + line_tokens(path) { + const tokens = []; + this.$.$mol_syntax2_md_line.tokenize(this.line_text(path), (name, found, chunks) => tokens.push({ name, found, chunks })); + return tokens; + } + line_token(path) { + const tokens = this.line_tokens(path.slice(0, path.length - 1)); + return tokens[path[path.length - 1]]; + } + line_type(path) { + return this.line_token(path).name; + } + line_text(path) { + if (path.length === 1) + return this.block_text(path[0]); + const { name, found, chunks } = this.line_token(path); + switch (name) { + case 'link': return chunks[0] || chunks[1].replace(/^.*?\/\/|\/.*$/g, ''); + case 'text-link': return chunks[0] || chunks[1].replace(/^.*?\/\/|\/.*$/g, ''); + default: return (chunks[0] || chunks[1] || chunks[2]) ?? found; + } + } + line_content(path) { + return this.line_tokens(path).map(({ name, chunks }, index) => { + const path2 = [...path, index]; + switch (name) { + case 'embed': return this.Embed(path2); + case 'link': return this.Link(path2); + case 'text-link-http': return this.Link_http(path2); + case 'text-link': return this.Link(path2); + case 'image-link': return this.Embed(path2); + case 'code': return this.Code_line(path2); + case '': return this.String(path2); + default: return this.Span(path2); + } + }); + } + link_uri(path) { + const token = this.line_token(path); + const uri = this.uri_resolve(token.chunks[1] ?? token.found); + if (!uri) + throw new Error('Bad link'); + return uri; + } + link_host(path) { + return this.link_uri(path).replace(/^.*?\/\/|\/.*$/g, ''); + } + auto_scroll() { + for (const [index, token] of this.flow_tokens().entries()) { + if (token.name !== 'header') + continue; + const header = this.Header(index); + if (!header.Link().current()) + continue; + new $mol_after_tick(() => this.ensure_visible(header)); + } + } + } + __decorate([ + $mol_mem + ], $mol_text.prototype, "flow_tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "block_type", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "rows", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "param", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "header_level", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "header_arg", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "pre_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "quote_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "list_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "cell_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_rows", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_head_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_cell_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_rows", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_cell_text", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "uri_base_abs", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "uri_resolve", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "block_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_token", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_type", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "link_uri", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "link_host", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "auto_scroll", null); + $$.$mol_text = $mol_text; + class $mol_text_header extends $.$mol_text_header { + dom_name() { + return 'h' + this.level(); + } + } + $$.$mol_text_header = $mol_text_header; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/text/text/text.view.css", "[mol_text] {\n\tline-height: 1.5em;\n\tbox-sizing: border-box;\n\tborder-radius: var(--mol_gap_round);\n\twhite-space: pre-line;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 0 0 auto;\n\ttab-size: 4;\n}\n\n[mol_text_paragraph] {\n\tpadding: var(--mol_gap_text);\n\toverflow: auto;\n\toverflow-x: overlay;\n\tmax-width: 100%;\n\tdisplay: block;\n\tmax-width: 60rem;\n}\n\n[mol_text_span] {\n\tdisplay: inline;\n}\n\n[mol_text_string] {\n\tdisplay: inline;\n\tflex: 0 1 auto;\n\twhite-space: normal;\n}\n\n[mol_text_quote] {\n\tmargin: var(--mol_gap_block);\n\tpadding: var(--mol_gap_block);\n\tbackground: var(--mol_theme_card);\n\tbox-shadow: 0 0 0 1px var(--mol_theme_back);\n}\n\n[mol_text_header] {\n\tdisplay: block;\n\ttext-shadow: 0 0;\n\tfont-weight: normal;\n}\n\n* + [mol_text_header] {\n\tmargin-top: 0.75rem;\n}\n\nh1[mol_text_header] {\n\tfont-size: 1.5rem;\n}\n\nh2[mol_text_header] {\n\tfont-size: 1.5rem;\n\tfont-style: italic;\n}\n\nh3[mol_text_header] {\n\tfont-size: 1.25rem;\n}\n\nh4[mol_text_header] {\n\tfont-size: 1.25em;\n\tfont-style: italic;\n}\n\nh5[mol_text_header] {\n\tfont-size: 1rem;\n}\n\nh6[mol_text_header] {\n\tfont-size: 1rem;\n\tfont-style: italic;\n}\n\n[mol_text_header_link] {\n\tcolor: inherit;\n}\n\n[mol_text_table_cell] {\n\twidth: auto;\n\tdisplay: table-cell;\n\tvertical-align: baseline;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n[mol_text_grid_cell] {\n\twidth: auto;\n\tdisplay: table-cell;\n\tvertical-align: top;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n[mol_text_cut] {\n\tborder: none;\n\twidth: 100%;\n\tbox-shadow: 0 0 0 1px var(--mol_theme_line);\n}\n\n[mol_text_link_http],\n[mol_text_link] {\n\tpadding: 0;\n\tdisplay: inline;\n\twhite-space: nowrap;\n}\n\n[mol_text_link_icon] + [mol_text_embed] {\n\tmargin-left: -1.5rem;\n}\n\n[mol_text_embed_youtube] {\n\tdisplay: inline;\n}\n\n[mol_text_embed_youtube_image],\n[mol_text_embed_youtube_frame],\n[mol_text_embed_object] {\n\tobject-fit: contain;\n\tobject-position: center;\n\tdisplay: inline;\n\twidth: 100vw;\n\tmax-height: calc( 100vh - 6rem );\n\tvertical-align: top;\n}\n[mol_text_embed_object_fallback] {\n\tpadding: 0;\n}\n[mol_text_embed_image] {\n\tobject-fit: contain;\n\tobject-position: center;\n\tdisplay: inline;\n\t/* max-height: calc( 100vh - 6rem ); */\n\tvertical-align: top;\n}\n\n[mol_text_pre] {\n\twhite-space: pre;\n\toverflow-x: auto;\n\toverflow-x: overlay;\n\ttab-size: 2;\n}\n\n[mol_text_code_line] {\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n}\n\n[mol_text_type=\"strong\"] {\n\ttext-shadow: 0 0;\n\tfilter: contrast(1.5);\n}\n\n[mol_text_type=\"emphasis\"] {\n\tfont-style: italic;\n}\n\n[mol_text_type=\"insert\"] {\n\tcolor: var(--mol_theme_special);\n}\n\n[mol_text_type=\"delete\"] {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_text_type=\"remark\"] {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_text_type=\"quote\"] {\n\tfont-style: italic;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_string_button) = class $mol_string_button extends ($.$mol_string) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/string/button/button.view.css", "[mol_string_button]:not(:placeholder-shown):not(:focus):not(:hover):not(:disabled) {\n\tcolor: var(--mol_theme_control);\n\tbackground: transparent;\n\tbox-shadow: none;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_row) = class $mol_row extends ($.$mol_view) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/row/row.view.css", "[mol_row] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: flex-start;\n\talign-content: flex-start;\n\tjustify-content: flex-start;\n\tpadding: var(--mol_gap_block);\n\tgap: var(--mol_gap_block);\n\tflex: 0 0 auto;\n\tbox-sizing: border-box;\n\tmax-width: 100%;\n}\n\n[mol_row] > * {\n\tmax-width: 100%;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_form) = class $mol_form extends ($.$mol_list) { + keydown(next){ + if(next !== undefined) return next; + return null; + } + form_fields(){ + return []; + } + body(){ + return (this.form_fields()); + } + Body(){ + const obj = new this.$.$mol_list(); + (obj.sub) = () => ((this.body())); + return obj; + } + buttons(){ + return []; + } + foot(){ + return (this.buttons()); + } + Foot(){ + const obj = new this.$.$mol_row(); + (obj.sub) = () => ((this.foot())); + return obj; + } + submit_allowed(){ + return true; + } + submit_blocked(){ + return false; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.keydown(next))}; + } + submit(next){ + if(next !== undefined) return next; + return null; + } + rows(){ + return [(this.Body()), (this.Foot())]; + } + }; + ($mol_mem(($.$mol_form.prototype), "keydown")); + ($mol_mem(($.$mol_form.prototype), "Body")); + ($mol_mem(($.$mol_form.prototype), "Foot")); + ($mol_mem(($.$mol_form.prototype), "submit")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_form extends $.$mol_form { + form_fields() { + return [...this.view_find(view => view instanceof $mol_form_field)] + .map(path => path[path.length - 1]); + } + submit_allowed() { + return this.form_fields().every(field => !field.bid()); + } + submit_blocked() { + return !this.submit_allowed(); + } + keydown(next) { + if (next.ctrlKey && next.keyCode === $mol_keyboard_code.enter && !this.submit_blocked()) + this.submit(event); + } + } + __decorate([ + $mol_mem + ], $mol_form.prototype, "form_fields", null); + __decorate([ + $mol_mem + ], $mol_form.prototype, "submit_allowed", null); + $$.$mol_form = $mol_form; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/form/form.view.css", "[mol_form] {\r\n\tgap: var(--mol_gap_block);\r\n}\r\n\r\n[mol_form_body] {\r\n\tgap: var(--mol_gap_block);\r\n}"); +})($ || ($ = {})); + +; + ($.$mol_text_list) = class $mol_text_list extends ($.$mol_text) { + type(){ + return ""; + } + auto_scroll(){ + return null; + } + attr(){ + return {...(super.attr()), "mol_text_list_type": (this.type())}; + } + Paragraph(id){ + const obj = new this.$.$mol_text_list_item(); + (obj.index) = () => ((this.item_index(id))); + (obj.sub) = () => ((this.block_content(id))); + return obj; + } + }; + ($mol_mem_key(($.$mol_text_list.prototype), "Paragraph")); + ($.$mol_text_list_item) = class $mol_text_list_item extends ($.$mol_paragraph) { + index(){ + return 0; + } + attr(){ + return {...(super.attr()), "mol_text_list_item_index": (this.index())}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/text/list/list.view.css", "[mol_text_list] {\r\n\tpadding-left: 1.75rem;\r\n}\r\n\r\n[mol_text_list_item] {\r\n\tcontain: none;\r\n\tdisplay: list-item;\r\n}\r\n\r\n[mol_text_list_item]::before {\r\n\tcontent: attr( mol_text_list_item_index ) \".\";\r\n\twidth: 1.25rem;\r\n\tdisplay: inline-block;\r\n\tposition: absolute;\r\n\tmargin-left: -1.75rem;\r\n\ttext-align: end;\r\n}\r\n\r\n[mol_text_list_type=\"-\"] > [mol_text_list_item]::before,\r\n[mol_text_list_type=\"*\"] > [mol_text_list_item]::before {\r\n\tcontent: \"•\";\r\n}\r\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$hyoo_survey_meet_form) = class $hyoo_survey_meet_form extends ($.$mol_page) { + title(next){ + if(next !== undefined) return next; + return ""; + } + pleasant(next){ + if(next !== undefined) return next; + return ""; + } + Pleasant(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.pleasant(next))); + return obj; + } + Pleasant_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Что понравилось?"); + (obj.control) = () => ((this.Pleasant())); + return obj; + } + improvement(next){ + if(next !== undefined) return next; + return ""; + } + Improvement(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.improvement(next))); + return obj; + } + Improvement_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Что можно улучшить?"); + (obj.control) = () => ((this.Improvement())); + return obj; + } + request(next){ + if(next !== undefined) return next; + return ""; + } + Request(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.request(next))); + return obj; + } + Request_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Идеи? Предложения?"); + (obj.control) = () => ((this.Request())); + return obj; + } + opinion(id){ + return ""; + } + Opinion(id){ + const obj = new this.$.$mol_text(); + (obj.text) = () => ((this.opinion(id))); + return obj; + } + opinions(){ + return [(this.Opinion("0"))]; + } + Opinions(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.opinions())); + return obj; + } + meet(){ + const obj = new this.$.$hyoo_survey_meet(); + return obj; + } + Title(){ + const obj = new this.$.$mol_string_button(); + (obj.value) = (next) => ((this.title(next))); + (obj.hint) = () => ("Как всё прошло?"); + return obj; + } + body(){ + return [ + (this.Pleasant_field()), + (this.Improvement_field()), + (this.Request_field()), + (this.Opinions()) + ]; + } + }; + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "title")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "pleasant")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Pleasant")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Pleasant_field")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "improvement")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Improvement")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Improvement_field")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "request")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Request")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Request_field")); + ($mol_mem_key(($.$hyoo_survey_meet_form.prototype), "Opinion")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Opinions")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "meet")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Title")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $hyoo_survey_meet_form extends $.$hyoo_survey_meet_form { + title(next) { + return this.meet().Title(next)?.val(next) ?? ''; + } + pleasant(next) { + return this.meet().opinion_my()?.Pleasant(next)?.val(next) ?? ''; + } + improvement(next) { + return this.meet().opinion_my()?.Improvement(next)?.val(next) ?? ''; + } + request(next) { + return this.meet().opinion_my()?.Request(next)?.val(next) ?? ''; + } + opinions() { + return this.meet().Opinions()?.keys().map(key => this.Opinion(key)) ?? []; + } + opinion(key) { + const opinion = this.meet().Opinions()?.key(key)?.remote(); + if (!opinion) + return ''; + return (opinion.Pleasant()?.val() ?? '') + '\n' + + (opinion.Improvement()?.val() ?? '') + '\n' + + (opinion.Request()?.val() ?? '') + '\n'; + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_meet_form.prototype, "opinions", null); + $$.$hyoo_survey_meet_form = $hyoo_survey_meet_form; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + $mol_style_define($hyoo_survey_meet_form, { + Opinion: { + background: { + color: $mol_theme.card, + }, + margin: $mol_gap.block, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$hyoo_survey_app) = class $hyoo_survey_app extends ($.$mol_book2_catalog) { + meet_add(next){ + if(next !== undefined) return next; + return null; + } + Meet_add_icon(){ + const obj = new this.$.$mol_icon_plus(); + return obj; + } + Meet_add(){ + const obj = new this.$.$mol_button_minor(); + (obj.click) = (next) => ((this.meet_add(next))); + (obj.sub) = () => ([(this.Meet_add_icon())]); + return obj; + } + meet(id){ + const obj = new this.$.$hyoo_survey_meet(); + return obj; + } + Meet(id){ + const obj = new this.$.$hyoo_survey_meet_form(); + (obj.meet) = () => ((this.meet(id))); + return obj; + } + param(){ + return "meet"; + } + realm(){ + const obj = new this.$.$hyoo_crus_realm(); + return obj; + } + menu_title(){ + return "$hyoo_survey"; + } + menu_tools(){ + return [(this.Meet_add())]; + } + spread_ids(){ + return ["1", "2"]; + } + Spread(id){ + return (this.Meet(id)); + } + }; + ($mol_mem(($.$hyoo_survey_app.prototype), "meet_add")); + ($mol_mem(($.$hyoo_survey_app.prototype), "Meet_add_icon")); + ($mol_mem(($.$hyoo_survey_app.prototype), "Meet_add")); + ($mol_mem_key(($.$hyoo_survey_app.prototype), "meet")); + ($mol_mem_key(($.$hyoo_survey_app.prototype), "Meet")); + ($mol_mem(($.$hyoo_survey_app.prototype), "realm")); + + +; +"use strict"; +var $; +(function ($) { + class $hyoo_survey_person extends $hyoo_crus_entity.with({ + Meets: $hyoo_crus_list_ref_to(() => $hyoo_survey_meet), + }) { + meet_make() { + return this.Meets(true)?.remote_make($hyoo_crus_rank_orgy); + } + } + __decorate([ + $mol_action + ], $hyoo_survey_person.prototype, "meet_make", null); + $.$hyoo_survey_person = $hyoo_survey_person; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $hyoo_survey_app extends $.$hyoo_survey_app { + meet_id(next) { + const id = this.$.$mol_state_arg.value('meet', next?.description); + if (!id) + return null; + return $hyoo_crus_ref(id); + } + profile() { + return this.realm().home().hall_by($hyoo_survey_person, $hyoo_crus_rank_public); + } + meet_add() { + const meet = this.profile().meet_make(); + this.meet_id(meet.ref()); + } + spread_ids() { + return this.profile()?.Meets()?.remote_list().map(meet => meet.ref().description) ?? []; + } + meet(id) { + return this.realm().Node($hyoo_crus_ref(id), $hyoo_survey_meet); + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "meet_id", null); + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "profile", null); + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "spread_ids", null); + __decorate([ + $mol_mem_key + ], $hyoo_survey_app.prototype, "meet", null); + $$.$hyoo_survey_app = $hyoo_survey_app; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + + +//# sourceMappingURL=node.js.map diff --git a/node.js.map b/node.js.map new file mode 100644 index 0000000..4fad364 --- /dev/null +++ b/node.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["-","../../../../mam.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/fail/fail.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/func/name/name.ts","../../../../mol/object2/object2.ts","../../../../mol/object/object.ts","../../../../mol/window/window.node.ts","../../../../mol/wire/cursor/cursor.ts","../../../../mol/wire/pub/pub.ts","../../../../mol/wire/wire.ts","../../../../mol/dev/format/format.ts","../../../../mol/wire/pub/sub/sub.ts","../../../../mol/after/timeout/timeout.ts","../../../../mol/after/frame/frame.node.ts","../../../../mol/promise/like/like.ts","../../../../mol/wire/fiber/fiber.ts","../../../../mol/guid/guid.ts","../../../../mol/key/key.ts","../../../../mol/compare/deep/deep.ts","../../../../mol/log3/log3.ts","../../../../mol/span/span.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/tree2/tree2.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/term/color/color.ts","../../../../mol/log3/log3.node.ts","../../../../mol/wire/task/task.ts","../../../../mol/wire/method/method.ts","../../../../mol/fail/catch/catch.ts","../../../../mol/fail/log/log.ts","../../../../mol/wire/atom/atom.ts","../../../../mol/wire/solo/solo.ts","../../../../mol/wire/plex/plex.ts","../../../../mol/mem/mem.ts","../../../../mol/dom/context/context.ts","../../../../node/node.node.ts","../../../../mol/env/env.ts","../../../../mol/env/env.node.ts","../../../../mol/exec/exec.node.ts","../../../../mol/dom/context/context.node.ts","../../../../mol/after/tick/tick.ts","../../../../mol/view/selection/selection.ts","../../../../mol/wrapper/wrapper.ts","../../../../mol/memo/memo.ts","../../../../mol/dom/qname/qname.ts","../../../../mol/wire/probe/probe.ts","../../../../mol/wire/watch/watch.ts","../../../../mol/const/const.ts","../../../../mol/wire/solid/solid.ts","../../../../mol/dom/render/attributes/attributes.ts","../../../../mol/dom/render/events/events.ts","../../../../mol/dom/render/styles/styles.ts","../../../../mol/dom/render/children/children.ts","../../../../mol/dom/render/fields/fields.ts","../../../../mol/wire/async/async.ts","../../../../mol/style/attach/attach.ts","../../../../mol/decor/decor.ts","../../../../mol/style/unit/unit.ts","../../../../mol/style/func/func.ts","../../../../mol/style/prop/prop.ts","../../../../mol/theme/theme.ts","../../../../mol/theme/-css/theme.css.ts","../../../../mol/gap/gap.ts","../../../../mol/gap/-css/gap.css.ts","../../../../mol/view/view/view.ts","../../../../mol/view/view/-css/view.css.ts","../../../../mol/plugin/plugin.ts","../../../../mol/scroll/scroll.view.tree","../../../../mol/dom/listener/listener.ts","../../../../mol/print/print.ts","../../../../mol/style/sheet/sheet.ts","../../../../mol/style/define/define.ts","../../../../mol/scroll/scroll.view.ts","../../../../mol/scroll/scroll.view.css.ts","../../../../mol/book2/book2.view.tree","../../../../mol/mem/cached/cached.ts","../../../../mol/layer/layer.ts","../../../../mol/layer/-css/layer.css.ts","../../../../mol/book2/book2.view.ts","../../../../mol/book2/-css/book2.view.css.ts","../../../../mol/pop/pop.view.tree","../../../../mol/pop/pop.view.ts","../../../../mol/pop/-css/pop.view.css.ts","../../../../mol/hotkey/hotkey.view.tree","../../../../mol/keyboard/code/code.ts","../../../../mol/hotkey/hotkey.view.ts","../../../../mol/nav/nav.view.tree","../../../../mol/nav/nav.view.ts","../../../../mol/mem/persist/persist.ts","../../../../mol/wire/sync/sync.ts","../../../../mol/storage/storage.ts","../../../../mol/state/local/local.ts","../../../../mol/charset/decode/decode.ts","../../../../mol/charset/encode/encode.ts","../../../../mol/file/file.ts","../../../../mol/action/action.ts","../../../../mol/compare/array/array.ts","../../../../mol/file/file.node.ts","../../../../mol/state/local/local.node.ts","../../../../mol/locale/locale.ts","../../../../mol/string/string.view.tree","../../../../mol/string/string.view.ts","../../../../mol/string/-css/string.view.css.ts","../../../../mol/svg/svg.view.tree","../../../../mol/state/time/time.ts","../../../../mol/svg/svg.view.ts","../../../../mol/svg/root/root.view.tree","../../../../mol/svg/root/-css/root.view.css.ts","../../../../mol/svg/path/path.view.tree","../../../../mol/icon/icon.view.tree","../../../../mol/icon/-css/icon.view.css.ts","../../../../mol/icon/cross/cross.view.tree","../../../../mol/speck/speck.view.tree","../../../../mol/speck/-css/speck.view.css.ts","../../../../mol/button/button.view.tree","../../../../mol/button/button.view.ts","../../../../mol/button/-css/button.view.css.ts","../../../../mol/button/typed/typed.view.tree","../../../../mol/button/typed/-css/typed.view.css.ts","../../../../mol/button/minor/minor.view.tree","../../../../mol/button/minor/-css/minor.view.css.ts","../../../../mol/list/list.view.tree","../../../../mol/support/css/css.ts","../../../../mol/list/list.view.ts","../../../../mol/list/-css/list.view.css.ts","../../../../mol/paragraph/paragraph.view.tree","../../../../mol/paragraph/paragraph.view.ts","../../../../mol/paragraph/-css/paragraph.view.css.ts","../../../../mol/dimmer/dimmer.view.tree","../../../../mol/regexp/regexp.ts","../../../../mol/dimmer/dimmer.view.ts","../../../../mol/dimmer/-css/dimmer.view.css.ts","../../../../mol/search/search.view.tree","../../../../localized_string","../../../../mol/search/search.view.ts","../../../../mol/search/-css/search.view.css.ts","../../../../mol/link/link.view.tree","../../../../mol/state/arg/arg.node.ts","../../../../mol/link/link.view.ts","../../../../mol/link/link.view.css.ts","../../../../mol/page/page.view.tree","../../../../mol/page/page.view.css.ts","../../../../mol/book2/catalog/catalog.view.tree","../../../../mol/match/text.ts","../../../../mol/book2/catalog/catalog.view.ts","../../../../mol/book2/catalog/-css/catalog.view.css.ts","../../../../mol/icon/plus/plus.view.tree","../../../../hyoo/crus/part/part.ts","../../../../mol/base64/encode/encode.ts","../../../../mol/base64/encode/encode.node.ts","../../../../mol/base64/decode/decode.ts","../../../../mol/base64/decode/decode.node.ts","../../../../mol/base64/ae/ae.ts","../../../../mol/buffer/buffer.ts","../../../../mol/data/tagged/tagged.ts","../../../../hyoo/crus/ref/ref.ts","../../../../mol/base64/url/url.ts","../../../../mol/crypto/native/native.node.ts","../../../../mol/crypto/key/key.ts","../../../../mol/crypto/secret/secret.ts","../../../../hyoo/crus/auth/auth.ts","../../../../hyoo/crus/face/face.ts","../../../../mol/wire/dict/dict.ts","../../../../mol/wire/set/set.ts","../../../../hyoo/crus/area/area.ts","../../../../hyoo/crus/rank/rank.ts","../../../../hyoo/crus/fund/fund.ts","../../../../mol/crypto/hash/hash.ts","../../../../hyoo/crus/pack/pack.ts","../../../../hyoo/crus/mine/mine.ts","../../../../hyoo/crus/mine/mine.node.ts","../../../../mol/time/base/base.ts","../../../../mol/time/duration/duration.ts","../../../../mol/time/moment/moment.ts","../../../../mol/time/interval/interval.ts","../../../../mol/dom/serialize/serialize.ts","../../../../mol/dom/parse/parse.ts","../../../../hyoo/crus/vary/vary.ts","../../../../mol/jsx/jsx.ts","../../../../mol/tree2/bin/bin.ts","../../../../mol/tree2/xml/from/dom/dom.ts","../../../../hyoo/crus/vary/cast/cast.tsx","../../../../mol/guard/defined.ts","../../../../mol/bus/bus.ts","../../../../mol/promise/promise/promise.ts","../../../../mol/wait/timeout/timeout.ts","../../../../mol/wire/race/race.ts","../../../../hyoo/crus/land/land.ts","../../../../hyoo/crus/unit/unit.ts","../../../../hyoo/crus/pass/pass.ts","../../../../hyoo/crus/gift/gift.ts","../../../../mol/rest/code/code.ts","../../../../mol/rest/port/port.ts","../../../../mol/rest/port/ws/ws.ts","../../../../mol/websocket/frame/frame.ts","../../../../mol/rest/port/ws/ws_std.ts","../../../../mol/rest/port/ws/ws.node.ts","../../../../hyoo/crus/yard/yard.ts","../../../../hyoo/crus/yard/yard.node.ts","../../../../hyoo/crus/gist/gist.ts","../../../../hyoo/crus/node/node.ts","../../../../mol/reconcile/reconcile.ts","../../../../hyoo/crus/realm/realm.ts","../../../../hyoo/crus/list/list.ts","../../../../hyoo/crus/dict/dict.ts","../../../../hyoo/crus/atom/atom.ts","../../../../hyoo/crus/home/home.ts","../../../../hyoo/crus/meta/meta.ts","../../../../hyoo/crus/entity/entity.ts","../../../../hyoo/survey/meet/meet.ts","../../../../mol/stack/stack.view.tree","../../../../mol/stack/-css/stack.view.css.ts","../../../../mol/text/code/token/token.view.tree","../../../../mol/text/code/token/token.view.css.ts","../../../../mol/text/code/row/row.view.tree","../../../../mol/syntax2/syntax2.ts","../../../../mol/syntax2/md/md.ts","../../../../mol/text/code/row/row.view.ts","../../../../mol/text/code/row/row.view.css.ts","../../../../mol/blob/blob.ts","../../../../mol/icon/clipboard/clipboard.view.tree","../../../../mol/icon/clipboard/outline/outline.view.tree","../../../../mol/button/copy/copy.view.tree","../../../../mol/html/encode/encode.ts","../../../../mol/button/copy/copy.view.ts","../../../../mol/text/code/code.view.tree","../../../../mol/text/code/code.view.ts","../../../../mol/text/code/code.view.css.ts","../../../../mol/textarea/textarea.view.tree","../../../../mol/textarea/textarea.view.ts","../../../../mol/textarea/-css/textarea.view.css.ts","../../../../mol/labeler/labeler.view.tree","../../../../mol/labeler/-css/labeler.view.css.ts","../../../../mol/form/field/field.view.tree","../../../../mol/form/field/field.view.ts","../../../../mol/form/field/-css/field.view.css.ts","../../../../mol/float/float.view.tree","../../../../mol/float/-css/float.view.css.ts","../../../../mol/check/check.view.tree","../../../../mol/maybe/maybe.ts","../../../../mol/check/-css/check.css.ts","../../../../mol/check/check.view.ts","../../../../mol/icon/chevron/chevron.view.tree","../../../../mol/check/expand/expand.view.tree","../../../../mol/check/expand/expand.view.ts","../../../../mol/check/expand/-css/expand.view.css.ts","../../../../mol/grid/grid.view.tree","../../../../mol/state/session/session.ts","../../../../mol/grid/grid.view.ts","../../../../mol/grid/-css/grid.view.css.ts","../../../../mol/image/image.view.tree","../../../../mol/image/image.view.ts","../../../../mol/image/-css/image.view.css.ts","../../../../mol/link/iconed/iconed.view.tree","../../../../mol/link/iconed/iconed.view.ts","../../../../mol/link/iconed/-css/iconed.view.css.ts","../../../../mol/embed/native/native.view.tree","../../../../mol/embed/native/native.view.ts","../../../../mol/embed/native/-css/native.view.css.ts","../../../../mol/icon/youtube/youtube.view.tree","../../../../mol/frame/frame.view.tree","../../../../mol/frame/frame.view.ts","../../../../mol/frame/frame.view.css.ts","../../../../mol/embed/youtube/youtube.view.tree","../../../../mol/embed/youtube/youtube.view.ts","../../../../mol/embed/youtube/-css/youtube.view.css.ts","../../../../mol/embed/any/any.view.tree","../../../../mol/embed/any/any.view.ts","../../../../mol/text/text/text.view.tree","../../../../mol/text/text/text.view.ts","../../../../mol/text/text/-css/text.view.css.ts","../../../../mol/string/button/button.view.tree","../../../../mol/string/button/-css/button.view.css.ts","../../../../mol/row/row.view.tree","../../../../mol/row/-css/row.view.css.ts","../../../../mol/form/form.view.tree","../../../../mol/form/form.view.ts","../../../../mol/form/-css/form.view.css.ts","../../../../mol/text/list/list.view.tree","../../../../mol/text/list/-css/list.view.css.ts","../../../../hyoo/survey/meet/form/form.view.tree","../../../../hyoo/survey/meet/form/form.view.ts","../../../../hyoo/survey/meet/form/form.view.css.ts","../../../../hyoo/survey/app/app.view.tree","../../../../hyoo/survey/person/person.ts","../../../../hyoo/survey/app/app.view.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\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' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['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","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ 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\tnamed.add( func )\n\t\treturn name\n\t\t\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\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\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 $\n\t\t}\n\t\tset $( next : $ ) {\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\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\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\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< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\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 InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\tstatic size() {\n\t\t\treturn {\n\t\t\t\twidth: 1024,\n\t\t\t\theight: 768,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.pop()\n\t\t\tthis.data.pop()\n\t\t\t\n\t\t\tif( this.data.length === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['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($ as any)['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\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\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\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) 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\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 as any)[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\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\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\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t\tthis.data.pop()\n\t\t\t\tthis.data.pop()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet tail = 0\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.data.length - 2, cursor )\n\t\t\t\t\tthis.data.pop()\n\t\t\t\t\tthis.data.pop()\n\t\t\t\t} else {\n\t\t\t\t\t++ tail\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor(; tail; -- tail ) {\n\t\t\t\tthis.data.pop()\n\t\t\t\tthis.data.pop()\n\t\t\t}\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\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\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise {\n\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t}\n\n}\n","namespace $ {\n\t\n\tconst handled = new WeakSet< Promise< unknown > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_frame | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_frame( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '<>'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper()\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_auto({\n\t\t\t\t\t\t[ $mol_dev_format_head ]: ()=> $mol_dev_format_shade( cursor ),\n\t\t\t\t\t\t[ $mol_dev_format_body ]: ()=> $mol_dev_format_native( this ),\n\t\t\t\t\t})\n\t\t\t\t\t: $mol_dev_format_shade( $mol_dev_format_native( this ), cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) && !handled.has( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\tresult = result.then( put, put )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) && !handled.has( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tresult = result.finally( ()=> {\n\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\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}\n\t\t\t\n\t\t\tif( $mol_promise_like( result ) && !handled.has( result ) ) {\n\t\t\t\t\t\n\t\t\t\tresult = Object.assign( result, {\n\t\t\t\t\tdestructor: (result as any)['destructor'] ?? (()=> {})\n\t\t\t\t} )\n\t\t\t\thandled.add( result )\n\t\t\t\t\n\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsub.destructor()\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\tif( value instanceof Uint8Array ) return [ ... value ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && left.stack === (right as any).stack\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, left.byteOffset, left.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\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 : $ ,\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 : $ ,\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\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\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}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\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.kids.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} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\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.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst 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\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( 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\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\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\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\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_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.host !== host ) break reuse\n\t\t\t\t\tif( existen.task !== task ) break reuse\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) break reuse\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst next = new $mol_wire_task( `${ (host as any)?.[ Symbol.toStringTag ] ?? host }.${ task.name }<#>`, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Non idempotency`,\n\t\t\t\t\t\texisten,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Ignore it',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakMap< any , boolean >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.get( error ) ) return false\n\t\t\n\t\tcatched.set( error , true )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\tconsole.error( error )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '<>'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = `${ prefix }.${ field }`\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '<>'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = `${ prefix }.${ task.name }<${ key_str.replace( /^\"|\"$/g, \"'\" ) }>`\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update fiber value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\tprev.destructor()\n\t\t\t}\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\ttry {\n\t\t\treturn target.require( name )\n\t\t} catch( error ) {\n\t\t\tif( ( error as any ).code === 'ERR_REQUIRE_ESM' ) {\n\t\t\t\tconst module = cache.get( name )\n\t\t\t\tif( module ) return module\n\t\t\t\tthrow import( name ).then( module => cache.set( name, module ) )\n\t\t\t}\n\t\t\t$.$mol_fail_log( error )\n\t\t\treturn null\n\t\t}\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nconst cache = new Map< string, any >()\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) {\n\t\t\treturn $mol_fail( res.error || new Error( res.stderr.toString(), { cause: res.stdout } ) )\n\t\t}\n\t\t\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\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 class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[], notify?: 'notify' ) : Element[] {\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next?.[0] ?? $mol_dom_context.document.activeElement\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\t\t\t\n\t\t\tif( !next || notify ) return parents\n\t\t\t\n\t\t\tnew $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\tconst element = 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\t\t\t\t\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t}\n\t\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 : Class , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler: ProxyHandler = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t} \n\n\t\t\t\t;(handler as any)[ 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\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr : PropertyDescriptor,\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_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\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/g , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\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 === undefined ) {\n\t\t\t\t\n\t\t\t\tcontinue\n\t\t\t\t\n\t\t\t} if( 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\t\n\texport function $mol_dom_render_events (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any },\n\t\tpassive = false\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive } )\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\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle.setProperty(kebab(name), `${ val }px`);\n\t\t\t} else {\n\t\t\t\tstyle.setProperty(kebab(name), val);\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\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\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\n\t\t\t(el as any)[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify\n\t\t\n\t}\n\n\ttype FunctionResultPromisify = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike ? Some : (...args: Args) => Promise\n\t\t: Some\n\n\ttype MethodsResultPromisify = {\n\t\t[K in keyof Host]: FunctionResultPromisify\n\t}\n\n\ttype ObjectOrFunctionResultPromisify = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify : {}\n\t) & ( Some extends Object ? MethodsResultPromisify : Some )\n\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_force() {\n\t\tif( all.length ) {\n\t\t\tel!.innerHTML += '\\n' + all.join( '\\n\\n' )\n\t\t\tall = []\n\t\t}\n\t\ttimer = null\n\t\treturn el!\n\t}\n\t\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( $mol_style_attach_force )\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\n\texport type $mol_style_unit_str< Quanity extends $mol_style_unit_any = $mol_style_unit_any> = `${number}${Quanity}`\n\n\t/**\n\t * CSS Units\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\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 `${value}%` as const }\n\t\tstatic px( value : number ) { return `${ value }px` as const }\n\t\tstatic mm( value : number ) { return `${value}mm` as const }\n\t\tstatic cm( value : number ) { return `${value}cm` as const }\n\t\tstatic Q( value : number ) { return `${value}Q` as const }\n\t\tstatic in( value : number ) { return `${value}in` as const }\n\t\tstatic pc( value : number ) { return `${value}pc` as const }\n\t\tstatic pt( value : number ) { return `${value}pt` as const }\n\t\tstatic cap( value : number ) { return `${value}cap` as const }\n\t\tstatic ch( value : number ) { return `${value}ch` as const }\n\t\tstatic em( value : number ) { return `${value}em` as const }\n\t\tstatic rem( value : number ) { return `${value}rem` as const }\n\t\tstatic ex( value : number ) { return `${value}ex` as const }\n\t\tstatic ic( value : number ) { return `${value}ic` as const }\n\t\tstatic lh( value : number ) { return `${value}lh` as const }\n\t\tstatic rlh( value : number ) { return `${value}rlh` as const }\n\t\tstatic vh( value : number ) { return `${value}vh` as const }\n\t\tstatic vw( value : number ) { return `${value}vw` as const }\n\t\tstatic vi( value : number ) { return `${value}vi` as const }\n\t\tstatic vb( value : number ) { return `${value}vb` as const }\n\t\tstatic vmin( value : number ) { return `${value}vmin` as const }\n\t\tstatic vmax( value : number ) { return `${value}vmax` as const }\n\t\t\n\t\tstatic deg( value : number ) { return `${value}deg` as const }\n\t\tstatic rad( value : number ) { return `${value}rad` as const }\n\t\tstatic grad( value : number ) { return `${value}grad` as const }\n\t\tstatic turn( value : number ) { return `${value}turn` as const }\n\n\t\tstatic s( value : number ) { return `${value}s` as const }\n\t\tstatic ms( value : number ) { return `${value}ms` as const }\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| 'clamp'\n\t| 'scale'\n\t| 'cubic-bezier'\n\t| 'linear'\n\t| 'steps'\n\t| $mol_style_func_image\n\t| $mol_style_func_filter\n\t\n\texport type $mol_style_func_image =\n\t| 'url'\n\t| 'linear-gradient'\n\t| 'radial-gradient'\n\t| 'conic-gradient'\n\t\n\texport type $mol_style_func_filter =\n\t| 'blur'\n\t| 'brightness'\n\t| 'contrast'\n\t| 'drop-shadow'\n\t| 'grayscale'\n\t| 'hue-rotate'\n\t| 'invert'\n\t| 'opacity'\n\t| 'sepia'\n\t| 'saturate'\n\n\tconst { per } = $mol_style_unit\n\t\n\t/**\n\t * CSS Functions\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\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 linear_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'linear-gradient' , value )\n\t\t}\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, Value extends string >( name : Name, defaultValue? : Value ) {\n\t\t\treturn new $mol_style_func( 'var' , defaultValue ? [name, defaultValue] : 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 clamp(\n\t\t\tmin: $mol_style_unit_str< any >,\n\t\t\tmid: $mol_style_unit_str< any >,\n\t\t\tmax: $mol_style_unit_str< any >,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'clamp',\n\t\t\t\t[ min, mid, max ],\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\tstatic scale(\n\t\t\tzoom: number,\n\t\t) {\n\t\t\treturn new $mol_style_func( 'scale', [ zoom ] )\n\t\t}\n\t\t\n\t\tstatic linear(\n\t\t\t...breakpoints : Array]>\n\t\t){\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"linear\",\n\t\t\t\tbreakpoints.map((e) =>\n\t\t\t\t\tArray.isArray(e)\n\t\t\t\t\t\t? String(e[0]) +\n\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t (typeof e[1] === \"number\" ? e[1] + \"%\" : e[1].toString())\n\t\t\t\t\t\t: String(e)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic cubic_bezier(\n\t\t\tx1: number,\n\t\t\ty1: number,\n\t\t\tx2: number,\n\t\t\ty2: number\n\t\t){\n\t\t\treturn new $mol_style_func( 'cubic-bezier', [ x1, y1, x2, y2 ]);\n\t\t}\n\t\t\n\t\tstatic steps(value: number, step_position: 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both' | 'start' | 'end'){\n\t\t\treturn new $mol_style_func( 'steps', [ value, step_position ] )\n\t\t}\n\t\t\n\t\tstatic blur(value?: $mol_style_unit_str<$mol_style_unit_length>){\n\t\t\treturn new $mol_style_func( 'blur', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic brightness(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'brightness', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic contrast(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'contrast', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic drop_shadow(\n\t\t\tcolor: $mol_style_properties_color,\n\t\t\tx_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\ty_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\tblur_radius?: $mol_style_unit_str<$mol_style_unit_length>\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"drop-shadow\",\n\t\t\t\tblur_radius\n\t\t\t\t\t? [color, x_offset, y_offset, blur_radius]\n\t\t\t\t\t: [color, x_offset, y_offset]\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic grayscale(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'grayscale', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic hue_rotate(value?: 0 | $mol_style_unit_str<$mol_style_unit_angle>){\n\t\t\treturn new $mol_style_func( 'hue-rotate', value ?? \"\")\n\t\t}\n\t\t\n\t\tstatic invert(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'invert', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic opacity(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'opacity', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic sepia(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'sepia', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic saturate(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'saturate', value ?? \"\" );\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Create record of CSS variables. */\n\texport function $mol_style_prop< Keys extends string[] >(\n\t\tprefix: string ,\n\t\tkeys: Keys\n\t) {\n\t\t\n\t\tconst record = keys.reduce( ( rec , key: Keys[number] )=> {\n\t\t\t\n\t\t\trec[ key ] = $mol_style_func.vary( `--${ prefix }_${ key }` )\n\t\t\treturn rec\n\t\t\t\n\t\t}, {} as Record< Keys[number], $mol_style_func< 'var' > > )\n\t\t\n\t\treturn record\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Theme css variables\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\t\n\texport const $mol_theme = $mol_style_prop(\n\t\t'mol_theme',\n\t\t[\n\t\t\t'back',\n\t\t\t'hover',\n\t\t\t'card',\n\t\t\t'current',\n\t\t\t'special',\n\t\t\t'text',\n\t\t\t'control',\n\t\t\t'shade',\n\t\t\t'line',\n\t\t\t'focus',\n\t\t\t'field',\n\t\t\t'image',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \":root {\\n\\t--mol_theme_hue: 210deg;\\n\\t--mol_theme_hue_spread: 90deg;\\n}\\n\\n:where([mol_theme]) {\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n\\tbackground-color: var(--mol_theme_back);\\n}\\n\\t\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\n\\t--mol_theme_luma: -1;\\n\\t--mol_theme_image: invert(1) hue-rotate( 180deg );\\n\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\n\\t/* --mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .05 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 0% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .2 );\\n\\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 80% .2 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_special: oklch( 80% .3 calc( var(--mol_theme_hue) + 60deg ) ); */\\n\\n}\\n\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_luma: 1;\\n\\t--mol_theme_image: none;\\n\\t\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t\\n\\t/* --mol_theme_back: oklch( 93% .01 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 100% .02 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 70% 0 var(--mol_theme_hue) / .2 );\\n\\t--mol_theme_focus: oklch( 20% .8 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 45% .25 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 45% .5 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_special: oklch( 45% .5 calc( var(--mol_theme_hue) + 60deg ) ); */\\n\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 30% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 40%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 25% .05 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 80% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 80%, 95%, .25 );\\n\\t/* --mol_theme_back: oklch( 95% .02 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 80% .05 var(--mol_theme_hue) / .25 ); */\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 30% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 40% .2 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t--mol_theme_card: oklch( 50% .3 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 75% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 90%, .25 );\\n\\t/* --mol_theme_back: oklch( 90% .03 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 30% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 92% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\\n\\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 30% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + 60deg ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 92% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\\n\\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) + 60deg ) );\\n\\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\\n}\\n\"\n) }","namespace $ {\n\n\t/**\n\t * Gap in CSS\n\t * @see https://page.hyoo.ru/#!=msdb74_bm7nsq\n\t */\n\texport let $mol_gap = $mol_style_prop(\n\t\t'mol_gap',\n\t\t[\n\t\t\t'block',\n\t\t\t'text',\n\t\t\t'round',\n\t\t\t'space',\n\t\t\t'blur',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/gap/gap.css\",\n \":root {\\n\\t--mol_gap_block: .75rem;\\n\\t--mol_gap_text: .5rem .75rem;\\n\\t--mol_gap_round: .25rem;\\n\\t--mol_gap_space: .25rem;\\n\\t--mol_gap_blur: .5rem;\\n}\\n\"\n) }","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\t\n\tconst error_showed = new WeakMap< Error, $mol_view >()\n\n\t/**\n\t * The base class for all visual components. It provides the infrastructure for reactive lazy rendering, handling exceptions.\n\t * @see https://mol.hyoo.ru/#!section=docs/=vv2nig_s5zr0f\n\t */\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\ttry {\n\t\t\t\tthis.dom_tree()\n\t\t\t\tdocument.title = this.title()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic autobind() {\n\t\t\t\n\t\t\tconst nodes = $mol_dom_context.document.querySelectorAll( '[mol_view_root]:not([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 = ($ as any)[ name ] as typeof $mol_view\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\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\treturn this.toString().match( /.*\\.(\\w+)/ )?.[1] ?? this.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\t@ $mol_memo.method\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\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub()\n\t\t\t\tif( !sub ) return 0\n\t\t\t\t\n\t\t\t\tsub.forEach( view => {\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\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\t\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\t \n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\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_wire_probe( ()=> this.view_rect() ) === undefined ) {\n\t\t\t\t$mol_wire_watch()\n\t\t\t\treturn null // don't touch DOM to prevent instant reflow\n\t\t\t} else {\n\t\t\t\tconst { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect()\n\t\t\t\treturn { width, height, left, right, top, bottom } // pick to optimize compare\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tdom_id() {\n\t\t\treturn this.toString().replace( //g, ')' ).replaceAll( /\"/g, \"'\" )\n\t\t}\n\t\n\t\tdom_node_external( next?: Element) {\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\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst node = this.dom_node_external( next )\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event_async()\n\t\t\t$mol_dom_render_events(node, events)\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_final() {\n\t\t\t\n\t\t\tthis.render()\n\t\t\t\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tfor( const el of sub ) {\n\t\t\t\tif( el && typeof el === 'object' && 'dom_final' in el ) {\n\t\t\t\t\tel['dom_final']()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.dom_node()\n\t\t\t\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\trender: try {\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\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\tconst mol_view_error = $mol_promise_like(error) ? 'Promise' : error.name || error.constructor.name\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error } )\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) break render\n\t\t\t\tif( ( error_showed.get( error ) ?? this ) !== this ) break render\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst message = error.message || error\n\t\t\t\t\t;( node as HTMLElement ).innerText = message.replace( /^|$/mg, '\\xA0\\xA0' )\n\t\t\t\t} catch {}\n\t\t\t\t\n\t\t\t\terror_showed.set( error, this )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.auto()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\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$mol_dom_render_styles( node, this.style_size() )\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tauto() {\n\t\t\treturn null as any\n\t\t}\n\n\t\t@ $mol_mem\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: child instanceof $mol_dom_context.Node\n\t\t\t\t\t? child\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\t$mol_dom_render_fields( node , this.field() )\n\t\t\t\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\tif( current.constructor.name !== classes.at(-1)?.name ) {\n\t\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\t}\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\tstatic _view_names?: Map< string, string[] >\n\t\tstatic view_names( suffix: string ) {\n\t\t\t\n\t\t\tlet cache = Reflect.getOwnPropertyDescriptor( this, '_view_names' )?.value\n\t\t\tif( !cache ) cache = this._view_names = new Map\n\t\t\t\n\t\t\tconst cached = cache.get( suffix )\n\t\t\tif( cached ) return cached\n\t\t\t\n\t\t\tconst names = [] as string[]\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tfor( const Class of this.view_classes() ) {\n\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\telse break\n\t\t\t}\n\t\t\t\n\t\t\tcache.set( suffix, names )\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this ) as $mol_wire_fiber< any, any[], any >\n\n\t\t\tif(!( owner?.host instanceof $mol_view )) return names\n\n\t\t\tconst suffix = owner.task.name.trim()\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tnames.push( ... ( owner.host.constructor as typeof $mol_view ).view_names( suffix ) )\n\t\t\t\n\t\t\tfor( let prefix of owner.host.view_names_owned() ) {\n\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t}\n\t\t\t\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tview_names() {\n\t\t\tconst names = new Set< string >()\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) names.add( name )\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 ) names.add( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttheme( next = null as null | string ) {\n\t\t\treturn next\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\t\tmol_theme: this.theme() ?? undefined,\n\t\t\t} as {}\n\t\t}\n\t\t\n\t\tstyle_size() {\n\t\t\treturn {\n\t\t\t\tminHeight: this.minimal_height(),\n\t\t\t\tminWidth: this.minimal_width(),\n\t\t\t} as {\n\t\t\t\t[key: string]: string | number;\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\t@ $mol_mem\n\t\tevent_async() {\n\t\t\treturn { ... $mol_wire_async(this.event()) }\n\t\t}\n\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\t\t\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_wire_cache( this ).sub().cache ) ,\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\ttry {\n\t\t\t\tfor( const item of this.sub() ) {\n\t\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch( error: unknown ) {\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t$mol_fail_log( error )\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\tensure_visible( view: $mol_view, align: ScrollLogicalPosition = \"start\" ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.dom_final()\n\t\t\t} catch(err) {\n\t\t\t\t$mol_fail_log(err)\n\t\t\t}\n\n\t\t\tview.dom_node().scrollIntoView({ block: align })\n\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tif( win.parent !== win.self && !win.document.hasFocus() ) return\n\t\t\t\n\t\t\tnew this.$.$mol_after_frame( ()=> {\n\t\t\t\t\n\t\t\t\tthis.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' })\n\t\t\t\tthis.focused( true )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\toverride destructor() {\n\t\t\tconst node = $mol_wire_probe(() => this.dom_node())\n\t\t\tif (! node) return\n\n\t\t\tconst events = $mol_wire_probe(() => this.event_async())\n\t\t\tif (! events) return\n\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.removeEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\tevents[ event_name ]\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $ , typeof $mol_view >\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: 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\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tcontain: style;\\n\\tscrollbar-color: var(--mol_theme_line) transparent;\\n\\tscrollbar-width: thin;\\n}\\t\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_line);\\n}\\t\\n\\n[mol_view]::-webkit-scrollbar {\\n\\twidth: .25rem;\\n\\theight: .25rem;\\n}\\n\\n[mol_view]::-webkit-scrollbar-corner {\\n\\tbackground-color: var(--mol_theme_line);\\n}\\n\\n[mol_view]::-webkit-scrollbar-track {\\n\\tbackground-color: transparent;\\n}\\n\\n[mol_view]::-webkit-scrollbar-thumb {\\n\\tbackground-color: var(--mol_theme_line);\\n\\tborder-radius: var(--mol_gap_round);\\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-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n\\tfont-size: 1rem;\\n\\tline-height: 1.5rem;\\n\\tbackground: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text);\\n\\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\\n\\ttab-size: 4;\\n\\toverscroll-behavior: contain; /** Disable navigation gestures **/\\n}\\n\\n@media print {\\n\\t[mol_view_root] {\\n\\t\\theight: auto;\\n\\t}\\n}\\n\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t-45deg,\\n\\t\\t#f92323,\\n\\t\\t#f92323 .5rem,\\n\\t\\t#ff3d3d .5rem,\\n\\t\\t#ff3d3d 1.5rem\\n\\t);\\n\\tcolor: black;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n@keyframes mol_view_wait {\\n\\tfrom {\\n\\t\\topacity: .25;\\n\\t}\\n\\t20% {\\n\\t\\topacity: .75;\\n\\t}\\n\\tto {\\n\\t\\topacity: .25;\\n\\t}\\n}\\n\\n:where([mol_view][mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground: var(--mol_theme_hover);\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait 1s steps( 20, end ) infinite;\\n}\\n\"\n) }","namespace $ {\n\t/** Plugin is component without its own DOM element, but instead uses the owner DOM element */\n\texport class $mol_plugin extends $mol_view {\n\n\t\toverride dom_node_external( next? : Element ) {\n\t\t\treturn next ?? $mol_owning_get>( this )!.host!.dom_node()\n\t\t}\n\n\t\toverride render() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\n\t}\n\n}\n","$mol_scroll $mol_view\n\tscroll_top? 0\n\tscroll_left? 0\n\tfield *\n\t\t^\n\t\ttabIndex <= tabindex -1\n\tevent *\n\t\t^\n\t\tscroll?event <=> event_scroll?event null\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 $ {\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\tlet res = `[${ block }_${ path.join('_') }]`\n\t\t\t\tif( prefix ) res = prefix + ' :where(' + res + ')'\n\t\t\t\treturn res\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 as any)[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 as any)[key] )\n\n\t\t\t\t} else if( key[0] === '$' ) {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + ' :where([' + $mol_dom_qname( key ) + '])' , [] , (config as any)[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 ) + ' > :where([' + $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 ) + ':where([' + 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 as any)[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 if( key[0] === '[' && key[key.length-1] === ']' ) {\n\n\t\t\t\t\tconst attr = key.slice( 1, -1 )\n\t\t\t\t\tconst vals = config[ key as any ] as any as Record< string, any >\n\t\t\t\t\t\n\t\t\t\t\tfor( let val in vals ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ':where([' + attr + '=' + JSON.stringify( val ) + '])' , [] , vals[val] )\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t} else {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + key , [] , (config as any)[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\t/**\n\t * CSS in TS.\n\t * Statically typed CSS style sheets. Following samples show which CSS code are generated from TS code.\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\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\t\n\t/**\n\t * Scrolling pane.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_scroll_demo\n\t */\n\texport class $mol_scroll extends $.$mol_scroll {\n\n\t\t@ $mol_mem\n\t\tscroll_top( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollTop = next\n\t\t\t\n\t\t\treturn el.scrollTop\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_left( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollLeft = next\n\t\t\t\n\t\t\treturn el.scrollLeft\n\t\t}\n\t\t\n\t\tevent_scroll( next? : Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\n\t\t\tthis.scroll_left( el.scrollLeft, 'cache' )\n\t\t\tthis.scroll_top( el.scrollTop, 'cache' )\n\t\t\t\n\t\t}\n\n\t\tminimal_height() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $.$$ {\n\n\tconst { per , rem , px } = $mol_style_unit\n\n\t$mol_style_define( $mol_scroll , {\n\n\t\tdisplay: 'grid',\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\t// basis: 0,\n\t\t},\n\t\toutline: 'none',\n\t\talign: {\n\t\t\tself: 'stretch',\n\t\t\titems: 'flex-start',\n\t\t},\n\t\tboxSizing: 'border-box',\n\t\twillChange: 'scroll-position',\n\t\tscroll: {\n\t\t\tpadding: [ rem(.75), 0 ],\n\t\t},\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\tgridArea: '1/1',\n\t\t\t},\n\t\t},\n\n\t\t'::before': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t'::after': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t\n\t\t'::-webkit-scrollbar': {\n\t\t\twidth: rem(.25),\n\t\t\theight: rem(.25),\n\t\t},\n\t\t\n\t\t'@media' : {\n\t\t\t'print' : {\n\t\t\t\toverflow: 'visible',\n\t\t\t\tcontain: 'none',\n\t\t\t\tmaxHeight: 'unset',\n\t\t\t},\n\t\t},\n\n\t})\n\n}\n","$mol_book2 $mol_scroll\n\tmenu_title \\\n\tsub <= pages /$mol_view\n\tminimal_width 0\n\tPlaceholder $mol_view\n\tGap* $mol_view title \\\n","namespace $ {\n\texport let $mol_mem_cached = $mol_wire_probe\n}\n","namespace $ {\n\n\t/**\n\t * Z-index values for layers\n\t * https://page.hyoo.ru/#!=xthcpx_wqmiba\n\t */\n\texport let $mol_layer = $mol_style_prop(\n\t\t'mol_layer',\n\t\t[\n\t\t\t'hover',\n\t\t\t'focus',\n\t\t\t'speck',\n\t\t\t'float',\n\t\t\t'popup',\n\t\t]\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/layer/layer.css\",\n \":root {\\n\\t--mol_layer_hover: 1;\\n\\t--mol_layer_focus: 2;\\n\\t--mol_layer_speck: 3;\\n\\t--mol_layer_float: 4;\\n\\t--mol_layer_popup: 5;\\n}\\n\"\n) }","namespace $.$$ {\n\n\t/**\n\t * Root component for adaptivity to various screen sizes. Implements booklet UX.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_book2_demo\n\t */\n\texport class $mol_book2 extends $.$mol_book2 {\n\t\t\n\t\ttitle() {\n\t\t\treturn this.pages().map( page => {\n\t\t\t\ttry {\n\t\t\t\t\treturn page?.title()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t} ).reverse().filter( Boolean ).join( ' | ' )\n\t\t}\n\t\t\n\t\tmenu_title() {\n\t\t\treturn this.pages()[0]?.title() || this.title()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\t\n\t\t\tconst next = [ ... this.pages(), this.Placeholder() ]\n\t\t\t\n\t\t\tconst prev = $mol_mem_cached( ()=> this.sub() ) ?? []\n\t\t\t\n\t\t\tfor( let i = 1 ; i++ ; ) {\n\t\t\t\t\n\t\t\t\tconst p = prev[ prev.length - i ]\n\t\t\t\tconst n = next[ next.length - i ]\n\t\t\t\t\n\t\t\t\tif( !n ) break\n\n\t\t\t\tif( p === n ) continue\n\n\t\t\t\tn.bring()\n\t\t\t\t\n\t\t\t\tbreak\n\n\t\t\t}\n\n\t\t\treturn next as readonly $mol_view[]\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst pages = this.pages()\n\t\t\t\n\t\t\tif( pages.length ) pages[ pages.length - 1 ].bring()\n\t\t\telse super.bring()\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/book2/book2.view.css\",\n \"[mol_book2] {\\n\\tdisplay: flex;\\n\\tflex-flow: row nowrap;\\n\\talign-items: stretch;\\n\\tflex: 1 1 auto;\\n\\talign-self: stretch;\\n\\tmargin: 0;\\n\\t/* box-shadow: 0 0 0 1px var(--mol_theme_line); */\\n\\t/* transform: translateZ(0); */\\n\\ttransition: none;\\n\\toverflow: overlay;\\n\\tscroll-snap-type: x mandatory;\\n\\t/* padding: 0 1px;\\n\\tscroll-padding: 0 1px;\\n\\tgap: 1px; */\\n}\\n\\n[mol_book2] > * {\\n/* \\tflex: none; */\\n\\tscroll-snap-stop: always;\\n\\tscroll-snap-align: end;\\n\\tposition: relative;\\n\\tmin-height: 100%;\\n\\tmax-height: 100%;\\n\\tmax-width: 100%;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_field);\\n}\\n\\n[mol_book2] > *:not(:first-of-type):before,\\n[mol_book2] > *:not(:last-of-type)::after {\\n\\tcontent: '';\\n\\tposition: absolute;\\n\\ttop: 1.5rem;\\n\\twidth: 2px;\\n\\theight: 1rem;\\n\\tbackground: linear-gradient(\\n\\t\\tto bottom,\\n\\t\\tvar(--mol_theme_focus) 0%,\\n\\t\\tvar(--mol_theme_focus) 14%,\\n\\t\\ttransparent 15%,\\n\\t\\ttransparent 42%,\\n\\t\\tvar(--mol_theme_focus) 43%,\\n\\t\\tvar(--mol_theme_focus) 57%,\\n\\t\\ttransparent 58%,\\n\\t\\ttransparent 85%,\\n\\t\\tvar(--mol_theme_focus) 86%,\\n\\t\\tvar(--mol_theme_focus) 100%\\n\\t);\\n\\topacity: .5;\\n\\tz-index: var(--mol_layer_speck);\\n}\\n[mol_book2] > *:not(:first-of-type):before {\\n\\tleft: -1px;\\n}\\n[mol_book2] > *:not(:last-of-type)::after {\\n\\tright: -1px;\\n}\\n\\n:where([mol_book2]) > * {\\n\\tbackground-color: var(--mol_theme_card);\\n\\t/* box-shadow: 0 0 0 1px var(--mol_theme_back); */\\n}\\n\\n[mol_book2] > [mol_book2] {\\n\\tdisplay: contents;\\n}\\n\\n[mol_book2] > *:first-child {\\n\\tscroll-snap-align: start;\\n}\\n\\n[mol_book2] > [mol_view] {\\n\\ttransform: none; /* prevent content clipping */\\n}\\n\\n[mol_book2_placeholder] {\\n\\tflex: 1 1 0;\\n\\tbackground: none;\\n}\\n\\n[mol_book2_gap] {\\n\\tbackground: none;\\n\\tflex-grow: 1;\\n\\tscroll-snap-align: none;\\n\\tmargin-right: -1px;\\n\\tbox-shadow: none;\\n}\\n\\n[mol_book2_gap]::before,\\n[mol_book2_gap]::after {\\n\\tdisplay: none;\\n}\\n\"\n) }","$mol_pop $mol_view\n\tshowed? false\n\talign_vert \\\n\talign_hor \\\n\tprefer \\vert\n\tsub /\n\t\t<= Anchor null\n\tsub_visible /\n\t\t<= Anchor\n\t\t<= Bubble $mol_pop_bubble\n\t\t\talign <= align \\bottom_center\n\t\t\tcontent <= bubble_content /$mol_view_content\n\t\t\theight_max <= height_max 9999\n\n$mol_pop_bubble $mol_view\n\tsub <= content /$mol_view_content\n\tstyle *\n\t\t^\n\t\tmaxHeight <= height_max 9999\n\tattr *\n\t\t^\n\t\tmol_pop_align <= align \\\n\t\ttabindex 0\n","namespace $.$$ {\n\n\t/**\n\t * `Bubble` that can be shown anchored to `Anchor` element.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_pop_demo\n\t */\n\texport class $mol_pop extends $.$mol_pop {\n\t\t\n\t\t@ $mol_mem\n\t\tshowed( next = false ) {\n\t\t\tthis.focused()\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub_visible() {\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\t@ $mol_mem\n\t\theight_max() {\n\t\t\t\n\t\t\tconst viewport = this.$.$mol_window.size()\n\t\t\tconst rect_bubble = this.view_rect()!\n\t\t\tconst align = this.align_vert()\n\t\t\t\n\t\t\tif( align === 'bottom' ) return ( viewport.height - rect_bubble.bottom ) * .66\n\t\t\tif( align === 'top' ) return rect_bubble.top * .66\n\t\t\t\n\t\t\treturn 0\n\t\t}\n\n\t\t@ $mol_mem\n\t\talign() {\n\t\t\tswitch( this.prefer() ) {\n\t\t\t\tcase 'hor': return `${ this.align_hor() }_${ this.align_vert() }`\n\t\t\t\tcase 'vert': return `${ this.align_vert() }_${ this.align_hor() }`\n\t\t\t\tdefault: return this.prefer()\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\talign_vert() {\n\t\t\tconst viewport = this.view_port()\n\t\t\t\n\t\t\tconst rect_pop = this.view_rect()\n\t\t\tif( !rect_pop ) return 'suspense'\n\t\t\t\n\t\t\treturn rect_pop.top > ( viewport.top + viewport.height / 2 ) ? 'top' : 'bottom'\n\t\t}\n\n\t\t@ $mol_mem\n\t\talign_hor() {\n\t\t\tconst viewport = this.view_port()\n\t\t\t\n\t\t\tconst rect_pop = this.view_rect()\n\t\t\tif( !rect_pop ) return 'suspense'\n\t\t\t\n\t\t\treturn rect_pop.left > ( viewport.left + viewport.width / 2 ) ? 'left' : 'right'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tView_port() {\n\t\t\tconst view = new $mol_view\n\t\t\tview.dom_node = ()=> {\n\t\t\t\tlet node = this.dom_node() as HTMLElement\n\t\t\t\twhile( node = node.offsetParent! as HTMLElement ) {\n\t\t\t\t\tif( this.$.$mol_dom_context.getComputedStyle( node ).overflow !== 'visible' ) return node\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_dom_context.document.documentElement\n\t\t\t}\n\t\t\treturn view\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tview_port() {\n\t\t\treturn this.View_port().view_rect() ?? { ... this.$.$mol_window.size(), left: 0, top: 0 }\n\t\t}\n\n\t}\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_bubble] {\\n\\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\\n\\tborder-radius: var(--mol_gap_round);\\n\\tposition: absolute;\\n\\tz-index: var(--mol_layer_popup);\\n\\tbackground: var(--mol_theme_back);\\n\\tmax-width: none;\\n\\tmax-height: none;\\n\\t/* overflow: hidden;\\n\\toverflow-y: scroll;\\n\\toverflow-y: overlay; */\\n\\tword-break: normal;\\n\\twidth: max-content;\\n\\theight: max-content;\\n\\tflex-direction: column;\\n\\tmax-width: 80vw;\\n\\tmax-height: 80vw;\\n\\tcontain: paint;\\n\\ttransition-property: opacity;\\n}\\n\\n:where( [mol_pop_bubble] > * ) {\\n\\tbackground: var(--mol_theme_card);\\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=\\\"suspense_suspense\\\"] {\\n\\topacity: 0;\\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) }","$mol_hotkey $mol_plugin\n\tevent *\n\t\t^\n\t\tkeydown?event <=> keydown?event null\n\tkey *\n\tmod_ctrl false\n\tmod_alt false\n\tmod_shift false\n","namespace $ {\n\t/**\n\t* Key names code for hotkey\n\t* @see [mol_hotkey](../../hotkey/hotkey.view.ts)\n\t*/\n\texport enum $mol_keyboard_code {\n\t\tbackspace = 8,\n\t\ttab = 9,\n\t\tenter = 13,\n\t\tshift = 16,\n\t\tctrl = 17,\n\t\talt = 18,\n\t\tpause = 19,\n\t\tcapsLock = 20,\n\t\tescape = 27,\n\t\tspace = 32,\n\t\tpageUp = 33,\n\t\tpageDown = 34,\n\t\tend = 35,\n\t\thome = 36,\n\t\tleft = 37,\n\t\tup = 38,\n\t\tright = 39,\n\t\tdown = 40,\n\t\tinsert = 45,\n\t\tdelete = 46,\n\t\tkey0 = 48,\n\t\tkey1 = 49,\n\t\tkey2 = 50,\n\t\tkey3 = 51,\n\t\tkey4 = 52,\n\t\tkey5 = 53,\n\t\tkey6 = 54,\n\t\tkey7 = 55,\n\t\tkey8 = 56,\n\t\tkey9 = 57,\n\t\tA = 65,\n\t\tB = 66,\n\t\tC = 67,\n\t\tD = 68,\n\t\tE = 69,\n\t\tF = 70,\n\t\tG = 71,\n\t\tH = 72,\n\t\tI = 73,\n\t\tJ = 74,\n\t\tK = 75,\n\t\tL = 76,\n\t\tM = 77,\n\t\tN = 78,\n\t\tO = 79,\n\t\tP = 80,\n\t\tQ = 81,\n\t\tR = 82,\n\t\tS = 83,\n\t\tT = 84,\n\t\tU = 85,\n\t\tV = 86,\n\t\tW = 87,\n\t\tX = 88,\n\t\tY = 89,\n\t\tZ = 90,\n\t\tmetaLeft = 91,\n\t\tmetaRight = 92,\n\t\tselect = 93,\n\t\tnumpad0 = 96,\n\t\tnumpad1 = 97,\n\t\tnumpad2 = 98,\n\t\tnumpad3 = 99,\n\t\tnumpad4 = 100,\n\t\tnumpad5 = 101,\n\t\tnumpad6 = 102,\n\t\tnumpad7 = 103,\n\t\tnumpad8 = 104,\n\t\tnumpad9 = 105,\n\t\tmultiply = 106,\n\t\tadd = 107,\n\t\tsubtract = 109,\n\t\tdecimal = 110,\n\t\tdivide = 111,\n\t\tF1 = 112,\n\t\tF2 = 113,\n\t\tF3 = 114,\n\t\tF4 = 115,\n\t\tF5 = 116,\n\t\tF6 = 117,\n\t\tF7 = 118,\n\t\tF8 = 119,\n\t\tF9 = 120,\n\t\tF10 = 121,\n\t\tF11 = 122,\n\t\tF12 = 123,\n\t\tnumLock = 144,\n\t\tscrollLock = 145,\n\t\tsemicolon = 186,\n\t\tequals = 187,\n\t\tcomma = 188,\n\t\tdash = 189,\n\t\tperiod = 190,\n\t\tforwardSlash = 191,\n\t\tgraveAccent = 192,\n\t\tbracketOpen = 219,\n\t\tslashBack = 220,\n\t\tslashBackLeft = 226,\n\t\tbracketClose = 221,\n\t\tquoteSingle = 222\n\t}\n}\n","namespace $.$$ {\n\t/**\n\t * Plugin which adds handlers for keyboard keys.\n\t * @see [mol_keyboard_code](../keyboard/code/code.ts)\n\t */\n\texport class $mol_hotkey extends $.$mol_hotkey {\n\n\t\tkey() {\n\t\t\treturn super.key() as {\n\t\t\t\t[ key in keyof typeof $mol_keyboard_code ]? : ( event : KeyboardEvent )=> void\n\t\t\t}\n\t\t}\n\t\t\n\t\tkeydown( event? : KeyboardEvent ) {\n\n\t\t\tif( !event ) return\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tlet name = $mol_keyboard_code[ event.keyCode ] as keyof typeof $mol_keyboard_code\n\t\t\t\n\t\t\tif( this.mod_ctrl() !== ( event.ctrlKey || event.metaKey ) ) return\n\t\t\tif( this.mod_alt() !== event.altKey ) return\n\t\t\tif( this.mod_shift() !== event.shiftKey ) return\n\t\t\t\n\t\t\tconst handle = this.key()[ name ]\n\t\t\tif( handle ) handle( event )\n\n\t\t}\n\t\t\n\t}\n}\n","$mol_nav $mol_plugin\n\tcycle? false\n\t-\n\tmod_ctrl false\n\tmod_shift false\n\tmod_alt false\n\t-\n\tkeys_x? /\n\tkeys_y? /\n\t-\n\tcurrent_x? null\n\tcurrent_y? null\n\t-\n\tevent_up?event null\n\tevent_down?event null\n\tevent_left?event null\n\tevent_right?event null\n\tevent *\n\t\t^\n\t\tkeydown?event <=> event_key?event null\n","namespace $.$$ {\n\t\n\t/**\n\t * Plugin which can navigate in list of items\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_nav_demo\n\t */\n\texport class $mol_nav extends $.$mol_nav {\n\t\t\n\t\tevent_key( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\t\t\tif( event.defaultPrevented ) return\n\t\t\t\n\t\t\tif( this.mod_ctrl() && !event.ctrlKey ) return\n\t\t\tif( this.mod_shift() && !event.shiftKey ) return\n\t\t\tif( this.mod_alt() && !event.altKey ) return\n\t\t\t\n\t\t\tswitch( event.keyCode ) {\n\t\t\t\tcase $mol_keyboard_code.up : return this.event_up( event )\n\t\t\t\tcase $mol_keyboard_code.down : return this.event_down( event )\n\t\t\t\tcase $mol_keyboard_code.left : return this.event_left( event )\n\t\t\t\tcase $mol_keyboard_code.right : return this.event_right( event )\n\t\t\t\tcase $mol_keyboard_code.pageUp : return this.event_up( event )\n\t\t\t\tcase $mol_keyboard_code.pageDown : return this.event_down( event )\n\t\t\t}\n\t\t}\n\t\t\n\t\tevent_up( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_y()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_y = this.index_y();\n\t\t\t\n\t\t\tconst index_old = index_y === null ? 0 : index_y\n\t\t\tconst index_new = ( index_old + keys.length - 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_old === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_y( this.keys_y()[ index_new ] )\n\t\t}\n\t\t\n\t\tevent_down( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_y()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_y = this.index_y();\n\t\t\t\n\t\t\tconst index_old = index_y === null ? keys.length - 1 : index_y;\n\t\t\tconst index_new = ( index_old + 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_new === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_y( this.keys_y()[ index_new ] )\n\t\t}\n\t\t\n\t\tevent_left( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_x()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_x = this.index_x();\n\t\t\t\n\t\t\tconst index_old = index_x === null ? 0 : index_x\n\t\t\tconst index_new = ( index_old + keys.length - 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_old === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_x( this.keys_x()[ index_new ] )\n\t\t}\n\t\t\n\t\tevent_right( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_x()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_x = this.index_x();\n\t\t\t\n\t\t\tconst index_old = index_x === null ? keys.length - 1 : index_x\n\t\t\tconst index_new = ( index_old + 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_new === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_x( this.keys_x()[ index_new ] )\n\t\t}\n\t\t\n\t\tindex_y() {\n\t\t\tlet index = this.keys_y().indexOf( this.current_y() )\n\t\t\tif( index < 0 ) return null\n\t\t\t\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tindex_x() {\n\t\t\tlet index = this.keys_x().indexOf( this.current_x() )\n\t\t\tif( index < 0 ) return null\n\t\t\t\n\t\t\treturn index\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\n}\n","namespace $ {\n\t\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tconst temp = $mol_wire_task.getter( val )\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: any[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\t\tconst fiber = temp( self, args )\n\t\t\t\treturn fiber.sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited\n\t}\n\n\ttype FunctionResultAwaited = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited\n\t\t: Some\n\n\ttype MethodsResultAwaited = {\n\t\t[K in keyof Host]: FunctionResultAwaited\n\t}\n\n\ttype ObjectOrFunctionResultAwaited = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited : {}\n\t) & ( Some extends Object ? MethodsResultAwaited : Some )\n\n}\n","namespace $ {\n\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\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: any ) {\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 as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\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 ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\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\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: BufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\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\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 {\n\t\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\tstatic base = ''\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 | null, virt?: 'virt' ): $mol_file_stat | null\n\n\t\treset(): void {\n\t\t\ttry {\n\t\t\t\tthis.stat( null )\n\t\t\t} catch( error: any ) {\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(): void\n\t\tabstract drop(): void\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 ) {\n\t\t\t\n\t\t\tlet exists = Boolean( this.stat() )\n\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\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 ): Uint8Array\n\n\t\t@ $mol_mem\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tconst now = new Date\n\t\t\t\tthis.stat( {\n\t\t\t\t\ttype: 'file',\n\t\t\t\t\tsize: 0,\n\t\t\t\t\tatime: now,\n\t\t\t\t\tmtime: now,\n\t\t\t\t\tctime: now,\t\t\t\n\t\t\t\t}, 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( undefined ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = next === undefined ? undefined : $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\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 ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\topen( ... modes: readonly ( 'create' | 'exists_truncate' | 'exists_fail' | 'read_only' | 'write_only' | 'read_write' | 'append' )[] ) {\n\t\t\treturn 0\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n export function $mol_compare_array>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\tfunction buffer_normalize(buf: Buffer): Uint8Array {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\t\n\texport enum $mol_file_mode_open {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\t\t\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( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\twatcher() {\n\n\t\t\tconst watcher = $node.chokidar.watch( this.path() , {\n\t\t\t\tpersistent : true ,\n\t\t\t\tignored : /(^\\.|___$)/ ,\n\t\t\t\tdepth : 0 ,\n\t\t\t\tignoreInitial : true ,\n\t\t\t\tawaitWriteFinish: {\n\t\t\t\t\tstabilityThreshold: 100,\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\twatcher\n\t\t\t.on( 'all' , ( type , path )=> {\n\t\t\t\t\n\t\t\t\tconst file = $mol_file.relative( path.replace( /\\\\/g , '/' ) )\n\n\t\t\t\tfile.reset()\n\t\t\t\t\n\t\t\t\tif( type === 'change' ) {\n\t\t\t\t\tthis.stat( null )\n\t\t\t\t} else {\n\t\t\t\t\tfile.parent().reset()\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.on( 'error' , $mol_fail_log )\n\t\t\t\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstat( next? : $mol_file_stat | null, virt?: 'virt' ) {\n\t\t\t\n\t\t\tlet stat = next\n\t\t\tconst path = this.path()\n\n\t\t\tthis.parent().watcher()\n\t\t\t\n\t\t\tif( virt ) return next!\n\t\t\t\n\t\t\ttry {\n\t\t\t\tstat = next ?? stat_convert($node.fs.statSync( path, { throwIfNoEntry: false } ))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (error.code === 'ENOENT') error = new $mol_file_not_found(`File not found`)\n\t\t\t\terror.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(error)\n\t\t\t}\n\n\t\t\treturn stat\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensure() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tdrop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array ) {\n\n\t\t\tconst path = this.path()\n\t\t\tif( next === undefined ) {\n\n\t\t\t\tif( !this.stat() ) return new Uint8Array\n\t\t\t\t\n\t\t\t\ttry {\n\n\t\t\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\t\t\t\n\t\t\t\t\tnext = buffer_normalize( $node.fs.readFileSync( path ) )\n\n\t\t\t\t\tif( prev !== undefined && !$mol_compare_array( prev, next ) ) {\n\t\t\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\t\t\tplace: `$mol_file_node..buffer()`,\n\t\t\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\treturn next\n\n\t\t\t\t} catch( error: any ) {\n\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\t\n\t\t\tconst now = new Date\n\t\t\tthis.stat( {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize: next.length,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t}, 'virt' )\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, next )\n\n\t\t\t} catch( error: any ) {\n\n\t\t\t\terror.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\n\t\t}\n\t\t@ $mol_mem\n\t\tsub() : $mol_file[] {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tconst path = this.path()\n\t\t\tthis.stat()\n\n\t\t\ttry {\n\t\t\t\treturn $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\tresolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file ).relative( $node.path.join( this.path() , path ) )\n\t\t}\n\t\t\n\t\trelate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\t\t\n\t\tappend( next : Uint8Array | string ) {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.appendFileSync( path , next )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\topen( ... modes: readonly ( keyof typeof $mol_file_mode_open )[] ) {\n\t\t\treturn $node.fs.openSync(\n\t\t\t\tthis.path(),\n\t\t\t\tmodes.reduce( ( res, mode )=> res | $mol_file_mode_open[ mode ], 0 ),\n\t\t\t)\n\t\t}\n\n\t}\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './hyoo_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\t/**\n\t * Localisation in $mol framework\n\t * @see https://mol.hyoo.ru/#!section=docs/=s5aqnb_odub8l\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 this.$.$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( this.$.$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: any ) {\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\tconst def = this.lang_default()\n\t\t\t\t\tif( lang === def ) throw error\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ): string {\n\t\t\t\n\t\t\tconst lang = this.lang()\n\n\t\t\tconst target = this.texts( lang )[ key ]\n\t\t\tif( target ) return target\n\t\t\t\n\t\t\tthis.warn( key )\n\t\t\t\n\t\t\tconst en = this.texts( 'en' )[ key ]\n\t\t\tif( !en ) return key\n\t\t\t\n\t\t\t// try {\n\t\t\t// \treturn $mol_wire_sync( $hyoo_lingua_translate ).call( this.$, lang, en )\n\t\t\t// } catch( error ) {\n\t\t\t// \t$mol_fail_log( error )\n\t\t\t// }\n\t\t\t\n\t\t\treturn en\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic warn( key : string ) {\n\t\t\tconsole.warn( `Not translated to \"${ this.lang() }\": ${ key }` )\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_string $mol_view\n\tdom_name \\input\n\tenabled true\n\tminimal_height 40\n\tautocomplete false\n\tselection? /number\n\t\t0\n\t\t0\n\tauto /\n\t\t<= selection_watcher null\n\t\t<= error_report null\n\tfield *\n\t\t^\n\t\tdisabled <= disabled false\n\t\tvalue <= value_changed? <=> value? \\\n\t\tplaceholder <= hint_visible <= hint \\\n\t\tspellcheck <= spellcheck true\n\t\tautocomplete <= autocomplete_native \\\n\t\tselectionEnd <= selection_end 0\n\t\tselectionStart <= selection_start 0\n\t\tinputMode <= keyboard \\text\n\t\tenterkeyhint <= enter \\go\n\tattr *\n\t\t^\n\t\tmaxlength <= length_max +Infinity\n\t\ttype <= type? \\text\n\tevent *\n\t\t^\n\t\tinput?event <=> event_change?event null\n\tplugins /\n\t\t<= Submit $mol_hotkey\n\t\t\tmod_ctrl <= submit_with_ctrl false\n\t\t\tkey * enter?event <=> submit?event null\n","namespace $.$$ {\n\t/**\n\t * An input field for entering single line text.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_string_demo\n\t */\n\texport class $mol_string extends $.$mol_string {\n\t\t\n\t\t@ $mol_action\n\t\tevent_change( next? : Event ) {\n\t\t\tif( !next ) return\n\t\t\tconst el = next.target as HTMLInputElement\n\t\t\tconst from = el.selectionStart\n\t\t\tconst to = el.selectionEnd\n\t\t\ttry {\n\t\t\t\tel.value = this.value_changed( el.value )\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t\tif( to === null ) return \n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\t\t\tthis.selection_change( next )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\terror_report() {\n\t\t\ttry {\n\t\t\t\tif( this.focused() ) this.value()\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thint_visible() {\n\t\t\treturn ( this.enabled() ? this.hint() : '' ) || ' '\n\t\t}\n\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\n\t\tautocomplete_native() {\n\t\t\treturn this.autocomplete() ? 'on' : 'off'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tselection_watcher() {\n\t\t\treturn new $mol_dom_listener(\n\t\t\t\tthis.$.$mol_dom_context.document,\n\t\t\t\t'selectionchange',\n\t\t\t\t$mol_wire_async( event => this.selection_change( event ) ),\n\t\t\t)\n\t\t}\n\t\t\n\t\tselection_change( event: Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el !== this.$.$mol_dom_context.document.activeElement ) return\n\t\t\t\n\t\t\tconst [ from, to ] = this.selection([\n\t\t\t\tel.selectionStart!,\n\t\t\t\tel.selectionEnd!,\n\t\t\t])\n\t\t\t\n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\n\t\t\tif( to !== from && el.selectionEnd === el.selectionStart ) {\n\t\t\t\tel.selectionEnd = to\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tselection_start() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el.selectionStart === null ) return undefined as any as number\n\t\t\treturn this.selection()[0]\n\t\t}\n\n\t\tselection_end() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el.selectionEnd === null ) return undefined as any as number\n\t\t\treturn this.selection()[1]\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/string/string.view.css\",\n \"[mol_string] {\\n\\tbox-sizing: border-box;\\n\\toutline-offset: 0;\\n\\tborder: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\twhite-space: pre-line;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tpadding: var(--mol_gap_text);\\n\\ttext-align: left;\\n\\tposition: relative;\\n\\tfont: inherit;\\n\\tflex: 1 1 auto;\\n\\tbackground: transparent;\\n\\tmin-width: 0;\\n\\tcolor: inherit;\\n\\tbackground: var(--mol_theme_field);\\n}\\n\\n[mol_string]:disabled:not(:placeholder-shown) {\\n\\tbackground-color: transparent;\\n\\tcolor: var(--mol_theme_text);\\n}\\n\\n[mol_string]:where(:not(:disabled)) {\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_line);\\n}\\n\\n[mol_string]:where(:not(:disabled)):hover {\\n\\tbox-shadow: inset 0 0 0 2px var(--mol_theme_line);\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_string]:focus {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n\\tcolor: var(--mol_theme_text);\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_focus);\\n}\\n\\n[mol_string]::placeholder {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_string]::-ms-clear {\\n\\tdisplay: none;\\n}\\n\"\n) }","$mol_svg $mol_view\n\tdom_name \\svg\n\tdom_name_space \\http://www.w3.org/2000/svg\n\tfont_size 16\n\tfont_family \\\n\tstyle_size *\n","namespace $ {\n\t\n\t/** State of time moment */\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic task( precision: number, reset?: null ): $mol_after_timeout | $mol_after_frame {\n\t\t\t\n\t\t\tif( precision ) {\n\t\t\t\treturn new $mol_after_timeout( precision, ()=> this.task( precision, null ) )\n\t\t\t} else {\n\t\t\t\treturn new $mol_after_frame( ()=> this.task( precision, null ) )\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision: number ) {\n\t\t\tthis.task( precision )\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t/** Base SVG component to display SVG images or icons. */\n\texport class $mol_svg extends $.$mol_svg {\n\t\t@$mol_mem\n\t\tcomputed_style() {\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tconst style = win.getComputedStyle(this.dom_node()) as Record\n\n\t\t\tif(!style['font-size']) $mol_state_time.now( 0 )\n\n\t\t\treturn style\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_size(): number {\n\t\t\treturn parseInt(this.computed_style()['font-size']) || 16\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_family() {\n\t\t\treturn this.computed_style()['font-family']\n\t\t}\n\n\t}\n}\n","$mol_svg_root $mol_svg\n\tdom_name \\svg\n\tattr *\n\t\t^\n\t\tviewBox <= view_box \\0 0 100 100\n\t\tpreserveAspectRatio <= aspect \\xMidYMid\n","namespace $ { $mol_style_attach( \"mol/svg/root/root.view.css\",\n \"[mol_svg_root] {\\n\\toverflow: hidden;\\n}\\n\"\n) }","$mol_svg_path $mol_svg\n\tdom_name \\path\n\tattr *\n\t\t^\n\t\td <= geometry \\\n\n","$mol_icon $mol_svg_root\n\tview_box \\0 0 24 24\n\tminimal_width 16\n\tminimal_height 16\n\tsub /\n\t\t<= Path $mol_svg_path\n\t\t\tgeometry <= path \\\n","namespace $ { $mol_style_attach( \"mol/icon/icon.view.css\",\n \"[mol_icon] {\\n\\tfill: currentColor;\\n\\tstroke: none;\\n\\twidth: 1em;\\n\\theight: 1.5em;\\n\\tflex: 0 0 auto;\\n\\tvertical-align: top;\\n\\tdisplay: inline-block;\\n\\tfilter: drop-shadow(0px 1px 1px var(--mol_theme_back));\\n\\ttransform-origin: center;\\n}\\n\\n[mol_icon_path] {\\n\\ttransform-origin: center;\\n}\\n\"\n) }","$mol_icon_cross $mol_icon path \\M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z\n","$mol_speck $mol_view\n\tattr *\n\t\t^\n\t\tmol_theme <= theme \\$mol_theme_accent\n\tstyle *\n\t\t^\n\t\tminHeight \\1em\n\tsub /\n\t\t<= value null\n","namespace $ { $mol_style_attach( \"mol/speck/speck.view.css\",\n \"[mol_speck] {\\n\\tfont-size: .625rem;\\n\\tborder-radius: 1rem;\\n\\tmargin: -0.5rem -0.25rem;\\n\\talign-self: flex-start;\\n\\tmin-height: 1em;\\n\\tmin-width: .5em;\\n\\tvertical-align: sub;\\n\\tpadding: .25em .5em;\\n\\tposition: absolute;\\n\\tz-index: var(--mol_layer_speck);\\n\\ttext-align: center;\\n\\tline-height: 1;\\n\\tdisplay: inline-block;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tuser-select: none;\\n}\\n\"\n) }","$mol_button $mol_view\n\tenabled true\n\tclick?event null\n\tevent_click?event null\n\tevent *\n\t\t^\n\t\tclick?event <=> event_activate?event null\n\t\tdblclick?event <=> clicks?event null\n\t\tkeydown?event <=> event_key_press?event null \n\tattr *\n\t\t^\n\t\tdisabled <= disabled false\n\t\trole \\button\n\t\ttabindex <= tab_index 0\n\t\ttitle <= hint_safe <= hint \\\n\tsub /$mol_view_content\n\t\t<= title\n\tSpeck $mol_speck\n\t\tvalue <= error \\\n","namespace $.$$ {\n\t\n\t/**\n\t * Simple button.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_button_demo\n\t */\n\texport class $mol_button extends $.$mol_button {\n\n\t\t@ $mol_mem\n\t\tstatus( next = [ null as any ] ) { return next }\n\t\t\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\t\t\n\t\tevent_activate( next : Event ) {\n\t\t\t\n\t\t\tif( !next ) return\n\t\t\tif( !this.enabled() ) return\n\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tthis.event_click( next )\n\t\t\t\tthis.click( next )\n\t\t\t\tthis.status([ null ])\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tPromise.resolve().then( ()=> this.status([ error ]) )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tevent_key_press ( event: KeyboardEvent ) { \n\t\t\tif( event.keyCode === $mol_keyboard_code.enter ) {\n\t\t\t\treturn this.event_activate( event )\n\t\t\t}\n\t\t} \n\t\t\n\t\ttab_index() {\n\t\t\treturn this.enabled() ? super.tab_index() : -1\n\t\t}\n\n\t\terror() {\n\n\t\t\tconst [ error ] = this.status()\n\t\t\tif( !error ) return ''\n\n\t\t\tif( error instanceof Promise ) {\n\t\t\t\treturn $mol_fail_hidden( error )\n\t\t\t}\n\t\t\t\n\t\t\treturn String( error.message ?? error )\n\n\t\t}\n\t\t\n\t\thint_safe() {\n\t\t\ttry {\n\t\t\t\treturn this.hint()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn ''\n\t\t\t}\n\t\t}\n\n\t\tsub_visible() {\n\t\t\treturn [\n\t\t\t\t... this.error() ? [ this.Speck() ] : [] ,\n\t\t\t\t... this.sub() ,\n\t\t\t]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/button/button.view.css\",\n \"[mol_button] {\\n\\tborder: none;\\n\\tfont: inherit;\\n\\tdisplay: inline-flex;\\n\\tflex-shrink: 0;\\n\\ttext-decoration: inherit;\\n\\tcursor: inherit;\\n\\tposition: relative;\\n\\tbox-sizing: border-box;\\n\\tword-break: normal;\\n\\tcursor: default;\\n\\tuser-select: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\tbackground: transparent;\\n\\tcolor: inherit;\\n}\\n\\n[mol_button]:where(:not(:disabled)):hover {\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_button]:focus-visible {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n}\\n\"\n) }","$mol_button_typed $mol_button\n\tminimal_height 40\n\tminimal_width 40\n","namespace $ { $mol_style_attach( \"mol/button/typed/typed.view.css\",\n \"[mol_button_typed] {\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tpadding: var(--mol_gap_text);\\n\\tborder-radius: var(--mol_gap_round);\\n\\tgap: var(--mol_gap_space);\\n\\tuser-select: none;\\n\\tcursor: pointer;\\n}\\n\\n[mol_button_typed][disabled] {\\n\\tpointer-events: none;\\n}\\n\\n[mol_button_typed]:hover ,\\n[mol_button_typed]:focus-visible {\\n\\tbox-shadow: inset 0 0 0 10rem var(--mol_theme_hover);\\n}\\n\\n[mol_button_typed]:active {\\n\\tcolor: var(--mol_theme_focus);\\n}\\n\\n\"\n) }","$mol_button_minor $mol_button_typed\n","namespace $ { $mol_style_attach( \"mol/button/minor/minor.view.css\",\n \"[mol_button_minor] {\\n\\tcolor: var(--mol_theme_control);\\n}\\n\\n[mol_button_minor][disabled] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\"\n) }","$mol_list $mol_view\n\trender_visible_only true\n\trender_over 0\n\tsub <= rows /$mol_view\n\tEmpty $mol_view\n\tGap_before $mol_view style * paddingTop <= gap_before 0\n\tGap_after $mol_view style * paddingTop <= gap_after 0\n\tview_window /\n\t\t0\n\t\t0\n","namespace $ {\n\n\tlet cache = null as null | boolean\n\texport function $mol_support_css_overflow_anchor( this: $ ) {\n\t\treturn cache ?? (\n\t\t\tcache = this.$mol_dom_context.CSS?.supports( 'overflow-anchor:auto' ) ?? false\n\t\t)\n\t}\n\n}\n","namespace $.$$ {\n\n\t/**\n\t * The list of rows with lazy/virtual rendering support based on `minimal_height` of rows.\n\t * `mol_list` should contain only components that inherits `mol_view`. You should not place raw strings or numbers in list.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_list_demo\n\t */\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( next?: [ number , number ] ) : [ 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\tconst rect = this.view_rect()\n\t\t\tif( next ) return next\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 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\t\t\t\t\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\t\t\t\n\t\t\t// force recalc min when overlapse top limit\n\t\t\tif( anchoring && ( top < limit_top ) && ( bottom < limit_bottom ) && ( max < kids.length ) ) {\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 ) && ( top > limit_top ) && ( min > 0 ) ) {\n\t\t\t\tmax2 = min\n\t\t\t\tbottom2 = top\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\t\t\t\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\t\t\t\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\t\t\treturn [\n\t\t\t\t... this.gap_before() ? [ this.Gap_before() ] : [],\n\t\t\t\t... this.sub().slice( ... this.view_window() ),\n\t\t\t\t... this.gap_after() ? [ this.Gap_after() ] : [],\n\t\t\t]\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\t\t\t\t\treturn sum + view.minimal_height() \n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\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\tthis.view_window([ this.render_visible_only() ? index : 0, 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 $ { $mol_style_attach( \"mol/list/list.view.css\",\n \"[mol_list] {\\n\\twill-change: contents;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\tmax-width: 100%;\\n\\t/* display: flex;\\n\\talign-items: stretch;\\n\\talign-content: stretch; */\\n\\ttransition: none;\\n\\tmin-height: 1.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_paragraph $mol_view\n\tline_height 24\n\tletter_width 7\n\twidth_limit +Infinity\n\trow_width 0\n\tsub / <= title\n","namespace $.$$ {\n\n\texport class $mol_paragraph extends $.$mol_paragraph {\n\n\t\t@ $mol_mem\n\t\tmaximal_width() {\n\n\t\t\tlet width = 0\n\t\t\tconst letter = this.letter_width()\n\t\t\t\n\t\t\tfor( const kid of this.sub() ) {\n\t\t\t\t\n\t\t\t\tif( !kid ) continue\n\t\t\t\t\n\t\t\t\tif( kid instanceof $mol_view ) {\n\t\t\t\t\twidth += kid.maximal_width()\n\t\t\t\t} else if( typeof kid !== 'object' ) {\n\t\t\t\t\twidth += String( kid ).length * letter\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\treturn width\n\n\t\t}\n\n\t\twidth_limit() {\n\t\t\treturn this.$.$mol_window.size().width\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.letter_width()\n\t\t}\n\n\t\t@ $mol_mem\n\t\trow_width() {\n\t\t\treturn Math.max( Math.min( this.width_limit() , this.maximal_width() ) , this.letter_width() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\treturn Math.max( 1 , Math.ceil( this.maximal_width() / this.row_width() ) ) * this.line_height()\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/paragraph/paragraph.view.css\",\n \":where([mol_paragraph]) {\\n\\tmargin: 0;\\n\\tmax-width: 100%;\\n}\\n\"\n) }","$mol_dimmer $mol_paragraph\n\thaystack \\\n\tneedle \\\n\tsub <= parts /$mol_view_content\n\tLow* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n\tHigh* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): IterableIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\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\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\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 null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\n\t/**\n\t * Output text with dimmed mismatched substrings.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_dimmer_demo\n\t */\n\texport class $mol_dimmer extends $.$mol_dimmer {\n\t\t\n\t\tparts() {\n\t\t\tconst needle = this.needle()\n\t\t\tif( needle.length < 2 ) return [ this.haystack() ]\n\t\t\t\n\t\t\tlet chunks : any[] = []\n\t\t\tlet strings = this.strings()\n\t\t\t\n\t\t\tfor( let index = 0 ; index < strings.length ; index++ ) {\n\t\t\t\tif( strings[ index ] === '' ) continue\n\t\t\t\t\n\t\t\t\tchunks.push( ( index % 2 ) ? this.High( index ) : this.Low( index ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstrings() {\n\t\t\t\n\t\t\tconst options = this.needle().split( /\\s+/g ).filter( Boolean )\n\t\t\tif( !options.length ) return [ this.haystack() ]\n\t\t\t\n\t\t\tconst variants = { ... options } as Record< number, string >\n\t\t\tconst regexp = $mol_regexp.from( { needle: variants } , { ignoreCase: true } )\n\t\t\t\n\t\t\treturn this.haystack().split( regexp )\n\t\t}\n\t\t\n\t\tstring( index: number ) {\n\t\t\treturn this.strings()[ index ]\n\t\t}\n\t\t\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, this.haystack() ) ) {\n\t\t\t\tyield [ ... path, this ]\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/dimmer/dimmer.view.css\",\n \"[mol_dimmer] {\\n\\tdisplay: block;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_dimmer_low] {\\n\\tdisplay: inline;\\n\\topacity: 0.8;\\n}\\n\\n[mol_dimmer_high] {\\n\\tdisplay: inline;\\n\\tcolor: var(--mol_theme_focus);\\n\\ttext-shadow: 0 0;\\n}\\n\"\n) }","$mol_search $mol_pop\n\tquery? \\\n\tsuggests /string\n\tplugins /$mol_plugin\n\t\t^\n\t\t<= Hotkey $mol_hotkey\n\t\t\tkey * escape? <=> clear? null\n\t\t<= Nav $mol_nav\n\t\t\tkeys_y <= nav_components /$mol_view\n\t\t\tcurrent_y?component <=> nav_focused?component null\n\tshowed? <=> suggests_showed? false\n\talign_hor \\right\n\tAnchor $mol_view\n\t\tsub <= anchor_content /\n\t\t\t<= Query $mol_string\n\t\t\t\tvalue? <=> query? \\\n\t\t\t\thint <= hint @ \\Search...\n\t\t\t\tsubmit?event <=> submit?event null\n\t\t\t\tenabled <= enabled true\n\t\t\t\tkeyboard <= keyboard \\search\n\t\t\t\tenter <= enter \\search\n\t\t\t\tbring => bring\n\t\t\t<= Clear $mol_button_minor\n\t\t\t\thint @ \\Clear\n\t\t\t\tclick?event <=> clear?event null\n\t\t\t\tsub /\n\t\t\t\t\t<= Clear_icon $mol_icon_cross\n\tbubble_content /$mol_view_content\n\t\t<= Menu $mol_list\n\t\t\trows <= menu_items /$mol_view\n\tSuggest* $mol_button_minor\n\t\tclick?event <=> suggest_select*?event null\n\t\tsub <= suggest_content* /$mol_view_content\n\t\t\t<= Suggest_label* $mol_dimmer\n\t\t\t\thaystack <= suggest_label* \\\n\t\t\t\tneedle <= query? \\\n","\n\t\t()\n\t\t\tthis\n\t\t\t[] \\$\n\t\t\t[] \\$mol_locale\n\t\t\t[] \\text\n\t\t\t(,) #key\n\t","namespace $.$$ {\n\t\n\t/**\n\t * Search input with suggest and clear button.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_search_demo\n\t */\n\texport class $mol_search extends $.$mol_search {\n\t\t\n\t\t@ $mol_mem\n\t\tanchor_content() {\n\t\t\treturn [\n\t\t\t\tthis.Query(),\n\t\t\t\t... this.query() ? [ this.Clear() ] : [],\n\t\t\t]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsuggests_showed( next = true ) {\n\t\t\t\n\t\t\tthis.query()\n\t\t\t\n\t\t\tif( !this.focused() ) return false\n\n\t\t\treturn next\n\t\t}\n\n\t\tsuggest_selected( next? : string ) {\n\t\t\t\n\t\t\tif( next === undefined ) return\n\t\t\t\n\t\t\tthis.query( next )\n\t\t\tthis.Query().focused( true )\n\t\t\t\n\t\t}\n\t\t\n\t\tnav_components() {\n\t\t\treturn [\n\t\t\t\tthis.Query(),\n\t\t\t\t... this.menu_items(),\n\t\t\t]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tnav_focused( component? : $mol_view ) {\n\t\t\t\n\t\t\tif( !this.focused() ) return null\n\t\t\t\n\t\t\tif( component == null ) {\n\t\t\t\t\n\t\t\t\tfor( let comp of this.nav_components() ) {\n\t\t\t\t\tif( comp && comp.focused() ) return comp\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tif( this.suggests_showed() ) {\n\t\t\t\tthis.ensure_visible( component, \"center\" )\n\t\t\t\tcomponent.focused( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn component\n\t\t}\n\t\t\n\t\tsuggest_label( key: string ) {\n\t\t\treturn key\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmenu_items() {\n\t\t\treturn this.suggests().map( ( suggest : string ) => this.Suggest( suggest ) )\n\t\t}\n\t\t\n\t\tsuggest_select( id : string , event? : MouseEvent ) {\n\t\t\tthis.query( id )\n\t\t\tthis.Query().selection([ id.length, id.length ])\n\t\t\tthis.Query().focused( true )\n\t\t}\n\t\t\n\t\tclear( event? : Event ) {\n\t\t\tthis.query( '' )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/search/search.view.css\",\n \"[mol_search] {\\n\\talign-self: flex-start;\\n\\tflex: auto;\\n}\\n\\n[mol_search_anchor] {\\n\\tflex: 1 1 auto;\\n}\\n\\n[mol_search_query] {\\n\\tflex-grow: 1;\\n}\\n\\n[mol_search_menu] {\\n\\tmin-height: .75rem;\\n\\tdisplay: flex;\\n}\\n\\n[mol_search_suggest] {\\n\\ttext-align: left;\\n}\\n\\n[mol_search_suggest_label_high] {\\n\\tcolor: var(--mol_theme_shade);\\n\\ttext-shadow: none;\\n}\\n\"\n) }","$mol_link $mol_view\n\turi \\\n\tdom_name \\a\n\turi_off \\\n\turi_native null\n\texternal false\n\tattr *\n\t\t^\n\t\thref <= uri_toggle \\\n\t\ttitle <= hint_safe <= hint \\\n\t\ttarget <= target \\_self\n\t\tdownload <= file_name \\\n\t\tmol_link_current <= current false\n\t\trel <= relation \\\n\tsub /$mol_view_content\n\t\t<= title\n\targ *\n\tevent *\n\t\t^\n\t\tclick?event <=> click?event <=> event_click?event null\n","namespace $ {\n\n\t/** State of arguments like `foo=bar xxx` */\n\texport class $mol_state_arg extends $mol_object {\n\t\t\n\t\tstatic prolog = ''\n\t\tstatic separator = ' '\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href( next? : string ) {\n\t\t\treturn next || process.argv.slice( 2 ).join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href_normal() {\n\t\t\treturn this.link({})\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dict( next? : { [ key : string ] : string | null } ) {\n\t\t\tif( next !== void 0 ) this.href( this.make_link( next ) )\n\t\t\t\n\t\t\tvar href = this.href()\n\t\t\tvar chunks = href.split( ' ' )\n\t\t\t\n\t\t\tvar params : { [ key : string ] : string } = {}\n\t\t\tchunks.forEach(\n\t\t\t\tchunk => {\n\t\t\t\t\tif( !chunk ) return\n\t\t\t\t\tvar vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join('=')\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn params as Readonly< typeof params >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value( key : string , next? : string | null ) {\n\t\t\tif( next === void 0 ) return this.dict()[ key ] ?? null\n\t\t\tthis.href( this.link( { [ key ] : next } ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic link( next : Record ) {\n\t\t\tconst params : Record = {}\n\t\t\t\n\t\t\tvar prev = this.dict()\n\t\t\tfor( var key in prev ) {\n\t\t\t\tparams[ key ] = prev[ key ]\n\t\t\t}\n\t\t\t\n\t\t\tfor( var key in next ) {\n\t\t\t\tparams[ key ] = next[ key ]\n\t\t\t}\n\t\t\t\n\t\t\treturn this.make_link( params )\n\t\t}\n\t\t\n\t\tstatic make_link( next : Record) {\n\t\t\tconst chunks : string[] = []\n\t\t\tfor( const key in next ) {\n\t\t\t\tif( next[ key ] !== null ) {\n\t\t\t\t\tchunks.push([key, next[key]!].map(encodeURIComponent).join('='))\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks.join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\tthis.href( this.make_link( next ) )\n\t\t}\n\t\t\n\t\tconstructor( public prefix = '' ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tvalue( key : string , next? : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).value( this.prefix + key , next )\n\t\t}\n\t\t\n\t\tsub( postfix : string ) {\n\t\t\treturn new ( this.constructor as typeof $mol_state_arg )( this.prefix + postfix + '.' )\n\t\t}\n\t\t\n\t\tlink( next : Record ) {\n\t\t\tconst prefix = this.prefix\n\t\t\tconst dict : Record = {}\n\t\t\tfor( var key in next ) {\n\t\t\t\tdict[ prefix + key ] = next[ key ]\n\t\t\t}\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).link( dict )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Dynamic hyperlink. It can add, change or remove parameters. A link that leads to the current page has [mol_link_current] attribute set to true.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_link_demo\n\t */\n\texport class $mol_link extends $.$mol_link {\n\t\t\n\t\t@ $mol_mem\n\t\turi_toggle() {\n\t\t\treturn this.current() ? this.uri_off() : this.uri()\n\t\t}\n\n\t\t@ $mol_mem\n\t\turi() {\n\t\t\treturn new this.$.$mol_state_arg( this.state_key() ).link( this.arg() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\turi_off() {\n\t\t\tconst arg2: Record = {}\n\t\t\tfor( let i in this.arg() ) arg2[i] = null\n\t\t\t\n\t\t\treturn new this.$.$mol_state_arg( this.state_key() ).link( arg2 )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi_native() {\n\t\t\tconst base = this.$.$mol_state_arg.href()\n\t\t\treturn new URL( this.uri() , base )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tcurrent() {\n\n\t\t\tconst base = this.$.$mol_state_arg.href_normal()\n\t\t\tconst target = this.uri_native().toString()\n\n\t\t\tif( base === target ) return true\n\t\t\t\n\t\t\tconst args = this.arg() as Record\n\t\t\t\n\t\t\tconst keys = Object.keys( args ).filter( key => args[ key ] != null )\n\t\t\tif( keys.length === 0 ) return false\n\n\t\t\tfor( const key of keys ) {\n\t\t\t\tif( this.$.$mol_state_arg.value( key ) != args[ key ] ) return false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\tfile_name() {\n\t\t\treturn null as unknown as string\n\t\t}\n\n\t\tminimal_height() {\n\t\t\treturn Math.max( super.minimal_height(), 24 )\n\t\t}\n\t\t\n\t\texternal() {\n\t\t\treturn this.uri_native().origin !== $mol_dom_context.location.origin\n\t\t}\n\t\t\n\t\ttarget(): '_self' | '_blank' | '_top' | '_parent' | string {\n\t\t\treturn this.external() ? '_blank' : '_self'\n\t\t}\n\n\t\thint_safe() {\n\t\t\ttry {\n\t\t\t\treturn this.hint()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn ''\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst { rem } = $mol_style_unit\n\n\t$mol_style_define( $mol_link , {\n\t\t\n\t\ttextDecoration: 'none',\n\t\tcolor: $mol_theme.control,\n\t\tstroke: 'currentcolor',\n\t\tcursor: 'pointer',\n\t\tpadding: $mol_gap.text,\n\t\tboxSizing: 'border-box',\n\t\tposition: 'relative',\n\t\tminWidth: rem(2.5),\n\t\tgap: $mol_gap.space,\n\t\t\n\t\tborder: {\n\t\t\tradius: $mol_gap.round,\n\t\t},\n\n\t\t':hover': {\n\t\t\t\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.hover,\n\t\t\t},\n\t\t\t\n\t\t},\n\n\t\t':focus-visible': {\n\t\t\t\n\t\t\toutline: 'none',\n\t\t\t\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.hover,\n\t\t\t},\n\t\t\t\n\t\t},\n\n\t\t// ':has(:focus-visible)': {\n\t\t// \toutline: 'none',\n\t\t// \tbackground: {\n\t\t// \t\tcolor: $mol_theme.hover,\n\t\t// \t}\n\t\t// },\n\t\t\n\t\t':active': {\n\t\t\tcolor: $mol_theme.focus,\n\t\t},\n\n\t\t'@': {\n\t\t\tmol_link_current: {\n\t\t\t\t'true': {\n\t\t\t\t\tcolor: $mol_theme.current,\n\t\t\t\t\ttextShadow: '0 0',\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\n\t} )\n\n}\n","$mol_page $mol_view\n\tdom_name \\article\n\tfield *\n\t\t^\n\t\ttabIndex <= tabindex -1\n\tsub /\n\t\t<= Head $mol_view\n\t\t\tminimal_height 64\n\t\t\tdom_name \\header\n\t\t\tsub <= head /\n\t\t\t\t<= Title $mol_view\n\t\t\t\t\tdom_name \\h1\n\t\t\t\t\tsub <= title_content /\n\t\t\t\t\t\t<= Logo null\n\t\t\t\t\t\t<= title\n\t\t\t\t<= Tools $mol_view\n\t\t\t\t\tsub <= tools /$mol_view_content\n\t\t<= Body $mol_scroll\n\t\t\tscroll_top? => body_scroll_top?\n\t\t\tsub <= body_content /\n\t\t\t\t<= Body_content $mol_view\n\t\t\t\t\tsub <= body /$mol_view\n\t\t<= Foot $mol_view\n\t\t\tdom_name \\footer\n\t\t\tsub <= foot /$mol_view\n","namespace $.$$ {\n\n\tconst { per , rem } = $mol_style_unit\n\tconst { hsla } = $mol_style_func\n\n\t$mol_style_define( $mol_page , {\n\n\t\tdisplay: 'flex' ,\n\t\tflex: {\n\t\t\tbasis: 'auto' ,\n\t\t\tdirection: 'column' ,\n\t\t},\n\t\tposition: 'relative' ,\n\t\talignSelf: 'stretch' ,\n\t\tmaxWidth: per(100) ,\n\t\tmaxHeight: per(100) ,\n\t\tboxSizing: 'border-box' ,\n\t\tcolor: $mol_theme.text ,\n\t\t// zIndex: 0 ,\n\t\t\n\t\t':focus': {\n\t\t\toutline: 'none',\n\t\t} ,\n\n\t\tHead: {\n\t\t\tdisplay: 'flex' ,\n\t\t\tflexWrap: 'wrap' ,\n\t\t\tjustifyContent: 'flex-end' ,\n\t\t\tflex: 'none',\n\t\t\tposition: 'relative' ,\n\t\t\tmargin: 0 ,\n\t\t\tminHeight: rem(4),\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [[ 0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ]],\n\t\t\t},\n\t\t\tzIndex: 2,\n\t\t},\n\n\t\tTitle: {\n\n\t\t\tminHeight: rem(2),\n\t\t\tmargin: 0,\n\t\t\tpadding: $mol_gap.text,\n\t\t\tgap: $mol_gap.text,\n\t\t\twordBreak: 'normal',\n\t\t\ttextShadow: '0 0',\n\n\t\t\tfont: {\n\t\t\t\tsize: 'inherit',\n\t\t\t\tweight: 'normal',\n\t\t\t},\n\t\n\t\t\tflex: {\n\t\t\t\tgrow: 1,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: 'auto',\n\t\t\t},\n\n\t\t},\n\n\t\tTools: {\n\t\t\t\n\t\t\tflex: {\n\t\t\t\tbasis: 'auto',\n\t\t\t\tgrow: 1000,\n\t\t\t\tshrink: 1,\n\t\t\t},\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'flex-end',\n\t\t\talignItems: 'flex-start',\n\t\t\tflexWrap: 'wrap',\n\n\t\t},\n\n\t\tBody: {\n\t\t\tflex: {\n\t\t\t\tgrow: 1000,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: per(100),\n\t\t\t},\n\t\t},\n\t\t\n\t\tBody_content: {\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tflex: {\n\t\t\t\tdirection: 'column',\n\t\t\t\tshrink: 1,\n\t\t\t\tgrow: 1,\n\t\t\t},\n\t\t\tjustify: {\n\t\t\t\tself: 'stretch',\n\t\t\t},\n\t\t},\n\t\t\n\t\tFoot: {\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'space-between',\n\t\t\tflex: 'none',\n\t\t\tmargin: 0,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [[ 0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ]],\n\t\t\t},\n\t\t\tzIndex: 1,\n\t\t\tpadding: $mol_gap.block ,\n\t\t\t':empty': {\n\t\t\t\tdisplay: 'none',\n\t\t\t},\n\t\t},\t\n\n\t} )\n\t\n}\n","$mol_book2_catalog $mol_book2\n\tparam \\\n\tspread? \\\n\tspreads *\n\tSpread* $mol_view\n\tSpread_default null\n\tspread_ids /string\n\tmenu_filter_enabled false\n\tspread_ids_filtered /string\n\tmenu_tools /\n\taddon_tools /\n\tpages /\n\t\t<= Menu $mol_page\n\t\t\tTitle => Menu_title\n\t\t\ttitle <= menu_title \\\n\t\t\tTools => Menu_tools\n\t\t\tLogo <= Menu_logo null\n\t\t\ttools /\n\t\t\t\t^ menu_tools\n\t\t\t\t^ addon_tools\n\t\t\thead <= menu_head /\n\t\t\t\t<= Menu_title\n\t\t\t\t<= Menu_tools\n\t\t\tbody <= menu_body /\n\t\t\t\t<= Menu_filter $mol_search\n\t\t\t\t\tquery? <=> menu_filter? \\\n\t\t\t\t<= Menu_links $mol_list\n\t\t\t\t\trows <= menu_links /\n\t\t\t\t\t\t<= Menu_link*0 $mol_link\n\t\t\t\t\t\t\targ <= arg* *\n\t\t\t\t\t\t\tsub <= menu_link_content* /\n\t\t\t\t\t\t\t\t<= Menu_link_title* $mol_dimmer\n\t\t\t\t\t\t\t\t\tneedle <= menu_filter\n\t\t\t\t\t\t\t\t\thaystack <= spread_title* \\\n\t\t\tfoot <= menu_foot /\n\tSpread_close $mol_link\n\t\targ <= spread_close_arg *\n\t\tsub /\n\t\t\t<= Spread_close_icon $mol_icon_cross\n","namespace $ {\n\n\texport function $mol_match_text< Variant >( query : string , values : ( variant : Variant )=> string[] ) {\n\t\tconst tags = query.toLowerCase().trim().split( /\\s+/ ).filter( tag => tag )\n\n\t\tif( tags.length === 0 ) return ()=> true\n\t\t\n\t\treturn ( variant : Variant )=> {\n\t\t\tconst vals = values( variant )\n\t\t\treturn tags.every( tag => vals.some( val => val.toLowerCase().indexOf( tag ) >= 0 ) )\n\t\t}\n\t}\n\n}\n","namespace $.$$ {\n\n\t/**\n\t * Variant of [mol_book2](../book2.view.ts) which draws menu in side bar on opens one of taken spreads.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_book2_catalog_demo\n\t */\n\texport class $mol_book2_catalog extends $.$mol_book2_catalog {\n\t\t\n\t\t@ $mol_mem\n\t\tpages() {\n\t\t\tconst spread = this.spread() === '' ? this.Spread_default() : this.Spread(this.spread())\n\t\t\treturn [\n\t\t\t\tthis.Menu(),\n\t\t\t\t... spread\n\t\t\t\t\t? spread instanceof $mol_book2\n\t\t\t\t\t\t? spread.pages()\n\t\t\t\t\t\t: [ spread ]\n\t\t\t\t\t: [],\n\t\t\t]\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride spread_ids(): readonly string[] {\n\t\t\treturn Object.keys( this.spreads() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\toverride menu_body() {\n\t\t\treturn [\n\t\t\t\t... this.menu_filter_enabled() ? [ this.Menu_filter() ] : [],\n\t\t\t\tthis.Menu_links(),\n\t\t\t]\n\t\t}\n\n\t\toverride menu_filter_enabled() {\n\t\t\treturn this.spread_ids().length >= 10\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\toverride menu_links() {\n\t\t\treturn this.spread_ids_filtered()\n\t\t\t\t.map( spread => this.Menu_link( spread ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride spread_ids_filtered() {\n\t\t\treturn this.spread_ids()\n\t\t\t\t.filter( $mol_match_text( this.menu_filter(), spread => [ this.spread_title( spread ) ] ) )\n\t\t}\n\t\t\n\t\toverride Spread(id: string): $mol_view {\n\t\t\treturn this.spreads()[ id ]\n\t\t}\n\n\t\toverride Spread_default() {\n\t\t\treturn this.spreads()['']\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\toverride spread( next?: string ) {\n\t\t\treturn this.$.$mol_state_arg.value( this.param(), next ) ?? ''\n\t\t}\n\t\t\n\t\toverride arg( spread: string ) {\n\t\t\treturn { [ this.param() ]: spread || null }\n\t\t}\n\t\t\n\t\toverride spread_close_arg() {\n\t\t\treturn { [ this.param() ]: null }\n\t\t}\n\t\t\n\t\toverride spread_title( spread: string ) {\n\t\t\tconst page = this.Spread( spread )\n\t\t\treturn page instanceof $mol_book2\n\t\t\t\t&& page.menu_title()\n\t\t\t\t|| page.title()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/book2/catalog/catalog.view.css\",\n \"[mol_book2_catalog_menu_filter] {\\n\\tflex-shrink: 0;\\n\\tflex-grow: 0;\\n\\talign-self: stretch;\\n}\\n\\n\"\n) }","$mol_icon_plus $mol_icon path \\M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\n","namespace $ {\n\t\n\texport enum $hyoo_crus_part {\n\t\t\n\t\t/** Land header for the following parts. */\n\t\tland = 0b1101_1011,\n\t\t\n\t\t/** Public key. First writes wins. */\n\t\tpass = 0b1111_1111,\n\t\t/** Rights/Keys sharing. Last writes wins. */\n\t\tgift = 0b1111_0111,\n\t\t/** Changable data. Last writes wins. */\n\t\tgist = 0b0000_0000,\n\t\t\n\t\t/** Blob request. */\n\t\thash = 0b1111_1101,\n\t\t/** Blob response. */\n\t\trock = 0b1111_0101,\n\t\t\n\t\t/** B+Tree root bucket. */\n\t\troot = 0b0000_0001,\n\t\t\n\t\t/** B+Tree branch bucket. */\n\t\tbuck = 0b0000_1001,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_base64_encode(src: string | Uint8Array): string {\n\t\tthrow new Error('Not implemented')\n\t}\n}\n","namespace $ {\n\n\texport function $mol_base64_encode_node(str: string | Uint8Array): string {\n\t\tif (! str) return ''\n\t\tif (Buffer.isBuffer(str)) return str.toString('base64')\n\n\t\treturn Buffer.from(str).toString('base64')\n\t}\n\n\t$.$mol_base64_encode = $mol_base64_encode_node\n}\n","namespace $ {\n\texport function $mol_base64_decode(base64: string): Uint8Array {\n\t\tthrow new Error('Not implemented')\n\t}\n}\n","namespace $ {\n\texport function $mol_base64_decode_node(base64Str: string): Uint8Array {\n\t\t\n\t\tbase64Str = base64Str.replace( /-/g, '+' ).replace( /_/g, '/' )\n\t\t\n\t\t// without Uint8Array breaks $mol_compare_deep\n\t\tconst buffer = Buffer.from(base64Str, 'base64')\n\n\t\treturn new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\t}\n\n\t$.$mol_base64_decode = $mol_base64_decode_node\n}\n","namespace $ {\n\t\n\texport function $mol_base64_ae_encode( buffer: Uint8Array ) {\n\t\treturn $mol_base64_encode( buffer ).replace( /\\+/g, 'æ' ).replace( /\\//g, 'Æ' ).replace( /=/g, '' )\n\t}\n\t\n\texport function $mol_base64_ae_decode( str: string ) {\n\t\treturn $mol_base64_decode( str.replace( /æ/g, '+' ).replace( /Æ/g, '/' ) )\n\t}\n\t\n}\n","namespace $ {\n\texport class $mol_buffer extends DataView {\n\t\t\n\t\tstatic from<\n\t\t\tThis extends typeof $mol_buffer\n\t\t>(\n\t\t\tthis: This,\n\t\t\tarray: number | string | ArrayBufferView,\n\t\t) {\n\t\t\tif( typeof array === 'number' ) array = new Uint8Array( array )\n\t\t\tif( typeof array === 'string' ) array = $mol_base64_ae_decode( array )\n\t\t\treturn new this( array.buffer, array.byteOffset, array.byteLength ) as InstanceType< This >\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tgetUint48( offset: number, LE = false ) {\n\t\t\tif( offset % 4 ) {\n\t\t\t\treturn this.getUint16( offset, LE ) + this.getUint32( offset + 2, LE ) * 2**16\n\t\t\t} else {\n\t\t\t\treturn this.getUint32( offset, LE ) + this.getUint16( offset + 4, LE ) * 2**32\n\t\t\t}\n\t\t}\n\t\t\n\t\tsetUint48( offset: number, value: number, LE = false ) {\n\t\t\tif( offset % 4 ) {\n\t\t\t\tthis.setUint16( offset, value & ( (1<<16) - 1 ), LE )\n\t\t\t\tthis.setUint32( offset + 2, ( value / 2**16 )|0, LE )\n\t\t\t} else {\n\t\t\t\tthis.setUint32( offset, value |0, LE )\n\t\t\t\tthis.setUint16( offset + 4, ( value / 2**32 )|0, LE )\n\t\t\t}\n\t\t}\n\t\t\n\t\tint8( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt8( offset )\n\t\t\tif( next >= -(2**7) && next < 2**7 ) return this.setInt8( offset, next ), next\n\t\t\t$mol_fail( new Error( `Wrong int8 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint8( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint8( offset )\n\t\t\tif( next >= 0 && next < 2**8 ) return this.setUint8( offset, next ), next\n\t\t\t$mol_fail( new Error( `Wrong uint8 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tint16( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt16( offset, !!'LE' )\n\t\t\tif( next >= -(2**15) && next < 2**15 ) return this.setInt16( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong int16 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint16( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint16( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**16 ) return this.setUint16( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint16 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tint32( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt32( offset, !!'LE' )\n\t\t\tif( next >= -(2**31) && next < 2**31 ) return this.setInt32( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong int32 value ${ next }` ) )\n\t\t}\n\t\n\t\tuint32( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint32( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**32 ) return this.setUint32( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint32 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint48( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint48( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**48 ) return this.setUint48( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint48 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tint64( offset: number, next?: bigint ) {\n\t\t\tif( next === undefined ) return this.getBigInt64( offset, !!'LE' )\n\t\t\tif( next >= -(2**63) && next < 2**63 ) return this.setBigInt64( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong int64 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint64( offset: number, next?: bigint ) {\n\t\t\tif( next === undefined ) return this.getBigUint64( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**64 ) return this.setBigUint64( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint64 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tfloat32( offset: number, next?: number ) {\n\t\t\tif( next !== undefined ) this.setFloat32( offset, next, !!'LE' )\n\t\t\treturn this.getFloat32( offset, !!'LE' )\n\t\t}\n\t\t\n\t\tfloat64( offset: number, next?: number ) {\n\t\t\tif( next !== undefined ) this.setFloat64( offset, next, !!'LE' )\n\t\t\treturn this.getFloat64( offset, !!'LE' )\n\t\t}\n\t\t\n\t\tasArray() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset, this.byteLength )\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn $mol_base64_ae_encode( this.asArray() )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\ttype $mol_data_tagged_type< Value, Tag extends PropertyKey > = Value & { [ Key in Tag ]: Value }\n\t\n\ttype $mol_data_tagged_parser< Input, Output > = {\n\t\tValue: Output\n\t} & (\n\t\t( val: $mol_data_tagged_type< Input, never > )=> Output\n\t)\n\n\t/**\n\t * Checks for given runtype and returns tagged version of returned type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_tagged_demo\n\t */\n\texport function $mol_data_tagged<\n\t\tConfig extends Record< string, $mol_data_value >,\n\t>(\n\t\tconfig: Config\n\t) {\n\t\treturn config as any as {\n\t\t\t[ Type in keyof Config ]: $mol_data_tagged_parser<\n\t\t\t\tParameters< Config[ Type ] >[0],\n\t\t\t\t$mol_data_tagged_type< ReturnType< Config[ Type ] >, Type >\n\t\t\t>\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport const { $hyoo_crus_ref } = $mol_data_tagged({ $hyoo_crus_ref: ( val: string | symbol )=> {\n\t\tif( typeof val === 'string' ) val = Symbol.for( val.replace( /_+$/, '' ) )\n\t\tif( /^(([a-zæA-ZÆ0-9]{8})?_){0,2}([a-zæA-ZÆ0-9]{8})?$/.test( val.description! ) ) return val\n\t\t$mol_fail( new Error( `Wrong ref (${ val.description! })` ) )\n\t} })\n\t\n\t/** Reference to Lord/Land/Node. May be absolute or relative. */\n\texport type $hyoo_crus_ref = typeof $hyoo_crus_ref.Value\n\t\n\t/** Land ref of any ref */\n\texport function $hyoo_crus_ref_land( ref: $hyoo_crus_ref ) {\n\t\treturn $hyoo_crus_ref( ref.description!.slice( 0, 17 ) )\n\t}\n\n\t/** Peer part of Ref */\n\texport function $hyoo_crus_ref_peer( ref: $hyoo_crus_ref ) {\n\t\treturn ref.description!.split( '_' )[ 0 ] ?? ''\n\t}\n\t\n\t/** Head part of Node Ref */\n\texport function $hyoo_crus_ref_head( ref: $hyoo_crus_ref ) {\n\t\treturn ref.description!.split( '_' )[ 2 ] ?? ''\n\t}\n\n\t/** Encode to binary (12/18 bytes) */\n\texport function $hyoo_crus_ref_encode( ref: $hyoo_crus_ref ) {\n\t\treturn $mol_base64_ae_decode(\n\t\t\t( ref.description! || '_' )\n\t\t\t\t.split( /_/g )\n\t\t\t\t.map( numb => numb || 'AAAAAAAA' )\n\t\t\t\t.join( '' )\n\t\t\t\t//.padEnd( 32, 'AAAAAAAA' )\n\t\t)\n\t}\n\n\t/** Read from binary (12/18 bytes) */\n\texport function $hyoo_crus_ref_decode( bin: Uint8Array ) {\n\t\treturn $hyoo_crus_ref(\n\t\t\t[ ... $mol_base64_ae_encode( bin ).match( /(.{8})/g ) ?? [] ]\n\t\t\t\t.map( numb => numb === 'AAAAAAAA' ? '' : numb )\n\t\t\t\t.join( '_' ).replace( /_+$/, '' )\n\t\t)\n\t}\n\n\t/** Make Node Ref relative to base Land: `__QWERTYUI` */\n\texport function $hyoo_crus_ref_relate( base: $hyoo_crus_ref, ref: $hyoo_crus_ref ) {\n\t\tif( !ref.description!.padEnd( 18, '_' ).startsWith( base.description!.slice( 0, 18 ).padEnd( 18, '_' ) ) ) return ref\n\t\treturn $hyoo_crus_ref( ( '__' + ( ref.description!.split( '_' )[2] ?? '' ) ).replace( /_+$/, '' ) )\n\t}\n\n\t/** Make absolute Node Ref from relative (`__QWERTYUI`) using base Land Ref. */\n\texport function $hyoo_crus_ref_resolve( base: $hyoo_crus_ref, ref: $hyoo_crus_ref ) {\n\t\tif( !ref.description ) return $hyoo_crus_ref_land( base )\n\t\tif( !ref.description!.startsWith( '__' ) ) return ref\n\t\treturn $hyoo_crus_ref( base.description!.slice( 0, 18 ).padEnd( 18, '_' ) + ref.description!.slice( 2 ) )\n\t}\t\n\n}\n","namespace $ {\n\t\n\texport function $mol_base64_url_encode( buffer: Uint8Array ) {\n\t\treturn $mol_base64_encode( buffer ).replace( /\\+/g, '-' ).replace( /\\//g, '_' ).replace( /=/g, '' )\n\t}\n\t\n\texport function $mol_base64_url_decode( str: string ) {\n\t\treturn $mol_base64_decode( str.replace( /-/g, '+' ).replace( /_/g, '/' ) )\n\t}\n\t\n}\n","namespace $ {\n\texport var $mol_crypto_native = $node.crypto.webcrypto as any as Crypto\n}\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'ECDSA',\n\t\thash: 'SHA-256',\n\t\tnamedCurve: \"P-256\",\n\t}\n\t\n\texport class $mol_crypto_key extends $mol_buffer {\n\t\t\n\t\tstatic from< This extends typeof $mol_crypto_key >( this: This, serial: number | string | ArrayBufferView ) {\n\t\t\t\n\t\t\tif( typeof serial === 'string' ) {\n\t\t\t\tserial = new Uint8Array([\n\t\t\t\t\t... $mol_base64_url_decode( serial.slice( 0, 43 ) ),\n\t\t\t\t\t... $mol_base64_url_decode( serial.slice( 43, 86 ) ),\n\t\t\t\t\t... $mol_base64_url_decode( serial.slice( 86, 129 ) ),\n\t\t\t\t])\n\t\t\t}\n\t\t\t\n\t\t\treturn super.from( serial ) as InstanceType< This >\n\t\t}\n\t\t\n\t\tasArray() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset, this.byteLength )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\ttoString() {\n\t\t\tconst arr = this.asArray()\n\t\t\treturn $mol_base64_url_encode( arr.subarray( 0, 32 ) )\n\t\t\t\t+ $mol_base64_url_encode( arr.subarray( 32, 64 ) )\n\t\t\t\t+ $mol_base64_url_encode( arr.subarray( 64 ) )\n\t\t}\n\t\t\n\t}\n\t\n\texport class $mol_crypto_key_public extends $mol_crypto_key {\n\t\t\n\t\tstatic size_str = 86\n\t\tstatic size_bin = 64\n\t\t\n\t\t@ $mol_memo.method\n\t\tasync native() {\n\t\t\tconst str = this.toString()\n\t\t\treturn $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: \"P-256\",\n\t\t\t\t\text: true,\n\t\t\t\t\tkey_ops: [ 'verify' ],\n\t\t\t\t\tkty: \"EC\",\n\t\t\t\t\tx: str.slice( 0, 43 ),\n\t\t\t\t\ty: str.slice( 43, 86 ),\n\t\t\t\t},\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ 'verify' ],\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync verify( data: BufferSource, sign: BufferSource ) {\n\t\t\treturn await $mol_crypto_native.subtle.verify(\n\t\t\t\talgorithm,\n\t\t\t\tawait this.native(),\n\t\t\t\tsign,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\texport class $mol_crypto_key_private extends $mol_crypto_key {\n\t\t\n\t\tstatic size_str = 129\n\t\tstatic size_bin = 96\n\t\tstatic size_sign = 64\n\t\t\n\t\tstatic async generate() {\n\t\t\t\n\t\t\tconst pair = await $mol_crypto_native.subtle.generateKey(\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ 'sign', 'verify' ]\n\t\t\t)\n\t\t\t\n\t\t\tconst { x, y, d } = await $mol_crypto_native.subtle.exportKey( 'jwk', pair.privateKey )\n\t\t\treturn this.from( x + y! + d! )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tasync native() {\n\t\t\tconst str = this.toString()\n\t\t\treturn await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: \"P-256\",\n\t\t\t\t\text: true,\n\t\t\t\t\tkey_ops: [ 'sign' ],\n\t\t\t\t\tkty: \"EC\",\n\t\t\t\t\tx: str.slice( 0, 43 ),\n\t\t\t\t\ty: str.slice( 43, 86 ),\n\t\t\t\t\td: str.slice( 86, 129 ),\n\t\t\t\t},\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ 'sign' ],\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tpublic() {\n\t\t\treturn new $mol_crypto_key_public( this.buffer, this.byteOffset, this.byteOffset + 64 )\n\t\t}\n\t\t\n\t\tasync sign( data: BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.sign(\n\t\t\t\talgorithm,\n\t\t\t\tawait this.native(),\n\t\t\t\tdata\n\t\t\t) )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'AES-CBC',\n\t\tlength: 128,\n\t\ttagLength: 32,\n\t}\n\t\n\t/** Symmetric cipher with shortest payload */\n\texport class $mol_crypto_secret extends Object {\n\t\t\n\t\t/** Key size in bytes. */\n\t\tstatic size = 16\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'secret' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async generate() {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.generateKey(\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ]\n\t\t\t\t) as CryptoKey & { type: 'secret' }\n\t\t\t)\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\t\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t'raw',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'secret' }\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic async pass( pass: string, salt: Uint8Array ) {\n\t\t\t\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.deriveKey(\n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"PBKDF2\",\n\t\t\t\t\t\tsalt,\n\t\t\t\t\t\titerations: 10_000,\n\t\t\t\t\t\thash: \"SHA-256\",\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t\t\"raw\",\n\t\t\t\t\t\t$mol_charset_encode( pass ),\n\t\t\t\t\t\t\"PBKDF2\",\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t[ \"deriveKey\" ],\n\t\t\t\t\t),\n\t\t\t\t\t\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ],\n\t\t\t\t\t\n\t\t\t\t) as CryptoKey & { type: 'secret' }\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic async derive( private_serial: string, public_serial: string ) {\n\t\t\t\n\t\t\tconst ecdh = { name: \"ECDH\", namedCurve: \"P-256\" }\n\t\t\tconst jwk = { crv: 'P-256', ext: true, kty: 'EC' }\n\t\t\t\n\t\t\tconst private_key = await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\t... jwk,\n\t\t\t\t\tkey_ops: [ 'deriveKey' ],\n\t\t\t\t\tx: private_serial.slice( 0, 43 ),\n\t\t\t\t\ty: private_serial.slice( 43, 86 ),\n\t\t\t\t\td: private_serial.slice( 86, 129 ),\n\t\t\t\t},\n\t\t\t\tecdh,\n\t\t\t\ttrue,\n\t\t\t\t[ 'deriveKey' ],\n\t\t\t)\n\t\t\n\t\t\tconst public_key = await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\t... jwk,\n\t\t\t\t\tkey_ops: [],\n\t\t\t\t\tx: public_serial.slice( 0, 43 ),\n\t\t\t\t\ty: public_serial.slice( 43, 86 ),\n\t\t\t\t},\n\t\t\t\tecdh,\n\t\t\t\ttrue,\n\t\t\t\t[],\n\t\t\t)\n\t\t\t\n\t\t\tconst secret = await $mol_crypto_native.subtle.deriveKey(\n\t\t\t\t{\n\t\t\t\t name: \"ECDH\",\n\t\t\t\t public: public_key,\n\t\t\t\t},\n\t\t\t\tprivate_key,\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ \"encrypt\", \"decrypt\" ],\n\t\t\t)\n\t\t\n\t\t\treturn new this( secret as CryptoKey & { type: 'secret' } )\n\t\t}\n\t\t\n\t\t/** 16 bytes */\n\t\tasync serial() {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.exportKey(\n\t\t\t\t'raw',\n\t\t\t\tthis.native,\n\t\t\t) )\n\t\t}\n\n\t\t/** 16n bytes */\n\t\tasync encrypt( open: BufferSource, salt: BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.encrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\topen\n\t\t\t) )\n\t\t}\n\t\t\n\t\tasync decrypt( closed: BufferSource, salt : BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.decrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\tclosed\n\t\t\t) )\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_auth extends $mol_crypto_key_private {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic current( next?: $hyoo_crus_auth | null ) {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tif( next === undefined ) {\n\t\t\t\tconst key = String( $mol_state_local.value( '$hyoo_crus_auth' ) ?? '' )\n\t\t\t\tif( key ) return $hyoo_crus_auth.from( key )\n\t\t\t}\n\t\t\t\n\t\t\tif( !next ) next = this.grab()\n\t\t\t\n\t\t\t$mol_state_local.value( '$hyoo_crus_auth', next.toString() )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic embryos = [] as string[]\n\t\t\n\t\t@ $mol_action\n\t\tstatic grab() {\n\t\t\tif( this.embryos.length ) return this.from( this.embryos.pop()! )\n\t\t\treturn $mol_wire_sync( this as typeof $hyoo_crus_auth ).generate()\n\t\t}\n\t\t\n\t\tstatic async generate() {\n\t\t\tfor( let i = 0; i < 4096; ++i ) {\n\t\t\t\tconst auth = await super.generate()\n\t\t\t\tif( auth.uint8(0) !== $hyoo_crus_unit_kind.pass ) continue\n\t\t\t\treturn this.from( auth )\n\t\t\t}\n\t\t\t$mol_fail( new Error( `Too long key generation` ) )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tlord() {\n\t\t\treturn $hyoo_crus_ref_decode( new Uint8Array( this.buffer, 2, 12 ) )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tpeer() {\n\t\t\treturn $mol_base64_ae_encode( new Uint8Array( this.buffer, 2, 6 ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsecret_mutual( pub: string ) {\n\t\t\treturn $mol_wire_sync( $mol_crypto_secret ).derive( this.toString(), pub.toString() )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $hyoo_crus_face_data = Iterable< readonly [ peer: string, time: number ] >\n\t\n\texport class $hyoo_crus_face_map extends Map< string, number > {\n\t\t\n\t\t/** Maximum time for all peers. */\n\t\tlast = 0\n\t\t\n\t\t/** Total units count in Land. */\n\t\ttotal = 0\n\t\t\n\t\tconstructor(\n\t\t\tentries?: $hyoo_crus_face_data\n\t\t) {\n\t\t\tsuper()\n\t\t\tif( entries ) this.sync( entries )\n\t\t}\n\t\t\n\t\t/** Synchronize this clock with another. */\n\t\tsync( right: $hyoo_crus_face_data ) {\n\t\t\tif( right instanceof $hyoo_crus_face_map ) this.total = right.total\n\t\t\tfor( const [ peer, time ] of right ) this.time_max( peer, time )\n\t\t}\n\t\t\n\t\t/** Update last time for peer. */\n\t\ttime_max(\n\t\t\tpeer: string,\n\t\t\ttime: number,\n\t\t) {\n\t\t\t\n\t\t\tif( this.last < time ) this.last = time\n\t\t\t\n\t\t\tlet prev = this.get( peer ) ?? 0\n\t\t\tif( prev < time ) this.set( peer, time )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Gererates new time for peer that greater then other seen. */\n\t\t@ $mol_action\n\t\ttick() {\n\t\t\treturn this.last = Math.max( this.last + 1, Date.now() )\n\t\t}\n\t\t\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( ' ', this.total ) ,\n\t\t\t\t$mol_dev_format_shade( ' ', new Date( this.last ) ) ,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t/** reactive Dictionary */\n\texport class $mol_wire_dict< Key, Value > extends Map< Key, Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( key )\n\t\t}\n\t\t\n\t\tget( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.get( key )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, key: Key, dict: Map< Key, Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tset( key: Key, value: Value ) {\n\t\t\tif( super.get( key ) === value ) return this\n\t\t\tsuper.set( key, value )\n\t\t\tthis.pub?.emit() // undefined in constructor\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( key: Key ) {\n\t\t\tconst res = super.delete( key )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\t\t\n\t\t// Extensions\n\t\t\n\t\titem( key: Key, next?: Value | null ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.get( key ) ?? null\n\t\t\t\n\t\t\tif( next === null ) this.delete( key )\n\t\t\telse this.set( key, next )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t/** Reactive Set */\n\texport class $mol_wire_set< Value > extends Set< Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( value: Value ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( value )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, value2: Value, set: Set< Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tadd( value: Value ) {\n\t\t\tif( super.has( value ) ) return this\n\t\t\tsuper.add( value )\n\t\t\tthis.pub.emit()\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( value: Value ) {\n\t\t\tconst res = super.delete( value )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\n\t\t// Extensions\n\t\t\n\t\titem( val: Value, next?: boolean ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.has( val )\n\t\t\t\n\t\t\tif( next ) this.add( val )\n\t\t\telse this.delete( val )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_area {\n\t\tdata = 0,\n\t\tmeta = 1,\n\t}\n\t\n\texport function $hyoo_crus_area_of( numb: string ) {\n\t\tconst num = $mol_base64_ae_decode( numb || 'AAAAAAAA' )[0]\n\t\treturn $hyoo_crus_area[ num % 2 ] as keyof typeof $hyoo_crus_area\n\t}\n\t\n\texport function $hyoo_crus_area_to( numb: string, area: keyof typeof $hyoo_crus_area ) {\n\t\tconst buf = $mol_base64_ae_decode( numb || 'AAAAAAAA' )\n\t\tbuf[0] -= buf[0] % 2 - $hyoo_crus_area[ area ]\n\t\tnumb = $mol_base64_ae_encode( buf )\n\t\treturn numb\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_rank {\n\t\tnil = 0b0000,\n\t\tget = 0b0001,\n\t\tadd = 0b0011,\n\t\tmod = 0b0111,\n\t\tlaw = 0b1111,\n\t}\n\t\n\texport type $hyoo_crus_rank_preset = Record< string, $hyoo_crus_rank >\n\t\n\texport let $hyoo_crus_rank_private = {} as $hyoo_crus_rank_preset\n\texport let $hyoo_crus_rank_public = { '': $hyoo_crus_rank.get } as $hyoo_crus_rank_preset\n\texport let $hyoo_crus_rank_lobby = { '': $hyoo_crus_rank.add } as $hyoo_crus_rank_preset\n\texport let $hyoo_crus_rank_orgy = { '': $hyoo_crus_rank.mod } as $hyoo_crus_rank_preset\n\t\n}\n","namespace $ {\n\t\n\t/** Registry of nodes as domain entities. */\n\texport class $hyoo_crus_fund< Key, Node > extends $mol_object {\n\t\t\n\t\tconstructor(\n\t\t\treadonly item_make: ( head: Key )=> Node\n\t\t) { super() }\n\t\t\n\t\t@ $mol_mem_key\n\t\tItem( head: Key ) {\n\t\t\treturn this.item_make( head )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\tlet sponge = new Uint32Array(80)\n\t\n\t/** Fast small sync SHA-1 */\n\texport function $mol_crypto_hash( data: Uint8Array ) {\n\t\t\n\t\tconst bits = data.byteLength << 3\n\t\tconst kbits = bits >> 5\n\t\tconst kword = 0x80 << ( 24 - bits & 0b11111 )\n\t\t\n\t\tconst bytes = 16 + ( bits + 64 >>> 9 << 4 )\n\t\tconst klens = bytes - 1\n\t\tconst words = new Int32Array( data.buffer, data.byteOffset, data.byteLength >> 2 )\n\t\t\n\t\tlet tail = 0\n\t\tfor( let i = words.length * 4; i < data.length; ++i ) {\n\t\t\ttail |= data[i] << ( i << 3 & 0b11000 )\n\t\t}\n\t\t\n\t\t// Initial\n\t\tconst hash = new Int32Array([ 1732584193, -271733879, -1732584194, 271733878, -1009589776 ])\n\t\t\n\t\t// Digest\n\t\tfor( let i = 0; i < bytes; i += 16 ) {\n\t\t\t\n\t\t\tlet h0 = hash[0]\n\t\t\tlet h1 = hash[1]\n\t\t\tlet h2 = hash[2]\n\t\t\tlet h3 = hash[3]\n\t\t\tlet h4 = hash[4]\n\n\t\t\tfor( let j = 0; j < 80; ++j ) {\n\t\t\t\t\n\t\t\t\tlet turn\n\t\t\t\t\n\t\t\t\tif( j < 16 ) {\n\t\t\t\t\t\n\t\t\t\t\tconst k = i + j\n\t\t\t\t\tif( k === klens ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = bits\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet word =\n\t\t\t\t\t\t\tk === words.length ? tail :\n\t\t\t\t\t\t\tk > words.length ? 0 :\n\t\t\t\t\t\t\twords[k]\n\t\t\t\t\t\t\n\t\t\t\t\t\tword = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // LE -> BE\n\t\t\t\t\t\tif( k === kbits ) word |= kword\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = word\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tturn = ( h1 & h2 | ~h1 & h3 ) + 1518500249\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\t\n\t\t\t\t\tturn =\n\t\t\t\t\t\tj < 20 ? ( h1 & h2 | ~h1 & h3 ) + 1518500249 :\n\t\t\t\t\t\tj < 40 ? ( h1 ^ h2 ^ h3 ) + 1859775393 :\n\t\t\t\t\t\tj < 60 ? ( h1 & h2 | h1 & h3 | h2 & h3 ) - 1894007588 :\n\t\t\t\t\t\t( h1 ^ h2 ^ h3 ) - 899497514\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst next = turn + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 ))\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\thash[0] += h0\n\t\t\thash[1] += h1\n\t\t\thash[2] += h2\n\t\t\thash[3] += h3\n\t\t\thash[4] += h4\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let i = 0; i < 20; ++i ) {\n\t\t\tconst word = hash[i]\n\t\t\thash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // BE -> LE\n\t\t}\n\n\t\treturn new Uint8Array( hash.buffer )\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $hyoo_crus_pack_parts = {\n\t\t\n\t\tlands: Record< $hyoo_crus_ref, {\n\t\t\tfaces: $hyoo_crus_face_map,\n\t\t\tunits: $hyoo_crus_unit[],\n\t\t} >,\n\t\t\n\t\trocks: [ Uint8Array, null | Uint8Array ][],\n\t\t\n\t}\n\t\n\texport class $hyoo_crus_pack extends $mol_buffer {\n\t\t\n\t\ttoBlob() {\n\t\t\treturn new Blob( [ this ], { type: 'application/vnd.hyoo_crus_pack' } )\n\t\t}\n\t\t\n\t\tparts( land = null as $hyoo_crus_ref | null ) {\n\t\t\t\n\t\t\tconst lands = {} as $hyoo_crus_pack_parts[ 'lands' ]\n\t\t\tif( land ) lands[ land ] = { faces: new $hyoo_crus_face_map, units: [] }\n\t\t\t\n\t\t\tconst rocks = [] as $hyoo_crus_pack_parts[ 'rocks' ]\n\t\t\t\n\t\t\tconst buf = this.asArray()\n\t\t\t\n\t\t\tfor( let offset = 0; offset < this.byteLength; ) {\n\t\t\t\t\n\t\t\t\tconst kind = this.uint8( offset )\n\t\t\t\tif( kind % 2 ) {\n\t\t\t\t\t\n\t\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.land: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst faces = new $hyoo_crus_face_map\n\t\t\t\t\t\t\tfaces.total = this.uint32( offset ) >> 8\n\t\t\t\t\t\t\toffset += 4\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tland = $hyoo_crus_ref_decode(\n\t\t\t\t\t\t\t\tnew Uint8Array( buf.buffer, buf.byteOffset + offset, 18 )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\toffset += 18\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst len = this.uint16( offset )\n\t\t\t\t\t\t\toffset += 2\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst peer = $mol_base64_ae_encode(\n\t\t\t\t\t\t\t\t\tnew Uint8Array( buf.buffer, buf.byteOffset + offset, 6 )\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\tconst time = this.uint48( offset + 6 )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tfaces.time_max( peer, time )\n\t\t\t\t\t\t\t\toffset += 12\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlands[ land ] = { faces, units: [] }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.pass: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !land ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst unit = new $hyoo_crus_pass(\n\t\t\t\t\t\t\t\tbuf.slice( offset, offset += $hyoo_crus_unit.size ).buffer\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlands[ land ].units ||= []\n\t\t\t\t\t\t\tlands[ land ].units.push( unit )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.gift: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !land ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst unit = new $hyoo_crus_gift(\n\t\t\t\t\t\t\t\tbuf.slice( offset, offset += $hyoo_crus_unit.size ).buffer\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlands[ land ].units ||= []\n\t\t\t\t\t\t\tlands[ land ].units.push( unit )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.hash: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst hash = buf.slice( offset += 4, offset += 24 )\n\t\t\t\t\t\t\trocks.push([ hash, null ])\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.rock: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst size = this.uint32( offset ) >> 8\n\t\t\t\t\t\t\tif( size === 0 ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst hash = buf.slice( offset + 4, offset + 4 + 24 )\n\t\t\t\t\t\t\t\trocks.push([ hash, null ])\n\t\t\t\t\t\t\t\toffset += 4 + 24\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst rock = buf.slice( offset + 4, offset + 4 + size )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst hash = $mol_crypto_hash( rock )\n\t\t\t\t\t\t\t\trocks.push([ hash, rock ])\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\toffset += Math.ceil( size / 8 + .5 ) * 8\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue\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\tcase $hyoo_crus_part.buck: {\n\t\t\t\t\t\t\toffset += 128\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault: $mol_fail( new Error( `Unknown CRUS Pack Part (${ kind.toString(2) }) at (${ offset.toString(16) })` ) )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tif( !land ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\n\t\t\t\t\tconst unit = new $hyoo_crus_gist(\n\t\t\t\t\t\tbuf.slice( offset, offset += $hyoo_crus_unit.size ).buffer\n\t\t\t\t\t)\n\t\t\t\t\t\n\t\t\t\t\tlands[ land ].units ||= []\n\t\t\t\t\tlands[ land ].units.push( unit )\n\t\t\t\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn { lands, rocks }\n\t\t\t\n\t\t}\n\t\n\t\tstatic make( { lands, rocks }: $hyoo_crus_pack_parts ) {\n\t\t\t\n\t\t\tlet size = 0\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\tsize += 24\n\t\t\t\tsize += lands[ land ].faces.size * 12\n\t\t\t\tsize += lands[ land ].units.length * $hyoo_crus_unit.size\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ hash, rock ] of rocks ) {\n\t\t\t\tsize += rock ? Math.ceil( rock.length / 8 + .5 ) * 8 : 24\n\t\t\t}\n\t\t\t\n\t\t\tif( size === 0 ) return null!\n\t\t\t\n\t\t\tconst buff = new Uint8Array( size )\n\t\t\tconst pack = new $hyoo_crus_pack( buff.buffer )\n\t\t\t\n\t\t\tlet offset = 0\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\t\n\t\t\t\tconst faces = lands[ land ].faces\n\t\t\t\t\n\t\t\t\tpack.uint32( offset, $hyoo_crus_part.land | ( faces.total << 8 ) )\n\t\t\t\tbuff.set( $hyoo_crus_ref_encode( land ), offset + 4 )\n\t\t\t\tpack.uint16( offset + 22, faces.size )\n\t\t\t\toffset += 24\n\t\t\t\t\n\t\t\t\tfor( const [ peer, time ] of faces ) {\n\t\t\t\t\tbuff.set( $mol_base64_ae_decode( peer ), offset )\n\t\t\t\t\tpack.uint48( offset + 6, time )\n\t\t\t\t\toffset += 12\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const unit of lands[ land ].units ) {\n\t\t\t\t\tbuff.set( unit.asArray(), offset )\n\t\t\t\t\toffset += unit.byteLength\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ hash, rock ] of rocks ) {\n\t\t\t\t\n\t\t\t\tconst len = rock?.length ?? 0\n\t\t\t\tpack.uint32( offset, $hyoo_crus_part.rock | ( len << 8 ) )\n\t\t\t\t\n\t\t\t\tif( rock ) buff.set( rock, offset + 4 )\n\t\t\t\telse buff.set( hash, offset + 4 )\n\t\t\t\n\t\t\t\toffset += rock ? Math.ceil( len / 8 + .5 ) * 8 : 24\n\t\t\t}\n\t\t\t\n\t\t\treturn pack\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_mine extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic hash( blob: Uint8Array ) {\n\t\t\treturn $mol_crypto_hash( blob )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic rock( hash: Uint8Array, next?: Uint8Array ): Uint8Array | null {\n\t\t\t$mol_wire_solid()\n\t\t\treturn next ?? null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic save( blob: Uint8Array ) {\n\t\t\tconst hash = this.hash( blob )\n\t\t\tthis.rock( hash, blob )\n\t\t\treturn hash\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $hyoo_crus_mine_node extends $hyoo_crus_mine {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic root() {\n\t\t\treturn $mol_file.relative( '.crus' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic rock_file( hash: Uint8Array ) {\n\t\t\tconst id = $mol_base64_ae_encode( hash )\n\t\t\treturn this.root().resolve( `rock/${ id.slice( 0, 2 ) }/${ id }.blob` )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic rock( hash: Uint8Array, next?: Uint8Array ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst buf = this.rock_file( hash ).buffer( next )\n\t\t\tif( !next ) return buf\n\t\t\tif( $mol_compare_deep( hash, this.hash( buf ) ) ) return buf\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t$.$hyoo_crus_mine = $hyoo_crus_mine_node\n}\n","namespace $ {\n\n\texport class $mol_time_base {\n\n\t\tstatic patterns = {} as Record< string , ( arg : any )=> string >\n\n\t\tstatic formatter( pattern : string ) {\n\n\t\t\tif( this.patterns[ pattern ] ) return this.patterns[ pattern ]\n\n\t\t\tvar tokens = Object.keys( this.patterns )\n\t\t\t\t.sort()\n\t\t\t\t.reverse()\n\t\t\t\t.map( ( token : string ) => token.replace( /([-+*.\\[\\]()\\^])/g , '\\\\$1' ) )\n\t\t\tvar lexer = RegExp( '(.*?)(' + tokens.join( '|' ) + '|$)', 'g' )\n\n\t\t\tvar funcs = [] as ( ( arg : any )=> string )[]\n\n\t\t\tpattern.replace( lexer, ( str : string , text : string , token : string ) => {\n\t\t\t\tif( text ) funcs.push( () => text )\n\t\t\t\tif( token ) funcs.push( this.patterns[ token ] )\n\t\t\t\treturn str\n\t\t\t} )\n\n\t\t\treturn this.patterns[ pattern ] = ( arg : any )=> {\n\t\t\t\treturn funcs.reduce( ( res , func )=> res + func( arg ) , '' )\n\t\t\t}\n\t\t\n\t\t}\n\n\t\ttoString( pattern : string ) : string {\n\t\t\tconst Base = this.constructor as typeof $mol_time_base\n\t\t\tconst formatter = Base.formatter( pattern )\n\t\t\treturn formatter( this )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_time_duration_config = number | string | {\n\t\tyear? : number\n\t\tmonth? : number\n\t\tday? : number\n\t\thour? : number\n\t\tminute? : number\n\t\tsecond? : number\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time duration representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_duration extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_duration_config = 0 ) {\n\t\t\t\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( typeof config === 'number' ) {\n\t\t\t\tif( !Number.isFinite( config ) ) throw new RangeError( `Wrong ms count` )\n\t\t\t\tthis.second = config / 1000\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( config === 'Z' ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.hour = 0\n\t\t\t\t\tthis.minute = 0\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tduration: {\n\t\t\t\t\tconst parser = /^P(?:([+-]?\\d+(?:\\.\\d+)?)Y)?(?:([+-]?\\d+(?:\\.\\d+)?)M)?(?:([+-]?\\d+(?:\\.\\d+)?)D)?(?:T(?:([+-]?\\d+(?:\\.\\d+)?)h)?(?:([+-]?\\d+(?:\\.\\d+)?)m)?(?:([+-]?\\d+(?:\\.\\d+)?)s)?)?$/i\n\t\t\t\t\t\n\t\t\t\t\tconst found = parser.exec( config )\n\t\t\t\t\tif( !found ) break duration\n\t\t\t\t\t\t\n\t\t\t\t\tif( found[1] ) this.year = Number( found[1] )\n\t\t\t\t\tif( found[2] ) this.month = Number( found[2] )\n\t\t\t\t\tif( found[3] ) this.day = Number( found[3] )\n\t\t\t\t\tif( found[4] ) this.hour = Number( found[4] )\n\t\t\t\t\tif( found[5] ) this.minute = Number( found[5] )\n\t\t\t\t\tif( found[6] ) this.second = Number( found[6] )\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toffset: {\n\t\t\t\t\tvar parser = /^[+-](\\d\\d)(?::?(\\d\\d))?$/i\n\t\t\t\t\t\n\t\t\t\t\tvar found = parser.exec( config )\n\t\t\t\t\tif( !found ) break offset\n\t\t\t\t\t\t\n\t\t\t\t\tif( found[1] ) this.hour = Number( found[1] )\n\t\t\t\t\tif( found[2] ) this.minute = Number( found[2] )\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tthrow new Error( `Can not parse time duration (${ config })` )\n\t\t\t}\n\t\t\t\n\t\t\tthis.year = config.year || 0\n\t\t\tthis.month = config.month || 0\n\t\t\tthis.day = config.day || 0\n\t\t\tthis.hour = config.hour || 0\n\t\t\tthis.minute = config.minute || 0\n\t\t\tthis.second = config.second || 0\n\t\t}\n\n\t\treadonly year : number= 0\n\t\treadonly month : number = 0\n\t\treadonly day : number = 0\n\t\treadonly hour : number = 0\n\t\treadonly minute : number = 0\n\t\treadonly second : number = 0\n\t\t\n\t\tget normal() {\n\t\t\t\n\t\t\tlet second = this.second ?? 0\n\t\t\tlet minute = this.minute ?? 0\n\t\t\tlet hour = this.hour ?? 0\n\t\t\tlet day = this.day ?? 0\n\t\t\t\n\t\t\tminute += Math.floor( second / 60 )\n\t\t\tsecond = second % 60\n\t\t\t\n\t\t\thour += Math.floor( minute / 60 )\n\t\t\tminute = minute % 60\n\t\t\t\n\t\t\tday += Math.floor( hour / 24 )\n\t\t\thour = hour % 24\n\t\t\t\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear: this.year,\n\t\t\t\tmonth: this.month,\n\t\t\t\tday: day,\n\t\t\t\thour: hour,\n\t\t\t\tminute: minute,\n\t\t\t\tsecond: second,\n\t\t\t})\n\t\t\t\n\t\t}\n\n\t\tsumm( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\t\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear : this.year + duration.year ,\n\t\t\t\tmonth : this.month + duration.month ,\n\t\t\t\tday : this.day + duration.day ,\n\t\t\t\thour : this.hour + duration.hour ,\n\t\t\t\tminute : this.minute + duration.minute ,\n\t\t\t\tsecond : this.second + duration.second ,\n\t\t\t})\n\t\t}\n\n\t\tmult( numb : number ) {\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear : this.year && this.year * numb ,\n\t\t\t\tmonth : this.month && this.month * numb ,\n\t\t\t\tday : this.day && this.day * numb ,\n\t\t\t\thour : this.hour && this.hour * numb ,\n\t\t\t\tminute : this.minute && this.minute * numb ,\n\t\t\t\tsecond : this.second && this.second * numb ,\n\t\t\t})\n\t\t}\n\n\t\tcount( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\treturn this.valueOf() / duration.valueOf()\n\t\t}\n\n\t\tvalueOf() {\n\t\t\tvar day = this.year * 365 + this.month * 30.4 + this.day\n\t\t\tvar second = ( ( day * 24 + this.hour ) * 60 + this.minute ) * 60 + this.second\n\t\t\treturn second * 1000\n\t\t}\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( pattern = 'P#Y#M#DT#h#m#s' ) {\n\t\t\treturn super.toString( pattern )\n\t\t}\n\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn mode === 'number' ? this.valueOf() : this.toString()\n\t\t}\n\t\t\n\t\tstatic patterns = {\n\n\t\t\t'#Y' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.year ) return ''\n\t\t\t\treturn duration.year + 'Y'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#M' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.month ) return ''\n\t\t\t\treturn duration.month + 'M'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#D' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.day ) return ''\n\t\t\t\treturn duration.day + 'D'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#h' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.hour ) return ''\n\t\t\t\treturn duration.hour + 'H'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#m' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.minute ) return ''\n\t\t\t\treturn duration.minute + 'M'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#s' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.second ) return ''\n\t\t\t\treturn duration.second + 'S'\n\t\t\t} ,\n\t\t\t\n\t\t\t'hh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( 100 + moment.hour ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'h' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( moment.hour )\n\t\t\t} ,\n\t\t\t\n\t\t\t':mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'mm' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( 100 + moment.minute ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( moment.minute )\n\t\t\t},\n\t\t\t\n\t\t\t':ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'ss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( 100 + moment.second | 0 ).slice(1)\n\t\t\t},\n\t\t\t\n\t\t\t's' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( moment.second | 0 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'.sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\t// if( moment.second === ( moment.second | 0 ) ) return ''\n\t\t\t\treturn '.' + $mol_time_moment.patterns[ 'sss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tconst millisecond = ( moment.second - Math.trunc( moment.second ) ).toFixed( 3 )\n\t\t\t\treturn millisecond.slice(2)\n\t\t\t},\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport enum $mol_time_moment_weekdays {\n\t\tmonday,\n\t\ttuesday,\n\t\twednesday,\n\t\tthursday,\n\t\tfriday,\n\t\tsaturday,\n\t\tsunday\n\t}\n\t\n\texport type $mol_time_moment_config = number | Date | string | {\n\t\tyear? : number\n\t\tmonth? : number\n\t\tday? : number\n\t\thour? : number\n\t\tminute? : number\n\t\tsecond? : number\n\t\toffset? : $mol_time_duration_config\n\t}\n\t\n\tfunction numb( str: string, max: number ) {\n\t\tconst numb = Number( str )\n\t\tif( numb < max ) return numb\n\t\t$mol_fail( new Error( `Wrong time component ${ str }` ) )\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time moment representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_moment extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_moment_config = new Date ) {\n\t\t\t\n\t\t\tsuper()\n\n\t\t\tif( typeof config === 'number' ) {\n\t\t\t\tconfig = new Date( config )\n\t\t\t\tif( Number.isNaN( config.valueOf() ) ) throw new RangeError( `Wrong ms count` )\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tconst parsed = /^(?:(\\d\\d?\\d?\\d?)(?:-?(\\d\\d?)(?:-?(\\d\\d?))?)?)?(?:[T ](?:(\\d\\d?)(?::?(\\d\\d?)(?::?(\\d\\d?(?:\\.\\d+)?))?)?)?(Z|[\\+\\-]\\d\\d?(?::?(?:\\d\\d?)?)?)?)?$/.exec( config )\n\t\t\t\tif( !parsed ) throw new Error( `Can not parse time moment (${ config })` )\n\n\t\t\t\tif( parsed[1] ) this.year = numb( parsed[1], 9999 )\n\t\t\t\tif( parsed[2] ) this.month = numb( parsed[2], 13 ) - 1\n\t\t\t\tif( parsed[3] ) this.day = numb( parsed[3], 32 ) - 1\n\t\t\t\tif( parsed[4] ) this.hour = numb( parsed[4], 60 )\n\t\t\t\tif( parsed[5] ) this.minute = numb( parsed[5], 60 )\n\t\t\t\tif( parsed[6] ) this.second = numb( parsed[6], 60 )\n\t\t\t\tif( parsed[7] ) this.offset = new $mol_time_duration( parsed[7] )\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tif( config instanceof Date ) {\n\t\t\t\t\n\t\t\t\tthis.year = config.getFullYear()\n\t\t\t\tthis.month = config.getMonth()\n\t\t\t\tthis.day = config.getDate() - 1\n\t\t\t\tthis.hour = config.getHours()\n\t\t\t\tthis.minute = config.getMinutes()\n\t\t\t\tthis.second = config.getSeconds() + config.getMilliseconds() / 1000\n\t\t\t\t\n\t\t\t\tconst offset = - config.getTimezoneOffset()\n\t\t\t\tthis.offset = new $mol_time_duration({\n\t\t\t\t\thour : ( offset < 0 ) ? Math.ceil( offset / 60 ) : Math.floor( offset / 60 ) ,\n\t\t\t\t\tminute : offset % 60\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.year = config.year\n\t\t\tthis.month = config.month\n\t\t\tthis.day = config.day\n\t\t\tthis.hour = config.hour\n\t\t\tthis.minute = config.minute\n\t\t\tthis.second = config.second\n\t\t\t\n\t\t\tthis.offset = config.offset == null ? config.offset as undefined : new $mol_time_duration( config.offset ) \n\n\t\t}\n\n\t\treadonly year : number | undefined\n\t\treadonly month : number | undefined\n\t\treadonly day : number | undefined\n\t\treadonly hour : number | undefined\n\t\treadonly minute : number | undefined\n\t\treadonly second : number | undefined\n\t\treadonly offset : $mol_time_duration | undefined\n\n\t\tget weekday() {\n\t\t\treturn ( this.native.getDay() + 6 ) % 7\n\t\t}\n\n\t\t_native : Date | undefined\n\t\tget native() {\n\t\t\tif( this._native ) return this._native\n\t\t\t\n\t\t\tconst utc = this.toOffset( 'Z' )\n\n\t\t\treturn this._native = new Date( Date.UTC(\n\t\t\t\tutc.year ?? 0 ,\n\t\t\t\tutc.month ?? 0 ,\n\t\t\t\t( utc.day ?? 0 ) + 1 ,\n\t\t\t\tutc.hour ?? 0 ,\n\t\t\t\tutc.minute ?? 0 ,\n\t\t\t\tutc.second != undefined ? Math.floor( utc.second ) : 0 ,\n\t\t\t\tutc.second != undefined ? Math.floor( ( utc.second - Math.floor( utc.second ) ) * 1000 ) : 0 ,\n\t\t\t) )\n\t\t}\n\n\t\t_normal : $mol_time_moment | undefined\n\t\tget normal() {\n\t\t\tif( this._normal ) return this._normal\n\t\t\t\n\t\t\tconst moment = new $mol_time_moment( this.native )\n\t\t\t\n\t\t\treturn this._normal = new $mol_time_moment({\n\t\t\t\tyear : this.year === undefined ? undefined : moment.year ,\n\t\t\t\tmonth : this.month === undefined ? undefined : moment.month ,\n\t\t\t\tday : this.day === undefined ? undefined : moment.day ,\n\t\t\t\thour : this.hour === undefined ? undefined : moment.hour ,\n\t\t\t\tminute : this.minute === undefined ? undefined : moment.minute ,\n\t\t\t\tsecond : this.second === undefined ? undefined : moment.second ,\n\t\t\t\toffset : this.offset === undefined ? undefined : moment.offset ,\n\t\t\t})\n\t\t}\n\n\t\tmerge( config : $mol_time_moment_config ) {\n\t\t\tconst moment = new $mol_time_moment( config )\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : moment.year === undefined ? this.year : moment.year ,\n\t\t\t\tmonth : moment.month === undefined ? this.month : moment.month ,\n\t\t\t\tday : moment.day === undefined ? this.day : moment.day ,\n\t\t\t\thour : moment.hour === undefined ? this.hour : moment.hour ,\n\t\t\t\tminute : moment.minute === undefined ? this.minute : moment.minute ,\n\t\t\t\tsecond : moment.second === undefined ? this.second : moment.second ,\n\t\t\t\toffset : moment.offset === undefined ? this.offset : moment.offset ,\n\t\t\t})\n\t\t}\n\n\t\tshift( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\tconst moment = new $mol_time_moment().merge({\n\t\t\t\tyear: this.year,\n\t\t\t\tmonth: this.month,\n\t\t\t\tday: this.day,\n\t\t\t\thour: this.hour ?? 0,\n\t\t\t\tminute: this.minute ?? 0,\n\t\t\t\tsecond: this.second ?? 0,\n\t\t\t\toffset: this.offset ?? 0\n\t\t\t})\n\n\t\t\tconst second = moment.second! + ( duration.second ?? 0 )\n\t\t\tconst native = new Date(\n\t\t\t\tmoment.year! + ( duration.year ?? 0 ) ,\n\t\t\t\tmoment.month! + ( duration.month ?? 0 ) ,\n\t\t\t\tmoment.day! + 1 + ( duration.day ?? 0 ) ,\n\t\t\t\tmoment.hour! + ( duration.hour ?? 0 ) ,\n\t\t\t\tmoment.minute! + ( duration.minute ?? 0 ) ,\n\t\t\t\tMath.floor( second ) ,\n\t\t\t\t( second - Math.floor( second ) ) * 1000\n\t\t\t)\n\n\t\t\tif( isNaN( native.valueOf() ) ) throw new Error( 'Wrong time' )\n\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : this.year === undefined ? undefined : native.getFullYear(),\n\t\t\t\tmonth : this.month === undefined ? undefined : native.getMonth(),\n\t\t\t\tday : this.day === undefined ? undefined : native.getDate() - 1,\n\t\t\t\thour : this.hour === undefined ? undefined : native.getHours(),\n\t\t\t\tminute : this.minute === undefined ? undefined : native.getMinutes(),\n\t\t\t\tsecond : this.second === undefined ? undefined : native.getSeconds() + native.getMilliseconds() / 1000,\n\t\t\t\toffset : this.offset,\n\t\t\t})\n\t\t}\n\n\t\tmask( config : $mol_time_moment_config ) {\n\n\t\t\tconst mask = new $mol_time_moment( config )\n\t\t\t\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : mask.year === undefined ? undefined : this.year ,\n\t\t\t\tmonth : mask.month === undefined ? undefined : this.month ,\n\t\t\t\tday : mask.day === undefined ? undefined : this.day ,\n\t\t\t\thour : mask.hour === undefined ? undefined : this.hour ,\n\t\t\t\tminute : mask.minute === undefined ? undefined : this.minute ,\n\t\t\t\tsecond : mask.second === undefined ? undefined : this.second ,\n\t\t\t\toffset : mask.offset === undefined ? undefined : this.offset ,\n\t\t\t})\n\t\t\t\n\t\t}\n\n\t\ttoOffset( config: $mol_time_duration_config = new $mol_time_moment().offset! ) {\n\t\t\t\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\tconst offset = this.offset || new $mol_time_moment().offset!\n\t\t\t\n\t\t\tlet with_time = new $mol_time_moment( 'T00:00:00' ).merge( this ) \n\t\t \tconst moment = with_time.shift( duration.summ( offset.mult( -1 ) ) )\n\n\t\t\treturn moment.merge({ offset : duration })\n\t\t}\n\n\t\tvalueOf() { return this.native.getTime() }\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( pattern = 'YYYY-MM-DDThh:mm:ss.sssZ' ) {\n\t\t\treturn super.toString( pattern )\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn mode === 'number' ? this.valueOf() : this.toString()\n\t\t}\n\t\t\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' ',\n\t\t\t\t$mol_dev_format_accent( this.toString( 'YYYY-MM-DD hh:mm:ss.sss Z' ) ),\n\t\t\t)\n\t\t}\n\n\t\t/// Mnemonics:\n\t\t/// * single letter for numbers: M - month number, D - day of month.\n\t\t/// * uppercase letters for dates, lowercase for times: M - month number , m - minutes number\n\t\t/// * repeated letters for define register count: YYYY - full year, YY - shot year, MM - padded month number\n\t\t/// * words for word representation: Month - month name, WeekDay - day of week name\n\t\t/// * shortcuts: WD - short day of week, Mon - short month name.\n\t\tstatic patterns = {\n\n\t\t\t'YYYY' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( moment.year )\n\t\t\t} ,\n\t\t\t\n\t\t\t'AD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( Math.floor( moment.year / 100 ) + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'YY' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( moment.year % 100 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'Month' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { month : 'long' } ) ) ,\n\t\t\t\n\t\t\t'DD Month' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Month' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : '2-digit' , month : 'long' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'D Month' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'D' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Month' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : 'numeric' , month : 'long' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'Mon' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { month : 'short' } ) ) ,\n\t\t\t\n\t\t\t'DD Mon' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Mon' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : '2-digit' , month : 'short' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'D Mon' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'D' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Mon' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : 'numeric' , month : 'short' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'-MM' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn '-' + $mol_time_moment.patterns[ 'MM' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'MM' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn String( 100 + moment.month + 1 ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'M' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn String( moment.month + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'WeekDay' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { weekday : 'long' } ) ) ,\n\n\t\t\t'WD' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { weekday : 'short' } ) ) ,\n\t\t\t\n\t\t\t'-DD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn '-' + $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'DD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn String( 100 + moment.day + 1 ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'D' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn String( moment.day + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'Thh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn 'T' + $mol_time_moment.patterns[ 'hh' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'hh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( 100 + moment.hour ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'h' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( moment.hour )\n\t\t\t} ,\n\t\t\t\n\t\t\t':mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'mm' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( 100 + moment.minute ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( moment.minute )\n\t\t\t},\n\t\t\t\n\t\t\t':ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'ss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( 100 + moment.second | 0 ).slice(1)\n\t\t\t},\n\t\t\t\n\t\t\t's' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( moment.second | 0 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'.sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tif( moment.second === ( moment.second | 0 ) ) return ''\n\t\t\t\treturn '.' + $mol_time_moment.patterns[ 'sss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tconst millisecond = ( moment.second - Math.trunc( moment.second ) ).toFixed( 3 )\n\t\t\t\treturn millisecond.slice(2)\n\t\t\t},\n\t\t\t\n\t\t\t'Z' : ( moment : $mol_time_moment )=> {\n\t\t\t\t\n\t\t\t\tconst offset = moment.offset\n\t\t\t\tif( !offset ) return ''\n\t\t\t\t\n\t\t\t\tlet hour = offset.hour\n\n\t\t\t\tlet sign = '+'\n\t\t\t\tif( hour < 0 ) {\n\t\t\t\t\tsign = '-'\n\t\t\t\t\thour = -hour\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn sign + String( 100 + hour ).slice(1) + ':' + String( 100 + offset.minute ).slice(1)\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_time_interval_config = string | {\n\t\tstart? : $mol_time_moment_config\n\t\tend? : $mol_time_moment_config\n\t\tduration? : $mol_time_duration_config\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time interval representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_interval extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_interval_config ) {\n\t\t\t\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tvar chunks = config.split( '/' )\n\t\t\t\t\n\t\t\t\tif( chunks[0] ) {\n\t\t\t\t\tif( chunks[0][0].toUpperCase() === 'P' ) {\n\t\t\t\t\t\tthis._duration = new $mol_time_duration( chunks[0] )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._start = new $mol_time_moment( chunks[0] )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._start = new $mol_time_moment()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( chunks[1] ) {\n\t\t\t\t\tif( chunks[1][0].toUpperCase() === 'P' ) {\n\t\t\t\t\t\tthis._duration = new $mol_time_duration( chunks[1] )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._end = new $mol_time_moment( chunks[1] )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._end = new $mol_time_moment()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif( config.start !== undefined ) this._start = new $mol_time_moment( config.start )\n\t\t\tif( config.end !== undefined ) this._end = new $mol_time_moment( config.end )\n\t\t\tif( config.duration !== undefined ) this._duration = new $mol_time_duration( config.duration )\n\t\t}\n\n\t\tprivate _start : $mol_time_moment | undefined\n\t\tget start() {\n\t\t\tif( this._start ) return this._start\n\t\t\t\n\t\t\treturn this._start = this._end!.shift( this._duration!.mult( -1 ) )\n\t\t}\n\n\t\tprivate _end : $mol_time_moment | undefined\n\t\tget end() {\n\t\t\tif( this._end ) return this._end\n\t\t\t\n\t\t\treturn this._end = this._start!.shift( this._duration! )\n\t\t}\n\n\t\tprivate _duration : $mol_time_duration | undefined\n\t\tget duration() {\n\t\t\tif( this._duration ) return this._duration\n\t\t\t\n\t\t\treturn this._duration = new $mol_time_duration( this._end!.valueOf() - this._start!.valueOf() )\n\t\t}\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( ) {\n\t\t\treturn ( this._start || this._duration || '' ).toString() + '/' + ( this._end || this._duration || '' ).toString()\n\t\t}\n\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\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' )\n\t\tif( error.length ) throw new Error( error[0].textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $ {\n\t\n\ttype json = null | boolean | number | string | { [ key in string ]: json } | readonly json[]\n\texport type $hyoo_crus_vary_type =\n\t| Uint8Array | bigint | $hyoo_crus_ref\n\t| $mol_time_moment | $mol_time_duration | $mol_time_interval\n\t| $mol_tree2 | json | Node\n\t\n\texport let $hyoo_crus_vary_mapping = {\n\t\t\n\t\tnil: null,\n\t\tbin: Uint8Array,\n\t\tbool: Boolean,\n\t\tint: BigInt,\n\t\treal: Number,\n\t\tref: Symbol,\n\t\t\n\t\tstr: String,\n\t\ttime: $mol_time_moment,\n\t\tdur: $mol_time_duration,\n\t\trange: $mol_time_interval,\n\t\tjson: Object,\n\t\tjsan: Array,\n\t\tdom: $mol_dom_context.Element,\n\t\ttree: $mol_tree2,\n\t\t\n\t}\n\t\n\texport type $hyoo_crus_vary_classes = typeof $hyoo_crus_vary_mapping[ keyof typeof $hyoo_crus_vary_mapping ]\n\t\n\texport type $hyoo_crus_vary_pack = {\n\t\ttip: keyof typeof $hyoo_crus_vary_tip,\n\t\tbin: Uint8Array,\n\t}\n\t\n\texport enum $hyoo_crus_vary_tip {\n\t\t\n\t\tnil = 0b00000, // 0\n\t\tbin = 0b00001, // 0\n\t\tbool = 0b00010, // 1b * 32 * 8\n\t\tint = 0b00011, // 8B * 4\n\t\treal = 0b00100, // 8B * 4\n\t\tref = 0b00101, // 12B + 6B = 18B\n\t\t\n\t\tstr = 0b10000,\n\t\ttime = 0b10001, // iso8601 moment\n\t\tdur = 0b10010, // iso8601 duration\n\t\trange = 0b10011, // iso8601 interval\n\t\tjson = 0b10100, // json object\n\t\tjsan = 0b10101, // json array\n\t\tdom = 0b10110, // dom tree\n\t\ttree = 0b10111, // tree\n\t\t\n\t}\n\t\n\texport function $hyoo_crus_vary_switch< Ways extends {\n\t\t\t\n\t\tnil: ( vary: null )=> any,\n\t\tbin: ( vary: Uint8Array )=> any,\n\t\tbool: ( vary: boolean )=> any,\n\t\tint: ( vary: bigint )=> any,\n\t\treal: ( vary: number )=> any,\n\t\tref: ( vary: $hyoo_crus_ref )=> any,\n\t\t\n\t\tstr: ( vary: string )=> any,\n\t\ttime: ( vary: $mol_time_moment )=> any,\n\t\tdur: ( vary: $mol_time_duration )=> any,\n\t\trange: ( vary: $mol_time_interval )=> any,\n\t\tjson: ( vary: {} )=> any,\n\t\tjsan: ( vary: any[] )=> any,\n\t\tdom: ( vary: Element )=> any,\n\t\ttree: ( vary: $mol_tree2 )=> any,\n\t\t\n\t} >(\n\t\tvary: $hyoo_crus_vary_type,\n\t\tways: Ways,\n\t): $mol_type_result< Ways[ keyof Ways ] > {\n\t\t\n\t\tif( vary === null ) return ways.nil( vary )\n\t\t\t\n\t\tswitch( typeof vary ) {\n\t\t\tcase \"boolean\": return ways.bool( vary )\n\t\t\tcase \"bigint\": return ways.int( vary )\n\t\t\tcase \"number\": return ways.real( vary )\n\t\t\tcase \"string\": return ways.str( vary )\n\t\t\tcase 'symbol': return ways.ref( vary )\n\t\t}\n\t\t\n\t\tswitch( Reflect.getPrototypeOf( vary ) ) {\n\t\t\tcase Object.prototype: return ways.json( vary )\n\t\t\tcase Array.prototype: return ways.jsan( vary as any[] )\n\t\t\tcase Uint8Array.prototype: return ways.bin( vary as Uint8Array )\n\t\t\tcase $mol_time_moment.prototype: return ways.time( vary as $mol_time_moment )\n\t\t\tcase $mol_time_duration.prototype: return ways.dur( vary as $mol_time_duration )\n\t\t\tcase $mol_time_interval.prototype: return ways.range( vary as $mol_time_interval )\n\t\t\tcase $mol_tree2.prototype: return ways.tree( vary as $mol_tree2 )\n\t\t}\n\t\t\n\t\tif( vary instanceof $mol_dom_context.Element ) return ways.dom( vary )\n\t\t\n\t\treturn $mol_fail( new TypeError( `Unsupported vary type` ) )\n\t}\n\t\n\texport function $hyoo_crus_vary_encode( vary: $hyoo_crus_vary_type ): $hyoo_crus_vary_pack {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => ({ tip: 'nil' as const, bin: new Uint8Array([]) }),\n\t\t\tbin: vary => ({ tip: 'bin' as const, bin: vary }),\n\t\t\tbool: vary => ({ tip: 'bool' as const, bin: new Uint8Array([ Number( vary ) ]) }),\n\t\t\tint: vary => ({ tip: 'int' as const, bin: new Uint8Array( new BigInt64Array([ vary as bigint ]).buffer ) }),\n\t\t\treal: vary => ({ tip: 'real' as const, bin: new Uint8Array( new Float64Array([ vary as number ]).buffer ) }),\n\t\t\tref: vary => ({ tip: 'ref' as const, bin: $hyoo_crus_ref_encode( vary ) }),\n\t\t\t\n\t\t\tstr: vary => ({ tip: 'str' as const, bin: $mol_charset_encode( vary as string ) }),\n\t\t\ttime: vary => ({ tip: 'time' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\tdur: vary => ({ tip: 'dur' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\trange: vary => ({ tip: 'range' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\tjson: vary => ({ tip: 'json' as const, bin: $mol_charset_encode( JSON.stringify( vary ) ) }),\n\t\t\tjsan: vary => ({ tip: 'jsan' as const, bin: $mol_charset_encode( JSON.stringify( vary ) ) }),\n\t\t\tdom: vary => ({ tip: 'dom' as const, bin: $mol_charset_encode( $mol_dom_serialize( vary as Node ) ) }),\n\t\t\ttree: vary => ({ tip: 'tree' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\t\n\t\t} )\n\t}\n\t\n\texport function $hyoo_crus_vary_decode( { tip, bin }: $hyoo_crus_vary_pack ): $hyoo_crus_vary_type {\n\t\tswitch( tip ) {\n\t\t\t\n\t\t\tcase 'nil': return null\n\t\t\tcase 'bin': return bin\n\t\t\tcase 'bool': return Boolean( bin[0] )\n\t\t\tcase 'int': return new BigInt64Array( bin.buffer, bin.byteOffset, bin.byteLength / 8 )[0]\n\t\t\tcase 'real': return new Float64Array( bin.buffer, bin.byteOffset, bin.byteLength / 8 )[0]\n\t\t\tcase 'ref': return $hyoo_crus_ref_decode( bin )\n\t\t\t\n\t\t\tcase 'str': return $mol_charset_decode( bin )\n\t\t\tcase 'time': return new $mol_time_moment( $mol_charset_decode( bin ) )\n\t\t\tcase 'dur': return new $mol_time_duration( $mol_charset_decode( bin ) )\n\t\t\tcase 'range': return new $mol_time_interval( $mol_charset_decode( bin ) )\n\t\t\tcase 'json': return JSON.parse( $mol_charset_decode( bin ) )\n\t\t\tcase 'jsan': return JSON.parse( $mol_charset_decode( bin ) )\n\t\t\tcase 'dom': return $mol_dom_parse( $mol_charset_decode( bin ) ).documentElement\n\t\t\tcase 'tree': return $$.$mol_tree2_from_string( $mol_charset_decode( bin ) )\n\t\t\t\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\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\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_bin_to_bytes( tree : $mol_tree2 ) {\n\t\treturn Uint8Array.from( tree.kids , kid => parseInt( kid.value , 16 ) )\n\t}\n\n\texport function $mol_tree2_bin_from_bytes(\n\t\tbytes : ArrayLike< number >,\n\t\tspan = $mol_span.unknown,\n\t) {\n\t\t\n\t\treturn $mol_tree2.list( Array.from( bytes , code => {\n\t\t\treturn $mol_tree2.data( code.toString( 16 ).padStart( 2 , '0' ) , [] , span )\n\t\t} ) , span )\n\t\t\n\t}\n\n\texport function $mol_tree2_bin_from_string(\n\t\tstr : string,\n\t\tspan = $mol_span.unknown,\n\t) {\n\t\treturn $mol_tree2_bin_from_bytes( [ ... new TextEncoder().encode( str ) ] , span )\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_tree2_xml_from_dom( dom: Node ): $mol_tree2 {\n\t\t\n\t\tswitch( dom.nodeType ) {\n\t\t\t\n\t\t\tcase dom.DOCUMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tkids.push( $mol_tree2_xml_from_dom( kid ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.list( kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.PROCESSING_INSTRUCTION_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '?', [\n\t\t\t\t\t$mol_tree2.struct( dom.nodeName, \n\t\t\t\t\t\tdom.nodeValue!.split(' ').map( chunk => {\n\t\t\t\t\t\t\tconst [, name, value ] = /^(.*?)(?:=\"(.*?)\")?$/.exec( chunk )!\n\t\t\t\t\t\t\tconst kids = value ? [ $mol_tree2.data( value ) ] : []\n\t\t\t\t\t\t\treturn $mol_tree2.struct( name, kids )\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.DOCUMENT_TYPE_NODE: {\n\t\t\t\tconst dom2 = dom as DocumentType\n\t\t\t\treturn $mol_tree2.struct( '!', [\n\t\t\t\t\t$mol_tree2.struct( 'DOCTYPE', [ \n\t\t\t\t\t\t$mol_tree2.struct( dom2.name )\n\t\t\t\t\t] )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.ELEMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const attr of ( dom as Element ).attributes ) {\n\t\t\t\t\tkids.push(\n\t\t\t\t\t\t$mol_tree2.struct( '@', [\n\t\t\t\t\t\t\t$mol_tree2.struct( attr.nodeName, [\n\t\t\t\t\t\t\t\t$mol_tree2.data( attr.nodeValue! )\n\t\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\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tconst k = $mol_tree2_xml_from_dom( kid ) \n\t\t\t\t\tif( k.type || k.value ) kids.push( k )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.struct( dom.nodeName, kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.COMMENT_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '--', [\n\t\t\t\t\t$mol_tree2.data( dom.nodeValue! )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.TEXT_NODE: {\n\t\t\t\tif( !dom.nodeValue!.trim() ) return $mol_tree2.list([])\n\t\t\t\treturn $mol_tree2.data(\n\t\t\t\t\tdom.nodeValue!.replace( /\\s+/g, ' ' )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn $mol_fail( new Error( `Unsupported node ${ dom.nodeName }` ) )\n\t}\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\texport function $hyoo_crus_vary_cast_bin( vary: $hyoo_crus_vary_type ) {\n\t\treturn vary === null || vary === '' ? null : $hyoo_crus_vary_encode( vary ).bin\n\t}\n\t\n\texport function $hyoo_crus_vary_cast_bool( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => Boolean( vary.length ),\n\t\t\tbool: vary => vary,\n\t\t\tint: vary => Boolean( vary ),\n\t\t\treal: vary => Boolean( vary ),\n\t\t\tref: vary => Boolean( vary.description ),\n\t\t\t\n\t\t\tstr: vary => Boolean( vary ),\n\t\t\ttime: vary => Boolean( vary.valueOf() ),\n\t\t\tdur: vary => Boolean( vary.valueOf() ),\n\t\t\trange: vary => Boolean( vary.duration.valueOf() ),\n\t\t\tjson: vary => Boolean( Reflect.ownKeys( vary ).length ),\n\t\t\tjsan: vary => Boolean( vary.length ),\n\t\t\tdom: vary => Boolean( vary.attributes.length + vary.childNodes.length ),\n\t\t\ttree: vary => Boolean( vary.value || vary.kids.length ),\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_int( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => BigInt( vary.length ),\n\t\t\tbool: vary => BigInt( vary ),\n\t\t\tint: vary => vary,\n\t\t\treal: vary => Number.isFinite( vary ) ? BigInt( Math.trunc( vary ) ) : null,\n\t\t\tref: vary => null,//$mol_base64_ae_decode( vary.description!.slice( 0, 16 ) ) + ( BigInt( vary.land() ) << 64n ) + ( BigInt( vary.head() ) << 96n ),\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? BigInt( vary ) : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\ttime: vary => BigInt( vary.valueOf() ),\n\t\t\tdur: vary => BigInt( vary.valueOf() ),\n\t\t\trange: vary => BigInt( vary.duration.valueOf() ),\n\t\t\t\n\t\t\tjson: vary => BigInt( Reflect.ownKeys( vary ).length ),\n\t\t\tjsan: vary => BigInt( vary.length ),\n\t\t\tdom: vary => BigInt( vary.attributes.length + vary.childNodes.length ),\n\t\t\t\n\t\t\ttree: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn BigInt( vary.value )\n\t\t\t\t} catch {\n\t\t\t\t\treturn BigInt( vary.kids.length )\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_real( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => vary.length,\n\t\t\tbool: vary => Number( vary ),\n\t\t\tint: vary => Number( vary ),\n\t\t\treal: vary => vary,\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => vary ? Number( vary ) : null,\n\t\t\ttime: vary => vary.valueOf(),\n\t\t\tdur: vary => vary.valueOf(),\n\t\t\trange: vary => vary.duration.valueOf(),\n\t\t\tjson: vary => Reflect.ownKeys( vary ).length,\n\t\t\tjsan: vary => vary.length,\n\t\t\tdom: vary => Number( vary.attributes.length + vary.childNodes.length ),\n\t\t\ttree: vary => Number( vary.value || vary.kids.length ),\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_ref( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => ( !vary.length || vary.length % 6 ) ? null : $hyoo_crus_ref_decode( vary ),\n\t\t\tbool: vary => null,\n\t\t\tint: vary => null,\n\t\t\treal: vary => null,\n\t\t\tref: vary => vary,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn $hyoo_crus_ref( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => null,\n\t\t\tdur: vary => null,\n\t\t\trange: vary => null,\n\t\t\tjson: vary => null,\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn $hyoo_crus_ref( vary.type )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_str( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => [ ... vary ].map( n => n.toString(16).padStart( 2, '0' ) ).join( '' ),\n\t\t\tbool: vary => String( vary ),\n\t\t\tint: vary => String( vary ),\n\t\t\treal: vary => String( vary ),\n\t\t\tref: vary => vary.description!,\n\t\t\t\n\t\t\tstr: vary => vary,\n\t\t\ttime: vary => String( vary ),\n\t\t\tdur: vary => String( vary ),\n\t\t\trange: vary => String( vary ),\n\t\t\tjson: vary => JSON.stringify( vary ),\n\t\t\tjsan: vary => JSON.stringify( vary ),\n\t\t\tdom: vary => $mol_dom_serialize( vary ),\n\t\t\ttree: vary => String( vary ),\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_time( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => new $mol_time_moment( Number( vary & 0xFFFFFFFFFFFFn ) ),\n\t\t\treal: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_moment( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? new $mol_time_moment( vary ) : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => vary,\n\t\t\tdur: vary => null,\n\t\t\trange: vary => null,\n\t\t\tjson: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_moment( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_dur( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => new $mol_time_duration( Number( vary & 0xFFFFFFFFFFFFn ) ),\n\t\t\treal: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_duration( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_duration( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => vary,\n\t\t\tdur: vary => null,\n\t\t\trange: vary => null,\n\t\t\tjson: vary => new $mol_time_duration( vary as any ),\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_range( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => null,\n\t\t\treal: vary => null,\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? new $mol_time_interval( vary ) : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => new $mol_time_interval({ start: vary, duration: 0 }),\n\t\t\tdur: vary => null,\n\t\t\trange: vary => vary,\n\t\t\tjson: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_interval( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_json( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => null,\n\t\t\treal: vary => null,\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\tconst res = JSON.parse( vary )\n\t\t\t\t\tif( typeof res === 'object' ) return res\n\t\t\t\t\treturn null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => ({ ... vary }),\n\t\t\tdur: vary => ({ ... vary }),\n\t\t\trange: vary => ({ ... vary }),\n\t\t\tjson: vary => vary,\n\t\t\tjsan: vary => Object( vary[0] ),\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_jsan( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => [ ... vary ],\n\t\t\tbool: vary => [ vary ],\n\t\t\tint: vary => [ vary.toString() ],\n\t\t\treal: vary => Number.isFinite( vary ) ? [ vary ] : null,\n\t\t\tref: vary => [ vary.description! ],\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\treturn [].concat( JSON.parse( vary ) )\n\t\t\t\t} catch {\n\t\t\t\t\treturn [ vary ]\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => [ vary.toJSON() ],\n\t\t\tdur: vary => [ vary.toJSON() ],\n\t\t\trange: vary => [ vary.toJSON() ],\n\t\t\tjson: vary => [ vary ],\n\t\t\tjsan: vary => vary,\n\t\t\tdom: vary => [ $mol_dom_serialize( vary ) ],\n\t\t\ttree: vary => [ vary.toString() ],\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_dom( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => { vary && $mol_base64_ae_encode( vary ) },\n\t\t\tbool: vary => { vary },\n\t\t\tint: vary => { vary },\n\t\t\treal: vary => { vary },\n\t\t\tref: vary => { vary.description },\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? $mol_dom_parse( vary, 'application/xhtml+xml' ).documentElement : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn { vary }\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => { vary },\n\t\t\tdur: vary => { vary },\n\t\t\trange: vary => { vary },\n\t\t\tjson: vary => { JSON.stringify( vary ) },\n\t\t\tjsan: vary => { JSON.stringify( vary ) },\n\t\t\tdom: vary => vary,\n\t\t\ttree: vary => { vary },\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_tree( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => $mol_tree2_bin_from_bytes( vary ),\n\t\t\tbool: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tint: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\treal: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tref: vary => $mol_tree2.struct( vary.description! ),\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\treturn $$.$mol_tree2_from_string( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn $$.$mol_tree2.data( vary )\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tdur: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\trange: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tjson: vary => $$.$mol_tree2_from_json( vary ),\n\t\t\tjsan: vary => $$.$mol_tree2_from_json( vary ),\n\t\t\tdom: vary => $$.$mol_tree2_xml_from_dom( vary ),\n\t\t\ttree: vary => vary,\n\t\t\t\n\t\t})\n\t}\n\n\texport const $hyoo_crus_vary_cast_funcs = {\n\t\t\t\n\t\tnil: ()=> null,\n\t\tbin: $hyoo_crus_vary_cast_bin,\n\t\tbool: $hyoo_crus_vary_cast_bool,\n\t\tint: $hyoo_crus_vary_cast_int,\n\t\treal: $hyoo_crus_vary_cast_real,\n\t\tref: $hyoo_crus_vary_cast_ref,\n\t\t\n\t\tstr: $hyoo_crus_vary_cast_str,\n\t\ttime: $hyoo_crus_vary_cast_time,\n\t\tdur: $hyoo_crus_vary_cast_dur,\n\t\trange: $hyoo_crus_vary_cast_range,\n\t\tjson: $hyoo_crus_vary_cast_json,\n\t\tjsan: $hyoo_crus_vary_cast_jsan,\n\t\tdom: $hyoo_crus_vary_cast_dom,\n\t\ttree: $hyoo_crus_vary_cast_tree,\n\t\t\n\t} as const\n\t\n\texport function $hyoo_crus_vary_cast<\n\t\tTip extends keyof typeof $hyoo_crus_vary_tip\n\t>(\n\t\ttip: Tip,\n\t\tvary: $hyoo_crus_vary_type,\n\t) {\n\t\treturn $hyoo_crus_vary_cast_funcs[ tip ]( vary )\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined(value: T): value is NonNullable {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n export class $mol_bus< Data > extends $mol_object {\n\t\t\n readonly channel: BroadcastChannel\n\t\t\n\t\tconstructor(\n\t\t\treadonly name: string,\n\t\t\treadonly handle: ( data: Data )=> void\n\t\t) {\n\t\t\tsuper()\n const channel = new BroadcastChannel( name )\n channel.onmessage = ( event: MessageEvent< Data > )=> this.handle( event.data )\n\t\t\tthis.channel = channel\n }\n\t\t\n\t\tdestructor() {\n\t\t\tthis.channel.close()\n\t\t}\n\t\t\n\t\tsend( data: Data ) {\n\t\t\tthis.channel.postMessage( data )\n\t\t}\n\t\t\n }\n}\n","namespace $ {\n\n\texport function $mol_promise< Result = void >() {\n\t\t\n\t\tlet done!: ( res: Result | PromiseLike< Result > )=> void\n\t\tlet fail!: ( error?: any ) => void\n\t\t\n\t\tconst promise = new Promise< Result >( ( d, f ) => {\n\t\t\tdone = d\n\t\t\tfail = f\n\t\t} )\n\t\t\n\t\treturn Object.assign( promise, {\n\t\t\tdone,\n\t\t\tfail,\n\t\t} )\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_wait_timeout_async( this: $, timeout: number ) {\n\t\tconst promise = $mol_promise()\n\t\tconst task = new this.$mol_after_timeout( timeout , ()=> promise.done() )\n\t\treturn Object.assign( promise, {\n\t\t\tdestructor: ()=> task.destructor()\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_timeout( this: $, timeout: number ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_timeout_async( timeout )\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Starts subtasks concurrently instead of serial. */\n\texport function $mol_wire_race<\n\t\tTasks extends ( ( ... args: any )=> any )[]\n\t>( ... tasks: Tasks ): {\n\t\t[ index in keyof Tasks ]: ReturnType< Tasks[ index ] > \n\t} {\n\t\t\n\t\tconst results = tasks.map( task => {\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn task()\n\t\t\t} catch( error ) {\n\t\t\t\treturn error\n\t\t\t}\n\t\t\t\n\t\t} )\n\t\t\n\t\tconst promises = results.filter( res => $mol_promise_like( res ) )\n\t\tif( promises.length ) $mol_fail( Promise.race( promises ) )\n\t\t\n\t\tconst error = results.find( res => res instanceof Error )\n\t\tif( error ) $mol_fail( error )\n\t\t\n\t\treturn results as any\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_land extends $mol_object {\n\t\t\n\t\trealm() {\n\t\t\treturn null as null | $hyoo_crus_realm\n\t\t}\n\t\t\n\t\tref() {\n\t\t\treturn this.auth().lord()\n\t\t}\n\t\t\n\t\tauth() {\n\t\t\treturn this.$.$hyoo_crus_auth.current()\n\t\t}\n\t\t\n\t\tfaces = new $hyoo_crus_face_map\n\t\t\n\t\tpasses = new $mol_wire_dict< string /*peer*/, $hyoo_crus_pass >()\n\t\tgifts = new $mol_wire_dict< $hyoo_crus_ref /*lord*/, $hyoo_crus_gift >()\n\t\tgists = new $mol_wire_dict< string /*head*/, $mol_wire_dict< string /*self*/, $hyoo_crus_gist > >()\n\t\t\n\t\tself_all = new $mol_wire_set< string >()\n\t\t\n\t\t@ $mol_action\n\t\tself_make( area: keyof typeof $hyoo_crus_area, idea = Math.floor( Math.random() * 2**48 ) ) {\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst rank = this.lord_rank( auth.lord() )\n\t\t\t\n\t\t\tif( rank === $hyoo_crus_rank.add ) return $hyoo_crus_area_to( auth.peer(), 'data' )\n\t\t\tif( rank === $hyoo_crus_rank.nil ) $mol_fail( new Error( 'Rank too low (nil)' ) )\n\t\t\t\n\t\t\tfor( let i = 0; i < 4096; ++i ) {\n\t\t\t\t\n\t\t\t\tidea = ( idea + 1 ) % 2**48\n\t\t\t\tif( !idea ) continue\n\t\t\t\tif( $hyoo_crus_area[ idea % 2 ] !== area ) continue\n\t\t\t\t\n\t\t\t\tconst idea_str = $mol_base64_ae_encode( new Uint8Array( new BigUint64Array([ BigInt( idea ) ]).buffer, 0, 6 ) )\n\t\t\t\tif( this.self_all.has( idea_str ) ) continue\n\t\t\t\t\n\t\t\t\tthis.self_all.add( idea_str )\n\t\t\t\treturn idea_str\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too long self generation` ) )\n\t\t}\n\t\t\n\t\thome() {\n\t\t\treturn this.Data( $hyoo_crus_home )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tData< Node extends typeof $hyoo_crus_node >( Node: Node ) {\n\t\t\treturn this.Node( Node ).Item( '' ) // 0\n\t\t} \n\t\t\n\t\t@ $mol_mem\n\t\tMeta() {\n\t\t\treturn this.Node( $hyoo_crus_meta ).Item( 'AQAAAAAA' ) // 1\n\t\t} \n\t\t\n\t\t@ $mol_mem_key\n\t\tNode< Node extends typeof $hyoo_crus_node >( Node: Node ): $hyoo_crus_fund< string, InstanceType< Node > > {\n\t\t\treturn new $hyoo_crus_fund( ( head: string )=> {\n\t\t\t\tif( head === 'AAAAAAAA' ) return this.Node( Node ).Item( '' )\n\t\t\t\treturn ( Node as typeof $hyoo_crus_node ).make({\n\t\t\t\t\tland: ()=> this.sync(),\n\t\t\t\t\thead: $mol_const( head ),\n\t\t\t\t}) as InstanceType< Node >\n\t\t\t} )\n\t\t} \n\t\t\n\t\t/** Total count of Units inside Land. */\n\t\t@ $mol_mem\n\t\ttotal() {\n\t\t\tlet total = this.passes.size + this.gifts.size\n\t\t\tfor( const units of this.gists.values() ) total += units.size\n\t\t\treturn total\n\t\t}\n\t\t\n\t\t/** All joined Lords. */\n\t\t@ $mol_mem\n\t\tjoined_list() {\n\t\t\treturn [ ... this.passes.values() ].map( unit => unit.lord() )\n\t\t}\n\t\t\n\t\t/** Public key of Land Lord. */\n\t\t@ $mol_mem\n\t\tkey() {\n\t\t\tconst pass = this.passes.get( $hyoo_crus_ref_peer( this.ref() ) )\n\t\t\tif( !pass ) return null\n\t\t\treturn $hyoo_crus_auth.from( pass.auth() )\n\t\t}\n\t\t\n\t\t/** Rights level of Lord for Land. */\n\t\t@ $mol_mem_key\n\t\tlord_rank( lord: $hyoo_crus_ref, next?: $hyoo_crus_rank ) {\n\t\t\t\n\t\t\tif( lord === this.ref() ) return $hyoo_crus_rank.law\n\t\t\t\n\t\t\tconst prev = this.gifts.get( lord )?.rank()\n\t\t\t\t?? this.gifts.get( $hyoo_crus_ref( '' ) )?.rank()\n\t\t\t\t?? $hyoo_crus_rank.get\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( next === prev ) return prev\n\t\t\t\n\t\t\tconst key = this.passes.get( $hyoo_crus_ref_peer( lord ) )?.auth()\n\t\t\tif( !key ) $mol_fail( new Error( `No pub key for lord (${ lord.description })` ) )\n\t\t\t\n\t\t\tthis.give( $hyoo_crus_auth.from( key ), next )\n\t\t\treturn next\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Rights level of Peer for Land. */\n\t\tpeer_rank( peer: string ) {\n\t\t\tconst auth = this.passes.get( peer )!\n\t\t\tif( !auth ) return $hyoo_crus_rank.get\n\t\t\treturn this.lord_rank( auth.lord() )\n\t\t}\n\t\t\n\t\t/** Picks units between Face and current state. */\n\t\tdelta_unit( face = new $hyoo_crus_face_map ): $hyoo_crus_unit[] {\n\t\t\t\n\t\t\tthis.loading()\n\t\t\t\n\t\t\tconst delta = [] as $hyoo_crus_unit[]\n\t\t\t\n\t\t\tconst passed = new Set< string >()\n\t\t\tconst auth = ( peer: string )=> {\n\t\t\t\t\n\t\t\t\tif( passed.has( peer ) ) return\n\t\t\t\tif( face.get( peer ) ) return\n\t\t\t\t\n\t\t\t\tconst pass = this.passes.get( peer )\n\t\t\t\tif( !pass ) $mol_fail( new Error( `No pass for Peer (${ peer })` ) )\n\t\t\t\t\n\t\t\t\tdelta.push( pass )\n\t\t\t\tpassed.add( peer )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ lord, unit ] of this.gifts ) {\n\t\t\t\t\n\t\t\t\tconst time = face.get( unit.peer() ) ?? 0\n\t\t\t\tif( time >= unit.time() ) continue\n\t\t\t\t\n\t\t\t\tauth( unit.peer() )\n\t\t\t\tdelta.push( unit )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const kids of this.gists.values() ) {\n\t\t\t\tfor( const unit of kids.values() ) {\n\t\t\t\t\t\n\t\t\t\t\tconst time = face.get( unit.peer() ) ?? 0\n\t\t\t\t\tif( time >= unit.time() ) continue\n\t\t\t\t\t\n\t\t\t\t\tauth( unit.peer() )\n\t\t\t\t\tdelta.push( unit )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( delta.length || this.faces.total <= this.faces.total ) return delta\n\t\t\treturn this.delta_unit()\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Makes binary Delta between Face and current state. */\n\t\tdelta_pack( face = new $hyoo_crus_face_map ) {\n\t\t\t\n\t\t\tconst parts = this.delta_parts( face )\n\t\t\tif( !parts ) return null\n\t\t\t\n\t\t\tconst pack = $hyoo_crus_pack.make( parts )\n\t\t\t\n\t\t\treturn pack\n\t\t}\n\t\t\n\t\tdelta_parts( face = new $hyoo_crus_face_map ) {\n\t\t\t\n\t\t\tconst units = this.delta_unit( face )\n\t\t\tif( !units.length ) return null\n\t\t\t\n\t\t\tconst rocks = [] as [ Uint8Array, null | Uint8Array ][]\n\t\t\t\n\t\t\tfor( let unit of units ) {\n\t\t\t\t\n\t\t\t\tif( unit.kind() !== 'gist' ) continue\n\t\t\t\t\n\t\t\t\tconst gist = unit.narrow() as $hyoo_crus_gist\n\t\t\t\tif( gist.size() <= 32 ) continue\n\t\t\t\t\n\t\t\t\tconst rock = this.$.$hyoo_crus_mine.rock( gist.hash() ) ?? null\n\t\t\t\trocks.push([ gist.hash(), rock ])\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tlands: {\n\t\t\t\t\t[ this.ref() ]: {\n\t\t\t\t\t\tfaces: new $hyoo_crus_face_map,\n\t\t\t\t\t\tunits,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trocks,\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tfaces_pack() {\n\t\t\tconst pack = $hyoo_crus_pack.make({\n\t\t\t\tlands: {\n\t\t\t\t\t[ this.ref() ]: { faces: this.faces, units: [] },\n\t\t\t\t},\n\t\t\t\trocks: [],\n\t\t\t})\n\t\t\treturn pack\n\t\t}\n\t\t\n\t\t/** Applies Delta to current state with verify. */\n\t\t@ $mol_action\n\t\tapply_unit( delta: readonly $hyoo_crus_unit[], skip_check = false ) {\n\t\t\t\n\t\t\tif( !delta.length ) return []\n\t\t\t\n\t\t\tconst errors = $mol_wire_sync( this ).units_verify( delta )\n\t\t\tif( errors.some( v => v ) ) return errors\n\t\t\t\n\t\t\treturn this.apply_unit_trust( delta, skip_check )\n\t\t}\n\t\t\n\t\tasync units_verify( delta: readonly $hyoo_crus_unit[] ) {\n\t\t\t\n\t\t\tconst passes = delta.filter( unit => unit.kind() === 'pass' ) as $hyoo_crus_pass[]\n\t\t\tconst auth = new Map( passes.map( ( unit: $hyoo_crus_pass )=> [ unit.peer(), unit.auth() ] ) )\n\t\t\t\n\t\t\tconst mixin = $hyoo_crus_ref_encode( this.ref() )\n\t\t\t\n\t\t\treturn await Promise.all( delta.map( async unit => {\n\t\t\t\t\n\t\t\t\tlet key_public = this.key_public( unit.peer() )\n\t\t\t\tif( !key_public ) {\n\t\t\t\t\t\n\t\t\t\t\tconst key_serial = auth.get( unit.peer() )\n\t\t\t\t\tif( !key_serial ) return `No public key for peer (${unit.peer()})`\n\t\t\t\t\t\n\t\t\t\t\tkey_public = $mol_crypto_key_public.from( key_serial )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst sens = unit.sens().slice()\n\t\t\t\tfor( let i = 0; i < mixin.length; ++i ) sens[i+14] ^= mixin[i+14]\n\t\t\t\t\n\t\t\t\treturn await key_public.verify( sens, unit.sign() ) ? '' : `Wrong unit sign`\n\t\n\t\t\t} ) )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Applies Delta to current state without verifying. */\n\t\t@ $mol_action\n\t\tapply_unit_trust( delta: readonly $hyoo_crus_unit[], skip_check = false ) {\n\t\t\treturn delta.map( unit => {\n\t\t\t\t\n\t\t\t\tif( !skip_check ) {\n\t\t\t\t\tconst error = this.check_unit( unit )\n\t\t\t\t\tif( error ) return error\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlet need_recheck = false\n\t\t\t\tconst res = unit.choose({\n\t\t\t\t\t\n\t\t\t\t\tpass: next => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst peer = next.peer()\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst exists = this.passes.get( peer )\n\t\t\t\t\t\tif( exists ) return ''\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.passes.set( peer, next )\n\t\t\t\t\t\tthis.faces.total ++\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tgift: next => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst dest = next.dest()\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst prev = this.gifts.get( dest )\n\t\t\t\t\t\tif( prev && $hyoo_crus_gift.compare( prev, next ) <= 0 ) return ''\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.gifts.set( dest, next )\n\t\t\t\t\t\tthis.faces.time_max( next.peer(), next.time() )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !prev ) this.faces.total ++\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ( prev?.rank() ?? $hyoo_crus_rank.nil ) > next.rank() ) need_recheck = true\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tgist: next => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst head = next.head()\n\t\t\t\t\t\tconst self = next.self()\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet units = this.gists.get( head )\n\t\t\t\t\t\tif( !units ) this.gists.set( head, units = new $mol_wire_dict )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tconst prev = units.get( self )\n\t\t\t\t\t\tif( prev && $hyoo_crus_gist.compare( prev, next ) <= 0 ) return ''\n\t\t\t\t\t\t\n\t\t\t\t\t\tunits.set( self, next )\n\t\t\t\t\t\tthis.self_all.add( self )\n\t\t\t\t\t\tthis.faces.time_max( next.peer(), next.time() )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !prev ) this.faces.total ++\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\t\t\t\t\n\t\t\t\tif( need_recheck ) this.recheck()\n\t\t\t\treturn res ?? ''\n\t\t\t\t\n\t\t\t})\n\t\t}\n\t\t\n\t\tapply_land( land: $hyoo_crus_land ) {\n\t\t\treturn this.apply_unit_trust( land.delta_unit() )\n\t\t}\n\t\t\n\t\trecheck() {\n\t\t\t\n\t\t\tfor( const [ peer, pass ] of this.passes ) {\n\t\t\t\tif( !this.check_unit( pass ) ) continue\n\t\t\t\tthis.passes.delete( peer )\n\t\t\t\tthis.faces.total --\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ lord, gift ] of this.gifts ) {\n\t\t\t\tif( !this.check_unit( gift ) ) continue\n\t\t\t\tthis.gifts.delete( lord )\n\t\t\t\tthis.faces.total --\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ head, units ] of this.gists ) {\n\t\t\t\tfor( const [ self, gist ] of units ) {\n\t\t\t\t\tif( !this.check_unit( gist ) ) continue\n\t\t\t\t\tunits.delete( self )\n\t\t\t\t\tthis.faces.total --\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tcheck_unit( unit: $hyoo_crus_unit ): string {\n\t\t\treturn unit.choose({\n\t\t\t\t\n\t\t\t\tpass: next => this.lord_rank( next.lord() ) < $hyoo_crus_rank.add ? 'Need add rank to join' : '',\n\t\t\t\t\n\t\t\t\tgift: next => this.peer_rank( next.peer() ) < $hyoo_crus_rank.law ? 'Need law rank to change rank': '',\n\t\t\t\t\n\t\t\t\tgist: next => {\n\t\t\t\t\tif( $hyoo_crus_area_of( next.self() ) !== $hyoo_crus_area_of( next.self() ) ) return 'Need same area'\n\t\t\t\t\tif( $hyoo_crus_area_to( next.peer(), 'data' ) === next.self() ) {\n\t\t\t\t\t\treturn this.peer_rank( next.peer() ) < $hyoo_crus_rank.add ? 'Need add rank to post self data' : ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( $hyoo_crus_area_of( next.self() ) === 'data' ) {\n\t\t\t\t\t\t\treturn this.peer_rank( next.peer() ) < $hyoo_crus_rank.mod ? 'Need mod rank to post any data' : ''\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn this.peer_rank( next.peer() ) < $hyoo_crus_rank.law ? 'Need law rank to post to meta area' : ''\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})\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tfork( preset = $hyoo_crus_rank_public ) {\n\t\t\tconst realm = this.realm()\n\t\t\t\n\t\t\tif( !realm ) $mol_fail( new Error( 'Realm is required to fork' ) )\n\t\t\t\n\t\t\tconst land = realm.land_grab( preset )\n\t\t\tland.Meta().Inflow(null)!.items_vary([ this.ref() ])\n\t\t\t\n\t\t\treturn land\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgists_ordered( head: string ) {\n\t\t\t\n\t\t\tthis.sync()\n\t\t\t\n\t\t\tconst queue = [ ... this.gists.get( head )?.values() ?? [] ]\n\t\t\tconst res = [] as $hyoo_crus_gist[]\n\t\t\t\n\t\t\tconst slices = new WeakMap\n\t\t\tfor( const gist of queue ) slices.set( gist, 0 )\n\t\t\t\n\t\t\tmerge: if( $hyoo_crus_area_of( head ) === 'data' ) {\n\t\t\t\t\n\t\t\t\tconst inflow = ( this.Meta().Inflow()?.items_vary().slice().reverse() ?? [] )\n\t\t\t\t\t.map( $hyoo_crus_vary_cast_ref )\n\t\t\t\t\t.filter( $mol_guard_defined )\n\t\t\t\tif( !inflow.length ) break merge\n\t\t\t\t\n\t\t\t\tconst exists = new Set([ ... this.gists.get( head )?.keys() ?? [] ])\n\t\t\t\t\n\t\t\t\tconst realm = this.realm()\n\t\t\t\tlet slice = 0\n\t\t\t\tif( realm ) for( const ref of inflow ) {\n\t\t\t\t\t++ slice\n\t\t\t\t\tconst land = realm.Land( ref )\n\t\t\t\t\tfor( const gist of land.gists_ordered( head ) ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( exists.has( gist.self() ) ) continue\n\t\t\t\t\t\tqueue.push( gist )\n\t\t\t\t\t\texists.add( gist.self() )\n\t\t\t\t\t\tslices.set( gist, slice )\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\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( queue.length < 2 ) return queue.filter( unit => !unit.nil() )\n\t\t\t\n\t\t\tconst compare = ( left: $hyoo_crus_gist, right: $hyoo_crus_gist )=> {\n\t\t\t\treturn ( slices.get( left ) - slices.get( right ) ) || $hyoo_crus_gist.compare( left, right )\n\t\t\t}\n\t\t\t\n\t\t\tqueue.sort( compare )\n\t\t\t\n\t\t\tconst locate = ( self: string )=> {\n\t\t\t\t\n\t\t\t\tfor( let i = res.length - 1; i >= 0; --i ) {\n\t\t\t\t\tif( res[i].self() === self ) return i\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\t\n\t\t\twhile( queue.length ) {\n\t\t\t\t\n\t\t\t\tres.push( queue.pop()! )\n\t\t\t\t\n\t\t\t\tfor( let cursor = queue.length - 1; cursor >= 0; --cursor ) {\n\t\t\t\t\t\n\t\t\t\t\tconst kid = queue[cursor]\n\t\t\t\t\tlet index = 0\n\n\t\t\t\t\tif( kid.lead() ) {\n\t\t\t\t\t\tindex = locate( kid.lead() ) + 1\n\t\t\t\t\t\tif( !index ) continue\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\twhile( res[ index ] && ( compare( res[ index ], kid ) < 0 ) ) ++ index\n\t\t\t\t\t\n\t\t\t\t\tconst exists = locate( kid.self() )\n\t\t\t\t\tif( index === exists ) {\n\t\t\t\t\t\tif( cursor === queue.length - 1 ) queue.pop()\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif( exists >= 0 ) {\n\t\t\t\t\t\tres.splice( exists, 1 )\n\t\t\t\t\t\tif( exists < index ) -- index\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tres.splice( index, 0, kid )\n\t\t\t\t\t\n\t\t\t\t\tif( cursor === queue.length - 1 ) queue.pop()\n\t\t\t\t\tcursor = queue.length\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\t/** Register public key **/\n\t\t@ $mol_action\n\t\tjoin() {\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\t\n\t\t\tconst prev = this.passes.get( auth.peer() )\n\t\t\tif( prev ) return prev\n\t\t\t\n\t\t\tconst next = new $hyoo_crus_pass\n\t\t\tnext.auth( auth.public().asArray() )\n\t\t\tnext._land = this\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ next ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t/**\n\t\t * Gives access rights to Lord by Auth key.\n\t\t * `null` - gives rights for all Peers.\n\t\t */\n\t\t@ $mol_action\n\t\tgive(\n\t\t\tdest: $hyoo_crus_auth | null,\n\t\t\trank: $hyoo_crus_rank,\n\t\t) {\n\t\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst unit = new $hyoo_crus_gift\n\t\t\t\n\t\t\tunit.rank( rank )\n\t\t\tunit.time( this.faces.tick() )\n\t\t\tunit.peer( auth.peer() )\n\t\t\tunit.dest( dest ? dest.lord() : $hyoo_crus_ref('') )\n\t\t\tunit._land = this\n\t\t\t\n\t\t\tif( rank >= $hyoo_crus_rank.get ) {\n\t\t\t\t\n\t\t\t\tconst secret_land = this.secret()\n\t\t\t\tif( secret_land ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !dest ) $mol_fail( new Error( `Encrypted land can't be shared to everyone` ) )\n\t\t\t\t\t\n\t\t\t\t\tconst secret_mutual = this.secret_mutual( dest.toString() )\n\t\t\t\t\tif( secret_mutual ) {\n\t\t\t\t\t\tconst secret_bin = $mol_wire_sync( secret_land ).serial()\n\t\t\t\t\t\tconst bill = $mol_wire_sync( secret_mutual ).encrypt( secret_bin, unit.salt() )\n\t\t\t\t\t\tunit.bill().set( bill )\n\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}\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ unit ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\treturn unit\n\t\t}\n\t\t\n\t\t/** Places data to tree. */\n\t\t@ $mol_action\n\t\tpost(\n\t\t\tlead: string,\n\t\t\thead: string,\n\t\t\tself: string,\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\t\n\t\t\tif( typeof vary === 'symbol' ) vary = $hyoo_crus_ref_relate( this.ref(), vary )\n\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst unit = new $hyoo_crus_gist\n\t\t\t\n\t\t\tunit.time( this.faces.tick() )\n\t\t\tunit.peer( auth.peer() )\n\t\t\tunit.lead( lead )\n\t\t\tunit.head( head )\n\t\t\tunit._vary = vary\n\t\t\tunit._land = this\n\t\t\t\n\t\t\tlet { tip, bin } = $hyoo_crus_vary_encode( vary )\n\t\t\tunit._open = bin\n\t\t\t\n\t\t\tif( vary !== null && this.encrypted() ) {\n\t\t\t\tunit.hash( $mol_crypto_hash( bin ), tip, tag )\n\t\t\t} else {\n\t\t\t\tif( bin.byteLength > 32 ) unit.hash( this.$.$hyoo_crus_mine.hash( bin ), tip, tag )\n\t\t\t\telse unit.data( bin, tip, tag )\n\t\t\t}\n\t\t\n\t\t\tunit.self( self || this.self_make( $hyoo_crus_area_of( head ), unit.idea() ) )\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ unit ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\treturn unit\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tgist_move(\n\t\t\tgist: $hyoo_crus_gist,\n\t\t\thead: string,\n\t\t\tseat: number,\n\t\t) {\n\t\t\t\n\t\t\tif( gist.nil() ) $mol_fail( new RangeError( `Can't move wiped gist` ) )\n\t\t\t\n\t\t\tconst units = this.gists_ordered( head ).filter( unit => !unit.nil() )\n\t\t\tif( seat > units.length ) $mol_fail( new RangeError( `Seat (${seat}) out of units length (${units.length})` ) )\n\t\t\t\n\t\t\tconst lead = seat ? units[ seat - 1 ].self() : ''\n\t\t\tconst vary = this.gist_decode( gist )\n\t\t\t\n\t\t\tif( gist.head() === head ) {\n\t\t\t\t\n\t\t\t\tconst seat_prev = units.indexOf( gist )\n\t\t\t\t\n\t\t\t\tif( seat === seat_prev ) return\n\t\t\t\tif( seat === seat_prev + 1 ) return\n\t\t\t\t\n\t\t\t\tconst prev = seat_prev ? units[ seat_prev - 1 ].self() : ''\n\t\t\t\tconst next = units[ seat_prev + 1 ]\n\t\t\t\t\n\t\t\t\tif( next ) this.post(\n\t\t\t\t\tprev,\n\t\t\t\t\thead,\n\t\t\t\t\tnext.self(),\n\t\t\t\t\tthis.gist_decode( next ),\n\t\t\t\t\tnext.tag(),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.gist_wipe( gist )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.post(\n\t\t\t\tlead,\n\t\t\t\thead,\n\t\t\t\tgist.self(),\n\t\t\t\tvary,\n\t\t\t\tgist.tag(),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tgist_wipe( gist: $hyoo_crus_gist ) {\n\t\t\t\n\t\t\tconst units = this.gists_ordered( gist.head() ).filter( unit => !unit.nil() )\n\t\t\tconst seat = units.indexOf( gist )\n\t\t\t\n\t\t\tthis.post(\n\t\t\t\tseat ? units[ seat - 1 ].self() : '',\n\t\t\t\tgist.head(),\n\t\t\t\tgist.self(),\n\t\t\t\tnull,\n\t\t\t\t'term',\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tbroadcast() {\n\t\t\tthis.realm()?.yard().neonatals.add( this.ref() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync() {\n\t\t\t\n\t\t\tthis.loading()\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.saving()\n\t\t\t\tthis.bus()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t\tthis.realm()?.yard().sync_land( this.ref() )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbus() {\n\t\t\treturn new this.$.$mol_bus< ArrayBuffer[] >(\n\t\t\t\t`$hyoo_crus_land:${ this.ref().description }`,\n\t\t\t\t$mol_wire_async( bins => {\n\t\t\t\t\t\n\t\t\t\t\tconst yard = this.realm()!.yard()\n\t\t\t\t\t\n\t\t\t\t\tthis.apply_unit_trust( bins.map( bin => {\n\t\t\t\t\t\tconst unit = new $hyoo_crus_unit( bin ).narrow()\n\t\t\t\t\t\tyard.persisted.add( unit )\n\t\t\t\t\t\treturn unit\n\t\t\t\t\t} ) )\n\t\t\t\t\t\n\t\t\t\t} ),\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tloading() {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tconst realm = this.realm()\n\t\t\tif( !realm ) return\n\t\t\t\n\t\t\tconst units = realm.yard().load( this ) ?? []\n\t\t\t\n\t\t\t$mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Load Unit',\n\t\t\t\tunits: units.length,\n\t\t\t})\n\t\t\t\n\t\t\tconst errors = this.apply_unit_trust( units, !!'skip_check' ).filter( Boolean )\n\t\t\t\n\t\t\tif( errors.length ) this.$.$mol_log3_fail({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: errors.join( '\\n' ),\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsaving() {\n\t\t\tthis.$.$mol_wait_timeout(250)\n\t\t\tthis.save()\n\t\t}\n\t\t\n\t\tsave() {\n\t\t\t\n\t\t\tconst yard = this.realm()?.yard()\n\t\t\tif( !yard ) return\n\t\t\t\n\t\t\tconst encoding = [] as $hyoo_crus_gist[]\n\t\t\tconst signing = [] as $hyoo_crus_unit[]\n\t\t\tconst persisting = [] as $hyoo_crus_unit[]\n\t\t\t\n\t\t\tfor( const pass of this.passes.values() ) {\n\t\t\t\tif( !pass.signed() ) signing.push( pass )\n\t\t\t\tif( !yard.persisted.has( pass ) ) persisting.push( pass )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const gift of this.gifts.values() ) {\n\t\t\t\tif( !gift.signed() ) signing.push( gift )\n\t\t\t\tif( !yard.persisted.has( gift ) ) persisting.push( gift )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const kids of this.gists.values() ) {\n\t\t\t\tfor( const gist of kids.values() ) {\n\t\t\t\t\tif( !gist.signed() ) {\n\t\t\t\t\t\tencoding.push( gist )\n\t\t\t\t\t\tsigning.push( gist )\n\t\t\t\t\t}\n\t\t\t\t\tif( !yard.persisted.has( gist ) ) persisting.push( gist )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_race( ... encoding.map( unit => ()=> this.gist_encode( unit ) ) )\n\t\t\t$mol_wire_race( ... signing.map( unit => ()=> this.unit_sign( unit ) ) )\n\t\t\t\n\t\t\tif( persisting.length )\t$mol_wire_sync( yard ).save( this, persisting )\n\t\t\tthis.bus().send( persisting.map( unit => unit.buffer ) )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tunit_sign( unit: $hyoo_crus_unit ) {\n\t\t\tif( unit.signed() ) return\n\t\t\t\n\t\t\tconst key = $mol_wire_sync( unit._land!.auth() )\n\t\t\tconst mixin = $hyoo_crus_ref_encode( unit._land!.ref() )\n\t\t\t\n\t\t\tconst sens = unit.sens().slice()\n\t\t\tfor( let i = 0; i < mixin.length; ++i ) sens[i+14] ^= mixin[i+14]\n\t\t\t\n\t\t\tconst sign = new Uint8Array( key.sign( sens ) )\n\t\t\tunit.sign( sign )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgist_encode( gist: $hyoo_crus_gist ) {\n\t\t\t\n\t\t\tif( gist._open === null ) return gist\n\t\t\tif( gist.nil() ) return gist\n\t\t\t\n\t\t\tlet bin = gist._open\n\t\t\tconst secret = gist._land!.secret()!\n\t\t\t\n\t\t\tif( secret ) bin = new Uint8Array( $mol_wire_sync( secret ).encrypt( bin, gist.salt() ) )\n\t\t\t\n\t\t\tif( bin.byteLength > 32 ) gist.hash( this.$.$hyoo_crus_mine.save( bin ), gist.tip(), gist.tag() )\n\t\t\telse gist.data( bin, gist.tip(), gist.tag() )\n\t\t\t\n\t\t\treturn gist\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgist_decode( gist: $hyoo_crus_gist ): $hyoo_crus_vary_type {\n\t\t\tlet vary = this.gist_decode_raw( gist )\n\t\t\tif( typeof vary === 'symbol' ) vary = $hyoo_crus_ref_resolve( this.ref(), vary )\n\t\t\treturn vary\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgist_decode_raw( gist: $hyoo_crus_gist ): $hyoo_crus_vary_type {\n\t\t\t\n\t\t\tif( this.gists.get( gist.head() )?.get( gist.self() ) !== gist ) {\n\t\t\t\tfor( const id of this.Meta().Inflow()?.items_vary() ?? [] ) {\n\t\t\t\t\tconst vary = this.realm()?.Land( $hyoo_crus_vary_cast_ref( id! )! ).gist_decode_raw( gist )\n\t\t\t\t\tif( vary !== undefined ) return vary\n\t\t\t\t}\n\t\t\t\treturn undefined!\n\t\t\t}\n\t\t\t\n\t\t\tconst secret = this.secret()\n\t\t\t\n\t\t\tif( gist._vary !== undefined ) return gist._vary\n\t\t\tif( gist._open !== null ) return gist._vary = $hyoo_crus_vary_decode({ tip: gist.tip(), bin: gist._open })\n\t\t\t\n\t\t\tlet bin = gist.size() > 32 ? this.$.$hyoo_crus_mine.rock( gist.hash() ) : gist.data()\n\t\t\tif( secret && bin && !gist.nil() ) {\n\t\t\t\ttry {\n\t\t\t\t\tbin = new Uint8Array( $mol_wire_sync( secret ).decrypt( bin, gist.salt() ) )\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\t\tif( error.message ) $mol_fail_hidden( error )\n\t\t\t\t\t\telse $mol_fail_hidden( new Error( `Can't decrypt`, { cause: error } ) )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tgist._open = bin\n\t\t\treturn gist._vary = ( bin ? $hyoo_crus_vary_decode({ tip: gist.tip(), bin }) : null )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tkey_public( peer: string ) {\n\t\t\tconst key = this.passes.get( peer )?.auth()\n\t\t\treturn key ? $mol_crypto_key_public.from( key ) : null\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsecret_mutual( key_public: string ) {\n\t\t\treturn $mol_wire_sync( $mol_crypto_secret ).derive(\n\t\t\t\tthis.auth().toString(),\n\t\t\t\tkey_public,\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tencryptable() {\n\t\t\treturn !this.gists.size\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tencrypted( next?: boolean ) {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tconst gift = this.gifts.get( this.ref() )\n\t\t\tconst prev = gift?.bill().some( b => b ) ?? false\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( prev === next ) return prev\n\t\t\t\n\t\t\tif( !this.encryptable() ) $mol_fail( new Error( `Non empty Land never encrypted` ) )\n\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst secret = $mol_wire_sync( $mol_crypto_secret ).generate()\n\t\t\tconst secret_land = $mol_wire_sync( secret ).serial()\n\t\t\tconst secret_mutual = auth.secret_mutual( auth.public().toString() )\n\t\t\t\n\t\t\tconst unit = new $hyoo_crus_gift\n\t\t\t\n\t\t\tunit.rank( $hyoo_crus_rank.law )\n\t\t\tunit.time( this.faces.tick() )\n\t\t\tunit.peer( auth.peer() )\n\t\t\tunit.dest( auth.lord() )\n\t\t\tunit._land = this\n\t\t\t\n\t\t\tconst secret_closed = $mol_wire_sync( secret_mutual ).encrypt( secret_land, unit.salt() )\n\t\t\tunit.bill().set( new Uint8Array( secret_closed ) )\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ unit ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsecret() {\n\t\t\t\n\t\t\tif( !this.encrypted() ) return null\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst gift = this.gifts.get( auth.lord() )\n\t\t\tif( !gift ) return $mol_fail( new Error( `Access denied` ) )\n\t\t\t\n\t\t\tconst bill = gift.bill()\n\t\t\tif( !bill.some( b => b ) ) return $mol_fail( new Error( `No key to decrypt` ) )\n\t\t\t\n\t\t\tconst secret_mutual = auth.secret_mutual( this.key_public( gift.peer() )!.toString() )\n\t\t\tif( !secret_mutual ) return $mol_fail( new Error( `Can't decrypt secret` ) )\n\t\t\t\n\t\t\tconst secret_land = $mol_wire_sync( secret_mutual ).decrypt( bill, gift.salt() )\n\t\t\treturn $mol_wire_sync( $mol_crypto_secret ).from( secret_land )\n\t\t\t\n\t\t}\n\t\t\n\t\tdump() {\n\t\t\t\n\t\t\tthis.saving()\n\t\t\t\n\t\t\tconst units = [] as $hyoo_crus_unit[]\n\t\t\tconst rocks = [] as [ Uint8Array, Uint8Array ][]\n\t\t\t\n\t\t\tfor( const pass of this.passes.values() ) units.push( pass )\n\t\t\tfor( const gift of this.gifts.values() ) units.push( gift )\n\t\t\t\n\t\t\tfor( const kids of this.gists.values() ) {\n\t\t\t\tfor( const gist of kids.values() ) {\n\t\t\t\t\tunits.push( gist )\n\t\t\t\t\tif( gist.size() <= 32 ) continue\n\t\t\t\t\tconst rock = this.$.$hyoo_crus_mine.rock( gist.hash() )\n\t\t\t\t\tif( !rock ) continue\n\t\t\t\t\trocks.push([ gist.hash(), rock ])\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tland: this.ref(),\n\t\t\t\tunits, rocks,\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\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' ',\n\t\t\t\t$mol_dev_format_auto( this.faces.total ),\n\t\t \t)\n\t\t }\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_unit_kind {\n\t\t\n\t\t/** Public key. First writes wins. */\n\t\tpass = $hyoo_crus_part.pass,\n\t\t\n\t\t/** Rights sharing. More power wins. */\n\t\tgift = $hyoo_crus_part.gift,\n\t\t\n\t\t/** Changable data. Last writes wins. */\n\t\tgist = $hyoo_crus_part.gist,\n\t\t\n\t}\n\t\n\texport class $hyoo_crus_unit extends $mol_buffer {\n\t\t\n\t\tstatic size = 128 as const\n\t\t\t\t\n\t\tconstructor(\n\t\t\tbuffer = new ArrayBuffer( $hyoo_crus_unit.size ),\n\t\t\tbyteOffset = 0,\n\t\t\tbyteLength = buffer.byteLength,\n\t\t) {\n\t\t\tsuper( buffer, byteOffset, byteLength )\n\t\t}\n\t\t\n\t\tkind() {\n\t\t\t\n\t\t\tconst val = this.uint8( 0 )\n\t\t\tif( ( val & 1 ) === 0 ) return 'gist'\n\t\t\t\n\t\t\tconst kind = $hyoo_crus_unit_kind[ val ] as keyof typeof $hyoo_crus_unit_kind\n\t\t\tif( kind ) return kind\n\t\t\t\n\t\t\t$mol_fail( new Error( `Unknown unit kind (${val})` ) )\n\t\t}\n\t\t\n\t\tchoose< Res >( ways: {\n\t\t\tpass: ( unit: $hyoo_crus_pass )=> Res,\n\t\t\tgift: ( unit: $hyoo_crus_gift )=> Res,\n\t\t\tgist: ( unit: $hyoo_crus_gist )=> Res,\n\t\t} ) {\n\t\t\tconst way = this.kind()\n\t\t\tconst Unit = {\n\t\t\t\tpass: $hyoo_crus_pass,\n\t\t\t\tgift: $hyoo_crus_gift,\n\t\t\t\tgist: $hyoo_crus_gist,\n\t\t\t}[ way ]\n\t\t\tif( this instanceof Unit ) return ways[ way ]( this as any )\n\t\t\tconst unit = new Unit( this.buffer, this.byteOffset, this.byteLength ) as any\n\t\t\treturn ways[ way ]( unit )\n\t\t}\n\t\t\n\t\tnarrow() {\n\t\t\treturn this.choose< $hyoo_crus_pass | $hyoo_crus_gift | $hyoo_crus_gist >({\n\t\t\t\tgist: unit => unit,\n\t\t\t\tpass: unit => unit,\n\t\t\t\tgift: unit => unit,\n\t\t\t})\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn this.narrow().key()\n\t\t}\n\t\t\n\t\tid6( offset: number, next?: string ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\tconst str = $mol_base64_ae_encode( new Uint8Array( this.buffer, offset, 6 ) )\n\t\t\t\treturn str === 'AAAAAAAA' ? '' : str\n\t\t\t} else {\n\t\t\t\tthis.asArray().set( $mol_base64_ae_decode( next || 'AAAAAAAA' ), offset )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\t\t\n\t\tid12( offset: number, next?: $hyoo_crus_ref ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $hyoo_crus_ref_decode( new Uint8Array( this.buffer, offset, 12 ) )\n\t\t\t} else {\n\t\t\t\tthis.asArray().set( $hyoo_crus_ref_encode( next ), offset )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\t\t\n\t\t_peer!: string\n\t\tpeer( next?: string ) {\n\t\t\tif( next === undefined && this._peer !== undefined ) return this._peer\n\t\t\telse return this._peer = this.id6( 2, next )\n\t\t}\n\t\t\n\t\tsalt() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 2, 16 )\n\t\t}\n\t\t\n\t\tsens( next?: ArrayLike< number > ) {\n\t\t\tconst prev = new Uint8Array( this.buffer, this.byteOffset, 64 )\n\t\t\tif( next ) prev.set( next )\n\t\t\treturn prev\n\t\t}\n\t\t\n\t\tmix( mixin: Uint8Array ) {\n\t\t\tfor( let i = 0; i < mixin.length; ++i ) {\n\t\t\t\tthis.uint8( 14 + i, this.uint8( 14 + i ) ^ mixin[i] )\n\t\t\t}\n\t\t}\n\t\t\n\t\tsign( next?: ArrayLike< number > ) {\n\t\t\tconst prev = new Uint8Array( this.buffer, this.byteOffset + 64, 64 )\n\t\t\tif( next ) prev.set( next )\n\t\t\treturn prev\n\t\t}\n\t\t\n\t\tsigned() {\n\t\t\treturn this.sign().some( b => b )\n\t\t}\n\t\t\n\t\t_land = null as null | $hyoo_crus_land\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_pass extends $hyoo_crus_unit {\n\t\t\n\t\twork() {\n\t\t\treturn this.uint8( 1 )\n\t\t}\n\t\t\n\t\t_lord!: $hyoo_crus_ref\n\t\tlord( next?: $hyoo_crus_ref ) {\n\t\t\tif( next === undefined && this._lord !== undefined ) return this._lord\n\t\t\telse return this._lord = this.id12( 2, next )\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn this.id6( 2 )\n\t\t}\n\t\t\n\t\tauth( next?: ArrayLike< number > ) {\n\t\t\tconst prev = new Uint8Array( this.buffer, this.byteOffset, 64 )\n\t\t\tif( next ) prev.set( next )\n\t\t\treturn prev\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.peer(),\n\t\t\t\t' 🔑 ',\n\t\t\t\t$mol_dev_format_span( {}, this.lord().description ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_gift extends $hyoo_crus_unit {\n\t\t\n\t\trank( next?: $hyoo_crus_rank ) {\n\t\t\t\n\t\t\tif( next !== undefined ) this.uint8( 0, $hyoo_crus_unit_kind.gift )\n\t\t\tnext = this.uint8( 1, next )\n\t\t\t\n\t\t\tif( next < $hyoo_crus_rank.nil || next > $hyoo_crus_rank.law ) {\n\t\t\t\t$mol_fail( new RangeError( `Wrong rank ${ next }` ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\ttime( next?: number ) {\n\t\t\treturn this.uint48( 8, next )\n\t\t}\n\t\t\n\t\tfree() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 26, 6 )\n\t\t}\n\t\t\n\t\t_dest!: $hyoo_crus_ref\n\t\tdest( next?: $hyoo_crus_ref ) {\n\t\t\tif( next === undefined && this._dest !== undefined ) return this._dest\n\t\t\telse return this._dest = this.id12( 14, next )\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn this.dest().description!\n\t\t}\n\t\t\n\t\tbill() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 32, 32 )\n\t\t}\n\t\t\n\t\tstatic compare(\n\t\t\tleft: $hyoo_crus_gift,\n\t\t\tright: $hyoo_crus_gift,\n\t\t) {\n\t\t\treturn ( right.time() - left.time() ) || ( right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0 )\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.peer(),\n\t\t\t\t' 🏅 ',\n\t\t\t\t$mol_dev_format_span( {}, this.dest().description ),\n\t\t\t\tthis.bill().some( v => v ) ? ' 🔐' : ' 📢',\n\t\t\t\t$hyoo_crus_rank[ this.rank() ],\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_shade( new $mol_time_moment( this.time() ).toString( 'YYYY-MM-DD hh:mm:ss.sss' ) ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport enum $mol_rest_code {\n\t\n\t\tContinue = 100,\n\t\tSwitching_Protocols = 101,\n\t\tProcessing = 102,\n\t\t\n\t\tOK = 200,\n\t\tCreated = 201,\n\t\tAccepted = 202,\n\t\tNon_Authoritative_Information = 203,\n\t\tNo_Content = 204,\n\t\tReset_Content = 205,\n\t\tPartial_Content = 206,\n\t\tMulti_Status = 207,\n\t\tAlready_Reported = 208,\n\t\tIM_Used = 226,\n\t\t\n\t\tMultiple_Choices = 300,\n\t\tMoved_Permanently = 301,\n\t\tFound = 302,\n\t\tSee_Other = 303,\n\t\tNot_Modified = 304,\n\t\tUse_Proxy = 305,\n\t\tTemporary_Redirect = 307,\n\t\t\n\t\tBad_Request = 400,\n\t\tUnauthorized = 401,\n\t\tPayment_Required = 402,\n\t\tForbidden = 403,\n\t\tNot_Found = 404,\n\t\tMethod_Not_Allowed = 405,\n\t\tNot_Acceptable = 406,\n\t\tProxy_Authentication_Required = 407,\n\t\tRequest_Timeout = 408,\n\t\tConflict = 409,\n\t\tGone = 410,\n\t\tLength_Required = 411,\n\t\tPrecondition_Failed = 412,\n\t\tRequest_Entity_Too_Large = 413,\n\t\tRequest_URI_Too_Long = 414,\n\t\tUnsupported_Media_Type = 415,\n\t\tRequested_Range_Not_Satisfiable = 416,\n\t\tExpectation_Failed = 417,\n\t\tTeapot = 418,\n\t\tUnprocessable_Entity = 422,\n\t\tLocked = 423,\n\t\tFailed_Dependency = 424,\n\t\tUpgrade_Required = 426,\n\t\tPrecondition_Required = 428,\n\t\tToo_Many_Requests = 429,\n\t\tRequest_Header_Fields_Too_Large = 431,\n\t\tUnavailable_For_Legal_Reasons = 451,\n\t\t\n\t\tInternal_Server_Error = 500,\n\t\tNot_Implemented = 501,\n\t\tBad_Gateway = 502,\n\t\tService_Unavailable = 503,\n\t\tGateway_Timeout = 504,\n\t\tHTTP_Version_Not_Supported = 505,\n\t\tInsufficient_Storage = 507,\n\t\tLoop_Detected = 508,\n\t\tNot_Extended = 510,\n\t\tNetwork_Authentication_Required = 511,\n\t\tNetwork_Read_Timeout_Error = 598,\n\t\tNetwork_Connect_Timeout_Error = 599,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $mol_rest_port_mime_hi =\n\t\t| 'text' | 'application' | 'font'\n\t\t| 'audio' | 'video' | 'image' | 'model'\n\t\n\texport type $mol_rest_port_mime = `${ $mol_rest_port_mime_hi }/${ string }`\n\t\n\texport class $mol_rest_port extends $mol_object {\n\t\t\n\t\tsend_code( code: $mol_rest_code ) {}\n\t\tsend_type( mime: $mol_rest_port_mime ) {}\n\t\t\n\t\t@ $mol_action\n\t\tsend_data( data: null | string | Uint8Array | Element | object ) {\n\t\t\tif( data === null ) return this.send_nil()\n\t\t\tif( typeof data === 'string' ) return this.send_text( data )\n\t\t\tif( data instanceof Uint8Array ) return this.send_bin( data )\n\t\t\tif( data instanceof $mol_dom_context.Element ) return this.send_dom( data )\n\t\t\treturn this.send_json( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tthis.send_code( 204 )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'application/octet-stream' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'text/plain' )\n\t\t\tthis.send_bin( $mol_charset_encode( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_json( data: object ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'application/json' )\n\t\t\tthis.send_text( JSON.stringify( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_dom( data: Element ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'text/html' )\n\t\t\tthis.send_text( $mol_dom_serialize( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action< any, any >\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.make( config ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws extends $mol_rest_port {}\n\t\n}\n","namespace $ {\n\t\n\texport enum $mol_websocket_frame_op {\n\t\t\n\t\tcon = 0,\n\t\ttxt = 1,\n\t\tbin = 2,\n\t\t\n\t\tstop = 8,\n\t\tping = 9,\n\t\tpong = 10,\n\t\t\n\t}\n\t\n\t/**\n\t * WebSocket frame header.\n\t * Payload >= 2^32 isn't supported\n\t */\n\texport class $mol_websocket_frame extends $mol_buffer {\n\t\t\n\t\tkind( next?: {\n\t\t\top: keyof typeof $mol_websocket_frame_op\n\t\t\tfin: boolean,\n\t\t} ) {\n\t\t\tif( next ) {\n\t\t\t\t\n\t\t\t\tthis.setUint8( 0, Number( next.fin ) << 7 | $mol_websocket_frame_op[ next.op ] )\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst state = this.getUint8( 0 )\n\t\t\t\tconst fin = state >> 7\n\t\t\t\t\n\t\t\t\tconst op = $mol_websocket_frame_op[ state & 0b1111 ] as keyof typeof $mol_websocket_frame_op\n\t\t\t\tif( op === undefined ) $mol_fail( new Error( `Wrong op (${ state.toString(2) })` ) )\n\t\t\t\t\n\t\t\t\treturn { op, fin }\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tdata( next?: { size: number, mask: boolean } ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\t\n\t\t\t\tconst state = this.getUint8( 1 )\n\t\t\t\tconst mask = state >> 7\n\t\t\t\t\n\t\t\t\tlet size = state & 0b0111_1111\n\t\t\t\tif( size === 126 ) size = this.getUint16( 2 )\n\t\t\t\telse if( size === 127 ) size = this.getUint32( 6 )\n\t\t\t\n\t\t\t\treturn { size, mask }\n\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( next.size >= 2**16 ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, 127 | Number( next.mask ) << 7 )\n\t\t\t\t\tthis.setUint32( 6, next.size )\n\t\t\t\t\t\n\t\t\t\t} else if( next.size >= 126 ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, 126 | Number( next.mask ) << 7 )\n\t\t\t\t\tthis.setUint16( 2, next.size )\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, next.size | Number( next.mask ) << 7 )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tsize() {\n\t\t\tconst short = this.getUint8( 1 ) & 0b0111_1111\n\t\t\tconst mask = this.getUint8( 1 ) >> 7\n\t\t\treturn ( short === 127 ? 10 : short === 126 ? 4 : 2 ) + ( mask ? 4 : 0 )\n\t\t}\n\t\t\n\t\tmask() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + this.size() - 4, 4 )\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst { op, fin } = this.kind()\n\t\t\tconst { size, mask } = this.data()\n\t\t\treturn `${op}${ fin ? '!' : '+' }${ size }${ mask ? '@' : '#' }`\n\t\t}\n\t\t\n\t\tstatic make(\n\t\t\top: keyof typeof $mol_websocket_frame_op,\n\t\t\tsize = 0,\n\t\t\tmask = false,\n\t\t\tfin = true,\n\t\t) {\n\t\t\t\n\t\t\tconst head = ( size >= 2**16 ? 10 : size >= 126 ? 4 : 2 ) + ( mask ? 4 : 0 )\n\t\t\tconst frame = $mol_websocket_frame.from( head ) \n\t\t\t\n\t\t\tframe.kind({ op, fin })\n\t\t\tframe.data({ size, mask })\n\t\t\t\n\t\t\treturn frame\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws_std extends $mol_rest_port_ws {\n\t\t\n\t\tsocket!: WebSocket\n\t\t\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tthis.socket.send( '' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array ) {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tthis.socket.send( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tconst bin = $mol_charset_encode( data )\n\t\t\tthis.socket.send( bin )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws_node extends $mol_rest_port_ws {\n\t\t\n\t\tsocket!: InstanceType< $node['stream']['Duplex'] >\n\t\t\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'pong', 0 ).asArray() )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array ) {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'bin', data.byteLength ).asArray() )\n\t\t\tthis.socket.write( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tconst bin = $mol_charset_encode( data )\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'txt', bin.byteLength ).asArray() )\n\t\t\tthis.socket.write( bin )\n\t\t}\n\t\t\n\t}\n\t\n\t$.$mol_rest_port_ws = $mol_rest_port_ws_node\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_yard extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\trealm() {\n\t\t\treturn null! as $hyoo_crus_realm\n\t\t}\n\t\t\n\t\tpersisted = new WeakSet< $hyoo_crus_unit >()\n\t\tneonatals = new $mol_wire_set< $hyoo_crus_ref >()\n\t\t\n\t\tload( land: $hyoo_crus_land ) {\n\t\t\treturn [] as readonly $hyoo_crus_unit[]\n\t\t}\n\t\t\n\t\tasync save( land: $hyoo_crus_land, units: readonly $hyoo_crus_unit[] ) {}\n\t\t\n\t\tstatic masters = [] as string[]\n\t\t\n\t\t@ $mol_mem\n\t\tmaster_cursor( next = 0 ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmaster_current() {\n\t\t\treturn this.$.$hyoo_crus_yard.masters[ this.master_cursor() ]\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tmaster_next() {\n\t\t\tthis.master_cursor( ( this.master_cursor() + 1 ) % this.$.$hyoo_crus_yard.masters.length )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\treconnects( reset?: null ): number {\n\t\t\treturn ( $mol_wire_probe( ()=> this.reconnects() ) ?? 0 ) + 1\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmaster() {\n\t\t\t\n\t\t\tthis.reconnects()\n\t\t\t\n\t\t\tconst link = this.master_current()\n\t\t\tif( !link ) return null\n\t\t\t\n\t\t\tconst socket = new $mol_dom_context.WebSocket( link.replace( /^http/, 'ws' ) )\n\t\t\tsocket.binaryType = 'arraybuffer'\n\t\t\tconst port = $mol_rest_port_ws_std.make({ socket })\n\t\t\t\n\t\t\tsocket.onmessage = async( event )=> {\n\t\t\t\t\n\t\t\t\tif( event.data instanceof ArrayBuffer ) {\n\t\t\t\t\tif( !event.data.byteLength ) return\n\t\t\t\t\tawait $mol_wire_async( this ).port_income( port, new Uint8Array( event.data ) )\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tthis.$.$mol_log3_fail({\t\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Wrong data',\n\t\t\t\t\t\tdata: event.data\n\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}\n\t\t\t\n\t\t\tlet interval: any\n\n\t\t\tsocket.onclose = ()=> {\n\t\t\t\tclearInterval( interval )\n\t\t\t\tsetTimeout( ()=> this.reconnects( null ), 1000 )\n\t\t\t}\n\t\t\t\n\t\t\tObject.assign( socket, {\n\t\t\t\tdestructor: ()=> {\n\t\t\t\t\tsocket.onclose = ()=> {}\n\t\t\t\t\tclearInterval( interval )\n\t\t\t\t\tsocket.close()\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn new Promise< $mol_rest_port >( ( done, fail )=> {\n\t\t\t\t\n\t\t\t\tsocket.onopen = ()=> {\n\t\t\t\t\t\n\t\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Connected',\n\t\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\t\tserver: link,\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t\tinterval = setInterval( ()=> socket.send( new Uint8Array ), 30000 )\n\t\t\t\t\t\n\t\t\t\t\tdone( port )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tsocket.onerror = ()=> {\n\t\t\t\t\t\n\t\t\t\t\tsocket.onclose = event => {\n\t\t\t\t\t\tfail( new Error( `Master (${link}) is unavailable (${ event.code })` ) )\n\t\t\t\t\t\tclearInterval( interval )\n\t\t\t\t\t\tinterval = setTimeout( ()=> {\n\t\t\t\t\t\t\tthis.master_next()\n\t\t\t\t\t\t\tthis.reconnects( null )\n\t\t\t\t\t\t}, 1000 )\n\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} ) as any as $mol_rest_port\n\t\t\t\n\t\t}\n\t\t\n\t\tslaves = new $mol_wire_set< $mol_rest_port >()\n\t\t\n\t\t@ $mol_mem\n\t\tsync() {\n\t\t\tfor( const port of this.ports() ) {\n\t\t\t\t\n\t\t\t\tfor( const land of this.neonatals ) {\n\t\t\t\t\tthis.sync_port_land([ port, land ])\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const land of this.port_lands( port ) ) {\n\t\t\t\t\tthis.sync_port_land([ port, land ])\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\tthis.neonatals.clear()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tports() {\n\t\t\ttry {\n\t\t\t\treturn [ this.master(), ... this.slaves ].filter( $mol_guard_defined )\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn [ ... this.slaves ]\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tport_lands( port: $mol_rest_port ) {\n\t\t\treturn new $mol_wire_set< $hyoo_crus_ref >()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tport_income( port: $mol_rest_port, msg: Uint8Array ) {\n\t\t\t\n\t\t\tconst pack = $mol_wire_sync( $hyoo_crus_pack ).from( msg ) as $hyoo_crus_pack\n\t\t\tconst parts = $mol_wire_sync( pack ).parts()\n\t\t\t\n\t\t\t$mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Gain Pack',\n\t\t\t\tport: $mol_key( port ),\n\t\t\t\tlands: parts.lands,\n\t\t\t\trocks: parts.rocks.length,\n\t\t\t})\n\t\t\t\n\t\t\tconst lands = this.port_lands( port )\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( parts.lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\t\n\t\t\t\tlands.add( land )\n\t\t\t\t\n\t\t\t\tconst faces = parts.lands[ land ].faces\n\t\t\t\tlet port_faces = this.face_port_land([ port, land ])\n\t\t\t\t\n\t\t\t\tif( port_faces ) port_faces.sync( faces )\n\t\t\t\telse this.face_port_land( [ port, land ], port_faces = faces )\n\t\t\t\n\t\t\t\tconst units = parts.lands[ land ].units\n\t\t\t\tfor( let unit of units ) {\n\t\t\t\t\tconst unit2 = unit.narrow()\n\t\t\t\t\tif( unit2 instanceof $hyoo_crus_pass ) continue\n\t\t\t\t\tport_faces.time_max( unit2.peer(), unit2.time() )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.realm().apply_pack( pack )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsync_land( land: $hyoo_crus_ref ) {\n\t\t\tfor( const port of this.ports() ) {\n\t\t\t\tthis.port_lands( port ).add( land )\n\t\t\t}\n\t\t\tthis.sync()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsync_port_land( [ port, land ]: [ $mol_rest_port, $hyoo_crus_ref ] ) {\n\t\t\t\n\t\t\ttry {\n\t\t\t\n\t\t\t\tthis.init_port_land([ port, land ])\n\t\t\t\t\n\t\t\t\tconst faces = this.face_port_land([ port, land ])\n\t\t\t\tif( !faces ) return\n\t\t\t\t\n\t\t\t\tconst Land = this.realm().Land( land )\n\t\t\t\tLand.saving()\n\t\t\t\t\n\t\t\t\tconst parts = Land.delta_parts( faces )\n\t\t\t\tif( !parts ) return\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Send Unit',\n\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\tlands: parts.lands,\n\t\t\t\t\trocks: parts.rocks.length,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tport.send_bin( $hyoo_crus_pack.make( parts ).asArray() )\n\t\t\t\tfaces.sync( Land.faces )\n\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tinit_port_land( [ port, land ]: [ $mol_rest_port, $hyoo_crus_ref ] ) {\n\t\t\t// $mol_wire_solid()\n\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Send Face',\n\t\t\t\tport: $mol_key( port ),\n\t\t\t\tland: land,\n\t\t\t\tfaces: this.realm().Land( land ).faces,\n\t\t\t})\n\t\t\tport.send_bin( this.realm().Land( land ).faces_pack().asArray() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tface_port_land(\n\t\t\t[ port, land ]: [ $mol_rest_port, $hyoo_crus_ref ],\n\t\t\tnext = null as null | $hyoo_crus_face_map\n\t\t) {\n\t\t\t// $mol_wire_solid()\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $hyoo_crus_yard_node extends $.$hyoo_crus_yard {\n\t\t\n\t\t@ $mol_mem\n\t\troot() {\n\t\t\treturn $mol_file.relative( '.crus' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tland_file( land: $hyoo_crus_land ) {\n\t\t\tconst id = land.ref().description!\n\t\t\tconst dir = this.root().resolve( `unit/${ id.slice( 0, 2 ) }` )\n\t\t\tdir.exists( true )\n\t\t\treturn dir.resolve( `${ id }.crus` )\n\t\t}\n\t\t\n\t\tland_offsets( land: $hyoo_crus_land ) {\n\t\t\treturn new Map< string, number >()\n\t\t}\n\t\t\n\t\tfile_sizes = new Map< number, number >()\n\t\t\n\t\t@ $mol_mem_key\n\t\tland_descr( land: $hyoo_crus_land ) {\n\t\t\treturn this.land_file( land ).open( 'create', 'read_write' )\n\t\t}\n\t\t\n\t\tasync save( land: $hyoo_crus_land, units: readonly $hyoo_crus_unit[] ) {\n\t\t\t\n\t\t\tconst descr = this.land_descr( land )\n\t\t\tconst offsets = this.land_offsets( land )\n\t\t\tconst append = [] as $hyoo_crus_unit[]\n\t\t\t\n\t\t\tfor( const unit of units ) {\n\t\t\t\tconst off = offsets.get( unit.key() )\n\t\t\t\tif( off === undefined ) {\n\t\t\t\t\tappend.push( unit )\n\t\t\t\t} else {\n\t\t\t\t\t$node.fs.write( descr, unit, 0, unit.byteLength, off, ()=> {} )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( !append.length ) return\n\t\t\t\n\t\t\tlet size = this.file_sizes.get( descr ) ?? 0\n\t\t\tlet offset = size\n\t\t\tsize += append.length * $hyoo_crus_unit.size\n\t\t\t\n\t\t\t$node.fs.ftruncateSync( descr, size )\n\t\t\tthis.file_sizes.set( descr, size )\n\t\t\t\t\t\t\n\t\t\tfor( const unit of append ) {\n\t\t\t\t$node.fs.write( descr, unit, 0, unit.byteLength, offset, ()=> {} )\n\t\t\t\toffsets.set( unit.key(), offset )\n\t\t\t\toffset += unit.byteLength\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tload( land: $hyoo_crus_land ) {\n\t\t\t\n\t\t\tconst descr = this.land_descr( land )\n\t\t\t\n\t\t\tconst buf = $node.fs.readFileSync( descr )\n\t\t\tif( !buf.length ) return []\n\t\t\t\n\t\t\tthis.file_sizes.set( descr, buf.length )\n\t\t\tconst pack = $hyoo_crus_pack.from( buf )\n\t\t\tconst { lands, rocks } = pack.parts( land.ref() )\n\t\t\tconst units = lands[ land.ref() ]?.units ?? []\n\t\t\t\n\t\t\tconst offsets = this.land_offsets( land )\n\t\t\t\n\t\t\tfor( let i = 0; i < units.length; ++i ) {\n\t\t\t\toffsets.set( units[i].key(), i * $hyoo_crus_unit.size )\n\t\t\t}\n\t\t\t\n\t\t\treturn units\n\t\t}\n\t\t\n\t}\n\t$.$hyoo_crus_yard = $hyoo_crus_yard_node\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_gist_tag {\n\t\t/** Itself value */\n\t\tterm = 0b00,\n\t\t/** Value in first sub node */\n\t\tsolo = 0b01,\n\t\t/** List of values */\n\t\tvals = 0b10,\n\t\t/** List of keys */\n\t\tkeys = 0b11,\n\t}\n\t\n\texport class $hyoo_crus_gist extends $hyoo_crus_unit {\n\t\t\n\t\t_vary = undefined as undefined | $hyoo_crus_vary_type\n\t\t_open = null as null | Uint8Array\n\t\t\n\t\thint(\n\t\t\ttip = 'null' as keyof typeof $hyoo_crus_vary_tip,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tthis.uint8( 0, ( $hyoo_crus_gist_tag[ tag ] << 1 )|( $hyoo_crus_vary_tip[ tip ] << 3 ) )\n\t\t}\n\t\t\n\t\ttag() {\n\t\t\treturn $hyoo_crus_gist_tag[ ( this.uint8( 0 ) >> 1 ) & 0b11 ] as keyof typeof $hyoo_crus_gist_tag\n\t\t}\n\t\t\n\t\ttip() {\n\t\t\treturn $hyoo_crus_vary_tip[ this.uint8( 0 ) >> 3 ] as keyof typeof $hyoo_crus_vary_tip\n\t\t}\n\t\t\n\t\tutf() {\n\t\t\treturn Boolean( this.uint8( 0 ) & 0b10000000 )\n\t\t}\n\t\t\n\t\tnil() {\n\t\t\treturn !this.uint16(0)\n\t\t}\n\t\t\n\t\tsize( next?: number ) {\n\t\t\treturn this.uint8( 1, next )\n\t\t}\n\t\t\n\t\ttime( next?: number ) {\n\t\t\treturn this.uint48( 8, next )\n\t\t}\n\t\t\n\t\t_self!: string\n\t\tself( next?: string ) {\n\t\t\tif( next === undefined && this._self !== undefined ) return this._self\n\t\t\telse return this._self = this.id6( 14, next )\n\t\t}\n\t\t\n\t\t_head!: string\n\t\thead( next?: string ) {\n\t\t\tif( next === undefined && this._head !== undefined ) return this._head\n\t\t\telse return this._head = this.id6( 20, next )\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn `${ this.head() }/${ this.self() }`\n\t\t}\n\t\t\n\t\t_lead!: string\n\t\tlead( next?: string ) {\n\t\t\tif( next === undefined && this._lead !== undefined ) return this._lead\n\t\t\telse return this._lead = this.id6( 26, next )\n\t\t}\n\t\t\n\t\thash(\n\t\t\tnext?: Uint8Array,\n\t\t\ttip = 'null' as keyof typeof $hyoo_crus_vary_tip,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tconst bin = new Uint8Array( this.buffer, this.byteOffset + 32, 20 )\n\t\t\tif( next !== undefined ) {\n\t\t\t\tthis.hint( tip, tag )\n\t\t\t\tthis.size( 255 )\n\t\t\t\tbin.set( next )\n\t\t\t}\n\t\t\tif( this.size() > 32 ) return bin\n\t\t\t$mol_fail( new Error( 'No stored hash' ) )\n\t\t}\n\t\t\n\t\tmeta() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 42, 12 )\n\t\t}\n\t\t\n\t\tdata(\n\t\t\tnext?: Uint8Array,\n\t\t\ttip = 'null' as keyof typeof $hyoo_crus_vary_tip,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tif( next === undefined ) {\n\t\t\t\tconst size = this.size()\n\t\t\t\tif( size > 32 ) $mol_fail( new Error( 'Too long data' ) )\n\t\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 32, size )\n\t\t\t} else {\n\t\t\t\tthis.hint( tip, tag )\n\t\t\t\tif( next.byteLength > 32 ) $mol_fail( new Error( 'Too long data' ) )\n\t\t\t\tthis.uint8( 1, next.byteLength )\n\t\t\t\tconst bin = new Uint8Array( this.buffer, this.byteOffset + 32, next.byteLength )\n\t\t\t\tbin.set( next )\n\t\t\t\tnew Uint8Array( this.buffer, this.byteOffset + 32 + next.length, 32 - next.length ).fill( 0 )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t}\n\t\t\n\t\tidea() {\n\t\t\tconst bin = new Uint8Array( this.buffer, this.byteOffset + 20, 44 )\n\t\t\tconst hash = $mol_crypto_hash( bin )\n\t\t\tconst buf = new $mol_buffer( hash.buffer )\n\t\t\treturn buf.uint48(0)\n\t\t}\n\t\t\n\t\t/** Compare gists on timeline ( right - left ) */\n\t\tstatic compare(\n\t\t\tleft: $hyoo_crus_gist,\n\t\t\tright: $hyoo_crus_gist,\n\t\t) {\n\t\t\treturn ( right.time() - left.time() ) || ( right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0 )\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.peer(),\n\t\t\t\t' ',\n\t\t\t\tthis.lead() || 'AAAAAAAA',\n\t\t\t\t$mol_dev_format_shade( '\\\\' ),\n\t\t\t\t$mol_dev_format_accent( this.head() || 'AAAAAAAA' ),\n\t\t\t\t$mol_dev_format_shade( '/' ),\n\t\t\t\tthis.self() || 'AAAAAAAA',\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_shade( new $mol_time_moment( this.time() ).toString( 'YYYY-MM-DD hh:mm:ss.sss' ) ),\n\t\t\t\t' ',\n\t\t\t\t{\n\t\t\t\t\tterm: '💼',\n\t\t\t\t\tsolo: '1️⃣',\n\t\t\t\t\tvals: '🎹',\n\t\t\t\t\tkeys: '🔑',\n\t\t\t\t}[ this.tag() ],\n\t\t\t\tthis.tip(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_native( this._vary ) //??\n\t\t\t\t\t// ( this.size() > 32\n\t\t\t\t\t// \t? $mol_dev_format_shade( this.hash() )\n\t\t\t\t\t// \t: $mol_dev_format_native( $hyoo_crus_vary_decode({ tip: this.tip(), bin: this.data() }) )\n\t\t\t\t\t// ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Virtual Node that represents contained units as high-level data types. */\n\texport class $hyoo_crus_node extends $mol_object {\n\t\t\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.vals ] as keyof typeof $hyoo_crus_gist_tag\n\t\t\n\t\tland() {\n\t\t\treturn null as any as $hyoo_crus_land\n\t\t}\n\t\t\n\t\t/** Land local Node id */\n\t\thead() {\n\t\t\treturn ''\n\t\t}\n\t\t\n\t\trealm() {\n\t\t\treturn this.land()?.realm() ?? null\n\t\t}\n\t\t\n\t\tland_ref() {\n\t\t\treturn this.land()?.ref() ?? this.$.$hyoo_crus_auth.current().lord()\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tref() {\n\t\t\treturn $hyoo_crus_ref( this.land_ref().description + '_' + this.head() )\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.ref().description\n\t\t}\n\t\t\n\t\t/** Returns another representation of this node. */\n\t\t@ $mol_mem_key\n\t\tcast< Node extends typeof $hyoo_crus_node >( Node: Node ): InstanceType< Node > {\n\t\t\treturn this.land().Node( Node ).Item( this.head() )\n\t\t}\n\t\t\n\t\t/** Ordered inner alive Node. */\n\t\t@ $mol_mem_key\n\t\tnodes< Node extends typeof $hyoo_crus_node >( Node: Node | null ): readonly InstanceType< Node >[] {\n\t\t\tconst land = this.land()\n\t\t\tconst map = {\n\t\t\t\tterm: ()=> land.Node( Node || $hyoo_crus_atom_vary ),\n\t\t\t\tsolo: ()=> land.Node( Node || $hyoo_crus_atom_vary ),\n\t\t\t\tvals: ()=> land.Node( Node || $hyoo_crus_list_vary ),\n\t\t\t\tkeys: ()=> land.Node( Node || $hyoo_crus_dict ),\n\t\t\t}\n\t\t\treturn this.units().map( unit => map[ unit.tag() ]().Item( unit.self() ) ) as any\n\t\t}\n\t\t\n\t\t/** All ordered alive Units */\n\t\t@ $mol_mem\n\t\tunits() {\n\t\t\treturn this.land().gists_ordered( this.head() ).filter( unit => !unit.nil() )\n\t\t}\n\t\t\n\t\tfilled() {\n\t\t\treturn this.units().length > 0\n\t\t}\n\t\t\n\t\t/** Ability to make changes inside Land */\n\t\tcan_change( lord = this.land().auth().lord() ) {\n\t\t\treturn this.land().lord_rank( lord ) >= $hyoo_crus_rank.add\n\t\t}\n\t\t\n\t\t/** Time of last changed unit inside Node subtree */\n\t\t@ $mol_mem\n\t\tlast_change() {\n\t\t\t\n\t\t\tconst land = this.land()\n\t\t\tlet last = 0\n\t\t\t\n\t\t\tconst map = {\n\t\t\t\tterm: ()=> null,\n\t\t\t\tsolo: ()=> land.Node( $hyoo_crus_atom_vary ),\n\t\t\t\tvals: ()=> land.Node( $hyoo_crus_list_vary ),\n\t\t\t\tkeys: ()=> land.Node( $hyoo_crus_dict ),\n\t\t\t}\n\t\t\t\n\t\t\tconst visit = ( gist: $hyoo_crus_gist )=> {\n\t\t\t\tif( gist.time() > last ) last = gist.time()\n\t\t\t\tmap[ gist.tag() ]()?.Item( gist.self() ).units().forEach( visit )\n\t\t\t}\n\t\t\tfor( const gist of this.units() ) visit( gist )\n\t\t\t\n\t\t\treturn last ? new $mol_time_moment( last ) : null\n\t\t\t\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.head(),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_reconcile< Prev, Next >( {\n\t\tprev,\n\t\tfrom,\n\t\tto,\n\t\tnext,\n\t\tequal,\n\t\tdrop,\n\t\tinsert,\n\t\tupdate,\n\t}: {\n\t\tprev: readonly Prev[],\n\t\tfrom: number,\n\t\tto: number,\n\t\tnext: ArrayLike,\n\t\tequal: ( next: Next, prev: Prev )=> boolean,\n\t\tdrop: ( prev: Prev, lead: Prev | null )=> Prev | null,\n\t\tinsert: ( next: Next, lead: Prev | null )=> Prev,\n\t\tupdate?: ( next: Next, prev: Prev, lead: Prev | null )=> Prev,\n\t} ) {\n\t\t\n\t\tif( !update ) update = ( next, prev, lead )=> insert( next, drop( prev, lead ) )\n\t\t\n\t\tlet p = from\n\t\tlet n = 0\n\t\tlet lead = p ? prev[ p - 1 ] : null\n\t\t\n\t\tif( to > prev.length ) $mol_fail( new RangeError( `To(${ to }) greater then length(${ prev.length })` ) )\n\t\tif( from > to ) $mol_fail( new RangeError( `From(${ to }) greater then to(${ to })` ) )\n\t\n\t\twhile( p < to || n < next.length ) {\n\t\t\t\n\t\t\tif( p < to && n < next.length && equal( next[n], prev[p] ) ) {\n\t\t\t\t\n\t\t\t\tlead = prev[p]\n\t\t\t\t++ p\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t} else if( next.length - n > to - p ) {\n\t\t\t\t\n\t\t\t\tlead = insert( next[n], lead )\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t} else if( next.length - n < to - p ) {\n\t\t\t\t\n\t\t\t\tlead = drop( prev[p], lead )\n\t\t\t\t++ p\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tlead = update( next[n], prev[p], lead )\n\t\t\t\t++ p\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_realm extends $mol_object {\n\t\t\n\t\tlands = new $mol_wire_dict< $hyoo_crus_ref, $hyoo_crus_land >()\n\t\t\n\t\t@ $mol_mem\n\t\tyard() {\n\t\t\treturn this.$.$hyoo_crus_yard.make({\n\t\t\t\trealm: $mol_const( this ),\n\t\t\t})\n\t\t}\n\t\t\n\t\thome() {\n\t\t\treturn this.Land( this.$.$hyoo_crus_auth.current().lord() ).home()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tking_grab( preset = $hyoo_crus_rank_public ) {\n\t\t\t\n\t\t\tconst king = this.$.$hyoo_crus_auth.grab()\n\t\t\tconst colony = ( $mol_wire_sync( $hyoo_crus_land ) as typeof $hyoo_crus_land ).make({})\n\t\t\tcolony.auth = $mol_const( king )\n\t\t\t\n\t\t\tif( ( preset[''] ?? $hyoo_crus_rank.nil ) === $hyoo_crus_rank.nil ) {\n\t\t\t\tcolony.encrypted( true )\n\t\t\t}\n\t\t\t\n\t\t\tconst self = this.$.$hyoo_crus_auth.current()\n\t\t\tcolony.give( self, $hyoo_crus_rank.law )\n\t\t\t\n\t\t\tfor( const key in preset ) colony.give( key ? $hyoo_crus_auth.from( key ) : null, preset[ key ] )\n\t\t\t\n\t\t\tthis.Land( colony.ref() ).apply_unit_trust( colony.delta_unit() )\n\t\t\t\n\t\t\treturn king\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tland_grab( preset = $hyoo_crus_rank_public ) {\n\t\t\treturn this.Land( this.king_grab( preset ).lord() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tLand( ref: $hyoo_crus_ref ): $hyoo_crus_land {\n\t\t\t\n\t\t\tlet land = this.lands.get( ref )\n\t\t\tif( land ) return land\n\t\t\t\n\t\t\tland = $hyoo_crus_land.make({\n\t\t\t\trealm: $mol_const( this ),\n\t\t\t\tref: $mol_const( ref ),\n\t\t\t})\n\t\t\t\n\t\t\tthis.lands.set( ref, land )\n\t\t\treturn land\n\t\t\t\n\t\t}\n\t\t\n\t\tNode< Node extends typeof $hyoo_crus_node > ( ref: $hyoo_crus_ref, Node: Node ) {\n\t\t\tconst land = this.Land( $hyoo_crus_ref_land( ref ) )\n\t\t\treturn land.Node( Node ).Item( $hyoo_crus_ref_head( ref ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tapply_pack( pack: $hyoo_crus_pack ) {\n\t\t\t\n\t\t\tconst { lands, rocks } = pack.parts()\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\t\n\t\t\t\tconst errors = this.Land( land ).apply_unit( lands[ land ].units ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tfor( const error of errors ) this.$.$mol_log3_warn({\n\t\t\t\t\tplace: `${this}.apply_pack()`,\n\t\t\t\t\tmessage: error,\n\t\t\t\t\thint: 'Send it to developer',\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ hash, rock ] of rocks ) {\n\t\t\t\tif( !rock ) continue\n\t\t\t\tthis.$.$hyoo_crus_mine.save( rock )\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t// @ $mol_mem_key\n\t\t// key_public( lord: bigint ) {\n\t\t// \tconst key = this.Land( lord ).Area( 0 ).pass.get( Number( lord >> 16n ) )?.auth()\n\t\t// \treturn key ? $mol_crypto_key_public.from( key ) : null\n\t\t// }\n\t\t\n\t\t// @ $mol_mem_key\n\t\t// secret_mutual( dest: bigint ) {\n\t\t\t\n\t\t// \tconst key = this.key_public( dest )\n\t\t// \tif( !key ) return null\n\t\t\t\n\t\t// \treturn $mol_wire_sync( $mol_crypto_secret ).derive(\n\t\t// \t\tthis.$.$hyoo_crus_auth.current().toString(),\n\t\t// \t\tkey.toString(),\n\t\t// \t)\n\t\t\t\n\t\t// }\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Reactive convergent list. */\n\texport class $hyoo_crus_list_vary extends $hyoo_crus_node {\n\t\t\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.vals ] as keyof typeof $hyoo_crus_gist_tag\n\t\t\n\t\t/** All Vary in the list. */\n\t\t@ $mol_mem\n\t\titems_vary(\n\t\t\tnext?: readonly $hyoo_crus_vary_type[],\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t): readonly $hyoo_crus_vary_type[] {\n\t\t\t\n\t\t\tconst units = this.units()\n\t\t\tif( next === undefined ) return units.map( unit => this.land().gist_decode( unit ) )\n\t\t\t\n\t\t\tthis.splice( next, 0, units.length, tag )\n\t\t\treturn this.items_vary()\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Replace sublist by new one with reconcilation. */\n\t\tsplice(\n\t\t\tnext: readonly $hyoo_crus_vary_type[],\n\t\t\tfrom = this.units().length,\n\t\t\tto = from,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tconst land = this.land()\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: this.units(),\n\t\t\t\tfrom,\n\t\t\t\tto,\n\t\t\t\tnext,\n\t\t\t\tequal: ( next, prev )=> $mol_compare_deep( this.land().gist_decode( prev ), next ),\n\t\t\t\tdrop: ( prev, lead )=> this.land().post( lead?.self() ?? '', prev.head(), prev.self(), null ),\n\t\t\t\tinsert: ( next, lead )=> this.land().post( lead?.self() ?? '', this.head(), land.self_make( $hyoo_crus_area_of( this.head() ) ), next, tag ),\n\t\t\t\tupdate: ( next, prev, lead )=> this.land().post( lead?.self() ?? '', prev.head(), prev.self(), next, prev.tag() ),\n\t\t\t})\n\t\t}\n\t\t\n\t\t/** Unit by Vary. */\n\t\tfind( vary: $hyoo_crus_vary_type ) {\n\t\t\tfor( const unit of this.units() ) {\n\t\t\t\tif( $mol_compare_deep( this.land().gist_decode( unit ), vary ) ) return unit\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t/** Existance of Vary in the list. */\n\t\thas(\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\tnext?: boolean,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tif( next === undefined ) return Boolean( this.find( vary ) )\n\t\t\tif( next ) this.add( vary, tag )\n\t\t\telse this.cut( vary )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t/** Add Vary a the beginnig if it doesn't exists. */\n\t\tadd(\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tif( this.has( vary ) ) return\n\t\t\tthis.land().post( '', this.head(), '', vary, tag )\n\t\t}\n\t\t\n\t\t/** Removes all Vary presence. */\n\t\tcut( vary: $hyoo_crus_vary_type ) {\n\t\t\t\n\t\t\tconst units = [ ... this.units() ]\n\t\t\tfor( let i = 0; i < units.length; ++ i ) {\n\t\t\t\t\n\t\t\t\tif( ! $mol_compare_deep( this.land().gist_decode( units[i] ), vary ) ) continue\n\t\t\t\t\n\t\t\t\tthis.land().post(\n\t\t\t\t\tunits[i-1]?.self() ?? 0,\n\t\t\t\t\tunits[i].head(),\n\t\t\t\t\tunits[i].self(),\n\t\t\t\t\tnull,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tunits.splice( i, 1 )\n\t\t\t\t-- i\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Moves item from one Seat to another. */\n\t\tmove( from: number, to: number ) {\n\t\t\tthis.land().gist_move( this.units()[ from ], this.head(), to )\n\t\t}\n\t\t\n\t\t/** Remove item by Seat. */\n\t\twipe( seat: number ) {\n\t\t\tthis.land().gist_wipe( this.units()[ seat ] )\n\t\t}\n\t\t\n\t\t/** Add vary at the end and use maked Self as Node Head. */\n\t\tnode_make< Node extends typeof $hyoo_crus_node >(\n\t\t\tNode: Node,\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tthis.splice( [ vary ], undefined, undefined, tag )\n\t\t\treturn this.land().Node( Node ).Item( this.units().at(-1)!.self() )\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.items_vary() ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n\texport function $hyoo_crus_list<\n\t\tParse extends $mol_data_value\n\t>( parse: Parse ) {\n\n\t\tabstract class Narrow extends $hyoo_crus_list_vary {\n\n\t\t\tstatic parse = parse;\n\n\t\t\t@ $mol_mem\n\t\t\titems( next?: readonly ReturnType< Parse >[] ): readonly ReturnType< Parse >[] {\n\t\t\t\treturn this.items_vary( next?.map( parse ) ).map( parse )\n\t\t\t}\n\n\t\t}\n\n\t\treturn Narrow\n\t}\n\n\texport class $hyoo_crus_list_bin extends $hyoo_crus_list( $hyoo_crus_vary_cast_bin ) {}\n\texport class $hyoo_crus_list_bool extends $hyoo_crus_list( $hyoo_crus_vary_cast_bool ) {}\n\texport class $hyoo_crus_list_int extends $hyoo_crus_list( $hyoo_crus_vary_cast_int ) {}\n\texport class $hyoo_crus_list_real extends $hyoo_crus_list( $hyoo_crus_vary_cast_real ) {}\n\texport class $hyoo_crus_list_ref extends $hyoo_crus_list( $hyoo_crus_vary_cast_ref ) {}\n\t\n\texport class $hyoo_crus_list_str extends $hyoo_crus_list( $hyoo_crus_vary_cast_str ) {}\n\texport class $hyoo_crus_list_time extends $hyoo_crus_list( $hyoo_crus_vary_cast_time ) {}\n\texport class $hyoo_crus_list_dur extends $hyoo_crus_list( $hyoo_crus_vary_cast_dur ) {}\n\texport class $hyoo_crus_list_range extends $hyoo_crus_list( $hyoo_crus_vary_cast_range ) {}\n\texport class $hyoo_crus_list_json extends $hyoo_crus_list( $hyoo_crus_vary_cast_json ) {}\n\texport class $hyoo_crus_list_jsan extends $hyoo_crus_list( $hyoo_crus_vary_cast_jsan ) {}\n\texport class $hyoo_crus_list_dom extends $hyoo_crus_list( $hyoo_crus_vary_cast_dom ) {}\n\texport class $hyoo_crus_list_tree extends $hyoo_crus_list( $hyoo_crus_vary_cast_tree ) {}\n\n\texport class $hyoo_crus_list_ref_base extends $hyoo_crus_list_ref {\n\t}\n\t\t\n\texport function $hyoo_crus_list_ref_to< const Value extends any >( Value: Value ) {\n\t\t\t\n\t\ttype Vals = readonly $mol_type_result< $mol_type_result< Value > >[]\n\t\t\n\t\tclass Ref extends $hyoo_crus_list_ref_base {\n\t\t\t\n\t\t\tstatic Value = Value\n\t\t\t\n\t\t\tstatic toJSON() {\n\t\t\t\treturn '$hyoo_crus_list_to<' + ( Value as any )() + '>'\n\t\t\t}\n\t\t\t\n\t\t\t/** List of referenced Nodes */\n\t\t\t@ $mol_mem\n\t\t\tremote_list( next?: Vals ): Vals {\n\t\t\t\tconst realm = this.realm()\n\t\t\t\tconst Node = ( Value as any )()\n\t\t\t\treturn this.items_vary( next?.map( item => ( item as $hyoo_crus_node ).ref() ) )\n\t\t\t\t\t.map( $hyoo_crus_vary_cast_ref )\n\t\t\t\t\t.filter( $mol_guard_defined )\n\t\t\t\t\t.map( ref => realm!.Node( ref, Node ) )\n\t\t\t}\n\t\t\t\n\t\t\t/** Add new Node which placed in new Land */\n\t\t\t@ $mol_action\n\t\t\tremote_make( preset: $hyoo_crus_rank_preset ): Vals[number] {\n\t\t\t\tconst land = this.realm()!.land_grab( preset )\n\t\t\t\tthis.splice([ land.ref() ])\n\t\t\t\treturn land.Node( ( Value as any )() ).Item('')\n\t\t\t}\n\t\t\t\n\t\t\t/** Add new Node which placed in same Land */\n\t\t\t@ $mol_action\n\t\t\tlocal_make( idea?: number ): Vals[number] {\n\t\t\t\tconst area = $hyoo_crus_area_of( this.head() )\n\t\t\t\tconst self = this.land().self_make( area, idea )\n\t\t\t\tconst node = this.land().Node( ( Value as any )() ).Item( self )\n\t\t\t\tthis.splice([ node.ref() ])\n\t\t\t\treturn node\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn Ref\n\t}\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_dict extends (\n\t\t$hyoo_crus_list_vary\n\t) {\n\t\t\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.keys ] as keyof typeof $hyoo_crus_gist_tag\n\t\t\n\t\t/** List of Vary keys. */\n\t\t@ $mol_mem\n\t\tkeys(): readonly $hyoo_crus_vary_type[] {\n\t\t\treturn this.items_vary()\n\t\t}\n\t\t\n\t\t/** Inner Node by key. */\n\t\tdive< Node extends typeof $hyoo_crus_node >(\n\t\t\tkey: $hyoo_crus_vary_type,\n\t\t\tNode: Node,\n\t\t\tauto?: any,\n\t\t) {\n\t\t\tif( this.can_change() && auto !== undefined ) this.has( key, true, Node.tag )\n\t\t\tconst unit = this.find( key )\n\t\t\treturn unit ? this.land().Node( Node ).Item( unit.self() ) : null\n\t\t}\n\t\t\n\t\tstatic schema = {} as Record< string, typeof $hyoo_crus_node >\n\t\t\n\t\tstatic with<\n\t\t\tThis extends typeof $hyoo_crus_dict,\n\t\t\tconst Schema extends Record< string, { tag: keyof typeof $hyoo_crus_gist_tag, new(): {} } >\n\t\t>( this: This, schema: Schema ) {\n\t\t\t\n\t\t\tconst Entity = class Entity extends ( this as any ) {\n\t\t\t\t// static get schema() { return { ... this.schema, ... schema } }\n\t\t\t} as Omit< This, 'prototype' > & {\n\t\t\t\tnew( ...args: any[] ): $mol_type_override< InstanceType< This >, {\n\t\t\t\t\treadonly [ Key in keyof Schema ]: ( auto?: any )=> InstanceType< Schema[ Key ] > | null\n\t\t\t\t} >\n\t\t\t}\n\n\t\t\tfor( const Field in schema ) {\n\t\t\t\t\n\t\t\t\tObject.defineProperty( Entity.prototype, Field, {\n\t\t\t\t\tvalue: function( this: InstanceType< This >, auto?: any ) {\n\t\t\t\t\t\treturn this.dive( Field, schema[ Field ] as any, auto )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\t// $mol_wire_field( Entity.prototype, Field as any )\n\t\t\t}\n\t\t\t\n\t\t\treturn Object.assign( Entity, { schema: { ... this.schema, ... schema } } )\n\t\t\t\n\t\t}\n\t\t\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst keys = $mol_wire_probe( ()=> this.keys() )\n\t\t\tconst nodes = $mol_wire_probe( ()=> this.nodes(null) ) ?? []\n\t\t\t\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( keys?.map( ( key, index )=> new Pair( key, nodes[ index ] ) ) ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\tclass Pair {\n\t\tconstructor( readonly key: any, readonly val: any ) {\n\t\t}\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_tr( {} ,\n\t\t\t\t$mol_dev_format_td( {}, $mol_dev_format_auto(this.key) ),\n\t\t\t\t$mol_dev_format_td( {},': '),\n\t\t\t\t$mol_dev_format_td( {}, $mol_dev_format_auto(this.val) ),\n\t\t\t)\n\t\t}\n\t}\n\t\n\texport function $hyoo_crus_dict_to<\n\t\tValue extends { tag: keyof typeof $hyoo_crus_gist_tag, new(): {} }\n\t>( Value: Value ) {\n\t\t\n\t\treturn class Dict extends $hyoo_crus_dict {\n\t\t\t\n\t\t\tValue = Value\n\t\t\t\n\t\t\tkey( key: $hyoo_crus_vary_type, auto?: any ) {\n\t\t\t\tthis.has( key, auto === undefined ? undefined : true, Value.tag )\n\t\t\t\tconst unit = this.find( key )!\n\t\t\t\tif( !unit ) return null\n\t\t\t\treturn this.land().Node( this.Value as any as typeof $hyoo_crus_node ).Item( unit.self() ) as InstanceType< Value >\n\t\t\t}\n\t\t\t\n\t\t\tstatic toString() {\n\t\t\t\treturn '$hyoo_crus_dict_to(' + Value + ')'\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","\nnamespace $ {\n\n\texport class $hyoo_crus_atom_vary extends $hyoo_crus_node {\n\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.solo ] as keyof typeof $hyoo_crus_gist_tag;\n\t\t\n\t\tpick_unit() {\n\t\t\treturn this.units().at(0)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tvary( next?: $hyoo_crus_vary_type ): $hyoo_crus_vary_type {\n\t\t\t\n\t\t\tlet unit_prev = this.pick_unit()\n\t\t\tlet prev = unit_prev ? this.land().gist_decode( unit_prev ) : null\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( $mol_compare_deep( prev , next ) ) return next\n\t\t\t\n\t\t\tthis.land().post(\n\t\t\t\t'', \n\t\t\t\tunit_prev?.head() ?? this.head(),\n\t\t\t\tunit_prev?.self() ?? '',\n\t\t\t\tnext\n\t\t\t)\n\t\t\t\n\t\t\treturn this.vary()\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.vary() ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\n\texport class $hyoo_crus_atom_enum_base extends $hyoo_crus_atom_vary {\n\n\t\tstatic options = [] as readonly $hyoo_crus_vary_type[]\n\t\t\n\t}\n\t\n\texport function $hyoo_crus_atom_enum<\n\t\tconst Options extends readonly $hyoo_crus_vary_type[]\n\t>( options: Options ) {\n\n\t\tabstract class Narrow extends $hyoo_crus_atom_enum_base {\n\n\t\t\tstatic options = options;\n\n\t\t\t@ $mol_mem\n\t\t\tval( next?: Options[number] ): Options[number] | null {\n\t\t\t\t\n\t\t\t\tvalidate: if( next !== undefined ) {\n\t\t\t\t\tfor( const option of options ) {\n\t\t\t\t\t\tif( $mol_compare_deep( option, next ) ) break validate\n\t\t\t\t\t}\n\t\t\t\t\t$mol_fail( new Error( `Wrong value (${ $hyoo_crus_vary_cast_str( next ) })` ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst val = this.vary( next )\n\t\t\t\t\n\t\t\t\tfor( const option of options ) {\n\t\t\t\t\tif( $mol_compare_deep( option, val ) ) return val\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t}\n\n\t\treturn Narrow\n\t}\n\n\texport function $hyoo_crus_atom<\n\t\tParse extends $mol_data_value\n\t>( parse: Parse ) {\n\n\t\tabstract class Narrow extends $hyoo_crus_atom_vary {\n\n\t\t\tstatic parse = parse;\n\n\t\t\tval( next?: ReturnType< Parse > ): ReturnType< Parse > | null {\n\t\t\t\t\n\t\t\t\tif( next !== undefined ) parse( next )\n\t\t\t\t\n\t\t\t\tconst res = this.vary( next )\n\t\t\t\ttry {\n\t\t\t\t\treturn parse( res )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\treturn Narrow\n\t}\n\t\n\texport class $hyoo_crus_atom_bin extends $hyoo_crus_atom( $hyoo_crus_vary_cast_bin ) {}\n\texport class $hyoo_crus_atom_bool extends $hyoo_crus_atom( $hyoo_crus_vary_cast_bool ) {}\n\texport class $hyoo_crus_atom_int extends $hyoo_crus_atom( $hyoo_crus_vary_cast_int ) {}\n\texport class $hyoo_crus_atom_real extends $hyoo_crus_atom( $hyoo_crus_vary_cast_real ) {}\n\texport class $hyoo_crus_atom_ref extends $hyoo_crus_atom( $hyoo_crus_vary_cast_ref ) {}\n\t\n\texport class $hyoo_crus_atom_str extends $hyoo_crus_atom( $hyoo_crus_vary_cast_str ) {}\n\texport class $hyoo_crus_atom_time extends $hyoo_crus_atom( $hyoo_crus_vary_cast_time ) {}\n\texport class $hyoo_crus_atom_dur extends $hyoo_crus_atom( $hyoo_crus_vary_cast_dur ) {}\n\texport class $hyoo_crus_atom_range extends $hyoo_crus_atom( $hyoo_crus_vary_cast_range ) {}\n\t\n\texport class $hyoo_crus_atom_json extends $hyoo_crus_atom( $hyoo_crus_vary_cast_json ) {}\n\texport class $hyoo_crus_atom_jsan extends $hyoo_crus_atom( $hyoo_crus_vary_cast_jsan ) {}\n\texport class $hyoo_crus_atom_dom extends $hyoo_crus_atom( $hyoo_crus_vary_cast_dom ) {}\n\texport class $hyoo_crus_atom_tree extends $hyoo_crus_atom( $hyoo_crus_vary_cast_tree ) {}\n\t\n\texport class $hyoo_crus_atom_ref_base extends $hyoo_crus_atom_ref {\n\t\t\n\t\tstatic Value = $hyoo_crus_dict;\n\t\t\n\t}\n\t\n\texport function $hyoo_crus_atom_ref_to< const Value extends any >( Value: Value ) {\n\n\t\tclass Ref extends $hyoo_crus_atom_ref_base {\n\n\t\t\tValue = Value;\n\n\t\t\tstatic toString() {\n\t\t\t\treturn '$hyoo_crus_atom_ref_to<' + ( Value as any )() + '>'\n\t\t\t}\n\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tyoke( preset?: $hyoo_crus_rank_preset ) {\n\t\t\t\t\n\t\t\t\tconst realm = this.realm()!\n\t\t\t\tconst Ref = this.cast( $hyoo_crus_atom_ref )\n\t\t\t\tconst ref = Ref.val()\n\t\t\t\tif( ref ) return realm.Land( ref )\n\t\t\t\tif( preset === undefined ) return null\n\t\t\t\t\n\t\t\t\tconst land = realm.land_grab( preset )\n\t\t\t\tRef.val( land.ref() )\n\t\t\t\t\n\t\t\t\treturn land\n\t\t\t}\n\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tremote(\n\t\t\t\tnext?: null | $mol_type_result< $mol_type_result< this['Value'] > >\n\t\t\t): null | $mol_type_result< $mol_type_result< this['Value'] > > {\n\t\t\t\t\n\t\t\t\tconst realm = this.realm()\n\t\t\t\t\n\t\t\t\tlet ref: $hyoo_crus_ref | null = ( next as $hyoo_crus_node )?.ref() ?? next\n\t\t\t\tref = $hyoo_crus_vary_cast_ref( this.vary( ref ) )\n\t\t\t\tif( !ref ) return null\n\t\t\t\t\n\t\t\t\treturn realm!.Node( ref, ( Value as any )() )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t// @ $mol_mem\n\t\t\tremote_ensure( preset?: $hyoo_crus_rank_preset ) {\n\t\t\t\tthis.yoke( preset )\n\t\t\t\treturn this.remote()\n\t\t\t}\n\n\t\t\t@ $mol_mem\n\t\t\tlocal_ensure() {\n\t\t\t\tif( this.remote() ) return this.remote()!\n\t\t\t\tconst node = this.land().Node( ( Value as any )() ).Item( this.land().self_make( $hyoo_crus_area_of( this.head() ) ) )\n\t\t\t\treturn this.remote( node )\n\t\t\t}\n\n\t\t}\n\n\t\treturn Ref\n\t}\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_home extends $hyoo_crus_dict.with({\n\t\tTitle: $hyoo_crus_atom_str,\n\t\tSelection: $hyoo_crus_atom_str,\n\t\tHall: $hyoo_crus_atom_ref_to( ()=> $hyoo_crus_dict ),\n\t}) {\n\t\t\n\t\thall_by< Node extends typeof $hyoo_crus_dict >(\n\t\t\tNode: Node,\n\t\t\tpreset?: $hyoo_crus_rank_preset\n\t\t) {\n\t\t\treturn this.Hall(null)?.remote_ensure( preset )?.cast( Node ) ?? null\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_meta extends $hyoo_crus_dict.with({\n\t\tInflow: $hyoo_crus_list_ref,\n\t}) {}\n\n}\n","namespace $ {\n\texport class $hyoo_crus_entity extends $hyoo_crus_dict.with({\n\t\tTitle: $hyoo_crus_atom_str,\n\t}) {}\n}\n","namespace $ {\n\t\n\texport class $hyoo_survey_meet extends $hyoo_crus_entity.with({\n\t\tOpinions: $hyoo_crus_dict_to( $hyoo_crus_atom_ref_to( ()=> $hyoo_survey_meet_opinion ) )\n\t}) {\n\n\t\t@ $mol_mem\n\t\topinion_my() {\n\t\t\tconst key = this.land().auth().peer()\n\t\t\treturn this.Opinions( true )?.key( key, true )?.remote_ensure( $hyoo_crus_rank_public ) ?? null\n\t\t}\n\n\t}\n\t\n\texport class $hyoo_survey_meet_opinion extends $hyoo_crus_entity.with({\n\t\tPleasant: $hyoo_crus_atom_str,\n\t\tImprovement: $hyoo_crus_atom_str,\n\t\tContinue: $hyoo_crus_atom_bool,\n\t\tRequest: $hyoo_crus_atom_str,\n\t}) {}\n\n}\n","$mol_stack $mol_view\n","namespace $ { $mol_style_attach( \"mol/stack/stack.view.css\",\n \"[mol_stack] {\\n\\tdisplay: grid;\\n\\t/* width: max-content; */\\n\\t/* height: max-content; */\\n\\talign-items: flex-start;\\n\\tjustify-items: flex-start;\\n}\\n\\n[mol_stack] > * {\\n\\tgrid-area: 1/1;\\n}\\n\"\n) }","$mol_text_code_token $mol_dimmer\n\tattr *\n\t\t^\n\t\tmol_text_code_token_type <= type \\\n\n$mol_text_code_token_link $mol_text_code_token\n\tdom_name \\a\n\ttype \\code-link\n\tattr *\n\t\t^\n\t\thref <= uri \\\n\t\ttarget \\_blank\n","namespace $.$$ {\n\n\tconst { hsla } = $mol_style_func\n\t\n\t$mol_style_define( $mol_text_code_token, {\n\n\t\tdisplay: 'inline',\n\t\ttextDecoration: 'none',\n\n\t\t'@': {\n\t\t\tmol_text_code_token_type: {\n\n\t\t\t\t'code-keyword': {\n\t\t\t\t\tcolor: hsla( 0, 70, 60, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-field': {\n\t\t\t\t\tcolor: hsla( 300, 70, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-tag': {\n\t\t\t\t\tcolor: hsla( 330, 70, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-global': {\n\t\t\t\t\tcolor: hsla( 30, 80, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-decorator': {\n\t\t\t\t\tcolor: hsla( 180, 40, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-punctuation': {\n\t\t\t\t\tcolor: hsla( 0, 0, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-string': {\n\t\t\t\t\tcolor: hsla( 90, 40, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-number': {\n\t\t\t\t\tcolor: hsla( 55, 65, 45, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-call': {\n\t\t\t\t\tcolor: hsla( 270, 60, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-link': {\n\t\t\t\t\tcolor: hsla( 210, 60, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-comment-inline': {\n\t\t\t\t\topacity: .5,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-comment-block': {\n\t\t\t\t\topacity: .5,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-docs': {\n\t\t\t\t\topacity: .75,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t},\n\t\t}\n\n\t} )\n\n}\n","$mol_text_code_row $mol_paragraph\n\ttext \\\n\tminimal_height 24\n\tnumb_showed true\n\tsyntax null\n\turi_resolve* \\\n\tNumb $mol_view\n\t\tsub /\n\t\t\t<= numb 0\n\tToken* $mol_text_code_token\n\t\ttype <= token_type* \\\n\t\thaystack <= token_text* \\\n\t\tneedle <= highlight \\\n\tToken_link* $mol_text_code_token_link\n\t\thaystack <= token_text* \\\n\t\tneedle <= highlight \\\n\t\turi <= token_uri* \\\n\tfind_pos* null\n","namespace $ {\n\n\t/** Creates lexer by dictionary of lexems. Lexem that started first wins. Then lexem that declared earlier wins. Use regexp capture to take parts of token. */\n\texport class $mol_syntax2< Lexems extends { [ name : string ] : RegExp } > {\n\t\t\n\t\tconstructor(\n\t\t\tpublic lexems : Lexems\n\t\t) {\n\n\t\t\tfor( let name in lexems ) {\n\t\t\t\tthis.rules.push({\n\t\t\t\t\tname : name ,\n\t\t\t\t\tregExp : lexems[ name ] ,\n\t\t\t\t\tsize : RegExp( '^$|' + lexems[ name ].source ).exec( '' )!.length - 1 , \n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst parts = '(' + this.rules.map( rule => rule.regExp.source ).join( ')|(' ) + ')'\n\t\t\tthis.regexp = RegExp( `([\\\\s\\\\S]*?)(?:(${ parts })|$(?![^]))` , 'gmu' ) \n\t\t\t\n\t\t}\n\t\t\n\t\trules = [] as Array<{\n\t\t\tregExp : RegExp ,\n\t\t\tname : string ,\n\t\t\tsize : number\n\t\t}>\n\t\t\n\t\tregexp : RegExp\n\n\t\ttokenize(\n\t\t\ttext : string ,\n\t\t\thandle : ( name : string , found : string , chunks : string[] , offset : number )=> void ,\n\t\t) {\n\t\t\t\n\t\t\tlet end = 0\n\t\t\t\t\n\t\t\tlexing : while( end < text.length ) {\n\n\t\t\t\tconst start = end\n\n\t\t\t\tthis.regexp.lastIndex = start\n\t\t\t\tvar found = this.regexp.exec( text )!\n\t\t\t\t\n\t\t\t\tend = this.regexp.lastIndex\n\t\t\t\tif( start === end ) throw new Error( 'Empty token' )\n\t\t\t\t\n\t\t\t\tvar prefix = found[ 1 ]\n\t\t\t\tif( prefix ) handle( '' , prefix , [ prefix ] , start )\n\t\t\t\t\n\t\t\t\tvar suffix = found[ 2 ]\n\t\t\t\tif( !suffix ) continue\n\n\t\t\t\tlet offset = 4\n\t\t\t\tfor( let rule of this.rules ) {\n\n\t\t\t\t\tif( found[ offset - 1 ] ) {\n\t\t\t\t\t\thandle( rule.name , suffix , found.slice( offset, offset + rule.size ) , start + prefix.length )\n\t\t\t\t\t\tcontinue lexing\n\t\t\t\t\t}\n\n\t\t\t\t\toffset += rule.size + 1\n\t\t\t\t}\n\n\t\t\t\t$mol_fail( new Error( '$mol_syntax2 is broken' ) )\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tparse(\n\t\t\ttext : string ,\n\t\t\thandlers : { [ key in keyof Lexems | '' ] : ( found : string , chunks : string[] , offset : number )=> void } ,\n\t\t) : void {\n\t\t\tthis.tokenize( text , ( name , ...args )=> handlers[ name ]( ... args ) )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_syntax2_md_flow = new $mol_syntax2({\n\t\t'quote' : /^((?:(?:[>\"] )(?:[^]*?)$(\\r?\\n?))+)([\\n\\r]*)/ ,\n\t\t'header' : /^([#=]+)(\\s+)(.*?)$([\\n\\r]*)/ ,\n\t\t'list' : /^((?:(?: ?([*+-])|(?:\\d+[\\.\\)])+) +(?:[^]*?)$(?:\\r?\\n?)(?: (?:[^]*?)$(?:\\r?\\n?))*)+)((?:\\r?\\n)*)/ ,\n\t\t'code' : /^(```\\s*)([\\w.-]*)[\\r\\n]+([^]*?)^(```)$([\\n\\r]*)/ ,\n\t\t'code-indent' : /^((?:(?: |\\t)(?:[^]*?)$\\r?\\n?)+)([\\n\\r]*)/ ,\n\t\t'table' : /((?:^\\|.+?$\\r?\\n?)+)([\\n\\r]*)/ ,\n\t\t'grid' : /((?:^ *! .*?$\\r?\\n?)+)([\\n\\r]*)/ ,\n\t\t'cut' : /^--+$((?:\\r?\\n)*)/ ,\n\t\t'block' : /^(.*?)$((?:\\r?\\n)*)/ ,\n\t})\n\t\n\texport var $mol_syntax2_md_line = new $mol_syntax2({\n\t\t'strong' : /\\*\\*(.+?)\\*\\*/ ,\n\t\t'emphasis' : /\\*(?!\\s)(.+?)\\*|\\/\\/(?!\\s)(.+?)\\/\\// ,\n\t\t'code' : /```(.+?)```|;;(.+?);;|`(.+?)`/ ,\n\t\t'insert' : /\\+\\+(.+?)\\+\\+/ ,\n\t\t'delete' : /~~(.+?)~~|--(.+?)--/ ,\n\t\t// 'remark' : /(\\()(.+?)(\\))/ ,\n\t\t// 'quote' : /(\")(.+?)(\")/ ,\n\t\t'embed' : /\"\"(?:(.*?)\\\\)?(.*?)\"\"/ ,\n\t\t'link' : /\\\\\\\\(?:(.*?)\\\\)?(.*?)\\\\\\\\/ ,\n\t\t'image-link' : /!\\[([^\\[\\]]*?)\\]\\((.*?)\\)/ ,\n\t\t'text-link' : /\\[(.*?(?:\\[[^\\[\\]]*?\\][^\\[\\]]*?)*)\\]\\((.*?)\\)/ ,\n\t\t'text-link-http' : /\\b(https?:\\/\\/[^\\s,.;:!?\")]+(?:[,.;:!?\")][^\\s,.;:!?\")]+)+)/ ,\n\t})\n\t\n\texport const $mol_syntax2_md_code = new $mol_syntax2({\n\t\t'code-indent' : /\\t+/ ,\n\t\t'code-docs' : /\\/\\/\\/.*?$/ ,\n\t\t'code-comment-block' : /(?:\\/\\*[^]*?\\*\\/|\\/\\+[^]*?\\+\\/|)/ ,\n\t\t'code-link' : /(?:\\w+:\\/\\/|#)\\S+?(?=\\s|\\\\\\\\|\"\"|$)/ ,\n\t\t'code-comment-inline' : /\\/\\/.*?(?:$|\\/\\/)/ ,\n\t\t'code-string' : /(?:\".*?\"|'.*?'|`.*?`|\\/.+?\\/[dygimsu]*(?!\\p{Letter})|(?:^|[ \\t])\\\\[^\\n]*\\n)/ ,\n\t\t'code-number' : /[+-]?(?:\\d*\\.)?\\d+\\w*/ ,\n\t\t'code-call' : /\\.?\\w+ *(?=\\()/ ,\n\t\t'code-sexpr' : /\\((\\w+ )/ ,\n\t\t'code-field' : /(?:(?:\\.|::|->)\\w+|[\\w-]+\\??\\s*:(?!\\/\\/|:))/ ,\n\t\t'code-keyword' : /\\b(throw|readonly|unknown|keyof|typeof|never|from|class|struct|interface|type|function|extends|implements|module|namespace|import|export|include|require|var|val|let|const|for|do|while|until|in|out|of|new|if|then|else|switch|case|this|return|async|await|yield|try|catch|break|continue|get|set|public|private|protected|string|boolean|number|null|undefined|true|false|void|int|float|ref)\\b/ ,\n\t\t'code-global' : /[$]+\\w*|\\b[A-Z][a-z0-9]+[A-Z]\\w*/ ,\n\t\t'code-word' : /\\w+/ ,\n\t\t'code-decorator' : /@\\s*\\S+/ ,\n\t\t'code-tag' : /<\\/?[\\w-]+\\/?>?|&\\w+;/ ,\n\t\t'code-punctuation' : /[\\-\\[\\]\\{\\}\\(\\)<=>~!\\?@#%&\\*_\\+\\\\\\/\\|;:\\.,\\^]+?/ ,\n\t})\n\t\n}\n","namespace $.$$ {\n\n\texport class $mol_text_code_row extends $.$mol_text_code_row {\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.text().length * this.letter_width()\n\t\t}\n\t\t\n\t\tsyntax() {\n\t\t\treturn this.$.$mol_syntax2_md_code\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttokens( path: number[] ) {\n\n\t\t\tconst tokens = [] as { name : string , found : string , chunks: string[] }[]\n\t\t\t\n\t\t\tconst text = ( path.length > 0 )\n\t\t\t\t// @FIXME: this logic compatible only with `string`\n\t\t\t\t? this.tokens( path.slice( 0, path.length - 1 ) )[ path[ path.length - 1 ] ].found.slice( 1, -1 )\n\t\t\t\t: this.text()\n\t\t\t\n\t\t\tthis.syntax().tokenize(\n\t\t\t\ttext,\n\t\t\t\t( name , found , chunks )=> {\n\t\t\t\t\tif( name === 'code-sexpr' ) {\n\t\t\t\t\t\ttokens.push({ name: 'code-punctuation', found: '(', chunks: [] })\n\t\t\t\t\t\ttokens.push({ name: 'code-call', found: chunks[0], chunks: [] })\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttokens.push({ name , found , chunks })\t\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t\treturn tokens as Readonly< typeof tokens >\n\t\t}\n\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\t... this.numb_showed() ? [ this.Numb() ] : [],\n\t\t\t\t... this.row_content([])\n\t\t\t]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\trow_content( path: number[] ) {\n\t\t\treturn this.tokens( path ).map( (t,i)=> this.Token([ ... path, i ]) )\n\t\t}\n\n\t\tToken( path: number[] ) {\n\t\t\treturn this.token_type( path ) === 'code-link' ? this.Token_link( path ) : super.Token( path )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_type( path: number[] ) {\n\t\t\treturn this.tokens( [ ... path.slice( 0, path.length - 1 ) ] )[ path[ path.length - 1 ] ].name\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_content( path: number[] ) {\n\n\t\t\tconst tokens = this.tokens( [ ... path.slice( 0, path.length - 1 ) ] ) \n\t\t\tconst token = tokens[ path[ path.length - 1 ] ]\n\n\t\t\tswitch( token.name ) {\n\t\t\t\t\n\t\t\t\tcase 'code-string': return [\n\t\t\t\t\ttoken.found[0],\n\t\t\t\t\t... this.row_content( path ),\n\t\t\t\t\ttoken.found[ token.found.length - 1 ],\n\t\t\t\t] \n\t\t\t\t\n\t\t\t\tdefault: return [ token.found ]\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_text( path: number[] ) {\n\n\t\t\tconst tokens = this.tokens( [ ... path.slice( 0, path.length - 1 ) ] ) \n\t\t\tconst token = tokens[ path[ path.length - 1 ] ]\n\n\t\t\treturn token.found\n\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_uri( path: number[] ) {\n\t\t\tconst uri = this.token_text( path )\n\t\t\treturn this.uri_resolve( uri )\n\t\t}\n\t\t\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, this.text() ) ) {\n\t\t\t\tyield [ ... path, this ]\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tfind_pos( offset: number ) {\n\t\t\treturn this.find_token_pos([ offset ])\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tfind_token_pos( [ offset, ... path ]: number[] ) {\n\t\t\t\n\t\t\tfor( const [ index, token ] of this.tokens( path ).entries() ) {\n\t\t\t\tif( token.found.length >= offset ) {\n\t\t\t\t\tconst token = this.Token([ ... path, index ])\n\t\t\t\t\treturn { token, offset }\n\t\t\t\t} else {\n\t\t\t\t\toffset -= token.found.length\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $.$$ {\n\t\n\tconst { rem } = $mol_style_unit\n\n\t$mol_style_define( $mol_text_code_row, {\n\n\t\tdisplay: 'block',\n\t\tposition: 'relative',\n\t\t\n\t\tfont: {\n\t\t\tfamily: 'monospace',\n\t\t},\n\t\t\n\t\tNumb: {\n\t\t\ttextAlign: 'right',\n\t\t\tcolor: $mol_theme.shade,\n\t\t\twidth: rem(3),\n\t\t\tmargin: {\n\t\t\t\tleft: rem(-4),\n\t\t\t},\n\t\t\tdisplay: 'inline-block',\n\t\t\twhiteSpace: 'nowrap',\n\t\t\tuserSelect: 'none',\n\t\t\tposition: 'absolute',\n\t\t},\n\n\t} )\n\t\n}\n","namespace $ {\n\n\texport type $mol_blob = Blob\n\n\texport let $mol_blob = ( $node.buffer?.Blob ?? $mol_dom_context.Blob ) as any as {\n\t\tprototype: Blob;\n\t\tnew(blobParts?: readonly BlobPart[], options?: BlobPropertyBag): Blob;\n\t}\n\n}\n","$mol_icon_clipboard $mol_icon path \\M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3\n","$mol_icon_clipboard_outline $mol_icon path \\M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3M7,7H17V5H19V19H5V5H7V7Z\n","$mol_button_copy $mol_button_minor\n\tblobs /$mol_blob\n\t\t<= text_blob? $mol_blob /\n\t\t\t/BlobPart <= text <= title\n\t\t\t* type \\text/plain\n\t\t<= html_blob? $mol_blob /\n\t\t\t/BlobPart <= html \\\n\t\t\t* type \\text/html\n\tdata *\n\tsub /\n\t\t<= Icon $mol_icon_clipboard_outline\n\t\t<= title \\\n\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '<' ,\n\t\t'>' : '>' ,\n\t\t'\"' : '"' ,\n\t\t'&' : '&' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Button copy text() value to clipboard\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_button_demo\n\t */\n\texport class $mol_button_copy extends $.$mol_button_copy {\n\t\t\n\t\tdata() {\n\t\t\treturn Object.fromEntries(\n\t\t\t\tthis.blobs().map( blob => [ blob.type, blob ] )\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\thtml() {\n\t\t\treturn $mol_html_encode( this.text() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tattachments() {\n\t\t\treturn [ new ClipboardItem( this.data() ) ]\n\t\t}\n\t\t\n\t\tclick( event?: Event ) {\n\t\t\tconst cb = $mol_wire_sync( this.$.$mol_dom_context.navigator.clipboard )\n\t\t\t\n\t\t\tcb.writeText?.( this.text() )\n\t\t\tcb.write?.( this.attachments() )\n\n\t\t\tif( cb.writeText === undefined && cb.write === undefined ) {\n\t\t\t\tthrow new Error( \"doesn't support copy to clipoard\" )\n\t\t\t}\n\t\t}\n\n\t}\n\t\n}\n","$mol_text_code $mol_stack\n\tattr *\n\t\t^\n\t\tmol_text_code_sidebar_showed <= sidebar_showed false\n\ttext \\\n\ttext_lines /string\n\tfind_pos* null\n\turi_base \\\n\tsub /\n\t\t<= Rows $mol_list\n\t\t\trender_visible_only <= render_visible_only false\n\t\t\trows <= rows /\n\t\t\t\t<= Row*0 $mol_text_code_row\n\t\t\t\t\tnumb_showed <= sidebar_showed\n\t\t\t\t\tnumb <= row_numb* 0\n\t\t\t\t\ttext <= row_text* \\\n\t\t\t\t\tsyntax <= syntax null\n\t\t\t\t\turi_resolve* <= uri_resolve* \\\n\t\t\t\t\thighlight <= highlight \\\n\t\t<= Copy $mol_button_copy\n\t\t\thint @ \\Copy whole code\n\t\t\ttext <= text_export \\\n","namespace $.$$ {\n\n\t/**\n\t * Code visualizer.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_text_code_demo\n\t */\n\texport class $mol_text_code extends $.$mol_text_code {\n\t\t\n\t\trender_visible_only() {\n\t\t\treturn this.$.$mol_support_css_overflow_anchor()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttext_lines() {\n\t\t\treturn this.text().split( '\\n' ) as readonly string[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trows() {\n\t\t\treturn this.text_lines().map( ( _ , index )=> this.Row( index + 1 ) )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\trow_text( index: number ) {\n\t\t\treturn this.text_lines()[ index - 1 ]\n\t\t}\n\t\t\n\t\trow_numb( index: number ) {\n\t\t\treturn index\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tfind_pos( offset: number ) {\n\t\t\t\n\t\t\tfor( const [ index, line ] of this.text_lines().entries() ) {\n\t\t\t\tif( line.length >= offset ) {\n\t\t\t\t\treturn this.Row( index + 1 ).find_pos( offset )\n\t\t\t\t} else {\n\t\t\t\t\toffset -= line.length + 1\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Rows(),\n\t\t\t\t... this.sidebar_showed() ? [ this.Copy() ] : []\n\t\t\t]\n\t\t}\n\t\t\n\t\tsyntax() {\n\t\t\treturn this.$.$mol_syntax2_md_code\n\t\t}\n\n\t\turi_base() {\n\t\t\treturn $mol_dom_context.document.location.href\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\turi_resolve( uri: string ) {\n\t\t\t\n\t\t\tif( /^(\\w+script+:)+/.test( uri ) ) return null as any as string\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst url = new URL( uri , this.uri_base() )\n\t\t\t\treturn url.toString()\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn null as any as string\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\ttext_export() {\n\t\t\treturn this.text() + '\\n'\n\t\t}\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t\n\tconst { rem, px } = $mol_style_unit\n\n\t$mol_style_define( $mol_text_code, {\n\n\t\twhiteSpace: 'pre-wrap',\n\t\tfont: {\n\t\t\tfamily: 'monospace',\n\t\t},\n\t\t\n\t\tRows: {\n\t\t\tpadding: $mol_gap.text,\n\t\t},\n\n\t\tRow: {\n\t\t\tfont: {\n\t\t\t\tfamily: 'inherit',\n\t\t\t},\n\t\t},\n\t\t\n\t\tCopy: {\n\t\t\talignSelf: 'flex-start',\n\t\t\tjustifySelf: 'flex-start',\n\t\t},\n\t\t\n\t\t'@': {\n\t\t\t'mol_text_code_sidebar_showed': {\n\t\t\t\ttrue: {\n\t\t\t\t\t$mol_text_code_row: {\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\tleft: rem(1.75),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t} )\n\t\n}\n","$mol_textarea $mol_stack\n\tattr *\n\t\t^\n\t\tmol_textarea_clickable <= clickable? false\n\t\tmol_textarea_sidebar_showed <= sidebar_showed false\n\tevent *\n\t\tkeydown?event <=> press?event null\n\t\tpointermove?event <=> hover?event null\n\tsub /\n\t\t<= Edit $mol_textarea_edit\n\t\t\tvalue? <=> value? \\\n\t\t\thint <= hint \\ \n\t\t\tenabled <= enabled true\n\t\t\tspellcheck <= spellcheck true\n\t\t\tlength_max <= length_max +Infinity\n\t\t\tselection? <=> selection? /number\n\t\t\tbring => bring\n\t\t\tsubmit? <=> submit? null\n\t\t\tsubmit_with_ctrl <= submit_with_ctrl true\n\t\t<= View $mol_text_code\n\t\t\ttext <= value\n\t\t\trender_visible_only false\n\t\t\trow_numb* <= row_numb* 0\n\t\t\tsidebar_showed <= sidebar_showed\n\t\t\thighlight <= highlight \\\n\tsymbols_alt *string\n\t\tcomma \\<\n\t\tperiod \\>\n\t\tdash \\−\n\t\tequals \\≈\n\t\tgraveAccent \\́\n\t\tforwardSlash \\÷\n\t\tE \\€\n\t\tV \\✔\n\t\tX \\×\n\t\tC \\©\n\t\tP \\§\n\t\tH \\₽\n\t\tkey0 \\°\n\t\tkey8 \\•\n\t\tkey2 \\@\n\t\tkey3 \\#\n\t\tkey4 \\$\n\t\tkey6 \\^\n\t\tkey7 \\&\n\t\tbracketOpen \\[\n\t\tbracketClose \\]\n\t\tslashBack \\|\n\tsymbols_alt_ctrl *string\n\t\tspace \\ \n\tsymbols_alt_shift *string\n\t\tV \\✅\n\t\tX \\❌\n\t\tO \\⭕\n\t\tkey1 \\❗\n\t\tkey4 \\💲\n\t\tkey7 \\❓\n\t\tcomma \\«\n\t\tperiod \\»\n\t\tsemicolon \\“\n\t\tquoteSingle \\”\n\t\tdash \\—\n\t\tequals \\≠\n\t\tgraveAccent \\̱\n\t\tbracketOpen \\{\n\t\tbracketClose \\}\n\n$mol_textarea_edit $mol_string\n\tdom_name \\textarea\n\tenter \\enter\n\tfield *\n\t\t^\n\t\tscrollTop 0\n","namespace $.$$ {\n\n\t/**\n\t * An input field for entering multiline text.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\n\texport class $mol_textarea extends $.$mol_textarea {\n\n\t\tindent_inc() {\n\n\t\t\tlet text = this.value()\n\t\t\tlet [ from, to ] = this.selection()\n\t\t\t\n\t\t\tconst rows = text.split( '\\n' )\n\t\t\tlet start = 0\n\t\t\t\n\t\t\tfor( let i = 0; i < rows.length; ++i ) {\n\t\t\t\tlet end = start + rows[i].length\n\t\t\t\t\n\t\t\t\tif( end >= from && start <= to ) {\n\t\t\t\t\tif( to === from || start !== to ) {\n\t\t\t\t\t\trows[i] = '\\t' + rows[i]\n\t\t\t\t\t\tto += 1\n\t\t\t\t\t\tend += 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstart = end + 1\n\t\t\t}\n\n\t\t\tthis.value( rows.join('\\n') )\n\t\t\tthis.selection([ from + 1, to ])\n\t\t\t\n\t\t}\n\n\t\tindent_dec() {\n\n\t\t\tlet text = this.value()\n\t\t\tlet [ from, to ] = this.selection()\n\t\t\t\n\t\t\tconst rows = text.split( '\\n' )\n\t\t\tlet start = 0\n\t\t\t\n\t\t\tfor( let i = 0; i < rows.length; ++i ) {\n\t\t\t\tconst end = start + rows[i].length\n\t\t\t\t\n\t\t\t\tif( end >= from && start <= to && rows[i].startsWith( '\\t' ) ) {\n\t\t\t\t\trows[i] = rows[i].slice( 1 )\n\t\t\t\t\tto -= 1\n\t\t\t\t\tif( start < from ) from -= 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstart = end + 1\n\t\t\t}\n\n\t\t\tthis.value( rows.join('\\n') )\n\t\t\tthis.selection([ from, to ])\n\t\t\t\n\t\t}\n\t\t\n\t\tsymbol_insert( event: KeyboardEvent ) {\n\t\t\t\n\t\t\tconst symbol = event.shiftKey\n\t\t\t\t? this.symbols_alt_shift()[ $mol_keyboard_code[ event.keyCode ] ]\n\t\t\t\t: event.ctrlKey\n\t\t\t\t\t? this.symbols_alt_ctrl()[ $mol_keyboard_code[ event.keyCode ] ]\n\t\t\t\t\t: this.symbols_alt()[ $mol_keyboard_code[ event.keyCode ] ]\n\t\t\t\t\n\t\t\tif( !symbol ) return\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\tdocument.execCommand( 'insertText', false, symbol )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tclickable( next?: boolean ) {\n\t\t\tif( !this.enabled() ) return true\n\t\t\treturn next ?? false\n\t\t}\n\t\t\n\t\thover( event : PointerEvent ) {\n\t\t\tthis.clickable( event.ctrlKey )\n\t\t}\n\t\t\n\t\tpress( event : KeyboardEvent ) {\n\t\t\t\n\t\t\tif( event.altKey ) {\n\t\t\t\t\n\t\t\t\tthis.symbol_insert( event )\n\t\t\t\t\n\t\t\t} else {\n\n\t\t\t\tswitch( event.keyCode ) {\n\t\t\t\t\tcase !event.shiftKey && $mol_keyboard_code.tab : this.indent_inc() ; break\n\t\t\t\t\tcase event.shiftKey && $mol_keyboard_code.tab : this.indent_dec() ; break\n\t\t\t\t\tdefault : return\n\t\t\t\t}\n\t\t\t\n\t\t\t\tevent.preventDefault()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\trow_numb( index: number ) {\n\t\t\treturn index\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/textarea/textarea.view.css\",\n \"[mol_textarea] {\\n\\tflex: 1 0 auto;\\n\\tflex-direction: column;\\n\\tvertical-align: top;\\n\\tmin-height: max-content;\\n\\twhite-space: pre-wrap;\\n\\tword-break: break-word;\\n\\tborder-radius: var(--mol_gap_round);\\n\\tfont-family: monospace;\\n\\tposition: relative;\\n\\ttab-size: 4;\\n}\\n\\n[mol_textarea_view] {\\n\\tpointer-events: none;\\n\\twhite-space: inherit;\\n\\tfont-family: inherit;\\n\\ttab-size: inherit;\\n\\tuser-select: none;\\n}\\n\\n[mol_textarea_view_copy] {\\n\\tpointer-events: all;\\n}\\n\\n[mol_textarea_clickable] > [mol_textarea_view] {\\n\\tpointer-events: all;\\n\\tuser-select: auto;\\n}\\n\\n[mol_textarea_clickable] > [mol_textarea_edit] {\\n\\tuser-select: none;\\n}\\n\\n[mol_textarea_edit] {\\n\\tfont-family: inherit;\\n\\tpadding: var(--mol_gap_text);\\n\\tcolor: transparent !important;\\n\\tcaret-color: var(--mol_theme_text);\\n\\tresize: none;\\n\\ttext-align: inherit;\\n\\twhite-space: inherit;\\n\\tborder-radius: inherit;\\n\\toverflow-anchor: none;\\n\\tposition: absolute;\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\ttab-size: inherit;\\n}\\n\\n[mol_textarea_sidebar_showed] [mol_textarea_edit] {\\n\\tleft: 1.75rem;\\n\\twidth: calc( 100% - 1.75rem );\\n}\\n\\n[mol_textarea_edit]:hover + [mol_textarea_view] {\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_textarea_edit]:focus + [mol_textarea_view] {\\n\\tz-index: var(--mol_layer_focus);\\n}\\n\"\n) }","$mol_labeler $mol_list\n\trows /\n\t\t<= Label $mol_view\n\t\t\tminimal_height 32\n\t\t\tsub <= label /$mol_view_content\n\t\t\t\t<= title\n\t\t<= Content $mol_view\n\t\t\tminimal_height 24\n\t\t\tsub <= content /\n","namespace $ { $mol_style_attach( \"mol/labeler/labeler.view.css\",\n \"[mol_labeler] {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: stretch;\\n\\tcursor: inherit;\\n}\\n\\n[mol_labeler_label] {\\n\\tmin-height: 2rem;\\n\\tcolor: var(--mol_theme_shade);\\n\\tpadding: .5rem .75rem 0;\\n\\tgap: 0 var(--mol_gap_block);\\n\\tflex-wrap: wrap;\\n}\\n\\n[mol_labeler_content] {\\n\\tdisplay: flex;\\n\\tpadding: var(--mol_gap_text);\\n}\\n\"\n) }","$mol_form_field $mol_labeler\n\tbids /string\n\tlabel /\n\t\t<= name \\\n\t\t<= Bid $mol_view\n\t\t\tsub / <= bid \\\n\tcontent / <= control null\n","namespace $.$$ {\n\t/**\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_form_demo\n\t */\n\texport class $mol_form_field extends $.$mol_form_field {\n\t\t\n\t\t@ $mol_mem\n\t\tbid() {\n\t\t\treturn this.bids().filter( Boolean )[ 0 ] ?? ''\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/form/field/field.view.css\",\n \"[mol_form_field] {\\n\\talign-items: stretch;\\n}\\n\\n[mol_form_field_bid] {\\n\\tcolor: var(--mol_theme_focus);\\n\\tdisplay: inline-block;\\n\\ttext-shadow: 0 0;\\n}\\n\\n[mol_form_field_content] {\\n\\tborder-radius: var(--mol_gap_round);\\n}\\n\"\n) }","$mol_float $mol_view\n\tstyle *\n\t\t^\n\t\tminHeight \\auto\n","namespace $ { $mol_style_attach( \"mol/float/float.view.css\",\n \"[mol_float] {\\n\\tposition: sticky;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tz-index: var(--mol_layer_float);\\n\\topacity: 1;\\n\\ttransition: opacity .25s ease-in;\\n\\tdisplay: block;\\n\\tbackground: linear-gradient( var(--mol_theme_card), var(--mol_theme_card) ), var(--mol_theme_back);\\n\\tbox-shadow: 0 0 .5rem hsla(0,0%,0%,.25);\\n}\\n\\n\"\n) }","$mol_check $mol_button_minor\n\tattr *\n\t\t^\n\t\tmol_check_checked <= checked? false\n\t\taria-checked <= aria_checked \\false\n\t\trole <= aria_role \\checkbox\n\tsub /$mol_view_content\n\t\t<= Icon null\n\t\t<= label /\n\t\t\t<= Title $mol_view\n\t\t\t\tsub /\n\t\t\t\t\t<= title \\\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/check/check.css\",\n \"[mol_check] {\\n\\tflex: 0 0 auto;\\n\\tjustify-content: flex-start;\\n\\talign-content: center;\\n\\t/* align-items: flex-start; */\\n\\tborder: none;\\n\\tfont-weight: inherit;\\n\\tbox-shadow: none;\\n\\ttext-align: left;\\n\\tdisplay: inline-flex;\\n\\tflex-wrap: nowrap;\\n}\\n\\n[mol_check_title] {\\n\\tflex-shrink: 1;\\n}\\n\"\n) }","namespace $.$$ {\n\n\t/**\n\t * Checkbox UI component. See Variants for more concrete implementations.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_check_box_demo\n\t */\n\texport class $mol_check extends $.$mol_check {\n\n\t\tclick( next? : Event ) {\n\t\t\tif( next?.defaultPrevented ) return\n\t\t\tthis.checked( !this.checked() )\n\t\t\tif( next ) next.preventDefault()\n\t\t}\n\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\t... $mol_maybe( this.Icon() ) ,\n\t\t\t\t... this.label() ,\n\t\t\t] as readonly $mol_view_content[]\n\t\t}\n\n\t\tlabel() {\n\t\t\treturn this.title() ? super.label() : []\n\t\t}\n\t\t\n\t\taria_checked() {\n\t\t\treturn String( this.checked() )\n\t\t}\n\n\t}\n}\n","$mol_icon_chevron $mol_icon path \\M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\n","$mol_check_expand $mol_check\n\tIcon $mol_icon_chevron\n\tlevel 0\n\tstyle *\n\t\t^\n\t\tpaddingLeft <= level_style \\0px\n\tchecked? <=> expanded? false\n\tenabled <= expandable false\n","namespace $.$$ {\n\t\n\t/**\n\t * Expander for trees, lists, etc\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_check_expand_demo\n\t */\n\texport class $mol_check_expand extends $.$mol_check_expand {\n\t\t\n\t\tlevel_style() {\n\t\t\treturn `${ this.level() * 1 - 1 }rem`\n\t\t}\n\t\t\n\t\texpandable() {\n\t\t\treturn this.expanded() !== null\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/check/expand/expand.view.css\",\n \"[mol_check_expand] {\\n\\tmin-width: 20px;\\n}\\n\\n:where([mol_check_expand][disabled]) [mol_check_expand_icon] {\\n\\tvisibility: hidden;\\n}\\n\\n[mol_check_expand_icon] {\\n\\tbox-shadow: none;\\n}\\n[mol_check_expand_icon] {\\n\\ttransform: rotateZ(0deg);\\n}\\n\\n:where([mol_check_checked]) [mol_check_expand_icon] {\\n\\ttransform: rotateZ(90deg);\\n}\\n\\n[mol_check_expand_icon] {\\n\\tvertical-align: text-top;\\n}\\n\\n[mol_check_expand_label] {\\n\\tmargin-left: 0;\\n}\\n\"\n) }","$mol_grid $mol_view\n\trow_height 32\n\trow_ids /string[]\n\trow_id* null\n\tcol_ids /\n\trecords *\n\trecord* null\n\thierarchy null\n\thierarchy_col \\\n\tminimal_width 0\n\t-\n\tsub /\n\t\t<= Head\n\t\t<= Table $mol_grid_table\n\t\t\tsub <= rows /$mol_view\n\tHead $mol_grid_row\n\t\tcells <= head_cells /$mol_view\n\tRow* $mol_grid_row\n\t\tminimal_height <= row_height\n\t\tminimal_width <= minimal_width\n\t\tcells <= cells* /$mol_view\n\t-\n\tCell* $mol_view\n\tcell* null\n\tCell_text* $mol_grid_cell\n\t\tsub <= cell_content_text* <= cell_content* /$mol_view_content\n\tCell_number* $mol_grid_number\n\t\tsub <= cell_content_number* <= cell_content* /$mol_view_content\n\tCol_head* $mol_float\n\t\tdom_name \\th\n\t\tsub <= col_head_content* /$mol_view_content\n\tCell_branch* $mol_check_expand\n\t\tlevel <= cell_level* 0\n\t\tlabel <= cell_content* /$mol_view_content\n\t\texpanded? <=> cell_expanded*? false\n\tCell_content* /\n\t\t<= Cell_dimmer* $mol_dimmer\n\t\t\tneedle <= needle \\\n\t\t\thaystack <= cell_value* \\\n\n$mol_grid_table $mol_list\n\t- dom_name \\table\n\n$mol_grid_row $mol_view\n\t- dom_name \\tr\n\tsub <= cells /$mol_view\n\n$mol_grid_cell $mol_view\n\t- dom_name \\td\n\tminimal_height 40\n\n$mol_grid_number $mol_grid_cell\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: any ) {\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 as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + 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\t\n\texport interface $mol_grid_node {\n\t\tid : string\n\t\tparent : $mol_grid_node\n\t\tsub : $mol_grid_node[]\n\t}\n\t\n\texport class $mol_grid extends $.$mol_grid {\n\t\t\n\t\t@ $mol_mem\n\t\thead_cells() {\n\t\t\treturn this.col_ids().map( colId => this.Col_head( colId ) ) as readonly $mol_view[]\n\t\t}\n\t\t\n\t\tcol_head_content( colId : string ) {\n\t\t\treturn [ colId ] as readonly string[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trows() {\n\t\t\treturn this.row_ids().map( id => this.Row( id ) ) as readonly $mol_view[]\n\t\t}\n\t\t\n\t\tcells( row_id : string[] ) {\n\t\t\treturn this.col_ids().map( col_id => this.Cell({ row : row_id , col : col_id }) ) as readonly $mol_view[]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tcol_type( col_id : string ) {\n\t\t\tif( col_id === this.hierarchy_col() ) return 'branch'\n\t\t\t\n\t\t\tconst rowFirst = this.row_id( 0 )\n\t\t\tconst val = this.record( rowFirst[ rowFirst.length -1 ] )[ col_id ]\n\t\t\tif( typeof val === 'number' ) return 'number'\n\t\t\t\n\t\t\treturn 'text'\n\t\t}\n\t\t\n\t\tCell( id : { row : string[] , col : string } ) : $mol_view {\n\t\t\tswitch( this.col_type( id.col ).valueOf() ) {\n\t\t\t\tcase 'branch' : return this.Cell_branch( id )\n\t\t\t\tcase 'number' : return this.Cell_number( id )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.Cell_text( id )\n\t\t}\n\t\t\n\t\tcell_content( id : { row : string[] , col : string } ) {\n\t\t\treturn [ this.record( id.row[ id.row.length - 1 ] )[ id.col ] ]\n\t\t}\n\t\t\n\t\tcell_content_text( id : { row : string[] , col : string } ) {\n\t\t\treturn this.cell_content( id ).map( val => typeof val === 'object' ? JSON.stringify( val ) : val )\n\t\t}\n\t\t\n\t\trecords() : any {\n\t\t\treturn []\n\t\t}\n\t\t\n\t\trecord( id : string ) {\n\t\t\treturn this.records()[ id ]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trecord_ids() {\n\t\t\treturn Object.keys( this.records() )\n\t\t}\n\t\t\n\t\trow_id( index : number ) {\n\t\t\treturn ( this.row_ids().slice( index , index + 1 ).valueOf() as string[] )[0]\n\t\t}\n\n\t\tcol_ids() {\n\t\t\tconst rowFirst = this.row_id(0)\n\t\t\tif( rowFirst === void 0 ) return []\n\t\t\t\n\t\t\tconst record = this.record( rowFirst[ rowFirst.length - 1 ] )\n\t\t\tif( !record ) return []\n\t\t\t\n\t\t\treturn Object.keys( record ) as readonly string[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\thierarchy() {\n\t\t\tconst hierarchy : { [ id : string ] : $mol_grid_node } = {}\n\t\t\tconst root = hierarchy[ '' ] = {\n\t\t\t\tid : '' ,\n\t\t\t\tparent : null as any as $mol_grid_node ,\n\t\t\t\tsub : [] as $mol_grid_node[] ,\n\t\t\t}\n\t\t\tthis.record_ids().map( id => {\n\t\t\t\troot.sub.push( hierarchy[ id ] = {\n\t\t\t\t\tid ,\n\t\t\t\t\tparent : root ,\n\t\t\t\t\tsub : [] ,\n\t\t\t\t} )\n\t\t\t} )\n\t\t\treturn hierarchy\n\t\t}\n\t\t\n\t\trow_sub_ids( row : string[] ) : string[][] {\n\t\t\treturn this.hierarchy()[ row[ row.length - 1 ] ].sub.map( child => row.concat( child.id ) )\n\t\t}\n\t\t\n\t\trow_root_id() : string[] {\n\t\t\treturn [ '' ]\n\t\t}\n\t\t\n\t\tcell_level( id : { row : string[] } ) {\n\t\t\treturn id.row.length - 1\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trow_ids() {\n\t\t\tconst next : string[][] = []\n\t\t\t\n\t\t\tconst add = ( row : string[] )=> {\n\t\t\t\tnext.push( row )\n\t\t\t\tif( this.row_expanded( row ) ) {\n\t\t\t\t\tthis.row_sub_ids( row ).forEach( child => add( child ) )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.row_sub_ids( this.row_root_id() ).forEach( child => add( child ) )\n\t\t\t\n\t\t\treturn next as readonly string[][]\n\t\t}\n\t\t\n\t\trow_expanded( row_id : string[] , next? : boolean ) {\n\t\t\tif( !this.row_sub_ids( row_id ).length ) return null\n\t\t\t\n\t\t\tconst key = `row_expanded(${ JSON.stringify( row_id ) })`\n\t\t\tconst next2 = $mol_state_session.value( key , next )\n\t\t\t\n\t\t\treturn ( next2 == null ) ? this.row_expanded_default( row_id ) : next2\n\t\t}\n\t\t\n\t\trow_expanded_default( row_id : string[] ) {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcell_expanded( id : { row : string[] } , next? : boolean ) {\n\t\t\treturn this.row_expanded( id.row , next )!\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/grid/grid.view.css\",\n \"[mol_grid] {\\n\\tdisplay: block;\\n\\tflex: 0 1 auto;\\n\\tposition: relative;\\n\\toverflow-x: auto;\\n}\\n\\n[mol_grid_gap] {\\n\\tposition: absolute;\\n\\tpadding: .1px;\\n\\ttop: 0;\\n\\ttransform: translateZ(0);\\n}\\n\\n[mol_grid_table] {\\n\\tborder-spacing: 0;\\n\\tdisplay: table-row-group;\\n\\tposition: relative;\\n}\\n\\n[mol_grid_table] > * {\\n\\tdisplay: table-row;\\n\\ttransition: none;\\n}\\n\\n[mol_grid_head] > *,\\n[mol_grid_table] > * > * {\\n\\tdisplay: table-cell;\\n\\tpadding: var(--mol_gap_text);\\n\\twhite-space: nowrap;\\n\\tvertical-align: middle;\\n\\tbox-shadow: inset 1px 1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_row]:where(:first-child) > * {\\n\\tbox-shadow: inset 1px 0 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_table] > * > *:where(:first-child) {\\n\\tbox-shadow: inset 0px 1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_head] > * {\\n\\tbox-shadow: inset 1px -1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_head] > *:where(:first-child) {\\n\\tbox-shadow: inset 0px -1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_table] > [mol_grid_row]:where(:first-child) > *:where(:first-child) {\\n\\tbox-shadow: none;\\n}\\t\\n\\n[mol_grid_head] {\\n\\tdisplay: table-row;\\n\\ttransform: none !important;\\n}\\n\\n/* [mol_grid_cell_number] {\\n\\ttext-align: right;\\n} */\\n\\n[mol_grid_col_head] {\\n\\tfont-weight: inherit;\\n\\ttext-align: inherit;\\n\\tdisplay: table-cell;\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_grid_cell_dimmer] {\\n\\tdisplay: inline-block;\\n\\tvertical-align: inherit;\\n}\\n\"\n) }","$mol_image $mol_view\n\tdom_name \\img\n\tfield *any\n\t\t^\n\t\tsrc <= uri \\\n\t\talt <= title\n\t\tloading <= loading \\eager\n\t\tdecoding <= decoding \\async\n\t\tcrossOrigin <= cors null\n\tattr *any\n\t\t^\n\t\twidth <= natural_width 0\n\t\theight <= natural_height 0\n\tevent *any\n\t\tload? <=> load? null\n\tminimal_width 16\n\tminimal_height 16\n","namespace $.$$ {\n\texport class $mol_image extends $.$mol_image {\n\t\t\n\t\t@ $mol_mem\n\t\tnatural_width( next?: null ) {\n\t\t\t\n\t\t\tconst dom = this.dom_node() as HTMLImageElement\n\t\t\tif( dom.naturalWidth ) return dom.naturalWidth\n\t\t\t\n\t\t\tconst found = this.uri().match( /\\bwidth=(\\d+)/ )\n\t\t\treturn found ? Number( found[1] ) : null!\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tnatural_height( next?: null ) {\n\t\t\t\n\t\t\tconst dom = this.dom_node() as HTMLImageElement\n\t\t\tif( dom.naturalHeight ) return dom.naturalHeight\n\t\t\t\n\t\t\tconst found = this.uri().match( /\\bheight=(\\d+)/ )\n\t\t\treturn found ? Number( found[1] ) : null!\n\t\t\t\n\t\t}\n\t\t\n\t\tload() {\n\t\t\tthis.natural_width( null )\n\t\t\tthis.natural_height( null )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/image/image.view.css\",\n \"[mol_image] {\\n\\tborder-radius: var(--mol_gap_round);\\n\\toverflow: hidden;\\n\\tflex: 0 1 auto;\\n\\tmax-width: 100%;\\n\\tobject-fit: cover;\\n\\theight: fit-content;\\n}\\n\"\n) }","$mol_link_iconed $mol_link\n\tsub /\n\t\t<= Icon $mol_image\n\t\t\turi <= icon \\\n\t\t\ttitle \\\n\tcontent /\n\t\t<= title <= uri\n\thost \\\n","namespace $.$$ {\n\n\texport class $mol_link_iconed extends $.$mol_link_iconed {\n\n\t\t@ $mol_mem\n\t\ticon() {\n\t\t\treturn `https://favicon.yandex.net/favicon/${ this.host() }?color=0,0,0,0&size=32&stub=1`\n\t\t\t// return `https://api.faviconkit.com/${ this.host() }/16`\n\t\t}\n\n\t\t@ $mol_mem\n\t\thost() {\n\t\t\tconst base = this.$.$mol_state_arg.href()\n\t\t\tconst url = new URL( this.uri() , base )\n\t\t\treturn url.hostname\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\tconst uri = this.uri()\n\t\t\tconst host = this.host()\n\t\t\tconst suffix = ( host ? uri.split( this.host() , 2 )[1] : uri )?.replace( /^[\\/\\?#!]+/, '' )\n\t\t\treturn decodeURIComponent( suffix || host ).replace( /^\\//, ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\t... this.host() ? [ this.Icon() ] : [],\n\t\t\t\t... this.content() ? [ ' ', ... this.content() ] : [],\n\t\t\t] as readonly any[]\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/link/iconed/iconed.view.css\",\n \"[mol_link_iconed] {\\n\\talign-items: baseline;\\n\\tdisplay: inline-flex;\\n\\tpadding: var(--mol_gap_text);\\n}\\n\\n[mol_link_iconed_icon] {\\n\\tbox-shadow: none;\\n\\theight: 1.5em;\\n\\twidth: 1em;\\n\\tflex: 0 0 auto;\\n\\tdisplay: inline-block;\\n\\talign-self: normal;\\n\\tvertical-align: top;\\n\\tborder-radius: 0;\\n\\tobject-fit: scale-down;\\n\\topacity: .75;\\n}\\n\\n[mol_theme=\\\"$mol_theme_dark\\\"] [mol_link_iconed_icon] {\\n\\tfilter: var(--mol_theme_image);\\n}\\n\"\n) }","$mol_embed_native $mol_scroll\n\turi? \\\n\tdom_name \\object\n\twindow null\n\tattr *\n\t\t^\n\t\tdata <= uri\n\t\ttype <= mime \\\n\tsub /\n\t\t<= Fallback $mol_link\n\t\t\turi <= uri\n\t\t\tsub /\n\t\t\t\t<= title \\\n\tmessage *\n\t\thashchange? <=> uri_change? null\n","namespace $.$$ {\n\texport class $mol_embed_native extends $.$mol_embed_native {\n\n\t\t@ $mol_mem\n\t\twindow() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $mol_wire_sync( this as $mol_embed_native ).load( this.dom_node_actual() as HTMLIFrameElement )\n\t\t}\n\t\t\n\t\tload( frame: HTMLIFrameElement ) {\n\t\t\treturn new Promise< Window >( ( done, fail )=> {\n\t\t\t\t\n\t\t\t\tframe.onload = () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( frame.contentWindow!.location.href === 'about:blank' ) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch { }\n\t\t\t\t\tdone( frame.contentWindow! )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tframe.onerror = ( event : Event | string ) => {\n\t\t\t\t\tfail( typeof event === 'string' ? new Error( event ) : ( event as ErrorEvent ).error || event )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi_resource() {\n\t\t\treturn this.uri().replace( /#.*/, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmessage_listener() {\n\t\t\treturn new $mol_dom_listener(\n\t\t\t\t$mol_dom_context,\n\t\t\t\t'message',\n\t\t\t\t$mol_wire_async( this ).message_receive\n\t\t\t)\n\t\t}\n\t\t\n\t\tmessage_receive( event?: MessageEvent<[ string, string ]> ) {\n\t\t\t\n\t\t\tif( !event ) return\n\t\t\tif( event.source !== this.window() ) return\n\t\t\tif( !Array.isArray( event.data ) ) return\n\t\t\t\n\t\t\t(this.message() as any)[ event.data[0] ]?.( event )\n\t\t}\n\n\t\turi_change( event: MessageEvent<[ string, string ]> ) {\n\t\t\tthis.$.$mol_wait_timeout( 1000 )\n\t\t\tthis.uri( event.data[1] )\n\t\t}\n\n\t\tauto() {\n\t\t\treturn [\n\t\t\t\tthis.message_listener(),\n\t\t\t\tthis.window(),\n\t\t\t]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/embed/native/native.view.css\",\n \"[mol_embed_native] {\\n\\tmax-width: 100%;\\n\\tmax-height: 100vh;\\n\\tobject-fit: cover;\\n\\tdisplay: flex;\\n\\tflex: 1 1 auto;\\n\\tobject-position: top left;\\n\\tborder-radius: var(--mol_gap_round);\\n\\taspect-ratio: 4/3;\\n}\\n\"\n) }","$mol_icon_youtube $mol_icon path \\M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z\n","$mol_frame $mol_embed_native\n\tdom_name \\iframe\n\tattr *\n\t\t^\n\t\tdata null\n\t\ttype null\n\t\tsrc <= uri? \\about:config\n\t\tsrcdoc <= html null\n\t\tallow <= allow \\\n\t\t- allowfullscreen <=\n\tfullscreen true\n\taccelerometer true\n\tautoplay true\n\tencription true\n\tgyroscope true\n\tpip true\n\tclipboard_read true\n\tclipboard_write true\n","namespace $.$$ {\n\n\t/**\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_frame_demo\n\t */\n\texport class $mol_frame extends $.$mol_frame {\n\t\t\n\t\twindow() {\n\t\t\t// if( this.html() ) return ( this.dom_node() as HTMLIFrameElement ).contentWindow!\n\t\t\treturn super.window()\n\t\t}\n\n\t\tallow() {\n\t\t\treturn [\n\t\t\t\t... this.fullscreen() ? [ 'fullscreen' ] : [] ,\n\t\t\t\t... this.accelerometer() ? [ 'accelerometer' ] : [] ,\n\t\t\t\t... this.autoplay() ? [ 'autoplay' ] : [] ,\n\t\t\t\t... this.encription() ? [ 'encrypted-media' ] : [] ,\n\t\t\t\t... this.gyroscope() ? [ 'gyroscope' ] : [] ,\n\t\t\t\t... this.pip() ? [ 'picture-in-picture' ] : [] ,\n\t\t\t\t... this.clipboard_read() ? [ `clipboard-read ${ this.uri() }` ] : [],\n\t\t\t\t... this.clipboard_write() ? [ `clipboard-write ${ this.uri() }` ] : [],\n\t\t\t].join('; ')\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t$mol_style_define( $mol_frame , {\n\t\tborder: {\n\t\t\tstyle: 'none',\n\t\t},\n\t\tmaxHeight: $mol_style_unit.vh(100),\n\t} )\n}\n","$mol_embed_youtube $mol_check\n\turi \\\n\tvideo_preview \\\n\tvideo_id \\\n\tchecked? <=> active? false\n\tsub /\n\t\t<= Image $mol_image\n\t\t\ttitle <= title \\\n\t\t\turi <= video_preview \\\n\t\t<= Hint $mol_icon_youtube\n\t\t<= Frame $mol_frame\n\t\t\ttitle <= title \\\n\t\t\turi <= video_embed \\\n\n","namespace $.$$ {\n\texport class $mol_embed_youtube extends $.$mol_embed_youtube {\n\t\t\n\t\t@ $mol_mem\n\t\tvideo_embed() {\n\t\t\treturn `https://www.youtube.com/embed/${ encodeURIComponent( this.video_id() ) }?autoplay=1&loop=1`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tvideo_id() {\n\t\t\treturn this.uri().match( /^https\\:\\/\\/www\\.youtube\\.com\\/(?:embed\\/|shorts\\/|watch\\?v=)([^\\/&?#]+)/ )?.[1]\n\t\t\t\t?? this.uri().match( /^https\\:\\/\\/youtu\\.be\\/([^\\/&?#]+)/ )?.[1]\n\t\t\t\t?? 'about:blank'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tvideo_preview() {\n\t\t\treturn `https://i.ytimg.com/vi/${ this.video_id() }/sddefault.jpg`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\treturn this.active()\n\t\t\t\t? [ this.Frame() ]\n\t\t\t\t: [ this.Image(), this.Hint() ]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/embed/youtube/youtube.view.css\",\n \"[mol_embed_youtube] {\\n\\tpadding: 0;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_embed_youtube_image] {\\n\\tflex: auto 1 1;\\n}\\n\\n[mol_embed_youtube_hint] {\\n\\tposition: absolute;\\n left: 50%;\\n top: 50%;\\n width: 50%;\\n height: 50%;\\n opacity: 0.3;\\n transform: translate(-50%, -50%);\\n}\\n\\n[mol_embed_youtube]:hover [mol_embed_youtube_hint] {\\n\\topacity: .6;\\n}\\n\"\n) }","$mol_embed_any $mol_view\n\tImage $mol_image\n\t\ttitle <= title \\\n\t\turi <= uri \\\n\tObject $mol_embed_native\n\t\ttitle <= title \\\n\t\turi <= uri \\\n\tYoutube $mol_embed_youtube\n\t\ttitle <= title \\\n\t\turi <= uri \\\n","namespace $.$$ {\n\t\n\texport class $mol_embed_any extends $.$mol_embed_any {\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst uri = this.uri()\n\t\t\t\t\n\t\t\t\tif( /\\b(png|gif|jpg|jpeg|jfif|webp|svg)\\b/.test( uri ) ) return 'image'\n\t\t\t\tif( /^https:\\/\\/www\\.youtube\\.com\\//.test( uri ) ) return 'youtube'\n\t\t\t\tif( /^https:\\/\\/youtu\\.be\\//.test( uri ) ) return 'youtube'\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 'image'\n\t\t\t}\n\t\t\t\n\t\t\treturn 'object'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'image': return [ this.Image() ]\n\t\t\t\tcase 'youtube': return [ this.Youtube() ]\n\t\t\t\tdefault: return [ this.Object() ]\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_text $mol_list\n\turi_base \\\n\ttext \\\n\tparam \\\n\tflow_tokens /\n\tblock_text* \\\n\tauto /\n\t\t<= auto_scroll null\n\t- \\Blocks\n\tParagraph* $mol_paragraph\n\t\tsub <= block_content* /\n\tQuote* $mol_text\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttext <= quote_text* \\\n\t\thighlight <= highlight \\\n\t\tauto_scroll null\n\tList* $mol_text_list\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttype <= list_type* \\-\n\t\ttext <= list_text* \\\n\t\thighlight <= highlight \\\n\titem_index* 0\n\tHeader* $mol_text_header\n\t\tminimal_height 40\n\t\tlevel <= header_level* 1\n\t\tcontent <= block_content* /\n\t\targ <= header_arg* *\n\tPre* $mol_text_code\n\t\ttext <= pre_text* \\\n\t\thighlight <= highlight \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\tsidebar_showed <= pre_sidebar_showed <= code_sidebar_showed true\n\tCut* $mol_view dom_name \\hr\n\t- \\Table\n\tTable* $mol_grid\n\t\thead_cells <= table_head_cells* /\n\t\trows <= table_rows* /\n\tTable_row* $mol_grid_row\n\t\tcells <= table_cells* /\n\tTable_cell* $mol_text\n\t\tauto_scroll null\n\t\thighlight <= highlight \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttext <= table_cell_text* \\\n\t- \\Grid\n\tGrid* $mol_grid\n\t\trows <= grid_rows* /\n\tGrid_row* $mol_grid_row\n\t\tcells <= grid_cells* /\n\tGrid_cell* $mol_text\n\t\tauto_scroll null\n\t\thighlight <= highlight \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttext <= grid_cell_text* \\\n\t- \\Lines\n\tString* $mol_dimmer\n\t\tdom_name \\span\n\t\tneedle <= highlight \\\n\t\thaystack <= line_text* \\\n\tSpan* $mol_text_span\n\t\tdom_name \\span\n\t\ttype <= line_type* \\\n\t\tsub <= line_content* /\n\tCode_line* $mol_text_code_row\n\t\tnumb_showed false\n\t\thighlight <= highlight \\\n\t\ttext <= line_text* \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\tsyntax <= code_syntax null\n\tLink* $mol_link_iconed\n\t\turi <= link_uri* \\\n\t\tcontent <= line_content* /\n\tLink_http* $mol_link_iconed\n\t\turi <= link_uri* \\\n\t\tcontent / <= link_host* \\\n\tEmbed* $mol_embed_any\n\t\turi <= link_uri* \\\n\t\ttitle <= line_text* \\\n\n$mol_text_header $mol_paragraph\n\tlevel 1\n\tsub /\n\t\t<= Link $mol_link\n\t\t\targ <= arg *\n\t\t\thint @ \\Permalink to this section\n\t\t\tsub <= content /\n\n$mol_text_span $mol_paragraph\n\tdom_name \\span\n\tattr *\n\t\t^\n\t\tmol_text_type <= type \\\n","namespace $.$$ {\n\t/**\n\t * Markdown visualizer.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_text_demo\n\t */\n\texport class $mol_text extends $.$mol_text {\n\t\t\n\t\t@ $mol_mem\n\t\tflow_tokens() {\n\t\t\tconst tokens = [] as { name : string , found : string , chunks: string[] }[]\n\t\t\tthis.$.$mol_syntax2_md_flow.tokenize(\n\t\t\t\tthis.text(),\n\t\t\t\t( name , found , chunks )=> tokens.push({ name , found , chunks }),\n\t\t\t)\n\t\t\treturn tokens as Readonly< typeof tokens >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tblock_type( index: number ) {\n\t\t\treturn this.flow_tokens()[ index ].name\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trows() {\n\t\t\treturn this.flow_tokens().map( ( { name }, index )=> {\n\t\t\t\t\n\t\t\t\tswitch( name ) {\n\t\t\t\t\tcase 'quote': return this.Quote( index )\n\t\t\t\t\tcase 'header': return this.Header( index )\n\t\t\t\t\tcase 'list': return this.List( index )\n\t\t\t\t\tcase 'code': return this.Pre( index )\n\t\t\t\t\tcase 'code-indent': return this.Pre( index )\n\t\t\t\t\tcase 'table': return this.Table( index )\n\t\t\t\t\tcase 'grid': return this.Grid( index )\n\t\t\t\t\tcase 'cut': return this.Cut( index )\n\t\t\t\t\tdefault: return this.Paragraph( index )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tparam() {\n\t\t\treturn this.toString().replace( /^.*?[\\)>]\\./, '' ).replace( /[(<>)]/g, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\theader_level( index: number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[0].length\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\theader_arg( index: number ) {\n\t\t\treturn {\n\t\t\t\t[ this.param() ]: this.block_text( index )\n\t\t\t}\n\t\t}\n\t\t\n\t\tlist_type( index: number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[1] ?? ''\n\t\t}\n\t\t\n\t\titem_index( index: number ) {\n\t\t\treturn this.flow_tokens().slice( 0, index ).filter( token => token.name === 'block' ).length + 1\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tpre_text( index : number ) {\n\t\t\tconst token = this.flow_tokens()[ index ]\n\t\t\treturn ( token.chunks[2] ?? token.chunks[0].replace( /^(\\t| (?:\\+\\+|--|\\*\\*| ))/gm , '' ) ).replace( /[\\n\\r]*$/ , '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tquote_text( index : number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[0].replace( /^[>\"] /mg , '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlist_text( index : number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[0].replace( /^([-*+]|(?:\\d+[\\.\\)])+) ?/mg , '' ).replace( /^ ?/mg, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tcell_content( indexBlock : number ) {\n\t\t\treturn this.flow_tokens()[ indexBlock ].chunks[ 0 ]\n\t\t\t.split( /\\r?\\n/g )\n\t\t\t.filter( row => row && !/\\|--/.test( row ) )\n\t\t\t.map( ( row , rowId ) => {\n\t\t\t\treturn row.split( /\\|/g )\n\t\t\t\t.filter( cell => cell )\n\t\t\t\t.map( ( cell , cellId )=> cell.trim() )\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_rows( blockId : number ) {\n\t\t\treturn this.cell_content( blockId )\n\t\t\t.slice( 1 )\n\t\t\t.map( ( row , rowId )=> this.Table_row({ block : blockId , row : rowId + 1 }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_head_cells( blockId : number ) {\n\t\t\treturn this.cell_content( blockId )[ 0 ]\n\t\t\t.map( ( cell , cellId )=> this.Table_cell({ block : blockId , row : 0 , cell : cellId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_cells( id : { block : number , row : number } ) {\n\t\t\treturn this.cell_content( id.block )[ id.row ]\n\t\t\t.map( ( cell , cellId )=> this.Table_cell({ block : id.block , row : id.row , cell : cellId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_cell_text( id : { block : number , row : number , cell : number } ) {\n\t\t\treturn this.cell_content( id.block )[ id.row ][ id.cell ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_content( indexBlock: number ) {\n\t\t\treturn [ ... this.flow_tokens()[ indexBlock ].chunks[ 0 ].match( /(?:^! .*?$\\r?\\n?)+(?:^ +! .*?$\\r?\\n?)*/gm )! ]\n\t\t\t.map( ( row , rowId ) => {\n\t\t\t\tconst cells = [] as string[]\n\t\t\t\tfor( const line of row.trim().split( /\\r?\\n/ ) ) {\n\t\t\t\t\tconst [ _, indent, content ] = /^( *)! (.*)/.exec( line )!\n\t\t\t\t\tconst col = Math.ceil( indent.length / 2 )\n\t\t\t\t\tcells[ col ] = ( cells[ col ] ? cells[ col ] + '\\n' : '' ) + content\n\t\t\t\t}\n\t\t\t\treturn cells\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_rows( blockId: number ) {\n\t\t\treturn this.grid_content( blockId )\n\t\t\t.map( ( row, rowId )=> this.Grid_row({ block: blockId , row: rowId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_cells( id: { block: number, row: number } ) {\n\t\t\treturn this.grid_content( id.block )[ id.row ]\n\t\t\t.map( ( cell , cellId )=> this.Grid_cell({ block: id.block, row: id.row, cell: cellId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_cell_text( id: { block: number, row: number, cell: number } ) {\n\t\t\treturn this.grid_content( id.block )[ id.row ][ id.cell ]\n\t\t}\n\t\t\n\t\turi_base() {\n\t\t\treturn $mol_dom_context.document.location.href\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi_base_abs() {\n\t\t\treturn new URL( this.uri_base() , $mol_dom_context.document.location.href )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\turi_resolve( uri: string ) {\n\t\t\t\n\t\t\tif( /^(\\w+script+:)+/.test( uri ) ) return null as any as string\n\t\t\t\n\t\t\tif( /^#\\!/.test( uri ) ) {\n\t\t\t\t\n\t\t\t\tconst params: Record< string, string > = {}\n\t\t\t\n\t\t\t\tfor( const chunk of uri.slice(2).split( this.$.$mol_state_arg.separator ) ) {\n\t\t\t\t\tif( !chunk ) continue\n\t\t\t\t\tconst vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join( '=' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.$.$mol_state_arg.link( params )\n\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst url = new URL( uri , this.uri_base_abs() )\n\t\t\t\treturn url.toString()\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn null as any as string\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tcode_syntax() {\n\t\t\treturn this.$.$mol_syntax2_md_code\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tblock_text( index: number ) {\n\t\t\t\n\t\t\tconst token = this.flow_tokens()[ index ]\n\t\t\t\n\t\t\tswitch( token.name ) {\n\t\t\t\tcase 'header' : return token.chunks[2]\n\t\t\t\tdefault: return token.chunks[0]\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tblock_content( index: number ) {\n\t\t\treturn this.line_content([ index ])\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_tokens( path: readonly number[] ) {\n\t\t\t\n\t\t\tconst tokens = [] as { name : string , found : string , chunks: string[] }[]\n\t\t\t\n\t\t\tthis.$.$mol_syntax2_md_line.tokenize(\n\t\t\t\tthis.line_text( path ),\n\t\t\t\t( name , found , chunks )=> tokens.push({ name , found , chunks }),\n\t\t\t)\n\t\t\t\n\t\t\treturn tokens as Readonly< typeof tokens >\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_token( path: readonly number[] ) {\n\t\t\tconst tokens = this.line_tokens( path.slice( 0, path.length - 1 ) )\n\t\t\treturn tokens[ path[ path.length - 1 ] ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_type( path: readonly number[] ) {\n\t\t\treturn this.line_token( path ).name\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_text( path: readonly number[] ) {\n\t\t\t\n\t\t\tif( path.length === 1 ) return this.block_text( path[0] )\n\t\t\t\n\t\t\tconst { name, found, chunks } = this.line_token( path )\n\t\t\t\n\t\t\tswitch( name ) {\n\t\t\t\tcase 'link': return chunks[0] || chunks[1].replace( /^.*?\\/\\/|\\/.*$/g, '' )\n\t\t\t\tcase 'text-link': return chunks[0] || chunks[1].replace( /^.*?\\/\\/|\\/.*$/g, '' )\n\t\t\t\tdefault: return ( chunks[0] || chunks[1] || chunks[2] ) ?? found\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_content( path: readonly number[] ) {\n\t\t\treturn this.line_tokens( path ).map( ( { name, chunks }, index )=> {\n\t\t\t\t\n\t\t\t\tconst path2 = [ ... path, index ]\n\t\t\t\t\n\t\t\t\tswitch( name ) {\n\t\t\t\t\tcase 'embed': return this.Embed( path2 )\n\t\t\t\t\tcase 'link' : return this.Link( path2 )\n\t\t\t\t\tcase 'text-link-http': return this.Link_http( path2 )\n\t\t\t\t\tcase 'text-link' : return this.Link( path2 )\n\t\t\t\t\tcase 'image-link': return this.Embed( path2 )\n\t\t\t\t\tcase 'code': return this.Code_line( path2 )\n\t\t\t\t\tcase '': return this.String( path2 )\n\t\t\t\t\tdefault: return this.Span( path2 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlink_uri( path: readonly number[] ) {\n\t\t\t\n\t\t\tconst token = this.line_token( path )\n\t\t\tconst uri = this.uri_resolve( token.chunks[1] ?? token.found )\n\t\t\t\n\t\t\tif( !uri ) throw new Error( 'Bad link' )\n\t\t\treturn uri\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlink_host( path: readonly number[] ) {\n\t\t\treturn this.link_uri( path ).replace( /^.*?\\/\\/|\\/.*$/g, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tauto_scroll() {\n\t\t\tfor( const [ index, token ] of this.flow_tokens().entries() ) {\n\t\t\t\t\n\t\t\t\tif( token.name !== 'header' ) continue\n\t\t\t\t\n\t\t\t\tconst header = this.Header( index )\n\t\t\t\tif( !header.Link().current() ) continue\n\t\t\t\t\n\t\t\t\tnew $mol_after_tick(\n\t\t\t\t\t()=> this.ensure_visible( header )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t}\n\n\t}\n\t\n\texport class $mol_text_header extends $.$mol_text_header {\n\t\t\n\t\tdom_name() {\n\t\t\treturn 'h' + this.level()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/text/text/text.view.css\",\n \"[mol_text] {\\n\\tline-height: 1.5em;\\n\\tbox-sizing: border-box;\\n\\tborder-radius: var(--mol_gap_round);\\n\\twhite-space: pre-line;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex: 0 0 auto;\\n\\ttab-size: 4;\\n}\\n\\n[mol_text_paragraph] {\\n\\tpadding: var(--mol_gap_text);\\n\\toverflow: auto;\\n\\toverflow-x: overlay;\\n\\tmax-width: 100%;\\n\\tdisplay: block;\\n\\tmax-width: 60rem;\\n}\\n\\n[mol_text_span] {\\n\\tdisplay: inline;\\n}\\n\\n[mol_text_string] {\\n\\tdisplay: inline;\\n\\tflex: 0 1 auto;\\n\\twhite-space: normal;\\n}\\n\\n[mol_text_quote] {\\n\\tmargin: var(--mol_gap_block);\\n\\tpadding: var(--mol_gap_block);\\n\\tbackground: var(--mol_theme_card);\\n\\tbox-shadow: 0 0 0 1px var(--mol_theme_back);\\n}\\n\\n[mol_text_header] {\\n\\tdisplay: block;\\n\\ttext-shadow: 0 0;\\n\\tfont-weight: normal;\\n}\\n\\n* + [mol_text_header] {\\n\\tmargin-top: 0.75rem;\\n}\\n\\nh1[mol_text_header] {\\n\\tfont-size: 1.5rem;\\n}\\n\\nh2[mol_text_header] {\\n\\tfont-size: 1.5rem;\\n\\tfont-style: italic;\\n}\\n\\nh3[mol_text_header] {\\n\\tfont-size: 1.25rem;\\n}\\n\\nh4[mol_text_header] {\\n\\tfont-size: 1.25em;\\n\\tfont-style: italic;\\n}\\n\\nh5[mol_text_header] {\\n\\tfont-size: 1rem;\\n}\\n\\nh6[mol_text_header] {\\n\\tfont-size: 1rem;\\n\\tfont-style: italic;\\n}\\n\\n[mol_text_header_link] {\\n\\tcolor: inherit;\\n}\\n\\n[mol_text_table_cell] {\\n\\twidth: auto;\\n\\tdisplay: table-cell;\\n\\tvertical-align: baseline;\\n\\tpadding: 0;\\n\\tborder-radius: 0;\\n}\\n\\n[mol_text_grid_cell] {\\n\\twidth: auto;\\n\\tdisplay: table-cell;\\n\\tvertical-align: top;\\n\\tpadding: 0;\\n\\tborder-radius: 0;\\n}\\n\\n[mol_text_cut] {\\n\\tborder: none;\\n\\twidth: 100%;\\n\\tbox-shadow: 0 0 0 1px var(--mol_theme_line);\\n}\\n\\n[mol_text_link_http],\\n[mol_text_link] {\\n\\tpadding: 0;\\n\\tdisplay: inline;\\n\\twhite-space: nowrap;\\n}\\n\\n[mol_text_link_icon] + [mol_text_embed] {\\n\\tmargin-left: -1.5rem;\\n}\\n\\n[mol_text_embed_youtube] {\\n\\tdisplay: inline;\\n}\\n\\n[mol_text_embed_youtube_image],\\n[mol_text_embed_youtube_frame],\\n[mol_text_embed_object] {\\n\\tobject-fit: contain;\\n\\tobject-position: center;\\n\\tdisplay: inline;\\n\\twidth: 100vw;\\n\\tmax-height: calc( 100vh - 6rem );\\n\\tvertical-align: top;\\n}\\n[mol_text_embed_object_fallback] {\\n\\tpadding: 0;\\n}\\n[mol_text_embed_image] {\\n\\tobject-fit: contain;\\n\\tobject-position: center;\\n\\tdisplay: inline;\\n\\t/* max-height: calc( 100vh - 6rem ); */\\n\\tvertical-align: top;\\n}\\n\\n[mol_text_pre] {\\n\\twhite-space: pre;\\n\\toverflow-x: auto;\\n\\toverflow-x: overlay;\\n\\ttab-size: 2;\\n}\\n\\n[mol_text_code_line] {\\n\\tdisplay: inline-block;\\n\\twhite-space: nowrap;\\n}\\n\\n[mol_text_type=\\\"strong\\\"] {\\n\\ttext-shadow: 0 0;\\n\\tfilter: contrast(1.5);\\n}\\n\\n[mol_text_type=\\\"emphasis\\\"] {\\n\\tfont-style: italic;\\n}\\n\\n[mol_text_type=\\\"insert\\\"] {\\n\\tcolor: var(--mol_theme_special);\\n}\\n\\n[mol_text_type=\\\"delete\\\"] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_text_type=\\\"remark\\\"] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_text_type=\\\"quote\\\"] {\\n\\tfont-style: italic;\\n}\\n\"\n) }","$mol_string_button $mol_string\n","namespace $ { $mol_style_attach( \"mol/string/button/button.view.css\",\n \"[mol_string_button]:not(:placeholder-shown):not(:focus):not(:hover):not(:disabled) {\\n\\tcolor: var(--mol_theme_control);\\n\\tbackground: transparent;\\n\\tbox-shadow: none;\\n}\\n\"\n) }","$mol_row $mol_view\n","namespace $ { $mol_style_attach( \"mol/row/row.view.css\",\n \"[mol_row] {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\talign-items: flex-start;\\n\\talign-content: flex-start;\\n\\tjustify-content: flex-start;\\n\\tpadding: var(--mol_gap_block);\\n\\tgap: var(--mol_gap_block);\\n\\tflex: 0 0 auto;\\n\\tbox-sizing: border-box;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_row] > * {\\n\\tmax-width: 100%;\\n}\\n\"\n) }","$mol_form $mol_list\n\tsubmit_allowed true\n\tsubmit_blocked false\n\tevent *\n\t\t^\n\t\tkeydown?event <=> keydown?event null\n\tsubmit?event null\n\trows /\n\t\t<= Body $mol_list\n\t\t\tsub <= body <= form_fields /$mol_form_field\n\t\t<= Foot $mol_row\n\t\t\tsub <= foot <= buttons /$mol_view\n","namespace $.$$ {\n\n\t/**\n\t * Form, that contains form fields and action buttons.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_form_demo\n\t */\n\texport class $mol_form extends $.$mol_form {\n\t\t\n\t\t@ $mol_mem\n\t\tform_fields() {\n\t\t\treturn [ ... this.view_find( view => view instanceof $mol_form_field ) ]\n\t\t\t\t.map( path => path[ path.length - 1 ] ) as any as readonly $mol_form_field[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsubmit_allowed() {\n\t\t\treturn this.form_fields().every( field => !field.bid() )\n\t\t}\n\n\t\tsubmit_blocked( ) {\n\t\t\treturn !this.submit_allowed()\n\t\t}\n\t\t\n\t\tkeydown( next : KeyboardEvent ) {\n\t\t\tif( next.ctrlKey && next.keyCode === $mol_keyboard_code.enter && !this.submit_blocked() ) this.submit( event )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/form/form.view.css\",\n \"[mol_form] {\\r\\n\\tgap: var(--mol_gap_block);\\r\\n}\\r\\n\\r\\n[mol_form_body] {\\r\\n\\tgap: var(--mol_gap_block);\\r\\n}\"\n) }","$mol_text_list $mol_text\n\tauto_scroll null\n\tattr *\n\t\t^\n\t\tmol_text_list_type <= type \\\n\tParagraph* $mol_text_list_item\n\t\tindex <= item_index*\n\t\tsub <= block_content*\n\n$mol_text_list_item $mol_paragraph\n\tattr *\n\t\t^\n\t\tmol_text_list_item_index <= index 0\n","namespace $ { $mol_style_attach( \"mol/text/list/list.view.css\",\n \"[mol_text_list] {\\r\\n\\tpadding-left: 1.75rem;\\r\\n}\\r\\n\\r\\n[mol_text_list_item] {\\r\\n\\tcontain: none;\\r\\n\\tdisplay: list-item;\\r\\n}\\r\\n\\r\\n[mol_text_list_item]::before {\\r\\n\\tcontent: attr( mol_text_list_item_index ) \\\".\\\";\\r\\n\\twidth: 1.25rem;\\r\\n\\tdisplay: inline-block;\\r\\n\\tposition: absolute;\\r\\n\\tmargin-left: -1.75rem;\\r\\n\\ttext-align: end;\\r\\n}\\r\\n\\r\\n[mol_text_list_type=\\\"-\\\"] > [mol_text_list_item]::before,\\r\\n[mol_text_list_type=\\\"*\\\"] > [mol_text_list_item]::before {\\r\\n\\tcontent: \\\"•\\\";\\r\\n}\\r\\n\"\n) }","$hyoo_survey_meet_form $mol_page\n\tmeet $hyoo_survey_meet\n\tTitle $mol_string_button\n\t\tvalue? <=> title? \\\n\t\thint \\Как всё прошло?\n\tbody /\n\t\t<= Pleasant_field $mol_form_field\n\t\t\tname \\Что понравилось?\n\t\t\tcontrol <= Pleasant $mol_textarea\n\t\t\t\tvalue? <=> pleasant? \\\n\t\t<= Improvement_field $mol_form_field\n\t\t\tname \\Что можно улучшить?\n\t\t\tcontrol <= Improvement $mol_textarea\n\t\t\t\tvalue? <=> improvement? \\\n\t\t<= Request_field $mol_form_field\n\t\t\tname \\Идеи? Предложения?\n\t\t\tcontrol <= Request $mol_textarea\n\t\t\t\tvalue? <=> request? \\\n\t\t<= Opinions $mol_list\n\t\t\trows <= opinions /\n\t\t\t\t<= Opinion*0 $mol_text\n\t\t\t\t\ttext <= opinion* \\\n","namespace $.$$ {\n\texport class $hyoo_survey_meet_form extends $.$hyoo_survey_meet_form {\n\n\t\ttitle( next?: string ) {\n\t\t\treturn this.meet().Title( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\tpleasant( next?: string ) {\n\t\t\treturn this.meet().opinion_my()?.Pleasant( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\timprovement( next?: string ) {\n\t\t\treturn this.meet().opinion_my()?.Improvement( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\trequest( next?: string ) {\n\t\t\treturn this.meet().opinion_my()?.Request( next )?.val( next ) ?? ''\n\t\t}\n\n\t\t@ $mol_mem\n\t\topinions() {\n\t\t\treturn this.meet().Opinions()?.keys().map( key => this.Opinion( key ) ) ?? []\n\t\t}\n\n\t\topinion( key: string ) {\n\t\t\tconst opinion = this.meet().Opinions()?.key( key )?.remote()\n\t\t\tif( !opinion ) return ''\n\t\t\treturn ( opinion.Pleasant()?.val() ?? '' ) + '\\n'\n\t\t\t\t+ ( opinion.Improvement()?.val() ?? '' ) + '\\n'\n\t\t\t\t+ ( opinion.Request()?.val() ?? '' ) + '\\n'\n\t\t}\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t\n\t$mol_style_define( $hyoo_survey_meet_form, {\n\t\t\n\t\tOpinion: {\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card,\n\t\t\t},\n\t\t\tmargin: $mol_gap.block, \n\t\t},\n\t\t\n\t} )\n\t\n}\n","$hyoo_survey_app $mol_book2_catalog\n\t- \\Конструктивный отзыв делает мир лучше!\n\tparam \\meet\n\trealm $hyoo_crus_realm\n\tmenu_title \\$hyoo_survey\n\tmenu_tools /\n\t\t<= Meet_add $mol_button_minor\n\t\t\tclick? <=> meet_add? null\n\t\t\tsub /\n\t\t\t\t<= Meet_add_icon $mol_icon_plus\n\tspread_ids /string\n\t\t\\1\n\t\t\\2\n\tSpread*0 <= Meet* $hyoo_survey_meet_form\n\t\tmeet <= meet* $hyoo_survey_meet\n","namespace $ {\n\texport class $hyoo_survey_person extends $hyoo_crus_entity.with({\n\t\tMeets: $hyoo_crus_list_ref_to( ()=> $hyoo_survey_meet ),\n\t}) {\n\t\t\n\t\t@ $mol_action\n\t\tmeet_make() {\n\t\t\treturn this.Meets(true)?.remote_make( $hyoo_crus_rank_orgy )\n\t\t}\n\n\t}\n}\n","namespace $.$$ {\n\texport class $hyoo_survey_app extends $.$hyoo_survey_app {\n\t\t\n\t\t@ $mol_mem\n\t\tmeet_id( next?: $hyoo_crus_ref ) {\n\t\t\tconst id = this.$.$mol_state_arg.value( 'meet', next?.description )\n\t\t\tif( !id ) return null\n\t\t\treturn $hyoo_crus_ref( id )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprofile() {\n\t\t\treturn this.realm().home().hall_by( $hyoo_survey_person, $hyoo_crus_rank_public )\n\t\t}\n\n\t\tmeet_add() {\n\t\t\tconst meet = this.profile()!.meet_make()!\n\t\t\tthis.meet_id( meet.ref() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tspread_ids() {\n\t\t\treturn this.profile()?.Meets()?.remote_list().map( meet => meet.ref().description! ) ?? []\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tmeet( id: string ) {\n\t\t\treturn this.realm().Node( $hyoo_crus_ref( id ), $hyoo_survey_meet )\n\t\t}\n\t\t\n\t}\n}\n"]} \ No newline at end of file diff --git a/node.locale=en.json b/node.locale=en.json new file mode 100644 index 0000000..1aa943e --- /dev/null +++ b/node.locale=en.json @@ -0,0 +1,6 @@ +{ + "$mol_search_Clear_hint": "Clear", + "$mol_search_hint": "Search...", + "$mol_text_code_Copy_hint": "Copy whole code", + "$mol_text_header_Link_hint": "Permalink to this section" +} \ No newline at end of file diff --git a/node.locale=ru.json b/node.locale=ru.json new file mode 100644 index 0000000..156d317 --- /dev/null +++ b/node.locale=ru.json @@ -0,0 +1,6 @@ +{ + "$mol_search_Clear_hint": "Очистить", + "$mol_search_hint": "Поиск..", + "$mol_text_code_Copy_hint": "Скопировать весь код", + "$mol_text_header_Link_hint": "Ссылка на эту секцию" +} \ No newline at end of file diff --git a/node.locale=uk.json b/node.locale=uk.json new file mode 100644 index 0000000..1348d1c --- /dev/null +++ b/node.locale=uk.json @@ -0,0 +1,6 @@ +{ + "$mol_search_Clear_hint": "Очистити", + "$mol_search_hint": "Пошук", + "$mol_text_code_Copy_hint": "Скопіювати весь код", + "$mol_text_header_Link_hint": "Посилання на цю секцію" +} \ No newline at end of file diff --git a/node.meta.tree b/node.meta.tree new file mode 100644 index 0000000..a9e9318 --- /dev/null +++ b/node.meta.tree @@ -0,0 +1,76 @@ +\/ + pack hyoo git \https://github.com/hyoo-ru/mam_hyoo.git + pack jin git \https://github.com/nin-jin/mam_jin.git + pack node git \https://github.com/hyoo-ru/mam_node.git + pack mol git \https://github.com/hyoo-ru/mam_mol.git + pack lib git \https://github.com/hyoo-ru/mam_lib.git + pack piterjs git \https://github.com/piterjs/piterjs.git + pack psb git \https://github.com/MolDevHack/psb.git + pack mpds git \https://github.com/mpds-io/mam_mpds + pack bun git \https://github.com/spleekz/mam_bun + pack yuf git \https://github.com/zerkalica/yuf.git +\/hyoo + pack about git \https://github.com/hyoo-ru/about.hyoo.ru.git + pack artist git \https://github.com/hyoo-ru/artist.hyoo.ru.git + pack apps git \https://github.com/hyoo-ru/apps.hyoo.ru.git + pack aura git \https://github.com/hyoo-ru/aura.hyoo.ru.git + pack bench git \https://github.com/hyoo-ru/bench.hyoo.ru.git + pack board git \https://github.com/hyoo-ru/board.hyoo.ru.git + pack calc git \https://github.com/hyoo-ru/calc.hyoo.ru.git + pack case git \https://github.com/hyoo-ru/case.hyoo.ru.git + pack crowd git \https://github.com/hyoo-ru/crowd.hyoo.ru.git + pack crus git \https://github.com/hyoo-ru/crus.hyoo.ru.git + pack draw git \https://github.com/hyoo-ru/draw.hyoo.ru.git + pack game git \https://github.com/hyoo-ru/game.hyoo.ru.git + pack github git \https://github.com/hyoo-ru/github.hyoo.ru.git + pack habhub git \https://github.com/hyoo-ru/habhub.hyoo.ru.git + pack harp git \https://github.com/hyoo-ru/harp.hyoo.ru.git + pack http git \https://github.com/hyoo-ru/http.hyoo.ru.git + pack fallacy git \https://github.com/hyoo-ru/fallacy.hyoo.ru.git + pack invest git \https://github.com/hyoo-ru/invest.hyoo.ru.git + pack iq git \https://github.com/hyoo-ru/iq.hyoo.ru.git + pack js git \https://github.com/hyoo-ru/hyoo_js.git + pack lamps git \https://github.com/hyoo-ru/lamps.hyoo.ru.git + pack life git \https://github.com/hyoo-ru/life.hyoo.ru.git + pack lingua git \https://github.com/hyoo-ru/lingua.hyoo.ru.git + pack lupa git \https://github.com/hyoo-ru/lupa.hyoo.ru.git + pack mail git \https://github.com/hyoo-ru/mail.hyoo.ru.git + pack map git \https://github.com/hyoo-ru/map.hyoo.ru.git + pack marked git \https://github.com/hyoo-ru/marked.hyoo.ru.git + pack match git \https://github.com/hyoo-ru/match.hyoo.ru.git + pack meme git \https://github.com/hyoo-ru/meme.hyoo.ru.git + pack meta git \https://github.com/hyoo-ru/hyoo_meta.git + pack mill git \https://github.com/hyoo-ru/hyoo_mill.git + pack mol git \https://github.com/hyoo-ru/mol.hyoo.ru.git + pack notes git \https://github.com/hyoo-ru/notes.hyoo.ru.git + pack offer git \https://github.com/hyoo-ru/offer.hyoo.ru.git + pack page git \https://github.com/hyoo-ru/page.hyoo.ru.git + pack play git \https://github.com/hyoo-ru/play.hyoo.ru.git + pack rdf git \https://github.com/hyoo-ru/rdf.hyoo.ru.git + pack realworld git \https://github.com/hyoo-ru/realworld.hyoo.ru.git + pack scout git \https://github.com/hyoo-ru/scout.hyoo.ru.git + pack search git \https://github.com/hyoo-ru/search.hyoo.ru.git + pack shelter git \https://github.com/hyoo-ru/shelter.hyoo.ru.git + pack showcase git \https://github.com/hyoo-ru/showcase.hyoo.ru.git + pack speculant git \https://github.com/hyoo-ru/speculant.hyoo.ru.git + pack square git \https://github.com/hyoo-ru/square.hyoo.ru.git + pack sketch git \https://github.com/hyoo-ru/sketch.hyoo.ru.git + pack slides git \https://github.com/hyoo-ru/slides.hyoo.ru.git + pack studio git \https://github.com/hyoo-ru/studio.hyoo.ru.git + pack sporno git \https://github.com/hyoo-ru/hyoo_sporno.git + pack static git \https://github.com/hyoo-ru/hyoo_static.git + pack survey git \https://github.com/hyoo-ru/survey.hyoo.ru.git + pack talks git \https://github.com/hyoo-ru/talks.hyoo.ru.git + pack todomvc git \https://github.com/hyoo-ru/todomvc.hyoo.ru.git + pack toys git \https://github.com/hyoo-ru/toys.hyoo.ru.git + pack tree git \https://github.com/hyoo-ru/tree.hyoo.ru.git + pack webdav git \https://github.com/hyoo-ru/webdav.hyoo.ru.git + pack when git \https://github.com/hyoo-ru/when.hyoo.ru.git + pack sync git \https://github.com/hyoo-ru/sync.hyoo.ru.git + pack home git \https://github.com/hyoo-ru/hyoo.ru.git + pack idea git \https://github.com/hyoo-ru/idea.hyoo.ru.git + pack intern git \https://github.com/hyoo-ru/intern.hyoo.ru.git +\/mol + pack icon git \https://github.com/nin-jin/mol_icon.git +\/mol/view + include \/mol/view/tree/test diff --git a/node.mjs b/node.mjs new file mode 100644 index 0000000..140f3d6 --- /dev/null +++ b/node.mjs @@ -0,0 +1,15033 @@ +#!/usr/bin/env node +"use strict"; +var exports = void 0; + +var $node = $node || {} +void function( module ) { var exports = module.exports = this; function require( id ) { return $node[ id.replace( /^.\// , "../" ) ] }; +; +"use strict"; +Error.stackTraceLimit = 50; +var $; +(function ($) { +})($ || ($ = {})); +module.exports = $; + +; + +$node[ "../mam.ts" ] = $node[ "../mam.ts" ] = module.exports }.call( {} , {} ) +; +"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 $ = ( typeof module === 'object' ) ? ( module['export'+'s'] = globalThis ) : globalThis +$.$$ = $ + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_ambient_ref = Symbol('$mol_ambient_ref'); + function $mol_ambient(overrides) { + return Object.setPrototypeOf(overrides, this || $); + } + $.$mol_ambient = $mol_ambient; +})($ || ($ = {})); + +; +"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), + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_owning_map = new WeakMap(); + function $mol_owning_allow(having) { + try { + if (!having) + return false; + if (typeof having !== 'object' && typeof having !== 'function') + return false; + if (having instanceof $mol_delegate) + return false; + if (typeof having['destructor'] !== 'function') + return false; + return true; + } + catch { + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail(error) { + throw error; + } + $.$mol_fail = $mol_fail; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail_hidden(error) { + throw error; + } + $.$mol_fail_hidden = $mol_fail_hidden; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const named = new WeakSet(); + function $mol_func_name(func) { + let name = func.name; + if (name?.length > 1) + return name; + if (named.has(func)) + return name; + for (let key in this) { + try { + if (this[key] !== func) + continue; + name = key; + Object.defineProperty(func, 'name', { value: name }); + break; + } + catch { } + } + named.add(func); + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_object2 { + static $ = $; + [Symbol.toStringTag]; + [$mol_ambient_ref] = null; + get $() { + if (this[$mol_ambient_ref]) + return this[$mol_ambient_ref]; + const owner = $mol_owning_get(this); + return this[$mol_ambient_ref] = 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) { + const obj = new this; + if (init) + init(obj); + return obj; + } + static [Symbol.toPrimitive]() { + return this.toString(); + } + static toString() { + return this[Symbol.toStringTag] || this.$.$mol_func_name(this); + } + static toJSON() { + return this.toString(); + } + destructor() { } + static destructor() { } + toString() { + return this[Symbol.toStringTag] || this.constructor.name + '<>'; + } + } + $.$mol_object2 = $mol_object2; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + let $$; + (function ($$) { + let $; + })($$ = $_1.$$ || ($_1.$$ = {})); + $_1.$mol_object_field = Symbol('$mol_object_field'); + class $mol_object extends $mol_object2 { + static make(config) { + return super.create(obj => { + for (let key in config) + obj[key] = config[key]; + }); + } + } + $_1.$mol_object = $mol_object; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_window extends $mol_object { + static size() { + return { + width: 1024, + height: 768, + }; + } + } + $.$mol_window = $mol_window; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_wire_cursor; + (function ($mol_wire_cursor) { + $mol_wire_cursor[$mol_wire_cursor["stale"] = -1] = "stale"; + $mol_wire_cursor[$mol_wire_cursor["doubt"] = -2] = "doubt"; + $mol_wire_cursor[$mol_wire_cursor["fresh"] = -3] = "fresh"; + $mol_wire_cursor[$mol_wire_cursor["final"] = -4] = "final"; + })($mol_wire_cursor = $.$mol_wire_cursor || ($.$mol_wire_cursor = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_pub extends Object { + data = []; + static get [Symbol.species]() { + return Array; + } + sub_from = 0; + get sub_list() { + const res = []; + for (let i = this.sub_from; i < this.data.length; i += 2) { + res.push(this.data[i]); + } + return res; + } + get sub_empty() { + return this.sub_from === this.data.length; + } + sub_on(sub, pub_pos) { + const pos = this.data.length; + this.data.push(sub, pub_pos); + return pos; + } + sub_off(sub_pos) { + if (!(sub_pos < this.data.length)) { + $mol_fail(new Error(`Wrong pos ${sub_pos}`)); + } + const end = this.data.length - 2; + if (sub_pos !== end) { + this.peer_move(end, sub_pos); + } + this.data.pop(); + this.data.pop(); + if (this.data.length === this.sub_from) + this.reap(); + } + reap() { } + promote() { + $mol_wire_auto()?.track_next(this); + } + fresh() { } + complete() { } + get incompleted() { + return false; + } + emit(quant = $mol_wire_cursor.stale) { + for (let i = this.sub_from; i < this.data.length; i += 2) { + ; + this.data[i].absorb(quant); + } + } + peer_move(from_pos, to_pos) { + const peer = this.data[from_pos]; + const self_pos = this.data[from_pos + 1]; + this.data[to_pos] = peer; + this.data[to_pos + 1] = self_pos; + peer.peer_repos(self_pos, to_pos); + } + peer_repos(peer_pos, self_pos) { + this.data[peer_pos + 1] = self_pos; + } + } + $.$mol_wire_pub = $mol_wire_pub; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_wire_auto_sub = null; + function $mol_wire_auto(next = $.$mol_wire_auto_sub) { + return $.$mol_wire_auto_sub = next; + } + $.$mol_wire_auto = $mol_wire_auto; + $.$mol_wire_affected = []; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $['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) { + try { + return val[$.$mol_dev_format_head](); + } + catch (error) { + return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), ''); + } + } + if (typeof val === 'function') { + return $mol_dev_format_native(val); + } + if (Symbol.toStringTag in val) { + return $mol_dev_format_native(val); + } + 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'); + 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)); + 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', { + ...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' + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_pub_sub extends $mol_wire_pub { + pub_from = 0; + cursor = $mol_wire_cursor.stale; + get temp() { + return false; + } + get pub_list() { + const res = []; + const max = this.cursor >= 0 ? this.cursor : this.sub_from; + for (let i = this.pub_from; i < max; i += 2) { + if (this.data[i]) + res.push(this.data[i]); + } + return res; + } + track_on() { + this.cursor = this.pub_from; + const sub = $mol_wire_auto(); + $mol_wire_auto(this); + return sub; + } + promote() { + if (this.cursor >= this.pub_from) { + $mol_fail(new Error('Circular subscription')); + } + super.promote(); + } + track_next(pub) { + if (this.cursor < 0) + $mol_fail(new Error('Promo to non begun sub')); + if (this.cursor < this.sub_from) { + const next = this.data[this.cursor]; + if (pub === undefined) + return next ?? null; + if (next === pub) { + this.cursor += 2; + return next; + } + if (next) { + if (this.sub_from < this.data.length) { + this.peer_move(this.sub_from, this.data.length); + } + this.peer_move(this.cursor, this.sub_from); + this.sub_from += 2; + } + } + else { + if (pub === undefined) + return null; + if (this.sub_from < this.data.length) { + this.peer_move(this.sub_from, this.data.length); + } + this.sub_from += 2; + } + this.data[this.cursor] = pub; + this.data[this.cursor + 1] = pub.sub_on(this, this.cursor); + this.cursor += 2; + return pub; + } + track_off(sub) { + $mol_wire_auto(sub); + if (this.cursor < 0) { + $mol_fail(new Error('End of non begun sub')); + } + for (let cursor = this.pub_from; cursor < this.cursor; cursor += 2) { + const pub = this.data[cursor]; + pub.fresh(); + } + this.cursor = $mol_wire_cursor.fresh; + } + pub_off(sub_pos) { + this.data[sub_pos] = undefined; + this.data[sub_pos + 1] = undefined; + } + destructor() { + for (let cursor = this.data.length - 2; cursor >= this.sub_from; cursor -= 2) { + const sub = this.data[cursor]; + const pos = this.data[cursor + 1]; + sub.pub_off(pos); + this.data.pop(); + this.data.pop(); + } + this.cursor = this.pub_from; + this.track_cut(); + this.cursor = $mol_wire_cursor.final; + } + track_cut() { + if (this.cursor < this.pub_from) { + $mol_fail(new Error('Cut of non begun sub')); + } + let tail = 0; + for (let cursor = this.cursor; cursor < this.sub_from; cursor += 2) { + const pub = this.data[cursor]; + pub?.sub_off(this.data[cursor + 1]); + if (this.sub_from < this.data.length) { + this.peer_move(this.data.length - 2, cursor); + this.data.pop(); + this.data.pop(); + } + else { + ++tail; + } + } + for (; tail; --tail) { + this.data.pop(); + this.data.pop(); + } + this.sub_from = this.cursor; + } + complete() { } + complete_pubs() { + const limit = this.cursor < 0 ? this.sub_from : this.cursor; + for (let cursor = this.pub_from; cursor < limit; cursor += 2) { + const pub = this.data[cursor]; + if (pub?.incompleted) + return; + } + for (let cursor = this.pub_from; cursor < limit; cursor += 2) { + const pub = this.data[cursor]; + pub?.complete(); + } + } + absorb(quant = $mol_wire_cursor.stale) { + if (this.cursor === $mol_wire_cursor.final) + return; + if (this.cursor >= quant) + return; + this.cursor = quant; + this.emit($mol_wire_cursor.doubt); + } + [$mol_dev_format_head]() { + return $mol_dev_format_native(this); + } + get pub_empty() { + return this.sub_from === this.pub_from; + } + } + $.$mol_wire_pub_sub = $mol_wire_pub_sub; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_timeout extends $mol_object2 { + delay; + task; + id; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_frame extends $mol_after_timeout { + task; + constructor(task) { + super(16, task); + this.task = task; + } + } + $.$mol_after_frame = $mol_after_frame; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_promise_like(val) { + return val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'; + } + $.$mol_promise_like = $mol_promise_like; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const handled = new WeakSet(); + class $mol_wire_fiber extends $mol_wire_pub_sub { + task; + host; + static warm = true; + static planning = new Set(); + static reaping = new Set(); + static plan_task = null; + static plan() { + if (this.plan_task) + return; + this.plan_task = new $mol_after_frame(() => { + try { + this.sync(); + } + finally { + $mol_wire_fiber.plan_task = null; + } + }); + } + static sync() { + while (this.planning.size) { + for (const fiber of this.planning) { + this.planning.delete(fiber); + if (fiber.cursor >= 0) + continue; + if (fiber.cursor === $mol_wire_cursor.final) + continue; + fiber.fresh(); + } + } + while (this.reaping.size) { + const fibers = this.reaping; + this.reaping = new Set; + for (const fiber of fibers) { + if (!fiber.sub_empty) + continue; + fiber.destructor(); + } + } + } + [Symbol.toStringTag]; + cache = undefined; + get args() { + return this.data.slice(0, this.pub_from); + } + result() { + if ($mol_promise_like(this.cache)) + return; + if (this.cache instanceof Error) + return; + return this.cache; + } + get incompleted() { + return $mol_promise_like(this.cache); + } + field() { + return this.task.name + '<>'; + } + constructor(id, task, host, args) { + super(); + this.task = task; + this.host = host; + if (args) + this.data.push(...args); + this.pub_from = this.sub_from = args?.length ?? 0; + this[Symbol.toStringTag] = id; + } + plan() { + $mol_wire_fiber.planning.add(this); + $mol_wire_fiber.plan(); + } + reap() { + $mol_wire_fiber.reaping.add(this); + $mol_wire_fiber.plan(); + } + toString() { + return this[Symbol.toStringTag]; + } + toJSON() { + return this[Symbol.toStringTag]; + } + [$mol_dev_format_head]() { + const cursor = { + [$mol_wire_cursor.stale]: '🔴', + [$mol_wire_cursor.doubt]: '🟡', + [$mol_wire_cursor.fresh]: '🟢', + [$mol_wire_cursor.final]: '🔵', + }[this.cursor] ?? this.cursor.toString(); + return $mol_dev_format_div({}, $mol_owning_check(this, this.cache) + ? $mol_dev_format_auto({ + [$mol_dev_format_head]: () => $mol_dev_format_shade(cursor), + [$mol_dev_format_body]: () => $mol_dev_format_native(this), + }) + : $mol_dev_format_shade($mol_dev_format_native(this), cursor), $mol_dev_format_auto(this.cache)); + } + get $() { + return (this.host ?? this.task)['$']; + } + emit(quant = $mol_wire_cursor.stale) { + if (this.sub_empty) + this.plan(); + else + super.emit(quant); + } + fresh() { + if (this.cursor === $mol_wire_cursor.fresh) + return; + if (this.cursor === $mol_wire_cursor.final) + return; + check: if (this.cursor === $mol_wire_cursor.doubt) { + for (let i = this.pub_from; i < this.sub_from; i += 2) { + ; + this.data[i]?.fresh(); + if (this.cursor !== $mol_wire_cursor.doubt) + break check; + } + this.cursor = $mol_wire_cursor.fresh; + return; + } + const bu = this.track_on(); + let result; + try { + switch (this.pub_from) { + case 0: + result = this.task.call(this.host); + break; + case 1: + result = this.task.call(this.host, this.data[0]); + break; + default: + result = this.task.call(this.host, ...this.args); + break; + } + if ($mol_promise_like(result) && !handled.has(result)) { + const put = (res) => { + if (this.cache === result) + this.put(res); + return res; + }; + result = result.then(put, put); + } + } + catch (error) { + if (error instanceof Error || $mol_promise_like(error)) { + result = error; + } + else { + result = new Error(String(error), { cause: error }); + } + if ($mol_promise_like(result) && !handled.has(result)) { + result = result.finally(() => { + if (this.cache === result) + this.absorb(); + }); + } + } + if ($mol_promise_like(result) && !handled.has(result)) { + result = Object.assign(result, { + destructor: result['destructor'] ?? (() => { }) + }); + handled.add(result); + const error = new Error(`Promise in ${this}`); + Object.defineProperty(result, 'stack', { get: () => error.stack }); + } + if (!$mol_promise_like(result)) { + this.track_cut(); + } + this.track_off(bu); + this.put(result); + } + refresh() { + this.cursor = $mol_wire_cursor.stale; + this.fresh(); + } + sync() { + if (!$mol_wire_fiber.warm) { + return this.result(); + } + this.promote(); + this.fresh(); + if (this.cache instanceof Error) { + return $mol_fail_hidden(this.cache); + } + if ($mol_promise_like(this.cache)) { + return $mol_fail_hidden(this.cache); + } + return this.cache; + } + async async() { + while (true) { + this.fresh(); + if (this.cache instanceof Error) { + $mol_fail_hidden(this.cache); + } + if (!$mol_promise_like(this.cache)) + return this.cache; + await Promise.race([this.cache, this.step()]); + if (!$mol_promise_like(this.cache)) + return this.cache; + if (this.cursor === $mol_wire_cursor.final) { + await new Promise(() => { }); + } + } + } + step() { + return new Promise(done => { + const sub = new $mol_wire_pub_sub; + const prev = sub.track_on(); + sub.track_next(this); + sub.track_off(prev); + sub.absorb = () => { + done(null); + sub.destructor(); + }; + }); + } + } + $.$mol_wire_fiber = $mol_wire_fiber; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_guid(length = 8, exists = () => false) { + for (;;) { + let id = Math.random().toString(36).substring(2, length + 2).toUpperCase(); + if (exists(id)) + continue; + return id; + } + } + $.$mol_guid = $mol_guid; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_key_store = new WeakMap(); + function $mol_key(value) { + if (typeof value === 'bigint') + return value.toString() + 'n'; + if (typeof value === 'symbol') + return value.description; + if (!value) + return JSON.stringify(value); + if (typeof value !== 'object' && typeof value !== 'function') + return JSON.stringify(value); + return JSON.stringify(value, (field, value) => { + if (typeof value === 'bigint') + return value.toString() + 'n'; + if (typeof value === 'symbol') + return value.description; + if (!value) + return value; + if (typeof value !== 'object' && typeof value !== 'function') + return value; + if (Array.isArray(value)) + return value; + const proto = Reflect.getPrototypeOf(value); + if (!proto) + return value; + if (Reflect.getPrototypeOf(proto) === null) + return value; + if ('toJSON' in value) + return value; + if (value instanceof RegExp) + return value.toString(); + if (value instanceof Uint8Array) + return [...value]; + let key = $.$mol_key_store.get(value); + if (key) + return key; + key = $mol_guid(); + $.$mol_key_store.set(value, key); + return key; + }); + } + $.$mol_key = $mol_key; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_compare_deep_cache = new WeakMap(); + function $mol_compare_deep(left, right) { + if (Object.is(left, right)) + return true; + if (left === null) + return false; + if (right === null) + return false; + if (typeof left !== 'object') + return false; + if (typeof right !== 'object') + return false; + const left_proto = Reflect.getPrototypeOf(left); + const right_proto = Reflect.getPrototypeOf(right); + if (left_proto !== right_proto) + return false; + if (left instanceof Boolean) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof Number) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof String) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof Date) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof RegExp) + return left.source === right.source && left.flags === right.flags; + if (left instanceof Error) + return left.message === right.message && left.stack === right.stack; + let left_cache = $.$mol_compare_deep_cache.get(left); + if (left_cache) { + const right_cache = left_cache.get(right); + if (typeof right_cache === 'boolean') + return right_cache; + } + else { + left_cache = new WeakMap([[right, true]]); + $.$mol_compare_deep_cache.set(left, left_cache); + } + let result; + try { + if (!left_proto) + result = compare_pojo(left, right); + else if (!Reflect.getPrototypeOf(left_proto)) + result = compare_pojo(left, right); + else if (Symbol.toPrimitive in left) + result = compare_primitive(left, right); + else if (Array.isArray(left)) + result = compare_array(left, right); + else if (left instanceof Set) + result = compare_set(left, right); + else if (left instanceof Map) + result = compare_map(left, right); + else if (ArrayBuffer.isView(left)) + result = compare_buffer(left, right); + else if (Symbol.iterator in left) + result = compare_iterator(left[Symbol.iterator](), right[Symbol.iterator]()); + else + result = false; + } + finally { + left_cache.set(right, result); + } + return result; + } + $.$mol_compare_deep = $mol_compare_deep; + function compare_array(left, right) { + const len = left.length; + if (len !== right.length) + return false; + for (let i = 0; i < len; ++i) { + if (!$mol_compare_deep(left[i], right[i])) + return false; + } + return true; + } + function compare_buffer(left, right) { + const len = left.byteLength; + if (len !== right.byteLength) + return false; + if (left instanceof DataView) + return compare_buffer(new Uint8Array(left.buffer, left.byteOffset, left.byteLength), new Uint8Array(right.buffer, left.byteOffset, left.byteLength)); + for (let i = 0; i < len; ++i) { + if (left[i] !== right[i]) + return false; + } + return true; + } + function compare_iterator(left, right) { + while (true) { + const left_next = left.next(); + const right_next = right.next(); + if (left_next.done !== right_next.done) + return false; + if (left_next.done) + break; + if (!$mol_compare_deep(left_next.value, right_next.value)) + return false; + } + return true; + } + function compare_set(left, right) { + if (left.size !== right.size) + return false; + return compare_iterator(left.values(), right.values()); + } + function compare_map(left, right) { + if (left.size !== right.size) + return false; + return compare_iterator(left.keys(), right.keys()) + && compare_iterator(left.values(), right.values()); + } + function compare_pojo(left, right) { + const left_keys = Object.getOwnPropertyNames(left); + const right_keys = Object.getOwnPropertyNames(right); + if (!compare_array(left_keys, right_keys)) + return false; + for (let key of left_keys) { + if (!$mol_compare_deep(left[key], right[key])) + return false; + } + const left_syms = Object.getOwnPropertySymbols(left); + const right_syms = Object.getOwnPropertySymbols(right); + if (!compare_array(left_syms, right_syms)) + return false; + for (let key of left_syms) { + if (!$mol_compare_deep(left[key], right[key])) + return false; + } + return true; + } + function compare_primitive(left, right) { + return Object.is(left[Symbol.toPrimitive]('default'), right[Symbol.toPrimitive]('default')); + } +})($ || ($ = {})); + +; +"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 = []; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_span extends $mol_object2 { + uri; + source; + row; + col; + length; + constructor(uri, source, row, col, length) { + super(); + this.uri = uri; + this.source = source; + this.row = row; + this.col = col; + this.length = length; + this[Symbol.toStringTag] = `${this.uri}#${this.row}:${this.col}/${this.length}`; + } + static unknown = $mol_span.begin('?'); + static begin(uri, source = '') { + return new $mol_span(uri, source, 1, 1, 0); + } + static end(uri, source) { + return new $mol_span(uri, source, 1, source.length + 1, 0); + } + static entire(uri, source) { + return new $mol_span(uri, source, 1, 1, source.length); + } + toString() { + return this[Symbol.toStringTag]; + } + toJSON() { + return { + uri: this.uri, + row: this.row, + col: this.col, + length: this.length + }; + } + error(message, Class = Error) { + return new Class(`${message} (${this})`); + } + span(row, col, length) { + return new $mol_span(this.uri, this.source, row, col, length); + } + after(length = 0) { + return new $mol_span(this.uri, this.source, this.row, this.col + this.length, length); + } + slice(begin, end = -1) { + let len = this.length; + if (begin < 0) + begin += len; + if (end < 0) + end += len; + if (begin < 0 || begin > len) + this.$.$mol_fail(this.error(`Begin value '${begin}' out of range`, RangeError)); + if (end < 0 || end > len) + this.$.$mol_fail(this.error(`End value '${end}' out of range`, RangeError)); + if (end < begin) + this.$.$mol_fail(this.error(`End value '${end}' can't be less than begin value`, RangeError)); + return this.span(this.row, this.col + begin, end - begin); + } + } + $.$mol_span = $mol_span; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_to_string(tree) { + let output = []; + function dump(tree, prefix = '') { + if (tree.type.length) { + if (!prefix.length) { + prefix = "\t"; + } + output.push(tree.type); + if (tree.kids.length == 1) { + output.push(' '); + dump(tree.kids[0], prefix); + return; + } + output.push("\n"); + } + else if (tree.value.length || prefix.length) { + output.push("\\" + tree.value + "\n"); + } + for (const kid of tree.kids) { + output.push(prefix); + dump(kid, prefix + "\t"); + } + } + dump(tree); + return output.join(''); + } + $.$mol_tree2_to_string = $mol_tree2_to_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_tree2 extends Object { + type; + value; + kids; + span; + constructor(type, value, kids, span) { + super(); + this.type = type; + this.value = value; + this.kids = kids; + this.span = span; + this[Symbol.toStringTag] = type || '\\' + value; + } + static list(kids, span = $mol_span.unknown) { + return new $mol_tree2('', '', kids, span); + } + list(kids) { + return $mol_tree2.list(kids, this.span); + } + static data(value, kids = [], span = $mol_span.unknown) { + const chunks = value.split('\n'); + if (chunks.length > 1) { + let kid_span = span.span(span.row, span.col, 0); + const data = chunks.map(chunk => { + kid_span = kid_span.after(chunk.length); + return new $mol_tree2('', chunk, [], kid_span); + }); + kids = [...data, ...kids]; + value = ''; + } + return new $mol_tree2('', value, kids, span); + } + data(value, kids = []) { + return $mol_tree2.data(value, kids, this.span); + } + static struct(type, kids = [], span = $mol_span.unknown) { + if (/[ \n\t\\]/.test(type)) { + $$.$mol_fail(span.error(`Wrong type ${JSON.stringify(type)}`)); + } + return new $mol_tree2(type, '', kids, span); + } + struct(type, kids = []) { + return $mol_tree2.struct(type, kids, this.span); + } + clone(kids, span = this.span) { + return new $mol_tree2(this.type, this.value, kids, span); + } + text() { + var values = []; + for (var kid of this.kids) { + if (kid.type) + continue; + values.push(kid.value); + } + return this.value + values.join('\n'); + } + static fromString(str, uri = 'unknown') { + return $$.$mol_tree2_from_string(str, uri); + } + toString() { + return $$.$mol_tree2_to_string(this); + } + insert(value, ...path) { + if (path.length === 0) + return value; + const type = path[0]; + if (typeof type === 'string') { + let replaced = false; + const sub = this.kids.map((item, index) => { + if (item.type !== type) + return item; + replaced = true; + return item.insert(value, ...path.slice(1)); + }).filter(Boolean); + if (!replaced && value) { + sub.push(this.struct(type, []).insert(value, ...path.slice(1))); + } + return this.clone(sub); + } + else if (typeof type === 'number') { + const sub = this.kids.slice(); + sub[type] = (sub[type] || this.list([])) + .insert(value, ...path.slice(1)); + return this.clone(sub.filter(Boolean)); + } + else { + const kids = ((this.kids.length === 0) ? [this.list([])] : this.kids) + .map(item => item.insert(value, ...path.slice(1))) + .filter(Boolean); + return this.clone(kids); + } + } + select(...path) { + let next = [this]; + for (const type of path) { + if (!next.length) + break; + const prev = next; + next = []; + for (var item of prev) { + switch (typeof (type)) { + case 'string': + for (var child of item.kids) { + if (child.type == type) { + next.push(child); + } + } + break; + case 'number': + if (type < item.kids.length) + next.push(item.kids[type]); + break; + default: next.push(...item.kids); + } + } + } + return this.list(next); + } + filter(path, value) { + const sub = this.kids.filter(item => { + var found = item.select(...path); + if (value === undefined) { + return Boolean(found.kids.length); + } + else { + return found.kids.some(child => child.value == value); + } + }); + return this.clone(sub); + } + hack_self(belt, context = {}) { + let handle = belt[this.type] || belt['']; + if (!handle || handle === Object.prototype[this.type]) { + handle = (input, belt, context) => [ + input.clone(input.hack(belt, context), context.span) + ]; + } + try { + return handle(this, belt, context); + } + catch (error) { + error.message += `\n${this.clone([])}${this.span}`; + $mol_fail_hidden(error); + } + } + hack(belt, context = {}) { + return [].concat(...this.kids.map(child => child.hack_self(belt, context))); + } + error(message, Class = Error) { + return this.span.error(`${message}\n${this.clone([])}`, Class); + } + } + $.$mol_tree2 = $mol_tree2; + class $mol_tree2_empty extends $mol_tree2 { + constructor() { + super('', '', [], $mol_span.unknown); + } + } + $.$mol_tree2_empty = $mol_tree2_empty; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_error_syntax extends SyntaxError { + reason; + line; + span; + constructor(reason, line, span) { + super(`${reason}\n${span}\n${line.substring(0, span.col - 1).replace(/\S/g, ' ')}${''.padEnd(span.length, '!')}\n${line}`); + this.reason = reason; + this.line = line; + this.span = span; + } + } + $.$mol_error_syntax = $mol_error_syntax; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_from_string(str, uri = '?') { + const span = $mol_span.entire(uri, str); + var root = $mol_tree2.list([], span); + var stack = [root]; + var pos = 0, row = 0, min_indent = 0; + while (str.length > pos) { + var indent = 0; + var line_start = pos; + row++; + while (str.length > pos && str[pos] == '\t') { + indent++; + pos++; + } + if (!root.kids.length) { + min_indent = indent; + } + indent -= min_indent; + if (indent < 0 || indent >= stack.length) { + const sp = span.span(row, 1, pos - line_start); + while (str.length > pos && str[pos] != '\n') { + pos++; + } + if (indent < 0) { + if (str.length > pos) { + this.$mol_fail(new this.$mol_error_syntax(`Too few tabs`, str.substring(line_start, pos), sp)); + } + } + else { + this.$mol_fail(new this.$mol_error_syntax(`Too many tabs`, str.substring(line_start, pos), sp)); + } + } + stack.length = indent + 1; + var parent = stack[indent]; + while (str.length > pos && str[pos] != '\\' && str[pos] != '\n') { + var error_start = pos; + while (str.length > pos && (str[pos] == ' ' || str[pos] == '\t')) { + pos++; + } + if (pos > error_start) { + let line_end = str.indexOf('\n', pos); + if (line_end === -1) + line_end = str.length; + const sp = span.span(row, error_start - line_start + 1, pos - error_start); + this.$mol_fail(new this.$mol_error_syntax(`Wrong nodes separator`, str.substring(line_start, line_end), sp)); + } + var type_start = pos; + while (str.length > pos && + str[pos] != '\\' && + str[pos] != ' ' && + str[pos] != '\t' && + str[pos] != '\n') { + pos++; + } + if (pos > type_start) { + let next = new $mol_tree2(str.slice(type_start, pos), '', [], span.span(row, type_start - line_start + 1, pos - type_start)); + const parent_kids = parent.kids; + parent_kids.push(next); + parent = next; + } + if (str.length > pos && str[pos] == ' ') { + pos++; + } + } + if (str.length > pos && str[pos] == '\\') { + var data_start = pos; + while (str.length > pos && str[pos] != '\n') { + pos++; + } + let next = new $mol_tree2('', str.slice(data_start + 1, pos), [], span.span(row, data_start - line_start + 2, pos - data_start - 1)); + const parent_kids = parent.kids; + parent_kids.push(next); + parent = next; + } + if (str.length === pos && stack.length > 0) { + const sp = span.span(row, pos - line_start + 1, 1); + this.$mol_fail(new this.$mol_error_syntax(`Unexpected EOF, LF required`, str.substring(line_start, str.length), sp)); + } + stack.push(parent); + pos++; + } + return root; + } + $.$mol_tree2_from_string = $mol_tree2_from_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_from_json(json, span = $mol_span.unknown) { + if (typeof json === 'boolean' || typeof json === 'number' || json === null) { + return new $mol_tree2(String(json), '', [], span); + } + if (typeof json === 'string') { + return $mol_tree2.data(json, [], span); + } + if (Array.isArray(json)) { + const sub = json.map(json => $mol_tree2_from_json(json, span)); + return new $mol_tree2('/', '', sub, span); + } + if (ArrayBuffer.isView(json)) { + const buf = new Uint8Array(json.buffer, json.byteOffset, json.byteLength); + return $mol_tree2.data(String.fromCharCode(...buf), [], span); + } + if (json instanceof Date) { + return new $mol_tree2('', json.toISOString(), [], span); + } + if (typeof json.toJSON === 'function') { + return $mol_tree2_from_json(json.toJSON()); + } + if (json.toString !== Object.prototype.toString) { + return $mol_tree2.data(json.toString(), [], span); + } + if (json instanceof Error) { + const { name, message, stack } = json; + json = { ...json, name, message, stack }; + } + const sub = []; + for (var key in json) { + const val = json[key]; + if (val === undefined) + continue; + const subsub = $mol_tree2_from_json(val, span); + if (/^[^\n\t\\ ]+$/.test(key)) { + sub.push(new $mol_tree2(key, '', [subsub], span)); + } + else { + sub.push($mol_tree2.data(key, [subsub], span)); + } + } + return new $mol_tree2('*', '', sub, span); + } + $.$mol_tree2_from_json = $mol_tree2_from_json; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_term_color { + static reset = this.ansi(0, 0); + static bold = this.ansi(1, 22); + static italic = this.ansi(3, 23); + static underline = this.ansi(4, 24); + static inverse = this.ansi(7, 27); + static hidden = this.ansi(8, 28); + static strike = this.ansi(9, 29); + static gray = this.ansi(90, 39); + static red = this.ansi(91, 39); + static green = this.ansi(92, 39); + static yellow = this.ansi(93, 39); + static blue = this.ansi(94, 39); + static magenta = this.ansi(95, 39); + static cyan = this.ansi(96, 39); + static Gray = (str) => this.inverse(this.gray(str)); + static Red = (str) => this.inverse(this.red(str)); + static Green = (str) => this.inverse(this.green(str)); + static Yellow = (str) => this.inverse(this.yellow(str)); + static Blue = (str) => this.inverse(this.blue(str)); + static Magenta = (str) => this.inverse(this.magenta(str)); + static Cyan = (str) => this.inverse(this.cyan(str)); + static ansi(open, close) { + if (typeof process === 'undefined') + return String; + if (!process.stdout.isTTY) + return String; + const prefix = `\x1b[${open}m`; + const postfix = `\x1b[${close}m`; + const suffix_regexp = new RegExp(postfix.replace('[', '\\['), 'g'); + return function colorer(str) { + str = String(str); + if (str === '') + return str; + const suffix = str.replace(suffix_regexp, prefix); + return prefix + suffix + postfix; + }; + } + } + $.$mol_term_color = $mol_term_color; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_log3_node_make(level, output, type, color) { + return function $mol_log3_logger(event) { + if (!event.time) + event = { time: new Date().toISOString(), ...event }; + let tree = this.$mol_tree2_from_json(event); + tree = tree.struct(type, tree.kids); + let str = color(tree.toString()); + this.console[level](str); + const self = this; + return () => self.console.groupEnd(); + }; + } + $.$mol_log3_node_make = $mol_log3_node_make; + $.$mol_log3_come = $mol_log3_node_make('info', 'stdout', 'come', $mol_term_color.blue); + $.$mol_log3_done = $mol_log3_node_make('info', 'stdout', 'done', $mol_term_color.green); + $.$mol_log3_fail = $mol_log3_node_make('error', 'stderr', 'fail', $mol_term_color.red); + $.$mol_log3_warn = $mol_log3_node_make('warn', 'stderr', 'warn', $mol_term_color.yellow); + $.$mol_log3_rise = $mol_log3_node_make('log', 'stdout', 'rise', $mol_term_color.magenta); + $.$mol_log3_area = $mol_log3_node_make('log', 'stdout', 'area', $mol_term_color.cyan); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_task extends $mol_wire_fiber { + static getter(task) { + return function $mol_wire_task_get(host, args) { + const sub = $mol_wire_auto(); + const existen = sub?.track_next(); + reuse: if (existen) { + if (!existen.temp) + break reuse; + if (existen.host !== host) + break reuse; + if (existen.task !== task) + break reuse; + if (!$mol_compare_deep(existen.args, args)) + break reuse; + return existen; + } + const next = new $mol_wire_task(`${host?.[Symbol.toStringTag] ?? host}.${task.name}<#>`, task, host, args); + if (existen?.temp) { + $$.$mol_log3_warn({ + place: '$mol_wire_task', + message: `Non idempotency`, + existen, + next, + hint: 'Ignore it', + }); + } + return next; + }; + } + get temp() { + return true; + } + complete() { + if ($mol_promise_like(this.cache)) + return; + this.destructor(); + } + put(next) { + const prev = this.cache; + this.cache = next; + if ($mol_promise_like(next)) { + this.cursor = $mol_wire_cursor.fresh; + if (next !== prev) + this.emit(); + return next; + } + this.cursor = $mol_wire_cursor.final; + if (this.sub_empty) + this.destructor(); + else if (next !== prev) + this.emit(); + return next; + } + } + $.$mol_wire_task = $mol_wire_task; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_method(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const temp = $mol_wire_task.getter(orig); + const value = function (...args) { + const fiber = temp(this ?? null, args); + return fiber.sync(); + }; + Object.defineProperty(value, 'name', { value: orig.name + ' ' }); + Object.assign(value, { orig }); + const descr2 = { ...descr, value }; + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_method = $mol_wire_method; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const catched = new WeakMap(); + function $mol_fail_catch(error) { + if (typeof error !== 'object') + return false; + if ($mol_promise_like(error)) + $mol_fail_hidden(error); + if (catched.get(error)) + return false; + catched.set(error, true); + return true; + } + $.$mol_fail_catch = $mol_fail_catch; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail_log(error) { + if ($mol_promise_like(error)) + return false; + if (!$mol_fail_catch(error)) + return false; + console.error(error); + return true; + } + $.$mol_fail_log = $mol_fail_log; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_atom extends $mol_wire_fiber { + static solo(host, task) { + const field = task.name + '<>'; + const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value; + if (existen) + return existen; + const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host); + const key = `${prefix}.${field}`; + const fiber = new $mol_wire_atom(key, task, host, []); + (host ?? task)[field] = fiber; + return fiber; + } + static plex(host, task, key) { + const field = task.name + '<>'; + let dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value; + const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host); + const key_str = $mol_key(key); + if (dict) { + const existen = dict.get(key_str); + if (existen) + return existen; + } + else { + dict = (host ?? task)[field] = new Map(); + } + const id = `${prefix}.${task.name}<${key_str.replace(/^"|"$/g, "'")}>`; + const fiber = new $mol_wire_atom(id, task, host, [key]); + dict.set(key_str, fiber); + return fiber; + } + static watching = new Set(); + static watcher = null; + static watch() { + $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch); + for (const atom of $mol_wire_atom.watching) { + if (atom.cursor === $mol_wire_cursor.final) { + $mol_wire_atom.watching.delete(atom); + } + else { + atom.cursor = $mol_wire_cursor.stale; + atom.fresh(); + } + } + } + watch() { + if (!$mol_wire_atom.watcher) { + $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch); + } + $mol_wire_atom.watching.add(this); + } + resync(args) { + return this.put(this.task.call(this.host, ...args)); + } + once() { + return this.sync(); + } + channel() { + return Object.assign((next) => { + if (next !== undefined) + return this.resync([...this.args, next]); + if (!$mol_wire_fiber.warm) + return this.result(); + if ($mol_wire_auto()?.temp) { + return this.once(); + } + else { + return this.sync(); + } + }, { atom: this }); + } + destructor() { + super.destructor(); + const prev = this.cache; + if ($mol_owning_check(this, prev)) { + prev.destructor(); + } + if (this.pub_from === 0) { + ; + (this.host ?? this.task)[this.field()] = null; + } + else { + ; + (this.host ?? this.task)[this.field()].delete($mol_key(this.args[0])); + } + } + put(next) { + const prev = this.cache; + update: if (next !== prev) { + try { + if ($mol_compare_deep(prev, next)) + break update; + } + catch (error) { + $mol_fail_log(error); + } + if ($mol_owning_check(this, prev)) { + prev.destructor(); + } + if ($mol_owning_catch(this, next)) { + try { + next[Symbol.toStringTag] = this[Symbol.toStringTag]; + } + catch { + Object.defineProperty(next, Symbol.toStringTag, { value: this[Symbol.toStringTag] }); + } + } + if (!this.sub_empty) + this.emit(); + } + this.cache = next; + this.cursor = $mol_wire_cursor.fresh; + if ($mol_promise_like(next)) + return next; + this.complete_pubs(); + return next; + } + } + __decorate([ + $mol_wire_method + ], $mol_wire_atom.prototype, "resync", null); + __decorate([ + $mol_wire_method + ], $mol_wire_atom.prototype, "once", null); + $.$mol_wire_atom = $mol_wire_atom; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_solo(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const descr2 = { + ...descr, + value: function (...args) { + let atom = $mol_wire_atom.solo(this, orig); + if ((args.length === 0) || (args[0] === undefined)) { + if (!$mol_wire_fiber.warm) + return atom.result(); + if ($mol_wire_auto()?.temp) { + return atom.once(); + } + else { + return atom.sync(); + } + } + return atom.resync(args); + } + }; + Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' }); + Reflect.defineProperty(descr2.value, 'length', { value: orig.length }); + Object.assign(descr2.value, { orig }); + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_solo = $mol_wire_solo; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_plex(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const descr2 = { + ...descr, + value: function (...args) { + let atom = $mol_wire_atom.plex(this, orig, args[0]); + if ((args.length === 1) || (args[1] === undefined)) { + if (!$mol_wire_fiber.warm) + return atom.result(); + if ($mol_wire_auto()?.temp) { + return atom.once(); + } + else { + return atom.sync(); + } + } + return atom.resync(args); + } + }; + Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' }); + Reflect.defineProperty(descr2.value, 'length', { value: orig.length }); + Object.assign(descr2.value, { orig }); + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_plex = $mol_wire_plex; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem = $mol_wire_solo; + $.$mol_mem_key = $mol_wire_plex; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $node = new Proxy({ require }, { + get(target, name, wrapper) { + if (target[name]) + return target[name]; + const mod = target.require('module'); + if (mod.builtinModules.indexOf(name) >= 0) + return target.require(name); + if (name[0] === '.') + return target.require(name); + const path = target.require('path'); + const fs = target.require('fs'); + let dir = path.resolve('.'); + const suffix = `./node_modules/${name}`; + const $$ = $; + while (!fs.existsSync(path.join(dir, suffix))) { + const parent = path.resolve(dir, '..'); + if (parent === dir) { + $$.$mol_exec('.', 'npm', 'install', '--omit=dev', name); + try { + $$.$mol_exec('.', 'npm', 'install', '--omit=dev', '@types/' + name); + } + catch { } + break; + } + else { + dir = parent; + } + } + try { + return target.require(name); + } + catch (error) { + if (error.code === 'ERR_REQUIRE_ESM') { + const module = cache.get(name); + if (module) + return module; + throw import(name).then(module => cache.set(name, module)); + } + $.$mol_fail_log(error); + return null; + } + }, + set(target, name, value) { + target[name] = value; + return true; + }, +}); +const cache = new Map(); +require = (req => Object.assign(function require(name) { + return $node[name]; +}, req))(require); + +; +"use strict"; +var $; +(function ($) { + function $mol_env() { + return {}; + } + $.$mol_env = $mol_env; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_env = function $mol_env() { + return this.process.env; + }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_exec(dir, command, ...args) { + let [app, ...args0] = command.split(' '); + args = [...args0, ...args]; + this.$mol_log3_come({ + place: '$mol_exec', + dir: $node.path.relative('', dir), + message: 'Run', + command: `${app} ${args.join(' ')}`, + }); + var res = $node['child_process'].spawnSync(app, args, { + cwd: $node.path.resolve(dir), + shell: true, + env: this.$mol_env(), + }); + if (res.status || res.error) { + return $mol_fail(res.error || new Error(res.stderr.toString(), { cause: res.stdout })); + } + if (!res.stdout) + res.stdout = Buffer.from([]); + return res; + } + $.$mol_exec = $mol_exec; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_dom_context = new $node.jsdom.JSDOM('', { url: 'https://localhost/' }).window; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_tick extends $mol_object2 { + task; + promise; + cancelled = false; + constructor(task) { + super(); + this.task = task; + this.promise = Promise.resolve().then(() => { + if (this.cancelled) + return; + task(); + }); + } + destructor() { + this.cancelled = true; + } + } + $.$mol_after_tick = $mol_after_tick; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_view_selection extends $mol_object { + static focused(next, notify) { + const parents = []; + let element = next?.[0] ?? $mol_dom_context.document.activeElement; + while (element) { + parents.push(element); + element = element.parentNode; + } + if (!next || notify) + return parents; + new $mol_after_tick(() => { + const element = this.focused()[0]; + if (element) + element.focus(); + else + $mol_dom_context.blur(); + }); + return parents; + } + } + __decorate([ + $mol_mem + ], $mol_view_selection, "focused", null); + $.$mol_view_selection = $mol_view_selection; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wrapper extends $mol_object2 { + static wrap; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_memo extends $mol_wrapper { + static wrap(task) { + const store = new WeakMap(); + return function (next) { + if (next === undefined && store.has(this)) + return store.get(this); + const val = task.call(this, next) ?? next; + store.set(this, val); + return val; + }; + } + } + $.$mol_memo = $mol_memo; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_qname(name) { + return name.replace(/\W/g, '').replace(/^(?=\d+)/, '_'); + } + $.$mol_dom_qname = $mol_dom_qname; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_probe(task, def) { + const warm = $mol_wire_fiber.warm; + try { + $mol_wire_fiber.warm = false; + const res = task(); + if (res === undefined) + return def; + return res; + } + finally { + $mol_wire_fiber.warm = warm; + } + } + $.$mol_wire_probe = $mol_wire_probe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_watch() { + const atom = $mol_wire_auto(); + if (atom instanceof $mol_wire_atom) { + atom.watch(); + } + else { + $mol_fail(new Error('Atom is required for watching')); + } + } + $.$mol_wire_watch = $mol_wire_watch; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_const(value) { + const getter = (() => value); + getter['()'] = value; + getter[Symbol.toStringTag] = value; + getter[$mol_dev_format_head] = () => $mol_dev_format_span({}, '()=> ', $mol_dev_format_auto(value)); + return getter; + } + $.$mol_const = $mol_const; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_solid() { + let current = $mol_wire_auto(); + if (current.temp) + current = current.host; + if (current.reap !== nothing) { + current?.sub_on(sub, sub.data.length); + } + current.reap = nothing; + } + $.$mol_wire_solid = $mol_wire_solid; + const nothing = () => { }; + const sub = new $mol_wire_pub_sub; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_attributes(el, attrs) { + for (let name in attrs) { + let val = attrs[name]; + if (val === undefined) { + continue; + } + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_events(el, events, passive = false) { + for (let name in events) { + el.addEventListener(name, events[name], { passive }); + } + } + $.$mol_dom_render_events = $mol_dom_render_events; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_styles(el, styles) { + for (let name in styles) { + let val = styles[name]; + const style = el.style; + const kebab = (name) => name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()); + if (typeof val === 'number') { + style.setProperty(kebab(name), `${val}px`); + } + else { + style.setProperty(kebab(name), val); + } + } + } + $.$mol_dom_render_styles = $mol_dom_render_styles; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_async(obj) { + let fiber; + const temp = $mol_wire_task.getter(obj); + return new Proxy(obj, { + get(obj, field) { + const val = obj[field]; + if (typeof val !== 'function') + return val; + let fiber; + const temp = $mol_wire_task.getter(val); + return function $mol_wire_async(...args) { + fiber?.destructor(); + fiber = temp(obj, args); + return fiber.async(); + }; + }, + apply(obj, self, args) { + fiber?.destructor(); + fiber = temp(self, args); + return fiber.async(); + }, + }); + } + $.$mol_wire_async = $mol_wire_async; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + let all = []; + let el = null; + let timer = null; + function $mol_style_attach_force() { + if (all.length) { + el.innerHTML += '\n' + all.join('\n\n'); + all = []; + } + timer = null; + return el; + } + $.$mol_style_attach_force = $mol_style_attach_force; + 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($mol_style_attach_force); + return el; + } + $.$mol_style_attach = $mol_style_attach; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_decor { + value; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_style_unit extends $mol_decor { + literal; + constructor(value, literal) { + super(value); + this.literal = literal; + } + postfix() { + return this.literal; + } + static per(value) { return `${value}%`; } + static px(value) { return `${value}px`; } + static mm(value) { return `${value}mm`; } + static cm(value) { return `${value}cm`; } + static Q(value) { return `${value}Q`; } + static in(value) { return `${value}in`; } + static pc(value) { return `${value}pc`; } + static pt(value) { return `${value}pt`; } + static cap(value) { return `${value}cap`; } + static ch(value) { return `${value}ch`; } + static em(value) { return `${value}em`; } + static rem(value) { return `${value}rem`; } + static ex(value) { return `${value}ex`; } + static ic(value) { return `${value}ic`; } + static lh(value) { return `${value}lh`; } + static rlh(value) { return `${value}rlh`; } + static vh(value) { return `${value}vh`; } + static vw(value) { return `${value}vw`; } + static vi(value) { return `${value}vi`; } + static vb(value) { return `${value}vb`; } + static vmin(value) { return `${value}vmin`; } + static vmax(value) { return `${value}vmax`; } + static deg(value) { return `${value}deg`; } + static rad(value) { return `${value}rad`; } + static grad(value) { return `${value}grad`; } + static turn(value) { return `${value}turn`; } + static s(value) { return `${value}s`; } + static ms(value) { return `${value}ms`; } + } + $.$mol_style_unit = $mol_style_unit; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const { per } = $mol_style_unit; + class $mol_style_func extends $mol_decor { + name; + constructor(name, value) { + super(value); + this.name = name; + } + prefix() { return this.name + '('; } + postfix() { return ')'; } + static linear_gradient(value) { + return new $mol_style_func('linear-gradient', value); + } + static calc(value) { + return new $mol_style_func('calc', value); + } + static vary(name, defaultValue) { + return new $mol_style_func('var', defaultValue ? [name, defaultValue] : 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 clamp(min, mid, max) { + return new $mol_style_func('clamp', [min, mid, max]); + } + static rgba(red, green, blue, alpha) { + return new $mol_style_func('rgba', [red, green, blue, alpha]); + } + static scale(zoom) { + return new $mol_style_func('scale', [zoom]); + } + static linear(...breakpoints) { + return new $mol_style_func("linear", breakpoints.map((e) => Array.isArray(e) + ? String(e[0]) + + " " + + (typeof e[1] === "number" ? e[1] + "%" : e[1].toString()) + : String(e))); + } + static cubic_bezier(x1, y1, x2, y2) { + return new $mol_style_func('cubic-bezier', [x1, y1, x2, y2]); + } + static steps(value, step_position) { + return new $mol_style_func('steps', [value, step_position]); + } + static blur(value) { + return new $mol_style_func('blur', value ?? ""); + } + static brightness(value) { + return new $mol_style_func('brightness', value ?? ""); + } + static contrast(value) { + return new $mol_style_func('contrast', value ?? ""); + } + static drop_shadow(color, x_offset, y_offset, blur_radius) { + return new $mol_style_func("drop-shadow", blur_radius + ? [color, x_offset, y_offset, blur_radius] + : [color, x_offset, y_offset]); + } + static grayscale(value) { + return new $mol_style_func('grayscale', value ?? ""); + } + static hue_rotate(value) { + return new $mol_style_func('hue-rotate', value ?? ""); + } + static invert(value) { + return new $mol_style_func('invert', value ?? ""); + } + static opacity(value) { + return new $mol_style_func('opacity', value ?? ""); + } + static sepia(value) { + return new $mol_style_func('sepia', value ?? ""); + } + static saturate(value) { + return new $mol_style_func('saturate', value ?? ""); + } + } + $.$mol_style_func = $mol_style_func; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_style_prop(prefix, keys) { + const record = keys.reduce((rec, key) => { + rec[key] = $mol_style_func.vary(`--${prefix}_${key}`); + return rec; + }, {}); + return record; + } + $.$mol_style_prop = $mol_style_prop; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_theme = $mol_style_prop('mol_theme', [ + 'back', + 'hover', + 'card', + 'current', + 'special', + 'text', + 'control', + 'shade', + 'line', + 'focus', + 'field', + 'image', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/theme/theme.css", ":root {\n\t--mol_theme_hue: 210deg;\n\t--mol_theme_hue_spread: 90deg;\n}\n\n:where([mol_theme]) {\n\tcolor: var(--mol_theme_text);\n\tfill: var(--mol_theme_text);\n\tbackground-color: var(--mol_theme_back);\n}\n\t\n:root, [mol_theme=\"$mol_theme_dark\"], :where([mol_theme=\"$mol_theme_dark\"]) [mol_theme] {\n\n\t--mol_theme_luma: -1;\n\t--mol_theme_image: invert(1) hue-rotate( 180deg );\n\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\n\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\n\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\n\t\n\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\n\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\n\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\n\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\n\t\n\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\n\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\n\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\n\n\t/* --mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 35% .05 var(--mol_theme_hue) / .25 );\n\t--mol_theme_field: oklch( 0% 0 var(--mol_theme_hue) / .25 );\n\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\n\t\n\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\n\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\n\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .2 );\n\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 120deg ) );\n\t\n\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\n\t--mol_theme_current: oklch( 80% .2 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_special: oklch( 80% .3 calc( var(--mol_theme_hue) + 60deg ) ); */\n\n}\n\n[mol_theme=\"$mol_theme_light\"], :where([mol_theme=\"$mol_theme_light\"]) [mol_theme] {\n\t\n\t--mol_theme_luma: 1;\n\t--mol_theme_image: none;\n\t\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\n\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\n\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\n\t\n\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\n\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\n\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\n\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\n\t\n\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\n\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\n\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\n\t\n\t/* --mol_theme_back: oklch( 93% .01 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 100% .02 var(--mol_theme_hue) / .25 );\n\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\n\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\n\t\n\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\n\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\n\t--mol_theme_line: oklch( 70% 0 var(--mol_theme_hue) / .2 );\n\t--mol_theme_focus: oklch( 20% .8 calc( var(--mol_theme_hue) + 120deg ) );\n\t\n\t--mol_theme_control: oklch( 45% .25 var(--mol_theme_hue) );\n\t--mol_theme_current: oklch( 45% .5 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_special: oklch( 45% .5 calc( var(--mol_theme_hue) + 60deg ) ); */\n\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 30% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 80% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 80%, 95%, .25 );\n\t/* --mol_theme_back: oklch( 95% .02 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 80% .05 var(--mol_theme_hue) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 40% .2 calc( var(--mol_theme_hue) + 120deg ) );\n\t--mol_theme_card: oklch( 50% .3 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 75% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 90%, .25 );\n\t/* --mol_theme_back: oklch( 90% .03 calc( var(--mol_theme_hue) + 120deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_current\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_current\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 92% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\n\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_special\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + 60deg ) );\n\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_special\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 92% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\n\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) + 60deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\n}\n"); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_gap = $mol_style_prop('mol_gap', [ + 'block', + 'text', + 'round', + 'space', + 'blur', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/gap/gap.css", ":root {\n\t--mol_gap_block: .75rem;\n\t--mol_gap_text: .5rem .75rem;\n\t--mol_gap_round: .25rem;\n\t--mol_gap_space: .25rem;\n\t--mol_gap_blur: .5rem;\n}\n"); +})($ || ($ = {})); + +; +"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; + const error_showed = new WeakMap(); + class $mol_view extends $mol_object { + static Root(id) { + return new this; + } + autorun() { + try { + this.dom_tree(); + document.title = this.title(); + } + catch (error) { + $mol_fail_log(error); + } + } + static autobind() { + const nodes = $mol_dom_context.document.querySelectorAll('[mol_view_root]:not([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.toString().match(/.*\.(\w+)/)?.[1] ?? this.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() { + let min = 0; + try { + const sub = this.sub(); + if (!sub) + return 0; + sub.forEach(view => { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_width()); + } + }); + } + catch (error) { + $mol_fail_log(error); + return 24; + } + return min; + } + maximal_width() { + return this.minimal_width(); + } + minimal_height() { + let min = 0; + try { + for (const view of this.sub() ?? []) { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_height()); + } + } + } + catch (error) { + $mol_fail_log(error); + return 24; + } + return min; + } + static watchers = new Set(); + view_rect() { + if ($mol_wire_probe(() => this.view_rect()) === undefined) { + $mol_wire_watch(); + return null; + } + else { + const { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect(); + return { width, height, left, right, top, bottom }; + } + } + dom_id() { + return this.toString().replace(//g, ')').replaceAll(/"/g, "'"); + } + dom_node_external(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 + '>'); + return node; + } + dom_node(next) { + $mol_wire_solid(); + const node = this.dom_node_external(next); + $mol_dom_render_attributes(node, this.attr_static()); + const events = this.event_async(); + $mol_dom_render_events(node, events); + return node; + } + dom_final() { + this.render(); + const sub = this.sub_visible(); + if (!sub) + return; + for (const el of sub) { + if (el && typeof el === 'object' && 'dom_final' in el) { + el['dom_final'](); + } + } + return this.dom_node(); + } + dom_tree(next) { + const node = this.dom_node(next); + render: 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_fail_log(error); + const mol_view_error = $mol_promise_like(error) ? 'Promise' : error.name || error.constructor.name; + $mol_dom_render_attributes(node, { mol_view_error }); + if ($mol_promise_like(error)) + break render; + if ((error_showed.get(error) ?? this) !== this) + break render; + try { + const message = error.message || error; + node.innerText = message.replace(/^|$/mg, '\xA0\xA0'); + } + catch { } + error_showed.set(error, this); + } + try { + this.auto(); + } + catch (error) { + $mol_fail_log(error); + } + return node; + } + dom_node_actual() { + const node = this.dom_node(); + $mol_dom_render_styles(node, this.style_size()); + const attr = this.attr(); + const style = this.style(); + $mol_dom_render_attributes(node, attr); + $mol_dom_render_styles(node, style); + return node; + } + auto() { + return null; + } + 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() + : child instanceof $mol_dom_context.Node + ? child + : 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'](); + $mol_dom_render_fields(node, this.field()); + } + static view_classes() { + const proto = this.prototype; + let current = proto; + const classes = []; + while (current) { + if (current.constructor.name !== classes.at(-1)?.name) { + classes.push(current.constructor); + } + if (!(current instanceof $mol_view)) + break; + current = Object.getPrototypeOf(current); + } + return classes; + } + static _view_names; + static view_names(suffix) { + let cache = Reflect.getOwnPropertyDescriptor(this, '_view_names')?.value; + if (!cache) + cache = this._view_names = new Map; + const cached = cache.get(suffix); + if (cached) + return cached; + const names = []; + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + for (const Class of this.view_classes()) { + if (suffix in Class.prototype) + names.push(this.$.$mol_func_name(Class) + suffix2); + else + break; + } + cache.set(suffix, names); + return names; + } + view_names_owned() { + const names = []; + let owner = $mol_owning_get(this); + if (!(owner?.host instanceof $mol_view)) + return names; + const suffix = owner.task.name.trim(); + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + names.push(...owner.host.constructor.view_names(suffix)); + for (let prefix of owner.host.view_names_owned()) { + names.push(prefix + suffix2); + } + return names; + } + view_names() { + const names = new Set(); + for (let name of this.view_names_owned()) + names.add(name); + for (let Class of this.constructor.view_classes()) { + const name = this.$.$mol_func_name(Class); + if (name) + names.add(name); + } + return names; + } + theme(next = null) { + return next; + } + attr_static() { + let attrs = {}; + for (let name of this.view_names()) + attrs[name.replace(/\$/g, '').replace(/^(?=\d)/, '_').toLowerCase()] = ''; + return attrs; + } + attr() { + return { + mol_theme: this.theme() ?? undefined, + }; + } + style_size() { + return { + minHeight: this.minimal_height(), + minWidth: this.minimal_width(), + }; + } + style() { + return {}; + } + field() { + return {}; + } + event() { + return {}; + } + event_async() { + return { ...$mol_wire_async(this.event()) }; + } + plugins() { + return []; + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this)); + } + *view_find(check, path = []) { + if (check(this)) + return yield [...path, this]; + try { + for (const item of this.sub()) { + if (item instanceof $mol_view) { + yield* item.view_find(check, [...path, this]); + } + } + } + catch (error) { + if ($mol_promise_like(error)) + $mol_fail_hidden(error); + $mol_fail_log(error); + } + } + 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); + } + } + ensure_visible(view, align = "start") { + const path = this.view_find(v => v === view).next().value; + this.force_render(new Set(path)); + try { + this.dom_final(); + } + catch (err) { + $mol_fail_log(err); + } + view.dom_node().scrollIntoView({ block: align }); + } + bring() { + const win = this.$.$mol_dom_context; + if (win.parent !== win.self && !win.document.hasFocus()) + return; + new this.$.$mol_after_frame(() => { + this.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' }); + this.focused(true); + }); + } + destructor() { + const node = $mol_wire_probe(() => this.dom_node()); + if (!node) + return; + const events = $mol_wire_probe(() => this.event_async()); + if (!events) + return; + for (let event_name in events) { + node.removeEventListener(event_name, events[event_name]); + } + } + } + __decorate([ + $mol_mem + ], $mol_view.prototype, "autorun", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "title", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "focused", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "dom_name", 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_memo.method + ], $mol_view.prototype, "dom_id", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "dom_node", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "dom_final", 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, "render", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "view_names_owned", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "view_names", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "theme", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "event_async", null); + __decorate([ + $mol_mem_key + ], $mol_view, "Root", null); + __decorate([ + $mol_mem + ], $mol_view, "autobind", null); + __decorate([ + $mol_memo.method + ], $mol_view, "view_classes", null); + $.$mol_view = $mol_view; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/view/view/view.css", "[mol_view] {\n\ttransition-property: 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\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-shrink: 0;\n\tcontain: style;\n\tscrollbar-color: var(--mol_theme_line) transparent;\n\tscrollbar-width: thin;\n}\t\n\n[mol_view]::selection {\n\tbackground: var(--mol_theme_line);\n}\t\n\n[mol_view]::-webkit-scrollbar {\n\twidth: .25rem;\n\theight: .25rem;\n}\n\n[mol_view]::-webkit-scrollbar-corner {\n\tbackground-color: var(--mol_theme_line);\n}\n\n[mol_view]::-webkit-scrollbar-track {\n\tbackground-color: transparent;\n}\n\n[mol_view]::-webkit-scrollbar-thumb {\n\tbackground-color: var(--mol_theme_line);\n\tborder-radius: var(--mol_gap_round);\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-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n\tfont-size: 1rem;\n\tline-height: 1.5rem;\n\tbackground: var(--mol_theme_back);\n\tcolor: var(--mol_theme_text);\n\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\n\ttab-size: 4;\n\toverscroll-behavior: contain; /** Disable navigation gestures **/\n}\n\n@media print {\n\t[mol_view_root] {\n\t\theight: auto;\n\t}\n}\n\n[mol_view][mol_view_error]:not([mol_view_error=\"Promise\"]) {\n\tbackground-image: repeating-linear-gradient(\n\t\t-45deg,\n\t\t#f92323,\n\t\t#f92323 .5rem,\n\t\t#ff3d3d .5rem,\n\t\t#ff3d3d 1.5rem\n\t);\n\tcolor: black;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n@keyframes mol_view_wait {\n\tfrom {\n\t\topacity: .25;\n\t}\n\t20% {\n\t\topacity: .75;\n\t}\n\tto {\n\t\topacity: .25;\n\t}\n}\n\n:where([mol_view][mol_view_error=\"Promise\"]) {\n\tbackground: var(--mol_theme_hover);\n}\n\n[mol_view][mol_view_error=\"Promise\"] {\n\tanimation: mol_view_wait 1s steps( 20, end ) infinite;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_plugin extends $mol_view { + dom_node_external(next) { + return next ?? $mol_owning_get(this).host.dom_node(); + } + render() { + this.dom_node_actual(); + } + } + $.$mol_plugin = $mol_plugin; +})($ || ($ = {})); + +; + ($.$mol_scroll) = class $mol_scroll extends ($.$mol_view) { + tabindex(){ + return -1; + } + event_scroll(next){ + if(next !== undefined) return next; + return null; + } + scroll_top(next){ + if(next !== undefined) return next; + return 0; + } + scroll_left(next){ + if(next !== undefined) return next; + return 0; + } + field(){ + return {...(super.field()), "tabIndex": (this.tabindex())}; + } + event(){ + return {...(super.event()), "scroll": (next) => (this.event_scroll(next))}; + } + }; + ($mol_mem(($.$mol_scroll.prototype), "event_scroll")); + ($mol_mem(($.$mol_scroll.prototype), "scroll_top")); + ($mol_mem(($.$mol_scroll.prototype), "scroll_left")); + + +; +"use strict"; +var $; +(function ($) { + class $mol_dom_listener extends $mol_object { + _node; + _event; + _handler; + _config; + 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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"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}]`; + let res = `[${block}_${path.join('_')}]`; + if (prefix) + res = prefix + ' :where(' + res + ')'; + return res; + }; + 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) + ' :where([' + $mol_dom_qname(key) + '])', [], config[key]); + } + else if (key === '>') { + const types = config[key]; + for (let type in types) { + make_class(selector(prefix, path) + ' > :where([' + $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) + ':where([' + 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 if (key[0] === '[' && key[key.length - 1] === ']') { + const attr = key.slice(1, -1); + const vals = config[key]; + for (let val in vals) { + make_class(selector(prefix, path) + ':where([' + attr + '=' + JSON.stringify(val) + '])', [], vals[val]); + } + } + 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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_scroll extends $.$mol_scroll { + scroll_top(next, cache) { + const el = this.dom_node(); + if (next !== undefined && !cache) + el.scrollTop = next; + return el.scrollTop; + } + scroll_left(next, cache) { + const el = this.dom_node(); + if (next !== undefined && !cache) + el.scrollLeft = next; + return el.scrollLeft; + } + event_scroll(next) { + const el = this.dom_node(); + this.scroll_left(el.scrollLeft, 'cache'); + this.scroll_top(el.scrollTop, 'cache'); + } + minimal_height() { + return this.$.$mol_print.active() ? null : 0; + } + minimal_width() { + return this.$.$mol_print.active() ? null : 0; + } + } + __decorate([ + $mol_mem + ], $mol_scroll.prototype, "scroll_top", null); + __decorate([ + $mol_mem + ], $mol_scroll.prototype, "scroll_left", null); + $$.$mol_scroll = $mol_scroll; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem, px } = $mol_style_unit; + $mol_style_define($mol_scroll, { + display: 'grid', + overflow: 'auto', + flex: { + direction: 'column', + grow: 1, + shrink: 1, + }, + outline: 'none', + align: { + self: 'stretch', + items: 'flex-start', + }, + boxSizing: 'border-box', + willChange: 'scroll-position', + scroll: { + padding: [rem(.75), 0], + }, + maxHeight: per(100), + maxWidth: per(100), + webkitOverflowScrolling: 'touch', + contain: 'content', + '>': { + $mol_view: { + transform: 'translateZ(0)', + gridArea: '1/1', + }, + }, + '::before': { + display: 'none', + }, + '::after': { + display: 'none', + }, + '::-webkit-scrollbar': { + width: rem(.25), + height: rem(.25), + }, + '@media': { + 'print': { + overflow: 'visible', + contain: 'none', + maxHeight: 'unset', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_book2) = class $mol_book2 extends ($.$mol_scroll) { + pages(){ + return []; + } + menu_title(){ + return ""; + } + sub(){ + return (this.pages()); + } + minimal_width(){ + return 0; + } + Placeholder(){ + const obj = new this.$.$mol_view(); + return obj; + } + Gap(id){ + const obj = new this.$.$mol_view(); + (obj.title) = () => (""); + return obj; + } + }; + ($mol_mem(($.$mol_book2.prototype), "Placeholder")); + ($mol_mem_key(($.$mol_book2.prototype), "Gap")); + + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_cached = $mol_wire_probe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_layer = $mol_style_prop('mol_layer', [ + 'hover', + 'focus', + 'speck', + 'float', + 'popup', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/layer/layer.css", ":root {\n\t--mol_layer_hover: 1;\n\t--mol_layer_focus: 2;\n\t--mol_layer_speck: 3;\n\t--mol_layer_float: 4;\n\t--mol_layer_popup: 5;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_book2 extends $.$mol_book2 { + title() { + return this.pages().map(page => { + try { + return page?.title(); + } + catch (error) { + $mol_fail_log(error); + } + }).reverse().filter(Boolean).join(' | '); + } + menu_title() { + return this.pages()[0]?.title() || this.title(); + } + sub() { + const next = [...this.pages(), this.Placeholder()]; + const prev = $mol_mem_cached(() => this.sub()) ?? []; + for (let i = 1; i++;) { + const p = prev[prev.length - i]; + const n = next[next.length - i]; + if (!n) + break; + if (p === n) + continue; + n.bring(); + break; + } + return next; + } + bring() { + const pages = this.pages(); + if (pages.length) + pages[pages.length - 1].bring(); + else + super.bring(); + } + } + __decorate([ + $mol_mem + ], $mol_book2.prototype, "sub", null); + $$.$mol_book2 = $mol_book2; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/book2/book2.view.css", "[mol_book2] {\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: stretch;\n\tflex: 1 1 auto;\n\talign-self: stretch;\n\tmargin: 0;\n\t/* box-shadow: 0 0 0 1px var(--mol_theme_line); */\n\t/* transform: translateZ(0); */\n\ttransition: none;\n\toverflow: overlay;\n\tscroll-snap-type: x mandatory;\n\t/* padding: 0 1px;\n\tscroll-padding: 0 1px;\n\tgap: 1px; */\n}\n\n[mol_book2] > * {\n/* \tflex: none; */\n\tscroll-snap-stop: always;\n\tscroll-snap-align: end;\n\tposition: relative;\n\tmin-height: 100%;\n\tmax-height: 100%;\n\tmax-width: 100%;\n\tflex-shrink: 0;\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_field);\n}\n\n[mol_book2] > *:not(:first-of-type):before,\n[mol_book2] > *:not(:last-of-type)::after {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 1.5rem;\n\twidth: 2px;\n\theight: 1rem;\n\tbackground: linear-gradient(\n\t\tto bottom,\n\t\tvar(--mol_theme_focus) 0%,\n\t\tvar(--mol_theme_focus) 14%,\n\t\ttransparent 15%,\n\t\ttransparent 42%,\n\t\tvar(--mol_theme_focus) 43%,\n\t\tvar(--mol_theme_focus) 57%,\n\t\ttransparent 58%,\n\t\ttransparent 85%,\n\t\tvar(--mol_theme_focus) 86%,\n\t\tvar(--mol_theme_focus) 100%\n\t);\n\topacity: .5;\n\tz-index: var(--mol_layer_speck);\n}\n[mol_book2] > *:not(:first-of-type):before {\n\tleft: -1px;\n}\n[mol_book2] > *:not(:last-of-type)::after {\n\tright: -1px;\n}\n\n:where([mol_book2]) > * {\n\tbackground-color: var(--mol_theme_card);\n\t/* box-shadow: 0 0 0 1px var(--mol_theme_back); */\n}\n\n[mol_book2] > [mol_book2] {\n\tdisplay: contents;\n}\n\n[mol_book2] > *:first-child {\n\tscroll-snap-align: start;\n}\n\n[mol_book2] > [mol_view] {\n\ttransform: none; /* prevent content clipping */\n}\n\n[mol_book2_placeholder] {\n\tflex: 1 1 0;\n\tbackground: none;\n}\n\n[mol_book2_gap] {\n\tbackground: none;\n\tflex-grow: 1;\n\tscroll-snap-align: none;\n\tmargin-right: -1px;\n\tbox-shadow: none;\n}\n\n[mol_book2_gap]::before,\n[mol_book2_gap]::after {\n\tdisplay: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_pop) = class $mol_pop extends ($.$mol_view) { + 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; + } + showed(next){ + if(next !== undefined) return next; + return false; + } + align_vert(){ + return ""; + } + align_hor(){ + return ""; + } + prefer(){ + return "vert"; + } + sub(){ + return [(this.Anchor())]; + } + sub_visible(){ + return [(this.Anchor()), (this.Bubble())]; + } + }; + ($mol_mem(($.$mol_pop.prototype), "Bubble")); + ($mol_mem(($.$mol_pop.prototype), "showed")); + ($.$mol_pop_bubble) = class $mol_pop_bubble extends ($.$mol_view) { + content(){ + return []; + } + height_max(){ + return 9999; + } + align(){ + return ""; + } + sub(){ + return (this.content()); + } + style(){ + return {...(super.style()), "maxHeight": (this.height_max())}; + } + attr(){ + return { + ...(super.attr()), + "mol_pop_align": (this.align()), + "tabindex": 0 + }; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_pop extends $.$mol_pop { + showed(next = false) { + this.focused(); + return next; + } + sub_visible() { + return [ + this.Anchor(), + ...this.showed() ? [this.Bubble()] : [], + ]; + } + height_max() { + const viewport = this.$.$mol_window.size(); + const rect_bubble = this.view_rect(); + const align = this.align_vert(); + if (align === 'bottom') + return (viewport.height - rect_bubble.bottom) * .66; + if (align === 'top') + return rect_bubble.top * .66; + return 0; + } + align() { + switch (this.prefer()) { + case 'hor': return `${this.align_hor()}_${this.align_vert()}`; + case 'vert': return `${this.align_vert()}_${this.align_hor()}`; + default: return this.prefer(); + } + } + align_vert() { + const viewport = this.view_port(); + const rect_pop = this.view_rect(); + if (!rect_pop) + return 'suspense'; + return rect_pop.top > (viewport.top + viewport.height / 2) ? 'top' : 'bottom'; + } + align_hor() { + const viewport = this.view_port(); + const rect_pop = this.view_rect(); + if (!rect_pop) + return 'suspense'; + return rect_pop.left > (viewport.left + viewport.width / 2) ? 'left' : 'right'; + } + View_port() { + const view = new $mol_view; + view.dom_node = () => { + let node = this.dom_node(); + while (node = node.offsetParent) { + if (this.$.$mol_dom_context.getComputedStyle(node).overflow !== 'visible') + return node; + } + return this.$.$mol_dom_context.document.documentElement; + }; + return view; + } + view_port() { + return this.View_port().view_rect() ?? { ...this.$.$mol_window.size(), left: 0, top: 0 }; + } + } + __decorate([ + $mol_mem + ], $mol_pop.prototype, "showed", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "sub_visible", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "height_max", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align_vert", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align_hor", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "View_port", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "view_port", null); + $$.$mol_pop = $mol_pop; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"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_bubble] {\n\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\n\tborder-radius: var(--mol_gap_round);\n\tposition: absolute;\n\tz-index: var(--mol_layer_popup);\n\tbackground: var(--mol_theme_back);\n\tmax-width: none;\n\tmax-height: none;\n\t/* overflow: hidden;\n\toverflow-y: scroll;\n\toverflow-y: overlay; */\n\tword-break: normal;\n\twidth: max-content;\n\theight: max-content;\n\tflex-direction: column;\n\tmax-width: 80vw;\n\tmax-height: 80vw;\n\tcontain: paint;\n\ttransition-property: opacity;\n}\n\n:where( [mol_pop_bubble] > * ) {\n\tbackground: var(--mol_theme_card);\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=\"suspense_suspense\"] {\n\topacity: 0;\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_hotkey) = class $mol_hotkey extends ($.$mol_plugin) { + keydown(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.keydown(next))}; + } + key(){ + return {}; + } + mod_ctrl(){ + return false; + } + mod_alt(){ + return false; + } + mod_shift(){ + return false; + } + }; + ($mol_mem(($.$mol_hotkey.prototype), "keydown")); + + +; +"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 = {})); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_hotkey extends $.$mol_hotkey { + key() { + return super.key(); + } + keydown(event) { + if (!event) + return; + if (event.defaultPrevented) + return; + let name = $mol_keyboard_code[event.keyCode]; + if (this.mod_ctrl() !== (event.ctrlKey || event.metaKey)) + return; + if (this.mod_alt() !== event.altKey) + return; + if (this.mod_shift() !== event.shiftKey) + return; + const handle = this.key()[name]; + if (handle) + handle(event); + } + } + $$.$mol_hotkey = $mol_hotkey; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_nav) = class $mol_nav extends ($.$mol_plugin) { + event_key(next){ + if(next !== undefined) return next; + return null; + } + cycle(next){ + if(next !== undefined) return next; + return false; + } + mod_ctrl(){ + return false; + } + mod_shift(){ + return false; + } + mod_alt(){ + return false; + } + keys_x(next){ + if(next !== undefined) return next; + return []; + } + keys_y(next){ + if(next !== undefined) return next; + return []; + } + current_x(next){ + if(next !== undefined) return next; + return null; + } + current_y(next){ + if(next !== undefined) return next; + return null; + } + event_up(next){ + if(next !== undefined) return next; + return null; + } + event_down(next){ + if(next !== undefined) return next; + return null; + } + event_left(next){ + if(next !== undefined) return next; + return null; + } + event_right(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.event_key(next))}; + } + }; + ($mol_mem(($.$mol_nav.prototype), "event_key")); + ($mol_mem(($.$mol_nav.prototype), "cycle")); + ($mol_mem(($.$mol_nav.prototype), "keys_x")); + ($mol_mem(($.$mol_nav.prototype), "keys_y")); + ($mol_mem(($.$mol_nav.prototype), "current_x")); + ($mol_mem(($.$mol_nav.prototype), "current_y")); + ($mol_mem(($.$mol_nav.prototype), "event_up")); + ($mol_mem(($.$mol_nav.prototype), "event_down")); + ($mol_mem(($.$mol_nav.prototype), "event_left")); + ($mol_mem(($.$mol_nav.prototype), "event_right")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_nav extends $.$mol_nav { + event_key(event) { + if (!event) + return event; + if (event.defaultPrevented) + return; + if (this.mod_ctrl() && !event.ctrlKey) + return; + if (this.mod_shift() && !event.shiftKey) + return; + if (this.mod_alt() && !event.altKey) + return; + switch (event.keyCode) { + case $mol_keyboard_code.up: return this.event_up(event); + case $mol_keyboard_code.down: return this.event_down(event); + case $mol_keyboard_code.left: return this.event_left(event); + case $mol_keyboard_code.right: return this.event_right(event); + case $mol_keyboard_code.pageUp: return this.event_up(event); + case $mol_keyboard_code.pageDown: return this.event_down(event); + } + } + event_up(event) { + if (!event) + return event; + const keys = this.keys_y(); + if (keys.length < 1) + return; + const index_y = this.index_y(); + const index_old = index_y === null ? 0 : index_y; + const index_new = (index_old + keys.length - 1) % keys.length; + event.preventDefault(); + if (index_old === 0 && !this.cycle()) + return; + this.current_y(this.keys_y()[index_new]); + } + event_down(event) { + if (!event) + return event; + const keys = this.keys_y(); + if (keys.length < 1) + return; + const index_y = this.index_y(); + const index_old = index_y === null ? keys.length - 1 : index_y; + const index_new = (index_old + 1) % keys.length; + event.preventDefault(); + if (index_new === 0 && !this.cycle()) + return; + this.current_y(this.keys_y()[index_new]); + } + event_left(event) { + if (!event) + return event; + const keys = this.keys_x(); + if (keys.length < 1) + return; + const index_x = this.index_x(); + const index_old = index_x === null ? 0 : index_x; + const index_new = (index_old + keys.length - 1) % keys.length; + event.preventDefault(); + if (index_old === 0 && !this.cycle()) + return; + this.current_x(this.keys_x()[index_new]); + } + event_right(event) { + if (!event) + return event; + const keys = this.keys_x(); + if (keys.length < 1) + return; + const index_x = this.index_x(); + const index_old = index_x === null ? keys.length - 1 : index_x; + const index_new = (index_old + 1) % keys.length; + event.preventDefault(); + if (index_new === 0 && !this.cycle()) + return; + this.current_x(this.keys_x()[index_new]); + } + index_y() { + let index = this.keys_y().indexOf(this.current_y()); + if (index < 0) + return null; + return index; + } + index_x() { + let index = this.keys_x().indexOf(this.current_x()); + if (index < 0) + return null; + return index; + } + } + $$.$mol_nav = $mol_nav; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_persist = $mol_wire_solid; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_sync(obj) { + return new Proxy(obj, { + get(obj, field) { + const val = obj[field]; + if (typeof val !== 'function') + return val; + const temp = $mol_wire_task.getter(val); + return function $mol_wire_sync(...args) { + const fiber = temp(obj, args); + return fiber.sync(); + }; + }, + apply(obj, self, args) { + const temp = $mol_wire_task.getter(obj); + const fiber = temp(self, args); + return fiber.sync(); + }, + }); + } + $.$mol_wire_sync = $mol_wire_sync; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_storage extends $mol_object2 { + static native() { + return this.$.$mol_dom_context.navigator.storage ?? { + persisted: async () => false, + persist: async () => false, + estimate: async () => ({}), + getDirectory: async () => null, + }; + } + static persisted(next, cache) { + $mol_mem_persist(); + if (cache) + return Boolean(next); + const native = this.native(); + if (next && !$mol_mem_cached(() => this.persisted())) { + native.persist().then(actual => { + setTimeout(() => this.persisted(actual, 'cache'), 5000); + if (actual) + this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` }); + else + this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` }); + }); + } + return next ?? $mol_wire_sync(native).persisted(); + } + static estimate() { + return $mol_wire_sync(this.native() ?? {}).estimate(); + } + static dir() { + return $mol_wire_sync(this.native()).getDirectory(); + } + } + __decorate([ + $mol_mem + ], $mol_storage, "native", null); + __decorate([ + $mol_mem + ], $mol_storage, "persisted", null); + $.$mol_storage = $mol_storage; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_state_local extends $mol_object { + static 'native()'; + 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 changes(next) { return next; } + static value(key, next) { + this.changes(); + 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)); + this.$.$mol_storage.persisted(true); + } + return next; + } + prefix() { return ''; } + value(key, next) { + return $mol_state_local.value(this.prefix() + '.' + key, next); + } + } + __decorate([ + $mol_mem + ], $mol_state_local, "changes", null); + __decorate([ + $mol_mem_key + ], $mol_state_local, "value", null); + $.$mol_state_local = $mol_state_local; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const decoders = {}; + function $mol_charset_decode(buffer, encoding = 'utf8') { + let decoder = decoders[encoding]; + if (!decoder) + decoder = decoders[encoding] = new TextDecoder(encoding); + return decoder.decode(buffer); + } + $.$mol_charset_decode = $mol_charset_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const TextEncoder = globalThis.TextEncoder ?? $node.util.TextEncoder; + const encoder = new TextEncoder(); + function $mol_charset_encode(value) { + return encoder.encode(value); + } + $.$mol_charset_encode = $mol_charset_encode; +})($ || ($ = {})); + +; +"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'); + } + static base = ''; + path() { + return '.'; + } + parent() { + return this.resolve('..'); + } + reset() { + try { + this.stat(null); + } + 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) { + let exists = Boolean(this.stat()); + if (next === undefined) + return exists; + if (next === exists) + return exists; + if (next) { + this.parent().exists(true); + this.ensure(); + } + else { + this.drop(); + } + 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, virt) { + if (virt) { + const now = new Date; + this.stat({ + type: 'file', + size: 0, + atime: now, + mtime: now, + ctime: now, + }, 'virt'); + return next; + } + if (next === undefined) { + return $mol_charset_decode(this.buffer(undefined)); + } + else { + const buffer = next === undefined ? undefined : $mol_charset_encode(next); + this.buffer(buffer); + return next; + } + } + 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 ?? 0; + default: return 0; + } + } + open(...modes) { + return 0; + } + toJSON() { + return this.path(); + } + } + __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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_action = $mol_wire_method; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_compare_array(a, b) { + if (a === b) + return true; + if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) + return false; + if (a.length !== b.length) + return false; + for (let i = 0; i < a.length; i++) + if (a[i] !== b[i]) + return false; + return true; + } + $.$mol_compare_array = $mol_compare_array; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function stat_convert(stat) { + if (!stat) + return null; + let type; + if (stat.isDirectory()) + type = 'dir'; + if (stat.isFile()) + type = 'file'; + if (stat.isSymbolicLink()) + type = 'link'; + if (!type) + return $mol_fail(new Error(`Unsupported file type`)); + return { + type, + size: Number(stat.size), + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime + }; + } + function buffer_normalize(buf) { + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + let $mol_file_mode_open; + (function ($mol_file_mode_open) { + $mol_file_mode_open[$mol_file_mode_open["create"] = $node.fs.constants.O_CREAT] = "create"; + $mol_file_mode_open[$mol_file_mode_open["exists_truncate"] = $node.fs.constants.O_TRUNC] = "exists_truncate"; + $mol_file_mode_open[$mol_file_mode_open["exists_fail"] = $node.fs.constants.O_EXCL] = "exists_fail"; + $mol_file_mode_open[$mol_file_mode_open["read_only"] = $node.fs.constants.O_RDONLY] = "read_only"; + $mol_file_mode_open[$mol_file_mode_open["write_only"] = $node.fs.constants.O_WRONLY] = "write_only"; + $mol_file_mode_open[$mol_file_mode_open["read_write"] = $node.fs.constants.O_RDWR] = "read_write"; + $mol_file_mode_open[$mol_file_mode_open["append"] = $node.fs.constants.O_APPEND] = "append"; + })($mol_file_mode_open = $.$mol_file_mode_open || ($.$mol_file_mode_open = {})); + class $mol_file_node extends $mol_file { + static absolute(path) { + return this.make({ + path: $mol_const(path) + }); + } + static relative(path) { + return this.absolute($node.path.resolve(this.base, path).replace(/\\/g, '/')); + } + watcher() { + const watcher = $node.chokidar.watch(this.path(), { + persistent: true, + ignored: /(^\.|___$)/, + depth: 0, + ignoreInitial: true, + awaitWriteFinish: { + stabilityThreshold: 100, + }, + }); + watcher + .on('all', (type, path) => { + const file = $mol_file.relative(path.replace(/\\/g, '/')); + file.reset(); + if (type === 'change') { + this.stat(null); + } + else { + file.parent().reset(); + } + }) + .on('error', $mol_fail_log); + return { + destructor() { + watcher.close(); + } + }; + } + stat(next, virt) { + let stat = next; + const path = this.path(); + this.parent().watcher(); + if (virt) + return next; + try { + stat = next ?? stat_convert($node.fs.statSync(path, { throwIfNoEntry: false })); + } + catch (error) { + if (error.code === 'ENOENT') + error = new $mol_file_not_found(`File not found`); + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + return stat; + } + ensure() { + const path = this.path(); + try { + $node.fs.mkdirSync(path); + } + catch (e) { + e.message += '\n' + path; + this.$.$mol_fail_hidden(e); + } + } + drop() { + $node.fs.unlinkSync(this.path()); + } + buffer(next) { + const path = this.path(); + if (next === undefined) { + if (!this.stat()) + return new Uint8Array; + try { + const prev = $mol_mem_cached(() => this.buffer()); + next = buffer_normalize($node.fs.readFileSync(path)); + if (prev !== undefined && !$mol_compare_array(prev, next)) { + this.$.$mol_log3_rise({ + place: `$mol_file_node..buffer()`, + message: 'Changed', + path: this.relate(), + }); + } + return next; + } + catch (error) { + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + } + this.parent().exists(true); + const now = new Date; + this.stat({ + type: 'file', + size: next.length, + atime: now, + mtime: now, + ctime: now, + }, 'virt'); + try { + $node.fs.writeFileSync(path, next); + } + catch (error) { + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + return next; + } + sub() { + if (!this.exists()) + return []; + if (this.type() !== 'dir') + return []; + const path = this.path(); + this.stat(); + try { + return $node.fs.readdirSync(path) + .filter(name => !/^\.+$/.test(name)) + .map(name => this.resolve(name)); + } + catch (e) { + e.message += '\n' + path; + return this.$.$mol_fail_hidden(e); + } + } + resolve(path) { + return this.constructor.relative($node.path.join(this.path(), path)); + } + relate(base = this.constructor.relative('.')) { + return $node.path.relative(base.path(), this.path()).replace(/\\/g, '/'); + } + append(next) { + const path = this.path(); + try { + $node.fs.appendFileSync(path, next); + } + catch (e) { + e.message += '\n' + path; + return this.$.$mol_fail_hidden(e); + } + } + open(...modes) { + return $node.fs.openSync(this.path(), modes.reduce((res, mode) => res | $mol_file_mode_open[mode], 0)); + } + } + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "watcher", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "stat", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "ensure", null); + __decorate([ + $mol_action + ], $mol_file_node.prototype, "drop", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "buffer", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "sub", null); + __decorate([ + $mol_mem_key + ], $mol_file_node, "absolute", null); + $.$mol_file_node = $mol_file_node; + $.$mol_file = $mol_file_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_state_local_node extends $mol_state_local { + static dir() { + const base = process.env.XDG_DATA_HOME || ($node.os.homedir() + '/.local/share'); + return $mol_file.absolute(base).resolve('./hyoo_state_local'); + } + static value(key, next) { + const file = this.dir().resolve(encodeURIComponent(key) + '.json'); + if (next === null) { + file.exists(false); + return null; + } + const arg = next === undefined ? undefined : JSON.stringify(next); + return JSON.parse(file.text(arg) || 'null'); + } + } + __decorate([ + $mol_mem + ], $mol_state_local_node, "dir", null); + __decorate([ + $mol_mem_key + ], $mol_state_local_node, "value", null); + $.$mol_state_local_node = $mol_state_local_node; + $.$mol_state_local = $mol_state_local_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_locale extends $mol_object { + static lang_default() { + return 'en'; + } + static lang(next) { + return this.$.$mol_state_local.value('locale', next) || $mol_dom_context.navigator.language.replace(/-.*/, '') || this.lang_default(); + } + static source(lang) { + return JSON.parse(this.$.$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 ($mol_fail_catch(error)) { + const def = this.lang_default(); + if (lang === def) + throw error; + } + } + return {}; + } + static text(key) { + const lang = this.lang(); + const target = this.texts(lang)[key]; + if (target) + return target; + this.warn(key); + const en = this.texts('en')[key]; + if (!en) + return key; + return en; + } + static warn(key) { + console.warn(`Not translated to "${this.lang()}": ${key}`); + return null; + } + } + __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); + __decorate([ + $mol_mem_key + ], $mol_locale, "warn", null); + $.$mol_locale = $mol_locale; +})($ || ($ = {})); + +; + ($.$mol_string) = class $mol_string extends ($.$mol_view) { + selection_watcher(){ + return null; + } + error_report(){ + return null; + } + disabled(){ + return false; + } + value(next){ + if(next !== undefined) return next; + return ""; + } + value_changed(next){ + return (this.value(next)); + } + hint(){ + return ""; + } + hint_visible(){ + return (this.hint()); + } + spellcheck(){ + return true; + } + autocomplete_native(){ + return ""; + } + selection_end(){ + return 0; + } + selection_start(){ + return 0; + } + keyboard(){ + return "text"; + } + enter(){ + return "go"; + } + length_max(){ + return +Infinity; + } + type(next){ + if(next !== undefined) return next; + return "text"; + } + event_change(next){ + if(next !== undefined) return next; + return null; + } + submit_with_ctrl(){ + return false; + } + submit(next){ + if(next !== undefined) return next; + return null; + } + Submit(){ + const obj = new this.$.$mol_hotkey(); + (obj.mod_ctrl) = () => ((this.submit_with_ctrl())); + (obj.key) = () => ({"enter": (next) => (this.submit(next))}); + return obj; + } + dom_name(){ + return "input"; + } + enabled(){ + return true; + } + minimal_height(){ + return 40; + } + autocomplete(){ + return false; + } + selection(next){ + if(next !== undefined) return next; + return [0, 0]; + } + auto(){ + return [(this.selection_watcher()), (this.error_report())]; + } + field(){ + return { + ...(super.field()), + "disabled": (this.disabled()), + "value": (this.value_changed()), + "placeholder": (this.hint_visible()), + "spellcheck": (this.spellcheck()), + "autocomplete": (this.autocomplete_native()), + "selectionEnd": (this.selection_end()), + "selectionStart": (this.selection_start()), + "inputMode": (this.keyboard()), + "enterkeyhint": (this.enter()) + }; + } + attr(){ + return { + ...(super.attr()), + "maxlength": (this.length_max()), + "type": (this.type()) + }; + } + event(){ + return {...(super.event()), "input": (next) => (this.event_change(next))}; + } + plugins(){ + return [(this.Submit())]; + } + }; + ($mol_mem(($.$mol_string.prototype), "value")); + ($mol_mem(($.$mol_string.prototype), "type")); + ($mol_mem(($.$mol_string.prototype), "event_change")); + ($mol_mem(($.$mol_string.prototype), "submit")); + ($mol_mem(($.$mol_string.prototype), "Submit")); + ($mol_mem(($.$mol_string.prototype), "selection")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_string extends $.$mol_string { + event_change(next) { + if (!next) + return; + const el = next.target; + const from = el.selectionStart; + const to = el.selectionEnd; + try { + el.value = this.value_changed(el.value); + } + catch (error) { + const el = this.dom_node(); + if (error instanceof Error) { + el.setCustomValidity(error.message); + el.reportValidity(); + } + $mol_fail_hidden(error); + } + if (to === null) + return; + el.selectionEnd = to; + el.selectionStart = from; + this.selection_change(next); + } + error_report() { + try { + if (this.focused()) + this.value(); + } + catch (error) { + const el = this.dom_node(); + if (error instanceof Error) { + el.setCustomValidity(error.message); + el.reportValidity(); + } + } + } + hint_visible() { + return (this.enabled() ? this.hint() : '') || ' '; + } + disabled() { + return !this.enabled(); + } + autocomplete_native() { + return this.autocomplete() ? 'on' : 'off'; + } + selection_watcher() { + return new $mol_dom_listener(this.$.$mol_dom_context.document, 'selectionchange', $mol_wire_async(event => this.selection_change(event))); + } + selection_change(event) { + const el = this.dom_node(); + if (el !== this.$.$mol_dom_context.document.activeElement) + return; + const [from, to] = this.selection([ + el.selectionStart, + el.selectionEnd, + ]); + el.selectionEnd = to; + el.selectionStart = from; + if (to !== from && el.selectionEnd === el.selectionStart) { + el.selectionEnd = to; + } + } + selection_start() { + const el = this.dom_node(); + if (el.selectionStart === null) + return undefined; + return this.selection()[0]; + } + selection_end() { + const el = this.dom_node(); + if (el.selectionEnd === null) + return undefined; + return this.selection()[1]; + } + } + __decorate([ + $mol_action + ], $mol_string.prototype, "event_change", null); + __decorate([ + $mol_mem + ], $mol_string.prototype, "error_report", null); + __decorate([ + $mol_mem + ], $mol_string.prototype, "selection_watcher", null); + $$.$mol_string = $mol_string; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/string/string.view.css", "[mol_string] {\n\tbox-sizing: border-box;\n\toutline-offset: 0;\n\tborder: none;\n\tborder-radius: var(--mol_gap_round);\n\twhite-space: pre-line;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tpadding: var(--mol_gap_text);\n\ttext-align: left;\n\tposition: relative;\n\tfont: inherit;\n\tflex: 1 1 auto;\n\tbackground: transparent;\n\tmin-width: 0;\n\tcolor: inherit;\n\tbackground: var(--mol_theme_field);\n}\n\n[mol_string]:disabled:not(:placeholder-shown) {\n\tbackground-color: transparent;\n\tcolor: var(--mol_theme_text);\n}\n\n[mol_string]:where(:not(:disabled)) {\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_line);\n}\n\n[mol_string]:where(:not(:disabled)):hover {\n\tbox-shadow: inset 0 0 0 2px var(--mol_theme_line);\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_string]:focus {\n\toutline: none;\n\tz-index: var(--mol_layer_focus);\n\tcolor: var(--mol_theme_text);\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_focus);\n}\n\n[mol_string]::placeholder {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_string]::-ms-clear {\n\tdisplay: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_svg) = class $mol_svg extends ($.$mol_view) { + dom_name(){ + return "svg"; + } + dom_name_space(){ + return "http://www.w3.org/2000/svg"; + } + font_size(){ + return 16; + } + font_family(){ + return ""; + } + style_size(){ + return {}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + class $mol_state_time extends $mol_object { + static task(precision, reset) { + if (precision) { + return new $mol_after_timeout(precision, () => this.task(precision, null)); + } + else { + return new $mol_after_frame(() => this.task(precision, null)); + } + } + static now(precision) { + this.task(precision); + return Date.now(); + } + } + __decorate([ + $mol_mem_key + ], $mol_state_time, "task", null); + __decorate([ + $mol_mem_key + ], $mol_state_time, "now", null); + $.$mol_state_time = $mol_state_time; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_svg extends $.$mol_svg { + computed_style() { + const win = this.$.$mol_dom_context; + const style = win.getComputedStyle(this.dom_node()); + if (!style['font-size']) + $mol_state_time.now(0); + return style; + } + font_size() { + return parseInt(this.computed_style()['font-size']) || 16; + } + font_family() { + return this.computed_style()['font-family']; + } + } + __decorate([ + $mol_mem + ], $mol_svg.prototype, "computed_style", null); + __decorate([ + $mol_mem + ], $mol_svg.prototype, "font_size", null); + __decorate([ + $mol_mem + ], $mol_svg.prototype, "font_family", null); + $$.$mol_svg = $mol_svg; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_svg_root) = class $mol_svg_root extends ($.$mol_svg) { + view_box(){ + return "0 0 100 100"; + } + aspect(){ + return "xMidYMid"; + } + dom_name(){ + return "svg"; + } + attr(){ + return { + ...(super.attr()), + "viewBox": (this.view_box()), + "preserveAspectRatio": (this.aspect()) + }; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/svg/root/root.view.css", "[mol_svg_root] {\n\toverflow: hidden;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_svg_path) = class $mol_svg_path extends ($.$mol_svg) { + geometry(){ + return ""; + } + dom_name(){ + return "path"; + } + attr(){ + return {...(super.attr()), "d": (this.geometry())}; + } + }; + + +; +"use strict"; + +; + ($.$mol_icon) = class $mol_icon extends ($.$mol_svg_root) { + path(){ + return ""; + } + Path(){ + const obj = new this.$.$mol_svg_path(); + (obj.geometry) = () => ((this.path())); + return obj; + } + view_box(){ + return "0 0 24 24"; + } + minimal_width(){ + return 16; + } + minimal_height(){ + return 16; + } + sub(){ + return [(this.Path())]; + } + }; + ($mol_mem(($.$mol_icon.prototype), "Path")); + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/icon/icon.view.css", "[mol_icon] {\n\tfill: currentColor;\n\tstroke: none;\n\twidth: 1em;\n\theight: 1.5em;\n\tflex: 0 0 auto;\n\tvertical-align: top;\n\tdisplay: inline-block;\n\tfilter: drop-shadow(0px 1px 1px var(--mol_theme_back));\n\ttransform-origin: center;\n}\n\n[mol_icon_path] {\n\ttransform-origin: center;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_icon_cross) = class $mol_icon_cross extends ($.$mol_icon) { + path(){ + return "M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_speck) = class $mol_speck extends ($.$mol_view) { + theme(){ + return "$mol_theme_accent"; + } + value(){ + return null; + } + attr(){ + return {...(super.attr()), "mol_theme": (this.theme())}; + } + style(){ + return {...(super.style()), "minHeight": "1em"}; + } + sub(){ + return [(this.value())]; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/speck/speck.view.css", "[mol_speck] {\n\tfont-size: .625rem;\n\tborder-radius: 1rem;\n\tmargin: -0.5rem -0.25rem;\n\talign-self: flex-start;\n\tmin-height: 1em;\n\tmin-width: .5em;\n\tvertical-align: sub;\n\tpadding: .25em .5em;\n\tposition: absolute;\n\tz-index: var(--mol_layer_speck);\n\ttext-align: center;\n\tline-height: 1;\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tuser-select: none;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_button) = class $mol_button extends ($.$mol_view) { + event_activate(next){ + if(next !== undefined) return next; + return null; + } + clicks(next){ + if(next !== undefined) return next; + return null; + } + event_key_press(next){ + if(next !== undefined) return next; + return null; + } + disabled(){ + return false; + } + tab_index(){ + return 0; + } + hint(){ + return ""; + } + hint_safe(){ + return (this.hint()); + } + error(){ + return ""; + } + enabled(){ + return true; + } + click(next){ + if(next !== undefined) return next; + return null; + } + event_click(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return { + ...(super.event()), + "click": (next) => (this.event_activate(next)), + "dblclick": (next) => (this.clicks(next)), + "keydown": (next) => (this.event_key_press(next)) + }; + } + attr(){ + return { + ...(super.attr()), + "disabled": (this.disabled()), + "role": "button", + "tabindex": (this.tab_index()), + "title": (this.hint_safe()) + }; + } + sub(){ + return [(this.title())]; + } + Speck(){ + const obj = new this.$.$mol_speck(); + (obj.value) = () => ((this.error())); + return obj; + } + }; + ($mol_mem(($.$mol_button.prototype), "event_activate")); + ($mol_mem(($.$mol_button.prototype), "clicks")); + ($mol_mem(($.$mol_button.prototype), "event_key_press")); + ($mol_mem(($.$mol_button.prototype), "click")); + ($mol_mem(($.$mol_button.prototype), "event_click")); + ($mol_mem(($.$mol_button.prototype), "Speck")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_button extends $.$mol_button { + status(next = [null]) { return next; } + disabled() { + return !this.enabled(); + } + event_activate(next) { + if (!next) + return; + if (!this.enabled()) + return; + try { + this.event_click(next); + this.click(next); + this.status([null]); + } + catch (error) { + Promise.resolve().then(() => this.status([error])); + $mol_fail_hidden(error); + } + } + event_key_press(event) { + if (event.keyCode === $mol_keyboard_code.enter) { + return this.event_activate(event); + } + } + tab_index() { + return this.enabled() ? super.tab_index() : -1; + } + error() { + const [error] = this.status(); + if (!error) + return ''; + if (error instanceof Promise) { + return $mol_fail_hidden(error); + } + return String(error.message ?? error); + } + hint_safe() { + try { + return this.hint(); + } + catch (error) { + $mol_fail_log(error); + return ''; + } + } + sub_visible() { + return [ + ...this.error() ? [this.Speck()] : [], + ...this.sub(), + ]; + } + } + __decorate([ + $mol_mem + ], $mol_button.prototype, "status", null); + $$.$mol_button = $mol_button; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/button.view.css", "[mol_button] {\n\tborder: none;\n\tfont: inherit;\n\tdisplay: inline-flex;\n\tflex-shrink: 0;\n\ttext-decoration: inherit;\n\tcursor: inherit;\n\tposition: relative;\n\tbox-sizing: border-box;\n\tword-break: normal;\n\tcursor: default;\n\tuser-select: none;\n\tborder-radius: var(--mol_gap_round);\n\tbackground: transparent;\n\tcolor: inherit;\n}\n\n[mol_button]:where(:not(:disabled)):hover {\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_button]:focus-visible {\n\toutline: none;\n\tz-index: var(--mol_layer_focus);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_button_typed) = class $mol_button_typed extends ($.$mol_button) { + minimal_height(){ + return 40; + } + minimal_width(){ + return 40; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/typed/typed.view.css", "[mol_button_typed] {\n\talign-content: center;\n\talign-items: center;\n\tpadding: var(--mol_gap_text);\n\tborder-radius: var(--mol_gap_round);\n\tgap: var(--mol_gap_space);\n\tuser-select: none;\n\tcursor: pointer;\n}\n\n[mol_button_typed][disabled] {\n\tpointer-events: none;\n}\n\n[mol_button_typed]:hover ,\n[mol_button_typed]:focus-visible {\n\tbox-shadow: inset 0 0 0 10rem var(--mol_theme_hover);\n}\n\n[mol_button_typed]:active {\n\tcolor: var(--mol_theme_focus);\n}\n\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_button_minor) = class $mol_button_minor extends ($.$mol_button_typed) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/minor/minor.view.css", "[mol_button_minor] {\n\tcolor: var(--mol_theme_control);\n}\n\n[mol_button_minor][disabled] {\n\tcolor: var(--mol_theme_shade);\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_list) = class $mol_list extends ($.$mol_view) { + rows(){ + return []; + } + gap_before(){ + return 0; + } + gap_after(){ + return 0; + } + 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]; + } + }; + ($mol_mem(($.$mol_list.prototype), "Empty")); + ($mol_mem(($.$mol_list.prototype), "Gap_before")); + ($mol_mem(($.$mol_list.prototype), "Gap_after")); + + +; +"use strict"; +var $; +(function ($) { + let cache = null; + function $mol_support_css_overflow_anchor() { + return cache ?? (cache = this.$mol_dom_context.CSS?.supports('overflow-anchor:auto') ?? false); + } + $.$mol_support_css_overflow_anchor = $mol_support_css_overflow_anchor; +})($ || ($ = {})); + +; +"use strict"; + +; +"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(next) { + const kids = this.sub(); + if (kids.length < 3) + return [0, kids.length]; + if (this.$.$mol_print.active()) + return [0, kids.length]; + const rect = this.view_rect(); + if (next) + return next; + let [min, max] = $mol_mem_cached(() => this.view_window()) ?? [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 gap_before = $mol_mem_cached(() => this.gap_before()) ?? 0; + const gap_after = $mol_mem_cached(() => this.gap_after()) ?? 0; + let top = Math.ceil(rect?.top ?? 0) + gap_before; + let bottom = Math.ceil(rect?.bottom ?? 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(rect?.top ?? 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) && (bottom < limit_bottom) && (max < kids.length)) { + min2 = max; + top2 = bottom; + } + if ((bottom > limit_bottom) && (top > limit_top) && (min > 0)) { + max2 = min; + bottom2 = top; + } + while (anchoring && ((top2 > limit_top) && (min2 > 0))) { + --min2; + top2 -= kids[min2].minimal_height(); + } + while (bottom2 < limit_bottom && max2 < kids.length) { + bottom2 += kids[max2].minimal_height(); + ++max2; + } + 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() { + return [ + ...this.gap_before() ? [this.Gap_before()] : [], + ...this.sub().slice(...this.view_window()), + ...this.gap_after() ? [this.Gap_after()] : [], + ]; + } + minimal_height() { + return this.sub().reduce((sum, view) => { + try { + return sum + view.minimal_height(); + } + catch (error) { + $mol_fail_log(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]) { + this.view_window([this.render_visible_only() ? index : 0, 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; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/list/list.view.css", "[mol_list] {\n\twill-change: contents;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\tmax-width: 100%;\n\t/* display: flex;\n\talign-items: stretch;\n\talign-content: stretch; */\n\ttransition: none;\n\tmin-height: 1.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"); +})($ || ($ = {})); + +; + ($.$mol_paragraph) = class $mol_paragraph extends ($.$mol_view) { + line_height(){ + return 24; + } + letter_width(){ + return 7; + } + width_limit(){ + return +Infinity; + } + row_width(){ + return 0; + } + sub(){ + return [(this.title())]; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_paragraph extends $.$mol_paragraph { + maximal_width() { + let width = 0; + const letter = this.letter_width(); + for (const kid of this.sub()) { + if (!kid) + continue; + if (kid instanceof $mol_view) { + width += kid.maximal_width(); + } + else if (typeof kid !== 'object') { + width += String(kid).length * letter; + } + } + return width; + } + width_limit() { + return this.$.$mol_window.size().width; + } + minimal_width() { + return this.letter_width(); + } + row_width() { + return Math.max(Math.min(this.width_limit(), this.maximal_width()), this.letter_width()); + } + minimal_height() { + return Math.max(1, Math.ceil(this.maximal_width() / this.row_width())) * this.line_height(); + } + } + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "maximal_width", null); + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "row_width", null); + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "minimal_height", null); + $$.$mol_paragraph = $mol_paragraph; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/paragraph/paragraph.view.css", ":where([mol_paragraph]) {\n\tmargin: 0;\n\tmax-width: 100%;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_dimmer) = class $mol_dimmer extends ($.$mol_paragraph) { + parts(){ + return []; + } + string(id){ + return ""; + } + haystack(){ + return ""; + } + needle(){ + return ""; + } + sub(){ + return (this.parts()); + } + Low(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ([(this.string(id))]); + return obj; + } + High(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ([(this.string(id))]); + return obj; + } + }; + ($mol_mem_key(($.$mol_dimmer.prototype), "Low")); + ($mol_mem_key(($.$mol_dimmer.prototype), "High")); + + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + class $mol_regexp extends RegExp { + groups; + constructor(source, flags = 'gsu', groups = []) { + super(source, flags); + this.groups = groups; + } + *[Symbol.matchAll](str) { + const index = this.lastIndex; + this.lastIndex = 0; + try { + while (this.lastIndex < str.length) { + const found = this.exec(str); + if (!found) + break; + yield found; + } + } + finally { + this.lastIndex = index; + } + } + [Symbol.match](str) { + const res = [...this[Symbol.matchAll](str)].filter(r => r.groups).map(r => r[0]); + if (!res.length) + return null; + return res; + } + [Symbol.split](str) { + const res = []; + let token_last = null; + for (let token of this[Symbol.matchAll](str)) { + if (token.groups && (token_last ? token_last.groups : true)) + res.push(''); + res.push(token[0]); + token_last = token; + } + if (!res.length) + res.push(''); + return res; + } + test(str) { + return Boolean(str.match(this)); + } + exec(str) { + const from = this.lastIndex; + if (from >= str.length) + return null; + const res = super.exec(str); + if (res === null) { + this.lastIndex = str.length; + if (!str) + return null; + return Object.assign([str.slice(from)], { + index: from, + input: str, + }); + } + if (from === this.lastIndex) { + $mol_fail(new Error('Captured empty substring')); + } + const groups = {}; + const skipped = str.slice(from, this.lastIndex - res[0].length); + if (skipped) { + this.lastIndex = this.lastIndex - res[0].length; + return Object.assign([skipped], { + index: from, + input: res.input, + }); + } + for (let i = 0; i < this.groups.length; ++i) { + const group = this.groups[i]; + groups[group] = groups[group] || res[i + 1] || ''; + } + return Object.assign(res, { groups }); + } + generate(params) { + return null; + } + get native() { + return new RegExp(this.source, this.flags); + } + static repeat(source, min = 0, max = Number.POSITIVE_INFINITY) { + const regexp = $mol_regexp.from(source); + const upper = Number.isFinite(max) ? max : ''; + const str = `(?:${regexp.source}){${min},${upper}}?`; + const regexp2 = new $mol_regexp(str, regexp.flags, regexp.groups); + regexp2.generate = params => { + const res = regexp.generate(params); + if (res) + return res; + if (min > 0) + return res; + return ''; + }; + return regexp2; + } + static repeat_greedy(source, min = 0, max = Number.POSITIVE_INFINITY) { + const regexp = $mol_regexp.from(source); + const upper = Number.isFinite(max) ? max : ''; + const str = `(?:${regexp.source}){${min},${upper}}`; + const regexp2 = new $mol_regexp(str, regexp.flags, regexp.groups); + regexp2.generate = params => { + const res = regexp.generate(params); + if (res) + return res; + if (min > 0) + return res; + return ''; + }; + return regexp2; + } + static vary(sources) { + const groups = []; + const chunks = sources.map(source => { + const regexp = $mol_regexp.from(source); + groups.push(...regexp.groups); + return regexp.source; + }); + return new $mol_regexp(`(?:${chunks.join('|')})`, '', groups); + } + static optional(source) { + return $mol_regexp.repeat_greedy(source, 0, 1); + } + static force_after(source) { + const regexp = $mol_regexp.from(source); + return new $mol_regexp(`(?=${regexp.source})`, regexp.flags, regexp.groups); + } + static forbid_after(source) { + const regexp = $mol_regexp.from(source); + return new $mol_regexp(`(?!${regexp.source})`, regexp.flags, regexp.groups); + } + static from(source, { ignoreCase, multiline } = { + ignoreCase: false, + multiline: false, + }) { + let flags = 'gsu'; + if (multiline) + flags += 'm'; + if (ignoreCase) + flags += 'i'; + if (typeof source === 'number') { + const src = `\\u{${source.toString(16)}}`; + const regexp = new $mol_regexp(src, flags); + regexp.generate = () => src; + return regexp; + } + if (typeof source === 'string') { + const src = source.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + const regexp = new $mol_regexp(src, flags); + regexp.generate = () => source; + return regexp; + } + else if (source instanceof $mol_regexp) { + const regexp = new $mol_regexp(source.source, flags, source.groups); + regexp.generate = params => source.generate(params); + return regexp; + } + if (source instanceof RegExp) { + const test = new RegExp('|' + source.source); + const groups = Array.from({ length: test.exec('').length - 1 }, (_, i) => String(i + 1)); + const regexp = new $mol_regexp(source.source, source.flags, groups); + regexp.generate = () => ''; + return regexp; + } + if (Array.isArray(source)) { + const patterns = source.map(src => Array.isArray(src) + ? $mol_regexp.optional(src) + : $mol_regexp.from(src)); + const chunks = patterns.map(pattern => pattern.source); + const groups = []; + let index = 0; + for (const pattern of patterns) { + for (let group of pattern.groups) { + if (Number(group) >= 0) { + groups.push(String(index++)); + } + else { + groups.push(group); + } + } + } + const regexp = new $mol_regexp(chunks.join(''), flags, groups); + regexp.generate = params => { + let res = ''; + for (const pattern of patterns) { + let sub = pattern.generate(params); + if (sub === null) + return ''; + res += sub; + } + return res; + }; + return regexp; + } + else { + const groups = []; + const chunks = Object.keys(source).map(name => { + groups.push(name); + const regexp = $mol_regexp.from(source[name]); + groups.push(...regexp.groups); + return `(${regexp.source})`; + }); + const regexp = new $mol_regexp(`(?:${chunks.join('|')})`, flags, groups); + const validator = new RegExp('^' + regexp.source + '$', flags); + regexp.generate = (params) => { + for (let option in source) { + if (option in params) { + if (typeof params[option] === 'boolean') { + if (!params[option]) + continue; + } + else { + const str = String(params[option]); + if (str.match(validator)) + return str; + $mol_fail(new Error(`Wrong param: ${option}=${str}`)); + } + } + else { + if (typeof source[option] !== 'object') + continue; + } + const res = $mol_regexp.from(source[option]).generate(params); + if (res) + return res; + } + return null; + }; + return regexp; + } + } + static unicode_only(...category) { + return new $mol_regexp(`\\p{${category.join('=')}}`); + } + static unicode_except(...category) { + return new $mol_regexp(`\\P{${category.join('=')}}`); + } + static char_range(from, to) { + return new $mol_regexp(`${$mol_regexp.from(from).source}-${$mol_regexp.from(to).source}`); + } + static char_only(...allowed) { + const regexp = allowed.map(f => $mol_regexp.from(f).source).join(''); + return new $mol_regexp(`[${regexp}]`); + } + static char_except(...forbidden) { + const regexp = forbidden.map(f => $mol_regexp.from(f).source).join(''); + return new $mol_regexp(`[^${regexp}]`); + } + static decimal_only = $mol_regexp.from(/\d/gsu); + static decimal_except = $mol_regexp.from(/\D/gsu); + static latin_only = $mol_regexp.from(/\w/gsu); + static latin_except = $mol_regexp.from(/\W/gsu); + static space_only = $mol_regexp.from(/\s/gsu); + static space_except = $mol_regexp.from(/\S/gsu); + static word_break_only = $mol_regexp.from(/\b/gsu); + static word_break_except = $mol_regexp.from(/\B/gsu); + static tab = $mol_regexp.from(/\t/gsu); + static slash_back = $mol_regexp.from(/\\/gsu); + static nul = $mol_regexp.from(/\0/gsu); + static char_any = $mol_regexp.from(/./gsu); + static begin = $mol_regexp.from(/^/gsu); + static end = $mol_regexp.from(/$/gsu); + static or = $mol_regexp.from(/|/gsu); + static line_end = $mol_regexp.from({ + win_end: [['\r'], '\n'], + mac_end: '\r', + }); + } + $.$mol_regexp = $mol_regexp; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_dimmer extends $.$mol_dimmer { + parts() { + const needle = this.needle(); + if (needle.length < 2) + return [this.haystack()]; + let chunks = []; + let strings = this.strings(); + for (let index = 0; index < strings.length; index++) { + if (strings[index] === '') + continue; + chunks.push((index % 2) ? this.High(index) : this.Low(index)); + } + return chunks; + } + strings() { + const options = this.needle().split(/\s+/g).filter(Boolean); + if (!options.length) + return [this.haystack()]; + const variants = { ...options }; + const regexp = $mol_regexp.from({ needle: variants }, { ignoreCase: true }); + return this.haystack().split(regexp); + } + string(index) { + return this.strings()[index]; + } + *view_find(check, path = []) { + if (check(this, this.haystack())) { + yield [...path, this]; + } + } + } + __decorate([ + $mol_mem + ], $mol_dimmer.prototype, "strings", null); + $$.$mol_dimmer = $mol_dimmer; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/dimmer/dimmer.view.css", "[mol_dimmer] {\n\tdisplay: block;\n\tmax-width: 100%;\n}\n\n[mol_dimmer_low] {\n\tdisplay: inline;\n\topacity: 0.8;\n}\n\n[mol_dimmer_high] {\n\tdisplay: inline;\n\tcolor: var(--mol_theme_focus);\n\ttext-shadow: 0 0;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_search) = class $mol_search extends ($.$mol_pop) { + clear(next){ + if(next !== undefined) return next; + return null; + } + Hotkey(){ + const obj = new this.$.$mol_hotkey(); + (obj.key) = () => ({"escape": (next) => (this.clear(next))}); + return obj; + } + nav_components(){ + return []; + } + nav_focused(next){ + if(next !== undefined) return next; + return null; + } + Nav(){ + const obj = new this.$.$mol_nav(); + (obj.keys_y) = () => ((this.nav_components())); + (obj.current_y) = (next) => ((this.nav_focused(next))); + return obj; + } + suggests_showed(next){ + if(next !== undefined) return next; + return false; + } + query(next){ + if(next !== undefined) return next; + return ""; + } + hint(){ + return (this.$.$mol_locale.text("$mol_search_hint")); + } + submit(next){ + if(next !== undefined) return next; + return null; + } + enabled(){ + return true; + } + keyboard(){ + return "search"; + } + enter(){ + return "search"; + } + bring(){ + return (this.Query().bring()); + } + Query(){ + const obj = new this.$.$mol_string(); + (obj.value) = (next) => ((this.query(next))); + (obj.hint) = () => ((this.hint())); + (obj.submit) = (next) => ((this.submit(next))); + (obj.enabled) = () => ((this.enabled())); + (obj.keyboard) = () => ((this.keyboard())); + (obj.enter) = () => ((this.enter())); + return obj; + } + Clear_icon(){ + const obj = new this.$.$mol_icon_cross(); + return obj; + } + Clear(){ + const obj = new this.$.$mol_button_minor(); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_search_Clear_hint"))); + (obj.click) = (next) => ((this.clear(next))); + (obj.sub) = () => ([(this.Clear_icon())]); + return obj; + } + anchor_content(){ + return [(this.Query()), (this.Clear())]; + } + menu_items(){ + return []; + } + Menu(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.menu_items())); + return obj; + } + suggest_select(id, next){ + if(next !== undefined) return next; + return null; + } + suggest_label(id){ + return ""; + } + Suggest_label(id){ + const obj = new this.$.$mol_dimmer(); + (obj.haystack) = () => ((this.suggest_label(id))); + (obj.needle) = () => ((this.query())); + return obj; + } + suggest_content(id){ + return [(this.Suggest_label(id))]; + } + suggests(){ + return []; + } + plugins(){ + return [ + ...(super.plugins()), + (this.Hotkey()), + (this.Nav()) + ]; + } + showed(next){ + return (this.suggests_showed(next)); + } + align_hor(){ + return "right"; + } + Anchor(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.anchor_content())); + return obj; + } + bubble_content(){ + return [(this.Menu())]; + } + Suggest(id){ + const obj = new this.$.$mol_button_minor(); + (obj.click) = (next) => ((this.suggest_select(id, next))); + (obj.sub) = () => ((this.suggest_content(id))); + return obj; + } + }; + ($mol_mem(($.$mol_search.prototype), "clear")); + ($mol_mem(($.$mol_search.prototype), "Hotkey")); + ($mol_mem(($.$mol_search.prototype), "nav_focused")); + ($mol_mem(($.$mol_search.prototype), "Nav")); + ($mol_mem(($.$mol_search.prototype), "suggests_showed")); + ($mol_mem(($.$mol_search.prototype), "query")); + ($mol_mem(($.$mol_search.prototype), "submit")); + ($mol_mem(($.$mol_search.prototype), "Query")); + ($mol_mem(($.$mol_search.prototype), "Clear_icon")); + ($mol_mem(($.$mol_search.prototype), "Clear")); + ($mol_mem(($.$mol_search.prototype), "Menu")); + ($mol_mem_key(($.$mol_search.prototype), "suggest_select")); + ($mol_mem_key(($.$mol_search.prototype), "Suggest_label")); + ($mol_mem(($.$mol_search.prototype), "Anchor")); + ($mol_mem_key(($.$mol_search.prototype), "Suggest")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_search extends $.$mol_search { + anchor_content() { + return [ + this.Query(), + ...this.query() ? [this.Clear()] : [], + ]; + } + suggests_showed(next = true) { + this.query(); + if (!this.focused()) + return false; + return next; + } + suggest_selected(next) { + if (next === undefined) + return; + this.query(next); + this.Query().focused(true); + } + nav_components() { + return [ + this.Query(), + ...this.menu_items(), + ]; + } + nav_focused(component) { + if (!this.focused()) + return null; + if (component == null) { + for (let comp of this.nav_components()) { + if (comp && comp.focused()) + return comp; + } + return null; + } + if (this.suggests_showed()) { + this.ensure_visible(component, "center"); + component.focused(true); + } + return component; + } + suggest_label(key) { + return key; + } + menu_items() { + return this.suggests().map((suggest) => this.Suggest(suggest)); + } + suggest_select(id, event) { + this.query(id); + this.Query().selection([id.length, id.length]); + this.Query().focused(true); + } + clear(event) { + this.query(''); + } + } + __decorate([ + $mol_mem + ], $mol_search.prototype, "anchor_content", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "suggests_showed", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "nav_focused", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "menu_items", null); + $$.$mol_search = $mol_search; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/search/search.view.css", "[mol_search] {\n\talign-self: flex-start;\n\tflex: auto;\n}\n\n[mol_search_anchor] {\n\tflex: 1 1 auto;\n}\n\n[mol_search_query] {\n\tflex-grow: 1;\n}\n\n[mol_search_menu] {\n\tmin-height: .75rem;\n\tdisplay: flex;\n}\n\n[mol_search_suggest] {\n\ttext-align: left;\n}\n\n[mol_search_suggest_label_high] {\n\tcolor: var(--mol_theme_shade);\n\ttext-shadow: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_link) = class $mol_link extends ($.$mol_view) { + uri_toggle(){ + return ""; + } + hint(){ + return ""; + } + hint_safe(){ + return (this.hint()); + } + target(){ + return "_self"; + } + file_name(){ + return ""; + } + current(){ + return false; + } + relation(){ + return ""; + } + event_click(next){ + if(next !== undefined) return next; + return null; + } + click(next){ + return (this.event_click(next)); + } + uri(){ + return ""; + } + dom_name(){ + return "a"; + } + uri_off(){ + return ""; + } + uri_native(){ + return null; + } + external(){ + return false; + } + attr(){ + return { + ...(super.attr()), + "href": (this.uri_toggle()), + "title": (this.hint_safe()), + "target": (this.target()), + "download": (this.file_name()), + "mol_link_current": (this.current()), + "rel": (this.relation()) + }; + } + sub(){ + return [(this.title())]; + } + arg(){ + return {}; + } + event(){ + return {...(super.event()), "click": (next) => (this.click(next))}; + } + }; + ($mol_mem(($.$mol_link.prototype), "event_click")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + class $mol_state_arg extends $mol_object { + prefix; + static prolog = ''; + static separator = ' '; + static href(next) { + return next || process.argv.slice(2).join(' '); + } + static href_normal() { + return this.link({}); + } + static dict(next) { + if (next !== void 0) + this.href(this.make_link(next)); + var href = this.href(); + var chunks = href.split(' '); + var params = {}; + chunks.forEach(chunk => { + if (!chunk) + return; + var vals = chunk.split('=').map(decodeURIComponent); + params[vals.shift()] = vals.join('='); + }); + return params; + } + static value(key, next) { + if (next === void 0) + return this.dict()[key] ?? null; + this.href(this.link({ [key]: next })); + return next; + } + static link(next) { + const params = {}; + var prev = this.dict(); + for (var key in prev) { + params[key] = prev[key]; + } + for (var key in next) { + params[key] = next[key]; + } + return this.make_link(params); + } + static make_link(next) { + const chunks = []; + for (const key in next) { + if (next[key] !== null) { + chunks.push([key, next[key]].map(encodeURIComponent).join('=')); + } + } + return chunks.join(' '); + } + static go(next) { + this.href(this.make_link(next)); + } + constructor(prefix = '') { + super(); + this.prefix = prefix; + } + value(key, next) { + return this.constructor.value(this.prefix + key, next); + } + sub(postfix) { + return new this.constructor(this.prefix + postfix + '.'); + } + link(next) { + const prefix = this.prefix; + const dict = {}; + for (var key in next) { + dict[prefix + key] = next[key]; + } + return this.constructor.link(dict); + } + } + __decorate([ + $mol_mem + ], $mol_state_arg, "href", null); + __decorate([ + $mol_mem + ], $mol_state_arg, "href_normal", null); + __decorate([ + $mol_mem + ], $mol_state_arg, "dict", null); + __decorate([ + $mol_mem_key + ], $mol_state_arg, "value", null); + __decorate([ + $mol_action + ], $mol_state_arg, "go", null); + $.$mol_state_arg = $mol_state_arg; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_link extends $.$mol_link { + uri_toggle() { + return this.current() ? this.uri_off() : this.uri(); + } + uri() { + return new this.$.$mol_state_arg(this.state_key()).link(this.arg()); + } + uri_off() { + const arg2 = {}; + for (let i in this.arg()) + arg2[i] = null; + return new this.$.$mol_state_arg(this.state_key()).link(arg2); + } + uri_native() { + const base = this.$.$mol_state_arg.href(); + return new URL(this.uri(), base); + } + current() { + const base = this.$.$mol_state_arg.href_normal(); + const target = this.uri_native().toString(); + if (base === target) + return true; + const args = this.arg(); + const keys = Object.keys(args).filter(key => args[key] != null); + if (keys.length === 0) + return false; + for (const key of keys) { + if (this.$.$mol_state_arg.value(key) != args[key]) + return false; + } + return true; + } + file_name() { + return null; + } + minimal_height() { + return Math.max(super.minimal_height(), 24); + } + external() { + return this.uri_native().origin !== $mol_dom_context.location.origin; + } + target() { + return this.external() ? '_blank' : '_self'; + } + hint_safe() { + try { + return this.hint(); + } + catch (error) { + $mol_fail_log(error); + return ''; + } + } + } + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_toggle", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_off", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_native", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "current", null); + $$.$mol_link = $mol_link; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const { rem } = $mol_style_unit; + $mol_style_define($mol_link, { + textDecoration: 'none', + color: $mol_theme.control, + stroke: 'currentcolor', + cursor: 'pointer', + padding: $mol_gap.text, + boxSizing: 'border-box', + position: 'relative', + minWidth: rem(2.5), + gap: $mol_gap.space, + border: { + radius: $mol_gap.round, + }, + ':hover': { + background: { + color: $mol_theme.hover, + }, + }, + ':focus-visible': { + outline: 'none', + background: { + color: $mol_theme.hover, + }, + }, + ':active': { + color: $mol_theme.focus, + }, + '@': { + mol_link_current: { + 'true': { + color: $mol_theme.current, + textShadow: '0 0', + } + } + }, + }); +})($ || ($ = {})); + +; + ($.$mol_page) = class $mol_page extends ($.$mol_view) { + tabindex(){ + return -1; + } + Logo(){ + return null; + } + title_content(){ + return [(this.Logo()), (this.title())]; + } + Title(){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("h1"); + (obj.sub) = () => ((this.title_content())); + return obj; + } + tools(){ + return []; + } + Tools(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.tools())); + return obj; + } + head(){ + return [(this.Title()), (this.Tools())]; + } + Head(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (64); + (obj.dom_name) = () => ("header"); + (obj.sub) = () => ((this.head())); + return obj; + } + body_scroll_top(next){ + return (this.Body().scroll_top(next)); + } + body(){ + return []; + } + Body_content(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.body())); + return obj; + } + body_content(){ + return [(this.Body_content())]; + } + Body(){ + const obj = new this.$.$mol_scroll(); + (obj.sub) = () => ((this.body_content())); + return obj; + } + foot(){ + return []; + } + Foot(){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("footer"); + (obj.sub) = () => ((this.foot())); + return obj; + } + dom_name(){ + return "article"; + } + field(){ + return {...(super.field()), "tabIndex": (this.tabindex())}; + } + sub(){ + return [ + (this.Head()), + (this.Body()), + (this.Foot()) + ]; + } + }; + ($mol_mem(($.$mol_page.prototype), "Title")); + ($mol_mem(($.$mol_page.prototype), "Tools")); + ($mol_mem(($.$mol_page.prototype), "Head")); + ($mol_mem(($.$mol_page.prototype), "Body_content")); + ($mol_mem(($.$mol_page.prototype), "Body")); + ($mol_mem(($.$mol_page.prototype), "Foot")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem } = $mol_style_unit; + const { hsla } = $mol_style_func; + $mol_style_define($mol_page, { + display: 'flex', + flex: { + basis: 'auto', + direction: 'column', + }, + position: 'relative', + alignSelf: 'stretch', + maxWidth: per(100), + maxHeight: per(100), + boxSizing: 'border-box', + color: $mol_theme.text, + ':focus': { + outline: 'none', + }, + Head: { + display: 'flex', + flexWrap: 'wrap', + justifyContent: 'flex-end', + flex: 'none', + position: 'relative', + margin: 0, + minHeight: rem(4), + padding: $mol_gap.block, + background: { + color: $mol_theme.card, + }, + border: { + radius: $mol_gap.round, + }, + box: { + shadow: [[0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla(0, 0, 0, .25)]], + }, + zIndex: 2, + }, + Title: { + minHeight: rem(2), + margin: 0, + padding: $mol_gap.text, + gap: $mol_gap.text, + wordBreak: 'normal', + textShadow: '0 0', + font: { + size: 'inherit', + weight: 'normal', + }, + flex: { + grow: 1, + shrink: 1, + basis: 'auto', + }, + }, + Tools: { + flex: { + basis: 'auto', + grow: 1000, + shrink: 1, + }, + display: 'flex', + justifyContent: 'flex-end', + alignItems: 'flex-start', + flexWrap: 'wrap', + }, + Body: { + flex: { + grow: 1000, + shrink: 1, + basis: per(100), + }, + }, + Body_content: { + padding: $mol_gap.block, + flex: { + direction: 'column', + shrink: 1, + grow: 1, + }, + justify: { + self: 'stretch', + }, + }, + Foot: { + display: 'flex', + justifyContent: 'space-between', + flex: 'none', + margin: 0, + background: { + color: $mol_theme.card, + }, + border: { + radius: $mol_gap.round, + }, + box: { + shadow: [[0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla(0, 0, 0, .25)]], + }, + zIndex: 1, + padding: $mol_gap.block, + ':empty': { + display: 'none', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_book2_catalog) = class $mol_book2_catalog extends ($.$mol_book2) { + Menu_title(){ + return (this.Menu().Title()); + } + menu_title(){ + return ""; + } + Menu_tools(){ + return (this.Menu().Tools()); + } + Menu_logo(){ + return null; + } + menu_head(){ + return [(this.Menu_title()), (this.Menu_tools())]; + } + menu_filter(next){ + if(next !== undefined) return next; + return ""; + } + Menu_filter(){ + const obj = new this.$.$mol_search(); + (obj.query) = (next) => ((this.menu_filter(next))); + return obj; + } + arg(id){ + return {}; + } + spread_title(id){ + return ""; + } + Menu_link_title(id){ + const obj = new this.$.$mol_dimmer(); + (obj.needle) = () => ((this.menu_filter())); + (obj.haystack) = () => ((this.spread_title(id))); + return obj; + } + menu_link_content(id){ + return [(this.Menu_link_title(id))]; + } + Menu_link(id){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.arg(id))); + (obj.sub) = () => ((this.menu_link_content(id))); + return obj; + } + menu_links(){ + return [(this.Menu_link("0"))]; + } + Menu_links(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.menu_links())); + return obj; + } + menu_body(){ + return [(this.Menu_filter()), (this.Menu_links())]; + } + menu_foot(){ + return []; + } + Menu(){ + const obj = new this.$.$mol_page(); + (obj.title) = () => ((this.menu_title())); + (obj.Logo) = () => ((this.Menu_logo())); + (obj.tools) = () => ([...(this.menu_tools()), ...(this.addon_tools())]); + (obj.head) = () => ((this.menu_head())); + (obj.body) = () => ((this.menu_body())); + (obj.foot) = () => ((this.menu_foot())); + return obj; + } + spread_close_arg(){ + return {}; + } + Spread_close_icon(){ + const obj = new this.$.$mol_icon_cross(); + return obj; + } + param(){ + return ""; + } + spread(next){ + if(next !== undefined) return next; + return ""; + } + spreads(){ + return {}; + } + Spread(id){ + const obj = new this.$.$mol_view(); + return obj; + } + Spread_default(){ + return null; + } + spread_ids(){ + return []; + } + menu_filter_enabled(){ + return false; + } + spread_ids_filtered(){ + return []; + } + menu_tools(){ + return []; + } + addon_tools(){ + return []; + } + pages(){ + return [(this.Menu())]; + } + Spread_close(){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.spread_close_arg())); + (obj.sub) = () => ([(this.Spread_close_icon())]); + return obj; + } + }; + ($mol_mem(($.$mol_book2_catalog.prototype), "menu_filter")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu_filter")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Menu_link_title")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Menu_link")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu_links")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Spread_close_icon")); + ($mol_mem(($.$mol_book2_catalog.prototype), "spread")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Spread")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Spread_close")); + + +; +"use strict"; +var $; +(function ($) { + function $mol_match_text(query, values) { + const tags = query.toLowerCase().trim().split(/\s+/).filter(tag => tag); + if (tags.length === 0) + return () => true; + return (variant) => { + const vals = values(variant); + return tags.every(tag => vals.some(val => val.toLowerCase().indexOf(tag) >= 0)); + }; + } + $.$mol_match_text = $mol_match_text; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_book2_catalog extends $.$mol_book2_catalog { + pages() { + const spread = this.spread() === '' ? this.Spread_default() : this.Spread(this.spread()); + return [ + this.Menu(), + ...spread + ? spread instanceof $mol_book2 + ? spread.pages() + : [spread] + : [], + ]; + } + spread_ids() { + return Object.keys(this.spreads()); + } + menu_body() { + return [ + ...this.menu_filter_enabled() ? [this.Menu_filter()] : [], + this.Menu_links(), + ]; + } + menu_filter_enabled() { + return this.spread_ids().length >= 10; + } + menu_links() { + return this.spread_ids_filtered() + .map(spread => this.Menu_link(spread)); + } + spread_ids_filtered() { + return this.spread_ids() + .filter($mol_match_text(this.menu_filter(), spread => [this.spread_title(spread)])); + } + Spread(id) { + return this.spreads()[id]; + } + Spread_default() { + return this.spreads()['']; + } + spread(next) { + return this.$.$mol_state_arg.value(this.param(), next) ?? ''; + } + arg(spread) { + return { [this.param()]: spread || null }; + } + spread_close_arg() { + return { [this.param()]: null }; + } + spread_title(spread) { + const page = this.Spread(spread); + return page instanceof $mol_book2 + && page.menu_title() + || page.title(); + } + } + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "pages", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread_ids", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "menu_body", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "menu_links", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread_ids_filtered", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread", null); + $$.$mol_book2_catalog = $mol_book2_catalog; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/book2/catalog/catalog.view.css", "[mol_book2_catalog_menu_filter] {\n\tflex-shrink: 0;\n\tflex-grow: 0;\n\talign-self: stretch;\n}\n\n"); +})($ || ($ = {})); + +; + ($.$mol_icon_plus) = class $mol_icon_plus extends ($.$mol_icon) { + path(){ + return "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_part; + (function ($hyoo_crus_part) { + $hyoo_crus_part[$hyoo_crus_part["land"] = 219] = "land"; + $hyoo_crus_part[$hyoo_crus_part["pass"] = 255] = "pass"; + $hyoo_crus_part[$hyoo_crus_part["gift"] = 247] = "gift"; + $hyoo_crus_part[$hyoo_crus_part["gist"] = 0] = "gist"; + $hyoo_crus_part[$hyoo_crus_part["hash"] = 253] = "hash"; + $hyoo_crus_part[$hyoo_crus_part["rock"] = 245] = "rock"; + $hyoo_crus_part[$hyoo_crus_part["root"] = 1] = "root"; + $hyoo_crus_part[$hyoo_crus_part["buck"] = 9] = "buck"; + })($hyoo_crus_part = $.$hyoo_crus_part || ($.$hyoo_crus_part = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_encode(src) { + throw new Error('Not implemented'); + } + $.$mol_base64_encode = $mol_base64_encode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_encode_node(str) { + if (!str) + return ''; + if (Buffer.isBuffer(str)) + return str.toString('base64'); + return Buffer.from(str).toString('base64'); + } + $.$mol_base64_encode_node = $mol_base64_encode_node; + $.$mol_base64_encode = $mol_base64_encode_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_decode(base64) { + throw new Error('Not implemented'); + } + $.$mol_base64_decode = $mol_base64_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_decode_node(base64Str) { + base64Str = base64Str.replace(/-/g, '+').replace(/_/g, '/'); + const buffer = Buffer.from(base64Str, 'base64'); + return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); + } + $.$mol_base64_decode_node = $mol_base64_decode_node; + $.$mol_base64_decode = $mol_base64_decode_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_ae_encode(buffer) { + return $mol_base64_encode(buffer).replace(/\+/g, 'æ').replace(/\//g, 'Æ').replace(/=/g, ''); + } + $.$mol_base64_ae_encode = $mol_base64_ae_encode; + function $mol_base64_ae_decode(str) { + return $mol_base64_decode(str.replace(/æ/g, '+').replace(/Æ/g, '/')); + } + $.$mol_base64_ae_decode = $mol_base64_ae_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_buffer extends DataView { + static from(array) { + if (typeof array === 'number') + array = new Uint8Array(array); + if (typeof array === 'string') + array = $mol_base64_ae_decode(array); + return new this(array.buffer, array.byteOffset, array.byteLength); + } + static toString() { + return $$.$mol_func_name(this); + } + getUint48(offset, LE = false) { + if (offset % 4) { + return this.getUint16(offset, LE) + this.getUint32(offset + 2, LE) * 2 ** 16; + } + else { + return this.getUint32(offset, LE) + this.getUint16(offset + 4, LE) * 2 ** 32; + } + } + setUint48(offset, value, LE = false) { + if (offset % 4) { + this.setUint16(offset, value & ((1 << 16) - 1), LE); + this.setUint32(offset + 2, (value / 2 ** 16) | 0, LE); + } + else { + this.setUint32(offset, value | 0, LE); + this.setUint16(offset + 4, (value / 2 ** 32) | 0, LE); + } + } + int8(offset, next) { + if (next === undefined) + return this.getInt8(offset); + if (next >= -(2 ** 7) && next < 2 ** 7) + return this.setInt8(offset, next), next; + $mol_fail(new Error(`Wrong int8 value ${next}`)); + } + uint8(offset, next) { + if (next === undefined) + return this.getUint8(offset); + if (next >= 0 && next < 2 ** 8) + return this.setUint8(offset, next), next; + $mol_fail(new Error(`Wrong uint8 value ${next}`)); + } + int16(offset, next) { + if (next === undefined) + return this.getInt16(offset, !!'LE'); + if (next >= -(2 ** 15) && next < 2 ** 15) + return this.setInt16(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int16 value ${next}`)); + } + uint16(offset, next) { + if (next === undefined) + return this.getUint16(offset, !!'LE'); + if (next >= 0 && next < 2 ** 16) + return this.setUint16(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint16 value ${next}`)); + } + int32(offset, next) { + if (next === undefined) + return this.getInt32(offset, !!'LE'); + if (next >= -(2 ** 31) && next < 2 ** 31) + return this.setInt32(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int32 value ${next}`)); + } + uint32(offset, next) { + if (next === undefined) + return this.getUint32(offset, !!'LE'); + if (next >= 0 && next < 2 ** 32) + return this.setUint32(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint32 value ${next}`)); + } + uint48(offset, next) { + if (next === undefined) + return this.getUint48(offset, !!'LE'); + if (next >= 0 && next < 2 ** 48) + return this.setUint48(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint48 value ${next}`)); + } + int64(offset, next) { + if (next === undefined) + return this.getBigInt64(offset, !!'LE'); + if (next >= -(2 ** 63) && next < 2 ** 63) + return this.setBigInt64(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int64 value ${next}`)); + } + uint64(offset, next) { + if (next === undefined) + return this.getBigUint64(offset, !!'LE'); + if (next >= 0 && next < 2 ** 64) + return this.setBigUint64(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint64 value ${next}`)); + } + float32(offset, next) { + if (next !== undefined) + this.setFloat32(offset, next, !!'LE'); + return this.getFloat32(offset, !!'LE'); + } + float64(offset, next) { + if (next !== undefined) + this.setFloat64(offset, next, !!'LE'); + return this.getFloat64(offset, !!'LE'); + } + asArray() { + return new Uint8Array(this.buffer, this.byteOffset, this.byteLength); + } + toString() { + return $mol_base64_ae_encode(this.asArray()); + } + } + $.$mol_buffer = $mol_buffer; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_data_tagged(config) { + return config; + } + $.$mol_data_tagged = $mol_data_tagged; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$hyoo_crus_ref = $mol_data_tagged({ $hyoo_crus_ref: (val) => { + if (typeof val === 'string') + val = Symbol.for(val.replace(/_+$/, '')); + if (/^(([a-zæA-ZÆ0-9]{8})?_){0,2}([a-zæA-ZÆ0-9]{8})?$/.test(val.description)) + return val; + $mol_fail(new Error(`Wrong ref (${val.description})`)); + } }).$hyoo_crus_ref; + function $hyoo_crus_ref_land(ref) { + return $.$hyoo_crus_ref(ref.description.slice(0, 17)); + } + $.$hyoo_crus_ref_land = $hyoo_crus_ref_land; + function $hyoo_crus_ref_peer(ref) { + return ref.description.split('_')[0] ?? ''; + } + $.$hyoo_crus_ref_peer = $hyoo_crus_ref_peer; + function $hyoo_crus_ref_head(ref) { + return ref.description.split('_')[2] ?? ''; + } + $.$hyoo_crus_ref_head = $hyoo_crus_ref_head; + function $hyoo_crus_ref_encode(ref) { + return $mol_base64_ae_decode((ref.description || '_') + .split(/_/g) + .map(numb => numb || 'AAAAAAAA') + .join('')); + } + $.$hyoo_crus_ref_encode = $hyoo_crus_ref_encode; + function $hyoo_crus_ref_decode(bin) { + return $.$hyoo_crus_ref([...$mol_base64_ae_encode(bin).match(/(.{8})/g) ?? []] + .map(numb => numb === 'AAAAAAAA' ? '' : numb) + .join('_').replace(/_+$/, '')); + } + $.$hyoo_crus_ref_decode = $hyoo_crus_ref_decode; + function $hyoo_crus_ref_relate(base, ref) { + if (!ref.description.padEnd(18, '_').startsWith(base.description.slice(0, 18).padEnd(18, '_'))) + return ref; + return $.$hyoo_crus_ref(('__' + (ref.description.split('_')[2] ?? '')).replace(/_+$/, '')); + } + $.$hyoo_crus_ref_relate = $hyoo_crus_ref_relate; + function $hyoo_crus_ref_resolve(base, ref) { + if (!ref.description) + return $hyoo_crus_ref_land(base); + if (!ref.description.startsWith('__')) + return ref; + return $.$hyoo_crus_ref(base.description.slice(0, 18).padEnd(18, '_') + ref.description.slice(2)); + } + $.$hyoo_crus_ref_resolve = $hyoo_crus_ref_resolve; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_url_encode(buffer) { + return $mol_base64_encode(buffer).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); + } + $.$mol_base64_url_encode = $mol_base64_url_encode; + function $mol_base64_url_decode(str) { + return $mol_base64_decode(str.replace(/-/g, '+').replace(/_/g, '/')); + } + $.$mol_base64_url_decode = $mol_base64_url_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_crypto_native = $node.crypto.webcrypto; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const algorithm = { + name: 'ECDSA', + hash: 'SHA-256', + namedCurve: "P-256", + }; + class $mol_crypto_key extends $mol_buffer { + static from(serial) { + if (typeof serial === 'string') { + serial = new Uint8Array([ + ...$mol_base64_url_decode(serial.slice(0, 43)), + ...$mol_base64_url_decode(serial.slice(43, 86)), + ...$mol_base64_url_decode(serial.slice(86, 129)), + ]); + } + return super.from(serial); + } + asArray() { + return new Uint8Array(this.buffer, this.byteOffset, this.byteLength); + } + toString() { + const arr = this.asArray(); + return $mol_base64_url_encode(arr.subarray(0, 32)) + + $mol_base64_url_encode(arr.subarray(32, 64)) + + $mol_base64_url_encode(arr.subarray(64)); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key.prototype, "toString", null); + $.$mol_crypto_key = $mol_crypto_key; + class $mol_crypto_key_public extends $mol_crypto_key { + static size_str = 86; + static size_bin = 64; + async native() { + const str = this.toString(); + return $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['verify'], + kty: "EC", + x: str.slice(0, 43), + y: str.slice(43, 86), + }, algorithm, true, ['verify']); + } + async verify(data, sign) { + return await $mol_crypto_native.subtle.verify(algorithm, await this.native(), sign, data); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key_public.prototype, "native", null); + $.$mol_crypto_key_public = $mol_crypto_key_public; + class $mol_crypto_key_private extends $mol_crypto_key { + static size_str = 129; + static size_bin = 96; + static size_sign = 64; + static async generate() { + const pair = await $mol_crypto_native.subtle.generateKey(algorithm, true, ['sign', 'verify']); + const { x, y, d } = await $mol_crypto_native.subtle.exportKey('jwk', pair.privateKey); + return this.from(x + y + d); + } + async native() { + const str = this.toString(); + return await $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['sign'], + kty: "EC", + x: str.slice(0, 43), + y: str.slice(43, 86), + d: str.slice(86, 129), + }, algorithm, true, ['sign']); + } + public() { + return new $mol_crypto_key_public(this.buffer, this.byteOffset, this.byteOffset + 64); + } + async sign(data) { + return new Uint8Array(await $mol_crypto_native.subtle.sign(algorithm, await this.native(), data)); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key_private.prototype, "native", null); + __decorate([ + $mol_memo.method + ], $mol_crypto_key_private.prototype, "public", null); + $.$mol_crypto_key_private = $mol_crypto_key_private; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const algorithm = { + name: 'AES-CBC', + length: 128, + tagLength: 32, + }; + class $mol_crypto_secret extends Object { + native; + static size = 16; + constructor(native) { + super(); + this.native = native; + } + static async generate() { + return new this(await $mol_crypto_native.subtle.generateKey(algorithm, true, ['encrypt', 'decrypt'])); + } + static async from(serial) { + return new this(await $mol_crypto_native.subtle.importKey('raw', serial, algorithm, true, ['encrypt', 'decrypt'])); + } + static async pass(pass, salt) { + return new this(await $mol_crypto_native.subtle.deriveKey({ + name: "PBKDF2", + salt, + iterations: 10_000, + hash: "SHA-256", + }, await $mol_crypto_native.subtle.importKey("raw", $mol_charset_encode(pass), "PBKDF2", false, ["deriveKey"]), algorithm, true, ['encrypt', 'decrypt'])); + } + static async derive(private_serial, public_serial) { + const ecdh = { name: "ECDH", namedCurve: "P-256" }; + const jwk = { crv: 'P-256', ext: true, kty: 'EC' }; + const private_key = await $mol_crypto_native.subtle.importKey('jwk', { + ...jwk, + key_ops: ['deriveKey'], + x: private_serial.slice(0, 43), + y: private_serial.slice(43, 86), + d: private_serial.slice(86, 129), + }, ecdh, true, ['deriveKey']); + const public_key = await $mol_crypto_native.subtle.importKey('jwk', { + ...jwk, + key_ops: [], + x: public_serial.slice(0, 43), + y: public_serial.slice(43, 86), + }, ecdh, true, []); + const secret = await $mol_crypto_native.subtle.deriveKey({ + name: "ECDH", + public: public_key, + }, private_key, algorithm, true, ["encrypt", "decrypt"]); + return new this(secret); + } + async serial() { + return new Uint8Array(await $mol_crypto_native.subtle.exportKey('raw', this.native)); + } + async encrypt(open, salt) { + return new Uint8Array(await $mol_crypto_native.subtle.encrypt({ + ...algorithm, + iv: salt, + }, this.native, open)); + } + async decrypt(closed, salt) { + return new Uint8Array(await $mol_crypto_native.subtle.decrypt({ + ...algorithm, + iv: salt, + }, this.native, closed)); + } + } + $.$mol_crypto_secret = $mol_crypto_secret; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_auth extends $mol_crypto_key_private { + static current(next) { + $mol_wire_solid(); + if (next === undefined) { + const key = String($mol_state_local.value('$hyoo_crus_auth') ?? ''); + if (key) + return $hyoo_crus_auth.from(key); + } + if (!next) + next = this.grab(); + $mol_state_local.value('$hyoo_crus_auth', next.toString()); + return next; + } + static embryos = []; + static grab() { + if (this.embryos.length) + return this.from(this.embryos.pop()); + return $mol_wire_sync(this).generate(); + } + static async generate() { + for (let i = 0; i < 4096; ++i) { + const auth = await super.generate(); + if (auth.uint8(0) !== $hyoo_crus_unit_kind.pass) + continue; + return this.from(auth); + } + $mol_fail(new Error(`Too long key generation`)); + } + lord() { + return $hyoo_crus_ref_decode(new Uint8Array(this.buffer, 2, 12)); + } + peer() { + return $mol_base64_ae_encode(new Uint8Array(this.buffer, 2, 6)); + } + secret_mutual(pub) { + return $mol_wire_sync($mol_crypto_secret).derive(this.toString(), pub.toString()); + } + } + __decorate([ + $mol_memo.method + ], $hyoo_crus_auth.prototype, "lord", null); + __decorate([ + $mol_memo.method + ], $hyoo_crus_auth.prototype, "peer", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_auth.prototype, "secret_mutual", null); + __decorate([ + $mol_mem + ], $hyoo_crus_auth, "current", null); + __decorate([ + $mol_action + ], $hyoo_crus_auth, "grab", null); + $.$hyoo_crus_auth = $hyoo_crus_auth; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_face_map extends Map { + last = 0; + total = 0; + constructor(entries) { + super(); + if (entries) + this.sync(entries); + } + sync(right) { + if (right instanceof $hyoo_crus_face_map) + this.total = right.total; + for (const [peer, time] of right) + this.time_max(peer, time); + } + time_max(peer, time) { + if (this.last < time) + this.last = time; + let prev = this.get(peer) ?? 0; + if (prev < time) + this.set(peer, time); + } + tick() { + return this.last = Math.max(this.last + 1, Date.now()); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), $mol_dev_format_shade(' ', this.total), $mol_dev_format_shade(' ', new Date(this.last))); + } + } + __decorate([ + $mol_action + ], $hyoo_crus_face_map.prototype, "tick", null); + $.$hyoo_crus_face_map = $hyoo_crus_face_map; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_dict extends Map { + pub = new $mol_wire_pub; + has(key) { + this.pub.promote(); + return super.has(key); + } + get(key) { + this.pub.promote(); + return super.get(key); + } + entries() { + this.pub.promote(); + return super.entries(); + } + keys() { + this.pub.promote(); + return super.keys(); + } + values() { + this.pub.promote(); + return super.values(); + } + forEach(task, self) { + this.pub.promote(); + super.forEach(task, self); + } + [Symbol.iterator]() { + this.pub.promote(); + return super[Symbol.iterator](); + } + get size() { + this.pub.promote(); + return super.size; + } + set(key, value) { + if (super.get(key) === value) + return this; + super.set(key, value); + this.pub?.emit(); + return this; + } + delete(key) { + const res = super.delete(key); + if (res) + this.pub.emit(); + return res; + } + clear() { + if (!super.size) + return; + super.clear(); + this.pub.emit(); + } + item(key, next) { + if (next === undefined) + return this.get(key) ?? null; + if (next === null) + this.delete(key); + else + this.set(key, next); + return next; + } + } + $.$mol_wire_dict = $mol_wire_dict; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_set extends Set { + pub = new $mol_wire_pub; + has(value) { + this.pub.promote(); + return super.has(value); + } + entries() { + this.pub.promote(); + return super.entries(); + } + keys() { + this.pub.promote(); + return super.keys(); + } + values() { + this.pub.promote(); + return super.values(); + } + forEach(task, self) { + this.pub.promote(); + super.forEach(task, self); + } + [Symbol.iterator]() { + this.pub.promote(); + return super[Symbol.iterator](); + } + get size() { + this.pub.promote(); + return super.size; + } + add(value) { + if (super.has(value)) + return this; + super.add(value); + this.pub.emit(); + return this; + } + delete(value) { + const res = super.delete(value); + if (res) + this.pub.emit(); + return res; + } + clear() { + if (!super.size) + return; + super.clear(); + this.pub.emit(); + } + item(val, next) { + if (next === undefined) + return this.has(val); + if (next) + this.add(val); + else + this.delete(val); + return next; + } + } + $.$mol_wire_set = $mol_wire_set; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_area; + (function ($hyoo_crus_area) { + $hyoo_crus_area[$hyoo_crus_area["data"] = 0] = "data"; + $hyoo_crus_area[$hyoo_crus_area["meta"] = 1] = "meta"; + })($hyoo_crus_area = $.$hyoo_crus_area || ($.$hyoo_crus_area = {})); + function $hyoo_crus_area_of(numb) { + const num = $mol_base64_ae_decode(numb || 'AAAAAAAA')[0]; + return $hyoo_crus_area[num % 2]; + } + $.$hyoo_crus_area_of = $hyoo_crus_area_of; + function $hyoo_crus_area_to(numb, area) { + const buf = $mol_base64_ae_decode(numb || 'AAAAAAAA'); + buf[0] -= buf[0] % 2 - $hyoo_crus_area[area]; + numb = $mol_base64_ae_encode(buf); + return numb; + } + $.$hyoo_crus_area_to = $hyoo_crus_area_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_rank; + (function ($hyoo_crus_rank) { + $hyoo_crus_rank[$hyoo_crus_rank["nil"] = 0] = "nil"; + $hyoo_crus_rank[$hyoo_crus_rank["get"] = 1] = "get"; + $hyoo_crus_rank[$hyoo_crus_rank["add"] = 3] = "add"; + $hyoo_crus_rank[$hyoo_crus_rank["mod"] = 7] = "mod"; + $hyoo_crus_rank[$hyoo_crus_rank["law"] = 15] = "law"; + })($hyoo_crus_rank = $.$hyoo_crus_rank || ($.$hyoo_crus_rank = {})); + $.$hyoo_crus_rank_private = {}; + $.$hyoo_crus_rank_public = { '': $hyoo_crus_rank.get }; + $.$hyoo_crus_rank_lobby = { '': $hyoo_crus_rank.add }; + $.$hyoo_crus_rank_orgy = { '': $hyoo_crus_rank.mod }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_fund extends $mol_object { + item_make; + constructor(item_make) { + super(); + this.item_make = item_make; + } + Item(head) { + return this.item_make(head); + } + } + __decorate([ + $mol_mem_key + ], $hyoo_crus_fund.prototype, "Item", null); + $.$hyoo_crus_fund = $hyoo_crus_fund; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let sponge = new Uint32Array(80); + function $mol_crypto_hash(data) { + const bits = data.byteLength << 3; + const kbits = bits >> 5; + const kword = 0x80 << (24 - bits & 0b11111); + const bytes = 16 + (bits + 64 >>> 9 << 4); + const klens = bytes - 1; + const words = new Int32Array(data.buffer, data.byteOffset, data.byteLength >> 2); + let tail = 0; + for (let i = words.length * 4; i < data.length; ++i) { + tail |= data[i] << (i << 3 & 0b11000); + } + const hash = new Int32Array([1732584193, -271733879, -1732584194, 271733878, -1009589776]); + for (let i = 0; i < bytes; i += 16) { + let h0 = hash[0]; + let h1 = hash[1]; + let h2 = hash[2]; + let h3 = hash[3]; + let h4 = hash[4]; + for (let j = 0; j < 80; ++j) { + let turn; + if (j < 16) { + const k = i + j; + if (k === klens) { + sponge[j] = bits; + } + else { + let word = k === words.length ? tail : + k > words.length ? 0 : + words[k]; + word = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF; + if (k === kbits) + word |= kword; + sponge[j] = word; + } + turn = (h1 & h2 | ~h1 & h3) + 1518500249; + } + else { + const shuffle = sponge[j - 3] ^ sponge[j - 8] ^ sponge[j - 14] ^ sponge[j - 16]; + sponge[j] = shuffle << 1 | shuffle >>> 31; + turn = + j < 20 ? (h1 & h2 | ~h1 & h3) + 1518500249 : + j < 40 ? (h1 ^ h2 ^ h3) + 1859775393 : + j < 60 ? (h1 & h2 | h1 & h3 | h2 & h3) - 1894007588 : + (h1 ^ h2 ^ h3) - 899497514; + } + const next = turn + h4 + (sponge[j] >>> 0) + ((h0 << 5) | (h0 >>> 27)); + h4 = h3; + h3 = h2; + h2 = (h1 << 30) | (h1 >>> 2); + h1 = h0; + h0 = next; + } + hash[0] += h0; + hash[1] += h1; + hash[2] += h2; + hash[3] += h3; + hash[4] += h4; + } + for (let i = 0; i < 20; ++i) { + const word = hash[i]; + hash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF; + } + return new Uint8Array(hash.buffer); + } + $.$mol_crypto_hash = $mol_crypto_hash; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_pack extends $mol_buffer { + toBlob() { + return new Blob([this], { type: 'application/vnd.hyoo_crus_pack' }); + } + parts(land = null) { + const lands = {}; + if (land) + lands[land] = { faces: new $hyoo_crus_face_map, units: [] }; + const rocks = []; + const buf = this.asArray(); + for (let offset = 0; offset < this.byteLength;) { + const kind = this.uint8(offset); + if (kind % 2) { + switch (kind) { + case $hyoo_crus_part.land: { + const faces = new $hyoo_crus_face_map; + faces.total = this.uint32(offset) >> 8; + offset += 4; + land = $hyoo_crus_ref_decode(new Uint8Array(buf.buffer, buf.byteOffset + offset, 18)); + offset += 18; + const len = this.uint16(offset); + offset += 2; + for (let i = 0; i < len; ++i) { + const peer = $mol_base64_ae_encode(new Uint8Array(buf.buffer, buf.byteOffset + offset, 6)); + const time = this.uint48(offset + 6); + faces.time_max(peer, time); + offset += 12; + } + lands[land] = { faces, units: [] }; + continue; + } + case $hyoo_crus_part.pass: { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_pass(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + case $hyoo_crus_part.gift: { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_gift(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + case $hyoo_crus_part.hash: { + const hash = buf.slice(offset += 4, offset += 24); + rocks.push([hash, null]); + continue; + } + case $hyoo_crus_part.rock: { + const size = this.uint32(offset) >> 8; + if (size === 0) { + const hash = buf.slice(offset + 4, offset + 4 + 24); + rocks.push([hash, null]); + offset += 4 + 24; + } + else { + const rock = buf.slice(offset + 4, offset + 4 + size); + const hash = $mol_crypto_hash(rock); + rocks.push([hash, rock]); + offset += Math.ceil(size / 8 + .5) * 8; + } + continue; + } + case $hyoo_crus_part.buck: { + offset += 128; + continue; + } + default: $mol_fail(new Error(`Unknown CRUS Pack Part (${kind.toString(2)}) at (${offset.toString(16)})`)); + } + } + else { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_gist(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + } + return { lands, rocks }; + } + static make({ lands, rocks }) { + let size = 0; + for (const land of Reflect.ownKeys(lands)) { + size += 24; + size += lands[land].faces.size * 12; + size += lands[land].units.length * $hyoo_crus_unit.size; + } + for (const [hash, rock] of rocks) { + size += rock ? Math.ceil(rock.length / 8 + .5) * 8 : 24; + } + if (size === 0) + return null; + const buff = new Uint8Array(size); + const pack = new $hyoo_crus_pack(buff.buffer); + let offset = 0; + for (const land of Reflect.ownKeys(lands)) { + const faces = lands[land].faces; + pack.uint32(offset, $hyoo_crus_part.land | (faces.total << 8)); + buff.set($hyoo_crus_ref_encode(land), offset + 4); + pack.uint16(offset + 22, faces.size); + offset += 24; + for (const [peer, time] of faces) { + buff.set($mol_base64_ae_decode(peer), offset); + pack.uint48(offset + 6, time); + offset += 12; + } + for (const unit of lands[land].units) { + buff.set(unit.asArray(), offset); + offset += unit.byteLength; + } + } + for (const [hash, rock] of rocks) { + const len = rock?.length ?? 0; + pack.uint32(offset, $hyoo_crus_part.rock | (len << 8)); + if (rock) + buff.set(rock, offset + 4); + else + buff.set(hash, offset + 4); + offset += rock ? Math.ceil(len / 8 + .5) * 8 : 24; + } + return pack; + } + } + $.$hyoo_crus_pack = $hyoo_crus_pack; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_mine extends $mol_object { + static hash(blob) { + return $mol_crypto_hash(blob); + } + static rock(hash, next) { + $mol_wire_solid(); + return next ?? null; + } + static save(blob) { + const hash = this.hash(blob); + this.rock(hash, blob); + return hash; + } + } + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine, "hash", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine, "rock", null); + __decorate([ + $mol_action + ], $hyoo_crus_mine, "save", null); + $.$hyoo_crus_mine = $hyoo_crus_mine; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_mine_node extends $hyoo_crus_mine { + static root() { + return $mol_file.relative('.crus'); + } + static rock_file(hash) { + const id = $mol_base64_ae_encode(hash); + return this.root().resolve(`rock/${id.slice(0, 2)}/${id}.blob`); + } + static rock(hash, next) { + $mol_wire_solid(); + const buf = this.rock_file(hash).buffer(next); + if (!next) + return buf; + if ($mol_compare_deep(hash, this.hash(buf))) + return buf; + return null; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_mine_node, "root", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine_node, "rock_file", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine_node, "rock", null); + $.$hyoo_crus_mine_node = $hyoo_crus_mine_node; + $.$hyoo_crus_mine = $hyoo_crus_mine_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_base { + static patterns = {}; + static formatter(pattern) { + if (this.patterns[pattern]) + return this.patterns[pattern]; + var tokens = Object.keys(this.patterns) + .sort() + .reverse() + .map((token) => token.replace(/([-+*.\[\]()\^])/g, '\\$1')); + var lexer = RegExp('(.*?)(' + tokens.join('|') + '|$)', 'g'); + var funcs = []; + pattern.replace(lexer, (str, text, token) => { + if (text) + funcs.push(() => text); + if (token) + funcs.push(this.patterns[token]); + return str; + }); + return this.patterns[pattern] = (arg) => { + return funcs.reduce((res, func) => res + func(arg), ''); + }; + } + toString(pattern) { + const Base = this.constructor; + const formatter = Base.formatter(pattern); + return formatter(this); + } + } + $.$mol_time_base = $mol_time_base; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_duration extends $mol_time_base { + constructor(config = 0) { + super(); + if (typeof config === 'number') { + if (!Number.isFinite(config)) + throw new RangeError(`Wrong ms count`); + this.second = config / 1000; + return; + } + if (typeof config === 'string') { + if (config === 'Z') { + this.hour = 0; + this.minute = 0; + return; + } + duration: { + const parser = /^P(?:([+-]?\d+(?:\.\d+)?)Y)?(?:([+-]?\d+(?:\.\d+)?)M)?(?:([+-]?\d+(?:\.\d+)?)D)?(?:T(?:([+-]?\d+(?:\.\d+)?)h)?(?:([+-]?\d+(?:\.\d+)?)m)?(?:([+-]?\d+(?:\.\d+)?)s)?)?$/i; + const found = parser.exec(config); + if (!found) + break duration; + if (found[1]) + this.year = Number(found[1]); + if (found[2]) + this.month = Number(found[2]); + if (found[3]) + this.day = Number(found[3]); + if (found[4]) + this.hour = Number(found[4]); + if (found[5]) + this.minute = Number(found[5]); + if (found[6]) + this.second = Number(found[6]); + return; + } + offset: { + var parser = /^[+-](\d\d)(?::?(\d\d))?$/i; + var found = parser.exec(config); + if (!found) + break offset; + if (found[1]) + this.hour = Number(found[1]); + if (found[2]) + this.minute = Number(found[2]); + return; + } + throw new Error(`Can not parse time duration (${config})`); + } + this.year = config.year || 0; + this.month = config.month || 0; + this.day = config.day || 0; + this.hour = config.hour || 0; + this.minute = config.minute || 0; + this.second = config.second || 0; + } + year = 0; + month = 0; + day = 0; + hour = 0; + minute = 0; + second = 0; + get normal() { + let second = this.second ?? 0; + let minute = this.minute ?? 0; + let hour = this.hour ?? 0; + let day = this.day ?? 0; + minute += Math.floor(second / 60); + second = second % 60; + hour += Math.floor(minute / 60); + minute = minute % 60; + day += Math.floor(hour / 24); + hour = hour % 24; + return new $mol_time_duration({ + year: this.year, + month: this.month, + day: day, + hour: hour, + minute: minute, + second: second, + }); + } + summ(config) { + const duration = new $mol_time_duration(config); + return new $mol_time_duration({ + year: this.year + duration.year, + month: this.month + duration.month, + day: this.day + duration.day, + hour: this.hour + duration.hour, + minute: this.minute + duration.minute, + second: this.second + duration.second, + }); + } + mult(numb) { + return new $mol_time_duration({ + year: this.year && this.year * numb, + month: this.month && this.month * numb, + day: this.day && this.day * numb, + hour: this.hour && this.hour * numb, + minute: this.minute && this.minute * numb, + second: this.second && this.second * numb, + }); + } + count(config) { + const duration = new $mol_time_duration(config); + return this.valueOf() / duration.valueOf(); + } + valueOf() { + var day = this.year * 365 + this.month * 30.4 + this.day; + var second = ((day * 24 + this.hour) * 60 + this.minute) * 60 + this.second; + return second * 1000; + } + toJSON() { return this.toString(); } + toString(pattern = 'P#Y#M#DT#h#m#s') { + return super.toString(pattern); + } + [Symbol.toPrimitive](mode) { + return mode === 'number' ? this.valueOf() : this.toString(); + } + static patterns = { + '#Y': (duration) => { + if (!duration.year) + return ''; + return duration.year + 'Y'; + }, + '#M': (duration) => { + if (!duration.month) + return ''; + return duration.month + 'M'; + }, + '#D': (duration) => { + if (!duration.day) + return ''; + return duration.day + 'D'; + }, + '#h': (duration) => { + if (!duration.hour) + return ''; + return duration.hour + 'H'; + }, + '#m': (duration) => { + if (!duration.minute) + return ''; + return duration.minute + 'M'; + }, + '#s': (duration) => { + if (!duration.second) + return ''; + return duration.second + 'S'; + }, + 'hh': (moment) => { + if (moment.hour == null) + return ''; + return String(100 + moment.hour).slice(1); + }, + 'h': (moment) => { + if (moment.hour == null) + return ''; + return String(moment.hour); + }, + ':mm': (moment) => { + if (moment.minute == null) + return ''; + return ':' + $mol_time_moment.patterns['mm'](moment); + }, + 'mm': (moment) => { + if (moment.minute == null) + return ''; + return String(100 + moment.minute).slice(1); + }, + 'm': (moment) => { + if (moment.minute == null) + return ''; + return String(moment.minute); + }, + ':ss': (moment) => { + if (moment.second == null) + return ''; + return ':' + $mol_time_moment.patterns['ss'](moment); + }, + 'ss': (moment) => { + if (moment.second == null) + return ''; + return String(100 + moment.second | 0).slice(1); + }, + 's': (moment) => { + if (moment.second == null) + return ''; + return String(moment.second | 0); + }, + '.sss': (moment) => { + if (moment.second == null) + return ''; + return '.' + $mol_time_moment.patterns['sss'](moment); + }, + 'sss': (moment) => { + if (moment.second == null) + return ''; + const millisecond = (moment.second - Math.trunc(moment.second)).toFixed(3); + return millisecond.slice(2); + }, + }; + } + $.$mol_time_duration = $mol_time_duration; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_time_moment_weekdays; + (function ($mol_time_moment_weekdays) { + $mol_time_moment_weekdays[$mol_time_moment_weekdays["monday"] = 0] = "monday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["tuesday"] = 1] = "tuesday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["wednesday"] = 2] = "wednesday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["thursday"] = 3] = "thursday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["friday"] = 4] = "friday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["saturday"] = 5] = "saturday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["sunday"] = 6] = "sunday"; + })($mol_time_moment_weekdays = $.$mol_time_moment_weekdays || ($.$mol_time_moment_weekdays = {})); + function numb(str, max) { + const numb = Number(str); + if (numb < max) + return numb; + $mol_fail(new Error(`Wrong time component ${str}`)); + } + class $mol_time_moment extends $mol_time_base { + constructor(config = new Date) { + super(); + if (typeof config === 'number') { + config = new Date(config); + if (Number.isNaN(config.valueOf())) + throw new RangeError(`Wrong ms count`); + } + if (typeof config === 'string') { + const parsed = /^(?:(\d\d?\d?\d?)(?:-?(\d\d?)(?:-?(\d\d?))?)?)?(?:[T ](?:(\d\d?)(?::?(\d\d?)(?::?(\d\d?(?:\.\d+)?))?)?)?(Z|[\+\-]\d\d?(?::?(?:\d\d?)?)?)?)?$/.exec(config); + if (!parsed) + throw new Error(`Can not parse time moment (${config})`); + if (parsed[1]) + this.year = numb(parsed[1], 9999); + if (parsed[2]) + this.month = numb(parsed[2], 13) - 1; + if (parsed[3]) + this.day = numb(parsed[3], 32) - 1; + if (parsed[4]) + this.hour = numb(parsed[4], 60); + if (parsed[5]) + this.minute = numb(parsed[5], 60); + if (parsed[6]) + this.second = numb(parsed[6], 60); + if (parsed[7]) + this.offset = new $mol_time_duration(parsed[7]); + return; + } + if (config instanceof Date) { + this.year = config.getFullYear(); + this.month = config.getMonth(); + this.day = config.getDate() - 1; + this.hour = config.getHours(); + this.minute = config.getMinutes(); + this.second = config.getSeconds() + config.getMilliseconds() / 1000; + const offset = -config.getTimezoneOffset(); + this.offset = new $mol_time_duration({ + hour: (offset < 0) ? Math.ceil(offset / 60) : Math.floor(offset / 60), + minute: offset % 60 + }); + return; + } + this.year = config.year; + this.month = config.month; + this.day = config.day; + this.hour = config.hour; + this.minute = config.minute; + this.second = config.second; + this.offset = config.offset == null ? config.offset : new $mol_time_duration(config.offset); + } + year; + month; + day; + hour; + minute; + second; + offset; + get weekday() { + return (this.native.getDay() + 6) % 7; + } + _native; + get native() { + if (this._native) + return this._native; + const utc = this.toOffset('Z'); + return this._native = new Date(Date.UTC(utc.year ?? 0, utc.month ?? 0, (utc.day ?? 0) + 1, utc.hour ?? 0, utc.minute ?? 0, utc.second != undefined ? Math.floor(utc.second) : 0, utc.second != undefined ? Math.floor((utc.second - Math.floor(utc.second)) * 1000) : 0)); + } + _normal; + get normal() { + if (this._normal) + return this._normal; + const moment = new $mol_time_moment(this.native); + return this._normal = new $mol_time_moment({ + year: this.year === undefined ? undefined : moment.year, + month: this.month === undefined ? undefined : moment.month, + day: this.day === undefined ? undefined : moment.day, + hour: this.hour === undefined ? undefined : moment.hour, + minute: this.minute === undefined ? undefined : moment.minute, + second: this.second === undefined ? undefined : moment.second, + offset: this.offset === undefined ? undefined : moment.offset, + }); + } + merge(config) { + const moment = new $mol_time_moment(config); + return new $mol_time_moment({ + year: moment.year === undefined ? this.year : moment.year, + month: moment.month === undefined ? this.month : moment.month, + day: moment.day === undefined ? this.day : moment.day, + hour: moment.hour === undefined ? this.hour : moment.hour, + minute: moment.minute === undefined ? this.minute : moment.minute, + second: moment.second === undefined ? this.second : moment.second, + offset: moment.offset === undefined ? this.offset : moment.offset, + }); + } + shift(config) { + const duration = new $mol_time_duration(config); + const moment = new $mol_time_moment().merge({ + year: this.year, + month: this.month, + day: this.day, + hour: this.hour ?? 0, + minute: this.minute ?? 0, + second: this.second ?? 0, + offset: this.offset ?? 0 + }); + const second = moment.second + (duration.second ?? 0); + const native = new Date(moment.year + (duration.year ?? 0), moment.month + (duration.month ?? 0), moment.day + 1 + (duration.day ?? 0), moment.hour + (duration.hour ?? 0), moment.minute + (duration.minute ?? 0), Math.floor(second), (second - Math.floor(second)) * 1000); + if (isNaN(native.valueOf())) + throw new Error('Wrong time'); + return new $mol_time_moment({ + year: this.year === undefined ? undefined : native.getFullYear(), + month: this.month === undefined ? undefined : native.getMonth(), + day: this.day === undefined ? undefined : native.getDate() - 1, + hour: this.hour === undefined ? undefined : native.getHours(), + minute: this.minute === undefined ? undefined : native.getMinutes(), + second: this.second === undefined ? undefined : native.getSeconds() + native.getMilliseconds() / 1000, + offset: this.offset, + }); + } + mask(config) { + const mask = new $mol_time_moment(config); + return new $mol_time_moment({ + year: mask.year === undefined ? undefined : this.year, + month: mask.month === undefined ? undefined : this.month, + day: mask.day === undefined ? undefined : this.day, + hour: mask.hour === undefined ? undefined : this.hour, + minute: mask.minute === undefined ? undefined : this.minute, + second: mask.second === undefined ? undefined : this.second, + offset: mask.offset === undefined ? undefined : this.offset, + }); + } + toOffset(config = new $mol_time_moment().offset) { + const duration = new $mol_time_duration(config); + const offset = this.offset || new $mol_time_moment().offset; + let with_time = new $mol_time_moment('T00:00:00').merge(this); + const moment = with_time.shift(duration.summ(offset.mult(-1))); + return moment.merge({ offset: duration }); + } + valueOf() { return this.native.getTime(); } + toJSON() { return this.toString(); } + toString(pattern = 'YYYY-MM-DDThh:mm:ss.sssZ') { + return super.toString(pattern); + } + [Symbol.toPrimitive](mode) { + return mode === 'number' ? this.valueOf() : this.toString(); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', $mol_dev_format_accent(this.toString('YYYY-MM-DD hh:mm:ss.sss Z'))); + } + static patterns = { + 'YYYY': (moment) => { + if (moment.year == null) + return ''; + return String(moment.year); + }, + 'AD': (moment) => { + if (moment.year == null) + return ''; + return String(Math.floor(moment.year / 100) + 1); + }, + 'YY': (moment) => { + if (moment.year == null) + return ''; + return String(moment.year % 100); + }, + 'Month': (pattern => (moment) => { + if (moment.month == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { month: 'long' })), + 'DD Month': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['DD'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Month'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: '2-digit', month: 'long' })), + 'D Month': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['D'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Month'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: 'numeric', month: 'long' })), + 'Mon': (pattern => (moment) => { + if (moment.month == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { month: 'short' })), + 'DD Mon': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['DD'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Mon'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: '2-digit', month: 'short' })), + 'D Mon': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['D'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Mon'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: 'numeric', month: 'short' })), + '-MM': (moment) => { + if (moment.month == null) + return ''; + return '-' + $mol_time_moment.patterns['MM'](moment); + }, + 'MM': (moment) => { + if (moment.month == null) + return ''; + return String(100 + moment.month + 1).slice(1); + }, + 'M': (moment) => { + if (moment.month == null) + return ''; + return String(moment.month + 1); + }, + 'WeekDay': (pattern => (moment) => { + if (moment.day == null) + return ''; + if (moment.month == null) + return ''; + if (moment.year == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { weekday: 'long' })), + 'WD': (pattern => (moment) => { + if (moment.day == null) + return ''; + if (moment.month == null) + return ''; + if (moment.year == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { weekday: 'short' })), + '-DD': (moment) => { + if (moment.day == null) + return ''; + return '-' + $mol_time_moment.patterns['DD'](moment); + }, + 'DD': (moment) => { + if (moment.day == null) + return ''; + return String(100 + moment.day + 1).slice(1); + }, + 'D': (moment) => { + if (moment.day == null) + return ''; + return String(moment.day + 1); + }, + 'Thh': (moment) => { + if (moment.hour == null) + return ''; + return 'T' + $mol_time_moment.patterns['hh'](moment); + }, + 'hh': (moment) => { + if (moment.hour == null) + return ''; + return String(100 + moment.hour).slice(1); + }, + 'h': (moment) => { + if (moment.hour == null) + return ''; + return String(moment.hour); + }, + ':mm': (moment) => { + if (moment.minute == null) + return ''; + return ':' + $mol_time_moment.patterns['mm'](moment); + }, + 'mm': (moment) => { + if (moment.minute == null) + return ''; + return String(100 + moment.minute).slice(1); + }, + 'm': (moment) => { + if (moment.minute == null) + return ''; + return String(moment.minute); + }, + ':ss': (moment) => { + if (moment.second == null) + return ''; + return ':' + $mol_time_moment.patterns['ss'](moment); + }, + 'ss': (moment) => { + if (moment.second == null) + return ''; + return String(100 + moment.second | 0).slice(1); + }, + 's': (moment) => { + if (moment.second == null) + return ''; + return String(moment.second | 0); + }, + '.sss': (moment) => { + if (moment.second == null) + return ''; + if (moment.second === (moment.second | 0)) + return ''; + return '.' + $mol_time_moment.patterns['sss'](moment); + }, + 'sss': (moment) => { + if (moment.second == null) + return ''; + const millisecond = (moment.second - Math.trunc(moment.second)).toFixed(3); + return millisecond.slice(2); + }, + 'Z': (moment) => { + const offset = moment.offset; + if (!offset) + return ''; + let hour = offset.hour; + let sign = '+'; + if (hour < 0) { + sign = '-'; + hour = -hour; + } + return sign + String(100 + hour).slice(1) + ':' + String(100 + offset.minute).slice(1); + } + }; + } + $.$mol_time_moment = $mol_time_moment; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_interval extends $mol_time_base { + constructor(config) { + super(); + if (typeof config === 'string') { + var chunks = config.split('/'); + if (chunks[0]) { + if (chunks[0][0].toUpperCase() === 'P') { + this._duration = new $mol_time_duration(chunks[0]); + } + else { + this._start = new $mol_time_moment(chunks[0]); + } + } + else { + this._start = new $mol_time_moment(); + } + if (chunks[1]) { + if (chunks[1][0].toUpperCase() === 'P') { + this._duration = new $mol_time_duration(chunks[1]); + } + else { + this._end = new $mol_time_moment(chunks[1]); + } + } + else { + this._end = new $mol_time_moment(); + } + return; + } + if (config.start !== undefined) + this._start = new $mol_time_moment(config.start); + if (config.end !== undefined) + this._end = new $mol_time_moment(config.end); + if (config.duration !== undefined) + this._duration = new $mol_time_duration(config.duration); + } + _start; + get start() { + if (this._start) + return this._start; + return this._start = this._end.shift(this._duration.mult(-1)); + } + _end; + get end() { + if (this._end) + return this._end; + return this._end = this._start.shift(this._duration); + } + _duration; + get duration() { + if (this._duration) + return this._duration; + return this._duration = new $mol_time_duration(this._end.valueOf() - this._start.valueOf()); + } + toJSON() { return this.toString(); } + toString() { + return (this._start || this._duration || '').toString() + '/' + (this._end || this._duration || '').toString(); + } + [Symbol.toPrimitive](mode) { + return this.toString(); + } + } + $.$mol_time_interval = $mol_time_interval; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_serialize(node) { + const serializer = new $mol_dom_context.XMLSerializer; + return serializer.serializeToString(node); + } + $.$mol_dom_serialize = $mol_dom_serialize; +})($ || ($ = {})); + +; +"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'); + if (error.length) + throw new Error(error[0].textContent); + return doc; + } + $.$mol_dom_parse = $mol_dom_parse; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$hyoo_crus_vary_mapping = { + nil: null, + bin: Uint8Array, + bool: Boolean, + int: BigInt, + real: Number, + ref: Symbol, + str: String, + time: $mol_time_moment, + dur: $mol_time_duration, + range: $mol_time_interval, + json: Object, + jsan: Array, + dom: $mol_dom_context.Element, + tree: $mol_tree2, + }; + let $hyoo_crus_vary_tip; + (function ($hyoo_crus_vary_tip) { + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["nil"] = 0] = "nil"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["bin"] = 1] = "bin"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["bool"] = 2] = "bool"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["int"] = 3] = "int"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["real"] = 4] = "real"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["ref"] = 5] = "ref"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["str"] = 16] = "str"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["time"] = 17] = "time"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["dur"] = 18] = "dur"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["range"] = 19] = "range"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["json"] = 20] = "json"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["jsan"] = 21] = "jsan"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["dom"] = 22] = "dom"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["tree"] = 23] = "tree"; + })($hyoo_crus_vary_tip = $.$hyoo_crus_vary_tip || ($.$hyoo_crus_vary_tip = {})); + function $hyoo_crus_vary_switch(vary, ways) { + if (vary === null) + return ways.nil(vary); + switch (typeof vary) { + case "boolean": return ways.bool(vary); + case "bigint": return ways.int(vary); + case "number": return ways.real(vary); + case "string": return ways.str(vary); + case 'symbol': return ways.ref(vary); + } + switch (Reflect.getPrototypeOf(vary)) { + case Object.prototype: return ways.json(vary); + case Array.prototype: return ways.jsan(vary); + case Uint8Array.prototype: return ways.bin(vary); + case $mol_time_moment.prototype: return ways.time(vary); + case $mol_time_duration.prototype: return ways.dur(vary); + case $mol_time_interval.prototype: return ways.range(vary); + case $mol_tree2.prototype: return ways.tree(vary); + } + if (vary instanceof $mol_dom_context.Element) + return ways.dom(vary); + return $mol_fail(new TypeError(`Unsupported vary type`)); + } + $.$hyoo_crus_vary_switch = $hyoo_crus_vary_switch; + function $hyoo_crus_vary_encode(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => ({ tip: 'nil', bin: new Uint8Array([]) }), + bin: vary => ({ tip: 'bin', bin: vary }), + bool: vary => ({ tip: 'bool', bin: new Uint8Array([Number(vary)]) }), + int: vary => ({ tip: 'int', bin: new Uint8Array(new BigInt64Array([vary]).buffer) }), + real: vary => ({ tip: 'real', bin: new Uint8Array(new Float64Array([vary]).buffer) }), + ref: vary => ({ tip: 'ref', bin: $hyoo_crus_ref_encode(vary) }), + str: vary => ({ tip: 'str', bin: $mol_charset_encode(vary) }), + time: vary => ({ tip: 'time', bin: $mol_charset_encode(String(vary)) }), + dur: vary => ({ tip: 'dur', bin: $mol_charset_encode(String(vary)) }), + range: vary => ({ tip: 'range', bin: $mol_charset_encode(String(vary)) }), + json: vary => ({ tip: 'json', bin: $mol_charset_encode(JSON.stringify(vary)) }), + jsan: vary => ({ tip: 'jsan', bin: $mol_charset_encode(JSON.stringify(vary)) }), + dom: vary => ({ tip: 'dom', bin: $mol_charset_encode($mol_dom_serialize(vary)) }), + tree: vary => ({ tip: 'tree', bin: $mol_charset_encode(String(vary)) }), + }); + } + $.$hyoo_crus_vary_encode = $hyoo_crus_vary_encode; + function $hyoo_crus_vary_decode({ tip, bin }) { + switch (tip) { + case 'nil': return null; + case 'bin': return bin; + case 'bool': return Boolean(bin[0]); + case 'int': return new BigInt64Array(bin.buffer, bin.byteOffset, bin.byteLength / 8)[0]; + case 'real': return new Float64Array(bin.buffer, bin.byteOffset, bin.byteLength / 8)[0]; + case 'ref': return $hyoo_crus_ref_decode(bin); + case 'str': return $mol_charset_decode(bin); + case 'time': return new $mol_time_moment($mol_charset_decode(bin)); + case 'dur': return new $mol_time_duration($mol_charset_decode(bin)); + case 'range': return new $mol_time_interval($mol_charset_decode(bin)); + case 'json': return JSON.parse($mol_charset_decode(bin)); + case 'jsan': return JSON.parse($mol_charset_decode(bin)); + case 'dom': return $mol_dom_parse($mol_charset_decode(bin)).documentElement; + case 'tree': return $$.$mol_tree2_from_string($mol_charset_decode(bin)); + } + } + $.$hyoo_crus_vary_decode = $hyoo_crus_vary_decode; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_jsx_prefix = ''; + $.$mol_jsx_crumbs = ''; + $.$mol_jsx_booked = null; + $.$mol_jsx_document = { + getElementById: () => null, + createElementNS: (space, name) => $mol_dom_context.document.createElementNS(space, name), + createDocumentFragment: () => $mol_dom_context.document.createDocumentFragment(), + }; + $.$mol_jsx_frag = ''; + function $mol_jsx(Elem, props, ...childNodes) { + const id = props && props.id || ''; + const guid = id ? $.$mol_jsx_prefix ? $.$mol_jsx_prefix + '/' + id : id : $.$mol_jsx_prefix; + const crumbs_self = id ? $.$mol_jsx_crumbs.replace(/(\S+)/g, `$1_${id.replace(/\/.*/i, '')}`) : $.$mol_jsx_crumbs; + if (Elem && $.$mol_jsx_booked) { + if ($.$mol_jsx_booked.has(id)) { + $mol_fail(new Error(`JSX already has tag with id ${JSON.stringify(guid)}`)); + } + else { + $.$mol_jsx_booked.add(id); + } + } + let node = guid ? $.$mol_jsx_document.getElementById(guid) : null; + if ($.$mol_jsx_prefix) { + const prefix_ext = $.$mol_jsx_prefix; + const booked_ext = $.$mol_jsx_booked; + const crumbs_ext = $.$mol_jsx_crumbs; + for (const field in props) { + const func = props[field]; + if (typeof func !== 'function') + continue; + const wrapper = function (...args) { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + const crumbs = $.$mol_jsx_crumbs; + try { + $.$mol_jsx_prefix = prefix_ext; + $.$mol_jsx_booked = booked_ext; + $.$mol_jsx_crumbs = crumbs_ext; + return func.call(this, ...args); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + $.$mol_jsx_crumbs = crumbs; + } + }; + $mol_func_name_from(wrapper, func); + props[field] = wrapper; + } + } + if (typeof Elem !== 'string') { + if ('prototype' in Elem) { + const view = node && node[String(Elem)] || new Elem; + Object.assign(view, props); + view[Symbol.toStringTag] = guid; + view.childNodes = childNodes; + if (!view.ownerDocument) + view.ownerDocument = $.$mol_jsx_document; + view.className = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem); + node = view.valueOf(); + node[String(Elem)] = view; + return node; + } + else { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + const crumbs = $.$mol_jsx_crumbs; + try { + $.$mol_jsx_prefix = guid; + $.$mol_jsx_booked = new Set; + $.$mol_jsx_crumbs = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem); + return Elem(props, ...childNodes); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + $.$mol_jsx_crumbs = crumbs; + } + } + } + if (!node) { + node = Elem + ? $.$mol_jsx_document.createElementNS(props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem) + : $.$mol_jsx_document.createDocumentFragment(); + } + $mol_dom_render_children(node, [].concat(...childNodes)); + if (!Elem) + return node; + if (guid) + node.id = guid; + for (const key in props) { + if (key === 'id') + continue; + if (typeof props[key] === 'string') { + if (typeof node[key] === 'string') + node[key] = props[key]; + node.setAttribute(key, props[key]); + } + else if (props[key] && + typeof props[key] === 'object' && + Reflect.getPrototypeOf(props[key]) === Reflect.getPrototypeOf({})) { + if (typeof node[key] === 'object') { + Object.assign(node[key], props[key]); + continue; + } + } + else { + node[key] = props[key]; + } + } + if ($.$mol_jsx_crumbs) + node.className = (props?.['class'] ? props['class'] + ' ' : '') + crumbs_self; + return node; + } + $.$mol_jsx = $mol_jsx; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_bin_to_bytes(tree) { + return Uint8Array.from(tree.kids, kid => parseInt(kid.value, 16)); + } + $.$mol_tree2_bin_to_bytes = $mol_tree2_bin_to_bytes; + function $mol_tree2_bin_from_bytes(bytes, span = $mol_span.unknown) { + return $mol_tree2.list(Array.from(bytes, code => { + return $mol_tree2.data(code.toString(16).padStart(2, '0'), [], span); + }), span); + } + $.$mol_tree2_bin_from_bytes = $mol_tree2_bin_from_bytes; + function $mol_tree2_bin_from_string(str, span = $mol_span.unknown) { + return $mol_tree2_bin_from_bytes([...new TextEncoder().encode(str)], span); + } + $.$mol_tree2_bin_from_string = $mol_tree2_bin_from_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_xml_from_dom(dom) { + switch (dom.nodeType) { + case dom.DOCUMENT_NODE: { + let kids = []; + for (const kid of dom.childNodes) { + kids.push($mol_tree2_xml_from_dom(kid)); + } + return $mol_tree2.list(kids); + } + case dom.PROCESSING_INSTRUCTION_NODE: { + return $mol_tree2.struct('?', [ + $mol_tree2.struct(dom.nodeName, dom.nodeValue.split(' ').map(chunk => { + const [, name, value] = /^(.*?)(?:="(.*?)")?$/.exec(chunk); + const kids = value ? [$mol_tree2.data(value)] : []; + return $mol_tree2.struct(name, kids); + })) + ]); + } + case dom.DOCUMENT_TYPE_NODE: { + const dom2 = dom; + return $mol_tree2.struct('!', [ + $mol_tree2.struct('DOCTYPE', [ + $mol_tree2.struct(dom2.name) + ]) + ]); + } + case dom.ELEMENT_NODE: { + let kids = []; + for (const attr of dom.attributes) { + kids.push($mol_tree2.struct('@', [ + $mol_tree2.struct(attr.nodeName, [ + $mol_tree2.data(attr.nodeValue) + ]) + ])); + } + for (const kid of dom.childNodes) { + const k = $mol_tree2_xml_from_dom(kid); + if (k.type || k.value) + kids.push(k); + } + return $mol_tree2.struct(dom.nodeName, kids); + } + case dom.COMMENT_NODE: { + return $mol_tree2.struct('--', [ + $mol_tree2.data(dom.nodeValue) + ]); + } + case dom.TEXT_NODE: { + if (!dom.nodeValue.trim()) + return $mol_tree2.list([]); + return $mol_tree2.data(dom.nodeValue.replace(/\s+/g, ' ')); + } + } + return $mol_fail(new Error(`Unsupported node ${dom.nodeName}`)); + } + $.$mol_tree2_xml_from_dom = $mol_tree2_xml_from_dom; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $hyoo_crus_vary_cast_bin(vary) { + return vary === null || vary === '' ? null : $hyoo_crus_vary_encode(vary).bin; + } + $.$hyoo_crus_vary_cast_bin = $hyoo_crus_vary_cast_bin; + function $hyoo_crus_vary_cast_bool(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => Boolean(vary.length), + bool: vary => vary, + int: vary => Boolean(vary), + real: vary => Boolean(vary), + ref: vary => Boolean(vary.description), + str: vary => Boolean(vary), + time: vary => Boolean(vary.valueOf()), + dur: vary => Boolean(vary.valueOf()), + range: vary => Boolean(vary.duration.valueOf()), + json: vary => Boolean(Reflect.ownKeys(vary).length), + jsan: vary => Boolean(vary.length), + dom: vary => Boolean(vary.attributes.length + vary.childNodes.length), + tree: vary => Boolean(vary.value || vary.kids.length), + }); + } + $.$hyoo_crus_vary_cast_bool = $hyoo_crus_vary_cast_bool; + function $hyoo_crus_vary_cast_int(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => BigInt(vary.length), + bool: vary => BigInt(vary), + int: vary => vary, + real: vary => Number.isFinite(vary) ? BigInt(Math.trunc(vary)) : null, + ref: vary => null, + str: vary => { + try { + return vary ? BigInt(vary) : null; + } + catch { + return null; + } + }, + time: vary => BigInt(vary.valueOf()), + dur: vary => BigInt(vary.valueOf()), + range: vary => BigInt(vary.duration.valueOf()), + json: vary => BigInt(Reflect.ownKeys(vary).length), + jsan: vary => BigInt(vary.length), + dom: vary => BigInt(vary.attributes.length + vary.childNodes.length), + tree: vary => { + try { + return BigInt(vary.value); + } + catch { + return BigInt(vary.kids.length); + } + }, + }); + } + $.$hyoo_crus_vary_cast_int = $hyoo_crus_vary_cast_int; + function $hyoo_crus_vary_cast_real(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => vary.length, + bool: vary => Number(vary), + int: vary => Number(vary), + real: vary => vary, + ref: vary => null, + str: vary => vary ? Number(vary) : null, + time: vary => vary.valueOf(), + dur: vary => vary.valueOf(), + range: vary => vary.duration.valueOf(), + json: vary => Reflect.ownKeys(vary).length, + jsan: vary => vary.length, + dom: vary => Number(vary.attributes.length + vary.childNodes.length), + tree: vary => Number(vary.value || vary.kids.length), + }); + } + $.$hyoo_crus_vary_cast_real = $hyoo_crus_vary_cast_real; + function $hyoo_crus_vary_cast_ref(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => (!vary.length || vary.length % 6) ? null : $hyoo_crus_ref_decode(vary), + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => vary, + str: vary => { + try { + return $hyoo_crus_ref(vary); + } + catch { + return null; + } + }, + time: vary => null, + dur: vary => null, + range: vary => null, + json: vary => null, + jsan: vary => null, + dom: vary => null, + tree: vary => { + try { + return $hyoo_crus_ref(vary.type); + } + catch { + return null; + } + }, + }); + } + $.$hyoo_crus_vary_cast_ref = $hyoo_crus_vary_cast_ref; + function $hyoo_crus_vary_cast_str(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => [...vary].map(n => n.toString(16).padStart(2, '0')).join(''), + bool: vary => String(vary), + int: vary => String(vary), + real: vary => String(vary), + ref: vary => vary.description, + str: vary => vary, + time: vary => String(vary), + dur: vary => String(vary), + range: vary => String(vary), + json: vary => JSON.stringify(vary), + jsan: vary => JSON.stringify(vary), + dom: vary => $mol_dom_serialize(vary), + tree: vary => String(vary), + }); + } + $.$hyoo_crus_vary_cast_str = $hyoo_crus_vary_cast_str; + function $hyoo_crus_vary_cast_time(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => new $mol_time_moment(Number(vary & 0xffffffffffffn)), + real: vary => { + try { + return new $mol_time_moment(vary); + } + catch { + return null; + } + }, + ref: vary => null, + str: vary => { + try { + return vary ? new $mol_time_moment(vary) : null; + } + catch { + return null; + } + }, + time: vary => vary, + dur: vary => null, + range: vary => null, + json: vary => { + try { + return new $mol_time_moment(vary); + } + catch { + return null; + } + }, + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_time = $hyoo_crus_vary_cast_time; + function $hyoo_crus_vary_cast_dur(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => new $mol_time_duration(Number(vary & 0xffffffffffffn)), + real: vary => { + try { + return new $mol_time_duration(vary); + } + catch { + return null; + } + }, + ref: vary => null, + str: vary => { + try { + return new $mol_time_duration(vary); + } + catch { + return null; + } + }, + time: vary => vary, + dur: vary => null, + range: vary => null, + json: vary => new $mol_time_duration(vary), + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_dur = $hyoo_crus_vary_cast_dur; + function $hyoo_crus_vary_cast_range(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => null, + str: vary => { + try { + return vary ? new $mol_time_interval(vary) : null; + } + catch { + return null; + } + }, + time: vary => new $mol_time_interval({ start: vary, duration: 0 }), + dur: vary => null, + range: vary => vary, + json: vary => { + try { + return new $mol_time_interval(vary); + } + catch { + return null; + } + }, + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_range = $hyoo_crus_vary_cast_range; + function $hyoo_crus_vary_cast_json(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => null, + str: vary => { + if (!vary) + return null; + try { + const res = JSON.parse(vary); + if (typeof res === 'object') + return res; + return null; + } + catch { + return null; + } + }, + time: vary => ({ ...vary }), + dur: vary => ({ ...vary }), + range: vary => ({ ...vary }), + json: vary => vary, + jsan: vary => Object(vary[0]), + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_json = $hyoo_crus_vary_cast_json; + function $hyoo_crus_vary_cast_jsan(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => [...vary], + bool: vary => [vary], + int: vary => [vary.toString()], + real: vary => Number.isFinite(vary) ? [vary] : null, + ref: vary => [vary.description], + str: vary => { + if (!vary) + return null; + try { + return [].concat(JSON.parse(vary)); + } + catch { + return [vary]; + } + }, + time: vary => [vary.toJSON()], + dur: vary => [vary.toJSON()], + range: vary => [vary.toJSON()], + json: vary => [vary], + jsan: vary => vary, + dom: vary => [$mol_dom_serialize(vary)], + tree: vary => [vary.toString()], + }); + } + $.$hyoo_crus_vary_cast_jsan = $hyoo_crus_vary_cast_jsan; + function $hyoo_crus_vary_cast_dom(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => $mol_jsx("body", null, vary && $mol_base64_ae_encode(vary)), + bool: vary => $mol_jsx("body", null, vary), + int: vary => $mol_jsx("body", null, vary), + real: vary => $mol_jsx("body", null, vary), + ref: vary => $mol_jsx("body", null, vary.description), + str: vary => { + if (!vary) + return null; + try { + return vary ? $mol_dom_parse(vary, 'application/xhtml+xml').documentElement : null; + } + catch { + return $mol_jsx("body", null, vary); + } + }, + time: vary => $mol_jsx("body", null, vary), + dur: vary => $mol_jsx("body", null, vary), + range: vary => $mol_jsx("body", null, vary), + json: vary => $mol_jsx("body", null, JSON.stringify(vary)), + jsan: vary => $mol_jsx("body", null, JSON.stringify(vary)), + dom: vary => vary, + tree: vary => $mol_jsx("body", null, vary), + }); + } + $.$hyoo_crus_vary_cast_dom = $hyoo_crus_vary_cast_dom; + function $hyoo_crus_vary_cast_tree(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => $mol_tree2_bin_from_bytes(vary), + bool: vary => $mol_tree2.struct(vary.toString()), + int: vary => $mol_tree2.struct(vary.toString()), + real: vary => $mol_tree2.struct(vary.toString()), + ref: vary => $mol_tree2.struct(vary.description), + str: vary => { + if (!vary) + return null; + try { + return $$.$mol_tree2_from_string(vary); + } + catch { + return $$.$mol_tree2.data(vary); + } + }, + time: vary => $mol_tree2.struct(vary.toString()), + dur: vary => $mol_tree2.struct(vary.toString()), + range: vary => $mol_tree2.struct(vary.toString()), + json: vary => $$.$mol_tree2_from_json(vary), + jsan: vary => $$.$mol_tree2_from_json(vary), + dom: vary => $$.$mol_tree2_xml_from_dom(vary), + tree: vary => vary, + }); + } + $.$hyoo_crus_vary_cast_tree = $hyoo_crus_vary_cast_tree; + $.$hyoo_crus_vary_cast_funcs = { + nil: () => null, + bin: $hyoo_crus_vary_cast_bin, + bool: $hyoo_crus_vary_cast_bool, + int: $hyoo_crus_vary_cast_int, + real: $hyoo_crus_vary_cast_real, + ref: $hyoo_crus_vary_cast_ref, + str: $hyoo_crus_vary_cast_str, + time: $hyoo_crus_vary_cast_time, + dur: $hyoo_crus_vary_cast_dur, + range: $hyoo_crus_vary_cast_range, + json: $hyoo_crus_vary_cast_json, + jsan: $hyoo_crus_vary_cast_jsan, + dom: $hyoo_crus_vary_cast_dom, + tree: $hyoo_crus_vary_cast_tree, + }; + function $hyoo_crus_vary_cast(tip, vary) { + return $.$hyoo_crus_vary_cast_funcs[tip](vary); + } + $.$hyoo_crus_vary_cast = $hyoo_crus_vary_cast; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_guard_defined(value) { + return value !== null && value !== undefined; + } + $.$mol_guard_defined = $mol_guard_defined; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_bus extends $mol_object { + name; + handle; + channel; + constructor(name, handle) { + super(); + this.name = name; + this.handle = handle; + const channel = new BroadcastChannel(name); + channel.onmessage = (event) => this.handle(event.data); + this.channel = channel; + } + destructor() { + this.channel.close(); + } + send(data) { + this.channel.postMessage(data); + } + } + $.$mol_bus = $mol_bus; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_promise() { + let done; + let fail; + const promise = new Promise((d, f) => { + done = d; + fail = f; + }); + return Object.assign(promise, { + done, + fail, + }); + } + $.$mol_promise = $mol_promise; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wait_timeout_async(timeout) { + const promise = $mol_promise(); + const task = new this.$mol_after_timeout(timeout, () => promise.done()); + return Object.assign(promise, { + destructor: () => task.destructor() + }); + } + $.$mol_wait_timeout_async = $mol_wait_timeout_async; + function $mol_wait_timeout(timeout) { + return this.$mol_wire_sync(this).$mol_wait_timeout_async(timeout); + } + $.$mol_wait_timeout = $mol_wait_timeout; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_race(...tasks) { + const results = tasks.map(task => { + try { + return task(); + } + catch (error) { + return error; + } + }); + const promises = results.filter(res => $mol_promise_like(res)); + if (promises.length) + $mol_fail(Promise.race(promises)); + const error = results.find(res => res instanceof Error); + if (error) + $mol_fail(error); + return results; + } + $.$mol_wire_race = $mol_wire_race; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_land extends $mol_object { + realm() { + return null; + } + ref() { + return this.auth().lord(); + } + auth() { + return this.$.$hyoo_crus_auth.current(); + } + faces = new $hyoo_crus_face_map; + passes = new $mol_wire_dict(); + gifts = new $mol_wire_dict(); + gists = new $mol_wire_dict(); + self_all = new $mol_wire_set(); + self_make(area, idea = Math.floor(Math.random() * 2 ** 48)) { + const auth = this.auth(); + const rank = this.lord_rank(auth.lord()); + if (rank === $hyoo_crus_rank.add) + return $hyoo_crus_area_to(auth.peer(), 'data'); + if (rank === $hyoo_crus_rank.nil) + $mol_fail(new Error('Rank too low (nil)')); + for (let i = 0; i < 4096; ++i) { + idea = (idea + 1) % 2 ** 48; + if (!idea) + continue; + if ($hyoo_crus_area[idea % 2] !== area) + continue; + const idea_str = $mol_base64_ae_encode(new Uint8Array(new BigUint64Array([BigInt(idea)]).buffer, 0, 6)); + if (this.self_all.has(idea_str)) + continue; + this.self_all.add(idea_str); + return idea_str; + } + $mol_fail(new Error(`Too long self generation`)); + } + home() { + return this.Data($hyoo_crus_home); + } + Data(Node) { + return this.Node(Node).Item(''); + } + Meta() { + return this.Node($hyoo_crus_meta).Item('AQAAAAAA'); + } + Node(Node) { + return new $hyoo_crus_fund((head) => { + if (head === 'AAAAAAAA') + return this.Node(Node).Item(''); + return Node.make({ + land: () => this.sync(), + head: $mol_const(head), + }); + }); + } + total() { + let total = this.passes.size + this.gifts.size; + for (const units of this.gists.values()) + total += units.size; + return total; + } + joined_list() { + return [...this.passes.values()].map(unit => unit.lord()); + } + key() { + const pass = this.passes.get($hyoo_crus_ref_peer(this.ref())); + if (!pass) + return null; + return $hyoo_crus_auth.from(pass.auth()); + } + lord_rank(lord, next) { + if (lord === this.ref()) + return $hyoo_crus_rank.law; + const prev = this.gifts.get(lord)?.rank() + ?? this.gifts.get($hyoo_crus_ref(''))?.rank() + ?? $hyoo_crus_rank.get; + if (next === undefined) + return prev; + if (next === prev) + return prev; + const key = this.passes.get($hyoo_crus_ref_peer(lord))?.auth(); + if (!key) + $mol_fail(new Error(`No pub key for lord (${lord.description})`)); + this.give($hyoo_crus_auth.from(key), next); + return next; + } + peer_rank(peer) { + const auth = this.passes.get(peer); + if (!auth) + return $hyoo_crus_rank.get; + return this.lord_rank(auth.lord()); + } + delta_unit(face = new $hyoo_crus_face_map) { + this.loading(); + const delta = []; + const passed = new Set(); + const auth = (peer) => { + if (passed.has(peer)) + return; + if (face.get(peer)) + return; + const pass = this.passes.get(peer); + if (!pass) + $mol_fail(new Error(`No pass for Peer (${peer})`)); + delta.push(pass); + passed.add(peer); + }; + for (const [lord, unit] of this.gifts) { + const time = face.get(unit.peer()) ?? 0; + if (time >= unit.time()) + continue; + auth(unit.peer()); + delta.push(unit); + } + for (const kids of this.gists.values()) { + for (const unit of kids.values()) { + const time = face.get(unit.peer()) ?? 0; + if (time >= unit.time()) + continue; + auth(unit.peer()); + delta.push(unit); + } + } + if (delta.length || this.faces.total <= this.faces.total) + return delta; + return this.delta_unit(); + } + delta_pack(face = new $hyoo_crus_face_map) { + const parts = this.delta_parts(face); + if (!parts) + return null; + const pack = $hyoo_crus_pack.make(parts); + return pack; + } + delta_parts(face = new $hyoo_crus_face_map) { + const units = this.delta_unit(face); + if (!units.length) + return null; + const rocks = []; + for (let unit of units) { + if (unit.kind() !== 'gist') + continue; + const gist = unit.narrow(); + if (gist.size() <= 32) + continue; + const rock = this.$.$hyoo_crus_mine.rock(gist.hash()) ?? null; + rocks.push([gist.hash(), rock]); + } + return { + lands: { + [this.ref()]: { + faces: new $hyoo_crus_face_map, + units, + }, + }, + rocks, + }; + } + faces_pack() { + const pack = $hyoo_crus_pack.make({ + lands: { + [this.ref()]: { faces: this.faces, units: [] }, + }, + rocks: [], + }); + return pack; + } + apply_unit(delta, skip_check = false) { + if (!delta.length) + return []; + const errors = $mol_wire_sync(this).units_verify(delta); + if (errors.some(v => v)) + return errors; + return this.apply_unit_trust(delta, skip_check); + } + async units_verify(delta) { + const passes = delta.filter(unit => unit.kind() === 'pass'); + const auth = new Map(passes.map((unit) => [unit.peer(), unit.auth()])); + const mixin = $hyoo_crus_ref_encode(this.ref()); + return await Promise.all(delta.map(async (unit) => { + let key_public = this.key_public(unit.peer()); + if (!key_public) { + const key_serial = auth.get(unit.peer()); + if (!key_serial) + return `No public key for peer (${unit.peer()})`; + key_public = $mol_crypto_key_public.from(key_serial); + } + const sens = unit.sens().slice(); + for (let i = 0; i < mixin.length; ++i) + sens[i + 14] ^= mixin[i + 14]; + return await key_public.verify(sens, unit.sign()) ? '' : `Wrong unit sign`; + })); + } + apply_unit_trust(delta, skip_check = false) { + return delta.map(unit => { + if (!skip_check) { + const error = this.check_unit(unit); + if (error) + return error; + } + let need_recheck = false; + const res = unit.choose({ + pass: next => { + const peer = next.peer(); + const exists = this.passes.get(peer); + if (exists) + return ''; + this.passes.set(peer, next); + this.faces.total++; + }, + gift: next => { + const dest = next.dest(); + const prev = this.gifts.get(dest); + if (prev && $hyoo_crus_gift.compare(prev, next) <= 0) + return ''; + this.gifts.set(dest, next); + this.faces.time_max(next.peer(), next.time()); + if (!prev) + this.faces.total++; + if ((prev?.rank() ?? $hyoo_crus_rank.nil) > next.rank()) + need_recheck = true; + }, + gist: next => { + const head = next.head(); + const self = next.self(); + let units = this.gists.get(head); + if (!units) + this.gists.set(head, units = new $mol_wire_dict); + const prev = units.get(self); + if (prev && $hyoo_crus_gist.compare(prev, next) <= 0) + return ''; + units.set(self, next); + this.self_all.add(self); + this.faces.time_max(next.peer(), next.time()); + if (!prev) + this.faces.total++; + }, + }); + if (need_recheck) + this.recheck(); + return res ?? ''; + }); + } + apply_land(land) { + return this.apply_unit_trust(land.delta_unit()); + } + recheck() { + for (const [peer, pass] of this.passes) { + if (!this.check_unit(pass)) + continue; + this.passes.delete(peer); + this.faces.total--; + } + for (const [lord, gift] of this.gifts) { + if (!this.check_unit(gift)) + continue; + this.gifts.delete(lord); + this.faces.total--; + } + for (const [head, units] of this.gists) { + for (const [self, gist] of units) { + if (!this.check_unit(gist)) + continue; + units.delete(self); + this.faces.total--; + } + } + } + check_unit(unit) { + return unit.choose({ + pass: next => this.lord_rank(next.lord()) < $hyoo_crus_rank.add ? 'Need add rank to join' : '', + gift: next => this.peer_rank(next.peer()) < $hyoo_crus_rank.law ? 'Need law rank to change rank' : '', + gist: next => { + if ($hyoo_crus_area_of(next.self()) !== $hyoo_crus_area_of(next.self())) + return 'Need same area'; + if ($hyoo_crus_area_to(next.peer(), 'data') === next.self()) { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.add ? 'Need add rank to post self data' : ''; + } + else { + if ($hyoo_crus_area_of(next.self()) === 'data') { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.mod ? 'Need mod rank to post any data' : ''; + } + else { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.law ? 'Need law rank to post to meta area' : ''; + } + } + }, + }); + } + fork(preset = $hyoo_crus_rank_public) { + const realm = this.realm(); + if (!realm) + $mol_fail(new Error('Realm is required to fork')); + const land = realm.land_grab(preset); + land.Meta().Inflow(null).items_vary([this.ref()]); + return land; + } + gists_ordered(head) { + this.sync(); + const queue = [...this.gists.get(head)?.values() ?? []]; + const res = []; + const slices = new WeakMap; + for (const gist of queue) + slices.set(gist, 0); + merge: if ($hyoo_crus_area_of(head) === 'data') { + const inflow = (this.Meta().Inflow()?.items_vary().slice().reverse() ?? []) + .map($hyoo_crus_vary_cast_ref) + .filter($mol_guard_defined); + if (!inflow.length) + break merge; + const exists = new Set([...this.gists.get(head)?.keys() ?? []]); + const realm = this.realm(); + let slice = 0; + if (realm) + for (const ref of inflow) { + ++slice; + const land = realm.Land(ref); + for (const gist of land.gists_ordered(head)) { + if (exists.has(gist.self())) + continue; + queue.push(gist); + exists.add(gist.self()); + slices.set(gist, slice); + } + } + } + if (queue.length < 2) + return queue.filter(unit => !unit.nil()); + const compare = (left, right) => { + return (slices.get(left) - slices.get(right)) || $hyoo_crus_gist.compare(left, right); + }; + queue.sort(compare); + const locate = (self) => { + for (let i = res.length - 1; i >= 0; --i) { + if (res[i].self() === self) + return i; + } + return -1; + }; + while (queue.length) { + res.push(queue.pop()); + for (let cursor = queue.length - 1; cursor >= 0; --cursor) { + const kid = queue[cursor]; + let index = 0; + if (kid.lead()) { + index = locate(kid.lead()) + 1; + if (!index) + continue; + } + while (res[index] && (compare(res[index], kid) < 0)) + ++index; + const exists = locate(kid.self()); + if (index === exists) { + if (cursor === queue.length - 1) + queue.pop(); + continue; + } + if (exists >= 0) { + res.splice(exists, 1); + if (exists < index) + --index; + } + res.splice(index, 0, kid); + if (cursor === queue.length - 1) + queue.pop(); + cursor = queue.length; + } + } + return res; + } + join() { + const auth = this.auth(); + const prev = this.passes.get(auth.peer()); + if (prev) + return prev; + const next = new $hyoo_crus_pass; + next.auth(auth.public().asArray()); + next._land = this; + const error = this.apply_unit_trust([next])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return next; + } + give(dest, rank) { + this.join(); + const auth = this.auth(); + const unit = new $hyoo_crus_gift; + unit.rank(rank); + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.dest(dest ? dest.lord() : $hyoo_crus_ref('')); + unit._land = this; + if (rank >= $hyoo_crus_rank.get) { + const secret_land = this.secret(); + if (secret_land) { + if (!dest) + $mol_fail(new Error(`Encrypted land can't be shared to everyone`)); + const secret_mutual = this.secret_mutual(dest.toString()); + if (secret_mutual) { + const secret_bin = $mol_wire_sync(secret_land).serial(); + const bill = $mol_wire_sync(secret_mutual).encrypt(secret_bin, unit.salt()); + unit.bill().set(bill); + } + } + } + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return unit; + } + post(lead, head, self, vary, tag = 'term') { + if (typeof vary === 'symbol') + vary = $hyoo_crus_ref_relate(this.ref(), vary); + this.join(); + const auth = this.auth(); + const unit = new $hyoo_crus_gist; + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.lead(lead); + unit.head(head); + unit._vary = vary; + unit._land = this; + let { tip, bin } = $hyoo_crus_vary_encode(vary); + unit._open = bin; + if (vary !== null && this.encrypted()) { + unit.hash($mol_crypto_hash(bin), tip, tag); + } + else { + if (bin.byteLength > 32) + unit.hash(this.$.$hyoo_crus_mine.hash(bin), tip, tag); + else + unit.data(bin, tip, tag); + } + unit.self(self || this.self_make($hyoo_crus_area_of(head), unit.idea())); + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return unit; + } + gist_move(gist, head, seat) { + if (gist.nil()) + $mol_fail(new RangeError(`Can't move wiped gist`)); + const units = this.gists_ordered(head).filter(unit => !unit.nil()); + if (seat > units.length) + $mol_fail(new RangeError(`Seat (${seat}) out of units length (${units.length})`)); + const lead = seat ? units[seat - 1].self() : ''; + const vary = this.gist_decode(gist); + if (gist.head() === head) { + const seat_prev = units.indexOf(gist); + if (seat === seat_prev) + return; + if (seat === seat_prev + 1) + return; + const prev = seat_prev ? units[seat_prev - 1].self() : ''; + const next = units[seat_prev + 1]; + if (next) + this.post(prev, head, next.self(), this.gist_decode(next), next.tag()); + } + else { + this.gist_wipe(gist); + } + this.post(lead, head, gist.self(), vary, gist.tag()); + } + gist_wipe(gist) { + const units = this.gists_ordered(gist.head()).filter(unit => !unit.nil()); + const seat = units.indexOf(gist); + this.post(seat ? units[seat - 1].self() : '', gist.head(), gist.self(), null, 'term'); + } + broadcast() { + this.realm()?.yard().neonatals.add(this.ref()); + } + sync() { + this.loading(); + try { + this.saving(); + this.bus(); + } + catch (error) { + $mol_fail_log(error); + } + this.realm()?.yard().sync_land(this.ref()); + return this; + } + bus() { + return new this.$.$mol_bus(`$hyoo_crus_land:${this.ref().description}`, $mol_wire_async(bins => { + const yard = this.realm().yard(); + this.apply_unit_trust(bins.map(bin => { + const unit = new $hyoo_crus_unit(bin).narrow(); + yard.persisted.add(unit); + return unit; + })); + })); + } + loading() { + $mol_wire_solid(); + const realm = this.realm(); + if (!realm) + return; + const units = realm.yard().load(this) ?? []; + $mol_wire_sync(this.$).$mol_log3_rise({ + place: this, + message: 'Load Unit', + units: units.length, + }); + const errors = this.apply_unit_trust(units, !!'skip_check').filter(Boolean); + if (errors.length) + this.$.$mol_log3_fail({ + place: this, + message: errors.join('\n'), + }); + } + saving() { + this.$.$mol_wait_timeout(250); + this.save(); + } + save() { + const yard = this.realm()?.yard(); + if (!yard) + return; + const encoding = []; + const signing = []; + const persisting = []; + for (const pass of this.passes.values()) { + if (!pass.signed()) + signing.push(pass); + if (!yard.persisted.has(pass)) + persisting.push(pass); + } + for (const gift of this.gifts.values()) { + if (!gift.signed()) + signing.push(gift); + if (!yard.persisted.has(gift)) + persisting.push(gift); + } + for (const kids of this.gists.values()) { + for (const gist of kids.values()) { + if (!gist.signed()) { + encoding.push(gist); + signing.push(gist); + } + if (!yard.persisted.has(gist)) + persisting.push(gist); + } + } + $mol_wire_race(...encoding.map(unit => () => this.gist_encode(unit))); + $mol_wire_race(...signing.map(unit => () => this.unit_sign(unit))); + if (persisting.length) + $mol_wire_sync(yard).save(this, persisting); + this.bus().send(persisting.map(unit => unit.buffer)); + } + unit_sign(unit) { + if (unit.signed()) + return; + const key = $mol_wire_sync(unit._land.auth()); + const mixin = $hyoo_crus_ref_encode(unit._land.ref()); + const sens = unit.sens().slice(); + for (let i = 0; i < mixin.length; ++i) + sens[i + 14] ^= mixin[i + 14]; + const sign = new Uint8Array(key.sign(sens)); + unit.sign(sign); + } + gist_encode(gist) { + if (gist._open === null) + return gist; + if (gist.nil()) + return gist; + let bin = gist._open; + const secret = gist._land.secret(); + if (secret) + bin = new Uint8Array($mol_wire_sync(secret).encrypt(bin, gist.salt())); + if (bin.byteLength > 32) + gist.hash(this.$.$hyoo_crus_mine.save(bin), gist.tip(), gist.tag()); + else + gist.data(bin, gist.tip(), gist.tag()); + return gist; + } + gist_decode(gist) { + let vary = this.gist_decode_raw(gist); + if (typeof vary === 'symbol') + vary = $hyoo_crus_ref_resolve(this.ref(), vary); + return vary; + } + gist_decode_raw(gist) { + if (this.gists.get(gist.head())?.get(gist.self()) !== gist) { + for (const id of this.Meta().Inflow()?.items_vary() ?? []) { + const vary = this.realm()?.Land($hyoo_crus_vary_cast_ref(id)).gist_decode_raw(gist); + if (vary !== undefined) + return vary; + } + return undefined; + } + const secret = this.secret(); + if (gist._vary !== undefined) + return gist._vary; + if (gist._open !== null) + return gist._vary = $hyoo_crus_vary_decode({ tip: gist.tip(), bin: gist._open }); + let bin = gist.size() > 32 ? this.$.$hyoo_crus_mine.rock(gist.hash()) : gist.data(); + if (secret && bin && !gist.nil()) { + try { + bin = new Uint8Array($mol_wire_sync(secret).decrypt(bin, gist.salt())); + } + catch (error) { + if ($mol_fail_catch(error)) { + if (error.message) + $mol_fail_hidden(error); + else + $mol_fail_hidden(new Error(`Can't decrypt`, { cause: error })); + } + } + } + gist._open = bin; + return gist._vary = (bin ? $hyoo_crus_vary_decode({ tip: gist.tip(), bin }) : null); + } + key_public(peer) { + const key = this.passes.get(peer)?.auth(); + return key ? $mol_crypto_key_public.from(key) : null; + } + secret_mutual(key_public) { + return $mol_wire_sync($mol_crypto_secret).derive(this.auth().toString(), key_public); + } + encryptable() { + return !this.gists.size; + } + encrypted(next) { + $mol_wire_solid(); + const gift = this.gifts.get(this.ref()); + const prev = gift?.bill().some(b => b) ?? false; + if (next === undefined) + return prev; + if (prev === next) + return prev; + if (!this.encryptable()) + $mol_fail(new Error(`Non empty Land never encrypted`)); + this.join(); + const auth = this.auth(); + const secret = $mol_wire_sync($mol_crypto_secret).generate(); + const secret_land = $mol_wire_sync(secret).serial(); + const secret_mutual = auth.secret_mutual(auth.public().toString()); + const unit = new $hyoo_crus_gift; + unit.rank($hyoo_crus_rank.law); + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.dest(auth.lord()); + unit._land = this; + const secret_closed = $mol_wire_sync(secret_mutual).encrypt(secret_land, unit.salt()); + unit.bill().set(new Uint8Array(secret_closed)); + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + return next; + } + secret() { + if (!this.encrypted()) + return null; + const auth = this.auth(); + const gift = this.gifts.get(auth.lord()); + if (!gift) + return $mol_fail(new Error(`Access denied`)); + const bill = gift.bill(); + if (!bill.some(b => b)) + return $mol_fail(new Error(`No key to decrypt`)); + const secret_mutual = auth.secret_mutual(this.key_public(gift.peer()).toString()); + if (!secret_mutual) + return $mol_fail(new Error(`Can't decrypt secret`)); + const secret_land = $mol_wire_sync(secret_mutual).decrypt(bill, gift.salt()); + return $mol_wire_sync($mol_crypto_secret).from(secret_land); + } + dump() { + this.saving(); + const units = []; + const rocks = []; + for (const pass of this.passes.values()) + units.push(pass); + for (const gift of this.gifts.values()) + units.push(gift); + for (const kids of this.gists.values()) { + for (const gist of kids.values()) { + units.push(gist); + if (gist.size() <= 32) + continue; + const rock = this.$.$hyoo_crus_mine.rock(gist.hash()); + if (!rock) + continue; + rocks.push([gist.hash(), rock]); + } + } + return { + land: this.ref(), + units, rocks, + }; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', $mol_dev_format_auto(this.faces.total)); + } + } + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "self_make", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "Data", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "Meta", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "Node", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "total", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "joined_list", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "key", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "lord_rank", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "faces_pack", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "apply_unit", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "apply_unit_trust", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "fork", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gists_ordered", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "join", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "give", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "post", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "gist_move", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "gist_wipe", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "sync", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "bus", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "loading", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "saving", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "unit_sign", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_encode", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_decode", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_decode_raw", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "key_public", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "secret_mutual", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "encryptable", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "encrypted", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "secret", null); + $.$hyoo_crus_land = $hyoo_crus_land; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_unit_kind; + (function ($hyoo_crus_unit_kind) { + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["pass"] = $hyoo_crus_part.pass] = "pass"; + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["gift"] = $hyoo_crus_part.gift] = "gift"; + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["gist"] = $hyoo_crus_part.gist] = "gist"; + })($hyoo_crus_unit_kind = $.$hyoo_crus_unit_kind || ($.$hyoo_crus_unit_kind = {})); + class $hyoo_crus_unit extends $mol_buffer { + static size = 128; + constructor(buffer = new ArrayBuffer($hyoo_crus_unit.size), byteOffset = 0, byteLength = buffer.byteLength) { + super(buffer, byteOffset, byteLength); + } + kind() { + const val = this.uint8(0); + if ((val & 1) === 0) + return 'gist'; + const kind = $hyoo_crus_unit_kind[val]; + if (kind) + return kind; + $mol_fail(new Error(`Unknown unit kind (${val})`)); + } + choose(ways) { + const way = this.kind(); + const Unit = { + pass: $hyoo_crus_pass, + gift: $hyoo_crus_gift, + gist: $hyoo_crus_gist, + }[way]; + if (this instanceof Unit) + return ways[way](this); + const unit = new Unit(this.buffer, this.byteOffset, this.byteLength); + return ways[way](unit); + } + narrow() { + return this.choose({ + gist: unit => unit, + pass: unit => unit, + gift: unit => unit, + }); + } + key() { + return this.narrow().key(); + } + id6(offset, next) { + if (next === undefined) { + const str = $mol_base64_ae_encode(new Uint8Array(this.buffer, offset, 6)); + return str === 'AAAAAAAA' ? '' : str; + } + else { + this.asArray().set($mol_base64_ae_decode(next || 'AAAAAAAA'), offset); + return next; + } + } + id12(offset, next) { + if (next === undefined) { + return $hyoo_crus_ref_decode(new Uint8Array(this.buffer, offset, 12)); + } + else { + this.asArray().set($hyoo_crus_ref_encode(next), offset); + return next; + } + } + _peer; + peer(next) { + if (next === undefined && this._peer !== undefined) + return this._peer; + else + return this._peer = this.id6(2, next); + } + salt() { + return new Uint8Array(this.buffer, this.byteOffset + 2, 16); + } + sens(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset, 64); + if (next) + prev.set(next); + return prev; + } + mix(mixin) { + for (let i = 0; i < mixin.length; ++i) { + this.uint8(14 + i, this.uint8(14 + i) ^ mixin[i]); + } + } + sign(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset + 64, 64); + if (next) + prev.set(next); + return prev; + } + signed() { + return this.sign().some(b => b); + } + _land = null; + } + $.$hyoo_crus_unit = $hyoo_crus_unit; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_pass extends $hyoo_crus_unit { + work() { + return this.uint8(1); + } + _lord; + lord(next) { + if (next === undefined && this._lord !== undefined) + return this._lord; + else + return this._lord = this.id12(2, next); + } + key() { + return this.id6(2); + } + auth(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset, 64); + if (next) + prev.set(next); + return prev; + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' 🔑 ', $mol_dev_format_span({}, this.lord().description)); + } + } + $.$hyoo_crus_pass = $hyoo_crus_pass; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_gift extends $hyoo_crus_unit { + rank(next) { + if (next !== undefined) + this.uint8(0, $hyoo_crus_unit_kind.gift); + next = this.uint8(1, next); + if (next < $hyoo_crus_rank.nil || next > $hyoo_crus_rank.law) { + $mol_fail(new RangeError(`Wrong rank ${next}`)); + } + return next; + } + time(next) { + return this.uint48(8, next); + } + free() { + return new Uint8Array(this.buffer, this.byteOffset + 26, 6); + } + _dest; + dest(next) { + if (next === undefined && this._dest !== undefined) + return this._dest; + else + return this._dest = this.id12(14, next); + } + key() { + return this.dest().description; + } + bill() { + return new Uint8Array(this.buffer, this.byteOffset + 32, 32); + } + static compare(left, right) { + return (right.time() - left.time()) || (right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' 🏅 ', $mol_dev_format_span({}, this.dest().description), this.bill().some(v => v) ? ' 🔐' : ' 📢', $hyoo_crus_rank[this.rank()], ' ', $mol_dev_format_shade(new $mol_time_moment(this.time()).toString('YYYY-MM-DD hh:mm:ss.sss'))); + } + } + $.$hyoo_crus_gift = $hyoo_crus_gift; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_rest_code; + (function ($mol_rest_code) { + $mol_rest_code[$mol_rest_code["Continue"] = 100] = "Continue"; + $mol_rest_code[$mol_rest_code["Switching_Protocols"] = 101] = "Switching_Protocols"; + $mol_rest_code[$mol_rest_code["Processing"] = 102] = "Processing"; + $mol_rest_code[$mol_rest_code["OK"] = 200] = "OK"; + $mol_rest_code[$mol_rest_code["Created"] = 201] = "Created"; + $mol_rest_code[$mol_rest_code["Accepted"] = 202] = "Accepted"; + $mol_rest_code[$mol_rest_code["Non_Authoritative_Information"] = 203] = "Non_Authoritative_Information"; + $mol_rest_code[$mol_rest_code["No_Content"] = 204] = "No_Content"; + $mol_rest_code[$mol_rest_code["Reset_Content"] = 205] = "Reset_Content"; + $mol_rest_code[$mol_rest_code["Partial_Content"] = 206] = "Partial_Content"; + $mol_rest_code[$mol_rest_code["Multi_Status"] = 207] = "Multi_Status"; + $mol_rest_code[$mol_rest_code["Already_Reported"] = 208] = "Already_Reported"; + $mol_rest_code[$mol_rest_code["IM_Used"] = 226] = "IM_Used"; + $mol_rest_code[$mol_rest_code["Multiple_Choices"] = 300] = "Multiple_Choices"; + $mol_rest_code[$mol_rest_code["Moved_Permanently"] = 301] = "Moved_Permanently"; + $mol_rest_code[$mol_rest_code["Found"] = 302] = "Found"; + $mol_rest_code[$mol_rest_code["See_Other"] = 303] = "See_Other"; + $mol_rest_code[$mol_rest_code["Not_Modified"] = 304] = "Not_Modified"; + $mol_rest_code[$mol_rest_code["Use_Proxy"] = 305] = "Use_Proxy"; + $mol_rest_code[$mol_rest_code["Temporary_Redirect"] = 307] = "Temporary_Redirect"; + $mol_rest_code[$mol_rest_code["Bad_Request"] = 400] = "Bad_Request"; + $mol_rest_code[$mol_rest_code["Unauthorized"] = 401] = "Unauthorized"; + $mol_rest_code[$mol_rest_code["Payment_Required"] = 402] = "Payment_Required"; + $mol_rest_code[$mol_rest_code["Forbidden"] = 403] = "Forbidden"; + $mol_rest_code[$mol_rest_code["Not_Found"] = 404] = "Not_Found"; + $mol_rest_code[$mol_rest_code["Method_Not_Allowed"] = 405] = "Method_Not_Allowed"; + $mol_rest_code[$mol_rest_code["Not_Acceptable"] = 406] = "Not_Acceptable"; + $mol_rest_code[$mol_rest_code["Proxy_Authentication_Required"] = 407] = "Proxy_Authentication_Required"; + $mol_rest_code[$mol_rest_code["Request_Timeout"] = 408] = "Request_Timeout"; + $mol_rest_code[$mol_rest_code["Conflict"] = 409] = "Conflict"; + $mol_rest_code[$mol_rest_code["Gone"] = 410] = "Gone"; + $mol_rest_code[$mol_rest_code["Length_Required"] = 411] = "Length_Required"; + $mol_rest_code[$mol_rest_code["Precondition_Failed"] = 412] = "Precondition_Failed"; + $mol_rest_code[$mol_rest_code["Request_Entity_Too_Large"] = 413] = "Request_Entity_Too_Large"; + $mol_rest_code[$mol_rest_code["Request_URI_Too_Long"] = 414] = "Request_URI_Too_Long"; + $mol_rest_code[$mol_rest_code["Unsupported_Media_Type"] = 415] = "Unsupported_Media_Type"; + $mol_rest_code[$mol_rest_code["Requested_Range_Not_Satisfiable"] = 416] = "Requested_Range_Not_Satisfiable"; + $mol_rest_code[$mol_rest_code["Expectation_Failed"] = 417] = "Expectation_Failed"; + $mol_rest_code[$mol_rest_code["Teapot"] = 418] = "Teapot"; + $mol_rest_code[$mol_rest_code["Unprocessable_Entity"] = 422] = "Unprocessable_Entity"; + $mol_rest_code[$mol_rest_code["Locked"] = 423] = "Locked"; + $mol_rest_code[$mol_rest_code["Failed_Dependency"] = 424] = "Failed_Dependency"; + $mol_rest_code[$mol_rest_code["Upgrade_Required"] = 426] = "Upgrade_Required"; + $mol_rest_code[$mol_rest_code["Precondition_Required"] = 428] = "Precondition_Required"; + $mol_rest_code[$mol_rest_code["Too_Many_Requests"] = 429] = "Too_Many_Requests"; + $mol_rest_code[$mol_rest_code["Request_Header_Fields_Too_Large"] = 431] = "Request_Header_Fields_Too_Large"; + $mol_rest_code[$mol_rest_code["Unavailable_For_Legal_Reasons"] = 451] = "Unavailable_For_Legal_Reasons"; + $mol_rest_code[$mol_rest_code["Internal_Server_Error"] = 500] = "Internal_Server_Error"; + $mol_rest_code[$mol_rest_code["Not_Implemented"] = 501] = "Not_Implemented"; + $mol_rest_code[$mol_rest_code["Bad_Gateway"] = 502] = "Bad_Gateway"; + $mol_rest_code[$mol_rest_code["Service_Unavailable"] = 503] = "Service_Unavailable"; + $mol_rest_code[$mol_rest_code["Gateway_Timeout"] = 504] = "Gateway_Timeout"; + $mol_rest_code[$mol_rest_code["HTTP_Version_Not_Supported"] = 505] = "HTTP_Version_Not_Supported"; + $mol_rest_code[$mol_rest_code["Insufficient_Storage"] = 507] = "Insufficient_Storage"; + $mol_rest_code[$mol_rest_code["Loop_Detected"] = 508] = "Loop_Detected"; + $mol_rest_code[$mol_rest_code["Not_Extended"] = 510] = "Not_Extended"; + $mol_rest_code[$mol_rest_code["Network_Authentication_Required"] = 511] = "Network_Authentication_Required"; + $mol_rest_code[$mol_rest_code["Network_Read_Timeout_Error"] = 598] = "Network_Read_Timeout_Error"; + $mol_rest_code[$mol_rest_code["Network_Connect_Timeout_Error"] = 599] = "Network_Connect_Timeout_Error"; + })($mol_rest_code = $.$mol_rest_code || ($.$mol_rest_code = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port extends $mol_object { + send_code(code) { } + send_type(mime) { } + send_data(data) { + if (data === null) + return this.send_nil(); + if (typeof data === 'string') + return this.send_text(data); + if (data instanceof Uint8Array) + return this.send_bin(data); + if (data instanceof $mol_dom_context.Element) + return this.send_dom(data); + return this.send_json(data); + } + send_nil() { + this.send_code(204); + } + send_bin(data) { + this.send_code(200); + this.send_type('application/octet-stream'); + } + send_text(data) { + this.send_code(200); + this.send_type('text/plain'); + this.send_bin($mol_charset_encode(data)); + } + send_json(data) { + this.send_code(200); + this.send_type('application/json'); + this.send_text(JSON.stringify(data)); + } + send_dom(data) { + this.send_code(200); + this.send_type('text/html'); + this.send_text($mol_dom_serialize(data)); + } + static make(config) { + return super.make(config); + } + } + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_data", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_text", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_json", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_dom", null); + __decorate([ + ($mol_action) + ], $mol_rest_port, "make", null); + $.$mol_rest_port = $mol_rest_port; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws extends $mol_rest_port { + } + $.$mol_rest_port_ws = $mol_rest_port_ws; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_websocket_frame_op; + (function ($mol_websocket_frame_op) { + $mol_websocket_frame_op[$mol_websocket_frame_op["con"] = 0] = "con"; + $mol_websocket_frame_op[$mol_websocket_frame_op["txt"] = 1] = "txt"; + $mol_websocket_frame_op[$mol_websocket_frame_op["bin"] = 2] = "bin"; + $mol_websocket_frame_op[$mol_websocket_frame_op["stop"] = 8] = "stop"; + $mol_websocket_frame_op[$mol_websocket_frame_op["ping"] = 9] = "ping"; + $mol_websocket_frame_op[$mol_websocket_frame_op["pong"] = 10] = "pong"; + })($mol_websocket_frame_op = $.$mol_websocket_frame_op || ($.$mol_websocket_frame_op = {})); + class $mol_websocket_frame extends $mol_buffer { + kind(next) { + if (next) { + this.setUint8(0, Number(next.fin) << 7 | $mol_websocket_frame_op[next.op]); + return next; + } + else { + const state = this.getUint8(0); + const fin = state >> 7; + const op = $mol_websocket_frame_op[state & 0b1111]; + if (op === undefined) + $mol_fail(new Error(`Wrong op (${state.toString(2)})`)); + return { op, fin }; + } + } + data(next) { + if (next === undefined) { + const state = this.getUint8(1); + const mask = state >> 7; + let size = state & 0b0111_1111; + if (size === 126) + size = this.getUint16(2); + else if (size === 127) + size = this.getUint32(6); + return { size, mask }; + } + else { + if (next.size >= 2 ** 16) { + this.setUint8(1, 127 | Number(next.mask) << 7); + this.setUint32(6, next.size); + } + else if (next.size >= 126) { + this.setUint8(1, 126 | Number(next.mask) << 7); + this.setUint16(2, next.size); + } + else { + this.setUint8(1, next.size | Number(next.mask) << 7); + } + return next; + } + } + size() { + const short = this.getUint8(1) & 0b0111_1111; + const mask = this.getUint8(1) >> 7; + return (short === 127 ? 10 : short === 126 ? 4 : 2) + (mask ? 4 : 0); + } + mask() { + return new Uint8Array(this.buffer, this.byteOffset + this.size() - 4, 4); + } + toString() { + const { op, fin } = this.kind(); + const { size, mask } = this.data(); + return `${op}${fin ? '!' : '+'}${size}${mask ? '@' : '#'}`; + } + static make(op, size = 0, mask = false, fin = true) { + const head = (size >= 2 ** 16 ? 10 : size >= 126 ? 4 : 2) + (mask ? 4 : 0); + const frame = $mol_websocket_frame.from(head); + frame.kind({ op, fin }); + frame.data({ size, mask }); + return frame; + } + } + $.$mol_websocket_frame = $mol_websocket_frame; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws_std extends $mol_rest_port_ws { + socket; + send_nil() { + if (this.socket.readyState !== this.socket.OPEN) + return; + this.socket.send(''); + } + send_bin(data) { + if (this.socket.readyState !== this.socket.OPEN) + return; + this.socket.send(data); + } + send_text(data) { + if (this.socket.readyState !== this.socket.OPEN) + return; + const bin = $mol_charset_encode(data); + this.socket.send(bin); + } + } + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_text", null); + $.$mol_rest_port_ws_std = $mol_rest_port_ws_std; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws_node extends $mol_rest_port_ws { + socket; + send_nil() { + if (this.socket.writableEnded) + return; + this.socket.write($mol_websocket_frame.make('pong', 0).asArray()); + } + send_bin(data) { + if (this.socket.writableEnded) + return; + this.socket.write($mol_websocket_frame.make('bin', data.byteLength).asArray()); + this.socket.write(data); + } + send_text(data) { + if (this.socket.writableEnded) + return; + const bin = $mol_charset_encode(data); + this.socket.write($mol_websocket_frame.make('txt', bin.byteLength).asArray()); + this.socket.write(bin); + } + } + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_text", null); + $.$mol_rest_port_ws_node = $mol_rest_port_ws_node; + $.$mol_rest_port_ws = $mol_rest_port_ws_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_yard extends $mol_object { + realm() { + return null; + } + persisted = new WeakSet(); + neonatals = new $mol_wire_set(); + load(land) { + return []; + } + async save(land, units) { } + static masters = []; + master_cursor(next = 0) { + return next; + } + master_current() { + return this.$.$hyoo_crus_yard.masters[this.master_cursor()]; + } + master_next() { + this.master_cursor((this.master_cursor() + 1) % this.$.$hyoo_crus_yard.masters.length); + } + reconnects(reset) { + return ($mol_wire_probe(() => this.reconnects()) ?? 0) + 1; + } + master() { + this.reconnects(); + const link = this.master_current(); + if (!link) + return null; + const socket = new $mol_dom_context.WebSocket(link.replace(/^http/, 'ws')); + socket.binaryType = 'arraybuffer'; + const port = $mol_rest_port_ws_std.make({ socket }); + socket.onmessage = async (event) => { + if (event.data instanceof ArrayBuffer) { + if (!event.data.byteLength) + return; + await $mol_wire_async(this).port_income(port, new Uint8Array(event.data)); + } + else { + this.$.$mol_log3_fail({ + place: this, + message: 'Wrong data', + data: event.data + }); + } + }; + let interval; + socket.onclose = () => { + clearInterval(interval); + setTimeout(() => this.reconnects(null), 1000); + }; + Object.assign(socket, { + destructor: () => { + socket.onclose = () => { }; + clearInterval(interval); + socket.close(); + } + }); + return new Promise((done, fail) => { + socket.onopen = () => { + this.$.$mol_log3_come({ + place: this, + message: 'Connected', + port: $mol_key(port), + server: link, + }); + interval = setInterval(() => socket.send(new Uint8Array), 30000); + done(port); + }; + socket.onerror = () => { + socket.onclose = event => { + fail(new Error(`Master (${link}) is unavailable (${event.code})`)); + clearInterval(interval); + interval = setTimeout(() => { + this.master_next(); + this.reconnects(null); + }, 1000); + }; + }; + }); + } + slaves = new $mol_wire_set(); + sync() { + for (const port of this.ports()) { + for (const land of this.neonatals) { + this.sync_port_land([port, land]); + } + for (const land of this.port_lands(port)) { + this.sync_port_land([port, land]); + } + } + this.neonatals.clear(); + } + ports() { + try { + return [this.master(), ...this.slaves].filter($mol_guard_defined); + } + catch (error) { + $mol_fail_log(error); + return [...this.slaves]; + } + } + port_lands(port) { + return new $mol_wire_set(); + } + port_income(port, msg) { + const pack = $mol_wire_sync($hyoo_crus_pack).from(msg); + const parts = $mol_wire_sync(pack).parts(); + $mol_wire_sync(this.$).$mol_log3_rise({ + place: this, + message: 'Gain Pack', + port: $mol_key(port), + lands: parts.lands, + rocks: parts.rocks.length, + }); + const lands = this.port_lands(port); + for (const land of Reflect.ownKeys(parts.lands)) { + lands.add(land); + const faces = parts.lands[land].faces; + let port_faces = this.face_port_land([port, land]); + if (port_faces) + port_faces.sync(faces); + else + this.face_port_land([port, land], port_faces = faces); + const units = parts.lands[land].units; + for (let unit of units) { + const unit2 = unit.narrow(); + if (unit2 instanceof $hyoo_crus_pass) + continue; + port_faces.time_max(unit2.peer(), unit2.time()); + } + } + this.realm().apply_pack(pack); + } + sync_land(land) { + for (const port of this.ports()) { + this.port_lands(port).add(land); + } + this.sync(); + } + sync_port_land([port, land]) { + try { + this.init_port_land([port, land]); + const faces = this.face_port_land([port, land]); + if (!faces) + return; + const Land = this.realm().Land(land); + Land.saving(); + const parts = Land.delta_parts(faces); + if (!parts) + return; + this.$.$mol_log3_rise({ + place: this, + message: 'Send Unit', + port: $mol_key(port), + lands: parts.lands, + rocks: parts.rocks.length, + }); + port.send_bin($hyoo_crus_pack.make(parts).asArray()); + faces.sync(Land.faces); + } + catch (error) { + $mol_fail_log(error); + } + } + init_port_land([port, land]) { + this.$.$mol_log3_rise({ + place: this, + message: 'Send Face', + port: $mol_key(port), + land: land, + faces: this.realm().Land(land).faces, + }); + port.send_bin(this.realm().Land(land).faces_pack().asArray()); + } + face_port_land([port, land], next = null) { + return next; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "realm", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master_cursor", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master_current", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard.prototype, "master_next", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "reconnects", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "sync", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "ports", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "port_lands", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard.prototype, "port_income", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "sync_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "sync_port_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "init_port_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "face_port_land", null); + $.$hyoo_crus_yard = $hyoo_crus_yard; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_yard_node extends $.$hyoo_crus_yard { + root() { + return $mol_file.relative('.crus'); + } + land_file(land) { + const id = land.ref().description; + const dir = this.root().resolve(`unit/${id.slice(0, 2)}`); + dir.exists(true); + return dir.resolve(`${id}.crus`); + } + land_offsets(land) { + return new Map(); + } + file_sizes = new Map(); + land_descr(land) { + return this.land_file(land).open('create', 'read_write'); + } + async save(land, units) { + const descr = this.land_descr(land); + const offsets = this.land_offsets(land); + const append = []; + for (const unit of units) { + const off = offsets.get(unit.key()); + if (off === undefined) { + append.push(unit); + } + else { + $node.fs.write(descr, unit, 0, unit.byteLength, off, () => { }); + } + } + if (!append.length) + return; + let size = this.file_sizes.get(descr) ?? 0; + let offset = size; + size += append.length * $hyoo_crus_unit.size; + $node.fs.ftruncateSync(descr, size); + this.file_sizes.set(descr, size); + for (const unit of append) { + $node.fs.write(descr, unit, 0, unit.byteLength, offset, () => { }); + offsets.set(unit.key(), offset); + offset += unit.byteLength; + } + } + load(land) { + const descr = this.land_descr(land); + const buf = $node.fs.readFileSync(descr); + if (!buf.length) + return []; + this.file_sizes.set(descr, buf.length); + const pack = $hyoo_crus_pack.from(buf); + const { lands, rocks } = pack.parts(land.ref()); + const units = lands[land.ref()]?.units ?? []; + const offsets = this.land_offsets(land); + for (let i = 0; i < units.length; ++i) { + offsets.set(units[i].key(), i * $hyoo_crus_unit.size); + } + return units; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_yard_node.prototype, "root", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard_node.prototype, "land_file", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard_node.prototype, "land_descr", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard_node.prototype, "load", null); + $.$hyoo_crus_yard_node = $hyoo_crus_yard_node; + $.$hyoo_crus_yard = $hyoo_crus_yard_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_gist_tag; + (function ($hyoo_crus_gist_tag) { + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["term"] = 0] = "term"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["solo"] = 1] = "solo"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["vals"] = 2] = "vals"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["keys"] = 3] = "keys"; + })($hyoo_crus_gist_tag = $.$hyoo_crus_gist_tag || ($.$hyoo_crus_gist_tag = {})); + class $hyoo_crus_gist extends $hyoo_crus_unit { + _vary = undefined; + _open = null; + hint(tip = 'null', tag = 'term') { + this.uint8(0, ($hyoo_crus_gist_tag[tag] << 1) | ($hyoo_crus_vary_tip[tip] << 3)); + } + tag() { + return $hyoo_crus_gist_tag[(this.uint8(0) >> 1) & 0b11]; + } + tip() { + return $hyoo_crus_vary_tip[this.uint8(0) >> 3]; + } + utf() { + return Boolean(this.uint8(0) & 0b10000000); + } + nil() { + return !this.uint16(0); + } + size(next) { + return this.uint8(1, next); + } + time(next) { + return this.uint48(8, next); + } + _self; + self(next) { + if (next === undefined && this._self !== undefined) + return this._self; + else + return this._self = this.id6(14, next); + } + _head; + head(next) { + if (next === undefined && this._head !== undefined) + return this._head; + else + return this._head = this.id6(20, next); + } + key() { + return `${this.head()}/${this.self()}`; + } + _lead; + lead(next) { + if (next === undefined && this._lead !== undefined) + return this._lead; + else + return this._lead = this.id6(26, next); + } + hash(next, tip = 'null', tag = 'term') { + const bin = new Uint8Array(this.buffer, this.byteOffset + 32, 20); + if (next !== undefined) { + this.hint(tip, tag); + this.size(255); + bin.set(next); + } + if (this.size() > 32) + return bin; + $mol_fail(new Error('No stored hash')); + } + meta() { + return new Uint8Array(this.buffer, this.byteOffset + 42, 12); + } + data(next, tip = 'null', tag = 'term') { + if (next === undefined) { + const size = this.size(); + if (size > 32) + $mol_fail(new Error('Too long data')); + return new Uint8Array(this.buffer, this.byteOffset + 32, size); + } + else { + this.hint(tip, tag); + if (next.byteLength > 32) + $mol_fail(new Error('Too long data')); + this.uint8(1, next.byteLength); + const bin = new Uint8Array(this.buffer, this.byteOffset + 32, next.byteLength); + bin.set(next); + new Uint8Array(this.buffer, this.byteOffset + 32 + next.length, 32 - next.length).fill(0); + return bin; + } + } + idea() { + const bin = new Uint8Array(this.buffer, this.byteOffset + 20, 44); + const hash = $mol_crypto_hash(bin); + const buf = new $mol_buffer(hash.buffer); + return buf.uint48(0); + } + static compare(left, right) { + return (right.time() - left.time()) || (right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' ', this.lead() || 'AAAAAAAA', $mol_dev_format_shade('\\'), $mol_dev_format_accent(this.head() || 'AAAAAAAA'), $mol_dev_format_shade('/'), this.self() || 'AAAAAAAA', ' ', $mol_dev_format_shade(new $mol_time_moment(this.time()).toString('YYYY-MM-DD hh:mm:ss.sss')), ' ', { + term: '💼', + solo: '1️⃣', + vals: '🎹', + keys: '🔑', + }[this.tag()], this.tip(), ' ', $mol_dev_format_native(this._vary)); + } + } + $.$hyoo_crus_gist = $hyoo_crus_gist; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_node extends $mol_object { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.vals]; + land() { + return null; + } + head() { + return ''; + } + realm() { + return this.land()?.realm() ?? null; + } + land_ref() { + return this.land()?.ref() ?? this.$.$hyoo_crus_auth.current().lord(); + } + ref() { + return $hyoo_crus_ref(this.land_ref().description + '_' + this.head()); + } + toJSON() { + return this.ref().description; + } + cast(Node) { + return this.land().Node(Node).Item(this.head()); + } + nodes(Node) { + const land = this.land(); + const map = { + term: () => land.Node(Node || $hyoo_crus_atom_vary), + solo: () => land.Node(Node || $hyoo_crus_atom_vary), + vals: () => land.Node(Node || $hyoo_crus_list_vary), + keys: () => land.Node(Node || $hyoo_crus_dict), + }; + return this.units().map(unit => map[unit.tag()]().Item(unit.self())); + } + units() { + return this.land().gists_ordered(this.head()).filter(unit => !unit.nil()); + } + filled() { + return this.units().length > 0; + } + can_change(lord = this.land().auth().lord()) { + return this.land().lord_rank(lord) >= $hyoo_crus_rank.add; + } + last_change() { + const land = this.land(); + let last = 0; + const map = { + term: () => null, + solo: () => land.Node($hyoo_crus_atom_vary), + vals: () => land.Node($hyoo_crus_list_vary), + keys: () => land.Node($hyoo_crus_dict), + }; + const visit = (gist) => { + if (gist.time() > last) + last = gist.time(); + map[gist.tag()]()?.Item(gist.self()).units().forEach(visit); + }; + for (const gist of this.units()) + visit(gist); + return last ? new $mol_time_moment(last) : null; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head()); + } + } + __decorate([ + $mol_memo.method + ], $hyoo_crus_node.prototype, "ref", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_node.prototype, "cast", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_node.prototype, "nodes", null); + __decorate([ + $mol_mem + ], $hyoo_crus_node.prototype, "units", null); + __decorate([ + $mol_mem + ], $hyoo_crus_node.prototype, "last_change", null); + $.$hyoo_crus_node = $hyoo_crus_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_reconcile({ prev, from, to, next, equal, drop, insert, update, }) { + if (!update) + update = (next, prev, lead) => insert(next, drop(prev, lead)); + let p = from; + let n = 0; + let lead = p ? prev[p - 1] : null; + if (to > prev.length) + $mol_fail(new RangeError(`To(${to}) greater then length(${prev.length})`)); + if (from > to) + $mol_fail(new RangeError(`From(${to}) greater then to(${to})`)); + while (p < to || n < next.length) { + if (p < to && n < next.length && equal(next[n], prev[p])) { + lead = prev[p]; + ++p; + ++n; + } + else if (next.length - n > to - p) { + lead = insert(next[n], lead); + ++n; + } + else if (next.length - n < to - p) { + lead = drop(prev[p], lead); + ++p; + } + else { + lead = update(next[n], prev[p], lead); + ++p; + ++n; + } + } + } + $.$mol_reconcile = $mol_reconcile; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_realm extends $mol_object { + lands = new $mol_wire_dict(); + yard() { + return this.$.$hyoo_crus_yard.make({ + realm: $mol_const(this), + }); + } + home() { + return this.Land(this.$.$hyoo_crus_auth.current().lord()).home(); + } + king_grab(preset = $hyoo_crus_rank_public) { + const king = this.$.$hyoo_crus_auth.grab(); + const colony = $mol_wire_sync($hyoo_crus_land).make({}); + colony.auth = $mol_const(king); + if ((preset[''] ?? $hyoo_crus_rank.nil) === $hyoo_crus_rank.nil) { + colony.encrypted(true); + } + const self = this.$.$hyoo_crus_auth.current(); + colony.give(self, $hyoo_crus_rank.law); + for (const key in preset) + colony.give(key ? $hyoo_crus_auth.from(key) : null, preset[key]); + this.Land(colony.ref()).apply_unit_trust(colony.delta_unit()); + return king; + } + land_grab(preset = $hyoo_crus_rank_public) { + return this.Land(this.king_grab(preset).lord()); + } + Land(ref) { + let land = this.lands.get(ref); + if (land) + return land; + land = $hyoo_crus_land.make({ + realm: $mol_const(this), + ref: $mol_const(ref), + }); + this.lands.set(ref, land); + return land; + } + Node(ref, Node) { + const land = this.Land($hyoo_crus_ref_land(ref)); + return land.Node(Node).Item($hyoo_crus_ref_head(ref)); + } + apply_pack(pack) { + const { lands, rocks } = pack.parts(); + for (const land of Reflect.ownKeys(lands)) { + const errors = this.Land(land).apply_unit(lands[land].units).filter(Boolean); + for (const error of errors) + this.$.$mol_log3_warn({ + place: `${this}.apply_pack()`, + message: error, + hint: 'Send it to developer', + }); + } + for (const [hash, rock] of rocks) { + if (!rock) + continue; + this.$.$hyoo_crus_mine.save(rock); + } + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_realm.prototype, "yard", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "king_grab", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "land_grab", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_realm.prototype, "Land", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "apply_pack", null); + $.$hyoo_crus_realm = $hyoo_crus_realm; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_list_vary extends $hyoo_crus_node { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.vals]; + items_vary(next, tag = 'term') { + const units = this.units(); + if (next === undefined) + return units.map(unit => this.land().gist_decode(unit)); + this.splice(next, 0, units.length, tag); + return this.items_vary(); + } + splice(next, from = this.units().length, to = from, tag = 'term') { + const land = this.land(); + $mol_reconcile({ + prev: this.units(), + from, + to, + next, + equal: (next, prev) => $mol_compare_deep(this.land().gist_decode(prev), next), + drop: (prev, lead) => this.land().post(lead?.self() ?? '', prev.head(), prev.self(), null), + insert: (next, lead) => this.land().post(lead?.self() ?? '', this.head(), land.self_make($hyoo_crus_area_of(this.head())), next, tag), + update: (next, prev, lead) => this.land().post(lead?.self() ?? '', prev.head(), prev.self(), next, prev.tag()), + }); + } + find(vary) { + for (const unit of this.units()) { + if ($mol_compare_deep(this.land().gist_decode(unit), vary)) + return unit; + } + return null; + } + has(vary, next, tag = 'term') { + if (next === undefined) + return Boolean(this.find(vary)); + if (next) + this.add(vary, tag); + else + this.cut(vary); + return next; + } + add(vary, tag = 'term') { + if (this.has(vary)) + return; + this.land().post('', this.head(), '', vary, tag); + } + cut(vary) { + const units = [...this.units()]; + for (let i = 0; i < units.length; ++i) { + if (!$mol_compare_deep(this.land().gist_decode(units[i]), vary)) + continue; + this.land().post(units[i - 1]?.self() ?? 0, units[i].head(), units[i].self(), null); + units.splice(i, 1); + --i; + } + } + move(from, to) { + this.land().gist_move(this.units()[from], this.head(), to); + } + wipe(seat) { + this.land().gist_wipe(this.units()[seat]); + } + node_make(Node, vary, tag = 'term') { + this.splice([vary], undefined, undefined, tag); + return this.land().Node(Node).Item(this.units().at(-1).self()); + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(this.items_vary())); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_list_vary.prototype, "items_vary", null); + $.$hyoo_crus_list_vary = $hyoo_crus_list_vary; + function $hyoo_crus_list(parse) { + class Narrow extends $hyoo_crus_list_vary { + static parse = parse; + items(next) { + return this.items_vary(next?.map(parse)).map(parse); + } + } + __decorate([ + $mol_mem + ], Narrow.prototype, "items", null); + return Narrow; + } + $.$hyoo_crus_list = $hyoo_crus_list; + class $hyoo_crus_list_bin extends $hyoo_crus_list($hyoo_crus_vary_cast_bin) { + } + $.$hyoo_crus_list_bin = $hyoo_crus_list_bin; + class $hyoo_crus_list_bool extends $hyoo_crus_list($hyoo_crus_vary_cast_bool) { + } + $.$hyoo_crus_list_bool = $hyoo_crus_list_bool; + class $hyoo_crus_list_int extends $hyoo_crus_list($hyoo_crus_vary_cast_int) { + } + $.$hyoo_crus_list_int = $hyoo_crus_list_int; + class $hyoo_crus_list_real extends $hyoo_crus_list($hyoo_crus_vary_cast_real) { + } + $.$hyoo_crus_list_real = $hyoo_crus_list_real; + class $hyoo_crus_list_ref extends $hyoo_crus_list($hyoo_crus_vary_cast_ref) { + } + $.$hyoo_crus_list_ref = $hyoo_crus_list_ref; + class $hyoo_crus_list_str extends $hyoo_crus_list($hyoo_crus_vary_cast_str) { + } + $.$hyoo_crus_list_str = $hyoo_crus_list_str; + class $hyoo_crus_list_time extends $hyoo_crus_list($hyoo_crus_vary_cast_time) { + } + $.$hyoo_crus_list_time = $hyoo_crus_list_time; + class $hyoo_crus_list_dur extends $hyoo_crus_list($hyoo_crus_vary_cast_dur) { + } + $.$hyoo_crus_list_dur = $hyoo_crus_list_dur; + class $hyoo_crus_list_range extends $hyoo_crus_list($hyoo_crus_vary_cast_range) { + } + $.$hyoo_crus_list_range = $hyoo_crus_list_range; + class $hyoo_crus_list_json extends $hyoo_crus_list($hyoo_crus_vary_cast_json) { + } + $.$hyoo_crus_list_json = $hyoo_crus_list_json; + class $hyoo_crus_list_jsan extends $hyoo_crus_list($hyoo_crus_vary_cast_jsan) { + } + $.$hyoo_crus_list_jsan = $hyoo_crus_list_jsan; + class $hyoo_crus_list_dom extends $hyoo_crus_list($hyoo_crus_vary_cast_dom) { + } + $.$hyoo_crus_list_dom = $hyoo_crus_list_dom; + class $hyoo_crus_list_tree extends $hyoo_crus_list($hyoo_crus_vary_cast_tree) { + } + $.$hyoo_crus_list_tree = $hyoo_crus_list_tree; + class $hyoo_crus_list_ref_base extends $hyoo_crus_list_ref { + } + $.$hyoo_crus_list_ref_base = $hyoo_crus_list_ref_base; + function $hyoo_crus_list_ref_to(Value) { + class Ref extends $hyoo_crus_list_ref_base { + static Value = Value; + static toJSON() { + return '$hyoo_crus_list_to<' + Value() + '>'; + } + remote_list(next) { + const realm = this.realm(); + const Node = Value(); + return this.items_vary(next?.map(item => item.ref())) + .map($hyoo_crus_vary_cast_ref) + .filter($mol_guard_defined) + .map(ref => realm.Node(ref, Node)); + } + remote_make(preset) { + const land = this.realm().land_grab(preset); + this.splice([land.ref()]); + return land.Node(Value()).Item(''); + } + local_make(idea) { + const area = $hyoo_crus_area_of(this.head()); + const self = this.land().self_make(area, idea); + const node = this.land().Node(Value()).Item(self); + this.splice([node.ref()]); + return node; + } + } + __decorate([ + $mol_mem + ], Ref.prototype, "remote_list", null); + __decorate([ + $mol_action + ], Ref.prototype, "remote_make", null); + __decorate([ + $mol_action + ], Ref.prototype, "local_make", null); + return Ref; + } + $.$hyoo_crus_list_ref_to = $hyoo_crus_list_ref_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_dict extends ($hyoo_crus_list_vary) { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.keys]; + keys() { + return this.items_vary(); + } + dive(key, Node, auto) { + if (this.can_change() && auto !== undefined) + this.has(key, true, Node.tag); + const unit = this.find(key); + return unit ? this.land().Node(Node).Item(unit.self()) : null; + } + static schema = {}; + static with(schema) { + const Entity = class Entity extends this { + }; + for (const Field in schema) { + Object.defineProperty(Entity.prototype, Field, { + value: function (auto) { + return this.dive(Field, schema[Field], auto); + } + }); + } + return Object.assign(Entity, { schema: { ...this.schema, ...schema } }); + } + ; + [$mol_dev_format_head]() { + const keys = $mol_wire_probe(() => this.keys()); + const nodes = $mol_wire_probe(() => this.nodes(null)) ?? []; + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(keys?.map((key, index) => new Pair(key, nodes[index])))); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_dict.prototype, "keys", null); + $.$hyoo_crus_dict = $hyoo_crus_dict; + class Pair { + key; + val; + constructor(key, val) { + this.key = key; + this.val = val; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_tr({}, $mol_dev_format_td({}, $mol_dev_format_auto(this.key)), $mol_dev_format_td({}, ': '), $mol_dev_format_td({}, $mol_dev_format_auto(this.val))); + } + } + function $hyoo_crus_dict_to(Value) { + return class Dict extends $hyoo_crus_dict { + Value = Value; + key(key, auto) { + this.has(key, auto === undefined ? undefined : true, Value.tag); + const unit = this.find(key); + if (!unit) + return null; + return this.land().Node(this.Value).Item(unit.self()); + } + static toString() { + return '$hyoo_crus_dict_to(' + Value + ')'; + } + }; + } + $.$hyoo_crus_dict_to = $hyoo_crus_dict_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_atom_vary extends $hyoo_crus_node { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.solo]; + pick_unit() { + return this.units().at(0); + } + vary(next) { + let unit_prev = this.pick_unit(); + let prev = unit_prev ? this.land().gist_decode(unit_prev) : null; + if (next === undefined) + return prev; + if ($mol_compare_deep(prev, next)) + return next; + this.land().post('', unit_prev?.head() ?? this.head(), unit_prev?.self() ?? '', next); + return this.vary(); + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(this.vary())); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_atom_vary.prototype, "vary", null); + $.$hyoo_crus_atom_vary = $hyoo_crus_atom_vary; + class $hyoo_crus_atom_enum_base extends $hyoo_crus_atom_vary { + static options = []; + } + $.$hyoo_crus_atom_enum_base = $hyoo_crus_atom_enum_base; + function $hyoo_crus_atom_enum(options) { + class Narrow extends $hyoo_crus_atom_enum_base { + static options = options; + val(next) { + validate: if (next !== undefined) { + for (const option of options) { + if ($mol_compare_deep(option, next)) + break validate; + } + $mol_fail(new Error(`Wrong value (${$hyoo_crus_vary_cast_str(next)})`)); + } + const val = this.vary(next); + for (const option of options) { + if ($mol_compare_deep(option, val)) + return val; + } + return null; + } + } + __decorate([ + $mol_mem + ], Narrow.prototype, "val", null); + return Narrow; + } + $.$hyoo_crus_atom_enum = $hyoo_crus_atom_enum; + function $hyoo_crus_atom(parse) { + class Narrow extends $hyoo_crus_atom_vary { + static parse = parse; + val(next) { + if (next !== undefined) + parse(next); + const res = this.vary(next); + try { + return parse(res); + } + catch { + return null; + } + } + } + return Narrow; + } + $.$hyoo_crus_atom = $hyoo_crus_atom; + class $hyoo_crus_atom_bin extends $hyoo_crus_atom($hyoo_crus_vary_cast_bin) { + } + $.$hyoo_crus_atom_bin = $hyoo_crus_atom_bin; + class $hyoo_crus_atom_bool extends $hyoo_crus_atom($hyoo_crus_vary_cast_bool) { + } + $.$hyoo_crus_atom_bool = $hyoo_crus_atom_bool; + class $hyoo_crus_atom_int extends $hyoo_crus_atom($hyoo_crus_vary_cast_int) { + } + $.$hyoo_crus_atom_int = $hyoo_crus_atom_int; + class $hyoo_crus_atom_real extends $hyoo_crus_atom($hyoo_crus_vary_cast_real) { + } + $.$hyoo_crus_atom_real = $hyoo_crus_atom_real; + class $hyoo_crus_atom_ref extends $hyoo_crus_atom($hyoo_crus_vary_cast_ref) { + } + $.$hyoo_crus_atom_ref = $hyoo_crus_atom_ref; + class $hyoo_crus_atom_str extends $hyoo_crus_atom($hyoo_crus_vary_cast_str) { + } + $.$hyoo_crus_atom_str = $hyoo_crus_atom_str; + class $hyoo_crus_atom_time extends $hyoo_crus_atom($hyoo_crus_vary_cast_time) { + } + $.$hyoo_crus_atom_time = $hyoo_crus_atom_time; + class $hyoo_crus_atom_dur extends $hyoo_crus_atom($hyoo_crus_vary_cast_dur) { + } + $.$hyoo_crus_atom_dur = $hyoo_crus_atom_dur; + class $hyoo_crus_atom_range extends $hyoo_crus_atom($hyoo_crus_vary_cast_range) { + } + $.$hyoo_crus_atom_range = $hyoo_crus_atom_range; + class $hyoo_crus_atom_json extends $hyoo_crus_atom($hyoo_crus_vary_cast_json) { + } + $.$hyoo_crus_atom_json = $hyoo_crus_atom_json; + class $hyoo_crus_atom_jsan extends $hyoo_crus_atom($hyoo_crus_vary_cast_jsan) { + } + $.$hyoo_crus_atom_jsan = $hyoo_crus_atom_jsan; + class $hyoo_crus_atom_dom extends $hyoo_crus_atom($hyoo_crus_vary_cast_dom) { + } + $.$hyoo_crus_atom_dom = $hyoo_crus_atom_dom; + class $hyoo_crus_atom_tree extends $hyoo_crus_atom($hyoo_crus_vary_cast_tree) { + } + $.$hyoo_crus_atom_tree = $hyoo_crus_atom_tree; + class $hyoo_crus_atom_ref_base extends $hyoo_crus_atom_ref { + static Value = $hyoo_crus_dict; + } + $.$hyoo_crus_atom_ref_base = $hyoo_crus_atom_ref_base; + function $hyoo_crus_atom_ref_to(Value) { + class Ref extends $hyoo_crus_atom_ref_base { + Value = Value; + static toString() { + return '$hyoo_crus_atom_ref_to<' + Value() + '>'; + } + yoke(preset) { + const realm = this.realm(); + const Ref = this.cast($hyoo_crus_atom_ref); + const ref = Ref.val(); + if (ref) + return realm.Land(ref); + if (preset === undefined) + return null; + const land = realm.land_grab(preset); + Ref.val(land.ref()); + return land; + } + remote(next) { + const realm = this.realm(); + let ref = next?.ref() ?? next; + ref = $hyoo_crus_vary_cast_ref(this.vary(ref)); + if (!ref) + return null; + return realm.Node(ref, Value()); + } + remote_ensure(preset) { + this.yoke(preset); + return this.remote(); + } + local_ensure() { + if (this.remote()) + return this.remote(); + const node = this.land().Node(Value()).Item(this.land().self_make($hyoo_crus_area_of(this.head()))); + return this.remote(node); + } + } + __decorate([ + $mol_mem + ], Ref.prototype, "yoke", null); + __decorate([ + $mol_mem + ], Ref.prototype, "remote", null); + __decorate([ + $mol_mem + ], Ref.prototype, "local_ensure", null); + return Ref; + } + $.$hyoo_crus_atom_ref_to = $hyoo_crus_atom_ref_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_home extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + Selection: $hyoo_crus_atom_str, + Hall: $hyoo_crus_atom_ref_to(() => $hyoo_crus_dict), + }) { + hall_by(Node, preset) { + return this.Hall(null)?.remote_ensure(preset)?.cast(Node) ?? null; + } + } + $.$hyoo_crus_home = $hyoo_crus_home; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_meta extends $hyoo_crus_dict.with({ + Inflow: $hyoo_crus_list_ref, + }) { + } + $.$hyoo_crus_meta = $hyoo_crus_meta; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_entity extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + }) { + } + $.$hyoo_crus_entity = $hyoo_crus_entity; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_survey_meet extends $hyoo_crus_entity.with({ + Opinions: $hyoo_crus_dict_to($hyoo_crus_atom_ref_to(() => $hyoo_survey_meet_opinion)) + }) { + opinion_my() { + const key = this.land().auth().peer(); + return this.Opinions(true)?.key(key, true)?.remote_ensure($hyoo_crus_rank_public) ?? null; + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_meet.prototype, "opinion_my", null); + $.$hyoo_survey_meet = $hyoo_survey_meet; + class $hyoo_survey_meet_opinion extends $hyoo_crus_entity.with({ + Pleasant: $hyoo_crus_atom_str, + Improvement: $hyoo_crus_atom_str, + Continue: $hyoo_crus_atom_bool, + Request: $hyoo_crus_atom_str, + }) { + } + $.$hyoo_survey_meet_opinion = $hyoo_survey_meet_opinion; +})($ || ($ = {})); + +; + ($.$mol_stack) = class $mol_stack extends ($.$mol_view) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/stack/stack.view.css", "[mol_stack] {\n\tdisplay: grid;\n\t/* width: max-content; */\n\t/* height: max-content; */\n\talign-items: flex-start;\n\tjustify-items: flex-start;\n}\n\n[mol_stack] > * {\n\tgrid-area: 1/1;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_text_code_token) = class $mol_text_code_token extends ($.$mol_dimmer) { + type(){ + return ""; + } + attr(){ + return {...(super.attr()), "mol_text_code_token_type": (this.type())}; + } + }; + ($.$mol_text_code_token_link) = class $mol_text_code_token_link extends ($.$mol_text_code_token) { + uri(){ + return ""; + } + dom_name(){ + return "a"; + } + type(){ + return "code-link"; + } + attr(){ + return { + ...(super.attr()), + "href": (this.uri()), + "target": "_blank" + }; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { hsla } = $mol_style_func; + $mol_style_define($mol_text_code_token, { + display: 'inline', + textDecoration: 'none', + '@': { + mol_text_code_token_type: { + 'code-keyword': { + color: hsla(0, 70, 60, 1), + }, + 'code-field': { + color: hsla(300, 70, 50, 1), + }, + 'code-tag': { + color: hsla(330, 70, 50, 1), + }, + 'code-global': { + color: hsla(30, 80, 50, 1), + }, + 'code-decorator': { + color: hsla(180, 40, 50, 1), + }, + 'code-punctuation': { + color: hsla(0, 0, 50, 1), + }, + 'code-string': { + color: hsla(90, 40, 50, 1), + }, + 'code-number': { + color: hsla(55, 65, 45, 1), + }, + 'code-call': { + color: hsla(270, 60, 50, 1), + }, + 'code-link': { + color: hsla(210, 60, 50, 1), + }, + 'code-comment-inline': { + opacity: .5, + }, + 'code-comment-block': { + opacity: .5, + }, + 'code-docs': { + opacity: .75, + }, + }, + } + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text_code_row) = class $mol_text_code_row extends ($.$mol_paragraph) { + numb(){ + return 0; + } + token_type(id){ + return ""; + } + token_text(id){ + return ""; + } + highlight(){ + return ""; + } + token_uri(id){ + return ""; + } + text(){ + return ""; + } + minimal_height(){ + return 24; + } + numb_showed(){ + return true; + } + syntax(){ + return null; + } + uri_resolve(id){ + return ""; + } + Numb(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.numb())]); + return obj; + } + Token(id){ + const obj = new this.$.$mol_text_code_token(); + (obj.type) = () => ((this.token_type(id))); + (obj.haystack) = () => ((this.token_text(id))); + (obj.needle) = () => ((this.highlight())); + return obj; + } + Token_link(id){ + const obj = new this.$.$mol_text_code_token_link(); + (obj.haystack) = () => ((this.token_text(id))); + (obj.needle) = () => ((this.highlight())); + (obj.uri) = () => ((this.token_uri(id))); + return obj; + } + find_pos(id){ + return null; + } + }; + ($mol_mem(($.$mol_text_code_row.prototype), "Numb")); + ($mol_mem_key(($.$mol_text_code_row.prototype), "Token")); + ($mol_mem_key(($.$mol_text_code_row.prototype), "Token_link")); + + +; +"use strict"; +var $; +(function ($) { + class $mol_syntax2 { + lexems; + constructor(lexems) { + this.lexems = lexems; + for (let name in lexems) { + this.rules.push({ + name: name, + regExp: lexems[name], + size: RegExp('^$|' + lexems[name].source).exec('').length - 1, + }); + } + const parts = '(' + this.rules.map(rule => rule.regExp.source).join(')|(') + ')'; + this.regexp = RegExp(`([\\s\\S]*?)(?:(${parts})|$(?![^]))`, 'gmu'); + } + rules = []; + regexp; + tokenize(text, handle) { + let end = 0; + lexing: while (end < text.length) { + const start = end; + this.regexp.lastIndex = start; + var found = this.regexp.exec(text); + end = this.regexp.lastIndex; + if (start === end) + throw new Error('Empty token'); + var prefix = found[1]; + if (prefix) + handle('', prefix, [prefix], start); + var suffix = found[2]; + if (!suffix) + continue; + let offset = 4; + for (let rule of this.rules) { + if (found[offset - 1]) { + handle(rule.name, suffix, found.slice(offset, offset + rule.size), start + prefix.length); + continue lexing; + } + offset += rule.size + 1; + } + $mol_fail(new Error('$mol_syntax2 is broken')); + } + } + parse(text, handlers) { + this.tokenize(text, (name, ...args) => handlers[name](...args)); + } + } + $.$mol_syntax2 = $mol_syntax2; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_syntax2_md_flow = new $mol_syntax2({ + 'quote': /^((?:(?:[>"] )(?:[^]*?)$(\r?\n?))+)([\n\r]*)/, + 'header': /^([#=]+)(\s+)(.*?)$([\n\r]*)/, + 'list': /^((?:(?: ?([*+-])|(?:\d+[\.\)])+) +(?:[^]*?)$(?:\r?\n?)(?: (?:[^]*?)$(?:\r?\n?))*)+)((?:\r?\n)*)/, + 'code': /^(```\s*)([\w.-]*)[\r\n]+([^]*?)^(```)$([\n\r]*)/, + 'code-indent': /^((?:(?: |\t)(?:[^]*?)$\r?\n?)+)([\n\r]*)/, + 'table': /((?:^\|.+?$\r?\n?)+)([\n\r]*)/, + 'grid': /((?:^ *! .*?$\r?\n?)+)([\n\r]*)/, + 'cut': /^--+$((?:\r?\n)*)/, + 'block': /^(.*?)$((?:\r?\n)*)/, + }); + $.$mol_syntax2_md_line = new $mol_syntax2({ + 'strong': /\*\*(.+?)\*\*/, + 'emphasis': /\*(?!\s)(.+?)\*|\/\/(?!\s)(.+?)\/\//, + 'code': /```(.+?)```|;;(.+?);;|`(.+?)`/, + 'insert': /\+\+(.+?)\+\+/, + 'delete': /~~(.+?)~~|--(.+?)--/, + 'embed': /""(?:(.*?)\\)?(.*?)""/, + 'link': /\\\\(?:(.*?)\\)?(.*?)\\\\/, + 'image-link': /!\[([^\[\]]*?)\]\((.*?)\)/, + 'text-link': /\[(.*?(?:\[[^\[\]]*?\][^\[\]]*?)*)\]\((.*?)\)/, + 'text-link-http': /\b(https?:\/\/[^\s,.;:!?")]+(?:[,.;:!?")][^\s,.;:!?")]+)+)/, + }); + $.$mol_syntax2_md_code = new $mol_syntax2({ + 'code-indent': /\t+/, + 'code-docs': /\/\/\/.*?$/, + 'code-comment-block': /(?:\/\*[^]*?\*\/|\/\+[^]*?\+\/|)/, + 'code-link': /(?:\w+:\/\/|#)\S+?(?=\s|\\\\|""|$)/, + 'code-comment-inline': /\/\/.*?(?:$|\/\/)/, + 'code-string': /(?:".*?"|'.*?'|`.*?`|\/.+?\/[dygimsu]*(?!\p{Letter})|(?:^|[ \t])\\[^\n]*\n)/, + 'code-number': /[+-]?(?:\d*\.)?\d+\w*/, + 'code-call': /\.?\w+ *(?=\()/, + 'code-sexpr': /\((\w+ )/, + 'code-field': /(?:(?:\.|::|->)\w+|[\w-]+\??\s*:(?!\/\/|:))/, + 'code-keyword': /\b(throw|readonly|unknown|keyof|typeof|never|from|class|struct|interface|type|function|extends|implements|module|namespace|import|export|include|require|var|val|let|const|for|do|while|until|in|out|of|new|if|then|else|switch|case|this|return|async|await|yield|try|catch|break|continue|get|set|public|private|protected|string|boolean|number|null|undefined|true|false|void|int|float|ref)\b/, + 'code-global': /[$]+\w*|\b[A-Z][a-z0-9]+[A-Z]\w*/, + 'code-word': /\w+/, + 'code-decorator': /@\s*\S+/, + 'code-tag': /<\/?[\w-]+\/?>?|&\w+;/, + 'code-punctuation': /[\-\[\]\{\}\(\)<=>~!\?@#%&\*_\+\\\/\|;:\.,\^]+?/, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text_code_row extends $.$mol_text_code_row { + maximal_width() { + return this.text().length * this.letter_width(); + } + syntax() { + return this.$.$mol_syntax2_md_code; + } + tokens(path) { + const tokens = []; + const text = (path.length > 0) + ? this.tokens(path.slice(0, path.length - 1))[path[path.length - 1]].found.slice(1, -1) + : this.text(); + this.syntax().tokenize(text, (name, found, chunks) => { + if (name === 'code-sexpr') { + tokens.push({ name: 'code-punctuation', found: '(', chunks: [] }); + tokens.push({ name: 'code-call', found: chunks[0], chunks: [] }); + } + else { + tokens.push({ name, found, chunks }); + } + }); + return tokens; + } + sub() { + return [ + ...this.numb_showed() ? [this.Numb()] : [], + ...this.row_content([]) + ]; + } + row_content(path) { + return this.tokens(path).map((t, i) => this.Token([...path, i])); + } + Token(path) { + return this.token_type(path) === 'code-link' ? this.Token_link(path) : super.Token(path); + } + token_type(path) { + return this.tokens([...path.slice(0, path.length - 1)])[path[path.length - 1]].name; + } + token_content(path) { + const tokens = this.tokens([...path.slice(0, path.length - 1)]); + const token = tokens[path[path.length - 1]]; + switch (token.name) { + case 'code-string': return [ + token.found[0], + ...this.row_content(path), + token.found[token.found.length - 1], + ]; + default: return [token.found]; + } + } + token_text(path) { + const tokens = this.tokens([...path.slice(0, path.length - 1)]); + const token = tokens[path[path.length - 1]]; + return token.found; + } + token_uri(path) { + const uri = this.token_text(path); + return this.uri_resolve(uri); + } + *view_find(check, path = []) { + if (check(this, this.text())) { + yield [...path, this]; + } + } + find_pos(offset) { + return this.find_token_pos([offset]); + } + find_token_pos([offset, ...path]) { + for (const [index, token] of this.tokens(path).entries()) { + if (token.found.length >= offset) { + const token = this.Token([...path, index]); + return { token, offset }; + } + else { + offset -= token.found.length; + } + } + return null; + } + } + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "row_content", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_type", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_content", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_text", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_uri", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "find_pos", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "find_token_pos", null); + $$.$mol_text_code_row = $mol_text_code_row; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { rem } = $mol_style_unit; + $mol_style_define($mol_text_code_row, { + display: 'block', + position: 'relative', + font: { + family: 'monospace', + }, + Numb: { + textAlign: 'right', + color: $mol_theme.shade, + width: rem(3), + margin: { + left: rem(-4), + }, + display: 'inline-block', + whiteSpace: 'nowrap', + userSelect: 'none', + position: 'absolute', + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_blob = ($node.buffer?.Blob ?? $mol_dom_context.Blob); +})($ || ($ = {})); + +; + ($.$mol_icon_clipboard) = class $mol_icon_clipboard extends ($.$mol_icon) { + path(){ + return "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3"; + } + }; + + +; +"use strict"; + +; + ($.$mol_icon_clipboard_outline) = class $mol_icon_clipboard_outline extends ($.$mol_icon) { + path(){ + return "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3M7,7H17V5H19V19H5V5H7V7Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_button_copy) = class $mol_button_copy extends ($.$mol_button_minor) { + text(){ + return (this.title()); + } + text_blob(next){ + if(next !== undefined) return next; + const obj = new this.$.$mol_blob([(this.text())], {"type": "text/plain"}); + return obj; + } + html(){ + return ""; + } + html_blob(next){ + if(next !== undefined) return next; + const obj = new this.$.$mol_blob([(this.html())], {"type": "text/html"}); + return obj; + } + Icon(){ + const obj = new this.$.$mol_icon_clipboard_outline(); + return obj; + } + title(){ + return ""; + } + blobs(){ + return [(this.text_blob()), (this.html_blob())]; + } + data(){ + return {}; + } + sub(){ + return [(this.Icon()), (this.title())]; + } + }; + ($mol_mem(($.$mol_button_copy.prototype), "text_blob")); + ($mol_mem(($.$mol_button_copy.prototype), "html_blob")); + ($mol_mem(($.$mol_button_copy.prototype), "Icon")); + + +; +"use strict"; +var $; +(function ($) { + const mapping = { + '<': '<', + '>': '>', + '"': '"', + '&': '&', + }; + function $mol_html_encode(text) { + return text.replace(/[&<">]/gi, str => mapping[str]); + } + $.$mol_html_encode = $mol_html_encode; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_button_copy extends $.$mol_button_copy { + data() { + return Object.fromEntries(this.blobs().map(blob => [blob.type, blob])); + } + html() { + return $mol_html_encode(this.text()); + } + attachments() { + return [new ClipboardItem(this.data())]; + } + click(event) { + const cb = $mol_wire_sync(this.$.$mol_dom_context.navigator.clipboard); + cb.writeText?.(this.text()); + cb.write?.(this.attachments()); + if (cb.writeText === undefined && cb.write === undefined) { + throw new Error("doesn't support copy to clipoard"); + } + } + } + __decorate([ + $mol_mem + ], $mol_button_copy.prototype, "html", null); + __decorate([ + $mol_mem + ], $mol_button_copy.prototype, "attachments", null); + $$.$mol_button_copy = $mol_button_copy; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text_code) = class $mol_text_code extends ($.$mol_stack) { + sidebar_showed(){ + return false; + } + render_visible_only(){ + return false; + } + row_numb(id){ + return 0; + } + row_text(id){ + return ""; + } + syntax(){ + return null; + } + uri_resolve(id){ + return ""; + } + highlight(){ + return ""; + } + Row(id){ + const obj = new this.$.$mol_text_code_row(); + (obj.numb_showed) = () => ((this.sidebar_showed())); + (obj.numb) = () => ((this.row_numb(id))); + (obj.text) = () => ((this.row_text(id))); + (obj.syntax) = () => ((this.syntax())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + rows(){ + return [(this.Row("0"))]; + } + Rows(){ + const obj = new this.$.$mol_list(); + (obj.render_visible_only) = () => ((this.render_visible_only())); + (obj.rows) = () => ((this.rows())); + return obj; + } + text_export(){ + return ""; + } + Copy(){ + const obj = new this.$.$mol_button_copy(); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_text_code_Copy_hint"))); + (obj.text) = () => ((this.text_export())); + return obj; + } + attr(){ + return {...(super.attr()), "mol_text_code_sidebar_showed": (this.sidebar_showed())}; + } + text(){ + return ""; + } + text_lines(){ + return []; + } + find_pos(id){ + return null; + } + uri_base(){ + return ""; + } + sub(){ + return [(this.Rows()), (this.Copy())]; + } + }; + ($mol_mem_key(($.$mol_text_code.prototype), "Row")); + ($mol_mem(($.$mol_text_code.prototype), "Rows")); + ($mol_mem(($.$mol_text_code.prototype), "Copy")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text_code extends $.$mol_text_code { + render_visible_only() { + return this.$.$mol_support_css_overflow_anchor(); + } + text_lines() { + return this.text().split('\n'); + } + rows() { + return this.text_lines().map((_, index) => this.Row(index + 1)); + } + row_text(index) { + return this.text_lines()[index - 1]; + } + row_numb(index) { + return index; + } + find_pos(offset) { + for (const [index, line] of this.text_lines().entries()) { + if (line.length >= offset) { + return this.Row(index + 1).find_pos(offset); + } + else { + offset -= line.length + 1; + } + } + return null; + } + sub() { + return [ + this.Rows(), + ...this.sidebar_showed() ? [this.Copy()] : [] + ]; + } + syntax() { + return this.$.$mol_syntax2_md_code; + } + uri_base() { + return $mol_dom_context.document.location.href; + } + uri_resolve(uri) { + if (/^(\w+script+:)+/.test(uri)) + return null; + try { + const url = new URL(uri, this.uri_base()); + return url.toString(); + } + catch (error) { + $mol_fail_log(error); + return null; + } + } + text_export() { + return this.text() + '\n'; + } + } + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "text_lines", null); + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "rows", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "row_text", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "find_pos", null); + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "sub", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "uri_resolve", null); + $$.$mol_text_code = $mol_text_code; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { rem, px } = $mol_style_unit; + $mol_style_define($mol_text_code, { + whiteSpace: 'pre-wrap', + font: { + family: 'monospace', + }, + Rows: { + padding: $mol_gap.text, + }, + Row: { + font: { + family: 'inherit', + }, + }, + Copy: { + alignSelf: 'flex-start', + justifySelf: 'flex-start', + }, + '@': { + 'mol_text_code_sidebar_showed': { + true: { + $mol_text_code_row: { + margin: { + left: rem(1.75), + }, + }, + }, + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_textarea) = class $mol_textarea extends ($.$mol_stack) { + clickable(next){ + if(next !== undefined) return next; + return false; + } + sidebar_showed(){ + return false; + } + press(next){ + if(next !== undefined) return next; + return null; + } + hover(next){ + if(next !== undefined) return next; + return null; + } + value(next){ + if(next !== undefined) return next; + return ""; + } + hint(){ + return " "; + } + enabled(){ + return true; + } + spellcheck(){ + return true; + } + length_max(){ + return +Infinity; + } + selection(next){ + if(next !== undefined) return next; + return []; + } + bring(){ + return (this.Edit().bring()); + } + submit(next){ + if(next !== undefined) return next; + return null; + } + submit_with_ctrl(){ + return true; + } + Edit(){ + const obj = new this.$.$mol_textarea_edit(); + (obj.value) = (next) => ((this.value(next))); + (obj.hint) = () => ((this.hint())); + (obj.enabled) = () => ((this.enabled())); + (obj.spellcheck) = () => ((this.spellcheck())); + (obj.length_max) = () => ((this.length_max())); + (obj.selection) = (next) => ((this.selection(next))); + (obj.submit) = (next) => ((this.submit(next))); + (obj.submit_with_ctrl) = () => ((this.submit_with_ctrl())); + return obj; + } + row_numb(id){ + return 0; + } + highlight(){ + return ""; + } + View(){ + const obj = new this.$.$mol_text_code(); + (obj.text) = () => ((this.value())); + (obj.render_visible_only) = () => (false); + (obj.row_numb) = (id) => ((this.row_numb(id))); + (obj.sidebar_showed) = () => ((this.sidebar_showed())); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + attr(){ + return { + ...(super.attr()), + "mol_textarea_clickable": (this.clickable()), + "mol_textarea_sidebar_showed": (this.sidebar_showed()) + }; + } + event(){ + return {"keydown": (next) => (this.press(next)), "pointermove": (next) => (this.hover(next))}; + } + sub(){ + return [(this.Edit()), (this.View())]; + } + symbols_alt(){ + return { + "comma": "<", + "period": ">", + "dash": "−", + "equals": "≈", + "graveAccent": "́", + "forwardSlash": "÷", + "E": "€", + "V": "✔", + "X": "×", + "C": "©", + "P": "§", + "H": "₽", + "key0": "°", + "key8": "•", + "key2": "@", + "key3": "#", + "key4": "$", + "key6": "^", + "key7": "&", + "bracketOpen": "[", + "bracketClose": "]", + "slashBack": "|" + }; + } + symbols_alt_ctrl(){ + return {"space": " "}; + } + symbols_alt_shift(){ + return { + "V": "✅", + "X": "❌", + "O": "⭕", + "key1": "❗", + "key4": "💲", + "key7": "❓", + "comma": "«", + "period": "»", + "semicolon": "“", + "quoteSingle": "”", + "dash": "—", + "equals": "≠", + "graveAccent": "̱", + "bracketOpen": "{", + "bracketClose": "}" + }; + } + }; + ($mol_mem(($.$mol_textarea.prototype), "clickable")); + ($mol_mem(($.$mol_textarea.prototype), "press")); + ($mol_mem(($.$mol_textarea.prototype), "hover")); + ($mol_mem(($.$mol_textarea.prototype), "value")); + ($mol_mem(($.$mol_textarea.prototype), "selection")); + ($mol_mem(($.$mol_textarea.prototype), "submit")); + ($mol_mem(($.$mol_textarea.prototype), "Edit")); + ($mol_mem(($.$mol_textarea.prototype), "View")); + ($.$mol_textarea_edit) = class $mol_textarea_edit extends ($.$mol_string) { + dom_name(){ + return "textarea"; + } + enter(){ + return "enter"; + } + field(){ + return {...(super.field()), "scrollTop": 0}; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_textarea extends $.$mol_textarea { + indent_inc() { + let text = this.value(); + let [from, to] = this.selection(); + const rows = text.split('\n'); + let start = 0; + for (let i = 0; i < rows.length; ++i) { + let end = start + rows[i].length; + if (end >= from && start <= to) { + if (to === from || start !== to) { + rows[i] = '\t' + rows[i]; + to += 1; + end += 1; + } + } + start = end + 1; + } + this.value(rows.join('\n')); + this.selection([from + 1, to]); + } + indent_dec() { + let text = this.value(); + let [from, to] = this.selection(); + const rows = text.split('\n'); + let start = 0; + for (let i = 0; i < rows.length; ++i) { + const end = start + rows[i].length; + if (end >= from && start <= to && rows[i].startsWith('\t')) { + rows[i] = rows[i].slice(1); + to -= 1; + if (start < from) + from -= 1; + } + start = end + 1; + } + this.value(rows.join('\n')); + this.selection([from, to]); + } + symbol_insert(event) { + const symbol = event.shiftKey + ? this.symbols_alt_shift()[$mol_keyboard_code[event.keyCode]] + : event.ctrlKey + ? this.symbols_alt_ctrl()[$mol_keyboard_code[event.keyCode]] + : this.symbols_alt()[$mol_keyboard_code[event.keyCode]]; + if (!symbol) + return; + event.preventDefault(); + document.execCommand('insertText', false, symbol); + } + clickable(next) { + if (!this.enabled()) + return true; + return next ?? false; + } + hover(event) { + this.clickable(event.ctrlKey); + } + press(event) { + if (event.altKey) { + this.symbol_insert(event); + } + else { + switch (event.keyCode) { + case !event.shiftKey && $mol_keyboard_code.tab: + this.indent_inc(); + break; + case event.shiftKey && $mol_keyboard_code.tab: + this.indent_dec(); + break; + default: return; + } + event.preventDefault(); + } + } + row_numb(index) { + return index; + } + } + __decorate([ + $mol_mem + ], $mol_textarea.prototype, "clickable", null); + $$.$mol_textarea = $mol_textarea; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/textarea/textarea.view.css", "[mol_textarea] {\n\tflex: 1 0 auto;\n\tflex-direction: column;\n\tvertical-align: top;\n\tmin-height: max-content;\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n\tborder-radius: var(--mol_gap_round);\n\tfont-family: monospace;\n\tposition: relative;\n\ttab-size: 4;\n}\n\n[mol_textarea_view] {\n\tpointer-events: none;\n\twhite-space: inherit;\n\tfont-family: inherit;\n\ttab-size: inherit;\n\tuser-select: none;\n}\n\n[mol_textarea_view_copy] {\n\tpointer-events: all;\n}\n\n[mol_textarea_clickable] > [mol_textarea_view] {\n\tpointer-events: all;\n\tuser-select: auto;\n}\n\n[mol_textarea_clickable] > [mol_textarea_edit] {\n\tuser-select: none;\n}\n\n[mol_textarea_edit] {\n\tfont-family: inherit;\n\tpadding: var(--mol_gap_text);\n\tcolor: transparent !important;\n\tcaret-color: var(--mol_theme_text);\n\tresize: none;\n\ttext-align: inherit;\n\twhite-space: inherit;\n\tborder-radius: inherit;\n\toverflow-anchor: none;\n\tposition: absolute;\n\theight: 100%;\n\twidth: 100%;\n\ttab-size: inherit;\n}\n\n[mol_textarea_sidebar_showed] [mol_textarea_edit] {\n\tleft: 1.75rem;\n\twidth: calc( 100% - 1.75rem );\n}\n\n[mol_textarea_edit]:hover + [mol_textarea_view] {\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_textarea_edit]:focus + [mol_textarea_view] {\n\tz-index: var(--mol_layer_focus);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_labeler) = class $mol_labeler extends ($.$mol_list) { + label(){ + return [(this.title())]; + } + Label(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (32); + (obj.sub) = () => ((this.label())); + return obj; + } + content(){ + return []; + } + Content(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (24); + (obj.sub) = () => ((this.content())); + return obj; + } + rows(){ + return [(this.Label()), (this.Content())]; + } + }; + ($mol_mem(($.$mol_labeler.prototype), "Label")); + ($mol_mem(($.$mol_labeler.prototype), "Content")); + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/labeler/labeler.view.css", "[mol_labeler] {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: stretch;\n\tcursor: inherit;\n}\n\n[mol_labeler_label] {\n\tmin-height: 2rem;\n\tcolor: var(--mol_theme_shade);\n\tpadding: .5rem .75rem 0;\n\tgap: 0 var(--mol_gap_block);\n\tflex-wrap: wrap;\n}\n\n[mol_labeler_content] {\n\tdisplay: flex;\n\tpadding: var(--mol_gap_text);\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_form_field) = class $mol_form_field extends ($.$mol_labeler) { + name(){ + return ""; + } + bid(){ + return ""; + } + Bid(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.bid())]); + return obj; + } + control(){ + return null; + } + bids(){ + return []; + } + label(){ + return [(this.name()), (this.Bid())]; + } + content(){ + return [(this.control())]; + } + }; + ($mol_mem(($.$mol_form_field.prototype), "Bid")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_form_field extends $.$mol_form_field { + bid() { + return this.bids().filter(Boolean)[0] ?? ''; + } + } + __decorate([ + $mol_mem + ], $mol_form_field.prototype, "bid", null); + $$.$mol_form_field = $mol_form_field; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/form/field/field.view.css", "[mol_form_field] {\n\talign-items: stretch;\n}\n\n[mol_form_field_bid] {\n\tcolor: var(--mol_theme_focus);\n\tdisplay: inline-block;\n\ttext-shadow: 0 0;\n}\n\n[mol_form_field_content] {\n\tborder-radius: var(--mol_gap_round);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_float) = class $mol_float extends ($.$mol_view) { + style(){ + return {...(super.style()), "minHeight": "auto"}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/float/float.view.css", "[mol_float] {\n\tposition: sticky;\n\ttop: 0;\n\tleft: 0;\n\tz-index: var(--mol_layer_float);\n\topacity: 1;\n\ttransition: opacity .25s ease-in;\n\tdisplay: block;\n\tbackground: linear-gradient( var(--mol_theme_card), var(--mol_theme_card) ), var(--mol_theme_back);\n\tbox-shadow: 0 0 .5rem hsla(0,0%,0%,.25);\n}\n\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_check) = class $mol_check extends ($.$mol_button_minor) { + checked(next){ + if(next !== undefined) return next; + return false; + } + aria_checked(){ + return "false"; + } + aria_role(){ + return "checkbox"; + } + Icon(){ + return null; + } + title(){ + return ""; + } + Title(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.title())]); + return obj; + } + label(){ + return [(this.Title())]; + } + attr(){ + return { + ...(super.attr()), + "mol_check_checked": (this.checked()), + "aria-checked": (this.aria_checked()), + "role": (this.aria_role()) + }; + } + sub(){ + return [(this.Icon()), (this.label())]; + } + }; + ($mol_mem(($.$mol_check.prototype), "checked")); + ($mol_mem(($.$mol_check.prototype), "Title")); + + +; +"use strict"; +var $; +(function ($) { + function $mol_maybe(value) { + return (value == null) ? [] : [value]; + } + $.$mol_maybe = $mol_maybe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/check/check.css", "[mol_check] {\n\tflex: 0 0 auto;\n\tjustify-content: flex-start;\n\talign-content: center;\n\t/* align-items: flex-start; */\n\tborder: none;\n\tfont-weight: inherit;\n\tbox-shadow: none;\n\ttext-align: left;\n\tdisplay: inline-flex;\n\tflex-wrap: nowrap;\n}\n\n[mol_check_title] {\n\tflex-shrink: 1;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_check extends $.$mol_check { + click(next) { + if (next?.defaultPrevented) + return; + this.checked(!this.checked()); + if (next) + next.preventDefault(); + } + sub() { + return [ + ...$mol_maybe(this.Icon()), + ...this.label(), + ]; + } + label() { + return this.title() ? super.label() : []; + } + aria_checked() { + return String(this.checked()); + } + } + $$.$mol_check = $mol_check; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_icon_chevron) = class $mol_icon_chevron extends ($.$mol_icon) { + path(){ + return "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_check_expand) = class $mol_check_expand extends ($.$mol_check) { + level_style(){ + return "0px"; + } + expanded(next){ + if(next !== undefined) return next; + return false; + } + expandable(){ + return false; + } + Icon(){ + const obj = new this.$.$mol_icon_chevron(); + return obj; + } + level(){ + return 0; + } + style(){ + return {...(super.style()), "paddingLeft": (this.level_style())}; + } + checked(next){ + return (this.expanded(next)); + } + enabled(){ + return (this.expandable()); + } + }; + ($mol_mem(($.$mol_check_expand.prototype), "expanded")); + ($mol_mem(($.$mol_check_expand.prototype), "Icon")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_check_expand extends $.$mol_check_expand { + level_style() { + return `${this.level() * 1 - 1}rem`; + } + expandable() { + return this.expanded() !== null; + } + } + $$.$mol_check_expand = $mol_check_expand; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/check/expand/expand.view.css", "[mol_check_expand] {\n\tmin-width: 20px;\n}\n\n:where([mol_check_expand][disabled]) [mol_check_expand_icon] {\n\tvisibility: hidden;\n}\n\n[mol_check_expand_icon] {\n\tbox-shadow: none;\n}\n[mol_check_expand_icon] {\n\ttransform: rotateZ(0deg);\n}\n\n:where([mol_check_checked]) [mol_check_expand_icon] {\n\ttransform: rotateZ(90deg);\n}\n\n[mol_check_expand_icon] {\n\tvertical-align: text-top;\n}\n\n[mol_check_expand_label] {\n\tmargin-left: 0;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_grid) = class $mol_grid extends ($.$mol_view) { + rows(){ + return []; + } + Table(){ + const obj = new this.$.$mol_grid_table(); + (obj.sub) = () => ((this.rows())); + return obj; + } + head_cells(){ + return []; + } + cells(id){ + return []; + } + cell_content(id){ + return []; + } + cell_content_text(id){ + return (this.cell_content(id)); + } + cell_content_number(id){ + return (this.cell_content(id)); + } + col_head_content(id){ + return []; + } + cell_level(id){ + return 0; + } + cell_expanded(id, next){ + if(next !== undefined) return next; + return false; + } + needle(){ + return ""; + } + cell_value(id){ + return ""; + } + Cell_dimmer(id){ + const obj = new this.$.$mol_dimmer(); + (obj.needle) = () => ((this.needle())); + (obj.haystack) = () => ((this.cell_value(id))); + return obj; + } + row_height(){ + return 32; + } + row_ids(){ + return []; + } + row_id(id){ + return null; + } + col_ids(){ + return []; + } + records(){ + return {}; + } + record(id){ + return null; + } + hierarchy(){ + return null; + } + hierarchy_col(){ + return ""; + } + minimal_width(){ + return 0; + } + sub(){ + return [(this.Head()), (this.Table())]; + } + Head(){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.head_cells())); + return obj; + } + Row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.minimal_height) = () => ((this.row_height())); + (obj.minimal_width) = () => ((this.minimal_width())); + (obj.cells) = () => ((this.cells(id))); + return obj; + } + Cell(id){ + const obj = new this.$.$mol_view(); + return obj; + } + cell(id){ + return null; + } + Cell_text(id){ + const obj = new this.$.$mol_grid_cell(); + (obj.sub) = () => ((this.cell_content_text(id))); + return obj; + } + Cell_number(id){ + const obj = new this.$.$mol_grid_number(); + (obj.sub) = () => ((this.cell_content_number(id))); + return obj; + } + Col_head(id){ + const obj = new this.$.$mol_float(); + (obj.dom_name) = () => ("th"); + (obj.sub) = () => ((this.col_head_content(id))); + return obj; + } + Cell_branch(id){ + const obj = new this.$.$mol_check_expand(); + (obj.level) = () => ((this.cell_level(id))); + (obj.label) = () => ((this.cell_content(id))); + (obj.expanded) = (next) => ((this.cell_expanded(id, next))); + return obj; + } + Cell_content(id){ + return [(this.Cell_dimmer(id))]; + } + }; + ($mol_mem(($.$mol_grid.prototype), "Table")); + ($mol_mem_key(($.$mol_grid.prototype), "cell_expanded")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_dimmer")); + ($mol_mem(($.$mol_grid.prototype), "Head")); + ($mol_mem_key(($.$mol_grid.prototype), "Row")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_text")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_number")); + ($mol_mem_key(($.$mol_grid.prototype), "Col_head")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_branch")); + ($.$mol_grid_table) = class $mol_grid_table extends ($.$mol_list) {}; + ($.$mol_grid_row) = class $mol_grid_row extends ($.$mol_view) { + cells(){ + return []; + } + sub(){ + return (this.cells()); + } + }; + ($.$mol_grid_cell) = class $mol_grid_cell extends ($.$mol_view) { + minimal_height(){ + return 40; + } + }; + ($.$mol_grid_number) = class $mol_grid_number extends ($.$mol_grid_cell) {}; + + +; +"use strict"; +var $; +(function ($) { + class $mol_state_session extends $mol_object { + static 'native()'; + 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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_grid extends $.$mol_grid { + head_cells() { + return this.col_ids().map(colId => this.Col_head(colId)); + } + col_head_content(colId) { + return [colId]; + } + rows() { + return this.row_ids().map(id => this.Row(id)); + } + cells(row_id) { + return this.col_ids().map(col_id => this.Cell({ row: row_id, col: col_id })); + } + col_type(col_id) { + if (col_id === this.hierarchy_col()) + return 'branch'; + const rowFirst = this.row_id(0); + const val = this.record(rowFirst[rowFirst.length - 1])[col_id]; + if (typeof val === 'number') + return 'number'; + return 'text'; + } + Cell(id) { + switch (this.col_type(id.col).valueOf()) { + case 'branch': return this.Cell_branch(id); + case 'number': return this.Cell_number(id); + } + return this.Cell_text(id); + } + cell_content(id) { + return [this.record(id.row[id.row.length - 1])[id.col]]; + } + cell_content_text(id) { + return this.cell_content(id).map(val => typeof val === 'object' ? JSON.stringify(val) : val); + } + records() { + return []; + } + record(id) { + return this.records()[id]; + } + record_ids() { + return Object.keys(this.records()); + } + row_id(index) { + return this.row_ids().slice(index, index + 1).valueOf()[0]; + } + col_ids() { + const rowFirst = this.row_id(0); + if (rowFirst === void 0) + return []; + const record = this.record(rowFirst[rowFirst.length - 1]); + if (!record) + return []; + return Object.keys(record); + } + hierarchy() { + const hierarchy = {}; + const root = hierarchy[''] = { + id: '', + parent: null, + sub: [], + }; + this.record_ids().map(id => { + root.sub.push(hierarchy[id] = { + id, + parent: root, + sub: [], + }); + }); + return hierarchy; + } + row_sub_ids(row) { + return this.hierarchy()[row[row.length - 1]].sub.map(child => row.concat(child.id)); + } + row_root_id() { + return ['']; + } + cell_level(id) { + return id.row.length - 1; + } + row_ids() { + const next = []; + const add = (row) => { + next.push(row); + if (this.row_expanded(row)) { + this.row_sub_ids(row).forEach(child => add(child)); + } + }; + this.row_sub_ids(this.row_root_id()).forEach(child => add(child)); + return next; + } + row_expanded(row_id, next) { + if (!this.row_sub_ids(row_id).length) + return null; + const key = `row_expanded(${JSON.stringify(row_id)})`; + const next2 = $mol_state_session.value(key, next); + return (next2 == null) ? this.row_expanded_default(row_id) : next2; + } + row_expanded_default(row_id) { + return true; + } + cell_expanded(id, next) { + return this.row_expanded(id.row, next); + } + } + __decorate([ + $mol_mem + ], $mol_grid.prototype, "head_cells", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "rows", null); + __decorate([ + $mol_mem_key + ], $mol_grid.prototype, "col_type", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "record_ids", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "hierarchy", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "row_ids", null); + $$.$mol_grid = $mol_grid; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/grid/grid.view.css", "[mol_grid] {\n\tdisplay: block;\n\tflex: 0 1 auto;\n\tposition: relative;\n\toverflow-x: auto;\n}\n\n[mol_grid_gap] {\n\tposition: absolute;\n\tpadding: .1px;\n\ttop: 0;\n\ttransform: translateZ(0);\n}\n\n[mol_grid_table] {\n\tborder-spacing: 0;\n\tdisplay: table-row-group;\n\tposition: relative;\n}\n\n[mol_grid_table] > * {\n\tdisplay: table-row;\n\ttransition: none;\n}\n\n[mol_grid_head] > *,\n[mol_grid_table] > * > * {\n\tdisplay: table-cell;\n\tpadding: var(--mol_gap_text);\n\twhite-space: nowrap;\n\tvertical-align: middle;\n\tbox-shadow: inset 1px 1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_row]:where(:first-child) > * {\n\tbox-shadow: inset 1px 0 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_table] > * > *:where(:first-child) {\n\tbox-shadow: inset 0px 1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_head] > * {\n\tbox-shadow: inset 1px -1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_head] > *:where(:first-child) {\n\tbox-shadow: inset 0px -1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_table] > [mol_grid_row]:where(:first-child) > *:where(:first-child) {\n\tbox-shadow: none;\n}\t\n\n[mol_grid_head] {\n\tdisplay: table-row;\n\ttransform: none !important;\n}\n\n/* [mol_grid_cell_number] {\n\ttext-align: right;\n} */\n\n[mol_grid_col_head] {\n\tfont-weight: inherit;\n\ttext-align: inherit;\n\tdisplay: table-cell;\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_grid_cell_dimmer] {\n\tdisplay: inline-block;\n\tvertical-align: inherit;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_image) = class $mol_image extends ($.$mol_view) { + uri(){ + return ""; + } + loading(){ + return "eager"; + } + decoding(){ + return "async"; + } + cors(){ + return null; + } + natural_width(){ + return 0; + } + natural_height(){ + return 0; + } + load(next){ + if(next !== undefined) return next; + return null; + } + dom_name(){ + return "img"; + } + field(){ + return { + ...(super.field()), + "src": (this.uri()), + "alt": (this.title()), + "loading": (this.loading()), + "decoding": (this.decoding()), + "crossOrigin": (this.cors()) + }; + } + attr(){ + return { + ...(super.attr()), + "width": (this.natural_width()), + "height": (this.natural_height()) + }; + } + event(){ + return {"load": (next) => (this.load(next))}; + } + minimal_width(){ + return 16; + } + minimal_height(){ + return 16; + } + }; + ($mol_mem(($.$mol_image.prototype), "load")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_image extends $.$mol_image { + natural_width(next) { + const dom = this.dom_node(); + if (dom.naturalWidth) + return dom.naturalWidth; + const found = this.uri().match(/\bwidth=(\d+)/); + return found ? Number(found[1]) : null; + } + natural_height(next) { + const dom = this.dom_node(); + if (dom.naturalHeight) + return dom.naturalHeight; + const found = this.uri().match(/\bheight=(\d+)/); + return found ? Number(found[1]) : null; + } + load() { + this.natural_width(null); + this.natural_height(null); + } + } + __decorate([ + $mol_mem + ], $mol_image.prototype, "natural_width", null); + __decorate([ + $mol_mem + ], $mol_image.prototype, "natural_height", null); + $$.$mol_image = $mol_image; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/image/image.view.css", "[mol_image] {\n\tborder-radius: var(--mol_gap_round);\n\toverflow: hidden;\n\tflex: 0 1 auto;\n\tmax-width: 100%;\n\tobject-fit: cover;\n\theight: fit-content;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_link_iconed) = class $mol_link_iconed extends ($.$mol_link) { + icon(){ + return ""; + } + Icon(){ + const obj = new this.$.$mol_image(); + (obj.uri) = () => ((this.icon())); + (obj.title) = () => (""); + return obj; + } + title(){ + return (this.uri()); + } + sub(){ + return [(this.Icon())]; + } + content(){ + return [(this.title())]; + } + host(){ + return ""; + } + }; + ($mol_mem(($.$mol_link_iconed.prototype), "Icon")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_link_iconed extends $.$mol_link_iconed { + icon() { + return `https://favicon.yandex.net/favicon/${this.host()}?color=0,0,0,0&size=32&stub=1`; + } + host() { + const base = this.$.$mol_state_arg.href(); + const url = new URL(this.uri(), base); + return url.hostname; + } + title() { + const uri = this.uri(); + const host = this.host(); + const suffix = (host ? uri.split(this.host(), 2)[1] : uri)?.replace(/^[\/\?#!]+/, ''); + return decodeURIComponent(suffix || host).replace(/^\//, ' '); + } + sub() { + return [ + ...this.host() ? [this.Icon()] : [], + ...this.content() ? [' ', ...this.content()] : [], + ]; + } + } + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "icon", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "host", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "title", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "sub", null); + $$.$mol_link_iconed = $mol_link_iconed; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/link/iconed/iconed.view.css", "[mol_link_iconed] {\n\talign-items: baseline;\n\tdisplay: inline-flex;\n\tpadding: var(--mol_gap_text);\n}\n\n[mol_link_iconed_icon] {\n\tbox-shadow: none;\n\theight: 1.5em;\n\twidth: 1em;\n\tflex: 0 0 auto;\n\tdisplay: inline-block;\n\talign-self: normal;\n\tvertical-align: top;\n\tborder-radius: 0;\n\tobject-fit: scale-down;\n\topacity: .75;\n}\n\n[mol_theme=\"$mol_theme_dark\"] [mol_link_iconed_icon] {\n\tfilter: var(--mol_theme_image);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_embed_native) = class $mol_embed_native extends ($.$mol_scroll) { + mime(){ + return ""; + } + title(){ + return ""; + } + Fallback(){ + const obj = new this.$.$mol_link(); + (obj.uri) = () => ((this.uri())); + (obj.sub) = () => ([(this.title())]); + return obj; + } + uri_change(next){ + if(next !== undefined) return next; + return null; + } + uri(next){ + if(next !== undefined) return next; + return ""; + } + dom_name(){ + return "object"; + } + window(){ + return null; + } + attr(){ + return { + ...(super.attr()), + "data": (this.uri()), + "type": (this.mime()) + }; + } + sub(){ + return [(this.Fallback())]; + } + message(){ + return {"hashchange": (next) => (this.uri_change(next))}; + } + }; + ($mol_mem(($.$mol_embed_native.prototype), "Fallback")); + ($mol_mem(($.$mol_embed_native.prototype), "uri_change")); + ($mol_mem(($.$mol_embed_native.prototype), "uri")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_native extends $.$mol_embed_native { + window() { + $mol_wire_solid(); + return $mol_wire_sync(this).load(this.dom_node_actual()); + } + load(frame) { + return new Promise((done, fail) => { + frame.onload = () => { + try { + if (frame.contentWindow.location.href === 'about:blank') { + return; + } + } + catch { } + done(frame.contentWindow); + }; + frame.onerror = (event) => { + fail(typeof event === 'string' ? new Error(event) : event.error || event); + }; + }); + } + uri_resource() { + return this.uri().replace(/#.*/, ''); + } + message_listener() { + return new $mol_dom_listener($mol_dom_context, 'message', $mol_wire_async(this).message_receive); + } + message_receive(event) { + if (!event) + return; + if (event.source !== this.window()) + return; + if (!Array.isArray(event.data)) + return; + this.message()[event.data[0]]?.(event); + } + uri_change(event) { + this.$.$mol_wait_timeout(1000); + this.uri(event.data[1]); + } + auto() { + return [ + this.message_listener(), + this.window(), + ]; + } + } + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "window", null); + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "uri_resource", null); + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "message_listener", null); + $$.$mol_embed_native = $mol_embed_native; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/embed/native/native.view.css", "[mol_embed_native] {\n\tmax-width: 100%;\n\tmax-height: 100vh;\n\tobject-fit: cover;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tobject-position: top left;\n\tborder-radius: var(--mol_gap_round);\n\taspect-ratio: 4/3;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_icon_youtube) = class $mol_icon_youtube extends ($.$mol_icon) { + path(){ + return "M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_frame) = class $mol_frame extends ($.$mol_embed_native) { + uri(next){ + if(next !== undefined) return next; + return "about:config"; + } + html(){ + return null; + } + allow(){ + return ""; + } + dom_name(){ + return "iframe"; + } + attr(){ + return { + ...(super.attr()), + "data": null, + "type": null, + "src": (this.uri()), + "srcdoc": (this.html()), + "allow": (this.allow()) + }; + } + fullscreen(){ + return true; + } + accelerometer(){ + return true; + } + autoplay(){ + return true; + } + encription(){ + return true; + } + gyroscope(){ + return true; + } + pip(){ + return true; + } + clipboard_read(){ + return true; + } + clipboard_write(){ + return true; + } + }; + ($mol_mem(($.$mol_frame.prototype), "uri")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_frame extends $.$mol_frame { + window() { + return super.window(); + } + allow() { + return [ + ...this.fullscreen() ? ['fullscreen'] : [], + ...this.accelerometer() ? ['accelerometer'] : [], + ...this.autoplay() ? ['autoplay'] : [], + ...this.encription() ? ['encrypted-media'] : [], + ...this.gyroscope() ? ['gyroscope'] : [], + ...this.pip() ? ['picture-in-picture'] : [], + ...this.clipboard_read() ? [`clipboard-read ${this.uri()}`] : [], + ...this.clipboard_write() ? [`clipboard-write ${this.uri()}`] : [], + ].join('; '); + } + } + $$.$mol_frame = $mol_frame; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_define($mol_frame, { + border: { + style: 'none', + }, + maxHeight: $mol_style_unit.vh(100), + }); +})($ || ($ = {})); + +; + ($.$mol_embed_youtube) = class $mol_embed_youtube extends ($.$mol_check) { + active(next){ + if(next !== undefined) return next; + return false; + } + title(){ + return ""; + } + video_preview(){ + return ""; + } + Image(){ + const obj = new this.$.$mol_image(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.video_preview())); + return obj; + } + Hint(){ + const obj = new this.$.$mol_icon_youtube(); + return obj; + } + video_embed(){ + return ""; + } + Frame(){ + const obj = new this.$.$mol_frame(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.video_embed())); + return obj; + } + uri(){ + return ""; + } + video_id(){ + return ""; + } + checked(next){ + return (this.active(next)); + } + sub(){ + return [ + (this.Image()), + (this.Hint()), + (this.Frame()) + ]; + } + }; + ($mol_mem(($.$mol_embed_youtube.prototype), "active")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Image")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Hint")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Frame")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_youtube extends $.$mol_embed_youtube { + video_embed() { + return `https://www.youtube.com/embed/${encodeURIComponent(this.video_id())}?autoplay=1&loop=1`; + } + video_id() { + return this.uri().match(/^https\:\/\/www\.youtube\.com\/(?:embed\/|shorts\/|watch\?v=)([^\/&?#]+)/)?.[1] + ?? this.uri().match(/^https\:\/\/youtu\.be\/([^\/&?#]+)/)?.[1] + ?? 'about:blank'; + } + video_preview() { + return `https://i.ytimg.com/vi/${this.video_id()}/sddefault.jpg`; + } + sub() { + return this.active() + ? [this.Frame()] + : [this.Image(), this.Hint()]; + } + } + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_embed", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_id", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_preview", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "sub", null); + $$.$mol_embed_youtube = $mol_embed_youtube; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/embed/youtube/youtube.view.css", "[mol_embed_youtube] {\n\tpadding: 0;\n\tmax-width: 100%;\n}\n\n[mol_embed_youtube_image] {\n\tflex: auto 1 1;\n}\n\n[mol_embed_youtube_hint] {\n\tposition: absolute;\n left: 50%;\n top: 50%;\n width: 50%;\n height: 50%;\n opacity: 0.3;\n transform: translate(-50%, -50%);\n}\n\n[mol_embed_youtube]:hover [mol_embed_youtube_hint] {\n\topacity: .6;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_embed_any) = class $mol_embed_any extends ($.$mol_view) { + title(){ + return ""; + } + uri(){ + return ""; + } + Image(){ + const obj = new this.$.$mol_image(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + Object(){ + const obj = new this.$.$mol_embed_native(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + Youtube(){ + const obj = new this.$.$mol_embed_youtube(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + }; + ($mol_mem(($.$mol_embed_any.prototype), "Image")); + ($mol_mem(($.$mol_embed_any.prototype), "Object")); + ($mol_mem(($.$mol_embed_any.prototype), "Youtube")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_any extends $.$mol_embed_any { + type() { + try { + const uri = this.uri(); + if (/\b(png|gif|jpg|jpeg|jfif|webp|svg)\b/.test(uri)) + return 'image'; + if (/^https:\/\/www\.youtube\.com\//.test(uri)) + return 'youtube'; + if (/^https:\/\/youtu\.be\//.test(uri)) + return 'youtube'; + } + catch (error) { + $mol_fail_log(error); + return 'image'; + } + return 'object'; + } + sub() { + switch (this.type()) { + case 'image': return [this.Image()]; + case 'youtube': return [this.Youtube()]; + default: return [this.Object()]; + } + } + } + __decorate([ + $mol_mem + ], $mol_embed_any.prototype, "type", null); + __decorate([ + $mol_mem + ], $mol_embed_any.prototype, "sub", null); + $$.$mol_embed_any = $mol_embed_any; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text) = class $mol_text extends ($.$mol_list) { + auto_scroll(){ + return null; + } + block_content(id){ + return []; + } + uri_resolve(id){ + return ""; + } + quote_text(id){ + return ""; + } + highlight(){ + return ""; + } + list_type(id){ + return "-"; + } + list_text(id){ + return ""; + } + header_level(id){ + return 1; + } + header_arg(id){ + return {}; + } + pre_text(id){ + return ""; + } + code_sidebar_showed(){ + return true; + } + pre_sidebar_showed(){ + return (this.code_sidebar_showed()); + } + table_head_cells(id){ + return []; + } + table_rows(id){ + return []; + } + table_cells(id){ + return []; + } + table_cell_text(id){ + return ""; + } + grid_rows(id){ + return []; + } + grid_cells(id){ + return []; + } + grid_cell_text(id){ + return ""; + } + line_text(id){ + return ""; + } + line_type(id){ + return ""; + } + line_content(id){ + return []; + } + code_syntax(){ + return null; + } + link_uri(id){ + return ""; + } + link_host(id){ + return ""; + } + uri_base(){ + return ""; + } + text(){ + return ""; + } + param(){ + return ""; + } + flow_tokens(){ + return []; + } + block_text(id){ + return ""; + } + auto(){ + return [(this.auto_scroll())]; + } + Paragraph(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ((this.block_content(id))); + return obj; + } + Quote(id){ + const obj = new this.$.$mol_text(); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.quote_text(id))); + (obj.highlight) = () => ((this.highlight())); + (obj.auto_scroll) = () => (null); + return obj; + } + List(id){ + const obj = new this.$.$mol_text_list(); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.type) = () => ((this.list_type(id))); + (obj.text) = () => ((this.list_text(id))); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + item_index(id){ + return 0; + } + Header(id){ + const obj = new this.$.$mol_text_header(); + (obj.minimal_height) = () => (40); + (obj.level) = () => ((this.header_level(id))); + (obj.content) = () => ((this.block_content(id))); + (obj.arg) = () => ((this.header_arg(id))); + return obj; + } + Pre(id){ + const obj = new this.$.$mol_text_code(); + (obj.text) = () => ((this.pre_text(id))); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.sidebar_showed) = () => ((this.pre_sidebar_showed())); + return obj; + } + Cut(id){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("hr"); + return obj; + } + Table(id){ + const obj = new this.$.$mol_grid(); + (obj.head_cells) = () => ((this.table_head_cells(id))); + (obj.rows) = () => ((this.table_rows(id))); + return obj; + } + Table_row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.table_cells(id))); + return obj; + } + Table_cell(id){ + const obj = new this.$.$mol_text(); + (obj.auto_scroll) = () => (null); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.table_cell_text(id))); + return obj; + } + Grid(id){ + const obj = new this.$.$mol_grid(); + (obj.rows) = () => ((this.grid_rows(id))); + return obj; + } + Grid_row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.grid_cells(id))); + return obj; + } + Grid_cell(id){ + const obj = new this.$.$mol_text(); + (obj.auto_scroll) = () => (null); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.grid_cell_text(id))); + return obj; + } + String(id){ + const obj = new this.$.$mol_dimmer(); + (obj.dom_name) = () => ("span"); + (obj.needle) = () => ((this.highlight())); + (obj.haystack) = () => ((this.line_text(id))); + return obj; + } + Span(id){ + const obj = new this.$.$mol_text_span(); + (obj.dom_name) = () => ("span"); + (obj.type) = () => ((this.line_type(id))); + (obj.sub) = () => ((this.line_content(id))); + return obj; + } + Code_line(id){ + const obj = new this.$.$mol_text_code_row(); + (obj.numb_showed) = () => (false); + (obj.highlight) = () => ((this.highlight())); + (obj.text) = () => ((this.line_text(id))); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.syntax) = () => ((this.code_syntax())); + return obj; + } + Link(id){ + const obj = new this.$.$mol_link_iconed(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.content) = () => ((this.line_content(id))); + return obj; + } + Link_http(id){ + const obj = new this.$.$mol_link_iconed(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.content) = () => ([(this.link_host(id))]); + return obj; + } + Embed(id){ + const obj = new this.$.$mol_embed_any(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.title) = () => ((this.line_text(id))); + return obj; + } + }; + ($mol_mem_key(($.$mol_text.prototype), "Paragraph")); + ($mol_mem_key(($.$mol_text.prototype), "Quote")); + ($mol_mem_key(($.$mol_text.prototype), "List")); + ($mol_mem_key(($.$mol_text.prototype), "Header")); + ($mol_mem_key(($.$mol_text.prototype), "Pre")); + ($mol_mem_key(($.$mol_text.prototype), "Cut")); + ($mol_mem_key(($.$mol_text.prototype), "Table")); + ($mol_mem_key(($.$mol_text.prototype), "Table_row")); + ($mol_mem_key(($.$mol_text.prototype), "Table_cell")); + ($mol_mem_key(($.$mol_text.prototype), "Grid")); + ($mol_mem_key(($.$mol_text.prototype), "Grid_row")); + ($mol_mem_key(($.$mol_text.prototype), "Grid_cell")); + ($mol_mem_key(($.$mol_text.prototype), "String")); + ($mol_mem_key(($.$mol_text.prototype), "Span")); + ($mol_mem_key(($.$mol_text.prototype), "Code_line")); + ($mol_mem_key(($.$mol_text.prototype), "Link")); + ($mol_mem_key(($.$mol_text.prototype), "Link_http")); + ($mol_mem_key(($.$mol_text.prototype), "Embed")); + ($.$mol_text_header) = class $mol_text_header extends ($.$mol_paragraph) { + arg(){ + return {}; + } + content(){ + return []; + } + Link(){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.arg())); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_text_header_Link_hint"))); + (obj.sub) = () => ((this.content())); + return obj; + } + level(){ + return 1; + } + sub(){ + return [(this.Link())]; + } + }; + ($mol_mem(($.$mol_text_header.prototype), "Link")); + ($.$mol_text_span) = class $mol_text_span extends ($.$mol_paragraph) { + type(){ + return ""; + } + dom_name(){ + return "span"; + } + attr(){ + return {...(super.attr()), "mol_text_type": (this.type())}; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text extends $.$mol_text { + flow_tokens() { + const tokens = []; + this.$.$mol_syntax2_md_flow.tokenize(this.text(), (name, found, chunks) => tokens.push({ name, found, chunks })); + return tokens; + } + block_type(index) { + return this.flow_tokens()[index].name; + } + rows() { + return this.flow_tokens().map(({ name }, index) => { + switch (name) { + case 'quote': return this.Quote(index); + case 'header': return this.Header(index); + case 'list': return this.List(index); + case 'code': return this.Pre(index); + case 'code-indent': return this.Pre(index); + case 'table': return this.Table(index); + case 'grid': return this.Grid(index); + case 'cut': return this.Cut(index); + default: return this.Paragraph(index); + } + }); + } + param() { + return this.toString().replace(/^.*?[\)>]\./, '').replace(/[(<>)]/g, ''); + } + header_level(index) { + return this.flow_tokens()[index].chunks[0].length; + } + header_arg(index) { + return { + [this.param()]: this.block_text(index) + }; + } + list_type(index) { + return this.flow_tokens()[index].chunks[1] ?? ''; + } + item_index(index) { + return this.flow_tokens().slice(0, index).filter(token => token.name === 'block').length + 1; + } + pre_text(index) { + const token = this.flow_tokens()[index]; + return (token.chunks[2] ?? token.chunks[0].replace(/^(\t| (?:\+\+|--|\*\*| ))/gm, '')).replace(/[\n\r]*$/, ''); + } + quote_text(index) { + return this.flow_tokens()[index].chunks[0].replace(/^[>"] /mg, ''); + } + list_text(index) { + return this.flow_tokens()[index].chunks[0].replace(/^([-*+]|(?:\d+[\.\)])+) ?/mg, '').replace(/^ ?/mg, ''); + } + cell_content(indexBlock) { + return this.flow_tokens()[indexBlock].chunks[0] + .split(/\r?\n/g) + .filter(row => row && !/\|--/.test(row)) + .map((row, rowId) => { + return row.split(/\|/g) + .filter(cell => cell) + .map((cell, cellId) => cell.trim()); + }); + } + table_rows(blockId) { + return this.cell_content(blockId) + .slice(1) + .map((row, rowId) => this.Table_row({ block: blockId, row: rowId + 1 })); + } + table_head_cells(blockId) { + return this.cell_content(blockId)[0] + .map((cell, cellId) => this.Table_cell({ block: blockId, row: 0, cell: cellId })); + } + table_cells(id) { + return this.cell_content(id.block)[id.row] + .map((cell, cellId) => this.Table_cell({ block: id.block, row: id.row, cell: cellId })); + } + table_cell_text(id) { + return this.cell_content(id.block)[id.row][id.cell]; + } + grid_content(indexBlock) { + return [...this.flow_tokens()[indexBlock].chunks[0].match(/(?:^! .*?$\r?\n?)+(?:^ +! .*?$\r?\n?)*/gm)] + .map((row, rowId) => { + const cells = []; + for (const line of row.trim().split(/\r?\n/)) { + const [_, indent, content] = /^( *)! (.*)/.exec(line); + const col = Math.ceil(indent.length / 2); + cells[col] = (cells[col] ? cells[col] + '\n' : '') + content; + } + return cells; + }); + } + grid_rows(blockId) { + return this.grid_content(blockId) + .map((row, rowId) => this.Grid_row({ block: blockId, row: rowId })); + } + grid_cells(id) { + return this.grid_content(id.block)[id.row] + .map((cell, cellId) => this.Grid_cell({ block: id.block, row: id.row, cell: cellId })); + } + grid_cell_text(id) { + return this.grid_content(id.block)[id.row][id.cell]; + } + uri_base() { + return $mol_dom_context.document.location.href; + } + uri_base_abs() { + return new URL(this.uri_base(), $mol_dom_context.document.location.href); + } + uri_resolve(uri) { + if (/^(\w+script+:)+/.test(uri)) + return null; + if (/^#\!/.test(uri)) { + const params = {}; + for (const chunk of uri.slice(2).split(this.$.$mol_state_arg.separator)) { + if (!chunk) + continue; + const vals = chunk.split('=').map(decodeURIComponent); + params[vals.shift()] = vals.join('='); + } + return this.$.$mol_state_arg.link(params); + } + try { + const url = new URL(uri, this.uri_base_abs()); + return url.toString(); + } + catch (error) { + $mol_fail_log(error); + return null; + } + } + code_syntax() { + return this.$.$mol_syntax2_md_code; + } + block_text(index) { + const token = this.flow_tokens()[index]; + switch (token.name) { + case 'header': return token.chunks[2]; + default: return token.chunks[0]; + } + } + block_content(index) { + return this.line_content([index]); + } + line_tokens(path) { + const tokens = []; + this.$.$mol_syntax2_md_line.tokenize(this.line_text(path), (name, found, chunks) => tokens.push({ name, found, chunks })); + return tokens; + } + line_token(path) { + const tokens = this.line_tokens(path.slice(0, path.length - 1)); + return tokens[path[path.length - 1]]; + } + line_type(path) { + return this.line_token(path).name; + } + line_text(path) { + if (path.length === 1) + return this.block_text(path[0]); + const { name, found, chunks } = this.line_token(path); + switch (name) { + case 'link': return chunks[0] || chunks[1].replace(/^.*?\/\/|\/.*$/g, ''); + case 'text-link': return chunks[0] || chunks[1].replace(/^.*?\/\/|\/.*$/g, ''); + default: return (chunks[0] || chunks[1] || chunks[2]) ?? found; + } + } + line_content(path) { + return this.line_tokens(path).map(({ name, chunks }, index) => { + const path2 = [...path, index]; + switch (name) { + case 'embed': return this.Embed(path2); + case 'link': return this.Link(path2); + case 'text-link-http': return this.Link_http(path2); + case 'text-link': return this.Link(path2); + case 'image-link': return this.Embed(path2); + case 'code': return this.Code_line(path2); + case '': return this.String(path2); + default: return this.Span(path2); + } + }); + } + link_uri(path) { + const token = this.line_token(path); + const uri = this.uri_resolve(token.chunks[1] ?? token.found); + if (!uri) + throw new Error('Bad link'); + return uri; + } + link_host(path) { + return this.link_uri(path).replace(/^.*?\/\/|\/.*$/g, ''); + } + auto_scroll() { + for (const [index, token] of this.flow_tokens().entries()) { + if (token.name !== 'header') + continue; + const header = this.Header(index); + if (!header.Link().current()) + continue; + new $mol_after_tick(() => this.ensure_visible(header)); + } + } + } + __decorate([ + $mol_mem + ], $mol_text.prototype, "flow_tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "block_type", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "rows", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "param", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "header_level", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "header_arg", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "pre_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "quote_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "list_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "cell_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_rows", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_head_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_cell_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_rows", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_cell_text", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "uri_base_abs", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "uri_resolve", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "block_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_token", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_type", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "link_uri", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "link_host", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "auto_scroll", null); + $$.$mol_text = $mol_text; + class $mol_text_header extends $.$mol_text_header { + dom_name() { + return 'h' + this.level(); + } + } + $$.$mol_text_header = $mol_text_header; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/text/text/text.view.css", "[mol_text] {\n\tline-height: 1.5em;\n\tbox-sizing: border-box;\n\tborder-radius: var(--mol_gap_round);\n\twhite-space: pre-line;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 0 0 auto;\n\ttab-size: 4;\n}\n\n[mol_text_paragraph] {\n\tpadding: var(--mol_gap_text);\n\toverflow: auto;\n\toverflow-x: overlay;\n\tmax-width: 100%;\n\tdisplay: block;\n\tmax-width: 60rem;\n}\n\n[mol_text_span] {\n\tdisplay: inline;\n}\n\n[mol_text_string] {\n\tdisplay: inline;\n\tflex: 0 1 auto;\n\twhite-space: normal;\n}\n\n[mol_text_quote] {\n\tmargin: var(--mol_gap_block);\n\tpadding: var(--mol_gap_block);\n\tbackground: var(--mol_theme_card);\n\tbox-shadow: 0 0 0 1px var(--mol_theme_back);\n}\n\n[mol_text_header] {\n\tdisplay: block;\n\ttext-shadow: 0 0;\n\tfont-weight: normal;\n}\n\n* + [mol_text_header] {\n\tmargin-top: 0.75rem;\n}\n\nh1[mol_text_header] {\n\tfont-size: 1.5rem;\n}\n\nh2[mol_text_header] {\n\tfont-size: 1.5rem;\n\tfont-style: italic;\n}\n\nh3[mol_text_header] {\n\tfont-size: 1.25rem;\n}\n\nh4[mol_text_header] {\n\tfont-size: 1.25em;\n\tfont-style: italic;\n}\n\nh5[mol_text_header] {\n\tfont-size: 1rem;\n}\n\nh6[mol_text_header] {\n\tfont-size: 1rem;\n\tfont-style: italic;\n}\n\n[mol_text_header_link] {\n\tcolor: inherit;\n}\n\n[mol_text_table_cell] {\n\twidth: auto;\n\tdisplay: table-cell;\n\tvertical-align: baseline;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n[mol_text_grid_cell] {\n\twidth: auto;\n\tdisplay: table-cell;\n\tvertical-align: top;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n[mol_text_cut] {\n\tborder: none;\n\twidth: 100%;\n\tbox-shadow: 0 0 0 1px var(--mol_theme_line);\n}\n\n[mol_text_link_http],\n[mol_text_link] {\n\tpadding: 0;\n\tdisplay: inline;\n\twhite-space: nowrap;\n}\n\n[mol_text_link_icon] + [mol_text_embed] {\n\tmargin-left: -1.5rem;\n}\n\n[mol_text_embed_youtube] {\n\tdisplay: inline;\n}\n\n[mol_text_embed_youtube_image],\n[mol_text_embed_youtube_frame],\n[mol_text_embed_object] {\n\tobject-fit: contain;\n\tobject-position: center;\n\tdisplay: inline;\n\twidth: 100vw;\n\tmax-height: calc( 100vh - 6rem );\n\tvertical-align: top;\n}\n[mol_text_embed_object_fallback] {\n\tpadding: 0;\n}\n[mol_text_embed_image] {\n\tobject-fit: contain;\n\tobject-position: center;\n\tdisplay: inline;\n\t/* max-height: calc( 100vh - 6rem ); */\n\tvertical-align: top;\n}\n\n[mol_text_pre] {\n\twhite-space: pre;\n\toverflow-x: auto;\n\toverflow-x: overlay;\n\ttab-size: 2;\n}\n\n[mol_text_code_line] {\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n}\n\n[mol_text_type=\"strong\"] {\n\ttext-shadow: 0 0;\n\tfilter: contrast(1.5);\n}\n\n[mol_text_type=\"emphasis\"] {\n\tfont-style: italic;\n}\n\n[mol_text_type=\"insert\"] {\n\tcolor: var(--mol_theme_special);\n}\n\n[mol_text_type=\"delete\"] {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_text_type=\"remark\"] {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_text_type=\"quote\"] {\n\tfont-style: italic;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_string_button) = class $mol_string_button extends ($.$mol_string) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/string/button/button.view.css", "[mol_string_button]:not(:placeholder-shown):not(:focus):not(:hover):not(:disabled) {\n\tcolor: var(--mol_theme_control);\n\tbackground: transparent;\n\tbox-shadow: none;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_row) = class $mol_row extends ($.$mol_view) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/row/row.view.css", "[mol_row] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: flex-start;\n\talign-content: flex-start;\n\tjustify-content: flex-start;\n\tpadding: var(--mol_gap_block);\n\tgap: var(--mol_gap_block);\n\tflex: 0 0 auto;\n\tbox-sizing: border-box;\n\tmax-width: 100%;\n}\n\n[mol_row] > * {\n\tmax-width: 100%;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_form) = class $mol_form extends ($.$mol_list) { + keydown(next){ + if(next !== undefined) return next; + return null; + } + form_fields(){ + return []; + } + body(){ + return (this.form_fields()); + } + Body(){ + const obj = new this.$.$mol_list(); + (obj.sub) = () => ((this.body())); + return obj; + } + buttons(){ + return []; + } + foot(){ + return (this.buttons()); + } + Foot(){ + const obj = new this.$.$mol_row(); + (obj.sub) = () => ((this.foot())); + return obj; + } + submit_allowed(){ + return true; + } + submit_blocked(){ + return false; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.keydown(next))}; + } + submit(next){ + if(next !== undefined) return next; + return null; + } + rows(){ + return [(this.Body()), (this.Foot())]; + } + }; + ($mol_mem(($.$mol_form.prototype), "keydown")); + ($mol_mem(($.$mol_form.prototype), "Body")); + ($mol_mem(($.$mol_form.prototype), "Foot")); + ($mol_mem(($.$mol_form.prototype), "submit")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_form extends $.$mol_form { + form_fields() { + return [...this.view_find(view => view instanceof $mol_form_field)] + .map(path => path[path.length - 1]); + } + submit_allowed() { + return this.form_fields().every(field => !field.bid()); + } + submit_blocked() { + return !this.submit_allowed(); + } + keydown(next) { + if (next.ctrlKey && next.keyCode === $mol_keyboard_code.enter && !this.submit_blocked()) + this.submit(event); + } + } + __decorate([ + $mol_mem + ], $mol_form.prototype, "form_fields", null); + __decorate([ + $mol_mem + ], $mol_form.prototype, "submit_allowed", null); + $$.$mol_form = $mol_form; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/form/form.view.css", "[mol_form] {\r\n\tgap: var(--mol_gap_block);\r\n}\r\n\r\n[mol_form_body] {\r\n\tgap: var(--mol_gap_block);\r\n}"); +})($ || ($ = {})); + +; + ($.$mol_text_list) = class $mol_text_list extends ($.$mol_text) { + type(){ + return ""; + } + auto_scroll(){ + return null; + } + attr(){ + return {...(super.attr()), "mol_text_list_type": (this.type())}; + } + Paragraph(id){ + const obj = new this.$.$mol_text_list_item(); + (obj.index) = () => ((this.item_index(id))); + (obj.sub) = () => ((this.block_content(id))); + return obj; + } + }; + ($mol_mem_key(($.$mol_text_list.prototype), "Paragraph")); + ($.$mol_text_list_item) = class $mol_text_list_item extends ($.$mol_paragraph) { + index(){ + return 0; + } + attr(){ + return {...(super.attr()), "mol_text_list_item_index": (this.index())}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/text/list/list.view.css", "[mol_text_list] {\r\n\tpadding-left: 1.75rem;\r\n}\r\n\r\n[mol_text_list_item] {\r\n\tcontain: none;\r\n\tdisplay: list-item;\r\n}\r\n\r\n[mol_text_list_item]::before {\r\n\tcontent: attr( mol_text_list_item_index ) \".\";\r\n\twidth: 1.25rem;\r\n\tdisplay: inline-block;\r\n\tposition: absolute;\r\n\tmargin-left: -1.75rem;\r\n\ttext-align: end;\r\n}\r\n\r\n[mol_text_list_type=\"-\"] > [mol_text_list_item]::before,\r\n[mol_text_list_type=\"*\"] > [mol_text_list_item]::before {\r\n\tcontent: \"•\";\r\n}\r\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$hyoo_survey_meet_form) = class $hyoo_survey_meet_form extends ($.$mol_page) { + title(next){ + if(next !== undefined) return next; + return ""; + } + pleasant(next){ + if(next !== undefined) return next; + return ""; + } + Pleasant(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.pleasant(next))); + return obj; + } + Pleasant_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Что понравилось?"); + (obj.control) = () => ((this.Pleasant())); + return obj; + } + improvement(next){ + if(next !== undefined) return next; + return ""; + } + Improvement(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.improvement(next))); + return obj; + } + Improvement_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Что можно улучшить?"); + (obj.control) = () => ((this.Improvement())); + return obj; + } + request(next){ + if(next !== undefined) return next; + return ""; + } + Request(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.request(next))); + return obj; + } + Request_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Идеи? Предложения?"); + (obj.control) = () => ((this.Request())); + return obj; + } + opinion(id){ + return ""; + } + Opinion(id){ + const obj = new this.$.$mol_text(); + (obj.text) = () => ((this.opinion(id))); + return obj; + } + opinions(){ + return [(this.Opinion("0"))]; + } + Opinions(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.opinions())); + return obj; + } + meet(){ + const obj = new this.$.$hyoo_survey_meet(); + return obj; + } + Title(){ + const obj = new this.$.$mol_string_button(); + (obj.value) = (next) => ((this.title(next))); + (obj.hint) = () => ("Как всё прошло?"); + return obj; + } + body(){ + return [ + (this.Pleasant_field()), + (this.Improvement_field()), + (this.Request_field()), + (this.Opinions()) + ]; + } + }; + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "title")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "pleasant")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Pleasant")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Pleasant_field")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "improvement")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Improvement")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Improvement_field")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "request")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Request")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Request_field")); + ($mol_mem_key(($.$hyoo_survey_meet_form.prototype), "Opinion")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Opinions")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "meet")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Title")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $hyoo_survey_meet_form extends $.$hyoo_survey_meet_form { + title(next) { + return this.meet().Title(next)?.val(next) ?? ''; + } + pleasant(next) { + return this.meet().opinion_my()?.Pleasant(next)?.val(next) ?? ''; + } + improvement(next) { + return this.meet().opinion_my()?.Improvement(next)?.val(next) ?? ''; + } + request(next) { + return this.meet().opinion_my()?.Request(next)?.val(next) ?? ''; + } + opinions() { + return this.meet().Opinions()?.keys().map(key => this.Opinion(key)) ?? []; + } + opinion(key) { + const opinion = this.meet().Opinions()?.key(key)?.remote(); + if (!opinion) + return ''; + return (opinion.Pleasant()?.val() ?? '') + '\n' + + (opinion.Improvement()?.val() ?? '') + '\n' + + (opinion.Request()?.val() ?? '') + '\n'; + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_meet_form.prototype, "opinions", null); + $$.$hyoo_survey_meet_form = $hyoo_survey_meet_form; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + $mol_style_define($hyoo_survey_meet_form, { + Opinion: { + background: { + color: $mol_theme.card, + }, + margin: $mol_gap.block, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$hyoo_survey_app) = class $hyoo_survey_app extends ($.$mol_book2_catalog) { + meet_add(next){ + if(next !== undefined) return next; + return null; + } + Meet_add_icon(){ + const obj = new this.$.$mol_icon_plus(); + return obj; + } + Meet_add(){ + const obj = new this.$.$mol_button_minor(); + (obj.click) = (next) => ((this.meet_add(next))); + (obj.sub) = () => ([(this.Meet_add_icon())]); + return obj; + } + meet(id){ + const obj = new this.$.$hyoo_survey_meet(); + return obj; + } + Meet(id){ + const obj = new this.$.$hyoo_survey_meet_form(); + (obj.meet) = () => ((this.meet(id))); + return obj; + } + param(){ + return "meet"; + } + realm(){ + const obj = new this.$.$hyoo_crus_realm(); + return obj; + } + menu_title(){ + return "$hyoo_survey"; + } + menu_tools(){ + return [(this.Meet_add())]; + } + spread_ids(){ + return ["1", "2"]; + } + Spread(id){ + return (this.Meet(id)); + } + }; + ($mol_mem(($.$hyoo_survey_app.prototype), "meet_add")); + ($mol_mem(($.$hyoo_survey_app.prototype), "Meet_add_icon")); + ($mol_mem(($.$hyoo_survey_app.prototype), "Meet_add")); + ($mol_mem_key(($.$hyoo_survey_app.prototype), "meet")); + ($mol_mem_key(($.$hyoo_survey_app.prototype), "Meet")); + ($mol_mem(($.$hyoo_survey_app.prototype), "realm")); + + +; +"use strict"; +var $; +(function ($) { + class $hyoo_survey_person extends $hyoo_crus_entity.with({ + Meets: $hyoo_crus_list_ref_to(() => $hyoo_survey_meet), + }) { + meet_make() { + return this.Meets(true)?.remote_make($hyoo_crus_rank_orgy); + } + } + __decorate([ + $mol_action + ], $hyoo_survey_person.prototype, "meet_make", null); + $.$hyoo_survey_person = $hyoo_survey_person; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $hyoo_survey_app extends $.$hyoo_survey_app { + meet_id(next) { + const id = this.$.$mol_state_arg.value('meet', next?.description); + if (!id) + return null; + return $hyoo_crus_ref(id); + } + profile() { + return this.realm().home().hall_by($hyoo_survey_person, $hyoo_crus_rank_public); + } + meet_add() { + const meet = this.profile().meet_make(); + this.meet_id(meet.ref()); + } + spread_ids() { + return this.profile()?.Meets()?.remote_list().map(meet => meet.ref().description) ?? []; + } + meet(id) { + return this.realm().Node($hyoo_crus_ref(id), $hyoo_survey_meet); + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "meet_id", null); + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "profile", null); + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "spread_ids", null); + __decorate([ + $mol_mem_key + ], $hyoo_survey_app.prototype, "meet", null); + $$.$hyoo_survey_app = $hyoo_survey_app; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + + +export default $ +//# sourceMappingURL=node.js.map diff --git a/node.test.js b/node.test.js new file mode 100644 index 0000000..25c24b2 --- /dev/null +++ b/node.test.js @@ -0,0 +1,20245 @@ +"use strict"; +"use strict"; +Error.stackTraceLimit = 50; +var $; +(function ($) { +})($ || ($ = {})); +module.exports = $; + +; +"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 $ = ( typeof module === 'object' ) ? ( module['export'+'s'] = globalThis ) : globalThis +$.$$ = $ + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_ambient_ref = Symbol('$mol_ambient_ref'); + function $mol_ambient(overrides) { + return Object.setPrototypeOf(overrides, this || $); + } + $.$mol_ambient = $mol_ambient; +})($ || ($ = {})); + +; +"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), + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_owning_map = new WeakMap(); + function $mol_owning_allow(having) { + try { + if (!having) + return false; + if (typeof having !== 'object' && typeof having !== 'function') + return false; + if (having instanceof $mol_delegate) + return false; + if (typeof having['destructor'] !== 'function') + return false; + return true; + } + catch { + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail(error) { + throw error; + } + $.$mol_fail = $mol_fail; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail_hidden(error) { + throw error; + } + $.$mol_fail_hidden = $mol_fail_hidden; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const named = new WeakSet(); + function $mol_func_name(func) { + let name = func.name; + if (name?.length > 1) + return name; + if (named.has(func)) + return name; + for (let key in this) { + try { + if (this[key] !== func) + continue; + name = key; + Object.defineProperty(func, 'name', { value: name }); + break; + } + catch { } + } + named.add(func); + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_object2 { + static $ = $; + [Symbol.toStringTag]; + [$mol_ambient_ref] = null; + get $() { + if (this[$mol_ambient_ref]) + return this[$mol_ambient_ref]; + const owner = $mol_owning_get(this); + return this[$mol_ambient_ref] = 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) { + const obj = new this; + if (init) + init(obj); + return obj; + } + static [Symbol.toPrimitive]() { + return this.toString(); + } + static toString() { + return this[Symbol.toStringTag] || this.$.$mol_func_name(this); + } + static toJSON() { + return this.toString(); + } + destructor() { } + static destructor() { } + toString() { + return this[Symbol.toStringTag] || this.constructor.name + '<>'; + } + } + $.$mol_object2 = $mol_object2; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + let $$; + (function ($$) { + let $; + })($$ = $_1.$$ || ($_1.$$ = {})); + $_1.$mol_object_field = Symbol('$mol_object_field'); + class $mol_object extends $mol_object2 { + static make(config) { + return super.create(obj => { + for (let key in config) + obj[key] = config[key]; + }); + } + } + $_1.$mol_object = $mol_object; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_window extends $mol_object { + static size() { + return { + width: 1024, + height: 768, + }; + } + } + $.$mol_window = $mol_window; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_wire_cursor; + (function ($mol_wire_cursor) { + $mol_wire_cursor[$mol_wire_cursor["stale"] = -1] = "stale"; + $mol_wire_cursor[$mol_wire_cursor["doubt"] = -2] = "doubt"; + $mol_wire_cursor[$mol_wire_cursor["fresh"] = -3] = "fresh"; + $mol_wire_cursor[$mol_wire_cursor["final"] = -4] = "final"; + })($mol_wire_cursor = $.$mol_wire_cursor || ($.$mol_wire_cursor = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_pub extends Object { + data = []; + static get [Symbol.species]() { + return Array; + } + sub_from = 0; + get sub_list() { + const res = []; + for (let i = this.sub_from; i < this.data.length; i += 2) { + res.push(this.data[i]); + } + return res; + } + get sub_empty() { + return this.sub_from === this.data.length; + } + sub_on(sub, pub_pos) { + const pos = this.data.length; + this.data.push(sub, pub_pos); + return pos; + } + sub_off(sub_pos) { + if (!(sub_pos < this.data.length)) { + $mol_fail(new Error(`Wrong pos ${sub_pos}`)); + } + const end = this.data.length - 2; + if (sub_pos !== end) { + this.peer_move(end, sub_pos); + } + this.data.pop(); + this.data.pop(); + if (this.data.length === this.sub_from) + this.reap(); + } + reap() { } + promote() { + $mol_wire_auto()?.track_next(this); + } + fresh() { } + complete() { } + get incompleted() { + return false; + } + emit(quant = $mol_wire_cursor.stale) { + for (let i = this.sub_from; i < this.data.length; i += 2) { + ; + this.data[i].absorb(quant); + } + } + peer_move(from_pos, to_pos) { + const peer = this.data[from_pos]; + const self_pos = this.data[from_pos + 1]; + this.data[to_pos] = peer; + this.data[to_pos + 1] = self_pos; + peer.peer_repos(self_pos, to_pos); + } + peer_repos(peer_pos, self_pos) { + this.data[peer_pos + 1] = self_pos; + } + } + $.$mol_wire_pub = $mol_wire_pub; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_wire_auto_sub = null; + function $mol_wire_auto(next = $.$mol_wire_auto_sub) { + return $.$mol_wire_auto_sub = next; + } + $.$mol_wire_auto = $mol_wire_auto; + $.$mol_wire_affected = []; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $['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) { + try { + return val[$.$mol_dev_format_head](); + } + catch (error) { + return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), ''); + } + } + if (typeof val === 'function') { + return $mol_dev_format_native(val); + } + if (Symbol.toStringTag in val) { + return $mol_dev_format_native(val); + } + 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'); + 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)); + 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', { + ...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' + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_pub_sub extends $mol_wire_pub { + pub_from = 0; + cursor = $mol_wire_cursor.stale; + get temp() { + return false; + } + get pub_list() { + const res = []; + const max = this.cursor >= 0 ? this.cursor : this.sub_from; + for (let i = this.pub_from; i < max; i += 2) { + if (this.data[i]) + res.push(this.data[i]); + } + return res; + } + track_on() { + this.cursor = this.pub_from; + const sub = $mol_wire_auto(); + $mol_wire_auto(this); + return sub; + } + promote() { + if (this.cursor >= this.pub_from) { + $mol_fail(new Error('Circular subscription')); + } + super.promote(); + } + track_next(pub) { + if (this.cursor < 0) + $mol_fail(new Error('Promo to non begun sub')); + if (this.cursor < this.sub_from) { + const next = this.data[this.cursor]; + if (pub === undefined) + return next ?? null; + if (next === pub) { + this.cursor += 2; + return next; + } + if (next) { + if (this.sub_from < this.data.length) { + this.peer_move(this.sub_from, this.data.length); + } + this.peer_move(this.cursor, this.sub_from); + this.sub_from += 2; + } + } + else { + if (pub === undefined) + return null; + if (this.sub_from < this.data.length) { + this.peer_move(this.sub_from, this.data.length); + } + this.sub_from += 2; + } + this.data[this.cursor] = pub; + this.data[this.cursor + 1] = pub.sub_on(this, this.cursor); + this.cursor += 2; + return pub; + } + track_off(sub) { + $mol_wire_auto(sub); + if (this.cursor < 0) { + $mol_fail(new Error('End of non begun sub')); + } + for (let cursor = this.pub_from; cursor < this.cursor; cursor += 2) { + const pub = this.data[cursor]; + pub.fresh(); + } + this.cursor = $mol_wire_cursor.fresh; + } + pub_off(sub_pos) { + this.data[sub_pos] = undefined; + this.data[sub_pos + 1] = undefined; + } + destructor() { + for (let cursor = this.data.length - 2; cursor >= this.sub_from; cursor -= 2) { + const sub = this.data[cursor]; + const pos = this.data[cursor + 1]; + sub.pub_off(pos); + this.data.pop(); + this.data.pop(); + } + this.cursor = this.pub_from; + this.track_cut(); + this.cursor = $mol_wire_cursor.final; + } + track_cut() { + if (this.cursor < this.pub_from) { + $mol_fail(new Error('Cut of non begun sub')); + } + let tail = 0; + for (let cursor = this.cursor; cursor < this.sub_from; cursor += 2) { + const pub = this.data[cursor]; + pub?.sub_off(this.data[cursor + 1]); + if (this.sub_from < this.data.length) { + this.peer_move(this.data.length - 2, cursor); + this.data.pop(); + this.data.pop(); + } + else { + ++tail; + } + } + for (; tail; --tail) { + this.data.pop(); + this.data.pop(); + } + this.sub_from = this.cursor; + } + complete() { } + complete_pubs() { + const limit = this.cursor < 0 ? this.sub_from : this.cursor; + for (let cursor = this.pub_from; cursor < limit; cursor += 2) { + const pub = this.data[cursor]; + if (pub?.incompleted) + return; + } + for (let cursor = this.pub_from; cursor < limit; cursor += 2) { + const pub = this.data[cursor]; + pub?.complete(); + } + } + absorb(quant = $mol_wire_cursor.stale) { + if (this.cursor === $mol_wire_cursor.final) + return; + if (this.cursor >= quant) + return; + this.cursor = quant; + this.emit($mol_wire_cursor.doubt); + } + [$mol_dev_format_head]() { + return $mol_dev_format_native(this); + } + get pub_empty() { + return this.sub_from === this.pub_from; + } + } + $.$mol_wire_pub_sub = $mol_wire_pub_sub; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_timeout extends $mol_object2 { + delay; + task; + id; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_frame extends $mol_after_timeout { + task; + constructor(task) { + super(16, task); + this.task = task; + } + } + $.$mol_after_frame = $mol_after_frame; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_promise_like(val) { + return val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'; + } + $.$mol_promise_like = $mol_promise_like; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const handled = new WeakSet(); + class $mol_wire_fiber extends $mol_wire_pub_sub { + task; + host; + static warm = true; + static planning = new Set(); + static reaping = new Set(); + static plan_task = null; + static plan() { + if (this.plan_task) + return; + this.plan_task = new $mol_after_frame(() => { + try { + this.sync(); + } + finally { + $mol_wire_fiber.plan_task = null; + } + }); + } + static sync() { + while (this.planning.size) { + for (const fiber of this.planning) { + this.planning.delete(fiber); + if (fiber.cursor >= 0) + continue; + if (fiber.cursor === $mol_wire_cursor.final) + continue; + fiber.fresh(); + } + } + while (this.reaping.size) { + const fibers = this.reaping; + this.reaping = new Set; + for (const fiber of fibers) { + if (!fiber.sub_empty) + continue; + fiber.destructor(); + } + } + } + [Symbol.toStringTag]; + cache = undefined; + get args() { + return this.data.slice(0, this.pub_from); + } + result() { + if ($mol_promise_like(this.cache)) + return; + if (this.cache instanceof Error) + return; + return this.cache; + } + get incompleted() { + return $mol_promise_like(this.cache); + } + field() { + return this.task.name + '<>'; + } + constructor(id, task, host, args) { + super(); + this.task = task; + this.host = host; + if (args) + this.data.push(...args); + this.pub_from = this.sub_from = args?.length ?? 0; + this[Symbol.toStringTag] = id; + } + plan() { + $mol_wire_fiber.planning.add(this); + $mol_wire_fiber.plan(); + } + reap() { + $mol_wire_fiber.reaping.add(this); + $mol_wire_fiber.plan(); + } + toString() { + return this[Symbol.toStringTag]; + } + toJSON() { + return this[Symbol.toStringTag]; + } + [$mol_dev_format_head]() { + const cursor = { + [$mol_wire_cursor.stale]: '🔴', + [$mol_wire_cursor.doubt]: '🟡', + [$mol_wire_cursor.fresh]: '🟢', + [$mol_wire_cursor.final]: '🔵', + }[this.cursor] ?? this.cursor.toString(); + return $mol_dev_format_div({}, $mol_owning_check(this, this.cache) + ? $mol_dev_format_auto({ + [$mol_dev_format_head]: () => $mol_dev_format_shade(cursor), + [$mol_dev_format_body]: () => $mol_dev_format_native(this), + }) + : $mol_dev_format_shade($mol_dev_format_native(this), cursor), $mol_dev_format_auto(this.cache)); + } + get $() { + return (this.host ?? this.task)['$']; + } + emit(quant = $mol_wire_cursor.stale) { + if (this.sub_empty) + this.plan(); + else + super.emit(quant); + } + fresh() { + if (this.cursor === $mol_wire_cursor.fresh) + return; + if (this.cursor === $mol_wire_cursor.final) + return; + check: if (this.cursor === $mol_wire_cursor.doubt) { + for (let i = this.pub_from; i < this.sub_from; i += 2) { + ; + this.data[i]?.fresh(); + if (this.cursor !== $mol_wire_cursor.doubt) + break check; + } + this.cursor = $mol_wire_cursor.fresh; + return; + } + const bu = this.track_on(); + let result; + try { + switch (this.pub_from) { + case 0: + result = this.task.call(this.host); + break; + case 1: + result = this.task.call(this.host, this.data[0]); + break; + default: + result = this.task.call(this.host, ...this.args); + break; + } + if ($mol_promise_like(result) && !handled.has(result)) { + const put = (res) => { + if (this.cache === result) + this.put(res); + return res; + }; + result = result.then(put, put); + } + } + catch (error) { + if (error instanceof Error || $mol_promise_like(error)) { + result = error; + } + else { + result = new Error(String(error), { cause: error }); + } + if ($mol_promise_like(result) && !handled.has(result)) { + result = result.finally(() => { + if (this.cache === result) + this.absorb(); + }); + } + } + if ($mol_promise_like(result) && !handled.has(result)) { + result = Object.assign(result, { + destructor: result['destructor'] ?? (() => { }) + }); + handled.add(result); + const error = new Error(`Promise in ${this}`); + Object.defineProperty(result, 'stack', { get: () => error.stack }); + } + if (!$mol_promise_like(result)) { + this.track_cut(); + } + this.track_off(bu); + this.put(result); + } + refresh() { + this.cursor = $mol_wire_cursor.stale; + this.fresh(); + } + sync() { + if (!$mol_wire_fiber.warm) { + return this.result(); + } + this.promote(); + this.fresh(); + if (this.cache instanceof Error) { + return $mol_fail_hidden(this.cache); + } + if ($mol_promise_like(this.cache)) { + return $mol_fail_hidden(this.cache); + } + return this.cache; + } + async async() { + while (true) { + this.fresh(); + if (this.cache instanceof Error) { + $mol_fail_hidden(this.cache); + } + if (!$mol_promise_like(this.cache)) + return this.cache; + await Promise.race([this.cache, this.step()]); + if (!$mol_promise_like(this.cache)) + return this.cache; + if (this.cursor === $mol_wire_cursor.final) { + await new Promise(() => { }); + } + } + } + step() { + return new Promise(done => { + const sub = new $mol_wire_pub_sub; + const prev = sub.track_on(); + sub.track_next(this); + sub.track_off(prev); + sub.absorb = () => { + done(null); + sub.destructor(); + }; + }); + } + } + $.$mol_wire_fiber = $mol_wire_fiber; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_guid(length = 8, exists = () => false) { + for (;;) { + let id = Math.random().toString(36).substring(2, length + 2).toUpperCase(); + if (exists(id)) + continue; + return id; + } + } + $.$mol_guid = $mol_guid; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_key_store = new WeakMap(); + function $mol_key(value) { + if (typeof value === 'bigint') + return value.toString() + 'n'; + if (typeof value === 'symbol') + return value.description; + if (!value) + return JSON.stringify(value); + if (typeof value !== 'object' && typeof value !== 'function') + return JSON.stringify(value); + return JSON.stringify(value, (field, value) => { + if (typeof value === 'bigint') + return value.toString() + 'n'; + if (typeof value === 'symbol') + return value.description; + if (!value) + return value; + if (typeof value !== 'object' && typeof value !== 'function') + return value; + if (Array.isArray(value)) + return value; + const proto = Reflect.getPrototypeOf(value); + if (!proto) + return value; + if (Reflect.getPrototypeOf(proto) === null) + return value; + if ('toJSON' in value) + return value; + if (value instanceof RegExp) + return value.toString(); + if (value instanceof Uint8Array) + return [...value]; + let key = $.$mol_key_store.get(value); + if (key) + return key; + key = $mol_guid(); + $.$mol_key_store.set(value, key); + return key; + }); + } + $.$mol_key = $mol_key; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_compare_deep_cache = new WeakMap(); + function $mol_compare_deep(left, right) { + if (Object.is(left, right)) + return true; + if (left === null) + return false; + if (right === null) + return false; + if (typeof left !== 'object') + return false; + if (typeof right !== 'object') + return false; + const left_proto = Reflect.getPrototypeOf(left); + const right_proto = Reflect.getPrototypeOf(right); + if (left_proto !== right_proto) + return false; + if (left instanceof Boolean) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof Number) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof String) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof Date) + return Object.is(left.valueOf(), right['valueOf']()); + if (left instanceof RegExp) + return left.source === right.source && left.flags === right.flags; + if (left instanceof Error) + return left.message === right.message && left.stack === right.stack; + let left_cache = $.$mol_compare_deep_cache.get(left); + if (left_cache) { + const right_cache = left_cache.get(right); + if (typeof right_cache === 'boolean') + return right_cache; + } + else { + left_cache = new WeakMap([[right, true]]); + $.$mol_compare_deep_cache.set(left, left_cache); + } + let result; + try { + if (!left_proto) + result = compare_pojo(left, right); + else if (!Reflect.getPrototypeOf(left_proto)) + result = compare_pojo(left, right); + else if (Symbol.toPrimitive in left) + result = compare_primitive(left, right); + else if (Array.isArray(left)) + result = compare_array(left, right); + else if (left instanceof Set) + result = compare_set(left, right); + else if (left instanceof Map) + result = compare_map(left, right); + else if (ArrayBuffer.isView(left)) + result = compare_buffer(left, right); + else if (Symbol.iterator in left) + result = compare_iterator(left[Symbol.iterator](), right[Symbol.iterator]()); + else + result = false; + } + finally { + left_cache.set(right, result); + } + return result; + } + $.$mol_compare_deep = $mol_compare_deep; + function compare_array(left, right) { + const len = left.length; + if (len !== right.length) + return false; + for (let i = 0; i < len; ++i) { + if (!$mol_compare_deep(left[i], right[i])) + return false; + } + return true; + } + function compare_buffer(left, right) { + const len = left.byteLength; + if (len !== right.byteLength) + return false; + if (left instanceof DataView) + return compare_buffer(new Uint8Array(left.buffer, left.byteOffset, left.byteLength), new Uint8Array(right.buffer, left.byteOffset, left.byteLength)); + for (let i = 0; i < len; ++i) { + if (left[i] !== right[i]) + return false; + } + return true; + } + function compare_iterator(left, right) { + while (true) { + const left_next = left.next(); + const right_next = right.next(); + if (left_next.done !== right_next.done) + return false; + if (left_next.done) + break; + if (!$mol_compare_deep(left_next.value, right_next.value)) + return false; + } + return true; + } + function compare_set(left, right) { + if (left.size !== right.size) + return false; + return compare_iterator(left.values(), right.values()); + } + function compare_map(left, right) { + if (left.size !== right.size) + return false; + return compare_iterator(left.keys(), right.keys()) + && compare_iterator(left.values(), right.values()); + } + function compare_pojo(left, right) { + const left_keys = Object.getOwnPropertyNames(left); + const right_keys = Object.getOwnPropertyNames(right); + if (!compare_array(left_keys, right_keys)) + return false; + for (let key of left_keys) { + if (!$mol_compare_deep(left[key], right[key])) + return false; + } + const left_syms = Object.getOwnPropertySymbols(left); + const right_syms = Object.getOwnPropertySymbols(right); + if (!compare_array(left_syms, right_syms)) + return false; + for (let key of left_syms) { + if (!$mol_compare_deep(left[key], right[key])) + return false; + } + return true; + } + function compare_primitive(left, right) { + return Object.is(left[Symbol.toPrimitive]('default'), right[Symbol.toPrimitive]('default')); + } +})($ || ($ = {})); + +; +"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 = []; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_span extends $mol_object2 { + uri; + source; + row; + col; + length; + constructor(uri, source, row, col, length) { + super(); + this.uri = uri; + this.source = source; + this.row = row; + this.col = col; + this.length = length; + this[Symbol.toStringTag] = `${this.uri}#${this.row}:${this.col}/${this.length}`; + } + static unknown = $mol_span.begin('?'); + static begin(uri, source = '') { + return new $mol_span(uri, source, 1, 1, 0); + } + static end(uri, source) { + return new $mol_span(uri, source, 1, source.length + 1, 0); + } + static entire(uri, source) { + return new $mol_span(uri, source, 1, 1, source.length); + } + toString() { + return this[Symbol.toStringTag]; + } + toJSON() { + return { + uri: this.uri, + row: this.row, + col: this.col, + length: this.length + }; + } + error(message, Class = Error) { + return new Class(`${message} (${this})`); + } + span(row, col, length) { + return new $mol_span(this.uri, this.source, row, col, length); + } + after(length = 0) { + return new $mol_span(this.uri, this.source, this.row, this.col + this.length, length); + } + slice(begin, end = -1) { + let len = this.length; + if (begin < 0) + begin += len; + if (end < 0) + end += len; + if (begin < 0 || begin > len) + this.$.$mol_fail(this.error(`Begin value '${begin}' out of range`, RangeError)); + if (end < 0 || end > len) + this.$.$mol_fail(this.error(`End value '${end}' out of range`, RangeError)); + if (end < begin) + this.$.$mol_fail(this.error(`End value '${end}' can't be less than begin value`, RangeError)); + return this.span(this.row, this.col + begin, end - begin); + } + } + $.$mol_span = $mol_span; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_to_string(tree) { + let output = []; + function dump(tree, prefix = '') { + if (tree.type.length) { + if (!prefix.length) { + prefix = "\t"; + } + output.push(tree.type); + if (tree.kids.length == 1) { + output.push(' '); + dump(tree.kids[0], prefix); + return; + } + output.push("\n"); + } + else if (tree.value.length || prefix.length) { + output.push("\\" + tree.value + "\n"); + } + for (const kid of tree.kids) { + output.push(prefix); + dump(kid, prefix + "\t"); + } + } + dump(tree); + return output.join(''); + } + $.$mol_tree2_to_string = $mol_tree2_to_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_tree2 extends Object { + type; + value; + kids; + span; + constructor(type, value, kids, span) { + super(); + this.type = type; + this.value = value; + this.kids = kids; + this.span = span; + this[Symbol.toStringTag] = type || '\\' + value; + } + static list(kids, span = $mol_span.unknown) { + return new $mol_tree2('', '', kids, span); + } + list(kids) { + return $mol_tree2.list(kids, this.span); + } + static data(value, kids = [], span = $mol_span.unknown) { + const chunks = value.split('\n'); + if (chunks.length > 1) { + let kid_span = span.span(span.row, span.col, 0); + const data = chunks.map(chunk => { + kid_span = kid_span.after(chunk.length); + return new $mol_tree2('', chunk, [], kid_span); + }); + kids = [...data, ...kids]; + value = ''; + } + return new $mol_tree2('', value, kids, span); + } + data(value, kids = []) { + return $mol_tree2.data(value, kids, this.span); + } + static struct(type, kids = [], span = $mol_span.unknown) { + if (/[ \n\t\\]/.test(type)) { + $$.$mol_fail(span.error(`Wrong type ${JSON.stringify(type)}`)); + } + return new $mol_tree2(type, '', kids, span); + } + struct(type, kids = []) { + return $mol_tree2.struct(type, kids, this.span); + } + clone(kids, span = this.span) { + return new $mol_tree2(this.type, this.value, kids, span); + } + text() { + var values = []; + for (var kid of this.kids) { + if (kid.type) + continue; + values.push(kid.value); + } + return this.value + values.join('\n'); + } + static fromString(str, uri = 'unknown') { + return $$.$mol_tree2_from_string(str, uri); + } + toString() { + return $$.$mol_tree2_to_string(this); + } + insert(value, ...path) { + if (path.length === 0) + return value; + const type = path[0]; + if (typeof type === 'string') { + let replaced = false; + const sub = this.kids.map((item, index) => { + if (item.type !== type) + return item; + replaced = true; + return item.insert(value, ...path.slice(1)); + }).filter(Boolean); + if (!replaced && value) { + sub.push(this.struct(type, []).insert(value, ...path.slice(1))); + } + return this.clone(sub); + } + else if (typeof type === 'number') { + const sub = this.kids.slice(); + sub[type] = (sub[type] || this.list([])) + .insert(value, ...path.slice(1)); + return this.clone(sub.filter(Boolean)); + } + else { + const kids = ((this.kids.length === 0) ? [this.list([])] : this.kids) + .map(item => item.insert(value, ...path.slice(1))) + .filter(Boolean); + return this.clone(kids); + } + } + select(...path) { + let next = [this]; + for (const type of path) { + if (!next.length) + break; + const prev = next; + next = []; + for (var item of prev) { + switch (typeof (type)) { + case 'string': + for (var child of item.kids) { + if (child.type == type) { + next.push(child); + } + } + break; + case 'number': + if (type < item.kids.length) + next.push(item.kids[type]); + break; + default: next.push(...item.kids); + } + } + } + return this.list(next); + } + filter(path, value) { + const sub = this.kids.filter(item => { + var found = item.select(...path); + if (value === undefined) { + return Boolean(found.kids.length); + } + else { + return found.kids.some(child => child.value == value); + } + }); + return this.clone(sub); + } + hack_self(belt, context = {}) { + let handle = belt[this.type] || belt['']; + if (!handle || handle === Object.prototype[this.type]) { + handle = (input, belt, context) => [ + input.clone(input.hack(belt, context), context.span) + ]; + } + try { + return handle(this, belt, context); + } + catch (error) { + error.message += `\n${this.clone([])}${this.span}`; + $mol_fail_hidden(error); + } + } + hack(belt, context = {}) { + return [].concat(...this.kids.map(child => child.hack_self(belt, context))); + } + error(message, Class = Error) { + return this.span.error(`${message}\n${this.clone([])}`, Class); + } + } + $.$mol_tree2 = $mol_tree2; + class $mol_tree2_empty extends $mol_tree2 { + constructor() { + super('', '', [], $mol_span.unknown); + } + } + $.$mol_tree2_empty = $mol_tree2_empty; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_error_syntax extends SyntaxError { + reason; + line; + span; + constructor(reason, line, span) { + super(`${reason}\n${span}\n${line.substring(0, span.col - 1).replace(/\S/g, ' ')}${''.padEnd(span.length, '!')}\n${line}`); + this.reason = reason; + this.line = line; + this.span = span; + } + } + $.$mol_error_syntax = $mol_error_syntax; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_from_string(str, uri = '?') { + const span = $mol_span.entire(uri, str); + var root = $mol_tree2.list([], span); + var stack = [root]; + var pos = 0, row = 0, min_indent = 0; + while (str.length > pos) { + var indent = 0; + var line_start = pos; + row++; + while (str.length > pos && str[pos] == '\t') { + indent++; + pos++; + } + if (!root.kids.length) { + min_indent = indent; + } + indent -= min_indent; + if (indent < 0 || indent >= stack.length) { + const sp = span.span(row, 1, pos - line_start); + while (str.length > pos && str[pos] != '\n') { + pos++; + } + if (indent < 0) { + if (str.length > pos) { + this.$mol_fail(new this.$mol_error_syntax(`Too few tabs`, str.substring(line_start, pos), sp)); + } + } + else { + this.$mol_fail(new this.$mol_error_syntax(`Too many tabs`, str.substring(line_start, pos), sp)); + } + } + stack.length = indent + 1; + var parent = stack[indent]; + while (str.length > pos && str[pos] != '\\' && str[pos] != '\n') { + var error_start = pos; + while (str.length > pos && (str[pos] == ' ' || str[pos] == '\t')) { + pos++; + } + if (pos > error_start) { + let line_end = str.indexOf('\n', pos); + if (line_end === -1) + line_end = str.length; + const sp = span.span(row, error_start - line_start + 1, pos - error_start); + this.$mol_fail(new this.$mol_error_syntax(`Wrong nodes separator`, str.substring(line_start, line_end), sp)); + } + var type_start = pos; + while (str.length > pos && + str[pos] != '\\' && + str[pos] != ' ' && + str[pos] != '\t' && + str[pos] != '\n') { + pos++; + } + if (pos > type_start) { + let next = new $mol_tree2(str.slice(type_start, pos), '', [], span.span(row, type_start - line_start + 1, pos - type_start)); + const parent_kids = parent.kids; + parent_kids.push(next); + parent = next; + } + if (str.length > pos && str[pos] == ' ') { + pos++; + } + } + if (str.length > pos && str[pos] == '\\') { + var data_start = pos; + while (str.length > pos && str[pos] != '\n') { + pos++; + } + let next = new $mol_tree2('', str.slice(data_start + 1, pos), [], span.span(row, data_start - line_start + 2, pos - data_start - 1)); + const parent_kids = parent.kids; + parent_kids.push(next); + parent = next; + } + if (str.length === pos && stack.length > 0) { + const sp = span.span(row, pos - line_start + 1, 1); + this.$mol_fail(new this.$mol_error_syntax(`Unexpected EOF, LF required`, str.substring(line_start, str.length), sp)); + } + stack.push(parent); + pos++; + } + return root; + } + $.$mol_tree2_from_string = $mol_tree2_from_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_from_json(json, span = $mol_span.unknown) { + if (typeof json === 'boolean' || typeof json === 'number' || json === null) { + return new $mol_tree2(String(json), '', [], span); + } + if (typeof json === 'string') { + return $mol_tree2.data(json, [], span); + } + if (Array.isArray(json)) { + const sub = json.map(json => $mol_tree2_from_json(json, span)); + return new $mol_tree2('/', '', sub, span); + } + if (ArrayBuffer.isView(json)) { + const buf = new Uint8Array(json.buffer, json.byteOffset, json.byteLength); + return $mol_tree2.data(String.fromCharCode(...buf), [], span); + } + if (json instanceof Date) { + return new $mol_tree2('', json.toISOString(), [], span); + } + if (typeof json.toJSON === 'function') { + return $mol_tree2_from_json(json.toJSON()); + } + if (json.toString !== Object.prototype.toString) { + return $mol_tree2.data(json.toString(), [], span); + } + if (json instanceof Error) { + const { name, message, stack } = json; + json = { ...json, name, message, stack }; + } + const sub = []; + for (var key in json) { + const val = json[key]; + if (val === undefined) + continue; + const subsub = $mol_tree2_from_json(val, span); + if (/^[^\n\t\\ ]+$/.test(key)) { + sub.push(new $mol_tree2(key, '', [subsub], span)); + } + else { + sub.push($mol_tree2.data(key, [subsub], span)); + } + } + return new $mol_tree2('*', '', sub, span); + } + $.$mol_tree2_from_json = $mol_tree2_from_json; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_term_color { + static reset = this.ansi(0, 0); + static bold = this.ansi(1, 22); + static italic = this.ansi(3, 23); + static underline = this.ansi(4, 24); + static inverse = this.ansi(7, 27); + static hidden = this.ansi(8, 28); + static strike = this.ansi(9, 29); + static gray = this.ansi(90, 39); + static red = this.ansi(91, 39); + static green = this.ansi(92, 39); + static yellow = this.ansi(93, 39); + static blue = this.ansi(94, 39); + static magenta = this.ansi(95, 39); + static cyan = this.ansi(96, 39); + static Gray = (str) => this.inverse(this.gray(str)); + static Red = (str) => this.inverse(this.red(str)); + static Green = (str) => this.inverse(this.green(str)); + static Yellow = (str) => this.inverse(this.yellow(str)); + static Blue = (str) => this.inverse(this.blue(str)); + static Magenta = (str) => this.inverse(this.magenta(str)); + static Cyan = (str) => this.inverse(this.cyan(str)); + static ansi(open, close) { + if (typeof process === 'undefined') + return String; + if (!process.stdout.isTTY) + return String; + const prefix = `\x1b[${open}m`; + const postfix = `\x1b[${close}m`; + const suffix_regexp = new RegExp(postfix.replace('[', '\\['), 'g'); + return function colorer(str) { + str = String(str); + if (str === '') + return str; + const suffix = str.replace(suffix_regexp, prefix); + return prefix + suffix + postfix; + }; + } + } + $.$mol_term_color = $mol_term_color; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_log3_node_make(level, output, type, color) { + return function $mol_log3_logger(event) { + if (!event.time) + event = { time: new Date().toISOString(), ...event }; + let tree = this.$mol_tree2_from_json(event); + tree = tree.struct(type, tree.kids); + let str = color(tree.toString()); + this.console[level](str); + const self = this; + return () => self.console.groupEnd(); + }; + } + $.$mol_log3_node_make = $mol_log3_node_make; + $.$mol_log3_come = $mol_log3_node_make('info', 'stdout', 'come', $mol_term_color.blue); + $.$mol_log3_done = $mol_log3_node_make('info', 'stdout', 'done', $mol_term_color.green); + $.$mol_log3_fail = $mol_log3_node_make('error', 'stderr', 'fail', $mol_term_color.red); + $.$mol_log3_warn = $mol_log3_node_make('warn', 'stderr', 'warn', $mol_term_color.yellow); + $.$mol_log3_rise = $mol_log3_node_make('log', 'stdout', 'rise', $mol_term_color.magenta); + $.$mol_log3_area = $mol_log3_node_make('log', 'stdout', 'area', $mol_term_color.cyan); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_task extends $mol_wire_fiber { + static getter(task) { + return function $mol_wire_task_get(host, args) { + const sub = $mol_wire_auto(); + const existen = sub?.track_next(); + reuse: if (existen) { + if (!existen.temp) + break reuse; + if (existen.host !== host) + break reuse; + if (existen.task !== task) + break reuse; + if (!$mol_compare_deep(existen.args, args)) + break reuse; + return existen; + } + const next = new $mol_wire_task(`${host?.[Symbol.toStringTag] ?? host}.${task.name}<#>`, task, host, args); + if (existen?.temp) { + $$.$mol_log3_warn({ + place: '$mol_wire_task', + message: `Non idempotency`, + existen, + next, + hint: 'Ignore it', + }); + } + return next; + }; + } + get temp() { + return true; + } + complete() { + if ($mol_promise_like(this.cache)) + return; + this.destructor(); + } + put(next) { + const prev = this.cache; + this.cache = next; + if ($mol_promise_like(next)) { + this.cursor = $mol_wire_cursor.fresh; + if (next !== prev) + this.emit(); + return next; + } + this.cursor = $mol_wire_cursor.final; + if (this.sub_empty) + this.destructor(); + else if (next !== prev) + this.emit(); + return next; + } + } + $.$mol_wire_task = $mol_wire_task; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_method(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const temp = $mol_wire_task.getter(orig); + const value = function (...args) { + const fiber = temp(this ?? null, args); + return fiber.sync(); + }; + Object.defineProperty(value, 'name', { value: orig.name + ' ' }); + Object.assign(value, { orig }); + const descr2 = { ...descr, value }; + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_method = $mol_wire_method; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const catched = new WeakMap(); + function $mol_fail_catch(error) { + if (typeof error !== 'object') + return false; + if ($mol_promise_like(error)) + $mol_fail_hidden(error); + if (catched.get(error)) + return false; + catched.set(error, true); + return true; + } + $.$mol_fail_catch = $mol_fail_catch; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_fail_log(error) { + if ($mol_promise_like(error)) + return false; + if (!$mol_fail_catch(error)) + return false; + console.error(error); + return true; + } + $.$mol_fail_log = $mol_fail_log; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_atom extends $mol_wire_fiber { + static solo(host, task) { + const field = task.name + '<>'; + const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value; + if (existen) + return existen; + const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host); + const key = `${prefix}.${field}`; + const fiber = new $mol_wire_atom(key, task, host, []); + (host ?? task)[field] = fiber; + return fiber; + } + static plex(host, task, key) { + const field = task.name + '<>'; + let dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value; + const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host); + const key_str = $mol_key(key); + if (dict) { + const existen = dict.get(key_str); + if (existen) + return existen; + } + else { + dict = (host ?? task)[field] = new Map(); + } + const id = `${prefix}.${task.name}<${key_str.replace(/^"|"$/g, "'")}>`; + const fiber = new $mol_wire_atom(id, task, host, [key]); + dict.set(key_str, fiber); + return fiber; + } + static watching = new Set(); + static watcher = null; + static watch() { + $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch); + for (const atom of $mol_wire_atom.watching) { + if (atom.cursor === $mol_wire_cursor.final) { + $mol_wire_atom.watching.delete(atom); + } + else { + atom.cursor = $mol_wire_cursor.stale; + atom.fresh(); + } + } + } + watch() { + if (!$mol_wire_atom.watcher) { + $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch); + } + $mol_wire_atom.watching.add(this); + } + resync(args) { + return this.put(this.task.call(this.host, ...args)); + } + once() { + return this.sync(); + } + channel() { + return Object.assign((next) => { + if (next !== undefined) + return this.resync([...this.args, next]); + if (!$mol_wire_fiber.warm) + return this.result(); + if ($mol_wire_auto()?.temp) { + return this.once(); + } + else { + return this.sync(); + } + }, { atom: this }); + } + destructor() { + super.destructor(); + const prev = this.cache; + if ($mol_owning_check(this, prev)) { + prev.destructor(); + } + if (this.pub_from === 0) { + ; + (this.host ?? this.task)[this.field()] = null; + } + else { + ; + (this.host ?? this.task)[this.field()].delete($mol_key(this.args[0])); + } + } + put(next) { + const prev = this.cache; + update: if (next !== prev) { + try { + if ($mol_compare_deep(prev, next)) + break update; + } + catch (error) { + $mol_fail_log(error); + } + if ($mol_owning_check(this, prev)) { + prev.destructor(); + } + if ($mol_owning_catch(this, next)) { + try { + next[Symbol.toStringTag] = this[Symbol.toStringTag]; + } + catch { + Object.defineProperty(next, Symbol.toStringTag, { value: this[Symbol.toStringTag] }); + } + } + if (!this.sub_empty) + this.emit(); + } + this.cache = next; + this.cursor = $mol_wire_cursor.fresh; + if ($mol_promise_like(next)) + return next; + this.complete_pubs(); + return next; + } + } + __decorate([ + $mol_wire_method + ], $mol_wire_atom.prototype, "resync", null); + __decorate([ + $mol_wire_method + ], $mol_wire_atom.prototype, "once", null); + $.$mol_wire_atom = $mol_wire_atom; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_solo(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const descr2 = { + ...descr, + value: function (...args) { + let atom = $mol_wire_atom.solo(this, orig); + if ((args.length === 0) || (args[0] === undefined)) { + if (!$mol_wire_fiber.warm) + return atom.result(); + if ($mol_wire_auto()?.temp) { + return atom.once(); + } + else { + return atom.sync(); + } + } + return atom.resync(args); + } + }; + Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' }); + Reflect.defineProperty(descr2.value, 'length', { value: orig.length }); + Object.assign(descr2.value, { orig }); + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_solo = $mol_wire_solo; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_plex(host, field, descr) { + if (!descr) + descr = Reflect.getOwnPropertyDescriptor(host, field); + const orig = descr?.value ?? host[field]; + const sup = Reflect.getPrototypeOf(host); + if (typeof sup[field] === 'function') { + Object.defineProperty(orig, 'name', { value: sup[field].name }); + } + const descr2 = { + ...descr, + value: function (...args) { + let atom = $mol_wire_atom.plex(this, orig, args[0]); + if ((args.length === 1) || (args[1] === undefined)) { + if (!$mol_wire_fiber.warm) + return atom.result(); + if ($mol_wire_auto()?.temp) { + return atom.once(); + } + else { + return atom.sync(); + } + } + return atom.resync(args); + } + }; + Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' }); + Reflect.defineProperty(descr2.value, 'length', { value: orig.length }); + Object.assign(descr2.value, { orig }); + Reflect.defineProperty(host, field, descr2); + return descr2; + } + $.$mol_wire_plex = $mol_wire_plex; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem = $mol_wire_solo; + $.$mol_mem_key = $mol_wire_plex; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $node = new Proxy({ require }, { + get(target, name, wrapper) { + if (target[name]) + return target[name]; + const mod = target.require('module'); + if (mod.builtinModules.indexOf(name) >= 0) + return target.require(name); + if (name[0] === '.') + return target.require(name); + const path = target.require('path'); + const fs = target.require('fs'); + let dir = path.resolve('.'); + const suffix = `./node_modules/${name}`; + const $$ = $; + while (!fs.existsSync(path.join(dir, suffix))) { + const parent = path.resolve(dir, '..'); + if (parent === dir) { + $$.$mol_exec('.', 'npm', 'install', '--omit=dev', name); + try { + $$.$mol_exec('.', 'npm', 'install', '--omit=dev', '@types/' + name); + } + catch { } + break; + } + else { + dir = parent; + } + } + try { + return target.require(name); + } + catch (error) { + if (error.code === 'ERR_REQUIRE_ESM') { + const module = cache.get(name); + if (module) + return module; + throw import(name).then(module => cache.set(name, module)); + } + $.$mol_fail_log(error); + return null; + } + }, + set(target, name, value) { + target[name] = value; + return true; + }, +}); +const cache = new Map(); +require = (req => Object.assign(function require(name) { + return $node[name]; +}, req))(require); + +; +"use strict"; +var $; +(function ($) { + function $mol_env() { + return {}; + } + $.$mol_env = $mol_env; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_env = function $mol_env() { + return this.process.env; + }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_exec(dir, command, ...args) { + let [app, ...args0] = command.split(' '); + args = [...args0, ...args]; + this.$mol_log3_come({ + place: '$mol_exec', + dir: $node.path.relative('', dir), + message: 'Run', + command: `${app} ${args.join(' ')}`, + }); + var res = $node['child_process'].spawnSync(app, args, { + cwd: $node.path.resolve(dir), + shell: true, + env: this.$mol_env(), + }); + if (res.status || res.error) { + return $mol_fail(res.error || new Error(res.stderr.toString(), { cause: res.stdout })); + } + if (!res.stdout) + res.stdout = Buffer.from([]); + return res; + } + $.$mol_exec = $mol_exec; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_dom_context = new $node.jsdom.JSDOM('', { url: 'https://localhost/' }).window; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_after_tick extends $mol_object2 { + task; + promise; + cancelled = false; + constructor(task) { + super(); + this.task = task; + this.promise = Promise.resolve().then(() => { + if (this.cancelled) + return; + task(); + }); + } + destructor() { + this.cancelled = true; + } + } + $.$mol_after_tick = $mol_after_tick; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_view_selection extends $mol_object { + static focused(next, notify) { + const parents = []; + let element = next?.[0] ?? $mol_dom_context.document.activeElement; + while (element) { + parents.push(element); + element = element.parentNode; + } + if (!next || notify) + return parents; + new $mol_after_tick(() => { + const element = this.focused()[0]; + if (element) + element.focus(); + else + $mol_dom_context.blur(); + }); + return parents; + } + } + __decorate([ + $mol_mem + ], $mol_view_selection, "focused", null); + $.$mol_view_selection = $mol_view_selection; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wrapper extends $mol_object2 { + static wrap; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_memo extends $mol_wrapper { + static wrap(task) { + const store = new WeakMap(); + return function (next) { + if (next === undefined && store.has(this)) + return store.get(this); + const val = task.call(this, next) ?? next; + store.set(this, val); + return val; + }; + } + } + $.$mol_memo = $mol_memo; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_qname(name) { + return name.replace(/\W/g, '').replace(/^(?=\d+)/, '_'); + } + $.$mol_dom_qname = $mol_dom_qname; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_probe(task, def) { + const warm = $mol_wire_fiber.warm; + try { + $mol_wire_fiber.warm = false; + const res = task(); + if (res === undefined) + return def; + return res; + } + finally { + $mol_wire_fiber.warm = warm; + } + } + $.$mol_wire_probe = $mol_wire_probe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_watch() { + const atom = $mol_wire_auto(); + if (atom instanceof $mol_wire_atom) { + atom.watch(); + } + else { + $mol_fail(new Error('Atom is required for watching')); + } + } + $.$mol_wire_watch = $mol_wire_watch; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_const(value) { + const getter = (() => value); + getter['()'] = value; + getter[Symbol.toStringTag] = value; + getter[$mol_dev_format_head] = () => $mol_dev_format_span({}, '()=> ', $mol_dev_format_auto(value)); + return getter; + } + $.$mol_const = $mol_const; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_solid() { + let current = $mol_wire_auto(); + if (current.temp) + current = current.host; + if (current.reap !== nothing) { + current?.sub_on(sub, sub.data.length); + } + current.reap = nothing; + } + $.$mol_wire_solid = $mol_wire_solid; + const nothing = () => { }; + const sub = new $mol_wire_pub_sub; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_attributes(el, attrs) { + for (let name in attrs) { + let val = attrs[name]; + if (val === undefined) { + continue; + } + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_events(el, events, passive = false) { + for (let name in events) { + el.addEventListener(name, events[name], { passive }); + } + } + $.$mol_dom_render_events = $mol_dom_render_events; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_render_styles(el, styles) { + for (let name in styles) { + let val = styles[name]; + const style = el.style; + const kebab = (name) => name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()); + if (typeof val === 'number') { + style.setProperty(kebab(name), `${val}px`); + } + else { + style.setProperty(kebab(name), val); + } + } + } + $.$mol_dom_render_styles = $mol_dom_render_styles; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_async(obj) { + let fiber; + const temp = $mol_wire_task.getter(obj); + return new Proxy(obj, { + get(obj, field) { + const val = obj[field]; + if (typeof val !== 'function') + return val; + let fiber; + const temp = $mol_wire_task.getter(val); + return function $mol_wire_async(...args) { + fiber?.destructor(); + fiber = temp(obj, args); + return fiber.async(); + }; + }, + apply(obj, self, args) { + fiber?.destructor(); + fiber = temp(self, args); + return fiber.async(); + }, + }); + } + $.$mol_wire_async = $mol_wire_async; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + let all = []; + let el = null; + let timer = null; + function $mol_style_attach_force() { + if (all.length) { + el.innerHTML += '\n' + all.join('\n\n'); + all = []; + } + timer = null; + return el; + } + $.$mol_style_attach_force = $mol_style_attach_force; + 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($mol_style_attach_force); + return el; + } + $.$mol_style_attach = $mol_style_attach; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_decor { + value; + 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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_style_unit extends $mol_decor { + literal; + constructor(value, literal) { + super(value); + this.literal = literal; + } + postfix() { + return this.literal; + } + static per(value) { return `${value}%`; } + static px(value) { return `${value}px`; } + static mm(value) { return `${value}mm`; } + static cm(value) { return `${value}cm`; } + static Q(value) { return `${value}Q`; } + static in(value) { return `${value}in`; } + static pc(value) { return `${value}pc`; } + static pt(value) { return `${value}pt`; } + static cap(value) { return `${value}cap`; } + static ch(value) { return `${value}ch`; } + static em(value) { return `${value}em`; } + static rem(value) { return `${value}rem`; } + static ex(value) { return `${value}ex`; } + static ic(value) { return `${value}ic`; } + static lh(value) { return `${value}lh`; } + static rlh(value) { return `${value}rlh`; } + static vh(value) { return `${value}vh`; } + static vw(value) { return `${value}vw`; } + static vi(value) { return `${value}vi`; } + static vb(value) { return `${value}vb`; } + static vmin(value) { return `${value}vmin`; } + static vmax(value) { return `${value}vmax`; } + static deg(value) { return `${value}deg`; } + static rad(value) { return `${value}rad`; } + static grad(value) { return `${value}grad`; } + static turn(value) { return `${value}turn`; } + static s(value) { return `${value}s`; } + static ms(value) { return `${value}ms`; } + } + $.$mol_style_unit = $mol_style_unit; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const { per } = $mol_style_unit; + class $mol_style_func extends $mol_decor { + name; + constructor(name, value) { + super(value); + this.name = name; + } + prefix() { return this.name + '('; } + postfix() { return ')'; } + static linear_gradient(value) { + return new $mol_style_func('linear-gradient', value); + } + static calc(value) { + return new $mol_style_func('calc', value); + } + static vary(name, defaultValue) { + return new $mol_style_func('var', defaultValue ? [name, defaultValue] : 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 clamp(min, mid, max) { + return new $mol_style_func('clamp', [min, mid, max]); + } + static rgba(red, green, blue, alpha) { + return new $mol_style_func('rgba', [red, green, blue, alpha]); + } + static scale(zoom) { + return new $mol_style_func('scale', [zoom]); + } + static linear(...breakpoints) { + return new $mol_style_func("linear", breakpoints.map((e) => Array.isArray(e) + ? String(e[0]) + + " " + + (typeof e[1] === "number" ? e[1] + "%" : e[1].toString()) + : String(e))); + } + static cubic_bezier(x1, y1, x2, y2) { + return new $mol_style_func('cubic-bezier', [x1, y1, x2, y2]); + } + static steps(value, step_position) { + return new $mol_style_func('steps', [value, step_position]); + } + static blur(value) { + return new $mol_style_func('blur', value ?? ""); + } + static brightness(value) { + return new $mol_style_func('brightness', value ?? ""); + } + static contrast(value) { + return new $mol_style_func('contrast', value ?? ""); + } + static drop_shadow(color, x_offset, y_offset, blur_radius) { + return new $mol_style_func("drop-shadow", blur_radius + ? [color, x_offset, y_offset, blur_radius] + : [color, x_offset, y_offset]); + } + static grayscale(value) { + return new $mol_style_func('grayscale', value ?? ""); + } + static hue_rotate(value) { + return new $mol_style_func('hue-rotate', value ?? ""); + } + static invert(value) { + return new $mol_style_func('invert', value ?? ""); + } + static opacity(value) { + return new $mol_style_func('opacity', value ?? ""); + } + static sepia(value) { + return new $mol_style_func('sepia', value ?? ""); + } + static saturate(value) { + return new $mol_style_func('saturate', value ?? ""); + } + } + $.$mol_style_func = $mol_style_func; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_style_prop(prefix, keys) { + const record = keys.reduce((rec, key) => { + rec[key] = $mol_style_func.vary(`--${prefix}_${key}`); + return rec; + }, {}); + return record; + } + $.$mol_style_prop = $mol_style_prop; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_theme = $mol_style_prop('mol_theme', [ + 'back', + 'hover', + 'card', + 'current', + 'special', + 'text', + 'control', + 'shade', + 'line', + 'focus', + 'field', + 'image', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/theme/theme.css", ":root {\n\t--mol_theme_hue: 210deg;\n\t--mol_theme_hue_spread: 90deg;\n}\n\n:where([mol_theme]) {\n\tcolor: var(--mol_theme_text);\n\tfill: var(--mol_theme_text);\n\tbackground-color: var(--mol_theme_back);\n}\n\t\n:root, [mol_theme=\"$mol_theme_dark\"], :where([mol_theme=\"$mol_theme_dark\"]) [mol_theme] {\n\n\t--mol_theme_luma: -1;\n\t--mol_theme_image: invert(1) hue-rotate( 180deg );\n\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\n\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\n\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\n\t\n\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\n\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\n\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\n\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\n\t\n\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\n\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\n\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\n\n\t/* --mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 35% .05 var(--mol_theme_hue) / .25 );\n\t--mol_theme_field: oklch( 0% 0 var(--mol_theme_hue) / .25 );\n\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\n\t\n\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\n\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\n\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .2 );\n\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 120deg ) );\n\t\n\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\n\t--mol_theme_current: oklch( 80% .2 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_special: oklch( 80% .3 calc( var(--mol_theme_hue) + 60deg ) ); */\n\n}\n\n[mol_theme=\"$mol_theme_light\"], :where([mol_theme=\"$mol_theme_light\"]) [mol_theme] {\n\t\n\t--mol_theme_luma: 1;\n\t--mol_theme_image: none;\n\t\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\n\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\n\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\n\t\n\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\n\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\n\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\n\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\n\t\n\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\n\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\n\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\n\t\n\t/* --mol_theme_back: oklch( 93% .01 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 100% .02 var(--mol_theme_hue) / .25 );\n\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\n\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\n\t\n\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\n\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\n\t--mol_theme_line: oklch( 70% 0 var(--mol_theme_hue) / .2 );\n\t--mol_theme_focus: oklch( 20% .8 calc( var(--mol_theme_hue) + 120deg ) );\n\t\n\t--mol_theme_control: oklch( 45% .25 var(--mol_theme_hue) );\n\t--mol_theme_current: oklch( 45% .5 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_special: oklch( 45% .5 calc( var(--mol_theme_hue) + 60deg ) ); */\n\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 30% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_base\"] {\n\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 80% );\n\t--mol_theme_card: hsl( var(--mol_theme_hue), 80%, 95%, .25 );\n\t/* --mol_theme_back: oklch( 95% .02 var(--mol_theme_hue) );\n\t--mol_theme_card: oklch( 80% .05 var(--mol_theme_hue) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 40% .2 calc( var(--mol_theme_hue) + 120deg ) );\n\t--mol_theme_card: oklch( 50% .3 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_accent\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 75% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 90%, .25 );\n\t/* --mol_theme_back: oklch( 90% .03 calc( var(--mol_theme_hue) + 120deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_current\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_current\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 92% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\n\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) - 60deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\n}\n\n:where( :root, [mol_theme=\"$mol_theme_dark\"] ) [mol_theme=\"$mol_theme_special\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 30% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\n\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + 60deg ) );\n\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\n}\n:where( [mol_theme=\"$mol_theme_light\"] ) [mol_theme=\"$mol_theme_special\"] {\n\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 92% );\n\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\n\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) + 60deg ) );\n\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\n}\n"); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_gap = $mol_style_prop('mol_gap', [ + 'block', + 'text', + 'round', + 'space', + 'blur', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/gap/gap.css", ":root {\n\t--mol_gap_block: .75rem;\n\t--mol_gap_text: .5rem .75rem;\n\t--mol_gap_round: .25rem;\n\t--mol_gap_space: .25rem;\n\t--mol_gap_blur: .5rem;\n}\n"); +})($ || ($ = {})); + +; +"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; + const error_showed = new WeakMap(); + class $mol_view extends $mol_object { + static Root(id) { + return new this; + } + autorun() { + try { + this.dom_tree(); + document.title = this.title(); + } + catch (error) { + $mol_fail_log(error); + } + } + static autobind() { + const nodes = $mol_dom_context.document.querySelectorAll('[mol_view_root]:not([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.toString().match(/.*\.(\w+)/)?.[1] ?? this.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() { + let min = 0; + try { + const sub = this.sub(); + if (!sub) + return 0; + sub.forEach(view => { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_width()); + } + }); + } + catch (error) { + $mol_fail_log(error); + return 24; + } + return min; + } + maximal_width() { + return this.minimal_width(); + } + minimal_height() { + let min = 0; + try { + for (const view of this.sub() ?? []) { + if (view instanceof $mol_view) { + min = Math.max(min, view.minimal_height()); + } + } + } + catch (error) { + $mol_fail_log(error); + return 24; + } + return min; + } + static watchers = new Set(); + view_rect() { + if ($mol_wire_probe(() => this.view_rect()) === undefined) { + $mol_wire_watch(); + return null; + } + else { + const { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect(); + return { width, height, left, right, top, bottom }; + } + } + dom_id() { + return this.toString().replace(//g, ')').replaceAll(/"/g, "'"); + } + dom_node_external(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 + '>'); + return node; + } + dom_node(next) { + $mol_wire_solid(); + const node = this.dom_node_external(next); + $mol_dom_render_attributes(node, this.attr_static()); + const events = this.event_async(); + $mol_dom_render_events(node, events); + return node; + } + dom_final() { + this.render(); + const sub = this.sub_visible(); + if (!sub) + return; + for (const el of sub) { + if (el && typeof el === 'object' && 'dom_final' in el) { + el['dom_final'](); + } + } + return this.dom_node(); + } + dom_tree(next) { + const node = this.dom_node(next); + render: 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_fail_log(error); + const mol_view_error = $mol_promise_like(error) ? 'Promise' : error.name || error.constructor.name; + $mol_dom_render_attributes(node, { mol_view_error }); + if ($mol_promise_like(error)) + break render; + if ((error_showed.get(error) ?? this) !== this) + break render; + try { + const message = error.message || error; + node.innerText = message.replace(/^|$/mg, '\xA0\xA0'); + } + catch { } + error_showed.set(error, this); + } + try { + this.auto(); + } + catch (error) { + $mol_fail_log(error); + } + return node; + } + dom_node_actual() { + const node = this.dom_node(); + $mol_dom_render_styles(node, this.style_size()); + const attr = this.attr(); + const style = this.style(); + $mol_dom_render_attributes(node, attr); + $mol_dom_render_styles(node, style); + return node; + } + auto() { + return null; + } + 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() + : child instanceof $mol_dom_context.Node + ? child + : 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'](); + $mol_dom_render_fields(node, this.field()); + } + static view_classes() { + const proto = this.prototype; + let current = proto; + const classes = []; + while (current) { + if (current.constructor.name !== classes.at(-1)?.name) { + classes.push(current.constructor); + } + if (!(current instanceof $mol_view)) + break; + current = Object.getPrototypeOf(current); + } + return classes; + } + static _view_names; + static view_names(suffix) { + let cache = Reflect.getOwnPropertyDescriptor(this, '_view_names')?.value; + if (!cache) + cache = this._view_names = new Map; + const cached = cache.get(suffix); + if (cached) + return cached; + const names = []; + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + for (const Class of this.view_classes()) { + if (suffix in Class.prototype) + names.push(this.$.$mol_func_name(Class) + suffix2); + else + break; + } + cache.set(suffix, names); + return names; + } + view_names_owned() { + const names = []; + let owner = $mol_owning_get(this); + if (!(owner?.host instanceof $mol_view)) + return names; + const suffix = owner.task.name.trim(); + const suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1); + names.push(...owner.host.constructor.view_names(suffix)); + for (let prefix of owner.host.view_names_owned()) { + names.push(prefix + suffix2); + } + return names; + } + view_names() { + const names = new Set(); + for (let name of this.view_names_owned()) + names.add(name); + for (let Class of this.constructor.view_classes()) { + const name = this.$.$mol_func_name(Class); + if (name) + names.add(name); + } + return names; + } + theme(next = null) { + return next; + } + attr_static() { + let attrs = {}; + for (let name of this.view_names()) + attrs[name.replace(/\$/g, '').replace(/^(?=\d)/, '_').toLowerCase()] = ''; + return attrs; + } + attr() { + return { + mol_theme: this.theme() ?? undefined, + }; + } + style_size() { + return { + minHeight: this.minimal_height(), + minWidth: this.minimal_width(), + }; + } + style() { + return {}; + } + field() { + return {}; + } + event() { + return {}; + } + event_async() { + return { ...$mol_wire_async(this.event()) }; + } + plugins() { + return []; + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this)); + } + *view_find(check, path = []) { + if (check(this)) + return yield [...path, this]; + try { + for (const item of this.sub()) { + if (item instanceof $mol_view) { + yield* item.view_find(check, [...path, this]); + } + } + } + catch (error) { + if ($mol_promise_like(error)) + $mol_fail_hidden(error); + $mol_fail_log(error); + } + } + 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); + } + } + ensure_visible(view, align = "start") { + const path = this.view_find(v => v === view).next().value; + this.force_render(new Set(path)); + try { + this.dom_final(); + } + catch (err) { + $mol_fail_log(err); + } + view.dom_node().scrollIntoView({ block: align }); + } + bring() { + const win = this.$.$mol_dom_context; + if (win.parent !== win.self && !win.document.hasFocus()) + return; + new this.$.$mol_after_frame(() => { + this.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' }); + this.focused(true); + }); + } + destructor() { + const node = $mol_wire_probe(() => this.dom_node()); + if (!node) + return; + const events = $mol_wire_probe(() => this.event_async()); + if (!events) + return; + for (let event_name in events) { + node.removeEventListener(event_name, events[event_name]); + } + } + } + __decorate([ + $mol_mem + ], $mol_view.prototype, "autorun", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "title", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "focused", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "dom_name", 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_memo.method + ], $mol_view.prototype, "dom_id", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "dom_node", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "dom_final", 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, "render", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "view_names_owned", null); + __decorate([ + $mol_memo.method + ], $mol_view.prototype, "view_names", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "theme", null); + __decorate([ + $mol_mem + ], $mol_view.prototype, "event_async", null); + __decorate([ + $mol_mem_key + ], $mol_view, "Root", null); + __decorate([ + $mol_mem + ], $mol_view, "autobind", null); + __decorate([ + $mol_memo.method + ], $mol_view, "view_classes", null); + $.$mol_view = $mol_view; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/view/view/view.css", "[mol_view] {\n\ttransition-property: 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\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-shrink: 0;\n\tcontain: style;\n\tscrollbar-color: var(--mol_theme_line) transparent;\n\tscrollbar-width: thin;\n}\t\n\n[mol_view]::selection {\n\tbackground: var(--mol_theme_line);\n}\t\n\n[mol_view]::-webkit-scrollbar {\n\twidth: .25rem;\n\theight: .25rem;\n}\n\n[mol_view]::-webkit-scrollbar-corner {\n\tbackground-color: var(--mol_theme_line);\n}\n\n[mol_view]::-webkit-scrollbar-track {\n\tbackground-color: transparent;\n}\n\n[mol_view]::-webkit-scrollbar-thumb {\n\tbackground-color: var(--mol_theme_line);\n\tborder-radius: var(--mol_gap_round);\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-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n\tfont-size: 1rem;\n\tline-height: 1.5rem;\n\tbackground: var(--mol_theme_back);\n\tcolor: var(--mol_theme_text);\n\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\n\ttab-size: 4;\n\toverscroll-behavior: contain; /** Disable navigation gestures **/\n}\n\n@media print {\n\t[mol_view_root] {\n\t\theight: auto;\n\t}\n}\n\n[mol_view][mol_view_error]:not([mol_view_error=\"Promise\"]) {\n\tbackground-image: repeating-linear-gradient(\n\t\t-45deg,\n\t\t#f92323,\n\t\t#f92323 .5rem,\n\t\t#ff3d3d .5rem,\n\t\t#ff3d3d 1.5rem\n\t);\n\tcolor: black;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n@keyframes mol_view_wait {\n\tfrom {\n\t\topacity: .25;\n\t}\n\t20% {\n\t\topacity: .75;\n\t}\n\tto {\n\t\topacity: .25;\n\t}\n}\n\n:where([mol_view][mol_view_error=\"Promise\"]) {\n\tbackground: var(--mol_theme_hover);\n}\n\n[mol_view][mol_view_error=\"Promise\"] {\n\tanimation: mol_view_wait 1s steps( 20, end ) infinite;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_plugin extends $mol_view { + dom_node_external(next) { + return next ?? $mol_owning_get(this).host.dom_node(); + } + render() { + this.dom_node_actual(); + } + } + $.$mol_plugin = $mol_plugin; +})($ || ($ = {})); + +; + ($.$mol_scroll) = class $mol_scroll extends ($.$mol_view) { + tabindex(){ + return -1; + } + event_scroll(next){ + if(next !== undefined) return next; + return null; + } + scroll_top(next){ + if(next !== undefined) return next; + return 0; + } + scroll_left(next){ + if(next !== undefined) return next; + return 0; + } + field(){ + return {...(super.field()), "tabIndex": (this.tabindex())}; + } + event(){ + return {...(super.event()), "scroll": (next) => (this.event_scroll(next))}; + } + }; + ($mol_mem(($.$mol_scroll.prototype), "event_scroll")); + ($mol_mem(($.$mol_scroll.prototype), "scroll_top")); + ($mol_mem(($.$mol_scroll.prototype), "scroll_left")); + + +; +"use strict"; +var $; +(function ($) { + class $mol_dom_listener extends $mol_object { + _node; + _event; + _handler; + _config; + 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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"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}]`; + let res = `[${block}_${path.join('_')}]`; + if (prefix) + res = prefix + ' :where(' + res + ')'; + return res; + }; + 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) + ' :where([' + $mol_dom_qname(key) + '])', [], config[key]); + } + else if (key === '>') { + const types = config[key]; + for (let type in types) { + make_class(selector(prefix, path) + ' > :where([' + $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) + ':where([' + 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 if (key[0] === '[' && key[key.length - 1] === ']') { + const attr = key.slice(1, -1); + const vals = config[key]; + for (let val in vals) { + make_class(selector(prefix, path) + ':where([' + attr + '=' + JSON.stringify(val) + '])', [], vals[val]); + } + } + 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; +})($ || ($ = {})); + +; +"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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_scroll extends $.$mol_scroll { + scroll_top(next, cache) { + const el = this.dom_node(); + if (next !== undefined && !cache) + el.scrollTop = next; + return el.scrollTop; + } + scroll_left(next, cache) { + const el = this.dom_node(); + if (next !== undefined && !cache) + el.scrollLeft = next; + return el.scrollLeft; + } + event_scroll(next) { + const el = this.dom_node(); + this.scroll_left(el.scrollLeft, 'cache'); + this.scroll_top(el.scrollTop, 'cache'); + } + minimal_height() { + return this.$.$mol_print.active() ? null : 0; + } + minimal_width() { + return this.$.$mol_print.active() ? null : 0; + } + } + __decorate([ + $mol_mem + ], $mol_scroll.prototype, "scroll_top", null); + __decorate([ + $mol_mem + ], $mol_scroll.prototype, "scroll_left", null); + $$.$mol_scroll = $mol_scroll; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem, px } = $mol_style_unit; + $mol_style_define($mol_scroll, { + display: 'grid', + overflow: 'auto', + flex: { + direction: 'column', + grow: 1, + shrink: 1, + }, + outline: 'none', + align: { + self: 'stretch', + items: 'flex-start', + }, + boxSizing: 'border-box', + willChange: 'scroll-position', + scroll: { + padding: [rem(.75), 0], + }, + maxHeight: per(100), + maxWidth: per(100), + webkitOverflowScrolling: 'touch', + contain: 'content', + '>': { + $mol_view: { + transform: 'translateZ(0)', + gridArea: '1/1', + }, + }, + '::before': { + display: 'none', + }, + '::after': { + display: 'none', + }, + '::-webkit-scrollbar': { + width: rem(.25), + height: rem(.25), + }, + '@media': { + 'print': { + overflow: 'visible', + contain: 'none', + maxHeight: 'unset', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_book2) = class $mol_book2 extends ($.$mol_scroll) { + pages(){ + return []; + } + menu_title(){ + return ""; + } + sub(){ + return (this.pages()); + } + minimal_width(){ + return 0; + } + Placeholder(){ + const obj = new this.$.$mol_view(); + return obj; + } + Gap(id){ + const obj = new this.$.$mol_view(); + (obj.title) = () => (""); + return obj; + } + }; + ($mol_mem(($.$mol_book2.prototype), "Placeholder")); + ($mol_mem_key(($.$mol_book2.prototype), "Gap")); + + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_cached = $mol_wire_probe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_layer = $mol_style_prop('mol_layer', [ + 'hover', + 'focus', + 'speck', + 'float', + 'popup', + ]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/layer/layer.css", ":root {\n\t--mol_layer_hover: 1;\n\t--mol_layer_focus: 2;\n\t--mol_layer_speck: 3;\n\t--mol_layer_float: 4;\n\t--mol_layer_popup: 5;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_book2 extends $.$mol_book2 { + title() { + return this.pages().map(page => { + try { + return page?.title(); + } + catch (error) { + $mol_fail_log(error); + } + }).reverse().filter(Boolean).join(' | '); + } + menu_title() { + return this.pages()[0]?.title() || this.title(); + } + sub() { + const next = [...this.pages(), this.Placeholder()]; + const prev = $mol_mem_cached(() => this.sub()) ?? []; + for (let i = 1; i++;) { + const p = prev[prev.length - i]; + const n = next[next.length - i]; + if (!n) + break; + if (p === n) + continue; + n.bring(); + break; + } + return next; + } + bring() { + const pages = this.pages(); + if (pages.length) + pages[pages.length - 1].bring(); + else + super.bring(); + } + } + __decorate([ + $mol_mem + ], $mol_book2.prototype, "sub", null); + $$.$mol_book2 = $mol_book2; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/book2/book2.view.css", "[mol_book2] {\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: stretch;\n\tflex: 1 1 auto;\n\talign-self: stretch;\n\tmargin: 0;\n\t/* box-shadow: 0 0 0 1px var(--mol_theme_line); */\n\t/* transform: translateZ(0); */\n\ttransition: none;\n\toverflow: overlay;\n\tscroll-snap-type: x mandatory;\n\t/* padding: 0 1px;\n\tscroll-padding: 0 1px;\n\tgap: 1px; */\n}\n\n[mol_book2] > * {\n/* \tflex: none; */\n\tscroll-snap-stop: always;\n\tscroll-snap-align: end;\n\tposition: relative;\n\tmin-height: 100%;\n\tmax-height: 100%;\n\tmax-width: 100%;\n\tflex-shrink: 0;\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_field);\n}\n\n[mol_book2] > *:not(:first-of-type):before,\n[mol_book2] > *:not(:last-of-type)::after {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 1.5rem;\n\twidth: 2px;\n\theight: 1rem;\n\tbackground: linear-gradient(\n\t\tto bottom,\n\t\tvar(--mol_theme_focus) 0%,\n\t\tvar(--mol_theme_focus) 14%,\n\t\ttransparent 15%,\n\t\ttransparent 42%,\n\t\tvar(--mol_theme_focus) 43%,\n\t\tvar(--mol_theme_focus) 57%,\n\t\ttransparent 58%,\n\t\ttransparent 85%,\n\t\tvar(--mol_theme_focus) 86%,\n\t\tvar(--mol_theme_focus) 100%\n\t);\n\topacity: .5;\n\tz-index: var(--mol_layer_speck);\n}\n[mol_book2] > *:not(:first-of-type):before {\n\tleft: -1px;\n}\n[mol_book2] > *:not(:last-of-type)::after {\n\tright: -1px;\n}\n\n:where([mol_book2]) > * {\n\tbackground-color: var(--mol_theme_card);\n\t/* box-shadow: 0 0 0 1px var(--mol_theme_back); */\n}\n\n[mol_book2] > [mol_book2] {\n\tdisplay: contents;\n}\n\n[mol_book2] > *:first-child {\n\tscroll-snap-align: start;\n}\n\n[mol_book2] > [mol_view] {\n\ttransform: none; /* prevent content clipping */\n}\n\n[mol_book2_placeholder] {\n\tflex: 1 1 0;\n\tbackground: none;\n}\n\n[mol_book2_gap] {\n\tbackground: none;\n\tflex-grow: 1;\n\tscroll-snap-align: none;\n\tmargin-right: -1px;\n\tbox-shadow: none;\n}\n\n[mol_book2_gap]::before,\n[mol_book2_gap]::after {\n\tdisplay: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_pop) = class $mol_pop extends ($.$mol_view) { + 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; + } + showed(next){ + if(next !== undefined) return next; + return false; + } + align_vert(){ + return ""; + } + align_hor(){ + return ""; + } + prefer(){ + return "vert"; + } + sub(){ + return [(this.Anchor())]; + } + sub_visible(){ + return [(this.Anchor()), (this.Bubble())]; + } + }; + ($mol_mem(($.$mol_pop.prototype), "Bubble")); + ($mol_mem(($.$mol_pop.prototype), "showed")); + ($.$mol_pop_bubble) = class $mol_pop_bubble extends ($.$mol_view) { + content(){ + return []; + } + height_max(){ + return 9999; + } + align(){ + return ""; + } + sub(){ + return (this.content()); + } + style(){ + return {...(super.style()), "maxHeight": (this.height_max())}; + } + attr(){ + return { + ...(super.attr()), + "mol_pop_align": (this.align()), + "tabindex": 0 + }; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_pop extends $.$mol_pop { + showed(next = false) { + this.focused(); + return next; + } + sub_visible() { + return [ + this.Anchor(), + ...this.showed() ? [this.Bubble()] : [], + ]; + } + height_max() { + const viewport = this.$.$mol_window.size(); + const rect_bubble = this.view_rect(); + const align = this.align_vert(); + if (align === 'bottom') + return (viewport.height - rect_bubble.bottom) * .66; + if (align === 'top') + return rect_bubble.top * .66; + return 0; + } + align() { + switch (this.prefer()) { + case 'hor': return `${this.align_hor()}_${this.align_vert()}`; + case 'vert': return `${this.align_vert()}_${this.align_hor()}`; + default: return this.prefer(); + } + } + align_vert() { + const viewport = this.view_port(); + const rect_pop = this.view_rect(); + if (!rect_pop) + return 'suspense'; + return rect_pop.top > (viewport.top + viewport.height / 2) ? 'top' : 'bottom'; + } + align_hor() { + const viewport = this.view_port(); + const rect_pop = this.view_rect(); + if (!rect_pop) + return 'suspense'; + return rect_pop.left > (viewport.left + viewport.width / 2) ? 'left' : 'right'; + } + View_port() { + const view = new $mol_view; + view.dom_node = () => { + let node = this.dom_node(); + while (node = node.offsetParent) { + if (this.$.$mol_dom_context.getComputedStyle(node).overflow !== 'visible') + return node; + } + return this.$.$mol_dom_context.document.documentElement; + }; + return view; + } + view_port() { + return this.View_port().view_rect() ?? { ...this.$.$mol_window.size(), left: 0, top: 0 }; + } + } + __decorate([ + $mol_mem + ], $mol_pop.prototype, "showed", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "sub_visible", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "height_max", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align_vert", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "align_hor", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "View_port", null); + __decorate([ + $mol_mem + ], $mol_pop.prototype, "view_port", null); + $$.$mol_pop = $mol_pop; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"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_bubble] {\n\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\n\tborder-radius: var(--mol_gap_round);\n\tposition: absolute;\n\tz-index: var(--mol_layer_popup);\n\tbackground: var(--mol_theme_back);\n\tmax-width: none;\n\tmax-height: none;\n\t/* overflow: hidden;\n\toverflow-y: scroll;\n\toverflow-y: overlay; */\n\tword-break: normal;\n\twidth: max-content;\n\theight: max-content;\n\tflex-direction: column;\n\tmax-width: 80vw;\n\tmax-height: 80vw;\n\tcontain: paint;\n\ttransition-property: opacity;\n}\n\n:where( [mol_pop_bubble] > * ) {\n\tbackground: var(--mol_theme_card);\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=\"suspense_suspense\"] {\n\topacity: 0;\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_hotkey) = class $mol_hotkey extends ($.$mol_plugin) { + keydown(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.keydown(next))}; + } + key(){ + return {}; + } + mod_ctrl(){ + return false; + } + mod_alt(){ + return false; + } + mod_shift(){ + return false; + } + }; + ($mol_mem(($.$mol_hotkey.prototype), "keydown")); + + +; +"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 = {})); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_hotkey extends $.$mol_hotkey { + key() { + return super.key(); + } + keydown(event) { + if (!event) + return; + if (event.defaultPrevented) + return; + let name = $mol_keyboard_code[event.keyCode]; + if (this.mod_ctrl() !== (event.ctrlKey || event.metaKey)) + return; + if (this.mod_alt() !== event.altKey) + return; + if (this.mod_shift() !== event.shiftKey) + return; + const handle = this.key()[name]; + if (handle) + handle(event); + } + } + $$.$mol_hotkey = $mol_hotkey; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_nav) = class $mol_nav extends ($.$mol_plugin) { + event_key(next){ + if(next !== undefined) return next; + return null; + } + cycle(next){ + if(next !== undefined) return next; + return false; + } + mod_ctrl(){ + return false; + } + mod_shift(){ + return false; + } + mod_alt(){ + return false; + } + keys_x(next){ + if(next !== undefined) return next; + return []; + } + keys_y(next){ + if(next !== undefined) return next; + return []; + } + current_x(next){ + if(next !== undefined) return next; + return null; + } + current_y(next){ + if(next !== undefined) return next; + return null; + } + event_up(next){ + if(next !== undefined) return next; + return null; + } + event_down(next){ + if(next !== undefined) return next; + return null; + } + event_left(next){ + if(next !== undefined) return next; + return null; + } + event_right(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.event_key(next))}; + } + }; + ($mol_mem(($.$mol_nav.prototype), "event_key")); + ($mol_mem(($.$mol_nav.prototype), "cycle")); + ($mol_mem(($.$mol_nav.prototype), "keys_x")); + ($mol_mem(($.$mol_nav.prototype), "keys_y")); + ($mol_mem(($.$mol_nav.prototype), "current_x")); + ($mol_mem(($.$mol_nav.prototype), "current_y")); + ($mol_mem(($.$mol_nav.prototype), "event_up")); + ($mol_mem(($.$mol_nav.prototype), "event_down")); + ($mol_mem(($.$mol_nav.prototype), "event_left")); + ($mol_mem(($.$mol_nav.prototype), "event_right")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_nav extends $.$mol_nav { + event_key(event) { + if (!event) + return event; + if (event.defaultPrevented) + return; + if (this.mod_ctrl() && !event.ctrlKey) + return; + if (this.mod_shift() && !event.shiftKey) + return; + if (this.mod_alt() && !event.altKey) + return; + switch (event.keyCode) { + case $mol_keyboard_code.up: return this.event_up(event); + case $mol_keyboard_code.down: return this.event_down(event); + case $mol_keyboard_code.left: return this.event_left(event); + case $mol_keyboard_code.right: return this.event_right(event); + case $mol_keyboard_code.pageUp: return this.event_up(event); + case $mol_keyboard_code.pageDown: return this.event_down(event); + } + } + event_up(event) { + if (!event) + return event; + const keys = this.keys_y(); + if (keys.length < 1) + return; + const index_y = this.index_y(); + const index_old = index_y === null ? 0 : index_y; + const index_new = (index_old + keys.length - 1) % keys.length; + event.preventDefault(); + if (index_old === 0 && !this.cycle()) + return; + this.current_y(this.keys_y()[index_new]); + } + event_down(event) { + if (!event) + return event; + const keys = this.keys_y(); + if (keys.length < 1) + return; + const index_y = this.index_y(); + const index_old = index_y === null ? keys.length - 1 : index_y; + const index_new = (index_old + 1) % keys.length; + event.preventDefault(); + if (index_new === 0 && !this.cycle()) + return; + this.current_y(this.keys_y()[index_new]); + } + event_left(event) { + if (!event) + return event; + const keys = this.keys_x(); + if (keys.length < 1) + return; + const index_x = this.index_x(); + const index_old = index_x === null ? 0 : index_x; + const index_new = (index_old + keys.length - 1) % keys.length; + event.preventDefault(); + if (index_old === 0 && !this.cycle()) + return; + this.current_x(this.keys_x()[index_new]); + } + event_right(event) { + if (!event) + return event; + const keys = this.keys_x(); + if (keys.length < 1) + return; + const index_x = this.index_x(); + const index_old = index_x === null ? keys.length - 1 : index_x; + const index_new = (index_old + 1) % keys.length; + event.preventDefault(); + if (index_new === 0 && !this.cycle()) + return; + this.current_x(this.keys_x()[index_new]); + } + index_y() { + let index = this.keys_y().indexOf(this.current_y()); + if (index < 0) + return null; + return index; + } + index_x() { + let index = this.keys_x().indexOf(this.current_x()); + if (index < 0) + return null; + return index; + } + } + $$.$mol_nav = $mol_nav; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_mem_persist = $mol_wire_solid; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_sync(obj) { + return new Proxy(obj, { + get(obj, field) { + const val = obj[field]; + if (typeof val !== 'function') + return val; + const temp = $mol_wire_task.getter(val); + return function $mol_wire_sync(...args) { + const fiber = temp(obj, args); + return fiber.sync(); + }; + }, + apply(obj, self, args) { + const temp = $mol_wire_task.getter(obj); + const fiber = temp(self, args); + return fiber.sync(); + }, + }); + } + $.$mol_wire_sync = $mol_wire_sync; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_storage extends $mol_object2 { + static native() { + return this.$.$mol_dom_context.navigator.storage ?? { + persisted: async () => false, + persist: async () => false, + estimate: async () => ({}), + getDirectory: async () => null, + }; + } + static persisted(next, cache) { + $mol_mem_persist(); + if (cache) + return Boolean(next); + const native = this.native(); + if (next && !$mol_mem_cached(() => this.persisted())) { + native.persist().then(actual => { + setTimeout(() => this.persisted(actual, 'cache'), 5000); + if (actual) + this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` }); + else + this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` }); + }); + } + return next ?? $mol_wire_sync(native).persisted(); + } + static estimate() { + return $mol_wire_sync(this.native() ?? {}).estimate(); + } + static dir() { + return $mol_wire_sync(this.native()).getDirectory(); + } + } + __decorate([ + $mol_mem + ], $mol_storage, "native", null); + __decorate([ + $mol_mem + ], $mol_storage, "persisted", null); + $.$mol_storage = $mol_storage; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_state_local extends $mol_object { + static 'native()'; + 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 changes(next) { return next; } + static value(key, next) { + this.changes(); + 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)); + this.$.$mol_storage.persisted(true); + } + return next; + } + prefix() { return ''; } + value(key, next) { + return $mol_state_local.value(this.prefix() + '.' + key, next); + } + } + __decorate([ + $mol_mem + ], $mol_state_local, "changes", null); + __decorate([ + $mol_mem_key + ], $mol_state_local, "value", null); + $.$mol_state_local = $mol_state_local; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + const decoders = {}; + function $mol_charset_decode(buffer, encoding = 'utf8') { + let decoder = decoders[encoding]; + if (!decoder) + decoder = decoders[encoding] = new TextDecoder(encoding); + return decoder.decode(buffer); + } + $.$mol_charset_decode = $mol_charset_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const TextEncoder = globalThis.TextEncoder ?? $node.util.TextEncoder; + const encoder = new TextEncoder(); + function $mol_charset_encode(value) { + return encoder.encode(value); + } + $.$mol_charset_encode = $mol_charset_encode; +})($ || ($ = {})); + +; +"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'); + } + static base = ''; + path() { + return '.'; + } + parent() { + return this.resolve('..'); + } + reset() { + try { + this.stat(null); + } + 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) { + let exists = Boolean(this.stat()); + if (next === undefined) + return exists; + if (next === exists) + return exists; + if (next) { + this.parent().exists(true); + this.ensure(); + } + else { + this.drop(); + } + 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, virt) { + if (virt) { + const now = new Date; + this.stat({ + type: 'file', + size: 0, + atime: now, + mtime: now, + ctime: now, + }, 'virt'); + return next; + } + if (next === undefined) { + return $mol_charset_decode(this.buffer(undefined)); + } + else { + const buffer = next === undefined ? undefined : $mol_charset_encode(next); + this.buffer(buffer); + return next; + } + } + 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 ?? 0; + default: return 0; + } + } + open(...modes) { + return 0; + } + toJSON() { + return this.path(); + } + } + __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; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_action = $mol_wire_method; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_compare_array(a, b) { + if (a === b) + return true; + if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) + return false; + if (a.length !== b.length) + return false; + for (let i = 0; i < a.length; i++) + if (a[i] !== b[i]) + return false; + return true; + } + $.$mol_compare_array = $mol_compare_array; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function stat_convert(stat) { + if (!stat) + return null; + let type; + if (stat.isDirectory()) + type = 'dir'; + if (stat.isFile()) + type = 'file'; + if (stat.isSymbolicLink()) + type = 'link'; + if (!type) + return $mol_fail(new Error(`Unsupported file type`)); + return { + type, + size: Number(stat.size), + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime + }; + } + function buffer_normalize(buf) { + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + let $mol_file_mode_open; + (function ($mol_file_mode_open) { + $mol_file_mode_open[$mol_file_mode_open["create"] = $node.fs.constants.O_CREAT] = "create"; + $mol_file_mode_open[$mol_file_mode_open["exists_truncate"] = $node.fs.constants.O_TRUNC] = "exists_truncate"; + $mol_file_mode_open[$mol_file_mode_open["exists_fail"] = $node.fs.constants.O_EXCL] = "exists_fail"; + $mol_file_mode_open[$mol_file_mode_open["read_only"] = $node.fs.constants.O_RDONLY] = "read_only"; + $mol_file_mode_open[$mol_file_mode_open["write_only"] = $node.fs.constants.O_WRONLY] = "write_only"; + $mol_file_mode_open[$mol_file_mode_open["read_write"] = $node.fs.constants.O_RDWR] = "read_write"; + $mol_file_mode_open[$mol_file_mode_open["append"] = $node.fs.constants.O_APPEND] = "append"; + })($mol_file_mode_open = $.$mol_file_mode_open || ($.$mol_file_mode_open = {})); + class $mol_file_node extends $mol_file { + static absolute(path) { + return this.make({ + path: $mol_const(path) + }); + } + static relative(path) { + return this.absolute($node.path.resolve(this.base, path).replace(/\\/g, '/')); + } + watcher() { + const watcher = $node.chokidar.watch(this.path(), { + persistent: true, + ignored: /(^\.|___$)/, + depth: 0, + ignoreInitial: true, + awaitWriteFinish: { + stabilityThreshold: 100, + }, + }); + watcher + .on('all', (type, path) => { + const file = $mol_file.relative(path.replace(/\\/g, '/')); + file.reset(); + if (type === 'change') { + this.stat(null); + } + else { + file.parent().reset(); + } + }) + .on('error', $mol_fail_log); + return { + destructor() { + watcher.close(); + } + }; + } + stat(next, virt) { + let stat = next; + const path = this.path(); + this.parent().watcher(); + if (virt) + return next; + try { + stat = next ?? stat_convert($node.fs.statSync(path, { throwIfNoEntry: false })); + } + catch (error) { + if (error.code === 'ENOENT') + error = new $mol_file_not_found(`File not found`); + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + return stat; + } + ensure() { + const path = this.path(); + try { + $node.fs.mkdirSync(path); + } + catch (e) { + e.message += '\n' + path; + this.$.$mol_fail_hidden(e); + } + } + drop() { + $node.fs.unlinkSync(this.path()); + } + buffer(next) { + const path = this.path(); + if (next === undefined) { + if (!this.stat()) + return new Uint8Array; + try { + const prev = $mol_mem_cached(() => this.buffer()); + next = buffer_normalize($node.fs.readFileSync(path)); + if (prev !== undefined && !$mol_compare_array(prev, next)) { + this.$.$mol_log3_rise({ + place: `$mol_file_node..buffer()`, + message: 'Changed', + path: this.relate(), + }); + } + return next; + } + catch (error) { + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + } + this.parent().exists(true); + const now = new Date; + this.stat({ + type: 'file', + size: next.length, + atime: now, + mtime: now, + ctime: now, + }, 'virt'); + try { + $node.fs.writeFileSync(path, next); + } + catch (error) { + error.message += '\n' + path; + return this.$.$mol_fail_hidden(error); + } + return next; + } + sub() { + if (!this.exists()) + return []; + if (this.type() !== 'dir') + return []; + const path = this.path(); + this.stat(); + try { + return $node.fs.readdirSync(path) + .filter(name => !/^\.+$/.test(name)) + .map(name => this.resolve(name)); + } + catch (e) { + e.message += '\n' + path; + return this.$.$mol_fail_hidden(e); + } + } + resolve(path) { + return this.constructor.relative($node.path.join(this.path(), path)); + } + relate(base = this.constructor.relative('.')) { + return $node.path.relative(base.path(), this.path()).replace(/\\/g, '/'); + } + append(next) { + const path = this.path(); + try { + $node.fs.appendFileSync(path, next); + } + catch (e) { + e.message += '\n' + path; + return this.$.$mol_fail_hidden(e); + } + } + open(...modes) { + return $node.fs.openSync(this.path(), modes.reduce((res, mode) => res | $mol_file_mode_open[mode], 0)); + } + } + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "watcher", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "stat", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "ensure", null); + __decorate([ + $mol_action + ], $mol_file_node.prototype, "drop", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "buffer", null); + __decorate([ + $mol_mem + ], $mol_file_node.prototype, "sub", null); + __decorate([ + $mol_mem_key + ], $mol_file_node, "absolute", null); + $.$mol_file_node = $mol_file_node; + $.$mol_file = $mol_file_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_state_local_node extends $mol_state_local { + static dir() { + const base = process.env.XDG_DATA_HOME || ($node.os.homedir() + '/.local/share'); + return $mol_file.absolute(base).resolve('./hyoo_state_local'); + } + static value(key, next) { + const file = this.dir().resolve(encodeURIComponent(key) + '.json'); + if (next === null) { + file.exists(false); + return null; + } + const arg = next === undefined ? undefined : JSON.stringify(next); + return JSON.parse(file.text(arg) || 'null'); + } + } + __decorate([ + $mol_mem + ], $mol_state_local_node, "dir", null); + __decorate([ + $mol_mem_key + ], $mol_state_local_node, "value", null); + $.$mol_state_local_node = $mol_state_local_node; + $.$mol_state_local = $mol_state_local_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_locale extends $mol_object { + static lang_default() { + return 'en'; + } + static lang(next) { + return this.$.$mol_state_local.value('locale', next) || $mol_dom_context.navigator.language.replace(/-.*/, '') || this.lang_default(); + } + static source(lang) { + return JSON.parse(this.$.$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 ($mol_fail_catch(error)) { + const def = this.lang_default(); + if (lang === def) + throw error; + } + } + return {}; + } + static text(key) { + const lang = this.lang(); + const target = this.texts(lang)[key]; + if (target) + return target; + this.warn(key); + const en = this.texts('en')[key]; + if (!en) + return key; + return en; + } + static warn(key) { + console.warn(`Not translated to "${this.lang()}": ${key}`); + return null; + } + } + __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); + __decorate([ + $mol_mem_key + ], $mol_locale, "warn", null); + $.$mol_locale = $mol_locale; +})($ || ($ = {})); + +; + ($.$mol_string) = class $mol_string extends ($.$mol_view) { + selection_watcher(){ + return null; + } + error_report(){ + return null; + } + disabled(){ + return false; + } + value(next){ + if(next !== undefined) return next; + return ""; + } + value_changed(next){ + return (this.value(next)); + } + hint(){ + return ""; + } + hint_visible(){ + return (this.hint()); + } + spellcheck(){ + return true; + } + autocomplete_native(){ + return ""; + } + selection_end(){ + return 0; + } + selection_start(){ + return 0; + } + keyboard(){ + return "text"; + } + enter(){ + return "go"; + } + length_max(){ + return +Infinity; + } + type(next){ + if(next !== undefined) return next; + return "text"; + } + event_change(next){ + if(next !== undefined) return next; + return null; + } + submit_with_ctrl(){ + return false; + } + submit(next){ + if(next !== undefined) return next; + return null; + } + Submit(){ + const obj = new this.$.$mol_hotkey(); + (obj.mod_ctrl) = () => ((this.submit_with_ctrl())); + (obj.key) = () => ({"enter": (next) => (this.submit(next))}); + return obj; + } + dom_name(){ + return "input"; + } + enabled(){ + return true; + } + minimal_height(){ + return 40; + } + autocomplete(){ + return false; + } + selection(next){ + if(next !== undefined) return next; + return [0, 0]; + } + auto(){ + return [(this.selection_watcher()), (this.error_report())]; + } + field(){ + return { + ...(super.field()), + "disabled": (this.disabled()), + "value": (this.value_changed()), + "placeholder": (this.hint_visible()), + "spellcheck": (this.spellcheck()), + "autocomplete": (this.autocomplete_native()), + "selectionEnd": (this.selection_end()), + "selectionStart": (this.selection_start()), + "inputMode": (this.keyboard()), + "enterkeyhint": (this.enter()) + }; + } + attr(){ + return { + ...(super.attr()), + "maxlength": (this.length_max()), + "type": (this.type()) + }; + } + event(){ + return {...(super.event()), "input": (next) => (this.event_change(next))}; + } + plugins(){ + return [(this.Submit())]; + } + }; + ($mol_mem(($.$mol_string.prototype), "value")); + ($mol_mem(($.$mol_string.prototype), "type")); + ($mol_mem(($.$mol_string.prototype), "event_change")); + ($mol_mem(($.$mol_string.prototype), "submit")); + ($mol_mem(($.$mol_string.prototype), "Submit")); + ($mol_mem(($.$mol_string.prototype), "selection")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_string extends $.$mol_string { + event_change(next) { + if (!next) + return; + const el = next.target; + const from = el.selectionStart; + const to = el.selectionEnd; + try { + el.value = this.value_changed(el.value); + } + catch (error) { + const el = this.dom_node(); + if (error instanceof Error) { + el.setCustomValidity(error.message); + el.reportValidity(); + } + $mol_fail_hidden(error); + } + if (to === null) + return; + el.selectionEnd = to; + el.selectionStart = from; + this.selection_change(next); + } + error_report() { + try { + if (this.focused()) + this.value(); + } + catch (error) { + const el = this.dom_node(); + if (error instanceof Error) { + el.setCustomValidity(error.message); + el.reportValidity(); + } + } + } + hint_visible() { + return (this.enabled() ? this.hint() : '') || ' '; + } + disabled() { + return !this.enabled(); + } + autocomplete_native() { + return this.autocomplete() ? 'on' : 'off'; + } + selection_watcher() { + return new $mol_dom_listener(this.$.$mol_dom_context.document, 'selectionchange', $mol_wire_async(event => this.selection_change(event))); + } + selection_change(event) { + const el = this.dom_node(); + if (el !== this.$.$mol_dom_context.document.activeElement) + return; + const [from, to] = this.selection([ + el.selectionStart, + el.selectionEnd, + ]); + el.selectionEnd = to; + el.selectionStart = from; + if (to !== from && el.selectionEnd === el.selectionStart) { + el.selectionEnd = to; + } + } + selection_start() { + const el = this.dom_node(); + if (el.selectionStart === null) + return undefined; + return this.selection()[0]; + } + selection_end() { + const el = this.dom_node(); + if (el.selectionEnd === null) + return undefined; + return this.selection()[1]; + } + } + __decorate([ + $mol_action + ], $mol_string.prototype, "event_change", null); + __decorate([ + $mol_mem + ], $mol_string.prototype, "error_report", null); + __decorate([ + $mol_mem + ], $mol_string.prototype, "selection_watcher", null); + $$.$mol_string = $mol_string; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/string/string.view.css", "[mol_string] {\n\tbox-sizing: border-box;\n\toutline-offset: 0;\n\tborder: none;\n\tborder-radius: var(--mol_gap_round);\n\twhite-space: pre-line;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tpadding: var(--mol_gap_text);\n\ttext-align: left;\n\tposition: relative;\n\tfont: inherit;\n\tflex: 1 1 auto;\n\tbackground: transparent;\n\tmin-width: 0;\n\tcolor: inherit;\n\tbackground: var(--mol_theme_field);\n}\n\n[mol_string]:disabled:not(:placeholder-shown) {\n\tbackground-color: transparent;\n\tcolor: var(--mol_theme_text);\n}\n\n[mol_string]:where(:not(:disabled)) {\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_line);\n}\n\n[mol_string]:where(:not(:disabled)):hover {\n\tbox-shadow: inset 0 0 0 2px var(--mol_theme_line);\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_string]:focus {\n\toutline: none;\n\tz-index: var(--mol_layer_focus);\n\tcolor: var(--mol_theme_text);\n\tbox-shadow: inset 0 0 0 1px var(--mol_theme_focus);\n}\n\n[mol_string]::placeholder {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_string]::-ms-clear {\n\tdisplay: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_svg) = class $mol_svg extends ($.$mol_view) { + dom_name(){ + return "svg"; + } + dom_name_space(){ + return "http://www.w3.org/2000/svg"; + } + font_size(){ + return 16; + } + font_family(){ + return ""; + } + style_size(){ + return {}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + class $mol_state_time extends $mol_object { + static task(precision, reset) { + if (precision) { + return new $mol_after_timeout(precision, () => this.task(precision, null)); + } + else { + return new $mol_after_frame(() => this.task(precision, null)); + } + } + static now(precision) { + this.task(precision); + return Date.now(); + } + } + __decorate([ + $mol_mem_key + ], $mol_state_time, "task", null); + __decorate([ + $mol_mem_key + ], $mol_state_time, "now", null); + $.$mol_state_time = $mol_state_time; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_svg extends $.$mol_svg { + computed_style() { + const win = this.$.$mol_dom_context; + const style = win.getComputedStyle(this.dom_node()); + if (!style['font-size']) + $mol_state_time.now(0); + return style; + } + font_size() { + return parseInt(this.computed_style()['font-size']) || 16; + } + font_family() { + return this.computed_style()['font-family']; + } + } + __decorate([ + $mol_mem + ], $mol_svg.prototype, "computed_style", null); + __decorate([ + $mol_mem + ], $mol_svg.prototype, "font_size", null); + __decorate([ + $mol_mem + ], $mol_svg.prototype, "font_family", null); + $$.$mol_svg = $mol_svg; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_svg_root) = class $mol_svg_root extends ($.$mol_svg) { + view_box(){ + return "0 0 100 100"; + } + aspect(){ + return "xMidYMid"; + } + dom_name(){ + return "svg"; + } + attr(){ + return { + ...(super.attr()), + "viewBox": (this.view_box()), + "preserveAspectRatio": (this.aspect()) + }; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/svg/root/root.view.css", "[mol_svg_root] {\n\toverflow: hidden;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_svg_path) = class $mol_svg_path extends ($.$mol_svg) { + geometry(){ + return ""; + } + dom_name(){ + return "path"; + } + attr(){ + return {...(super.attr()), "d": (this.geometry())}; + } + }; + + +; +"use strict"; + +; + ($.$mol_icon) = class $mol_icon extends ($.$mol_svg_root) { + path(){ + return ""; + } + Path(){ + const obj = new this.$.$mol_svg_path(); + (obj.geometry) = () => ((this.path())); + return obj; + } + view_box(){ + return "0 0 24 24"; + } + minimal_width(){ + return 16; + } + minimal_height(){ + return 16; + } + sub(){ + return [(this.Path())]; + } + }; + ($mol_mem(($.$mol_icon.prototype), "Path")); + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/icon/icon.view.css", "[mol_icon] {\n\tfill: currentColor;\n\tstroke: none;\n\twidth: 1em;\n\theight: 1.5em;\n\tflex: 0 0 auto;\n\tvertical-align: top;\n\tdisplay: inline-block;\n\tfilter: drop-shadow(0px 1px 1px var(--mol_theme_back));\n\ttransform-origin: center;\n}\n\n[mol_icon_path] {\n\ttransform-origin: center;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_icon_cross) = class $mol_icon_cross extends ($.$mol_icon) { + path(){ + return "M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_speck) = class $mol_speck extends ($.$mol_view) { + theme(){ + return "$mol_theme_accent"; + } + value(){ + return null; + } + attr(){ + return {...(super.attr()), "mol_theme": (this.theme())}; + } + style(){ + return {...(super.style()), "minHeight": "1em"}; + } + sub(){ + return [(this.value())]; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/speck/speck.view.css", "[mol_speck] {\n\tfont-size: .625rem;\n\tborder-radius: 1rem;\n\tmargin: -0.5rem -0.25rem;\n\talign-self: flex-start;\n\tmin-height: 1em;\n\tmin-width: .5em;\n\tvertical-align: sub;\n\tpadding: .25em .5em;\n\tposition: absolute;\n\tz-index: var(--mol_layer_speck);\n\ttext-align: center;\n\tline-height: 1;\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tuser-select: none;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_button) = class $mol_button extends ($.$mol_view) { + event_activate(next){ + if(next !== undefined) return next; + return null; + } + clicks(next){ + if(next !== undefined) return next; + return null; + } + event_key_press(next){ + if(next !== undefined) return next; + return null; + } + disabled(){ + return false; + } + tab_index(){ + return 0; + } + hint(){ + return ""; + } + hint_safe(){ + return (this.hint()); + } + error(){ + return ""; + } + enabled(){ + return true; + } + click(next){ + if(next !== undefined) return next; + return null; + } + event_click(next){ + if(next !== undefined) return next; + return null; + } + event(){ + return { + ...(super.event()), + "click": (next) => (this.event_activate(next)), + "dblclick": (next) => (this.clicks(next)), + "keydown": (next) => (this.event_key_press(next)) + }; + } + attr(){ + return { + ...(super.attr()), + "disabled": (this.disabled()), + "role": "button", + "tabindex": (this.tab_index()), + "title": (this.hint_safe()) + }; + } + sub(){ + return [(this.title())]; + } + Speck(){ + const obj = new this.$.$mol_speck(); + (obj.value) = () => ((this.error())); + return obj; + } + }; + ($mol_mem(($.$mol_button.prototype), "event_activate")); + ($mol_mem(($.$mol_button.prototype), "clicks")); + ($mol_mem(($.$mol_button.prototype), "event_key_press")); + ($mol_mem(($.$mol_button.prototype), "click")); + ($mol_mem(($.$mol_button.prototype), "event_click")); + ($mol_mem(($.$mol_button.prototype), "Speck")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_button extends $.$mol_button { + status(next = [null]) { return next; } + disabled() { + return !this.enabled(); + } + event_activate(next) { + if (!next) + return; + if (!this.enabled()) + return; + try { + this.event_click(next); + this.click(next); + this.status([null]); + } + catch (error) { + Promise.resolve().then(() => this.status([error])); + $mol_fail_hidden(error); + } + } + event_key_press(event) { + if (event.keyCode === $mol_keyboard_code.enter) { + return this.event_activate(event); + } + } + tab_index() { + return this.enabled() ? super.tab_index() : -1; + } + error() { + const [error] = this.status(); + if (!error) + return ''; + if (error instanceof Promise) { + return $mol_fail_hidden(error); + } + return String(error.message ?? error); + } + hint_safe() { + try { + return this.hint(); + } + catch (error) { + $mol_fail_log(error); + return ''; + } + } + sub_visible() { + return [ + ...this.error() ? [this.Speck()] : [], + ...this.sub(), + ]; + } + } + __decorate([ + $mol_mem + ], $mol_button.prototype, "status", null); + $$.$mol_button = $mol_button; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/button.view.css", "[mol_button] {\n\tborder: none;\n\tfont: inherit;\n\tdisplay: inline-flex;\n\tflex-shrink: 0;\n\ttext-decoration: inherit;\n\tcursor: inherit;\n\tposition: relative;\n\tbox-sizing: border-box;\n\tword-break: normal;\n\tcursor: default;\n\tuser-select: none;\n\tborder-radius: var(--mol_gap_round);\n\tbackground: transparent;\n\tcolor: inherit;\n}\n\n[mol_button]:where(:not(:disabled)):hover {\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_button]:focus-visible {\n\toutline: none;\n\tz-index: var(--mol_layer_focus);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_button_typed) = class $mol_button_typed extends ($.$mol_button) { + minimal_height(){ + return 40; + } + minimal_width(){ + return 40; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/typed/typed.view.css", "[mol_button_typed] {\n\talign-content: center;\n\talign-items: center;\n\tpadding: var(--mol_gap_text);\n\tborder-radius: var(--mol_gap_round);\n\tgap: var(--mol_gap_space);\n\tuser-select: none;\n\tcursor: pointer;\n}\n\n[mol_button_typed][disabled] {\n\tpointer-events: none;\n}\n\n[mol_button_typed]:hover ,\n[mol_button_typed]:focus-visible {\n\tbox-shadow: inset 0 0 0 10rem var(--mol_theme_hover);\n}\n\n[mol_button_typed]:active {\n\tcolor: var(--mol_theme_focus);\n}\n\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_button_minor) = class $mol_button_minor extends ($.$mol_button_typed) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/button/minor/minor.view.css", "[mol_button_minor] {\n\tcolor: var(--mol_theme_control);\n}\n\n[mol_button_minor][disabled] {\n\tcolor: var(--mol_theme_shade);\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_list) = class $mol_list extends ($.$mol_view) { + rows(){ + return []; + } + gap_before(){ + return 0; + } + gap_after(){ + return 0; + } + 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]; + } + }; + ($mol_mem(($.$mol_list.prototype), "Empty")); + ($mol_mem(($.$mol_list.prototype), "Gap_before")); + ($mol_mem(($.$mol_list.prototype), "Gap_after")); + + +; +"use strict"; +var $; +(function ($) { + let cache = null; + function $mol_support_css_overflow_anchor() { + return cache ?? (cache = this.$mol_dom_context.CSS?.supports('overflow-anchor:auto') ?? false); + } + $.$mol_support_css_overflow_anchor = $mol_support_css_overflow_anchor; +})($ || ($ = {})); + +; +"use strict"; + +; +"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(next) { + const kids = this.sub(); + if (kids.length < 3) + return [0, kids.length]; + if (this.$.$mol_print.active()) + return [0, kids.length]; + const rect = this.view_rect(); + if (next) + return next; + let [min, max] = $mol_mem_cached(() => this.view_window()) ?? [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 gap_before = $mol_mem_cached(() => this.gap_before()) ?? 0; + const gap_after = $mol_mem_cached(() => this.gap_after()) ?? 0; + let top = Math.ceil(rect?.top ?? 0) + gap_before; + let bottom = Math.ceil(rect?.bottom ?? 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(rect?.top ?? 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) && (bottom < limit_bottom) && (max < kids.length)) { + min2 = max; + top2 = bottom; + } + if ((bottom > limit_bottom) && (top > limit_top) && (min > 0)) { + max2 = min; + bottom2 = top; + } + while (anchoring && ((top2 > limit_top) && (min2 > 0))) { + --min2; + top2 -= kids[min2].minimal_height(); + } + while (bottom2 < limit_bottom && max2 < kids.length) { + bottom2 += kids[max2].minimal_height(); + ++max2; + } + 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() { + return [ + ...this.gap_before() ? [this.Gap_before()] : [], + ...this.sub().slice(...this.view_window()), + ...this.gap_after() ? [this.Gap_after()] : [], + ]; + } + minimal_height() { + return this.sub().reduce((sum, view) => { + try { + return sum + view.minimal_height(); + } + catch (error) { + $mol_fail_log(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]) { + this.view_window([this.render_visible_only() ? index : 0, 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; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/list/list.view.css", "[mol_list] {\n\twill-change: contents;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\tmax-width: 100%;\n\t/* display: flex;\n\talign-items: stretch;\n\talign-content: stretch; */\n\ttransition: none;\n\tmin-height: 1.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"); +})($ || ($ = {})); + +; + ($.$mol_paragraph) = class $mol_paragraph extends ($.$mol_view) { + line_height(){ + return 24; + } + letter_width(){ + return 7; + } + width_limit(){ + return +Infinity; + } + row_width(){ + return 0; + } + sub(){ + return [(this.title())]; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_paragraph extends $.$mol_paragraph { + maximal_width() { + let width = 0; + const letter = this.letter_width(); + for (const kid of this.sub()) { + if (!kid) + continue; + if (kid instanceof $mol_view) { + width += kid.maximal_width(); + } + else if (typeof kid !== 'object') { + width += String(kid).length * letter; + } + } + return width; + } + width_limit() { + return this.$.$mol_window.size().width; + } + minimal_width() { + return this.letter_width(); + } + row_width() { + return Math.max(Math.min(this.width_limit(), this.maximal_width()), this.letter_width()); + } + minimal_height() { + return Math.max(1, Math.ceil(this.maximal_width() / this.row_width())) * this.line_height(); + } + } + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "maximal_width", null); + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "row_width", null); + __decorate([ + $mol_mem + ], $mol_paragraph.prototype, "minimal_height", null); + $$.$mol_paragraph = $mol_paragraph; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/paragraph/paragraph.view.css", ":where([mol_paragraph]) {\n\tmargin: 0;\n\tmax-width: 100%;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_dimmer) = class $mol_dimmer extends ($.$mol_paragraph) { + parts(){ + return []; + } + string(id){ + return ""; + } + haystack(){ + return ""; + } + needle(){ + return ""; + } + sub(){ + return (this.parts()); + } + Low(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ([(this.string(id))]); + return obj; + } + High(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ([(this.string(id))]); + return obj; + } + }; + ($mol_mem_key(($.$mol_dimmer.prototype), "Low")); + ($mol_mem_key(($.$mol_dimmer.prototype), "High")); + + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + class $mol_regexp extends RegExp { + groups; + constructor(source, flags = 'gsu', groups = []) { + super(source, flags); + this.groups = groups; + } + *[Symbol.matchAll](str) { + const index = this.lastIndex; + this.lastIndex = 0; + try { + while (this.lastIndex < str.length) { + const found = this.exec(str); + if (!found) + break; + yield found; + } + } + finally { + this.lastIndex = index; + } + } + [Symbol.match](str) { + const res = [...this[Symbol.matchAll](str)].filter(r => r.groups).map(r => r[0]); + if (!res.length) + return null; + return res; + } + [Symbol.split](str) { + const res = []; + let token_last = null; + for (let token of this[Symbol.matchAll](str)) { + if (token.groups && (token_last ? token_last.groups : true)) + res.push(''); + res.push(token[0]); + token_last = token; + } + if (!res.length) + res.push(''); + return res; + } + test(str) { + return Boolean(str.match(this)); + } + exec(str) { + const from = this.lastIndex; + if (from >= str.length) + return null; + const res = super.exec(str); + if (res === null) { + this.lastIndex = str.length; + if (!str) + return null; + return Object.assign([str.slice(from)], { + index: from, + input: str, + }); + } + if (from === this.lastIndex) { + $mol_fail(new Error('Captured empty substring')); + } + const groups = {}; + const skipped = str.slice(from, this.lastIndex - res[0].length); + if (skipped) { + this.lastIndex = this.lastIndex - res[0].length; + return Object.assign([skipped], { + index: from, + input: res.input, + }); + } + for (let i = 0; i < this.groups.length; ++i) { + const group = this.groups[i]; + groups[group] = groups[group] || res[i + 1] || ''; + } + return Object.assign(res, { groups }); + } + generate(params) { + return null; + } + get native() { + return new RegExp(this.source, this.flags); + } + static repeat(source, min = 0, max = Number.POSITIVE_INFINITY) { + const regexp = $mol_regexp.from(source); + const upper = Number.isFinite(max) ? max : ''; + const str = `(?:${regexp.source}){${min},${upper}}?`; + const regexp2 = new $mol_regexp(str, regexp.flags, regexp.groups); + regexp2.generate = params => { + const res = regexp.generate(params); + if (res) + return res; + if (min > 0) + return res; + return ''; + }; + return regexp2; + } + static repeat_greedy(source, min = 0, max = Number.POSITIVE_INFINITY) { + const regexp = $mol_regexp.from(source); + const upper = Number.isFinite(max) ? max : ''; + const str = `(?:${regexp.source}){${min},${upper}}`; + const regexp2 = new $mol_regexp(str, regexp.flags, regexp.groups); + regexp2.generate = params => { + const res = regexp.generate(params); + if (res) + return res; + if (min > 0) + return res; + return ''; + }; + return regexp2; + } + static vary(sources) { + const groups = []; + const chunks = sources.map(source => { + const regexp = $mol_regexp.from(source); + groups.push(...regexp.groups); + return regexp.source; + }); + return new $mol_regexp(`(?:${chunks.join('|')})`, '', groups); + } + static optional(source) { + return $mol_regexp.repeat_greedy(source, 0, 1); + } + static force_after(source) { + const regexp = $mol_regexp.from(source); + return new $mol_regexp(`(?=${regexp.source})`, regexp.flags, regexp.groups); + } + static forbid_after(source) { + const regexp = $mol_regexp.from(source); + return new $mol_regexp(`(?!${regexp.source})`, regexp.flags, regexp.groups); + } + static from(source, { ignoreCase, multiline } = { + ignoreCase: false, + multiline: false, + }) { + let flags = 'gsu'; + if (multiline) + flags += 'm'; + if (ignoreCase) + flags += 'i'; + if (typeof source === 'number') { + const src = `\\u{${source.toString(16)}}`; + const regexp = new $mol_regexp(src, flags); + regexp.generate = () => src; + return regexp; + } + if (typeof source === 'string') { + const src = source.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + const regexp = new $mol_regexp(src, flags); + regexp.generate = () => source; + return regexp; + } + else if (source instanceof $mol_regexp) { + const regexp = new $mol_regexp(source.source, flags, source.groups); + regexp.generate = params => source.generate(params); + return regexp; + } + if (source instanceof RegExp) { + const test = new RegExp('|' + source.source); + const groups = Array.from({ length: test.exec('').length - 1 }, (_, i) => String(i + 1)); + const regexp = new $mol_regexp(source.source, source.flags, groups); + regexp.generate = () => ''; + return regexp; + } + if (Array.isArray(source)) { + const patterns = source.map(src => Array.isArray(src) + ? $mol_regexp.optional(src) + : $mol_regexp.from(src)); + const chunks = patterns.map(pattern => pattern.source); + const groups = []; + let index = 0; + for (const pattern of patterns) { + for (let group of pattern.groups) { + if (Number(group) >= 0) { + groups.push(String(index++)); + } + else { + groups.push(group); + } + } + } + const regexp = new $mol_regexp(chunks.join(''), flags, groups); + regexp.generate = params => { + let res = ''; + for (const pattern of patterns) { + let sub = pattern.generate(params); + if (sub === null) + return ''; + res += sub; + } + return res; + }; + return regexp; + } + else { + const groups = []; + const chunks = Object.keys(source).map(name => { + groups.push(name); + const regexp = $mol_regexp.from(source[name]); + groups.push(...regexp.groups); + return `(${regexp.source})`; + }); + const regexp = new $mol_regexp(`(?:${chunks.join('|')})`, flags, groups); + const validator = new RegExp('^' + regexp.source + '$', flags); + regexp.generate = (params) => { + for (let option in source) { + if (option in params) { + if (typeof params[option] === 'boolean') { + if (!params[option]) + continue; + } + else { + const str = String(params[option]); + if (str.match(validator)) + return str; + $mol_fail(new Error(`Wrong param: ${option}=${str}`)); + } + } + else { + if (typeof source[option] !== 'object') + continue; + } + const res = $mol_regexp.from(source[option]).generate(params); + if (res) + return res; + } + return null; + }; + return regexp; + } + } + static unicode_only(...category) { + return new $mol_regexp(`\\p{${category.join('=')}}`); + } + static unicode_except(...category) { + return new $mol_regexp(`\\P{${category.join('=')}}`); + } + static char_range(from, to) { + return new $mol_regexp(`${$mol_regexp.from(from).source}-${$mol_regexp.from(to).source}`); + } + static char_only(...allowed) { + const regexp = allowed.map(f => $mol_regexp.from(f).source).join(''); + return new $mol_regexp(`[${regexp}]`); + } + static char_except(...forbidden) { + const regexp = forbidden.map(f => $mol_regexp.from(f).source).join(''); + return new $mol_regexp(`[^${regexp}]`); + } + static decimal_only = $mol_regexp.from(/\d/gsu); + static decimal_except = $mol_regexp.from(/\D/gsu); + static latin_only = $mol_regexp.from(/\w/gsu); + static latin_except = $mol_regexp.from(/\W/gsu); + static space_only = $mol_regexp.from(/\s/gsu); + static space_except = $mol_regexp.from(/\S/gsu); + static word_break_only = $mol_regexp.from(/\b/gsu); + static word_break_except = $mol_regexp.from(/\B/gsu); + static tab = $mol_regexp.from(/\t/gsu); + static slash_back = $mol_regexp.from(/\\/gsu); + static nul = $mol_regexp.from(/\0/gsu); + static char_any = $mol_regexp.from(/./gsu); + static begin = $mol_regexp.from(/^/gsu); + static end = $mol_regexp.from(/$/gsu); + static or = $mol_regexp.from(/|/gsu); + static line_end = $mol_regexp.from({ + win_end: [['\r'], '\n'], + mac_end: '\r', + }); + } + $.$mol_regexp = $mol_regexp; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_dimmer extends $.$mol_dimmer { + parts() { + const needle = this.needle(); + if (needle.length < 2) + return [this.haystack()]; + let chunks = []; + let strings = this.strings(); + for (let index = 0; index < strings.length; index++) { + if (strings[index] === '') + continue; + chunks.push((index % 2) ? this.High(index) : this.Low(index)); + } + return chunks; + } + strings() { + const options = this.needle().split(/\s+/g).filter(Boolean); + if (!options.length) + return [this.haystack()]; + const variants = { ...options }; + const regexp = $mol_regexp.from({ needle: variants }, { ignoreCase: true }); + return this.haystack().split(regexp); + } + string(index) { + return this.strings()[index]; + } + *view_find(check, path = []) { + if (check(this, this.haystack())) { + yield [...path, this]; + } + } + } + __decorate([ + $mol_mem + ], $mol_dimmer.prototype, "strings", null); + $$.$mol_dimmer = $mol_dimmer; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/dimmer/dimmer.view.css", "[mol_dimmer] {\n\tdisplay: block;\n\tmax-width: 100%;\n}\n\n[mol_dimmer_low] {\n\tdisplay: inline;\n\topacity: 0.8;\n}\n\n[mol_dimmer_high] {\n\tdisplay: inline;\n\tcolor: var(--mol_theme_focus);\n\ttext-shadow: 0 0;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_search) = class $mol_search extends ($.$mol_pop) { + clear(next){ + if(next !== undefined) return next; + return null; + } + Hotkey(){ + const obj = new this.$.$mol_hotkey(); + (obj.key) = () => ({"escape": (next) => (this.clear(next))}); + return obj; + } + nav_components(){ + return []; + } + nav_focused(next){ + if(next !== undefined) return next; + return null; + } + Nav(){ + const obj = new this.$.$mol_nav(); + (obj.keys_y) = () => ((this.nav_components())); + (obj.current_y) = (next) => ((this.nav_focused(next))); + return obj; + } + suggests_showed(next){ + if(next !== undefined) return next; + return false; + } + query(next){ + if(next !== undefined) return next; + return ""; + } + hint(){ + return (this.$.$mol_locale.text("$mol_search_hint")); + } + submit(next){ + if(next !== undefined) return next; + return null; + } + enabled(){ + return true; + } + keyboard(){ + return "search"; + } + enter(){ + return "search"; + } + bring(){ + return (this.Query().bring()); + } + Query(){ + const obj = new this.$.$mol_string(); + (obj.value) = (next) => ((this.query(next))); + (obj.hint) = () => ((this.hint())); + (obj.submit) = (next) => ((this.submit(next))); + (obj.enabled) = () => ((this.enabled())); + (obj.keyboard) = () => ((this.keyboard())); + (obj.enter) = () => ((this.enter())); + return obj; + } + Clear_icon(){ + const obj = new this.$.$mol_icon_cross(); + return obj; + } + Clear(){ + const obj = new this.$.$mol_button_minor(); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_search_Clear_hint"))); + (obj.click) = (next) => ((this.clear(next))); + (obj.sub) = () => ([(this.Clear_icon())]); + return obj; + } + anchor_content(){ + return [(this.Query()), (this.Clear())]; + } + menu_items(){ + return []; + } + Menu(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.menu_items())); + return obj; + } + suggest_select(id, next){ + if(next !== undefined) return next; + return null; + } + suggest_label(id){ + return ""; + } + Suggest_label(id){ + const obj = new this.$.$mol_dimmer(); + (obj.haystack) = () => ((this.suggest_label(id))); + (obj.needle) = () => ((this.query())); + return obj; + } + suggest_content(id){ + return [(this.Suggest_label(id))]; + } + suggests(){ + return []; + } + plugins(){ + return [ + ...(super.plugins()), + (this.Hotkey()), + (this.Nav()) + ]; + } + showed(next){ + return (this.suggests_showed(next)); + } + align_hor(){ + return "right"; + } + Anchor(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.anchor_content())); + return obj; + } + bubble_content(){ + return [(this.Menu())]; + } + Suggest(id){ + const obj = new this.$.$mol_button_minor(); + (obj.click) = (next) => ((this.suggest_select(id, next))); + (obj.sub) = () => ((this.suggest_content(id))); + return obj; + } + }; + ($mol_mem(($.$mol_search.prototype), "clear")); + ($mol_mem(($.$mol_search.prototype), "Hotkey")); + ($mol_mem(($.$mol_search.prototype), "nav_focused")); + ($mol_mem(($.$mol_search.prototype), "Nav")); + ($mol_mem(($.$mol_search.prototype), "suggests_showed")); + ($mol_mem(($.$mol_search.prototype), "query")); + ($mol_mem(($.$mol_search.prototype), "submit")); + ($mol_mem(($.$mol_search.prototype), "Query")); + ($mol_mem(($.$mol_search.prototype), "Clear_icon")); + ($mol_mem(($.$mol_search.prototype), "Clear")); + ($mol_mem(($.$mol_search.prototype), "Menu")); + ($mol_mem_key(($.$mol_search.prototype), "suggest_select")); + ($mol_mem_key(($.$mol_search.prototype), "Suggest_label")); + ($mol_mem(($.$mol_search.prototype), "Anchor")); + ($mol_mem_key(($.$mol_search.prototype), "Suggest")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_search extends $.$mol_search { + anchor_content() { + return [ + this.Query(), + ...this.query() ? [this.Clear()] : [], + ]; + } + suggests_showed(next = true) { + this.query(); + if (!this.focused()) + return false; + return next; + } + suggest_selected(next) { + if (next === undefined) + return; + this.query(next); + this.Query().focused(true); + } + nav_components() { + return [ + this.Query(), + ...this.menu_items(), + ]; + } + nav_focused(component) { + if (!this.focused()) + return null; + if (component == null) { + for (let comp of this.nav_components()) { + if (comp && comp.focused()) + return comp; + } + return null; + } + if (this.suggests_showed()) { + this.ensure_visible(component, "center"); + component.focused(true); + } + return component; + } + suggest_label(key) { + return key; + } + menu_items() { + return this.suggests().map((suggest) => this.Suggest(suggest)); + } + suggest_select(id, event) { + this.query(id); + this.Query().selection([id.length, id.length]); + this.Query().focused(true); + } + clear(event) { + this.query(''); + } + } + __decorate([ + $mol_mem + ], $mol_search.prototype, "anchor_content", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "suggests_showed", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "nav_focused", null); + __decorate([ + $mol_mem + ], $mol_search.prototype, "menu_items", null); + $$.$mol_search = $mol_search; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/search/search.view.css", "[mol_search] {\n\talign-self: flex-start;\n\tflex: auto;\n}\n\n[mol_search_anchor] {\n\tflex: 1 1 auto;\n}\n\n[mol_search_query] {\n\tflex-grow: 1;\n}\n\n[mol_search_menu] {\n\tmin-height: .75rem;\n\tdisplay: flex;\n}\n\n[mol_search_suggest] {\n\ttext-align: left;\n}\n\n[mol_search_suggest_label_high] {\n\tcolor: var(--mol_theme_shade);\n\ttext-shadow: none;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_link) = class $mol_link extends ($.$mol_view) { + uri_toggle(){ + return ""; + } + hint(){ + return ""; + } + hint_safe(){ + return (this.hint()); + } + target(){ + return "_self"; + } + file_name(){ + return ""; + } + current(){ + return false; + } + relation(){ + return ""; + } + event_click(next){ + if(next !== undefined) return next; + return null; + } + click(next){ + return (this.event_click(next)); + } + uri(){ + return ""; + } + dom_name(){ + return "a"; + } + uri_off(){ + return ""; + } + uri_native(){ + return null; + } + external(){ + return false; + } + attr(){ + return { + ...(super.attr()), + "href": (this.uri_toggle()), + "title": (this.hint_safe()), + "target": (this.target()), + "download": (this.file_name()), + "mol_link_current": (this.current()), + "rel": (this.relation()) + }; + } + sub(){ + return [(this.title())]; + } + arg(){ + return {}; + } + event(){ + return {...(super.event()), "click": (next) => (this.click(next))}; + } + }; + ($mol_mem(($.$mol_link.prototype), "event_click")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + class $mol_state_arg extends $mol_object { + prefix; + static prolog = ''; + static separator = ' '; + static href(next) { + return next || process.argv.slice(2).join(' '); + } + static href_normal() { + return this.link({}); + } + static dict(next) { + if (next !== void 0) + this.href(this.make_link(next)); + var href = this.href(); + var chunks = href.split(' '); + var params = {}; + chunks.forEach(chunk => { + if (!chunk) + return; + var vals = chunk.split('=').map(decodeURIComponent); + params[vals.shift()] = vals.join('='); + }); + return params; + } + static value(key, next) { + if (next === void 0) + return this.dict()[key] ?? null; + this.href(this.link({ [key]: next })); + return next; + } + static link(next) { + const params = {}; + var prev = this.dict(); + for (var key in prev) { + params[key] = prev[key]; + } + for (var key in next) { + params[key] = next[key]; + } + return this.make_link(params); + } + static make_link(next) { + const chunks = []; + for (const key in next) { + if (next[key] !== null) { + chunks.push([key, next[key]].map(encodeURIComponent).join('=')); + } + } + return chunks.join(' '); + } + static go(next) { + this.href(this.make_link(next)); + } + constructor(prefix = '') { + super(); + this.prefix = prefix; + } + value(key, next) { + return this.constructor.value(this.prefix + key, next); + } + sub(postfix) { + return new this.constructor(this.prefix + postfix + '.'); + } + link(next) { + const prefix = this.prefix; + const dict = {}; + for (var key in next) { + dict[prefix + key] = next[key]; + } + return this.constructor.link(dict); + } + } + __decorate([ + $mol_mem + ], $mol_state_arg, "href", null); + __decorate([ + $mol_mem + ], $mol_state_arg, "href_normal", null); + __decorate([ + $mol_mem + ], $mol_state_arg, "dict", null); + __decorate([ + $mol_mem_key + ], $mol_state_arg, "value", null); + __decorate([ + $mol_action + ], $mol_state_arg, "go", null); + $.$mol_state_arg = $mol_state_arg; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_link extends $.$mol_link { + uri_toggle() { + return this.current() ? this.uri_off() : this.uri(); + } + uri() { + return new this.$.$mol_state_arg(this.state_key()).link(this.arg()); + } + uri_off() { + const arg2 = {}; + for (let i in this.arg()) + arg2[i] = null; + return new this.$.$mol_state_arg(this.state_key()).link(arg2); + } + uri_native() { + const base = this.$.$mol_state_arg.href(); + return new URL(this.uri(), base); + } + current() { + const base = this.$.$mol_state_arg.href_normal(); + const target = this.uri_native().toString(); + if (base === target) + return true; + const args = this.arg(); + const keys = Object.keys(args).filter(key => args[key] != null); + if (keys.length === 0) + return false; + for (const key of keys) { + if (this.$.$mol_state_arg.value(key) != args[key]) + return false; + } + return true; + } + file_name() { + return null; + } + minimal_height() { + return Math.max(super.minimal_height(), 24); + } + external() { + return this.uri_native().origin !== $mol_dom_context.location.origin; + } + target() { + return this.external() ? '_blank' : '_self'; + } + hint_safe() { + try { + return this.hint(); + } + catch (error) { + $mol_fail_log(error); + return ''; + } + } + } + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_toggle", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_off", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "uri_native", null); + __decorate([ + $mol_mem + ], $mol_link.prototype, "current", null); + $$.$mol_link = $mol_link; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const { rem } = $mol_style_unit; + $mol_style_define($mol_link, { + textDecoration: 'none', + color: $mol_theme.control, + stroke: 'currentcolor', + cursor: 'pointer', + padding: $mol_gap.text, + boxSizing: 'border-box', + position: 'relative', + minWidth: rem(2.5), + gap: $mol_gap.space, + border: { + radius: $mol_gap.round, + }, + ':hover': { + background: { + color: $mol_theme.hover, + }, + }, + ':focus-visible': { + outline: 'none', + background: { + color: $mol_theme.hover, + }, + }, + ':active': { + color: $mol_theme.focus, + }, + '@': { + mol_link_current: { + 'true': { + color: $mol_theme.current, + textShadow: '0 0', + } + } + }, + }); +})($ || ($ = {})); + +; + ($.$mol_page) = class $mol_page extends ($.$mol_view) { + tabindex(){ + return -1; + } + Logo(){ + return null; + } + title_content(){ + return [(this.Logo()), (this.title())]; + } + Title(){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("h1"); + (obj.sub) = () => ((this.title_content())); + return obj; + } + tools(){ + return []; + } + Tools(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.tools())); + return obj; + } + head(){ + return [(this.Title()), (this.Tools())]; + } + Head(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (64); + (obj.dom_name) = () => ("header"); + (obj.sub) = () => ((this.head())); + return obj; + } + body_scroll_top(next){ + return (this.Body().scroll_top(next)); + } + body(){ + return []; + } + Body_content(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ((this.body())); + return obj; + } + body_content(){ + return [(this.Body_content())]; + } + Body(){ + const obj = new this.$.$mol_scroll(); + (obj.sub) = () => ((this.body_content())); + return obj; + } + foot(){ + return []; + } + Foot(){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("footer"); + (obj.sub) = () => ((this.foot())); + return obj; + } + dom_name(){ + return "article"; + } + field(){ + return {...(super.field()), "tabIndex": (this.tabindex())}; + } + sub(){ + return [ + (this.Head()), + (this.Body()), + (this.Foot()) + ]; + } + }; + ($mol_mem(($.$mol_page.prototype), "Title")); + ($mol_mem(($.$mol_page.prototype), "Tools")); + ($mol_mem(($.$mol_page.prototype), "Head")); + ($mol_mem(($.$mol_page.prototype), "Body_content")); + ($mol_mem(($.$mol_page.prototype), "Body")); + ($mol_mem(($.$mol_page.prototype), "Foot")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { per, rem } = $mol_style_unit; + const { hsla } = $mol_style_func; + $mol_style_define($mol_page, { + display: 'flex', + flex: { + basis: 'auto', + direction: 'column', + }, + position: 'relative', + alignSelf: 'stretch', + maxWidth: per(100), + maxHeight: per(100), + boxSizing: 'border-box', + color: $mol_theme.text, + ':focus': { + outline: 'none', + }, + Head: { + display: 'flex', + flexWrap: 'wrap', + justifyContent: 'flex-end', + flex: 'none', + position: 'relative', + margin: 0, + minHeight: rem(4), + padding: $mol_gap.block, + background: { + color: $mol_theme.card, + }, + border: { + radius: $mol_gap.round, + }, + box: { + shadow: [[0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla(0, 0, 0, .25)]], + }, + zIndex: 2, + }, + Title: { + minHeight: rem(2), + margin: 0, + padding: $mol_gap.text, + gap: $mol_gap.text, + wordBreak: 'normal', + textShadow: '0 0', + font: { + size: 'inherit', + weight: 'normal', + }, + flex: { + grow: 1, + shrink: 1, + basis: 'auto', + }, + }, + Tools: { + flex: { + basis: 'auto', + grow: 1000, + shrink: 1, + }, + display: 'flex', + justifyContent: 'flex-end', + alignItems: 'flex-start', + flexWrap: 'wrap', + }, + Body: { + flex: { + grow: 1000, + shrink: 1, + basis: per(100), + }, + }, + Body_content: { + padding: $mol_gap.block, + flex: { + direction: 'column', + shrink: 1, + grow: 1, + }, + justify: { + self: 'stretch', + }, + }, + Foot: { + display: 'flex', + justifyContent: 'space-between', + flex: 'none', + margin: 0, + background: { + color: $mol_theme.card, + }, + border: { + radius: $mol_gap.round, + }, + box: { + shadow: [[0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla(0, 0, 0, .25)]], + }, + zIndex: 1, + padding: $mol_gap.block, + ':empty': { + display: 'none', + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_book2_catalog) = class $mol_book2_catalog extends ($.$mol_book2) { + Menu_title(){ + return (this.Menu().Title()); + } + menu_title(){ + return ""; + } + Menu_tools(){ + return (this.Menu().Tools()); + } + Menu_logo(){ + return null; + } + menu_head(){ + return [(this.Menu_title()), (this.Menu_tools())]; + } + menu_filter(next){ + if(next !== undefined) return next; + return ""; + } + Menu_filter(){ + const obj = new this.$.$mol_search(); + (obj.query) = (next) => ((this.menu_filter(next))); + return obj; + } + arg(id){ + return {}; + } + spread_title(id){ + return ""; + } + Menu_link_title(id){ + const obj = new this.$.$mol_dimmer(); + (obj.needle) = () => ((this.menu_filter())); + (obj.haystack) = () => ((this.spread_title(id))); + return obj; + } + menu_link_content(id){ + return [(this.Menu_link_title(id))]; + } + Menu_link(id){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.arg(id))); + (obj.sub) = () => ((this.menu_link_content(id))); + return obj; + } + menu_links(){ + return [(this.Menu_link("0"))]; + } + Menu_links(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.menu_links())); + return obj; + } + menu_body(){ + return [(this.Menu_filter()), (this.Menu_links())]; + } + menu_foot(){ + return []; + } + Menu(){ + const obj = new this.$.$mol_page(); + (obj.title) = () => ((this.menu_title())); + (obj.Logo) = () => ((this.Menu_logo())); + (obj.tools) = () => ([...(this.menu_tools()), ...(this.addon_tools())]); + (obj.head) = () => ((this.menu_head())); + (obj.body) = () => ((this.menu_body())); + (obj.foot) = () => ((this.menu_foot())); + return obj; + } + spread_close_arg(){ + return {}; + } + Spread_close_icon(){ + const obj = new this.$.$mol_icon_cross(); + return obj; + } + param(){ + return ""; + } + spread(next){ + if(next !== undefined) return next; + return ""; + } + spreads(){ + return {}; + } + Spread(id){ + const obj = new this.$.$mol_view(); + return obj; + } + Spread_default(){ + return null; + } + spread_ids(){ + return []; + } + menu_filter_enabled(){ + return false; + } + spread_ids_filtered(){ + return []; + } + menu_tools(){ + return []; + } + addon_tools(){ + return []; + } + pages(){ + return [(this.Menu())]; + } + Spread_close(){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.spread_close_arg())); + (obj.sub) = () => ([(this.Spread_close_icon())]); + return obj; + } + }; + ($mol_mem(($.$mol_book2_catalog.prototype), "menu_filter")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu_filter")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Menu_link_title")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Menu_link")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu_links")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Menu")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Spread_close_icon")); + ($mol_mem(($.$mol_book2_catalog.prototype), "spread")); + ($mol_mem_key(($.$mol_book2_catalog.prototype), "Spread")); + ($mol_mem(($.$mol_book2_catalog.prototype), "Spread_close")); + + +; +"use strict"; +var $; +(function ($) { + function $mol_match_text(query, values) { + const tags = query.toLowerCase().trim().split(/\s+/).filter(tag => tag); + if (tags.length === 0) + return () => true; + return (variant) => { + const vals = values(variant); + return tags.every(tag => vals.some(val => val.toLowerCase().indexOf(tag) >= 0)); + }; + } + $.$mol_match_text = $mol_match_text; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_book2_catalog extends $.$mol_book2_catalog { + pages() { + const spread = this.spread() === '' ? this.Spread_default() : this.Spread(this.spread()); + return [ + this.Menu(), + ...spread + ? spread instanceof $mol_book2 + ? spread.pages() + : [spread] + : [], + ]; + } + spread_ids() { + return Object.keys(this.spreads()); + } + menu_body() { + return [ + ...this.menu_filter_enabled() ? [this.Menu_filter()] : [], + this.Menu_links(), + ]; + } + menu_filter_enabled() { + return this.spread_ids().length >= 10; + } + menu_links() { + return this.spread_ids_filtered() + .map(spread => this.Menu_link(spread)); + } + spread_ids_filtered() { + return this.spread_ids() + .filter($mol_match_text(this.menu_filter(), spread => [this.spread_title(spread)])); + } + Spread(id) { + return this.spreads()[id]; + } + Spread_default() { + return this.spreads()['']; + } + spread(next) { + return this.$.$mol_state_arg.value(this.param(), next) ?? ''; + } + arg(spread) { + return { [this.param()]: spread || null }; + } + spread_close_arg() { + return { [this.param()]: null }; + } + spread_title(spread) { + const page = this.Spread(spread); + return page instanceof $mol_book2 + && page.menu_title() + || page.title(); + } + } + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "pages", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread_ids", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "menu_body", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "menu_links", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread_ids_filtered", null); + __decorate([ + $mol_mem + ], $mol_book2_catalog.prototype, "spread", null); + $$.$mol_book2_catalog = $mol_book2_catalog; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/book2/catalog/catalog.view.css", "[mol_book2_catalog_menu_filter] {\n\tflex-shrink: 0;\n\tflex-grow: 0;\n\talign-self: stretch;\n}\n\n"); +})($ || ($ = {})); + +; + ($.$mol_icon_plus) = class $mol_icon_plus extends ($.$mol_icon) { + path(){ + return "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_part; + (function ($hyoo_crus_part) { + $hyoo_crus_part[$hyoo_crus_part["land"] = 219] = "land"; + $hyoo_crus_part[$hyoo_crus_part["pass"] = 255] = "pass"; + $hyoo_crus_part[$hyoo_crus_part["gift"] = 247] = "gift"; + $hyoo_crus_part[$hyoo_crus_part["gist"] = 0] = "gist"; + $hyoo_crus_part[$hyoo_crus_part["hash"] = 253] = "hash"; + $hyoo_crus_part[$hyoo_crus_part["rock"] = 245] = "rock"; + $hyoo_crus_part[$hyoo_crus_part["root"] = 1] = "root"; + $hyoo_crus_part[$hyoo_crus_part["buck"] = 9] = "buck"; + })($hyoo_crus_part = $.$hyoo_crus_part || ($.$hyoo_crus_part = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_encode(src) { + throw new Error('Not implemented'); + } + $.$mol_base64_encode = $mol_base64_encode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_encode_node(str) { + if (!str) + return ''; + if (Buffer.isBuffer(str)) + return str.toString('base64'); + return Buffer.from(str).toString('base64'); + } + $.$mol_base64_encode_node = $mol_base64_encode_node; + $.$mol_base64_encode = $mol_base64_encode_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_decode(base64) { + throw new Error('Not implemented'); + } + $.$mol_base64_decode = $mol_base64_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_decode_node(base64Str) { + base64Str = base64Str.replace(/-/g, '+').replace(/_/g, '/'); + const buffer = Buffer.from(base64Str, 'base64'); + return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); + } + $.$mol_base64_decode_node = $mol_base64_decode_node; + $.$mol_base64_decode = $mol_base64_decode_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_ae_encode(buffer) { + return $mol_base64_encode(buffer).replace(/\+/g, 'æ').replace(/\//g, 'Æ').replace(/=/g, ''); + } + $.$mol_base64_ae_encode = $mol_base64_ae_encode; + function $mol_base64_ae_decode(str) { + return $mol_base64_decode(str.replace(/æ/g, '+').replace(/Æ/g, '/')); + } + $.$mol_base64_ae_decode = $mol_base64_ae_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_buffer extends DataView { + static from(array) { + if (typeof array === 'number') + array = new Uint8Array(array); + if (typeof array === 'string') + array = $mol_base64_ae_decode(array); + return new this(array.buffer, array.byteOffset, array.byteLength); + } + static toString() { + return $$.$mol_func_name(this); + } + getUint48(offset, LE = false) { + if (offset % 4) { + return this.getUint16(offset, LE) + this.getUint32(offset + 2, LE) * 2 ** 16; + } + else { + return this.getUint32(offset, LE) + this.getUint16(offset + 4, LE) * 2 ** 32; + } + } + setUint48(offset, value, LE = false) { + if (offset % 4) { + this.setUint16(offset, value & ((1 << 16) - 1), LE); + this.setUint32(offset + 2, (value / 2 ** 16) | 0, LE); + } + else { + this.setUint32(offset, value | 0, LE); + this.setUint16(offset + 4, (value / 2 ** 32) | 0, LE); + } + } + int8(offset, next) { + if (next === undefined) + return this.getInt8(offset); + if (next >= -(2 ** 7) && next < 2 ** 7) + return this.setInt8(offset, next), next; + $mol_fail(new Error(`Wrong int8 value ${next}`)); + } + uint8(offset, next) { + if (next === undefined) + return this.getUint8(offset); + if (next >= 0 && next < 2 ** 8) + return this.setUint8(offset, next), next; + $mol_fail(new Error(`Wrong uint8 value ${next}`)); + } + int16(offset, next) { + if (next === undefined) + return this.getInt16(offset, !!'LE'); + if (next >= -(2 ** 15) && next < 2 ** 15) + return this.setInt16(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int16 value ${next}`)); + } + uint16(offset, next) { + if (next === undefined) + return this.getUint16(offset, !!'LE'); + if (next >= 0 && next < 2 ** 16) + return this.setUint16(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint16 value ${next}`)); + } + int32(offset, next) { + if (next === undefined) + return this.getInt32(offset, !!'LE'); + if (next >= -(2 ** 31) && next < 2 ** 31) + return this.setInt32(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int32 value ${next}`)); + } + uint32(offset, next) { + if (next === undefined) + return this.getUint32(offset, !!'LE'); + if (next >= 0 && next < 2 ** 32) + return this.setUint32(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint32 value ${next}`)); + } + uint48(offset, next) { + if (next === undefined) + return this.getUint48(offset, !!'LE'); + if (next >= 0 && next < 2 ** 48) + return this.setUint48(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint48 value ${next}`)); + } + int64(offset, next) { + if (next === undefined) + return this.getBigInt64(offset, !!'LE'); + if (next >= -(2 ** 63) && next < 2 ** 63) + return this.setBigInt64(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong int64 value ${next}`)); + } + uint64(offset, next) { + if (next === undefined) + return this.getBigUint64(offset, !!'LE'); + if (next >= 0 && next < 2 ** 64) + return this.setBigUint64(offset, next, !!'LE'), next; + $mol_fail(new Error(`Wrong uint64 value ${next}`)); + } + float32(offset, next) { + if (next !== undefined) + this.setFloat32(offset, next, !!'LE'); + return this.getFloat32(offset, !!'LE'); + } + float64(offset, next) { + if (next !== undefined) + this.setFloat64(offset, next, !!'LE'); + return this.getFloat64(offset, !!'LE'); + } + asArray() { + return new Uint8Array(this.buffer, this.byteOffset, this.byteLength); + } + toString() { + return $mol_base64_ae_encode(this.asArray()); + } + } + $.$mol_buffer = $mol_buffer; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_data_tagged(config) { + return config; + } + $.$mol_data_tagged = $mol_data_tagged; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$hyoo_crus_ref = $mol_data_tagged({ $hyoo_crus_ref: (val) => { + if (typeof val === 'string') + val = Symbol.for(val.replace(/_+$/, '')); + if (/^(([a-zæA-ZÆ0-9]{8})?_){0,2}([a-zæA-ZÆ0-9]{8})?$/.test(val.description)) + return val; + $mol_fail(new Error(`Wrong ref (${val.description})`)); + } }).$hyoo_crus_ref; + function $hyoo_crus_ref_land(ref) { + return $.$hyoo_crus_ref(ref.description.slice(0, 17)); + } + $.$hyoo_crus_ref_land = $hyoo_crus_ref_land; + function $hyoo_crus_ref_peer(ref) { + return ref.description.split('_')[0] ?? ''; + } + $.$hyoo_crus_ref_peer = $hyoo_crus_ref_peer; + function $hyoo_crus_ref_head(ref) { + return ref.description.split('_')[2] ?? ''; + } + $.$hyoo_crus_ref_head = $hyoo_crus_ref_head; + function $hyoo_crus_ref_encode(ref) { + return $mol_base64_ae_decode((ref.description || '_') + .split(/_/g) + .map(numb => numb || 'AAAAAAAA') + .join('')); + } + $.$hyoo_crus_ref_encode = $hyoo_crus_ref_encode; + function $hyoo_crus_ref_decode(bin) { + return $.$hyoo_crus_ref([...$mol_base64_ae_encode(bin).match(/(.{8})/g) ?? []] + .map(numb => numb === 'AAAAAAAA' ? '' : numb) + .join('_').replace(/_+$/, '')); + } + $.$hyoo_crus_ref_decode = $hyoo_crus_ref_decode; + function $hyoo_crus_ref_relate(base, ref) { + if (!ref.description.padEnd(18, '_').startsWith(base.description.slice(0, 18).padEnd(18, '_'))) + return ref; + return $.$hyoo_crus_ref(('__' + (ref.description.split('_')[2] ?? '')).replace(/_+$/, '')); + } + $.$hyoo_crus_ref_relate = $hyoo_crus_ref_relate; + function $hyoo_crus_ref_resolve(base, ref) { + if (!ref.description) + return $hyoo_crus_ref_land(base); + if (!ref.description.startsWith('__')) + return ref; + return $.$hyoo_crus_ref(base.description.slice(0, 18).padEnd(18, '_') + ref.description.slice(2)); + } + $.$hyoo_crus_ref_resolve = $hyoo_crus_ref_resolve; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_base64_url_encode(buffer) { + return $mol_base64_encode(buffer).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); + } + $.$mol_base64_url_encode = $mol_base64_url_encode; + function $mol_base64_url_decode(str) { + return $mol_base64_decode(str.replace(/-/g, '+').replace(/_/g, '/')); + } + $.$mol_base64_url_decode = $mol_base64_url_decode; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_crypto_native = $node.crypto.webcrypto; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const algorithm = { + name: 'ECDSA', + hash: 'SHA-256', + namedCurve: "P-256", + }; + class $mol_crypto_key extends $mol_buffer { + static from(serial) { + if (typeof serial === 'string') { + serial = new Uint8Array([ + ...$mol_base64_url_decode(serial.slice(0, 43)), + ...$mol_base64_url_decode(serial.slice(43, 86)), + ...$mol_base64_url_decode(serial.slice(86, 129)), + ]); + } + return super.from(serial); + } + asArray() { + return new Uint8Array(this.buffer, this.byteOffset, this.byteLength); + } + toString() { + const arr = this.asArray(); + return $mol_base64_url_encode(arr.subarray(0, 32)) + + $mol_base64_url_encode(arr.subarray(32, 64)) + + $mol_base64_url_encode(arr.subarray(64)); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key.prototype, "toString", null); + $.$mol_crypto_key = $mol_crypto_key; + class $mol_crypto_key_public extends $mol_crypto_key { + static size_str = 86; + static size_bin = 64; + async native() { + const str = this.toString(); + return $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['verify'], + kty: "EC", + x: str.slice(0, 43), + y: str.slice(43, 86), + }, algorithm, true, ['verify']); + } + async verify(data, sign) { + return await $mol_crypto_native.subtle.verify(algorithm, await this.native(), sign, data); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key_public.prototype, "native", null); + $.$mol_crypto_key_public = $mol_crypto_key_public; + class $mol_crypto_key_private extends $mol_crypto_key { + static size_str = 129; + static size_bin = 96; + static size_sign = 64; + static async generate() { + const pair = await $mol_crypto_native.subtle.generateKey(algorithm, true, ['sign', 'verify']); + const { x, y, d } = await $mol_crypto_native.subtle.exportKey('jwk', pair.privateKey); + return this.from(x + y + d); + } + async native() { + const str = this.toString(); + return await $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['sign'], + kty: "EC", + x: str.slice(0, 43), + y: str.slice(43, 86), + d: str.slice(86, 129), + }, algorithm, true, ['sign']); + } + public() { + return new $mol_crypto_key_public(this.buffer, this.byteOffset, this.byteOffset + 64); + } + async sign(data) { + return new Uint8Array(await $mol_crypto_native.subtle.sign(algorithm, await this.native(), data)); + } + } + __decorate([ + $mol_memo.method + ], $mol_crypto_key_private.prototype, "native", null); + __decorate([ + $mol_memo.method + ], $mol_crypto_key_private.prototype, "public", null); + $.$mol_crypto_key_private = $mol_crypto_key_private; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const algorithm = { + name: 'AES-CBC', + length: 128, + tagLength: 32, + }; + class $mol_crypto_secret extends Object { + native; + static size = 16; + constructor(native) { + super(); + this.native = native; + } + static async generate() { + return new this(await $mol_crypto_native.subtle.generateKey(algorithm, true, ['encrypt', 'decrypt'])); + } + static async from(serial) { + return new this(await $mol_crypto_native.subtle.importKey('raw', serial, algorithm, true, ['encrypt', 'decrypt'])); + } + static async pass(pass, salt) { + return new this(await $mol_crypto_native.subtle.deriveKey({ + name: "PBKDF2", + salt, + iterations: 10_000, + hash: "SHA-256", + }, await $mol_crypto_native.subtle.importKey("raw", $mol_charset_encode(pass), "PBKDF2", false, ["deriveKey"]), algorithm, true, ['encrypt', 'decrypt'])); + } + static async derive(private_serial, public_serial) { + const ecdh = { name: "ECDH", namedCurve: "P-256" }; + const jwk = { crv: 'P-256', ext: true, kty: 'EC' }; + const private_key = await $mol_crypto_native.subtle.importKey('jwk', { + ...jwk, + key_ops: ['deriveKey'], + x: private_serial.slice(0, 43), + y: private_serial.slice(43, 86), + d: private_serial.slice(86, 129), + }, ecdh, true, ['deriveKey']); + const public_key = await $mol_crypto_native.subtle.importKey('jwk', { + ...jwk, + key_ops: [], + x: public_serial.slice(0, 43), + y: public_serial.slice(43, 86), + }, ecdh, true, []); + const secret = await $mol_crypto_native.subtle.deriveKey({ + name: "ECDH", + public: public_key, + }, private_key, algorithm, true, ["encrypt", "decrypt"]); + return new this(secret); + } + async serial() { + return new Uint8Array(await $mol_crypto_native.subtle.exportKey('raw', this.native)); + } + async encrypt(open, salt) { + return new Uint8Array(await $mol_crypto_native.subtle.encrypt({ + ...algorithm, + iv: salt, + }, this.native, open)); + } + async decrypt(closed, salt) { + return new Uint8Array(await $mol_crypto_native.subtle.decrypt({ + ...algorithm, + iv: salt, + }, this.native, closed)); + } + } + $.$mol_crypto_secret = $mol_crypto_secret; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_auth extends $mol_crypto_key_private { + static current(next) { + $mol_wire_solid(); + if (next === undefined) { + const key = String($mol_state_local.value('$hyoo_crus_auth') ?? ''); + if (key) + return $hyoo_crus_auth.from(key); + } + if (!next) + next = this.grab(); + $mol_state_local.value('$hyoo_crus_auth', next.toString()); + return next; + } + static embryos = []; + static grab() { + if (this.embryos.length) + return this.from(this.embryos.pop()); + return $mol_wire_sync(this).generate(); + } + static async generate() { + for (let i = 0; i < 4096; ++i) { + const auth = await super.generate(); + if (auth.uint8(0) !== $hyoo_crus_unit_kind.pass) + continue; + return this.from(auth); + } + $mol_fail(new Error(`Too long key generation`)); + } + lord() { + return $hyoo_crus_ref_decode(new Uint8Array(this.buffer, 2, 12)); + } + peer() { + return $mol_base64_ae_encode(new Uint8Array(this.buffer, 2, 6)); + } + secret_mutual(pub) { + return $mol_wire_sync($mol_crypto_secret).derive(this.toString(), pub.toString()); + } + } + __decorate([ + $mol_memo.method + ], $hyoo_crus_auth.prototype, "lord", null); + __decorate([ + $mol_memo.method + ], $hyoo_crus_auth.prototype, "peer", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_auth.prototype, "secret_mutual", null); + __decorate([ + $mol_mem + ], $hyoo_crus_auth, "current", null); + __decorate([ + $mol_action + ], $hyoo_crus_auth, "grab", null); + $.$hyoo_crus_auth = $hyoo_crus_auth; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_face_map extends Map { + last = 0; + total = 0; + constructor(entries) { + super(); + if (entries) + this.sync(entries); + } + sync(right) { + if (right instanceof $hyoo_crus_face_map) + this.total = right.total; + for (const [peer, time] of right) + this.time_max(peer, time); + } + time_max(peer, time) { + if (this.last < time) + this.last = time; + let prev = this.get(peer) ?? 0; + if (prev < time) + this.set(peer, time); + } + tick() { + return this.last = Math.max(this.last + 1, Date.now()); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), $mol_dev_format_shade(' ', this.total), $mol_dev_format_shade(' ', new Date(this.last))); + } + } + __decorate([ + $mol_action + ], $hyoo_crus_face_map.prototype, "tick", null); + $.$hyoo_crus_face_map = $hyoo_crus_face_map; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_dict extends Map { + pub = new $mol_wire_pub; + has(key) { + this.pub.promote(); + return super.has(key); + } + get(key) { + this.pub.promote(); + return super.get(key); + } + entries() { + this.pub.promote(); + return super.entries(); + } + keys() { + this.pub.promote(); + return super.keys(); + } + values() { + this.pub.promote(); + return super.values(); + } + forEach(task, self) { + this.pub.promote(); + super.forEach(task, self); + } + [Symbol.iterator]() { + this.pub.promote(); + return super[Symbol.iterator](); + } + get size() { + this.pub.promote(); + return super.size; + } + set(key, value) { + if (super.get(key) === value) + return this; + super.set(key, value); + this.pub?.emit(); + return this; + } + delete(key) { + const res = super.delete(key); + if (res) + this.pub.emit(); + return res; + } + clear() { + if (!super.size) + return; + super.clear(); + this.pub.emit(); + } + item(key, next) { + if (next === undefined) + return this.get(key) ?? null; + if (next === null) + this.delete(key); + else + this.set(key, next); + return next; + } + } + $.$mol_wire_dict = $mol_wire_dict; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_set extends Set { + pub = new $mol_wire_pub; + has(value) { + this.pub.promote(); + return super.has(value); + } + entries() { + this.pub.promote(); + return super.entries(); + } + keys() { + this.pub.promote(); + return super.keys(); + } + values() { + this.pub.promote(); + return super.values(); + } + forEach(task, self) { + this.pub.promote(); + super.forEach(task, self); + } + [Symbol.iterator]() { + this.pub.promote(); + return super[Symbol.iterator](); + } + get size() { + this.pub.promote(); + return super.size; + } + add(value) { + if (super.has(value)) + return this; + super.add(value); + this.pub.emit(); + return this; + } + delete(value) { + const res = super.delete(value); + if (res) + this.pub.emit(); + return res; + } + clear() { + if (!super.size) + return; + super.clear(); + this.pub.emit(); + } + item(val, next) { + if (next === undefined) + return this.has(val); + if (next) + this.add(val); + else + this.delete(val); + return next; + } + } + $.$mol_wire_set = $mol_wire_set; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_area; + (function ($hyoo_crus_area) { + $hyoo_crus_area[$hyoo_crus_area["data"] = 0] = "data"; + $hyoo_crus_area[$hyoo_crus_area["meta"] = 1] = "meta"; + })($hyoo_crus_area = $.$hyoo_crus_area || ($.$hyoo_crus_area = {})); + function $hyoo_crus_area_of(numb) { + const num = $mol_base64_ae_decode(numb || 'AAAAAAAA')[0]; + return $hyoo_crus_area[num % 2]; + } + $.$hyoo_crus_area_of = $hyoo_crus_area_of; + function $hyoo_crus_area_to(numb, area) { + const buf = $mol_base64_ae_decode(numb || 'AAAAAAAA'); + buf[0] -= buf[0] % 2 - $hyoo_crus_area[area]; + numb = $mol_base64_ae_encode(buf); + return numb; + } + $.$hyoo_crus_area_to = $hyoo_crus_area_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_rank; + (function ($hyoo_crus_rank) { + $hyoo_crus_rank[$hyoo_crus_rank["nil"] = 0] = "nil"; + $hyoo_crus_rank[$hyoo_crus_rank["get"] = 1] = "get"; + $hyoo_crus_rank[$hyoo_crus_rank["add"] = 3] = "add"; + $hyoo_crus_rank[$hyoo_crus_rank["mod"] = 7] = "mod"; + $hyoo_crus_rank[$hyoo_crus_rank["law"] = 15] = "law"; + })($hyoo_crus_rank = $.$hyoo_crus_rank || ($.$hyoo_crus_rank = {})); + $.$hyoo_crus_rank_private = {}; + $.$hyoo_crus_rank_public = { '': $hyoo_crus_rank.get }; + $.$hyoo_crus_rank_lobby = { '': $hyoo_crus_rank.add }; + $.$hyoo_crus_rank_orgy = { '': $hyoo_crus_rank.mod }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_fund extends $mol_object { + item_make; + constructor(item_make) { + super(); + this.item_make = item_make; + } + Item(head) { + return this.item_make(head); + } + } + __decorate([ + $mol_mem_key + ], $hyoo_crus_fund.prototype, "Item", null); + $.$hyoo_crus_fund = $hyoo_crus_fund; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let sponge = new Uint32Array(80); + function $mol_crypto_hash(data) { + const bits = data.byteLength << 3; + const kbits = bits >> 5; + const kword = 0x80 << (24 - bits & 0b11111); + const bytes = 16 + (bits + 64 >>> 9 << 4); + const klens = bytes - 1; + const words = new Int32Array(data.buffer, data.byteOffset, data.byteLength >> 2); + let tail = 0; + for (let i = words.length * 4; i < data.length; ++i) { + tail |= data[i] << (i << 3 & 0b11000); + } + const hash = new Int32Array([1732584193, -271733879, -1732584194, 271733878, -1009589776]); + for (let i = 0; i < bytes; i += 16) { + let h0 = hash[0]; + let h1 = hash[1]; + let h2 = hash[2]; + let h3 = hash[3]; + let h4 = hash[4]; + for (let j = 0; j < 80; ++j) { + let turn; + if (j < 16) { + const k = i + j; + if (k === klens) { + sponge[j] = bits; + } + else { + let word = k === words.length ? tail : + k > words.length ? 0 : + words[k]; + word = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF; + if (k === kbits) + word |= kword; + sponge[j] = word; + } + turn = (h1 & h2 | ~h1 & h3) + 1518500249; + } + else { + const shuffle = sponge[j - 3] ^ sponge[j - 8] ^ sponge[j - 14] ^ sponge[j - 16]; + sponge[j] = shuffle << 1 | shuffle >>> 31; + turn = + j < 20 ? (h1 & h2 | ~h1 & h3) + 1518500249 : + j < 40 ? (h1 ^ h2 ^ h3) + 1859775393 : + j < 60 ? (h1 & h2 | h1 & h3 | h2 & h3) - 1894007588 : + (h1 ^ h2 ^ h3) - 899497514; + } + const next = turn + h4 + (sponge[j] >>> 0) + ((h0 << 5) | (h0 >>> 27)); + h4 = h3; + h3 = h2; + h2 = (h1 << 30) | (h1 >>> 2); + h1 = h0; + h0 = next; + } + hash[0] += h0; + hash[1] += h1; + hash[2] += h2; + hash[3] += h3; + hash[4] += h4; + } + for (let i = 0; i < 20; ++i) { + const word = hash[i]; + hash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF; + } + return new Uint8Array(hash.buffer); + } + $.$mol_crypto_hash = $mol_crypto_hash; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_pack extends $mol_buffer { + toBlob() { + return new Blob([this], { type: 'application/vnd.hyoo_crus_pack' }); + } + parts(land = null) { + const lands = {}; + if (land) + lands[land] = { faces: new $hyoo_crus_face_map, units: [] }; + const rocks = []; + const buf = this.asArray(); + for (let offset = 0; offset < this.byteLength;) { + const kind = this.uint8(offset); + if (kind % 2) { + switch (kind) { + case $hyoo_crus_part.land: { + const faces = new $hyoo_crus_face_map; + faces.total = this.uint32(offset) >> 8; + offset += 4; + land = $hyoo_crus_ref_decode(new Uint8Array(buf.buffer, buf.byteOffset + offset, 18)); + offset += 18; + const len = this.uint16(offset); + offset += 2; + for (let i = 0; i < len; ++i) { + const peer = $mol_base64_ae_encode(new Uint8Array(buf.buffer, buf.byteOffset + offset, 6)); + const time = this.uint48(offset + 6); + faces.time_max(peer, time); + offset += 12; + } + lands[land] = { faces, units: [] }; + continue; + } + case $hyoo_crus_part.pass: { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_pass(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + case $hyoo_crus_part.gift: { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_gift(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + case $hyoo_crus_part.hash: { + const hash = buf.slice(offset += 4, offset += 24); + rocks.push([hash, null]); + continue; + } + case $hyoo_crus_part.rock: { + const size = this.uint32(offset) >> 8; + if (size === 0) { + const hash = buf.slice(offset + 4, offset + 4 + 24); + rocks.push([hash, null]); + offset += 4 + 24; + } + else { + const rock = buf.slice(offset + 4, offset + 4 + size); + const hash = $mol_crypto_hash(rock); + rocks.push([hash, rock]); + offset += Math.ceil(size / 8 + .5) * 8; + } + continue; + } + case $hyoo_crus_part.buck: { + offset += 128; + continue; + } + default: $mol_fail(new Error(`Unknown CRUS Pack Part (${kind.toString(2)}) at (${offset.toString(16)})`)); + } + } + else { + if (!land) + $mol_fail(new Error('Land is undefined')); + const unit = new $hyoo_crus_gist(buf.slice(offset, offset += $hyoo_crus_unit.size).buffer); + lands[land].units ||= []; + lands[land].units.push(unit); + continue; + } + } + return { lands, rocks }; + } + static make({ lands, rocks }) { + let size = 0; + for (const land of Reflect.ownKeys(lands)) { + size += 24; + size += lands[land].faces.size * 12; + size += lands[land].units.length * $hyoo_crus_unit.size; + } + for (const [hash, rock] of rocks) { + size += rock ? Math.ceil(rock.length / 8 + .5) * 8 : 24; + } + if (size === 0) + return null; + const buff = new Uint8Array(size); + const pack = new $hyoo_crus_pack(buff.buffer); + let offset = 0; + for (const land of Reflect.ownKeys(lands)) { + const faces = lands[land].faces; + pack.uint32(offset, $hyoo_crus_part.land | (faces.total << 8)); + buff.set($hyoo_crus_ref_encode(land), offset + 4); + pack.uint16(offset + 22, faces.size); + offset += 24; + for (const [peer, time] of faces) { + buff.set($mol_base64_ae_decode(peer), offset); + pack.uint48(offset + 6, time); + offset += 12; + } + for (const unit of lands[land].units) { + buff.set(unit.asArray(), offset); + offset += unit.byteLength; + } + } + for (const [hash, rock] of rocks) { + const len = rock?.length ?? 0; + pack.uint32(offset, $hyoo_crus_part.rock | (len << 8)); + if (rock) + buff.set(rock, offset + 4); + else + buff.set(hash, offset + 4); + offset += rock ? Math.ceil(len / 8 + .5) * 8 : 24; + } + return pack; + } + } + $.$hyoo_crus_pack = $hyoo_crus_pack; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_mine extends $mol_object { + static hash(blob) { + return $mol_crypto_hash(blob); + } + static rock(hash, next) { + $mol_wire_solid(); + return next ?? null; + } + static save(blob) { + const hash = this.hash(blob); + this.rock(hash, blob); + return hash; + } + } + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine, "hash", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine, "rock", null); + __decorate([ + $mol_action + ], $hyoo_crus_mine, "save", null); + $.$hyoo_crus_mine = $hyoo_crus_mine; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_mine_node extends $hyoo_crus_mine { + static root() { + return $mol_file.relative('.crus'); + } + static rock_file(hash) { + const id = $mol_base64_ae_encode(hash); + return this.root().resolve(`rock/${id.slice(0, 2)}/${id}.blob`); + } + static rock(hash, next) { + $mol_wire_solid(); + const buf = this.rock_file(hash).buffer(next); + if (!next) + return buf; + if ($mol_compare_deep(hash, this.hash(buf))) + return buf; + return null; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_mine_node, "root", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine_node, "rock_file", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine_node, "rock", null); + $.$hyoo_crus_mine_node = $hyoo_crus_mine_node; + $.$hyoo_crus_mine = $hyoo_crus_mine_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_base { + static patterns = {}; + static formatter(pattern) { + if (this.patterns[pattern]) + return this.patterns[pattern]; + var tokens = Object.keys(this.patterns) + .sort() + .reverse() + .map((token) => token.replace(/([-+*.\[\]()\^])/g, '\\$1')); + var lexer = RegExp('(.*?)(' + tokens.join('|') + '|$)', 'g'); + var funcs = []; + pattern.replace(lexer, (str, text, token) => { + if (text) + funcs.push(() => text); + if (token) + funcs.push(this.patterns[token]); + return str; + }); + return this.patterns[pattern] = (arg) => { + return funcs.reduce((res, func) => res + func(arg), ''); + }; + } + toString(pattern) { + const Base = this.constructor; + const formatter = Base.formatter(pattern); + return formatter(this); + } + } + $.$mol_time_base = $mol_time_base; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_duration extends $mol_time_base { + constructor(config = 0) { + super(); + if (typeof config === 'number') { + if (!Number.isFinite(config)) + throw new RangeError(`Wrong ms count`); + this.second = config / 1000; + return; + } + if (typeof config === 'string') { + if (config === 'Z') { + this.hour = 0; + this.minute = 0; + return; + } + duration: { + const parser = /^P(?:([+-]?\d+(?:\.\d+)?)Y)?(?:([+-]?\d+(?:\.\d+)?)M)?(?:([+-]?\d+(?:\.\d+)?)D)?(?:T(?:([+-]?\d+(?:\.\d+)?)h)?(?:([+-]?\d+(?:\.\d+)?)m)?(?:([+-]?\d+(?:\.\d+)?)s)?)?$/i; + const found = parser.exec(config); + if (!found) + break duration; + if (found[1]) + this.year = Number(found[1]); + if (found[2]) + this.month = Number(found[2]); + if (found[3]) + this.day = Number(found[3]); + if (found[4]) + this.hour = Number(found[4]); + if (found[5]) + this.minute = Number(found[5]); + if (found[6]) + this.second = Number(found[6]); + return; + } + offset: { + var parser = /^[+-](\d\d)(?::?(\d\d))?$/i; + var found = parser.exec(config); + if (!found) + break offset; + if (found[1]) + this.hour = Number(found[1]); + if (found[2]) + this.minute = Number(found[2]); + return; + } + throw new Error(`Can not parse time duration (${config})`); + } + this.year = config.year || 0; + this.month = config.month || 0; + this.day = config.day || 0; + this.hour = config.hour || 0; + this.minute = config.minute || 0; + this.second = config.second || 0; + } + year = 0; + month = 0; + day = 0; + hour = 0; + minute = 0; + second = 0; + get normal() { + let second = this.second ?? 0; + let minute = this.minute ?? 0; + let hour = this.hour ?? 0; + let day = this.day ?? 0; + minute += Math.floor(second / 60); + second = second % 60; + hour += Math.floor(minute / 60); + minute = minute % 60; + day += Math.floor(hour / 24); + hour = hour % 24; + return new $mol_time_duration({ + year: this.year, + month: this.month, + day: day, + hour: hour, + minute: minute, + second: second, + }); + } + summ(config) { + const duration = new $mol_time_duration(config); + return new $mol_time_duration({ + year: this.year + duration.year, + month: this.month + duration.month, + day: this.day + duration.day, + hour: this.hour + duration.hour, + minute: this.minute + duration.minute, + second: this.second + duration.second, + }); + } + mult(numb) { + return new $mol_time_duration({ + year: this.year && this.year * numb, + month: this.month && this.month * numb, + day: this.day && this.day * numb, + hour: this.hour && this.hour * numb, + minute: this.minute && this.minute * numb, + second: this.second && this.second * numb, + }); + } + count(config) { + const duration = new $mol_time_duration(config); + return this.valueOf() / duration.valueOf(); + } + valueOf() { + var day = this.year * 365 + this.month * 30.4 + this.day; + var second = ((day * 24 + this.hour) * 60 + this.minute) * 60 + this.second; + return second * 1000; + } + toJSON() { return this.toString(); } + toString(pattern = 'P#Y#M#DT#h#m#s') { + return super.toString(pattern); + } + [Symbol.toPrimitive](mode) { + return mode === 'number' ? this.valueOf() : this.toString(); + } + static patterns = { + '#Y': (duration) => { + if (!duration.year) + return ''; + return duration.year + 'Y'; + }, + '#M': (duration) => { + if (!duration.month) + return ''; + return duration.month + 'M'; + }, + '#D': (duration) => { + if (!duration.day) + return ''; + return duration.day + 'D'; + }, + '#h': (duration) => { + if (!duration.hour) + return ''; + return duration.hour + 'H'; + }, + '#m': (duration) => { + if (!duration.minute) + return ''; + return duration.minute + 'M'; + }, + '#s': (duration) => { + if (!duration.second) + return ''; + return duration.second + 'S'; + }, + 'hh': (moment) => { + if (moment.hour == null) + return ''; + return String(100 + moment.hour).slice(1); + }, + 'h': (moment) => { + if (moment.hour == null) + return ''; + return String(moment.hour); + }, + ':mm': (moment) => { + if (moment.minute == null) + return ''; + return ':' + $mol_time_moment.patterns['mm'](moment); + }, + 'mm': (moment) => { + if (moment.minute == null) + return ''; + return String(100 + moment.minute).slice(1); + }, + 'm': (moment) => { + if (moment.minute == null) + return ''; + return String(moment.minute); + }, + ':ss': (moment) => { + if (moment.second == null) + return ''; + return ':' + $mol_time_moment.patterns['ss'](moment); + }, + 'ss': (moment) => { + if (moment.second == null) + return ''; + return String(100 + moment.second | 0).slice(1); + }, + 's': (moment) => { + if (moment.second == null) + return ''; + return String(moment.second | 0); + }, + '.sss': (moment) => { + if (moment.second == null) + return ''; + return '.' + $mol_time_moment.patterns['sss'](moment); + }, + 'sss': (moment) => { + if (moment.second == null) + return ''; + const millisecond = (moment.second - Math.trunc(moment.second)).toFixed(3); + return millisecond.slice(2); + }, + }; + } + $.$mol_time_duration = $mol_time_duration; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_time_moment_weekdays; + (function ($mol_time_moment_weekdays) { + $mol_time_moment_weekdays[$mol_time_moment_weekdays["monday"] = 0] = "monday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["tuesday"] = 1] = "tuesday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["wednesday"] = 2] = "wednesday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["thursday"] = 3] = "thursday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["friday"] = 4] = "friday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["saturday"] = 5] = "saturday"; + $mol_time_moment_weekdays[$mol_time_moment_weekdays["sunday"] = 6] = "sunday"; + })($mol_time_moment_weekdays = $.$mol_time_moment_weekdays || ($.$mol_time_moment_weekdays = {})); + function numb(str, max) { + const numb = Number(str); + if (numb < max) + return numb; + $mol_fail(new Error(`Wrong time component ${str}`)); + } + class $mol_time_moment extends $mol_time_base { + constructor(config = new Date) { + super(); + if (typeof config === 'number') { + config = new Date(config); + if (Number.isNaN(config.valueOf())) + throw new RangeError(`Wrong ms count`); + } + if (typeof config === 'string') { + const parsed = /^(?:(\d\d?\d?\d?)(?:-?(\d\d?)(?:-?(\d\d?))?)?)?(?:[T ](?:(\d\d?)(?::?(\d\d?)(?::?(\d\d?(?:\.\d+)?))?)?)?(Z|[\+\-]\d\d?(?::?(?:\d\d?)?)?)?)?$/.exec(config); + if (!parsed) + throw new Error(`Can not parse time moment (${config})`); + if (parsed[1]) + this.year = numb(parsed[1], 9999); + if (parsed[2]) + this.month = numb(parsed[2], 13) - 1; + if (parsed[3]) + this.day = numb(parsed[3], 32) - 1; + if (parsed[4]) + this.hour = numb(parsed[4], 60); + if (parsed[5]) + this.minute = numb(parsed[5], 60); + if (parsed[6]) + this.second = numb(parsed[6], 60); + if (parsed[7]) + this.offset = new $mol_time_duration(parsed[7]); + return; + } + if (config instanceof Date) { + this.year = config.getFullYear(); + this.month = config.getMonth(); + this.day = config.getDate() - 1; + this.hour = config.getHours(); + this.minute = config.getMinutes(); + this.second = config.getSeconds() + config.getMilliseconds() / 1000; + const offset = -config.getTimezoneOffset(); + this.offset = new $mol_time_duration({ + hour: (offset < 0) ? Math.ceil(offset / 60) : Math.floor(offset / 60), + minute: offset % 60 + }); + return; + } + this.year = config.year; + this.month = config.month; + this.day = config.day; + this.hour = config.hour; + this.minute = config.minute; + this.second = config.second; + this.offset = config.offset == null ? config.offset : new $mol_time_duration(config.offset); + } + year; + month; + day; + hour; + minute; + second; + offset; + get weekday() { + return (this.native.getDay() + 6) % 7; + } + _native; + get native() { + if (this._native) + return this._native; + const utc = this.toOffset('Z'); + return this._native = new Date(Date.UTC(utc.year ?? 0, utc.month ?? 0, (utc.day ?? 0) + 1, utc.hour ?? 0, utc.minute ?? 0, utc.second != undefined ? Math.floor(utc.second) : 0, utc.second != undefined ? Math.floor((utc.second - Math.floor(utc.second)) * 1000) : 0)); + } + _normal; + get normal() { + if (this._normal) + return this._normal; + const moment = new $mol_time_moment(this.native); + return this._normal = new $mol_time_moment({ + year: this.year === undefined ? undefined : moment.year, + month: this.month === undefined ? undefined : moment.month, + day: this.day === undefined ? undefined : moment.day, + hour: this.hour === undefined ? undefined : moment.hour, + minute: this.minute === undefined ? undefined : moment.minute, + second: this.second === undefined ? undefined : moment.second, + offset: this.offset === undefined ? undefined : moment.offset, + }); + } + merge(config) { + const moment = new $mol_time_moment(config); + return new $mol_time_moment({ + year: moment.year === undefined ? this.year : moment.year, + month: moment.month === undefined ? this.month : moment.month, + day: moment.day === undefined ? this.day : moment.day, + hour: moment.hour === undefined ? this.hour : moment.hour, + minute: moment.minute === undefined ? this.minute : moment.minute, + second: moment.second === undefined ? this.second : moment.second, + offset: moment.offset === undefined ? this.offset : moment.offset, + }); + } + shift(config) { + const duration = new $mol_time_duration(config); + const moment = new $mol_time_moment().merge({ + year: this.year, + month: this.month, + day: this.day, + hour: this.hour ?? 0, + minute: this.minute ?? 0, + second: this.second ?? 0, + offset: this.offset ?? 0 + }); + const second = moment.second + (duration.second ?? 0); + const native = new Date(moment.year + (duration.year ?? 0), moment.month + (duration.month ?? 0), moment.day + 1 + (duration.day ?? 0), moment.hour + (duration.hour ?? 0), moment.minute + (duration.minute ?? 0), Math.floor(second), (second - Math.floor(second)) * 1000); + if (isNaN(native.valueOf())) + throw new Error('Wrong time'); + return new $mol_time_moment({ + year: this.year === undefined ? undefined : native.getFullYear(), + month: this.month === undefined ? undefined : native.getMonth(), + day: this.day === undefined ? undefined : native.getDate() - 1, + hour: this.hour === undefined ? undefined : native.getHours(), + minute: this.minute === undefined ? undefined : native.getMinutes(), + second: this.second === undefined ? undefined : native.getSeconds() + native.getMilliseconds() / 1000, + offset: this.offset, + }); + } + mask(config) { + const mask = new $mol_time_moment(config); + return new $mol_time_moment({ + year: mask.year === undefined ? undefined : this.year, + month: mask.month === undefined ? undefined : this.month, + day: mask.day === undefined ? undefined : this.day, + hour: mask.hour === undefined ? undefined : this.hour, + minute: mask.minute === undefined ? undefined : this.minute, + second: mask.second === undefined ? undefined : this.second, + offset: mask.offset === undefined ? undefined : this.offset, + }); + } + toOffset(config = new $mol_time_moment().offset) { + const duration = new $mol_time_duration(config); + const offset = this.offset || new $mol_time_moment().offset; + let with_time = new $mol_time_moment('T00:00:00').merge(this); + const moment = with_time.shift(duration.summ(offset.mult(-1))); + return moment.merge({ offset: duration }); + } + valueOf() { return this.native.getTime(); } + toJSON() { return this.toString(); } + toString(pattern = 'YYYY-MM-DDThh:mm:ss.sssZ') { + return super.toString(pattern); + } + [Symbol.toPrimitive](mode) { + return mode === 'number' ? this.valueOf() : this.toString(); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', $mol_dev_format_accent(this.toString('YYYY-MM-DD hh:mm:ss.sss Z'))); + } + static patterns = { + 'YYYY': (moment) => { + if (moment.year == null) + return ''; + return String(moment.year); + }, + 'AD': (moment) => { + if (moment.year == null) + return ''; + return String(Math.floor(moment.year / 100) + 1); + }, + 'YY': (moment) => { + if (moment.year == null) + return ''; + return String(moment.year % 100); + }, + 'Month': (pattern => (moment) => { + if (moment.month == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { month: 'long' })), + 'DD Month': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['DD'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Month'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: '2-digit', month: 'long' })), + 'D Month': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['D'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Month'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: 'numeric', month: 'long' })), + 'Mon': (pattern => (moment) => { + if (moment.month == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { month: 'short' })), + 'DD Mon': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['DD'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Mon'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: '2-digit', month: 'short' })), + 'D Mon': (pattern => (moment) => { + if (moment.month == null) { + if (moment.day == null) { + return ''; + } + else { + return $mol_time_moment.patterns['D'](moment); + } + } + else { + if (moment.day == null) { + return $mol_time_moment.patterns['Mon'](moment); + } + else { + return pattern.format(moment.native); + } + } + })(new Intl.DateTimeFormat(undefined, { day: 'numeric', month: 'short' })), + '-MM': (moment) => { + if (moment.month == null) + return ''; + return '-' + $mol_time_moment.patterns['MM'](moment); + }, + 'MM': (moment) => { + if (moment.month == null) + return ''; + return String(100 + moment.month + 1).slice(1); + }, + 'M': (moment) => { + if (moment.month == null) + return ''; + return String(moment.month + 1); + }, + 'WeekDay': (pattern => (moment) => { + if (moment.day == null) + return ''; + if (moment.month == null) + return ''; + if (moment.year == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { weekday: 'long' })), + 'WD': (pattern => (moment) => { + if (moment.day == null) + return ''; + if (moment.month == null) + return ''; + if (moment.year == null) + return ''; + return pattern.format(moment.native); + })(new Intl.DateTimeFormat(undefined, { weekday: 'short' })), + '-DD': (moment) => { + if (moment.day == null) + return ''; + return '-' + $mol_time_moment.patterns['DD'](moment); + }, + 'DD': (moment) => { + if (moment.day == null) + return ''; + return String(100 + moment.day + 1).slice(1); + }, + 'D': (moment) => { + if (moment.day == null) + return ''; + return String(moment.day + 1); + }, + 'Thh': (moment) => { + if (moment.hour == null) + return ''; + return 'T' + $mol_time_moment.patterns['hh'](moment); + }, + 'hh': (moment) => { + if (moment.hour == null) + return ''; + return String(100 + moment.hour).slice(1); + }, + 'h': (moment) => { + if (moment.hour == null) + return ''; + return String(moment.hour); + }, + ':mm': (moment) => { + if (moment.minute == null) + return ''; + return ':' + $mol_time_moment.patterns['mm'](moment); + }, + 'mm': (moment) => { + if (moment.minute == null) + return ''; + return String(100 + moment.minute).slice(1); + }, + 'm': (moment) => { + if (moment.minute == null) + return ''; + return String(moment.minute); + }, + ':ss': (moment) => { + if (moment.second == null) + return ''; + return ':' + $mol_time_moment.patterns['ss'](moment); + }, + 'ss': (moment) => { + if (moment.second == null) + return ''; + return String(100 + moment.second | 0).slice(1); + }, + 's': (moment) => { + if (moment.second == null) + return ''; + return String(moment.second | 0); + }, + '.sss': (moment) => { + if (moment.second == null) + return ''; + if (moment.second === (moment.second | 0)) + return ''; + return '.' + $mol_time_moment.patterns['sss'](moment); + }, + 'sss': (moment) => { + if (moment.second == null) + return ''; + const millisecond = (moment.second - Math.trunc(moment.second)).toFixed(3); + return millisecond.slice(2); + }, + 'Z': (moment) => { + const offset = moment.offset; + if (!offset) + return ''; + let hour = offset.hour; + let sign = '+'; + if (hour < 0) { + sign = '-'; + hour = -hour; + } + return sign + String(100 + hour).slice(1) + ':' + String(100 + offset.minute).slice(1); + } + }; + } + $.$mol_time_moment = $mol_time_moment; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_time_interval extends $mol_time_base { + constructor(config) { + super(); + if (typeof config === 'string') { + var chunks = config.split('/'); + if (chunks[0]) { + if (chunks[0][0].toUpperCase() === 'P') { + this._duration = new $mol_time_duration(chunks[0]); + } + else { + this._start = new $mol_time_moment(chunks[0]); + } + } + else { + this._start = new $mol_time_moment(); + } + if (chunks[1]) { + if (chunks[1][0].toUpperCase() === 'P') { + this._duration = new $mol_time_duration(chunks[1]); + } + else { + this._end = new $mol_time_moment(chunks[1]); + } + } + else { + this._end = new $mol_time_moment(); + } + return; + } + if (config.start !== undefined) + this._start = new $mol_time_moment(config.start); + if (config.end !== undefined) + this._end = new $mol_time_moment(config.end); + if (config.duration !== undefined) + this._duration = new $mol_time_duration(config.duration); + } + _start; + get start() { + if (this._start) + return this._start; + return this._start = this._end.shift(this._duration.mult(-1)); + } + _end; + get end() { + if (this._end) + return this._end; + return this._end = this._start.shift(this._duration); + } + _duration; + get duration() { + if (this._duration) + return this._duration; + return this._duration = new $mol_time_duration(this._end.valueOf() - this._start.valueOf()); + } + toJSON() { return this.toString(); } + toString() { + return (this._start || this._duration || '').toString() + '/' + (this._end || this._duration || '').toString(); + } + [Symbol.toPrimitive](mode) { + return this.toString(); + } + } + $.$mol_time_interval = $mol_time_interval; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + function $mol_dom_serialize(node) { + const serializer = new $mol_dom_context.XMLSerializer; + return serializer.serializeToString(node); + } + $.$mol_dom_serialize = $mol_dom_serialize; +})($ || ($ = {})); + +; +"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'); + if (error.length) + throw new Error(error[0].textContent); + return doc; + } + $.$mol_dom_parse = $mol_dom_parse; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$hyoo_crus_vary_mapping = { + nil: null, + bin: Uint8Array, + bool: Boolean, + int: BigInt, + real: Number, + ref: Symbol, + str: String, + time: $mol_time_moment, + dur: $mol_time_duration, + range: $mol_time_interval, + json: Object, + jsan: Array, + dom: $mol_dom_context.Element, + tree: $mol_tree2, + }; + let $hyoo_crus_vary_tip; + (function ($hyoo_crus_vary_tip) { + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["nil"] = 0] = "nil"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["bin"] = 1] = "bin"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["bool"] = 2] = "bool"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["int"] = 3] = "int"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["real"] = 4] = "real"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["ref"] = 5] = "ref"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["str"] = 16] = "str"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["time"] = 17] = "time"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["dur"] = 18] = "dur"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["range"] = 19] = "range"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["json"] = 20] = "json"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["jsan"] = 21] = "jsan"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["dom"] = 22] = "dom"; + $hyoo_crus_vary_tip[$hyoo_crus_vary_tip["tree"] = 23] = "tree"; + })($hyoo_crus_vary_tip = $.$hyoo_crus_vary_tip || ($.$hyoo_crus_vary_tip = {})); + function $hyoo_crus_vary_switch(vary, ways) { + if (vary === null) + return ways.nil(vary); + switch (typeof vary) { + case "boolean": return ways.bool(vary); + case "bigint": return ways.int(vary); + case "number": return ways.real(vary); + case "string": return ways.str(vary); + case 'symbol': return ways.ref(vary); + } + switch (Reflect.getPrototypeOf(vary)) { + case Object.prototype: return ways.json(vary); + case Array.prototype: return ways.jsan(vary); + case Uint8Array.prototype: return ways.bin(vary); + case $mol_time_moment.prototype: return ways.time(vary); + case $mol_time_duration.prototype: return ways.dur(vary); + case $mol_time_interval.prototype: return ways.range(vary); + case $mol_tree2.prototype: return ways.tree(vary); + } + if (vary instanceof $mol_dom_context.Element) + return ways.dom(vary); + return $mol_fail(new TypeError(`Unsupported vary type`)); + } + $.$hyoo_crus_vary_switch = $hyoo_crus_vary_switch; + function $hyoo_crus_vary_encode(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => ({ tip: 'nil', bin: new Uint8Array([]) }), + bin: vary => ({ tip: 'bin', bin: vary }), + bool: vary => ({ tip: 'bool', bin: new Uint8Array([Number(vary)]) }), + int: vary => ({ tip: 'int', bin: new Uint8Array(new BigInt64Array([vary]).buffer) }), + real: vary => ({ tip: 'real', bin: new Uint8Array(new Float64Array([vary]).buffer) }), + ref: vary => ({ tip: 'ref', bin: $hyoo_crus_ref_encode(vary) }), + str: vary => ({ tip: 'str', bin: $mol_charset_encode(vary) }), + time: vary => ({ tip: 'time', bin: $mol_charset_encode(String(vary)) }), + dur: vary => ({ tip: 'dur', bin: $mol_charset_encode(String(vary)) }), + range: vary => ({ tip: 'range', bin: $mol_charset_encode(String(vary)) }), + json: vary => ({ tip: 'json', bin: $mol_charset_encode(JSON.stringify(vary)) }), + jsan: vary => ({ tip: 'jsan', bin: $mol_charset_encode(JSON.stringify(vary)) }), + dom: vary => ({ tip: 'dom', bin: $mol_charset_encode($mol_dom_serialize(vary)) }), + tree: vary => ({ tip: 'tree', bin: $mol_charset_encode(String(vary)) }), + }); + } + $.$hyoo_crus_vary_encode = $hyoo_crus_vary_encode; + function $hyoo_crus_vary_decode({ tip, bin }) { + switch (tip) { + case 'nil': return null; + case 'bin': return bin; + case 'bool': return Boolean(bin[0]); + case 'int': return new BigInt64Array(bin.buffer, bin.byteOffset, bin.byteLength / 8)[0]; + case 'real': return new Float64Array(bin.buffer, bin.byteOffset, bin.byteLength / 8)[0]; + case 'ref': return $hyoo_crus_ref_decode(bin); + case 'str': return $mol_charset_decode(bin); + case 'time': return new $mol_time_moment($mol_charset_decode(bin)); + case 'dur': return new $mol_time_duration($mol_charset_decode(bin)); + case 'range': return new $mol_time_interval($mol_charset_decode(bin)); + case 'json': return JSON.parse($mol_charset_decode(bin)); + case 'jsan': return JSON.parse($mol_charset_decode(bin)); + case 'dom': return $mol_dom_parse($mol_charset_decode(bin)).documentElement; + case 'tree': return $$.$mol_tree2_from_string($mol_charset_decode(bin)); + } + } + $.$hyoo_crus_vary_decode = $hyoo_crus_vary_decode; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $.$mol_jsx_prefix = ''; + $.$mol_jsx_crumbs = ''; + $.$mol_jsx_booked = null; + $.$mol_jsx_document = { + getElementById: () => null, + createElementNS: (space, name) => $mol_dom_context.document.createElementNS(space, name), + createDocumentFragment: () => $mol_dom_context.document.createDocumentFragment(), + }; + $.$mol_jsx_frag = ''; + function $mol_jsx(Elem, props, ...childNodes) { + const id = props && props.id || ''; + const guid = id ? $.$mol_jsx_prefix ? $.$mol_jsx_prefix + '/' + id : id : $.$mol_jsx_prefix; + const crumbs_self = id ? $.$mol_jsx_crumbs.replace(/(\S+)/g, `$1_${id.replace(/\/.*/i, '')}`) : $.$mol_jsx_crumbs; + if (Elem && $.$mol_jsx_booked) { + if ($.$mol_jsx_booked.has(id)) { + $mol_fail(new Error(`JSX already has tag with id ${JSON.stringify(guid)}`)); + } + else { + $.$mol_jsx_booked.add(id); + } + } + let node = guid ? $.$mol_jsx_document.getElementById(guid) : null; + if ($.$mol_jsx_prefix) { + const prefix_ext = $.$mol_jsx_prefix; + const booked_ext = $.$mol_jsx_booked; + const crumbs_ext = $.$mol_jsx_crumbs; + for (const field in props) { + const func = props[field]; + if (typeof func !== 'function') + continue; + const wrapper = function (...args) { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + const crumbs = $.$mol_jsx_crumbs; + try { + $.$mol_jsx_prefix = prefix_ext; + $.$mol_jsx_booked = booked_ext; + $.$mol_jsx_crumbs = crumbs_ext; + return func.call(this, ...args); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + $.$mol_jsx_crumbs = crumbs; + } + }; + $mol_func_name_from(wrapper, func); + props[field] = wrapper; + } + } + if (typeof Elem !== 'string') { + if ('prototype' in Elem) { + const view = node && node[String(Elem)] || new Elem; + Object.assign(view, props); + view[Symbol.toStringTag] = guid; + view.childNodes = childNodes; + if (!view.ownerDocument) + view.ownerDocument = $.$mol_jsx_document; + view.className = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem); + node = view.valueOf(); + node[String(Elem)] = view; + return node; + } + else { + const prefix = $.$mol_jsx_prefix; + const booked = $.$mol_jsx_booked; + const crumbs = $.$mol_jsx_crumbs; + try { + $.$mol_jsx_prefix = guid; + $.$mol_jsx_booked = new Set; + $.$mol_jsx_crumbs = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem); + return Elem(props, ...childNodes); + } + finally { + $.$mol_jsx_prefix = prefix; + $.$mol_jsx_booked = booked; + $.$mol_jsx_crumbs = crumbs; + } + } + } + if (!node) { + node = Elem + ? $.$mol_jsx_document.createElementNS(props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem) + : $.$mol_jsx_document.createDocumentFragment(); + } + $mol_dom_render_children(node, [].concat(...childNodes)); + if (!Elem) + return node; + if (guid) + node.id = guid; + for (const key in props) { + if (key === 'id') + continue; + if (typeof props[key] === 'string') { + if (typeof node[key] === 'string') + node[key] = props[key]; + node.setAttribute(key, props[key]); + } + else if (props[key] && + typeof props[key] === 'object' && + Reflect.getPrototypeOf(props[key]) === Reflect.getPrototypeOf({})) { + if (typeof node[key] === 'object') { + Object.assign(node[key], props[key]); + continue; + } + } + else { + node[key] = props[key]; + } + } + if ($.$mol_jsx_crumbs) + node.className = (props?.['class'] ? props['class'] + ' ' : '') + crumbs_self; + return node; + } + $.$mol_jsx = $mol_jsx; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_bin_to_bytes(tree) { + return Uint8Array.from(tree.kids, kid => parseInt(kid.value, 16)); + } + $.$mol_tree2_bin_to_bytes = $mol_tree2_bin_to_bytes; + function $mol_tree2_bin_from_bytes(bytes, span = $mol_span.unknown) { + return $mol_tree2.list(Array.from(bytes, code => { + return $mol_tree2.data(code.toString(16).padStart(2, '0'), [], span); + }), span); + } + $.$mol_tree2_bin_from_bytes = $mol_tree2_bin_from_bytes; + function $mol_tree2_bin_from_string(str, span = $mol_span.unknown) { + return $mol_tree2_bin_from_bytes([...new TextEncoder().encode(str)], span); + } + $.$mol_tree2_bin_from_string = $mol_tree2_bin_from_string; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_tree2_xml_from_dom(dom) { + switch (dom.nodeType) { + case dom.DOCUMENT_NODE: { + let kids = []; + for (const kid of dom.childNodes) { + kids.push($mol_tree2_xml_from_dom(kid)); + } + return $mol_tree2.list(kids); + } + case dom.PROCESSING_INSTRUCTION_NODE: { + return $mol_tree2.struct('?', [ + $mol_tree2.struct(dom.nodeName, dom.nodeValue.split(' ').map(chunk => { + const [, name, value] = /^(.*?)(?:="(.*?)")?$/.exec(chunk); + const kids = value ? [$mol_tree2.data(value)] : []; + return $mol_tree2.struct(name, kids); + })) + ]); + } + case dom.DOCUMENT_TYPE_NODE: { + const dom2 = dom; + return $mol_tree2.struct('!', [ + $mol_tree2.struct('DOCTYPE', [ + $mol_tree2.struct(dom2.name) + ]) + ]); + } + case dom.ELEMENT_NODE: { + let kids = []; + for (const attr of dom.attributes) { + kids.push($mol_tree2.struct('@', [ + $mol_tree2.struct(attr.nodeName, [ + $mol_tree2.data(attr.nodeValue) + ]) + ])); + } + for (const kid of dom.childNodes) { + const k = $mol_tree2_xml_from_dom(kid); + if (k.type || k.value) + kids.push(k); + } + return $mol_tree2.struct(dom.nodeName, kids); + } + case dom.COMMENT_NODE: { + return $mol_tree2.struct('--', [ + $mol_tree2.data(dom.nodeValue) + ]); + } + case dom.TEXT_NODE: { + if (!dom.nodeValue.trim()) + return $mol_tree2.list([]); + return $mol_tree2.data(dom.nodeValue.replace(/\s+/g, ' ')); + } + } + return $mol_fail(new Error(`Unsupported node ${dom.nodeName}`)); + } + $.$mol_tree2_xml_from_dom = $mol_tree2_xml_from_dom; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $hyoo_crus_vary_cast_bin(vary) { + return vary === null || vary === '' ? null : $hyoo_crus_vary_encode(vary).bin; + } + $.$hyoo_crus_vary_cast_bin = $hyoo_crus_vary_cast_bin; + function $hyoo_crus_vary_cast_bool(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => Boolean(vary.length), + bool: vary => vary, + int: vary => Boolean(vary), + real: vary => Boolean(vary), + ref: vary => Boolean(vary.description), + str: vary => Boolean(vary), + time: vary => Boolean(vary.valueOf()), + dur: vary => Boolean(vary.valueOf()), + range: vary => Boolean(vary.duration.valueOf()), + json: vary => Boolean(Reflect.ownKeys(vary).length), + jsan: vary => Boolean(vary.length), + dom: vary => Boolean(vary.attributes.length + vary.childNodes.length), + tree: vary => Boolean(vary.value || vary.kids.length), + }); + } + $.$hyoo_crus_vary_cast_bool = $hyoo_crus_vary_cast_bool; + function $hyoo_crus_vary_cast_int(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => BigInt(vary.length), + bool: vary => BigInt(vary), + int: vary => vary, + real: vary => Number.isFinite(vary) ? BigInt(Math.trunc(vary)) : null, + ref: vary => null, + str: vary => { + try { + return vary ? BigInt(vary) : null; + } + catch { + return null; + } + }, + time: vary => BigInt(vary.valueOf()), + dur: vary => BigInt(vary.valueOf()), + range: vary => BigInt(vary.duration.valueOf()), + json: vary => BigInt(Reflect.ownKeys(vary).length), + jsan: vary => BigInt(vary.length), + dom: vary => BigInt(vary.attributes.length + vary.childNodes.length), + tree: vary => { + try { + return BigInt(vary.value); + } + catch { + return BigInt(vary.kids.length); + } + }, + }); + } + $.$hyoo_crus_vary_cast_int = $hyoo_crus_vary_cast_int; + function $hyoo_crus_vary_cast_real(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => vary.length, + bool: vary => Number(vary), + int: vary => Number(vary), + real: vary => vary, + ref: vary => null, + str: vary => vary ? Number(vary) : null, + time: vary => vary.valueOf(), + dur: vary => vary.valueOf(), + range: vary => vary.duration.valueOf(), + json: vary => Reflect.ownKeys(vary).length, + jsan: vary => vary.length, + dom: vary => Number(vary.attributes.length + vary.childNodes.length), + tree: vary => Number(vary.value || vary.kids.length), + }); + } + $.$hyoo_crus_vary_cast_real = $hyoo_crus_vary_cast_real; + function $hyoo_crus_vary_cast_ref(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => (!vary.length || vary.length % 6) ? null : $hyoo_crus_ref_decode(vary), + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => vary, + str: vary => { + try { + return $hyoo_crus_ref(vary); + } + catch { + return null; + } + }, + time: vary => null, + dur: vary => null, + range: vary => null, + json: vary => null, + jsan: vary => null, + dom: vary => null, + tree: vary => { + try { + return $hyoo_crus_ref(vary.type); + } + catch { + return null; + } + }, + }); + } + $.$hyoo_crus_vary_cast_ref = $hyoo_crus_vary_cast_ref; + function $hyoo_crus_vary_cast_str(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => [...vary].map(n => n.toString(16).padStart(2, '0')).join(''), + bool: vary => String(vary), + int: vary => String(vary), + real: vary => String(vary), + ref: vary => vary.description, + str: vary => vary, + time: vary => String(vary), + dur: vary => String(vary), + range: vary => String(vary), + json: vary => JSON.stringify(vary), + jsan: vary => JSON.stringify(vary), + dom: vary => $mol_dom_serialize(vary), + tree: vary => String(vary), + }); + } + $.$hyoo_crus_vary_cast_str = $hyoo_crus_vary_cast_str; + function $hyoo_crus_vary_cast_time(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => new $mol_time_moment(Number(vary & 0xffffffffffffn)), + real: vary => { + try { + return new $mol_time_moment(vary); + } + catch { + return null; + } + }, + ref: vary => null, + str: vary => { + try { + return vary ? new $mol_time_moment(vary) : null; + } + catch { + return null; + } + }, + time: vary => vary, + dur: vary => null, + range: vary => null, + json: vary => { + try { + return new $mol_time_moment(vary); + } + catch { + return null; + } + }, + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_time = $hyoo_crus_vary_cast_time; + function $hyoo_crus_vary_cast_dur(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => new $mol_time_duration(Number(vary & 0xffffffffffffn)), + real: vary => { + try { + return new $mol_time_duration(vary); + } + catch { + return null; + } + }, + ref: vary => null, + str: vary => { + try { + return new $mol_time_duration(vary); + } + catch { + return null; + } + }, + time: vary => vary, + dur: vary => null, + range: vary => null, + json: vary => new $mol_time_duration(vary), + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_dur = $hyoo_crus_vary_cast_dur; + function $hyoo_crus_vary_cast_range(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => null, + str: vary => { + try { + return vary ? new $mol_time_interval(vary) : null; + } + catch { + return null; + } + }, + time: vary => new $mol_time_interval({ start: vary, duration: 0 }), + dur: vary => null, + range: vary => vary, + json: vary => { + try { + return new $mol_time_interval(vary); + } + catch { + return null; + } + }, + jsan: vary => null, + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_range = $hyoo_crus_vary_cast_range; + function $hyoo_crus_vary_cast_json(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => null, + bool: vary => null, + int: vary => null, + real: vary => null, + ref: vary => null, + str: vary => { + if (!vary) + return null; + try { + const res = JSON.parse(vary); + if (typeof res === 'object') + return res; + return null; + } + catch { + return null; + } + }, + time: vary => ({ ...vary }), + dur: vary => ({ ...vary }), + range: vary => ({ ...vary }), + json: vary => vary, + jsan: vary => Object(vary[0]), + dom: vary => null, + tree: vary => null, + }); + } + $.$hyoo_crus_vary_cast_json = $hyoo_crus_vary_cast_json; + function $hyoo_crus_vary_cast_jsan(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => [...vary], + bool: vary => [vary], + int: vary => [vary.toString()], + real: vary => Number.isFinite(vary) ? [vary] : null, + ref: vary => [vary.description], + str: vary => { + if (!vary) + return null; + try { + return [].concat(JSON.parse(vary)); + } + catch { + return [vary]; + } + }, + time: vary => [vary.toJSON()], + dur: vary => [vary.toJSON()], + range: vary => [vary.toJSON()], + json: vary => [vary], + jsan: vary => vary, + dom: vary => [$mol_dom_serialize(vary)], + tree: vary => [vary.toString()], + }); + } + $.$hyoo_crus_vary_cast_jsan = $hyoo_crus_vary_cast_jsan; + function $hyoo_crus_vary_cast_dom(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => $mol_jsx("body", null, vary && $mol_base64_ae_encode(vary)), + bool: vary => $mol_jsx("body", null, vary), + int: vary => $mol_jsx("body", null, vary), + real: vary => $mol_jsx("body", null, vary), + ref: vary => $mol_jsx("body", null, vary.description), + str: vary => { + if (!vary) + return null; + try { + return vary ? $mol_dom_parse(vary, 'application/xhtml+xml').documentElement : null; + } + catch { + return $mol_jsx("body", null, vary); + } + }, + time: vary => $mol_jsx("body", null, vary), + dur: vary => $mol_jsx("body", null, vary), + range: vary => $mol_jsx("body", null, vary), + json: vary => $mol_jsx("body", null, JSON.stringify(vary)), + jsan: vary => $mol_jsx("body", null, JSON.stringify(vary)), + dom: vary => vary, + tree: vary => $mol_jsx("body", null, vary), + }); + } + $.$hyoo_crus_vary_cast_dom = $hyoo_crus_vary_cast_dom; + function $hyoo_crus_vary_cast_tree(vary) { + return $hyoo_crus_vary_switch(vary, { + nil: vary => null, + bin: vary => $mol_tree2_bin_from_bytes(vary), + bool: vary => $mol_tree2.struct(vary.toString()), + int: vary => $mol_tree2.struct(vary.toString()), + real: vary => $mol_tree2.struct(vary.toString()), + ref: vary => $mol_tree2.struct(vary.description), + str: vary => { + if (!vary) + return null; + try { + return $$.$mol_tree2_from_string(vary); + } + catch { + return $$.$mol_tree2.data(vary); + } + }, + time: vary => $mol_tree2.struct(vary.toString()), + dur: vary => $mol_tree2.struct(vary.toString()), + range: vary => $mol_tree2.struct(vary.toString()), + json: vary => $$.$mol_tree2_from_json(vary), + jsan: vary => $$.$mol_tree2_from_json(vary), + dom: vary => $$.$mol_tree2_xml_from_dom(vary), + tree: vary => vary, + }); + } + $.$hyoo_crus_vary_cast_tree = $hyoo_crus_vary_cast_tree; + $.$hyoo_crus_vary_cast_funcs = { + nil: () => null, + bin: $hyoo_crus_vary_cast_bin, + bool: $hyoo_crus_vary_cast_bool, + int: $hyoo_crus_vary_cast_int, + real: $hyoo_crus_vary_cast_real, + ref: $hyoo_crus_vary_cast_ref, + str: $hyoo_crus_vary_cast_str, + time: $hyoo_crus_vary_cast_time, + dur: $hyoo_crus_vary_cast_dur, + range: $hyoo_crus_vary_cast_range, + json: $hyoo_crus_vary_cast_json, + jsan: $hyoo_crus_vary_cast_jsan, + dom: $hyoo_crus_vary_cast_dom, + tree: $hyoo_crus_vary_cast_tree, + }; + function $hyoo_crus_vary_cast(tip, vary) { + return $.$hyoo_crus_vary_cast_funcs[tip](vary); + } + $.$hyoo_crus_vary_cast = $hyoo_crus_vary_cast; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_guard_defined(value) { + return value !== null && value !== undefined; + } + $.$mol_guard_defined = $mol_guard_defined; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_bus extends $mol_object { + name; + handle; + channel; + constructor(name, handle) { + super(); + this.name = name; + this.handle = handle; + const channel = new BroadcastChannel(name); + channel.onmessage = (event) => this.handle(event.data); + this.channel = channel; + } + destructor() { + this.channel.close(); + } + send(data) { + this.channel.postMessage(data); + } + } + $.$mol_bus = $mol_bus; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_promise() { + let done; + let fail; + const promise = new Promise((d, f) => { + done = d; + fail = f; + }); + return Object.assign(promise, { + done, + fail, + }); + } + $.$mol_promise = $mol_promise; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wait_timeout_async(timeout) { + const promise = $mol_promise(); + const task = new this.$mol_after_timeout(timeout, () => promise.done()); + return Object.assign(promise, { + destructor: () => task.destructor() + }); + } + $.$mol_wait_timeout_async = $mol_wait_timeout_async; + function $mol_wait_timeout(timeout) { + return this.$mol_wire_sync(this).$mol_wait_timeout_async(timeout); + } + $.$mol_wait_timeout = $mol_wait_timeout; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_wire_race(...tasks) { + const results = tasks.map(task => { + try { + return task(); + } + catch (error) { + return error; + } + }); + const promises = results.filter(res => $mol_promise_like(res)); + if (promises.length) + $mol_fail(Promise.race(promises)); + const error = results.find(res => res instanceof Error); + if (error) + $mol_fail(error); + return results; + } + $.$mol_wire_race = $mol_wire_race; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_land extends $mol_object { + realm() { + return null; + } + ref() { + return this.auth().lord(); + } + auth() { + return this.$.$hyoo_crus_auth.current(); + } + faces = new $hyoo_crus_face_map; + passes = new $mol_wire_dict(); + gifts = new $mol_wire_dict(); + gists = new $mol_wire_dict(); + self_all = new $mol_wire_set(); + self_make(area, idea = Math.floor(Math.random() * 2 ** 48)) { + const auth = this.auth(); + const rank = this.lord_rank(auth.lord()); + if (rank === $hyoo_crus_rank.add) + return $hyoo_crus_area_to(auth.peer(), 'data'); + if (rank === $hyoo_crus_rank.nil) + $mol_fail(new Error('Rank too low (nil)')); + for (let i = 0; i < 4096; ++i) { + idea = (idea + 1) % 2 ** 48; + if (!idea) + continue; + if ($hyoo_crus_area[idea % 2] !== area) + continue; + const idea_str = $mol_base64_ae_encode(new Uint8Array(new BigUint64Array([BigInt(idea)]).buffer, 0, 6)); + if (this.self_all.has(idea_str)) + continue; + this.self_all.add(idea_str); + return idea_str; + } + $mol_fail(new Error(`Too long self generation`)); + } + home() { + return this.Data($hyoo_crus_home); + } + Data(Node) { + return this.Node(Node).Item(''); + } + Meta() { + return this.Node($hyoo_crus_meta).Item('AQAAAAAA'); + } + Node(Node) { + return new $hyoo_crus_fund((head) => { + if (head === 'AAAAAAAA') + return this.Node(Node).Item(''); + return Node.make({ + land: () => this.sync(), + head: $mol_const(head), + }); + }); + } + total() { + let total = this.passes.size + this.gifts.size; + for (const units of this.gists.values()) + total += units.size; + return total; + } + joined_list() { + return [...this.passes.values()].map(unit => unit.lord()); + } + key() { + const pass = this.passes.get($hyoo_crus_ref_peer(this.ref())); + if (!pass) + return null; + return $hyoo_crus_auth.from(pass.auth()); + } + lord_rank(lord, next) { + if (lord === this.ref()) + return $hyoo_crus_rank.law; + const prev = this.gifts.get(lord)?.rank() + ?? this.gifts.get($hyoo_crus_ref(''))?.rank() + ?? $hyoo_crus_rank.get; + if (next === undefined) + return prev; + if (next === prev) + return prev; + const key = this.passes.get($hyoo_crus_ref_peer(lord))?.auth(); + if (!key) + $mol_fail(new Error(`No pub key for lord (${lord.description})`)); + this.give($hyoo_crus_auth.from(key), next); + return next; + } + peer_rank(peer) { + const auth = this.passes.get(peer); + if (!auth) + return $hyoo_crus_rank.get; + return this.lord_rank(auth.lord()); + } + delta_unit(face = new $hyoo_crus_face_map) { + this.loading(); + const delta = []; + const passed = new Set(); + const auth = (peer) => { + if (passed.has(peer)) + return; + if (face.get(peer)) + return; + const pass = this.passes.get(peer); + if (!pass) + $mol_fail(new Error(`No pass for Peer (${peer})`)); + delta.push(pass); + passed.add(peer); + }; + for (const [lord, unit] of this.gifts) { + const time = face.get(unit.peer()) ?? 0; + if (time >= unit.time()) + continue; + auth(unit.peer()); + delta.push(unit); + } + for (const kids of this.gists.values()) { + for (const unit of kids.values()) { + const time = face.get(unit.peer()) ?? 0; + if (time >= unit.time()) + continue; + auth(unit.peer()); + delta.push(unit); + } + } + if (delta.length || this.faces.total <= this.faces.total) + return delta; + return this.delta_unit(); + } + delta_pack(face = new $hyoo_crus_face_map) { + const parts = this.delta_parts(face); + if (!parts) + return null; + const pack = $hyoo_crus_pack.make(parts); + return pack; + } + delta_parts(face = new $hyoo_crus_face_map) { + const units = this.delta_unit(face); + if (!units.length) + return null; + const rocks = []; + for (let unit of units) { + if (unit.kind() !== 'gist') + continue; + const gist = unit.narrow(); + if (gist.size() <= 32) + continue; + const rock = this.$.$hyoo_crus_mine.rock(gist.hash()) ?? null; + rocks.push([gist.hash(), rock]); + } + return { + lands: { + [this.ref()]: { + faces: new $hyoo_crus_face_map, + units, + }, + }, + rocks, + }; + } + faces_pack() { + const pack = $hyoo_crus_pack.make({ + lands: { + [this.ref()]: { faces: this.faces, units: [] }, + }, + rocks: [], + }); + return pack; + } + apply_unit(delta, skip_check = false) { + if (!delta.length) + return []; + const errors = $mol_wire_sync(this).units_verify(delta); + if (errors.some(v => v)) + return errors; + return this.apply_unit_trust(delta, skip_check); + } + async units_verify(delta) { + const passes = delta.filter(unit => unit.kind() === 'pass'); + const auth = new Map(passes.map((unit) => [unit.peer(), unit.auth()])); + const mixin = $hyoo_crus_ref_encode(this.ref()); + return await Promise.all(delta.map(async (unit) => { + let key_public = this.key_public(unit.peer()); + if (!key_public) { + const key_serial = auth.get(unit.peer()); + if (!key_serial) + return `No public key for peer (${unit.peer()})`; + key_public = $mol_crypto_key_public.from(key_serial); + } + const sens = unit.sens().slice(); + for (let i = 0; i < mixin.length; ++i) + sens[i + 14] ^= mixin[i + 14]; + return await key_public.verify(sens, unit.sign()) ? '' : `Wrong unit sign`; + })); + } + apply_unit_trust(delta, skip_check = false) { + return delta.map(unit => { + if (!skip_check) { + const error = this.check_unit(unit); + if (error) + return error; + } + let need_recheck = false; + const res = unit.choose({ + pass: next => { + const peer = next.peer(); + const exists = this.passes.get(peer); + if (exists) + return ''; + this.passes.set(peer, next); + this.faces.total++; + }, + gift: next => { + const dest = next.dest(); + const prev = this.gifts.get(dest); + if (prev && $hyoo_crus_gift.compare(prev, next) <= 0) + return ''; + this.gifts.set(dest, next); + this.faces.time_max(next.peer(), next.time()); + if (!prev) + this.faces.total++; + if ((prev?.rank() ?? $hyoo_crus_rank.nil) > next.rank()) + need_recheck = true; + }, + gist: next => { + const head = next.head(); + const self = next.self(); + let units = this.gists.get(head); + if (!units) + this.gists.set(head, units = new $mol_wire_dict); + const prev = units.get(self); + if (prev && $hyoo_crus_gist.compare(prev, next) <= 0) + return ''; + units.set(self, next); + this.self_all.add(self); + this.faces.time_max(next.peer(), next.time()); + if (!prev) + this.faces.total++; + }, + }); + if (need_recheck) + this.recheck(); + return res ?? ''; + }); + } + apply_land(land) { + return this.apply_unit_trust(land.delta_unit()); + } + recheck() { + for (const [peer, pass] of this.passes) { + if (!this.check_unit(pass)) + continue; + this.passes.delete(peer); + this.faces.total--; + } + for (const [lord, gift] of this.gifts) { + if (!this.check_unit(gift)) + continue; + this.gifts.delete(lord); + this.faces.total--; + } + for (const [head, units] of this.gists) { + for (const [self, gist] of units) { + if (!this.check_unit(gist)) + continue; + units.delete(self); + this.faces.total--; + } + } + } + check_unit(unit) { + return unit.choose({ + pass: next => this.lord_rank(next.lord()) < $hyoo_crus_rank.add ? 'Need add rank to join' : '', + gift: next => this.peer_rank(next.peer()) < $hyoo_crus_rank.law ? 'Need law rank to change rank' : '', + gist: next => { + if ($hyoo_crus_area_of(next.self()) !== $hyoo_crus_area_of(next.self())) + return 'Need same area'; + if ($hyoo_crus_area_to(next.peer(), 'data') === next.self()) { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.add ? 'Need add rank to post self data' : ''; + } + else { + if ($hyoo_crus_area_of(next.self()) === 'data') { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.mod ? 'Need mod rank to post any data' : ''; + } + else { + return this.peer_rank(next.peer()) < $hyoo_crus_rank.law ? 'Need law rank to post to meta area' : ''; + } + } + }, + }); + } + fork(preset = $hyoo_crus_rank_public) { + const realm = this.realm(); + if (!realm) + $mol_fail(new Error('Realm is required to fork')); + const land = realm.land_grab(preset); + land.Meta().Inflow(null).items_vary([this.ref()]); + return land; + } + gists_ordered(head) { + this.sync(); + const queue = [...this.gists.get(head)?.values() ?? []]; + const res = []; + const slices = new WeakMap; + for (const gist of queue) + slices.set(gist, 0); + merge: if ($hyoo_crus_area_of(head) === 'data') { + const inflow = (this.Meta().Inflow()?.items_vary().slice().reverse() ?? []) + .map($hyoo_crus_vary_cast_ref) + .filter($mol_guard_defined); + if (!inflow.length) + break merge; + const exists = new Set([...this.gists.get(head)?.keys() ?? []]); + const realm = this.realm(); + let slice = 0; + if (realm) + for (const ref of inflow) { + ++slice; + const land = realm.Land(ref); + for (const gist of land.gists_ordered(head)) { + if (exists.has(gist.self())) + continue; + queue.push(gist); + exists.add(gist.self()); + slices.set(gist, slice); + } + } + } + if (queue.length < 2) + return queue.filter(unit => !unit.nil()); + const compare = (left, right) => { + return (slices.get(left) - slices.get(right)) || $hyoo_crus_gist.compare(left, right); + }; + queue.sort(compare); + const locate = (self) => { + for (let i = res.length - 1; i >= 0; --i) { + if (res[i].self() === self) + return i; + } + return -1; + }; + while (queue.length) { + res.push(queue.pop()); + for (let cursor = queue.length - 1; cursor >= 0; --cursor) { + const kid = queue[cursor]; + let index = 0; + if (kid.lead()) { + index = locate(kid.lead()) + 1; + if (!index) + continue; + } + while (res[index] && (compare(res[index], kid) < 0)) + ++index; + const exists = locate(kid.self()); + if (index === exists) { + if (cursor === queue.length - 1) + queue.pop(); + continue; + } + if (exists >= 0) { + res.splice(exists, 1); + if (exists < index) + --index; + } + res.splice(index, 0, kid); + if (cursor === queue.length - 1) + queue.pop(); + cursor = queue.length; + } + } + return res; + } + join() { + const auth = this.auth(); + const prev = this.passes.get(auth.peer()); + if (prev) + return prev; + const next = new $hyoo_crus_pass; + next.auth(auth.public().asArray()); + next._land = this; + const error = this.apply_unit_trust([next])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return next; + } + give(dest, rank) { + this.join(); + const auth = this.auth(); + const unit = new $hyoo_crus_gift; + unit.rank(rank); + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.dest(dest ? dest.lord() : $hyoo_crus_ref('')); + unit._land = this; + if (rank >= $hyoo_crus_rank.get) { + const secret_land = this.secret(); + if (secret_land) { + if (!dest) + $mol_fail(new Error(`Encrypted land can't be shared to everyone`)); + const secret_mutual = this.secret_mutual(dest.toString()); + if (secret_mutual) { + const secret_bin = $mol_wire_sync(secret_land).serial(); + const bill = $mol_wire_sync(secret_mutual).encrypt(secret_bin, unit.salt()); + unit.bill().set(bill); + } + } + } + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return unit; + } + post(lead, head, self, vary, tag = 'term') { + if (typeof vary === 'symbol') + vary = $hyoo_crus_ref_relate(this.ref(), vary); + this.join(); + const auth = this.auth(); + const unit = new $hyoo_crus_gist; + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.lead(lead); + unit.head(head); + unit._vary = vary; + unit._land = this; + let { tip, bin } = $hyoo_crus_vary_encode(vary); + unit._open = bin; + if (vary !== null && this.encrypted()) { + unit.hash($mol_crypto_hash(bin), tip, tag); + } + else { + if (bin.byteLength > 32) + unit.hash(this.$.$hyoo_crus_mine.hash(bin), tip, tag); + else + unit.data(bin, tip, tag); + } + unit.self(self || this.self_make($hyoo_crus_area_of(head), unit.idea())); + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + this.broadcast(); + return unit; + } + gist_move(gist, head, seat) { + if (gist.nil()) + $mol_fail(new RangeError(`Can't move wiped gist`)); + const units = this.gists_ordered(head).filter(unit => !unit.nil()); + if (seat > units.length) + $mol_fail(new RangeError(`Seat (${seat}) out of units length (${units.length})`)); + const lead = seat ? units[seat - 1].self() : ''; + const vary = this.gist_decode(gist); + if (gist.head() === head) { + const seat_prev = units.indexOf(gist); + if (seat === seat_prev) + return; + if (seat === seat_prev + 1) + return; + const prev = seat_prev ? units[seat_prev - 1].self() : ''; + const next = units[seat_prev + 1]; + if (next) + this.post(prev, head, next.self(), this.gist_decode(next), next.tag()); + } + else { + this.gist_wipe(gist); + } + this.post(lead, head, gist.self(), vary, gist.tag()); + } + gist_wipe(gist) { + const units = this.gists_ordered(gist.head()).filter(unit => !unit.nil()); + const seat = units.indexOf(gist); + this.post(seat ? units[seat - 1].self() : '', gist.head(), gist.self(), null, 'term'); + } + broadcast() { + this.realm()?.yard().neonatals.add(this.ref()); + } + sync() { + this.loading(); + try { + this.saving(); + this.bus(); + } + catch (error) { + $mol_fail_log(error); + } + this.realm()?.yard().sync_land(this.ref()); + return this; + } + bus() { + return new this.$.$mol_bus(`$hyoo_crus_land:${this.ref().description}`, $mol_wire_async(bins => { + const yard = this.realm().yard(); + this.apply_unit_trust(bins.map(bin => { + const unit = new $hyoo_crus_unit(bin).narrow(); + yard.persisted.add(unit); + return unit; + })); + })); + } + loading() { + $mol_wire_solid(); + const realm = this.realm(); + if (!realm) + return; + const units = realm.yard().load(this) ?? []; + $mol_wire_sync(this.$).$mol_log3_rise({ + place: this, + message: 'Load Unit', + units: units.length, + }); + const errors = this.apply_unit_trust(units, !!'skip_check').filter(Boolean); + if (errors.length) + this.$.$mol_log3_fail({ + place: this, + message: errors.join('\n'), + }); + } + saving() { + this.$.$mol_wait_timeout(250); + this.save(); + } + save() { + const yard = this.realm()?.yard(); + if (!yard) + return; + const encoding = []; + const signing = []; + const persisting = []; + for (const pass of this.passes.values()) { + if (!pass.signed()) + signing.push(pass); + if (!yard.persisted.has(pass)) + persisting.push(pass); + } + for (const gift of this.gifts.values()) { + if (!gift.signed()) + signing.push(gift); + if (!yard.persisted.has(gift)) + persisting.push(gift); + } + for (const kids of this.gists.values()) { + for (const gist of kids.values()) { + if (!gist.signed()) { + encoding.push(gist); + signing.push(gist); + } + if (!yard.persisted.has(gist)) + persisting.push(gist); + } + } + $mol_wire_race(...encoding.map(unit => () => this.gist_encode(unit))); + $mol_wire_race(...signing.map(unit => () => this.unit_sign(unit))); + if (persisting.length) + $mol_wire_sync(yard).save(this, persisting); + this.bus().send(persisting.map(unit => unit.buffer)); + } + unit_sign(unit) { + if (unit.signed()) + return; + const key = $mol_wire_sync(unit._land.auth()); + const mixin = $hyoo_crus_ref_encode(unit._land.ref()); + const sens = unit.sens().slice(); + for (let i = 0; i < mixin.length; ++i) + sens[i + 14] ^= mixin[i + 14]; + const sign = new Uint8Array(key.sign(sens)); + unit.sign(sign); + } + gist_encode(gist) { + if (gist._open === null) + return gist; + if (gist.nil()) + return gist; + let bin = gist._open; + const secret = gist._land.secret(); + if (secret) + bin = new Uint8Array($mol_wire_sync(secret).encrypt(bin, gist.salt())); + if (bin.byteLength > 32) + gist.hash(this.$.$hyoo_crus_mine.save(bin), gist.tip(), gist.tag()); + else + gist.data(bin, gist.tip(), gist.tag()); + return gist; + } + gist_decode(gist) { + let vary = this.gist_decode_raw(gist); + if (typeof vary === 'symbol') + vary = $hyoo_crus_ref_resolve(this.ref(), vary); + return vary; + } + gist_decode_raw(gist) { + if (this.gists.get(gist.head())?.get(gist.self()) !== gist) { + for (const id of this.Meta().Inflow()?.items_vary() ?? []) { + const vary = this.realm()?.Land($hyoo_crus_vary_cast_ref(id)).gist_decode_raw(gist); + if (vary !== undefined) + return vary; + } + return undefined; + } + const secret = this.secret(); + if (gist._vary !== undefined) + return gist._vary; + if (gist._open !== null) + return gist._vary = $hyoo_crus_vary_decode({ tip: gist.tip(), bin: gist._open }); + let bin = gist.size() > 32 ? this.$.$hyoo_crus_mine.rock(gist.hash()) : gist.data(); + if (secret && bin && !gist.nil()) { + try { + bin = new Uint8Array($mol_wire_sync(secret).decrypt(bin, gist.salt())); + } + catch (error) { + if ($mol_fail_catch(error)) { + if (error.message) + $mol_fail_hidden(error); + else + $mol_fail_hidden(new Error(`Can't decrypt`, { cause: error })); + } + } + } + gist._open = bin; + return gist._vary = (bin ? $hyoo_crus_vary_decode({ tip: gist.tip(), bin }) : null); + } + key_public(peer) { + const key = this.passes.get(peer)?.auth(); + return key ? $mol_crypto_key_public.from(key) : null; + } + secret_mutual(key_public) { + return $mol_wire_sync($mol_crypto_secret).derive(this.auth().toString(), key_public); + } + encryptable() { + return !this.gists.size; + } + encrypted(next) { + $mol_wire_solid(); + const gift = this.gifts.get(this.ref()); + const prev = gift?.bill().some(b => b) ?? false; + if (next === undefined) + return prev; + if (prev === next) + return prev; + if (!this.encryptable()) + $mol_fail(new Error(`Non empty Land never encrypted`)); + this.join(); + const auth = this.auth(); + const secret = $mol_wire_sync($mol_crypto_secret).generate(); + const secret_land = $mol_wire_sync(secret).serial(); + const secret_mutual = auth.secret_mutual(auth.public().toString()); + const unit = new $hyoo_crus_gift; + unit.rank($hyoo_crus_rank.law); + unit.time(this.faces.tick()); + unit.peer(auth.peer()); + unit.dest(auth.lord()); + unit._land = this; + const secret_closed = $mol_wire_sync(secret_mutual).encrypt(secret_land, unit.salt()); + unit.bill().set(new Uint8Array(secret_closed)); + const error = this.apply_unit_trust([unit])[0]; + if (error) + $mol_fail(new Error(error)); + return next; + } + secret() { + if (!this.encrypted()) + return null; + const auth = this.auth(); + const gift = this.gifts.get(auth.lord()); + if (!gift) + return $mol_fail(new Error(`Access denied`)); + const bill = gift.bill(); + if (!bill.some(b => b)) + return $mol_fail(new Error(`No key to decrypt`)); + const secret_mutual = auth.secret_mutual(this.key_public(gift.peer()).toString()); + if (!secret_mutual) + return $mol_fail(new Error(`Can't decrypt secret`)); + const secret_land = $mol_wire_sync(secret_mutual).decrypt(bill, gift.salt()); + return $mol_wire_sync($mol_crypto_secret).from(secret_land); + } + dump() { + this.saving(); + const units = []; + const rocks = []; + for (const pass of this.passes.values()) + units.push(pass); + for (const gift of this.gifts.values()) + units.push(gift); + for (const kids of this.gists.values()) { + for (const gist of kids.values()) { + units.push(gist); + if (gist.size() <= 32) + continue; + const rock = this.$.$hyoo_crus_mine.rock(gist.hash()); + if (!rock) + continue; + rocks.push([gist.hash(), rock]); + } + } + return { + land: this.ref(), + units, rocks, + }; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', $mol_dev_format_auto(this.faces.total)); + } + } + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "self_make", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "Data", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "Meta", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "Node", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "total", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "joined_list", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "key", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "lord_rank", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "faces_pack", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "apply_unit", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "apply_unit_trust", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "fork", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gists_ordered", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "join", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "give", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "post", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "gist_move", null); + __decorate([ + $mol_action + ], $hyoo_crus_land.prototype, "gist_wipe", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "sync", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "bus", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "loading", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "saving", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "unit_sign", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_encode", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_decode", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "gist_decode_raw", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "key_public", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_land.prototype, "secret_mutual", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "encryptable", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "encrypted", null); + __decorate([ + $mol_mem + ], $hyoo_crus_land.prototype, "secret", null); + $.$hyoo_crus_land = $hyoo_crus_land; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_unit_kind; + (function ($hyoo_crus_unit_kind) { + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["pass"] = $hyoo_crus_part.pass] = "pass"; + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["gift"] = $hyoo_crus_part.gift] = "gift"; + $hyoo_crus_unit_kind[$hyoo_crus_unit_kind["gist"] = $hyoo_crus_part.gist] = "gist"; + })($hyoo_crus_unit_kind = $.$hyoo_crus_unit_kind || ($.$hyoo_crus_unit_kind = {})); + class $hyoo_crus_unit extends $mol_buffer { + static size = 128; + constructor(buffer = new ArrayBuffer($hyoo_crus_unit.size), byteOffset = 0, byteLength = buffer.byteLength) { + super(buffer, byteOffset, byteLength); + } + kind() { + const val = this.uint8(0); + if ((val & 1) === 0) + return 'gist'; + const kind = $hyoo_crus_unit_kind[val]; + if (kind) + return kind; + $mol_fail(new Error(`Unknown unit kind (${val})`)); + } + choose(ways) { + const way = this.kind(); + const Unit = { + pass: $hyoo_crus_pass, + gift: $hyoo_crus_gift, + gist: $hyoo_crus_gist, + }[way]; + if (this instanceof Unit) + return ways[way](this); + const unit = new Unit(this.buffer, this.byteOffset, this.byteLength); + return ways[way](unit); + } + narrow() { + return this.choose({ + gist: unit => unit, + pass: unit => unit, + gift: unit => unit, + }); + } + key() { + return this.narrow().key(); + } + id6(offset, next) { + if (next === undefined) { + const str = $mol_base64_ae_encode(new Uint8Array(this.buffer, offset, 6)); + return str === 'AAAAAAAA' ? '' : str; + } + else { + this.asArray().set($mol_base64_ae_decode(next || 'AAAAAAAA'), offset); + return next; + } + } + id12(offset, next) { + if (next === undefined) { + return $hyoo_crus_ref_decode(new Uint8Array(this.buffer, offset, 12)); + } + else { + this.asArray().set($hyoo_crus_ref_encode(next), offset); + return next; + } + } + _peer; + peer(next) { + if (next === undefined && this._peer !== undefined) + return this._peer; + else + return this._peer = this.id6(2, next); + } + salt() { + return new Uint8Array(this.buffer, this.byteOffset + 2, 16); + } + sens(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset, 64); + if (next) + prev.set(next); + return prev; + } + mix(mixin) { + for (let i = 0; i < mixin.length; ++i) { + this.uint8(14 + i, this.uint8(14 + i) ^ mixin[i]); + } + } + sign(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset + 64, 64); + if (next) + prev.set(next); + return prev; + } + signed() { + return this.sign().some(b => b); + } + _land = null; + } + $.$hyoo_crus_unit = $hyoo_crus_unit; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_pass extends $hyoo_crus_unit { + work() { + return this.uint8(1); + } + _lord; + lord(next) { + if (next === undefined && this._lord !== undefined) + return this._lord; + else + return this._lord = this.id12(2, next); + } + key() { + return this.id6(2); + } + auth(next) { + const prev = new Uint8Array(this.buffer, this.byteOffset, 64); + if (next) + prev.set(next); + return prev; + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' 🔑 ', $mol_dev_format_span({}, this.lord().description)); + } + } + $.$hyoo_crus_pass = $hyoo_crus_pass; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_gift extends $hyoo_crus_unit { + rank(next) { + if (next !== undefined) + this.uint8(0, $hyoo_crus_unit_kind.gift); + next = this.uint8(1, next); + if (next < $hyoo_crus_rank.nil || next > $hyoo_crus_rank.law) { + $mol_fail(new RangeError(`Wrong rank ${next}`)); + } + return next; + } + time(next) { + return this.uint48(8, next); + } + free() { + return new Uint8Array(this.buffer, this.byteOffset + 26, 6); + } + _dest; + dest(next) { + if (next === undefined && this._dest !== undefined) + return this._dest; + else + return this._dest = this.id12(14, next); + } + key() { + return this.dest().description; + } + bill() { + return new Uint8Array(this.buffer, this.byteOffset + 32, 32); + } + static compare(left, right) { + return (right.time() - left.time()) || (right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' 🏅 ', $mol_dev_format_span({}, this.dest().description), this.bill().some(v => v) ? ' 🔐' : ' 📢', $hyoo_crus_rank[this.rank()], ' ', $mol_dev_format_shade(new $mol_time_moment(this.time()).toString('YYYY-MM-DD hh:mm:ss.sss'))); + } + } + $.$hyoo_crus_gift = $hyoo_crus_gift; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_rest_code; + (function ($mol_rest_code) { + $mol_rest_code[$mol_rest_code["Continue"] = 100] = "Continue"; + $mol_rest_code[$mol_rest_code["Switching_Protocols"] = 101] = "Switching_Protocols"; + $mol_rest_code[$mol_rest_code["Processing"] = 102] = "Processing"; + $mol_rest_code[$mol_rest_code["OK"] = 200] = "OK"; + $mol_rest_code[$mol_rest_code["Created"] = 201] = "Created"; + $mol_rest_code[$mol_rest_code["Accepted"] = 202] = "Accepted"; + $mol_rest_code[$mol_rest_code["Non_Authoritative_Information"] = 203] = "Non_Authoritative_Information"; + $mol_rest_code[$mol_rest_code["No_Content"] = 204] = "No_Content"; + $mol_rest_code[$mol_rest_code["Reset_Content"] = 205] = "Reset_Content"; + $mol_rest_code[$mol_rest_code["Partial_Content"] = 206] = "Partial_Content"; + $mol_rest_code[$mol_rest_code["Multi_Status"] = 207] = "Multi_Status"; + $mol_rest_code[$mol_rest_code["Already_Reported"] = 208] = "Already_Reported"; + $mol_rest_code[$mol_rest_code["IM_Used"] = 226] = "IM_Used"; + $mol_rest_code[$mol_rest_code["Multiple_Choices"] = 300] = "Multiple_Choices"; + $mol_rest_code[$mol_rest_code["Moved_Permanently"] = 301] = "Moved_Permanently"; + $mol_rest_code[$mol_rest_code["Found"] = 302] = "Found"; + $mol_rest_code[$mol_rest_code["See_Other"] = 303] = "See_Other"; + $mol_rest_code[$mol_rest_code["Not_Modified"] = 304] = "Not_Modified"; + $mol_rest_code[$mol_rest_code["Use_Proxy"] = 305] = "Use_Proxy"; + $mol_rest_code[$mol_rest_code["Temporary_Redirect"] = 307] = "Temporary_Redirect"; + $mol_rest_code[$mol_rest_code["Bad_Request"] = 400] = "Bad_Request"; + $mol_rest_code[$mol_rest_code["Unauthorized"] = 401] = "Unauthorized"; + $mol_rest_code[$mol_rest_code["Payment_Required"] = 402] = "Payment_Required"; + $mol_rest_code[$mol_rest_code["Forbidden"] = 403] = "Forbidden"; + $mol_rest_code[$mol_rest_code["Not_Found"] = 404] = "Not_Found"; + $mol_rest_code[$mol_rest_code["Method_Not_Allowed"] = 405] = "Method_Not_Allowed"; + $mol_rest_code[$mol_rest_code["Not_Acceptable"] = 406] = "Not_Acceptable"; + $mol_rest_code[$mol_rest_code["Proxy_Authentication_Required"] = 407] = "Proxy_Authentication_Required"; + $mol_rest_code[$mol_rest_code["Request_Timeout"] = 408] = "Request_Timeout"; + $mol_rest_code[$mol_rest_code["Conflict"] = 409] = "Conflict"; + $mol_rest_code[$mol_rest_code["Gone"] = 410] = "Gone"; + $mol_rest_code[$mol_rest_code["Length_Required"] = 411] = "Length_Required"; + $mol_rest_code[$mol_rest_code["Precondition_Failed"] = 412] = "Precondition_Failed"; + $mol_rest_code[$mol_rest_code["Request_Entity_Too_Large"] = 413] = "Request_Entity_Too_Large"; + $mol_rest_code[$mol_rest_code["Request_URI_Too_Long"] = 414] = "Request_URI_Too_Long"; + $mol_rest_code[$mol_rest_code["Unsupported_Media_Type"] = 415] = "Unsupported_Media_Type"; + $mol_rest_code[$mol_rest_code["Requested_Range_Not_Satisfiable"] = 416] = "Requested_Range_Not_Satisfiable"; + $mol_rest_code[$mol_rest_code["Expectation_Failed"] = 417] = "Expectation_Failed"; + $mol_rest_code[$mol_rest_code["Teapot"] = 418] = "Teapot"; + $mol_rest_code[$mol_rest_code["Unprocessable_Entity"] = 422] = "Unprocessable_Entity"; + $mol_rest_code[$mol_rest_code["Locked"] = 423] = "Locked"; + $mol_rest_code[$mol_rest_code["Failed_Dependency"] = 424] = "Failed_Dependency"; + $mol_rest_code[$mol_rest_code["Upgrade_Required"] = 426] = "Upgrade_Required"; + $mol_rest_code[$mol_rest_code["Precondition_Required"] = 428] = "Precondition_Required"; + $mol_rest_code[$mol_rest_code["Too_Many_Requests"] = 429] = "Too_Many_Requests"; + $mol_rest_code[$mol_rest_code["Request_Header_Fields_Too_Large"] = 431] = "Request_Header_Fields_Too_Large"; + $mol_rest_code[$mol_rest_code["Unavailable_For_Legal_Reasons"] = 451] = "Unavailable_For_Legal_Reasons"; + $mol_rest_code[$mol_rest_code["Internal_Server_Error"] = 500] = "Internal_Server_Error"; + $mol_rest_code[$mol_rest_code["Not_Implemented"] = 501] = "Not_Implemented"; + $mol_rest_code[$mol_rest_code["Bad_Gateway"] = 502] = "Bad_Gateway"; + $mol_rest_code[$mol_rest_code["Service_Unavailable"] = 503] = "Service_Unavailable"; + $mol_rest_code[$mol_rest_code["Gateway_Timeout"] = 504] = "Gateway_Timeout"; + $mol_rest_code[$mol_rest_code["HTTP_Version_Not_Supported"] = 505] = "HTTP_Version_Not_Supported"; + $mol_rest_code[$mol_rest_code["Insufficient_Storage"] = 507] = "Insufficient_Storage"; + $mol_rest_code[$mol_rest_code["Loop_Detected"] = 508] = "Loop_Detected"; + $mol_rest_code[$mol_rest_code["Not_Extended"] = 510] = "Not_Extended"; + $mol_rest_code[$mol_rest_code["Network_Authentication_Required"] = 511] = "Network_Authentication_Required"; + $mol_rest_code[$mol_rest_code["Network_Read_Timeout_Error"] = 598] = "Network_Read_Timeout_Error"; + $mol_rest_code[$mol_rest_code["Network_Connect_Timeout_Error"] = 599] = "Network_Connect_Timeout_Error"; + })($mol_rest_code = $.$mol_rest_code || ($.$mol_rest_code = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port extends $mol_object { + send_code(code) { } + send_type(mime) { } + send_data(data) { + if (data === null) + return this.send_nil(); + if (typeof data === 'string') + return this.send_text(data); + if (data instanceof Uint8Array) + return this.send_bin(data); + if (data instanceof $mol_dom_context.Element) + return this.send_dom(data); + return this.send_json(data); + } + send_nil() { + this.send_code(204); + } + send_bin(data) { + this.send_code(200); + this.send_type('application/octet-stream'); + } + send_text(data) { + this.send_code(200); + this.send_type('text/plain'); + this.send_bin($mol_charset_encode(data)); + } + send_json(data) { + this.send_code(200); + this.send_type('application/json'); + this.send_text(JSON.stringify(data)); + } + send_dom(data) { + this.send_code(200); + this.send_type('text/html'); + this.send_text($mol_dom_serialize(data)); + } + static make(config) { + return super.make(config); + } + } + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_data", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_text", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_json", null); + __decorate([ + $mol_action + ], $mol_rest_port.prototype, "send_dom", null); + __decorate([ + ($mol_action) + ], $mol_rest_port, "make", null); + $.$mol_rest_port = $mol_rest_port; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws extends $mol_rest_port { + } + $.$mol_rest_port_ws = $mol_rest_port_ws; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $mol_websocket_frame_op; + (function ($mol_websocket_frame_op) { + $mol_websocket_frame_op[$mol_websocket_frame_op["con"] = 0] = "con"; + $mol_websocket_frame_op[$mol_websocket_frame_op["txt"] = 1] = "txt"; + $mol_websocket_frame_op[$mol_websocket_frame_op["bin"] = 2] = "bin"; + $mol_websocket_frame_op[$mol_websocket_frame_op["stop"] = 8] = "stop"; + $mol_websocket_frame_op[$mol_websocket_frame_op["ping"] = 9] = "ping"; + $mol_websocket_frame_op[$mol_websocket_frame_op["pong"] = 10] = "pong"; + })($mol_websocket_frame_op = $.$mol_websocket_frame_op || ($.$mol_websocket_frame_op = {})); + class $mol_websocket_frame extends $mol_buffer { + kind(next) { + if (next) { + this.setUint8(0, Number(next.fin) << 7 | $mol_websocket_frame_op[next.op]); + return next; + } + else { + const state = this.getUint8(0); + const fin = state >> 7; + const op = $mol_websocket_frame_op[state & 0b1111]; + if (op === undefined) + $mol_fail(new Error(`Wrong op (${state.toString(2)})`)); + return { op, fin }; + } + } + data(next) { + if (next === undefined) { + const state = this.getUint8(1); + const mask = state >> 7; + let size = state & 0b0111_1111; + if (size === 126) + size = this.getUint16(2); + else if (size === 127) + size = this.getUint32(6); + return { size, mask }; + } + else { + if (next.size >= 2 ** 16) { + this.setUint8(1, 127 | Number(next.mask) << 7); + this.setUint32(6, next.size); + } + else if (next.size >= 126) { + this.setUint8(1, 126 | Number(next.mask) << 7); + this.setUint16(2, next.size); + } + else { + this.setUint8(1, next.size | Number(next.mask) << 7); + } + return next; + } + } + size() { + const short = this.getUint8(1) & 0b0111_1111; + const mask = this.getUint8(1) >> 7; + return (short === 127 ? 10 : short === 126 ? 4 : 2) + (mask ? 4 : 0); + } + mask() { + return new Uint8Array(this.buffer, this.byteOffset + this.size() - 4, 4); + } + toString() { + const { op, fin } = this.kind(); + const { size, mask } = this.data(); + return `${op}${fin ? '!' : '+'}${size}${mask ? '@' : '#'}`; + } + static make(op, size = 0, mask = false, fin = true) { + const head = (size >= 2 ** 16 ? 10 : size >= 126 ? 4 : 2) + (mask ? 4 : 0); + const frame = $mol_websocket_frame.from(head); + frame.kind({ op, fin }); + frame.data({ size, mask }); + return frame; + } + } + $.$mol_websocket_frame = $mol_websocket_frame; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws_std extends $mol_rest_port_ws { + socket; + send_nil() { + if (this.socket.readyState !== this.socket.OPEN) + return; + this.socket.send(''); + } + send_bin(data) { + if (this.socket.readyState !== this.socket.OPEN) + return; + this.socket.send(data); + } + send_text(data) { + if (this.socket.readyState !== this.socket.OPEN) + return; + const bin = $mol_charset_encode(data); + this.socket.send(bin); + } + } + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_std.prototype, "send_text", null); + $.$mol_rest_port_ws_std = $mol_rest_port_ws_std; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_rest_port_ws_node extends $mol_rest_port_ws { + socket; + send_nil() { + if (this.socket.writableEnded) + return; + this.socket.write($mol_websocket_frame.make('pong', 0).asArray()); + } + send_bin(data) { + if (this.socket.writableEnded) + return; + this.socket.write($mol_websocket_frame.make('bin', data.byteLength).asArray()); + this.socket.write(data); + } + send_text(data) { + if (this.socket.writableEnded) + return; + const bin = $mol_charset_encode(data); + this.socket.write($mol_websocket_frame.make('txt', bin.byteLength).asArray()); + this.socket.write(bin); + } + } + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_nil", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_bin", null); + __decorate([ + $mol_action + ], $mol_rest_port_ws_node.prototype, "send_text", null); + $.$mol_rest_port_ws_node = $mol_rest_port_ws_node; + $.$mol_rest_port_ws = $mol_rest_port_ws_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_yard extends $mol_object { + realm() { + return null; + } + persisted = new WeakSet(); + neonatals = new $mol_wire_set(); + load(land) { + return []; + } + async save(land, units) { } + static masters = []; + master_cursor(next = 0) { + return next; + } + master_current() { + return this.$.$hyoo_crus_yard.masters[this.master_cursor()]; + } + master_next() { + this.master_cursor((this.master_cursor() + 1) % this.$.$hyoo_crus_yard.masters.length); + } + reconnects(reset) { + return ($mol_wire_probe(() => this.reconnects()) ?? 0) + 1; + } + master() { + this.reconnects(); + const link = this.master_current(); + if (!link) + return null; + const socket = new $mol_dom_context.WebSocket(link.replace(/^http/, 'ws')); + socket.binaryType = 'arraybuffer'; + const port = $mol_rest_port_ws_std.make({ socket }); + socket.onmessage = async (event) => { + if (event.data instanceof ArrayBuffer) { + if (!event.data.byteLength) + return; + await $mol_wire_async(this).port_income(port, new Uint8Array(event.data)); + } + else { + this.$.$mol_log3_fail({ + place: this, + message: 'Wrong data', + data: event.data + }); + } + }; + let interval; + socket.onclose = () => { + clearInterval(interval); + setTimeout(() => this.reconnects(null), 1000); + }; + Object.assign(socket, { + destructor: () => { + socket.onclose = () => { }; + clearInterval(interval); + socket.close(); + } + }); + return new Promise((done, fail) => { + socket.onopen = () => { + this.$.$mol_log3_come({ + place: this, + message: 'Connected', + port: $mol_key(port), + server: link, + }); + interval = setInterval(() => socket.send(new Uint8Array), 30000); + done(port); + }; + socket.onerror = () => { + socket.onclose = event => { + fail(new Error(`Master (${link}) is unavailable (${event.code})`)); + clearInterval(interval); + interval = setTimeout(() => { + this.master_next(); + this.reconnects(null); + }, 1000); + }; + }; + }); + } + slaves = new $mol_wire_set(); + sync() { + for (const port of this.ports()) { + for (const land of this.neonatals) { + this.sync_port_land([port, land]); + } + for (const land of this.port_lands(port)) { + this.sync_port_land([port, land]); + } + } + this.neonatals.clear(); + } + ports() { + try { + return [this.master(), ...this.slaves].filter($mol_guard_defined); + } + catch (error) { + $mol_fail_log(error); + return [...this.slaves]; + } + } + port_lands(port) { + return new $mol_wire_set(); + } + port_income(port, msg) { + const pack = $mol_wire_sync($hyoo_crus_pack).from(msg); + const parts = $mol_wire_sync(pack).parts(); + $mol_wire_sync(this.$).$mol_log3_rise({ + place: this, + message: 'Gain Pack', + port: $mol_key(port), + lands: parts.lands, + rocks: parts.rocks.length, + }); + const lands = this.port_lands(port); + for (const land of Reflect.ownKeys(parts.lands)) { + lands.add(land); + const faces = parts.lands[land].faces; + let port_faces = this.face_port_land([port, land]); + if (port_faces) + port_faces.sync(faces); + else + this.face_port_land([port, land], port_faces = faces); + const units = parts.lands[land].units; + for (let unit of units) { + const unit2 = unit.narrow(); + if (unit2 instanceof $hyoo_crus_pass) + continue; + port_faces.time_max(unit2.peer(), unit2.time()); + } + } + this.realm().apply_pack(pack); + } + sync_land(land) { + for (const port of this.ports()) { + this.port_lands(port).add(land); + } + this.sync(); + } + sync_port_land([port, land]) { + try { + this.init_port_land([port, land]); + const faces = this.face_port_land([port, land]); + if (!faces) + return; + const Land = this.realm().Land(land); + Land.saving(); + const parts = Land.delta_parts(faces); + if (!parts) + return; + this.$.$mol_log3_rise({ + place: this, + message: 'Send Unit', + port: $mol_key(port), + lands: parts.lands, + rocks: parts.rocks.length, + }); + port.send_bin($hyoo_crus_pack.make(parts).asArray()); + faces.sync(Land.faces); + } + catch (error) { + $mol_fail_log(error); + } + } + init_port_land([port, land]) { + this.$.$mol_log3_rise({ + place: this, + message: 'Send Face', + port: $mol_key(port), + land: land, + faces: this.realm().Land(land).faces, + }); + port.send_bin(this.realm().Land(land).faces_pack().asArray()); + } + face_port_land([port, land], next = null) { + return next; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "realm", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master_cursor", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master_current", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard.prototype, "master_next", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "reconnects", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "master", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "sync", null); + __decorate([ + $mol_mem + ], $hyoo_crus_yard.prototype, "ports", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "port_lands", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard.prototype, "port_income", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "sync_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "sync_port_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "init_port_land", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard.prototype, "face_port_land", null); + $.$hyoo_crus_yard = $hyoo_crus_yard; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_yard_node extends $.$hyoo_crus_yard { + root() { + return $mol_file.relative('.crus'); + } + land_file(land) { + const id = land.ref().description; + const dir = this.root().resolve(`unit/${id.slice(0, 2)}`); + dir.exists(true); + return dir.resolve(`${id}.crus`); + } + land_offsets(land) { + return new Map(); + } + file_sizes = new Map(); + land_descr(land) { + return this.land_file(land).open('create', 'read_write'); + } + async save(land, units) { + const descr = this.land_descr(land); + const offsets = this.land_offsets(land); + const append = []; + for (const unit of units) { + const off = offsets.get(unit.key()); + if (off === undefined) { + append.push(unit); + } + else { + $node.fs.write(descr, unit, 0, unit.byteLength, off, () => { }); + } + } + if (!append.length) + return; + let size = this.file_sizes.get(descr) ?? 0; + let offset = size; + size += append.length * $hyoo_crus_unit.size; + $node.fs.ftruncateSync(descr, size); + this.file_sizes.set(descr, size); + for (const unit of append) { + $node.fs.write(descr, unit, 0, unit.byteLength, offset, () => { }); + offsets.set(unit.key(), offset); + offset += unit.byteLength; + } + } + load(land) { + const descr = this.land_descr(land); + const buf = $node.fs.readFileSync(descr); + if (!buf.length) + return []; + this.file_sizes.set(descr, buf.length); + const pack = $hyoo_crus_pack.from(buf); + const { lands, rocks } = pack.parts(land.ref()); + const units = lands[land.ref()]?.units ?? []; + const offsets = this.land_offsets(land); + for (let i = 0; i < units.length; ++i) { + offsets.set(units[i].key(), i * $hyoo_crus_unit.size); + } + return units; + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_yard_node.prototype, "root", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard_node.prototype, "land_file", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_yard_node.prototype, "land_descr", null); + __decorate([ + $mol_action + ], $hyoo_crus_yard_node.prototype, "load", null); + $.$hyoo_crus_yard_node = $hyoo_crus_yard_node; + $.$hyoo_crus_yard = $hyoo_crus_yard_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + let $hyoo_crus_gist_tag; + (function ($hyoo_crus_gist_tag) { + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["term"] = 0] = "term"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["solo"] = 1] = "solo"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["vals"] = 2] = "vals"; + $hyoo_crus_gist_tag[$hyoo_crus_gist_tag["keys"] = 3] = "keys"; + })($hyoo_crus_gist_tag = $.$hyoo_crus_gist_tag || ($.$hyoo_crus_gist_tag = {})); + class $hyoo_crus_gist extends $hyoo_crus_unit { + _vary = undefined; + _open = null; + hint(tip = 'null', tag = 'term') { + this.uint8(0, ($hyoo_crus_gist_tag[tag] << 1) | ($hyoo_crus_vary_tip[tip] << 3)); + } + tag() { + return $hyoo_crus_gist_tag[(this.uint8(0) >> 1) & 0b11]; + } + tip() { + return $hyoo_crus_vary_tip[this.uint8(0) >> 3]; + } + utf() { + return Boolean(this.uint8(0) & 0b10000000); + } + nil() { + return !this.uint16(0); + } + size(next) { + return this.uint8(1, next); + } + time(next) { + return this.uint48(8, next); + } + _self; + self(next) { + if (next === undefined && this._self !== undefined) + return this._self; + else + return this._self = this.id6(14, next); + } + _head; + head(next) { + if (next === undefined && this._head !== undefined) + return this._head; + else + return this._head = this.id6(20, next); + } + key() { + return `${this.head()}/${this.self()}`; + } + _lead; + lead(next) { + if (next === undefined && this._lead !== undefined) + return this._lead; + else + return this._lead = this.id6(26, next); + } + hash(next, tip = 'null', tag = 'term') { + const bin = new Uint8Array(this.buffer, this.byteOffset + 32, 20); + if (next !== undefined) { + this.hint(tip, tag); + this.size(255); + bin.set(next); + } + if (this.size() > 32) + return bin; + $mol_fail(new Error('No stored hash')); + } + meta() { + return new Uint8Array(this.buffer, this.byteOffset + 42, 12); + } + data(next, tip = 'null', tag = 'term') { + if (next === undefined) { + const size = this.size(); + if (size > 32) + $mol_fail(new Error('Too long data')); + return new Uint8Array(this.buffer, this.byteOffset + 32, size); + } + else { + this.hint(tip, tag); + if (next.byteLength > 32) + $mol_fail(new Error('Too long data')); + this.uint8(1, next.byteLength); + const bin = new Uint8Array(this.buffer, this.byteOffset + 32, next.byteLength); + bin.set(next); + new Uint8Array(this.buffer, this.byteOffset + 32 + next.length, 32 - next.length).fill(0); + return bin; + } + } + idea() { + const bin = new Uint8Array(this.buffer, this.byteOffset + 20, 44); + const hash = $mol_crypto_hash(bin); + const buf = new $mol_buffer(hash.buffer); + return buf.uint48(0); + } + static compare(left, right) { + return (right.time() - left.time()) || (right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0); + } + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.peer(), ' ', this.lead() || 'AAAAAAAA', $mol_dev_format_shade('\\'), $mol_dev_format_accent(this.head() || 'AAAAAAAA'), $mol_dev_format_shade('/'), this.self() || 'AAAAAAAA', ' ', $mol_dev_format_shade(new $mol_time_moment(this.time()).toString('YYYY-MM-DD hh:mm:ss.sss')), ' ', { + term: '💼', + solo: '1️⃣', + vals: '🎹', + keys: '🔑', + }[this.tag()], this.tip(), ' ', $mol_dev_format_native(this._vary)); + } + } + $.$hyoo_crus_gist = $hyoo_crus_gist; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_node extends $mol_object { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.vals]; + land() { + return null; + } + head() { + return ''; + } + realm() { + return this.land()?.realm() ?? null; + } + land_ref() { + return this.land()?.ref() ?? this.$.$hyoo_crus_auth.current().lord(); + } + ref() { + return $hyoo_crus_ref(this.land_ref().description + '_' + this.head()); + } + toJSON() { + return this.ref().description; + } + cast(Node) { + return this.land().Node(Node).Item(this.head()); + } + nodes(Node) { + const land = this.land(); + const map = { + term: () => land.Node(Node || $hyoo_crus_atom_vary), + solo: () => land.Node(Node || $hyoo_crus_atom_vary), + vals: () => land.Node(Node || $hyoo_crus_list_vary), + keys: () => land.Node(Node || $hyoo_crus_dict), + }; + return this.units().map(unit => map[unit.tag()]().Item(unit.self())); + } + units() { + return this.land().gists_ordered(this.head()).filter(unit => !unit.nil()); + } + filled() { + return this.units().length > 0; + } + can_change(lord = this.land().auth().lord()) { + return this.land().lord_rank(lord) >= $hyoo_crus_rank.add; + } + last_change() { + const land = this.land(); + let last = 0; + const map = { + term: () => null, + solo: () => land.Node($hyoo_crus_atom_vary), + vals: () => land.Node($hyoo_crus_list_vary), + keys: () => land.Node($hyoo_crus_dict), + }; + const visit = (gist) => { + if (gist.time() > last) + last = gist.time(); + map[gist.tag()]()?.Item(gist.self()).units().forEach(visit); + }; + for (const gist of this.units()) + visit(gist); + return last ? new $mol_time_moment(last) : null; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head()); + } + } + __decorate([ + $mol_memo.method + ], $hyoo_crus_node.prototype, "ref", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_node.prototype, "cast", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_node.prototype, "nodes", null); + __decorate([ + $mol_mem + ], $hyoo_crus_node.prototype, "units", null); + __decorate([ + $mol_mem + ], $hyoo_crus_node.prototype, "last_change", null); + $.$hyoo_crus_node = $hyoo_crus_node; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_reconcile({ prev, from, to, next, equal, drop, insert, update, }) { + if (!update) + update = (next, prev, lead) => insert(next, drop(prev, lead)); + let p = from; + let n = 0; + let lead = p ? prev[p - 1] : null; + if (to > prev.length) + $mol_fail(new RangeError(`To(${to}) greater then length(${prev.length})`)); + if (from > to) + $mol_fail(new RangeError(`From(${to}) greater then to(${to})`)); + while (p < to || n < next.length) { + if (p < to && n < next.length && equal(next[n], prev[p])) { + lead = prev[p]; + ++p; + ++n; + } + else if (next.length - n > to - p) { + lead = insert(next[n], lead); + ++n; + } + else if (next.length - n < to - p) { + lead = drop(prev[p], lead); + ++p; + } + else { + lead = update(next[n], prev[p], lead); + ++p; + ++n; + } + } + } + $.$mol_reconcile = $mol_reconcile; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_realm extends $mol_object { + lands = new $mol_wire_dict(); + yard() { + return this.$.$hyoo_crus_yard.make({ + realm: $mol_const(this), + }); + } + home() { + return this.Land(this.$.$hyoo_crus_auth.current().lord()).home(); + } + king_grab(preset = $hyoo_crus_rank_public) { + const king = this.$.$hyoo_crus_auth.grab(); + const colony = $mol_wire_sync($hyoo_crus_land).make({}); + colony.auth = $mol_const(king); + if ((preset[''] ?? $hyoo_crus_rank.nil) === $hyoo_crus_rank.nil) { + colony.encrypted(true); + } + const self = this.$.$hyoo_crus_auth.current(); + colony.give(self, $hyoo_crus_rank.law); + for (const key in preset) + colony.give(key ? $hyoo_crus_auth.from(key) : null, preset[key]); + this.Land(colony.ref()).apply_unit_trust(colony.delta_unit()); + return king; + } + land_grab(preset = $hyoo_crus_rank_public) { + return this.Land(this.king_grab(preset).lord()); + } + Land(ref) { + let land = this.lands.get(ref); + if (land) + return land; + land = $hyoo_crus_land.make({ + realm: $mol_const(this), + ref: $mol_const(ref), + }); + this.lands.set(ref, land); + return land; + } + Node(ref, Node) { + const land = this.Land($hyoo_crus_ref_land(ref)); + return land.Node(Node).Item($hyoo_crus_ref_head(ref)); + } + apply_pack(pack) { + const { lands, rocks } = pack.parts(); + for (const land of Reflect.ownKeys(lands)) { + const errors = this.Land(land).apply_unit(lands[land].units).filter(Boolean); + for (const error of errors) + this.$.$mol_log3_warn({ + place: `${this}.apply_pack()`, + message: error, + hint: 'Send it to developer', + }); + } + for (const [hash, rock] of rocks) { + if (!rock) + continue; + this.$.$hyoo_crus_mine.save(rock); + } + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_realm.prototype, "yard", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "king_grab", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "land_grab", null); + __decorate([ + $mol_mem_key + ], $hyoo_crus_realm.prototype, "Land", null); + __decorate([ + $mol_action + ], $hyoo_crus_realm.prototype, "apply_pack", null); + $.$hyoo_crus_realm = $hyoo_crus_realm; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_list_vary extends $hyoo_crus_node { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.vals]; + items_vary(next, tag = 'term') { + const units = this.units(); + if (next === undefined) + return units.map(unit => this.land().gist_decode(unit)); + this.splice(next, 0, units.length, tag); + return this.items_vary(); + } + splice(next, from = this.units().length, to = from, tag = 'term') { + const land = this.land(); + $mol_reconcile({ + prev: this.units(), + from, + to, + next, + equal: (next, prev) => $mol_compare_deep(this.land().gist_decode(prev), next), + drop: (prev, lead) => this.land().post(lead?.self() ?? '', prev.head(), prev.self(), null), + insert: (next, lead) => this.land().post(lead?.self() ?? '', this.head(), land.self_make($hyoo_crus_area_of(this.head())), next, tag), + update: (next, prev, lead) => this.land().post(lead?.self() ?? '', prev.head(), prev.self(), next, prev.tag()), + }); + } + find(vary) { + for (const unit of this.units()) { + if ($mol_compare_deep(this.land().gist_decode(unit), vary)) + return unit; + } + return null; + } + has(vary, next, tag = 'term') { + if (next === undefined) + return Boolean(this.find(vary)); + if (next) + this.add(vary, tag); + else + this.cut(vary); + return next; + } + add(vary, tag = 'term') { + if (this.has(vary)) + return; + this.land().post('', this.head(), '', vary, tag); + } + cut(vary) { + const units = [...this.units()]; + for (let i = 0; i < units.length; ++i) { + if (!$mol_compare_deep(this.land().gist_decode(units[i]), vary)) + continue; + this.land().post(units[i - 1]?.self() ?? 0, units[i].head(), units[i].self(), null); + units.splice(i, 1); + --i; + } + } + move(from, to) { + this.land().gist_move(this.units()[from], this.head(), to); + } + wipe(seat) { + this.land().gist_wipe(this.units()[seat]); + } + node_make(Node, vary, tag = 'term') { + this.splice([vary], undefined, undefined, tag); + return this.land().Node(Node).Item(this.units().at(-1).self()); + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(this.items_vary())); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_list_vary.prototype, "items_vary", null); + $.$hyoo_crus_list_vary = $hyoo_crus_list_vary; + function $hyoo_crus_list(parse) { + class Narrow extends $hyoo_crus_list_vary { + static parse = parse; + items(next) { + return this.items_vary(next?.map(parse)).map(parse); + } + } + __decorate([ + $mol_mem + ], Narrow.prototype, "items", null); + return Narrow; + } + $.$hyoo_crus_list = $hyoo_crus_list; + class $hyoo_crus_list_bin extends $hyoo_crus_list($hyoo_crus_vary_cast_bin) { + } + $.$hyoo_crus_list_bin = $hyoo_crus_list_bin; + class $hyoo_crus_list_bool extends $hyoo_crus_list($hyoo_crus_vary_cast_bool) { + } + $.$hyoo_crus_list_bool = $hyoo_crus_list_bool; + class $hyoo_crus_list_int extends $hyoo_crus_list($hyoo_crus_vary_cast_int) { + } + $.$hyoo_crus_list_int = $hyoo_crus_list_int; + class $hyoo_crus_list_real extends $hyoo_crus_list($hyoo_crus_vary_cast_real) { + } + $.$hyoo_crus_list_real = $hyoo_crus_list_real; + class $hyoo_crus_list_ref extends $hyoo_crus_list($hyoo_crus_vary_cast_ref) { + } + $.$hyoo_crus_list_ref = $hyoo_crus_list_ref; + class $hyoo_crus_list_str extends $hyoo_crus_list($hyoo_crus_vary_cast_str) { + } + $.$hyoo_crus_list_str = $hyoo_crus_list_str; + class $hyoo_crus_list_time extends $hyoo_crus_list($hyoo_crus_vary_cast_time) { + } + $.$hyoo_crus_list_time = $hyoo_crus_list_time; + class $hyoo_crus_list_dur extends $hyoo_crus_list($hyoo_crus_vary_cast_dur) { + } + $.$hyoo_crus_list_dur = $hyoo_crus_list_dur; + class $hyoo_crus_list_range extends $hyoo_crus_list($hyoo_crus_vary_cast_range) { + } + $.$hyoo_crus_list_range = $hyoo_crus_list_range; + class $hyoo_crus_list_json extends $hyoo_crus_list($hyoo_crus_vary_cast_json) { + } + $.$hyoo_crus_list_json = $hyoo_crus_list_json; + class $hyoo_crus_list_jsan extends $hyoo_crus_list($hyoo_crus_vary_cast_jsan) { + } + $.$hyoo_crus_list_jsan = $hyoo_crus_list_jsan; + class $hyoo_crus_list_dom extends $hyoo_crus_list($hyoo_crus_vary_cast_dom) { + } + $.$hyoo_crus_list_dom = $hyoo_crus_list_dom; + class $hyoo_crus_list_tree extends $hyoo_crus_list($hyoo_crus_vary_cast_tree) { + } + $.$hyoo_crus_list_tree = $hyoo_crus_list_tree; + class $hyoo_crus_list_ref_base extends $hyoo_crus_list_ref { + } + $.$hyoo_crus_list_ref_base = $hyoo_crus_list_ref_base; + function $hyoo_crus_list_ref_to(Value) { + class Ref extends $hyoo_crus_list_ref_base { + static Value = Value; + static toJSON() { + return '$hyoo_crus_list_to<' + Value() + '>'; + } + remote_list(next) { + const realm = this.realm(); + const Node = Value(); + return this.items_vary(next?.map(item => item.ref())) + .map($hyoo_crus_vary_cast_ref) + .filter($mol_guard_defined) + .map(ref => realm.Node(ref, Node)); + } + remote_make(preset) { + const land = this.realm().land_grab(preset); + this.splice([land.ref()]); + return land.Node(Value()).Item(''); + } + local_make(idea) { + const area = $hyoo_crus_area_of(this.head()); + const self = this.land().self_make(area, idea); + const node = this.land().Node(Value()).Item(self); + this.splice([node.ref()]); + return node; + } + } + __decorate([ + $mol_mem + ], Ref.prototype, "remote_list", null); + __decorate([ + $mol_action + ], Ref.prototype, "remote_make", null); + __decorate([ + $mol_action + ], Ref.prototype, "local_make", null); + return Ref; + } + $.$hyoo_crus_list_ref_to = $hyoo_crus_list_ref_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_dict extends ($hyoo_crus_list_vary) { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.keys]; + keys() { + return this.items_vary(); + } + dive(key, Node, auto) { + if (this.can_change() && auto !== undefined) + this.has(key, true, Node.tag); + const unit = this.find(key); + return unit ? this.land().Node(Node).Item(unit.self()) : null; + } + static schema = {}; + static with(schema) { + const Entity = class Entity extends this { + }; + for (const Field in schema) { + Object.defineProperty(Entity.prototype, Field, { + value: function (auto) { + return this.dive(Field, schema[Field], auto); + } + }); + } + return Object.assign(Entity, { schema: { ...this.schema, ...schema } }); + } + ; + [$mol_dev_format_head]() { + const keys = $mol_wire_probe(() => this.keys()); + const nodes = $mol_wire_probe(() => this.nodes(null)) ?? []; + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(keys?.map((key, index) => new Pair(key, nodes[index])))); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_dict.prototype, "keys", null); + $.$hyoo_crus_dict = $hyoo_crus_dict; + class Pair { + key; + val; + constructor(key, val) { + this.key = key; + this.val = val; + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_tr({}, $mol_dev_format_td({}, $mol_dev_format_auto(this.key)), $mol_dev_format_td({}, ': '), $mol_dev_format_td({}, $mol_dev_format_auto(this.val))); + } + } + function $hyoo_crus_dict_to(Value) { + return class Dict extends $hyoo_crus_dict { + Value = Value; + key(key, auto) { + this.has(key, auto === undefined ? undefined : true, Value.tag); + const unit = this.find(key); + if (!unit) + return null; + return this.land().Node(this.Value).Item(unit.self()); + } + static toString() { + return '$hyoo_crus_dict_to(' + Value + ')'; + } + }; + } + $.$hyoo_crus_dict_to = $hyoo_crus_dict_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_atom_vary extends $hyoo_crus_node { + static tag = $hyoo_crus_gist_tag[$hyoo_crus_gist_tag.solo]; + pick_unit() { + return this.units().at(0); + } + vary(next) { + let unit_prev = this.pick_unit(); + let prev = unit_prev ? this.land().gist_decode(unit_prev) : null; + if (next === undefined) + return prev; + if ($mol_compare_deep(prev, next)) + return next; + this.land().post('', unit_prev?.head() ?? this.head(), unit_prev?.self() ?? '', next); + return this.vary(); + } + ; + [$mol_dev_format_head]() { + return $mol_dev_format_span({}, $mol_dev_format_native(this), ' ', this.head(), ' ', $mol_dev_format_auto(this.vary())); + } + } + __decorate([ + $mol_mem + ], $hyoo_crus_atom_vary.prototype, "vary", null); + $.$hyoo_crus_atom_vary = $hyoo_crus_atom_vary; + class $hyoo_crus_atom_enum_base extends $hyoo_crus_atom_vary { + static options = []; + } + $.$hyoo_crus_atom_enum_base = $hyoo_crus_atom_enum_base; + function $hyoo_crus_atom_enum(options) { + class Narrow extends $hyoo_crus_atom_enum_base { + static options = options; + val(next) { + validate: if (next !== undefined) { + for (const option of options) { + if ($mol_compare_deep(option, next)) + break validate; + } + $mol_fail(new Error(`Wrong value (${$hyoo_crus_vary_cast_str(next)})`)); + } + const val = this.vary(next); + for (const option of options) { + if ($mol_compare_deep(option, val)) + return val; + } + return null; + } + } + __decorate([ + $mol_mem + ], Narrow.prototype, "val", null); + return Narrow; + } + $.$hyoo_crus_atom_enum = $hyoo_crus_atom_enum; + function $hyoo_crus_atom(parse) { + class Narrow extends $hyoo_crus_atom_vary { + static parse = parse; + val(next) { + if (next !== undefined) + parse(next); + const res = this.vary(next); + try { + return parse(res); + } + catch { + return null; + } + } + } + return Narrow; + } + $.$hyoo_crus_atom = $hyoo_crus_atom; + class $hyoo_crus_atom_bin extends $hyoo_crus_atom($hyoo_crus_vary_cast_bin) { + } + $.$hyoo_crus_atom_bin = $hyoo_crus_atom_bin; + class $hyoo_crus_atom_bool extends $hyoo_crus_atom($hyoo_crus_vary_cast_bool) { + } + $.$hyoo_crus_atom_bool = $hyoo_crus_atom_bool; + class $hyoo_crus_atom_int extends $hyoo_crus_atom($hyoo_crus_vary_cast_int) { + } + $.$hyoo_crus_atom_int = $hyoo_crus_atom_int; + class $hyoo_crus_atom_real extends $hyoo_crus_atom($hyoo_crus_vary_cast_real) { + } + $.$hyoo_crus_atom_real = $hyoo_crus_atom_real; + class $hyoo_crus_atom_ref extends $hyoo_crus_atom($hyoo_crus_vary_cast_ref) { + } + $.$hyoo_crus_atom_ref = $hyoo_crus_atom_ref; + class $hyoo_crus_atom_str extends $hyoo_crus_atom($hyoo_crus_vary_cast_str) { + } + $.$hyoo_crus_atom_str = $hyoo_crus_atom_str; + class $hyoo_crus_atom_time extends $hyoo_crus_atom($hyoo_crus_vary_cast_time) { + } + $.$hyoo_crus_atom_time = $hyoo_crus_atom_time; + class $hyoo_crus_atom_dur extends $hyoo_crus_atom($hyoo_crus_vary_cast_dur) { + } + $.$hyoo_crus_atom_dur = $hyoo_crus_atom_dur; + class $hyoo_crus_atom_range extends $hyoo_crus_atom($hyoo_crus_vary_cast_range) { + } + $.$hyoo_crus_atom_range = $hyoo_crus_atom_range; + class $hyoo_crus_atom_json extends $hyoo_crus_atom($hyoo_crus_vary_cast_json) { + } + $.$hyoo_crus_atom_json = $hyoo_crus_atom_json; + class $hyoo_crus_atom_jsan extends $hyoo_crus_atom($hyoo_crus_vary_cast_jsan) { + } + $.$hyoo_crus_atom_jsan = $hyoo_crus_atom_jsan; + class $hyoo_crus_atom_dom extends $hyoo_crus_atom($hyoo_crus_vary_cast_dom) { + } + $.$hyoo_crus_atom_dom = $hyoo_crus_atom_dom; + class $hyoo_crus_atom_tree extends $hyoo_crus_atom($hyoo_crus_vary_cast_tree) { + } + $.$hyoo_crus_atom_tree = $hyoo_crus_atom_tree; + class $hyoo_crus_atom_ref_base extends $hyoo_crus_atom_ref { + static Value = $hyoo_crus_dict; + } + $.$hyoo_crus_atom_ref_base = $hyoo_crus_atom_ref_base; + function $hyoo_crus_atom_ref_to(Value) { + class Ref extends $hyoo_crus_atom_ref_base { + Value = Value; + static toString() { + return '$hyoo_crus_atom_ref_to<' + Value() + '>'; + } + yoke(preset) { + const realm = this.realm(); + const Ref = this.cast($hyoo_crus_atom_ref); + const ref = Ref.val(); + if (ref) + return realm.Land(ref); + if (preset === undefined) + return null; + const land = realm.land_grab(preset); + Ref.val(land.ref()); + return land; + } + remote(next) { + const realm = this.realm(); + let ref = next?.ref() ?? next; + ref = $hyoo_crus_vary_cast_ref(this.vary(ref)); + if (!ref) + return null; + return realm.Node(ref, Value()); + } + remote_ensure(preset) { + this.yoke(preset); + return this.remote(); + } + local_ensure() { + if (this.remote()) + return this.remote(); + const node = this.land().Node(Value()).Item(this.land().self_make($hyoo_crus_area_of(this.head()))); + return this.remote(node); + } + } + __decorate([ + $mol_mem + ], Ref.prototype, "yoke", null); + __decorate([ + $mol_mem + ], Ref.prototype, "remote", null); + __decorate([ + $mol_mem + ], Ref.prototype, "local_ensure", null); + return Ref; + } + $.$hyoo_crus_atom_ref_to = $hyoo_crus_atom_ref_to; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_home extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + Selection: $hyoo_crus_atom_str, + Hall: $hyoo_crus_atom_ref_to(() => $hyoo_crus_dict), + }) { + hall_by(Node, preset) { + return this.Hall(null)?.remote_ensure(preset)?.cast(Node) ?? null; + } + } + $.$hyoo_crus_home = $hyoo_crus_home; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_meta extends $hyoo_crus_dict.with({ + Inflow: $hyoo_crus_list_ref, + }) { + } + $.$hyoo_crus_meta = $hyoo_crus_meta; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_crus_entity extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + }) { + } + $.$hyoo_crus_entity = $hyoo_crus_entity; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $hyoo_survey_meet extends $hyoo_crus_entity.with({ + Opinions: $hyoo_crus_dict_to($hyoo_crus_atom_ref_to(() => $hyoo_survey_meet_opinion)) + }) { + opinion_my() { + const key = this.land().auth().peer(); + return this.Opinions(true)?.key(key, true)?.remote_ensure($hyoo_crus_rank_public) ?? null; + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_meet.prototype, "opinion_my", null); + $.$hyoo_survey_meet = $hyoo_survey_meet; + class $hyoo_survey_meet_opinion extends $hyoo_crus_entity.with({ + Pleasant: $hyoo_crus_atom_str, + Improvement: $hyoo_crus_atom_str, + Continue: $hyoo_crus_atom_bool, + Request: $hyoo_crus_atom_str, + }) { + } + $.$hyoo_survey_meet_opinion = $hyoo_survey_meet_opinion; +})($ || ($ = {})); + +; + ($.$mol_stack) = class $mol_stack extends ($.$mol_view) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/stack/stack.view.css", "[mol_stack] {\n\tdisplay: grid;\n\t/* width: max-content; */\n\t/* height: max-content; */\n\talign-items: flex-start;\n\tjustify-items: flex-start;\n}\n\n[mol_stack] > * {\n\tgrid-area: 1/1;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_text_code_token) = class $mol_text_code_token extends ($.$mol_dimmer) { + type(){ + return ""; + } + attr(){ + return {...(super.attr()), "mol_text_code_token_type": (this.type())}; + } + }; + ($.$mol_text_code_token_link) = class $mol_text_code_token_link extends ($.$mol_text_code_token) { + uri(){ + return ""; + } + dom_name(){ + return "a"; + } + type(){ + return "code-link"; + } + attr(){ + return { + ...(super.attr()), + "href": (this.uri()), + "target": "_blank" + }; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { hsla } = $mol_style_func; + $mol_style_define($mol_text_code_token, { + display: 'inline', + textDecoration: 'none', + '@': { + mol_text_code_token_type: { + 'code-keyword': { + color: hsla(0, 70, 60, 1), + }, + 'code-field': { + color: hsla(300, 70, 50, 1), + }, + 'code-tag': { + color: hsla(330, 70, 50, 1), + }, + 'code-global': { + color: hsla(30, 80, 50, 1), + }, + 'code-decorator': { + color: hsla(180, 40, 50, 1), + }, + 'code-punctuation': { + color: hsla(0, 0, 50, 1), + }, + 'code-string': { + color: hsla(90, 40, 50, 1), + }, + 'code-number': { + color: hsla(55, 65, 45, 1), + }, + 'code-call': { + color: hsla(270, 60, 50, 1), + }, + 'code-link': { + color: hsla(210, 60, 50, 1), + }, + 'code-comment-inline': { + opacity: .5, + }, + 'code-comment-block': { + opacity: .5, + }, + 'code-docs': { + opacity: .75, + }, + }, + } + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text_code_row) = class $mol_text_code_row extends ($.$mol_paragraph) { + numb(){ + return 0; + } + token_type(id){ + return ""; + } + token_text(id){ + return ""; + } + highlight(){ + return ""; + } + token_uri(id){ + return ""; + } + text(){ + return ""; + } + minimal_height(){ + return 24; + } + numb_showed(){ + return true; + } + syntax(){ + return null; + } + uri_resolve(id){ + return ""; + } + Numb(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.numb())]); + return obj; + } + Token(id){ + const obj = new this.$.$mol_text_code_token(); + (obj.type) = () => ((this.token_type(id))); + (obj.haystack) = () => ((this.token_text(id))); + (obj.needle) = () => ((this.highlight())); + return obj; + } + Token_link(id){ + const obj = new this.$.$mol_text_code_token_link(); + (obj.haystack) = () => ((this.token_text(id))); + (obj.needle) = () => ((this.highlight())); + (obj.uri) = () => ((this.token_uri(id))); + return obj; + } + find_pos(id){ + return null; + } + }; + ($mol_mem(($.$mol_text_code_row.prototype), "Numb")); + ($mol_mem_key(($.$mol_text_code_row.prototype), "Token")); + ($mol_mem_key(($.$mol_text_code_row.prototype), "Token_link")); + + +; +"use strict"; +var $; +(function ($) { + class $mol_syntax2 { + lexems; + constructor(lexems) { + this.lexems = lexems; + for (let name in lexems) { + this.rules.push({ + name: name, + regExp: lexems[name], + size: RegExp('^$|' + lexems[name].source).exec('').length - 1, + }); + } + const parts = '(' + this.rules.map(rule => rule.regExp.source).join(')|(') + ')'; + this.regexp = RegExp(`([\\s\\S]*?)(?:(${parts})|$(?![^]))`, 'gmu'); + } + rules = []; + regexp; + tokenize(text, handle) { + let end = 0; + lexing: while (end < text.length) { + const start = end; + this.regexp.lastIndex = start; + var found = this.regexp.exec(text); + end = this.regexp.lastIndex; + if (start === end) + throw new Error('Empty token'); + var prefix = found[1]; + if (prefix) + handle('', prefix, [prefix], start); + var suffix = found[2]; + if (!suffix) + continue; + let offset = 4; + for (let rule of this.rules) { + if (found[offset - 1]) { + handle(rule.name, suffix, found.slice(offset, offset + rule.size), start + prefix.length); + continue lexing; + } + offset += rule.size + 1; + } + $mol_fail(new Error('$mol_syntax2 is broken')); + } + } + parse(text, handlers) { + this.tokenize(text, (name, ...args) => handlers[name](...args)); + } + } + $.$mol_syntax2 = $mol_syntax2; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_syntax2_md_flow = new $mol_syntax2({ + 'quote': /^((?:(?:[>"] )(?:[^]*?)$(\r?\n?))+)([\n\r]*)/, + 'header': /^([#=]+)(\s+)(.*?)$([\n\r]*)/, + 'list': /^((?:(?: ?([*+-])|(?:\d+[\.\)])+) +(?:[^]*?)$(?:\r?\n?)(?: (?:[^]*?)$(?:\r?\n?))*)+)((?:\r?\n)*)/, + 'code': /^(```\s*)([\w.-]*)[\r\n]+([^]*?)^(```)$([\n\r]*)/, + 'code-indent': /^((?:(?: |\t)(?:[^]*?)$\r?\n?)+)([\n\r]*)/, + 'table': /((?:^\|.+?$\r?\n?)+)([\n\r]*)/, + 'grid': /((?:^ *! .*?$\r?\n?)+)([\n\r]*)/, + 'cut': /^--+$((?:\r?\n)*)/, + 'block': /^(.*?)$((?:\r?\n)*)/, + }); + $.$mol_syntax2_md_line = new $mol_syntax2({ + 'strong': /\*\*(.+?)\*\*/, + 'emphasis': /\*(?!\s)(.+?)\*|\/\/(?!\s)(.+?)\/\//, + 'code': /```(.+?)```|;;(.+?);;|`(.+?)`/, + 'insert': /\+\+(.+?)\+\+/, + 'delete': /~~(.+?)~~|--(.+?)--/, + 'embed': /""(?:(.*?)\\)?(.*?)""/, + 'link': /\\\\(?:(.*?)\\)?(.*?)\\\\/, + 'image-link': /!\[([^\[\]]*?)\]\((.*?)\)/, + 'text-link': /\[(.*?(?:\[[^\[\]]*?\][^\[\]]*?)*)\]\((.*?)\)/, + 'text-link-http': /\b(https?:\/\/[^\s,.;:!?")]+(?:[,.;:!?")][^\s,.;:!?")]+)+)/, + }); + $.$mol_syntax2_md_code = new $mol_syntax2({ + 'code-indent': /\t+/, + 'code-docs': /\/\/\/.*?$/, + 'code-comment-block': /(?:\/\*[^]*?\*\/|\/\+[^]*?\+\/|)/, + 'code-link': /(?:\w+:\/\/|#)\S+?(?=\s|\\\\|""|$)/, + 'code-comment-inline': /\/\/.*?(?:$|\/\/)/, + 'code-string': /(?:".*?"|'.*?'|`.*?`|\/.+?\/[dygimsu]*(?!\p{Letter})|(?:^|[ \t])\\[^\n]*\n)/, + 'code-number': /[+-]?(?:\d*\.)?\d+\w*/, + 'code-call': /\.?\w+ *(?=\()/, + 'code-sexpr': /\((\w+ )/, + 'code-field': /(?:(?:\.|::|->)\w+|[\w-]+\??\s*:(?!\/\/|:))/, + 'code-keyword': /\b(throw|readonly|unknown|keyof|typeof|never|from|class|struct|interface|type|function|extends|implements|module|namespace|import|export|include|require|var|val|let|const|for|do|while|until|in|out|of|new|if|then|else|switch|case|this|return|async|await|yield|try|catch|break|continue|get|set|public|private|protected|string|boolean|number|null|undefined|true|false|void|int|float|ref)\b/, + 'code-global': /[$]+\w*|\b[A-Z][a-z0-9]+[A-Z]\w*/, + 'code-word': /\w+/, + 'code-decorator': /@\s*\S+/, + 'code-tag': /<\/?[\w-]+\/?>?|&\w+;/, + 'code-punctuation': /[\-\[\]\{\}\(\)<=>~!\?@#%&\*_\+\\\/\|;:\.,\^]+?/, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text_code_row extends $.$mol_text_code_row { + maximal_width() { + return this.text().length * this.letter_width(); + } + syntax() { + return this.$.$mol_syntax2_md_code; + } + tokens(path) { + const tokens = []; + const text = (path.length > 0) + ? this.tokens(path.slice(0, path.length - 1))[path[path.length - 1]].found.slice(1, -1) + : this.text(); + this.syntax().tokenize(text, (name, found, chunks) => { + if (name === 'code-sexpr') { + tokens.push({ name: 'code-punctuation', found: '(', chunks: [] }); + tokens.push({ name: 'code-call', found: chunks[0], chunks: [] }); + } + else { + tokens.push({ name, found, chunks }); + } + }); + return tokens; + } + sub() { + return [ + ...this.numb_showed() ? [this.Numb()] : [], + ...this.row_content([]) + ]; + } + row_content(path) { + return this.tokens(path).map((t, i) => this.Token([...path, i])); + } + Token(path) { + return this.token_type(path) === 'code-link' ? this.Token_link(path) : super.Token(path); + } + token_type(path) { + return this.tokens([...path.slice(0, path.length - 1)])[path[path.length - 1]].name; + } + token_content(path) { + const tokens = this.tokens([...path.slice(0, path.length - 1)]); + const token = tokens[path[path.length - 1]]; + switch (token.name) { + case 'code-string': return [ + token.found[0], + ...this.row_content(path), + token.found[token.found.length - 1], + ]; + default: return [token.found]; + } + } + token_text(path) { + const tokens = this.tokens([...path.slice(0, path.length - 1)]); + const token = tokens[path[path.length - 1]]; + return token.found; + } + token_uri(path) { + const uri = this.token_text(path); + return this.uri_resolve(uri); + } + *view_find(check, path = []) { + if (check(this, this.text())) { + yield [...path, this]; + } + } + find_pos(offset) { + return this.find_token_pos([offset]); + } + find_token_pos([offset, ...path]) { + for (const [index, token] of this.tokens(path).entries()) { + if (token.found.length >= offset) { + const token = this.Token([...path, index]); + return { token, offset }; + } + else { + offset -= token.found.length; + } + } + return null; + } + } + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "row_content", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_type", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_content", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_text", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "token_uri", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "find_pos", null); + __decorate([ + $mol_mem_key + ], $mol_text_code_row.prototype, "find_token_pos", null); + $$.$mol_text_code_row = $mol_text_code_row; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { rem } = $mol_style_unit; + $mol_style_define($mol_text_code_row, { + display: 'block', + position: 'relative', + font: { + family: 'monospace', + }, + Numb: { + textAlign: 'right', + color: $mol_theme.shade, + width: rem(3), + margin: { + left: rem(-4), + }, + display: 'inline-block', + whiteSpace: 'nowrap', + userSelect: 'none', + position: 'absolute', + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_blob = ($node.buffer?.Blob ?? $mol_dom_context.Blob); +})($ || ($ = {})); + +; + ($.$mol_icon_clipboard) = class $mol_icon_clipboard extends ($.$mol_icon) { + path(){ + return "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3"; + } + }; + + +; +"use strict"; + +; + ($.$mol_icon_clipboard_outline) = class $mol_icon_clipboard_outline extends ($.$mol_icon) { + path(){ + return "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3M7,7H17V5H19V19H5V5H7V7Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_button_copy) = class $mol_button_copy extends ($.$mol_button_minor) { + text(){ + return (this.title()); + } + text_blob(next){ + if(next !== undefined) return next; + const obj = new this.$.$mol_blob([(this.text())], {"type": "text/plain"}); + return obj; + } + html(){ + return ""; + } + html_blob(next){ + if(next !== undefined) return next; + const obj = new this.$.$mol_blob([(this.html())], {"type": "text/html"}); + return obj; + } + Icon(){ + const obj = new this.$.$mol_icon_clipboard_outline(); + return obj; + } + title(){ + return ""; + } + blobs(){ + return [(this.text_blob()), (this.html_blob())]; + } + data(){ + return {}; + } + sub(){ + return [(this.Icon()), (this.title())]; + } + }; + ($mol_mem(($.$mol_button_copy.prototype), "text_blob")); + ($mol_mem(($.$mol_button_copy.prototype), "html_blob")); + ($mol_mem(($.$mol_button_copy.prototype), "Icon")); + + +; +"use strict"; +var $; +(function ($) { + const mapping = { + '<': '<', + '>': '>', + '"': '"', + '&': '&', + }; + function $mol_html_encode(text) { + return text.replace(/[&<">]/gi, str => mapping[str]); + } + $.$mol_html_encode = $mol_html_encode; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_button_copy extends $.$mol_button_copy { + data() { + return Object.fromEntries(this.blobs().map(blob => [blob.type, blob])); + } + html() { + return $mol_html_encode(this.text()); + } + attachments() { + return [new ClipboardItem(this.data())]; + } + click(event) { + const cb = $mol_wire_sync(this.$.$mol_dom_context.navigator.clipboard); + cb.writeText?.(this.text()); + cb.write?.(this.attachments()); + if (cb.writeText === undefined && cb.write === undefined) { + throw new Error("doesn't support copy to clipoard"); + } + } + } + __decorate([ + $mol_mem + ], $mol_button_copy.prototype, "html", null); + __decorate([ + $mol_mem + ], $mol_button_copy.prototype, "attachments", null); + $$.$mol_button_copy = $mol_button_copy; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text_code) = class $mol_text_code extends ($.$mol_stack) { + sidebar_showed(){ + return false; + } + render_visible_only(){ + return false; + } + row_numb(id){ + return 0; + } + row_text(id){ + return ""; + } + syntax(){ + return null; + } + uri_resolve(id){ + return ""; + } + highlight(){ + return ""; + } + Row(id){ + const obj = new this.$.$mol_text_code_row(); + (obj.numb_showed) = () => ((this.sidebar_showed())); + (obj.numb) = () => ((this.row_numb(id))); + (obj.text) = () => ((this.row_text(id))); + (obj.syntax) = () => ((this.syntax())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + rows(){ + return [(this.Row("0"))]; + } + Rows(){ + const obj = new this.$.$mol_list(); + (obj.render_visible_only) = () => ((this.render_visible_only())); + (obj.rows) = () => ((this.rows())); + return obj; + } + text_export(){ + return ""; + } + Copy(){ + const obj = new this.$.$mol_button_copy(); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_text_code_Copy_hint"))); + (obj.text) = () => ((this.text_export())); + return obj; + } + attr(){ + return {...(super.attr()), "mol_text_code_sidebar_showed": (this.sidebar_showed())}; + } + text(){ + return ""; + } + text_lines(){ + return []; + } + find_pos(id){ + return null; + } + uri_base(){ + return ""; + } + sub(){ + return [(this.Rows()), (this.Copy())]; + } + }; + ($mol_mem_key(($.$mol_text_code.prototype), "Row")); + ($mol_mem(($.$mol_text_code.prototype), "Rows")); + ($mol_mem(($.$mol_text_code.prototype), "Copy")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text_code extends $.$mol_text_code { + render_visible_only() { + return this.$.$mol_support_css_overflow_anchor(); + } + text_lines() { + return this.text().split('\n'); + } + rows() { + return this.text_lines().map((_, index) => this.Row(index + 1)); + } + row_text(index) { + return this.text_lines()[index - 1]; + } + row_numb(index) { + return index; + } + find_pos(offset) { + for (const [index, line] of this.text_lines().entries()) { + if (line.length >= offset) { + return this.Row(index + 1).find_pos(offset); + } + else { + offset -= line.length + 1; + } + } + return null; + } + sub() { + return [ + this.Rows(), + ...this.sidebar_showed() ? [this.Copy()] : [] + ]; + } + syntax() { + return this.$.$mol_syntax2_md_code; + } + uri_base() { + return $mol_dom_context.document.location.href; + } + uri_resolve(uri) { + if (/^(\w+script+:)+/.test(uri)) + return null; + try { + const url = new URL(uri, this.uri_base()); + return url.toString(); + } + catch (error) { + $mol_fail_log(error); + return null; + } + } + text_export() { + return this.text() + '\n'; + } + } + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "text_lines", null); + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "rows", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "row_text", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "find_pos", null); + __decorate([ + $mol_mem + ], $mol_text_code.prototype, "sub", null); + __decorate([ + $mol_mem_key + ], $mol_text_code.prototype, "uri_resolve", null); + $$.$mol_text_code = $mol_text_code; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + const { rem, px } = $mol_style_unit; + $mol_style_define($mol_text_code, { + whiteSpace: 'pre-wrap', + font: { + family: 'monospace', + }, + Rows: { + padding: $mol_gap.text, + }, + Row: { + font: { + family: 'inherit', + }, + }, + Copy: { + alignSelf: 'flex-start', + justifySelf: 'flex-start', + }, + '@': { + 'mol_text_code_sidebar_showed': { + true: { + $mol_text_code_row: { + margin: { + left: rem(1.75), + }, + }, + }, + }, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_textarea) = class $mol_textarea extends ($.$mol_stack) { + clickable(next){ + if(next !== undefined) return next; + return false; + } + sidebar_showed(){ + return false; + } + press(next){ + if(next !== undefined) return next; + return null; + } + hover(next){ + if(next !== undefined) return next; + return null; + } + value(next){ + if(next !== undefined) return next; + return ""; + } + hint(){ + return " "; + } + enabled(){ + return true; + } + spellcheck(){ + return true; + } + length_max(){ + return +Infinity; + } + selection(next){ + if(next !== undefined) return next; + return []; + } + bring(){ + return (this.Edit().bring()); + } + submit(next){ + if(next !== undefined) return next; + return null; + } + submit_with_ctrl(){ + return true; + } + Edit(){ + const obj = new this.$.$mol_textarea_edit(); + (obj.value) = (next) => ((this.value(next))); + (obj.hint) = () => ((this.hint())); + (obj.enabled) = () => ((this.enabled())); + (obj.spellcheck) = () => ((this.spellcheck())); + (obj.length_max) = () => ((this.length_max())); + (obj.selection) = (next) => ((this.selection(next))); + (obj.submit) = (next) => ((this.submit(next))); + (obj.submit_with_ctrl) = () => ((this.submit_with_ctrl())); + return obj; + } + row_numb(id){ + return 0; + } + highlight(){ + return ""; + } + View(){ + const obj = new this.$.$mol_text_code(); + (obj.text) = () => ((this.value())); + (obj.render_visible_only) = () => (false); + (obj.row_numb) = (id) => ((this.row_numb(id))); + (obj.sidebar_showed) = () => ((this.sidebar_showed())); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + attr(){ + return { + ...(super.attr()), + "mol_textarea_clickable": (this.clickable()), + "mol_textarea_sidebar_showed": (this.sidebar_showed()) + }; + } + event(){ + return {"keydown": (next) => (this.press(next)), "pointermove": (next) => (this.hover(next))}; + } + sub(){ + return [(this.Edit()), (this.View())]; + } + symbols_alt(){ + return { + "comma": "<", + "period": ">", + "dash": "−", + "equals": "≈", + "graveAccent": "́", + "forwardSlash": "÷", + "E": "€", + "V": "✔", + "X": "×", + "C": "©", + "P": "§", + "H": "₽", + "key0": "°", + "key8": "•", + "key2": "@", + "key3": "#", + "key4": "$", + "key6": "^", + "key7": "&", + "bracketOpen": "[", + "bracketClose": "]", + "slashBack": "|" + }; + } + symbols_alt_ctrl(){ + return {"space": " "}; + } + symbols_alt_shift(){ + return { + "V": "✅", + "X": "❌", + "O": "⭕", + "key1": "❗", + "key4": "💲", + "key7": "❓", + "comma": "«", + "period": "»", + "semicolon": "“", + "quoteSingle": "”", + "dash": "—", + "equals": "≠", + "graveAccent": "̱", + "bracketOpen": "{", + "bracketClose": "}" + }; + } + }; + ($mol_mem(($.$mol_textarea.prototype), "clickable")); + ($mol_mem(($.$mol_textarea.prototype), "press")); + ($mol_mem(($.$mol_textarea.prototype), "hover")); + ($mol_mem(($.$mol_textarea.prototype), "value")); + ($mol_mem(($.$mol_textarea.prototype), "selection")); + ($mol_mem(($.$mol_textarea.prototype), "submit")); + ($mol_mem(($.$mol_textarea.prototype), "Edit")); + ($mol_mem(($.$mol_textarea.prototype), "View")); + ($.$mol_textarea_edit) = class $mol_textarea_edit extends ($.$mol_string) { + dom_name(){ + return "textarea"; + } + enter(){ + return "enter"; + } + field(){ + return {...(super.field()), "scrollTop": 0}; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_textarea extends $.$mol_textarea { + indent_inc() { + let text = this.value(); + let [from, to] = this.selection(); + const rows = text.split('\n'); + let start = 0; + for (let i = 0; i < rows.length; ++i) { + let end = start + rows[i].length; + if (end >= from && start <= to) { + if (to === from || start !== to) { + rows[i] = '\t' + rows[i]; + to += 1; + end += 1; + } + } + start = end + 1; + } + this.value(rows.join('\n')); + this.selection([from + 1, to]); + } + indent_dec() { + let text = this.value(); + let [from, to] = this.selection(); + const rows = text.split('\n'); + let start = 0; + for (let i = 0; i < rows.length; ++i) { + const end = start + rows[i].length; + if (end >= from && start <= to && rows[i].startsWith('\t')) { + rows[i] = rows[i].slice(1); + to -= 1; + if (start < from) + from -= 1; + } + start = end + 1; + } + this.value(rows.join('\n')); + this.selection([from, to]); + } + symbol_insert(event) { + const symbol = event.shiftKey + ? this.symbols_alt_shift()[$mol_keyboard_code[event.keyCode]] + : event.ctrlKey + ? this.symbols_alt_ctrl()[$mol_keyboard_code[event.keyCode]] + : this.symbols_alt()[$mol_keyboard_code[event.keyCode]]; + if (!symbol) + return; + event.preventDefault(); + document.execCommand('insertText', false, symbol); + } + clickable(next) { + if (!this.enabled()) + return true; + return next ?? false; + } + hover(event) { + this.clickable(event.ctrlKey); + } + press(event) { + if (event.altKey) { + this.symbol_insert(event); + } + else { + switch (event.keyCode) { + case !event.shiftKey && $mol_keyboard_code.tab: + this.indent_inc(); + break; + case event.shiftKey && $mol_keyboard_code.tab: + this.indent_dec(); + break; + default: return; + } + event.preventDefault(); + } + } + row_numb(index) { + return index; + } + } + __decorate([ + $mol_mem + ], $mol_textarea.prototype, "clickable", null); + $$.$mol_textarea = $mol_textarea; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/textarea/textarea.view.css", "[mol_textarea] {\n\tflex: 1 0 auto;\n\tflex-direction: column;\n\tvertical-align: top;\n\tmin-height: max-content;\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n\tborder-radius: var(--mol_gap_round);\n\tfont-family: monospace;\n\tposition: relative;\n\ttab-size: 4;\n}\n\n[mol_textarea_view] {\n\tpointer-events: none;\n\twhite-space: inherit;\n\tfont-family: inherit;\n\ttab-size: inherit;\n\tuser-select: none;\n}\n\n[mol_textarea_view_copy] {\n\tpointer-events: all;\n}\n\n[mol_textarea_clickable] > [mol_textarea_view] {\n\tpointer-events: all;\n\tuser-select: auto;\n}\n\n[mol_textarea_clickable] > [mol_textarea_edit] {\n\tuser-select: none;\n}\n\n[mol_textarea_edit] {\n\tfont-family: inherit;\n\tpadding: var(--mol_gap_text);\n\tcolor: transparent !important;\n\tcaret-color: var(--mol_theme_text);\n\tresize: none;\n\ttext-align: inherit;\n\twhite-space: inherit;\n\tborder-radius: inherit;\n\toverflow-anchor: none;\n\tposition: absolute;\n\theight: 100%;\n\twidth: 100%;\n\ttab-size: inherit;\n}\n\n[mol_textarea_sidebar_showed] [mol_textarea_edit] {\n\tleft: 1.75rem;\n\twidth: calc( 100% - 1.75rem );\n}\n\n[mol_textarea_edit]:hover + [mol_textarea_view] {\n\tz-index: var(--mol_layer_hover);\n}\n\n[mol_textarea_edit]:focus + [mol_textarea_view] {\n\tz-index: var(--mol_layer_focus);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_labeler) = class $mol_labeler extends ($.$mol_list) { + label(){ + return [(this.title())]; + } + Label(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (32); + (obj.sub) = () => ((this.label())); + return obj; + } + content(){ + return []; + } + Content(){ + const obj = new this.$.$mol_view(); + (obj.minimal_height) = () => (24); + (obj.sub) = () => ((this.content())); + return obj; + } + rows(){ + return [(this.Label()), (this.Content())]; + } + }; + ($mol_mem(($.$mol_labeler.prototype), "Label")); + ($mol_mem(($.$mol_labeler.prototype), "Content")); + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/labeler/labeler.view.css", "[mol_labeler] {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: stretch;\n\tcursor: inherit;\n}\n\n[mol_labeler_label] {\n\tmin-height: 2rem;\n\tcolor: var(--mol_theme_shade);\n\tpadding: .5rem .75rem 0;\n\tgap: 0 var(--mol_gap_block);\n\tflex-wrap: wrap;\n}\n\n[mol_labeler_content] {\n\tdisplay: flex;\n\tpadding: var(--mol_gap_text);\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_form_field) = class $mol_form_field extends ($.$mol_labeler) { + name(){ + return ""; + } + bid(){ + return ""; + } + Bid(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.bid())]); + return obj; + } + control(){ + return null; + } + bids(){ + return []; + } + label(){ + return [(this.name()), (this.Bid())]; + } + content(){ + return [(this.control())]; + } + }; + ($mol_mem(($.$mol_form_field.prototype), "Bid")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_form_field extends $.$mol_form_field { + bid() { + return this.bids().filter(Boolean)[0] ?? ''; + } + } + __decorate([ + $mol_mem + ], $mol_form_field.prototype, "bid", null); + $$.$mol_form_field = $mol_form_field; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/form/field/field.view.css", "[mol_form_field] {\n\talign-items: stretch;\n}\n\n[mol_form_field_bid] {\n\tcolor: var(--mol_theme_focus);\n\tdisplay: inline-block;\n\ttext-shadow: 0 0;\n}\n\n[mol_form_field_content] {\n\tborder-radius: var(--mol_gap_round);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_float) = class $mol_float extends ($.$mol_view) { + style(){ + return {...(super.style()), "minHeight": "auto"}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/float/float.view.css", "[mol_float] {\n\tposition: sticky;\n\ttop: 0;\n\tleft: 0;\n\tz-index: var(--mol_layer_float);\n\topacity: 1;\n\ttransition: opacity .25s ease-in;\n\tdisplay: block;\n\tbackground: linear-gradient( var(--mol_theme_card), var(--mol_theme_card) ), var(--mol_theme_back);\n\tbox-shadow: 0 0 .5rem hsla(0,0%,0%,.25);\n}\n\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_check) = class $mol_check extends ($.$mol_button_minor) { + checked(next){ + if(next !== undefined) return next; + return false; + } + aria_checked(){ + return "false"; + } + aria_role(){ + return "checkbox"; + } + Icon(){ + return null; + } + title(){ + return ""; + } + Title(){ + const obj = new this.$.$mol_view(); + (obj.sub) = () => ([(this.title())]); + return obj; + } + label(){ + return [(this.Title())]; + } + attr(){ + return { + ...(super.attr()), + "mol_check_checked": (this.checked()), + "aria-checked": (this.aria_checked()), + "role": (this.aria_role()) + }; + } + sub(){ + return [(this.Icon()), (this.label())]; + } + }; + ($mol_mem(($.$mol_check.prototype), "checked")); + ($mol_mem(($.$mol_check.prototype), "Title")); + + +; +"use strict"; +var $; +(function ($) { + function $mol_maybe(value) { + return (value == null) ? [] : [value]; + } + $.$mol_maybe = $mol_maybe; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/check/check.css", "[mol_check] {\n\tflex: 0 0 auto;\n\tjustify-content: flex-start;\n\talign-content: center;\n\t/* align-items: flex-start; */\n\tborder: none;\n\tfont-weight: inherit;\n\tbox-shadow: none;\n\ttext-align: left;\n\tdisplay: inline-flex;\n\tflex-wrap: nowrap;\n}\n\n[mol_check_title] {\n\tflex-shrink: 1;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_check extends $.$mol_check { + click(next) { + if (next?.defaultPrevented) + return; + this.checked(!this.checked()); + if (next) + next.preventDefault(); + } + sub() { + return [ + ...$mol_maybe(this.Icon()), + ...this.label(), + ]; + } + label() { + return this.title() ? super.label() : []; + } + aria_checked() { + return String(this.checked()); + } + } + $$.$mol_check = $mol_check; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_icon_chevron) = class $mol_icon_chevron extends ($.$mol_icon) { + path(){ + return "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_check_expand) = class $mol_check_expand extends ($.$mol_check) { + level_style(){ + return "0px"; + } + expanded(next){ + if(next !== undefined) return next; + return false; + } + expandable(){ + return false; + } + Icon(){ + const obj = new this.$.$mol_icon_chevron(); + return obj; + } + level(){ + return 0; + } + style(){ + return {...(super.style()), "paddingLeft": (this.level_style())}; + } + checked(next){ + return (this.expanded(next)); + } + enabled(){ + return (this.expandable()); + } + }; + ($mol_mem(($.$mol_check_expand.prototype), "expanded")); + ($mol_mem(($.$mol_check_expand.prototype), "Icon")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_check_expand extends $.$mol_check_expand { + level_style() { + return `${this.level() * 1 - 1}rem`; + } + expandable() { + return this.expanded() !== null; + } + } + $$.$mol_check_expand = $mol_check_expand; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/check/expand/expand.view.css", "[mol_check_expand] {\n\tmin-width: 20px;\n}\n\n:where([mol_check_expand][disabled]) [mol_check_expand_icon] {\n\tvisibility: hidden;\n}\n\n[mol_check_expand_icon] {\n\tbox-shadow: none;\n}\n[mol_check_expand_icon] {\n\ttransform: rotateZ(0deg);\n}\n\n:where([mol_check_checked]) [mol_check_expand_icon] {\n\ttransform: rotateZ(90deg);\n}\n\n[mol_check_expand_icon] {\n\tvertical-align: text-top;\n}\n\n[mol_check_expand_label] {\n\tmargin-left: 0;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_grid) = class $mol_grid extends ($.$mol_view) { + rows(){ + return []; + } + Table(){ + const obj = new this.$.$mol_grid_table(); + (obj.sub) = () => ((this.rows())); + return obj; + } + head_cells(){ + return []; + } + cells(id){ + return []; + } + cell_content(id){ + return []; + } + cell_content_text(id){ + return (this.cell_content(id)); + } + cell_content_number(id){ + return (this.cell_content(id)); + } + col_head_content(id){ + return []; + } + cell_level(id){ + return 0; + } + cell_expanded(id, next){ + if(next !== undefined) return next; + return false; + } + needle(){ + return ""; + } + cell_value(id){ + return ""; + } + Cell_dimmer(id){ + const obj = new this.$.$mol_dimmer(); + (obj.needle) = () => ((this.needle())); + (obj.haystack) = () => ((this.cell_value(id))); + return obj; + } + row_height(){ + return 32; + } + row_ids(){ + return []; + } + row_id(id){ + return null; + } + col_ids(){ + return []; + } + records(){ + return {}; + } + record(id){ + return null; + } + hierarchy(){ + return null; + } + hierarchy_col(){ + return ""; + } + minimal_width(){ + return 0; + } + sub(){ + return [(this.Head()), (this.Table())]; + } + Head(){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.head_cells())); + return obj; + } + Row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.minimal_height) = () => ((this.row_height())); + (obj.minimal_width) = () => ((this.minimal_width())); + (obj.cells) = () => ((this.cells(id))); + return obj; + } + Cell(id){ + const obj = new this.$.$mol_view(); + return obj; + } + cell(id){ + return null; + } + Cell_text(id){ + const obj = new this.$.$mol_grid_cell(); + (obj.sub) = () => ((this.cell_content_text(id))); + return obj; + } + Cell_number(id){ + const obj = new this.$.$mol_grid_number(); + (obj.sub) = () => ((this.cell_content_number(id))); + return obj; + } + Col_head(id){ + const obj = new this.$.$mol_float(); + (obj.dom_name) = () => ("th"); + (obj.sub) = () => ((this.col_head_content(id))); + return obj; + } + Cell_branch(id){ + const obj = new this.$.$mol_check_expand(); + (obj.level) = () => ((this.cell_level(id))); + (obj.label) = () => ((this.cell_content(id))); + (obj.expanded) = (next) => ((this.cell_expanded(id, next))); + return obj; + } + Cell_content(id){ + return [(this.Cell_dimmer(id))]; + } + }; + ($mol_mem(($.$mol_grid.prototype), "Table")); + ($mol_mem_key(($.$mol_grid.prototype), "cell_expanded")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_dimmer")); + ($mol_mem(($.$mol_grid.prototype), "Head")); + ($mol_mem_key(($.$mol_grid.prototype), "Row")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_text")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_number")); + ($mol_mem_key(($.$mol_grid.prototype), "Col_head")); + ($mol_mem_key(($.$mol_grid.prototype), "Cell_branch")); + ($.$mol_grid_table) = class $mol_grid_table extends ($.$mol_list) {}; + ($.$mol_grid_row) = class $mol_grid_row extends ($.$mol_view) { + cells(){ + return []; + } + sub(){ + return (this.cells()); + } + }; + ($.$mol_grid_cell) = class $mol_grid_cell extends ($.$mol_view) { + minimal_height(){ + return 40; + } + }; + ($.$mol_grid_number) = class $mol_grid_number extends ($.$mol_grid_cell) {}; + + +; +"use strict"; +var $; +(function ($) { + class $mol_state_session extends $mol_object { + static 'native()'; + 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; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_grid extends $.$mol_grid { + head_cells() { + return this.col_ids().map(colId => this.Col_head(colId)); + } + col_head_content(colId) { + return [colId]; + } + rows() { + return this.row_ids().map(id => this.Row(id)); + } + cells(row_id) { + return this.col_ids().map(col_id => this.Cell({ row: row_id, col: col_id })); + } + col_type(col_id) { + if (col_id === this.hierarchy_col()) + return 'branch'; + const rowFirst = this.row_id(0); + const val = this.record(rowFirst[rowFirst.length - 1])[col_id]; + if (typeof val === 'number') + return 'number'; + return 'text'; + } + Cell(id) { + switch (this.col_type(id.col).valueOf()) { + case 'branch': return this.Cell_branch(id); + case 'number': return this.Cell_number(id); + } + return this.Cell_text(id); + } + cell_content(id) { + return [this.record(id.row[id.row.length - 1])[id.col]]; + } + cell_content_text(id) { + return this.cell_content(id).map(val => typeof val === 'object' ? JSON.stringify(val) : val); + } + records() { + return []; + } + record(id) { + return this.records()[id]; + } + record_ids() { + return Object.keys(this.records()); + } + row_id(index) { + return this.row_ids().slice(index, index + 1).valueOf()[0]; + } + col_ids() { + const rowFirst = this.row_id(0); + if (rowFirst === void 0) + return []; + const record = this.record(rowFirst[rowFirst.length - 1]); + if (!record) + return []; + return Object.keys(record); + } + hierarchy() { + const hierarchy = {}; + const root = hierarchy[''] = { + id: '', + parent: null, + sub: [], + }; + this.record_ids().map(id => { + root.sub.push(hierarchy[id] = { + id, + parent: root, + sub: [], + }); + }); + return hierarchy; + } + row_sub_ids(row) { + return this.hierarchy()[row[row.length - 1]].sub.map(child => row.concat(child.id)); + } + row_root_id() { + return ['']; + } + cell_level(id) { + return id.row.length - 1; + } + row_ids() { + const next = []; + const add = (row) => { + next.push(row); + if (this.row_expanded(row)) { + this.row_sub_ids(row).forEach(child => add(child)); + } + }; + this.row_sub_ids(this.row_root_id()).forEach(child => add(child)); + return next; + } + row_expanded(row_id, next) { + if (!this.row_sub_ids(row_id).length) + return null; + const key = `row_expanded(${JSON.stringify(row_id)})`; + const next2 = $mol_state_session.value(key, next); + return (next2 == null) ? this.row_expanded_default(row_id) : next2; + } + row_expanded_default(row_id) { + return true; + } + cell_expanded(id, next) { + return this.row_expanded(id.row, next); + } + } + __decorate([ + $mol_mem + ], $mol_grid.prototype, "head_cells", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "rows", null); + __decorate([ + $mol_mem_key + ], $mol_grid.prototype, "col_type", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "record_ids", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "hierarchy", null); + __decorate([ + $mol_mem + ], $mol_grid.prototype, "row_ids", null); + $$.$mol_grid = $mol_grid; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/grid/grid.view.css", "[mol_grid] {\n\tdisplay: block;\n\tflex: 0 1 auto;\n\tposition: relative;\n\toverflow-x: auto;\n}\n\n[mol_grid_gap] {\n\tposition: absolute;\n\tpadding: .1px;\n\ttop: 0;\n\ttransform: translateZ(0);\n}\n\n[mol_grid_table] {\n\tborder-spacing: 0;\n\tdisplay: table-row-group;\n\tposition: relative;\n}\n\n[mol_grid_table] > * {\n\tdisplay: table-row;\n\ttransition: none;\n}\n\n[mol_grid_head] > *,\n[mol_grid_table] > * > * {\n\tdisplay: table-cell;\n\tpadding: var(--mol_gap_text);\n\twhite-space: nowrap;\n\tvertical-align: middle;\n\tbox-shadow: inset 1px 1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_row]:where(:first-child) > * {\n\tbox-shadow: inset 1px 0 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_table] > * > *:where(:first-child) {\n\tbox-shadow: inset 0px 1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_head] > * {\n\tbox-shadow: inset 1px -1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_head] > *:where(:first-child) {\n\tbox-shadow: inset 0px -1px 0 0 var(--mol_theme_line);\n}\n\n[mol_grid_table] > [mol_grid_row]:where(:first-child) > *:where(:first-child) {\n\tbox-shadow: none;\n}\t\n\n[mol_grid_head] {\n\tdisplay: table-row;\n\ttransform: none !important;\n}\n\n/* [mol_grid_cell_number] {\n\ttext-align: right;\n} */\n\n[mol_grid_col_head] {\n\tfont-weight: inherit;\n\ttext-align: inherit;\n\tdisplay: table-cell;\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_grid_cell_dimmer] {\n\tdisplay: inline-block;\n\tvertical-align: inherit;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_image) = class $mol_image extends ($.$mol_view) { + uri(){ + return ""; + } + loading(){ + return "eager"; + } + decoding(){ + return "async"; + } + cors(){ + return null; + } + natural_width(){ + return 0; + } + natural_height(){ + return 0; + } + load(next){ + if(next !== undefined) return next; + return null; + } + dom_name(){ + return "img"; + } + field(){ + return { + ...(super.field()), + "src": (this.uri()), + "alt": (this.title()), + "loading": (this.loading()), + "decoding": (this.decoding()), + "crossOrigin": (this.cors()) + }; + } + attr(){ + return { + ...(super.attr()), + "width": (this.natural_width()), + "height": (this.natural_height()) + }; + } + event(){ + return {"load": (next) => (this.load(next))}; + } + minimal_width(){ + return 16; + } + minimal_height(){ + return 16; + } + }; + ($mol_mem(($.$mol_image.prototype), "load")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_image extends $.$mol_image { + natural_width(next) { + const dom = this.dom_node(); + if (dom.naturalWidth) + return dom.naturalWidth; + const found = this.uri().match(/\bwidth=(\d+)/); + return found ? Number(found[1]) : null; + } + natural_height(next) { + const dom = this.dom_node(); + if (dom.naturalHeight) + return dom.naturalHeight; + const found = this.uri().match(/\bheight=(\d+)/); + return found ? Number(found[1]) : null; + } + load() { + this.natural_width(null); + this.natural_height(null); + } + } + __decorate([ + $mol_mem + ], $mol_image.prototype, "natural_width", null); + __decorate([ + $mol_mem + ], $mol_image.prototype, "natural_height", null); + $$.$mol_image = $mol_image; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/image/image.view.css", "[mol_image] {\n\tborder-radius: var(--mol_gap_round);\n\toverflow: hidden;\n\tflex: 0 1 auto;\n\tmax-width: 100%;\n\tobject-fit: cover;\n\theight: fit-content;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_link_iconed) = class $mol_link_iconed extends ($.$mol_link) { + icon(){ + return ""; + } + Icon(){ + const obj = new this.$.$mol_image(); + (obj.uri) = () => ((this.icon())); + (obj.title) = () => (""); + return obj; + } + title(){ + return (this.uri()); + } + sub(){ + return [(this.Icon())]; + } + content(){ + return [(this.title())]; + } + host(){ + return ""; + } + }; + ($mol_mem(($.$mol_link_iconed.prototype), "Icon")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_link_iconed extends $.$mol_link_iconed { + icon() { + return `https://favicon.yandex.net/favicon/${this.host()}?color=0,0,0,0&size=32&stub=1`; + } + host() { + const base = this.$.$mol_state_arg.href(); + const url = new URL(this.uri(), base); + return url.hostname; + } + title() { + const uri = this.uri(); + const host = this.host(); + const suffix = (host ? uri.split(this.host(), 2)[1] : uri)?.replace(/^[\/\?#!]+/, ''); + return decodeURIComponent(suffix || host).replace(/^\//, ' '); + } + sub() { + return [ + ...this.host() ? [this.Icon()] : [], + ...this.content() ? [' ', ...this.content()] : [], + ]; + } + } + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "icon", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "host", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "title", null); + __decorate([ + $mol_mem + ], $mol_link_iconed.prototype, "sub", null); + $$.$mol_link_iconed = $mol_link_iconed; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/link/iconed/iconed.view.css", "[mol_link_iconed] {\n\talign-items: baseline;\n\tdisplay: inline-flex;\n\tpadding: var(--mol_gap_text);\n}\n\n[mol_link_iconed_icon] {\n\tbox-shadow: none;\n\theight: 1.5em;\n\twidth: 1em;\n\tflex: 0 0 auto;\n\tdisplay: inline-block;\n\talign-self: normal;\n\tvertical-align: top;\n\tborder-radius: 0;\n\tobject-fit: scale-down;\n\topacity: .75;\n}\n\n[mol_theme=\"$mol_theme_dark\"] [mol_link_iconed_icon] {\n\tfilter: var(--mol_theme_image);\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_embed_native) = class $mol_embed_native extends ($.$mol_scroll) { + mime(){ + return ""; + } + title(){ + return ""; + } + Fallback(){ + const obj = new this.$.$mol_link(); + (obj.uri) = () => ((this.uri())); + (obj.sub) = () => ([(this.title())]); + return obj; + } + uri_change(next){ + if(next !== undefined) return next; + return null; + } + uri(next){ + if(next !== undefined) return next; + return ""; + } + dom_name(){ + return "object"; + } + window(){ + return null; + } + attr(){ + return { + ...(super.attr()), + "data": (this.uri()), + "type": (this.mime()) + }; + } + sub(){ + return [(this.Fallback())]; + } + message(){ + return {"hashchange": (next) => (this.uri_change(next))}; + } + }; + ($mol_mem(($.$mol_embed_native.prototype), "Fallback")); + ($mol_mem(($.$mol_embed_native.prototype), "uri_change")); + ($mol_mem(($.$mol_embed_native.prototype), "uri")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_native extends $.$mol_embed_native { + window() { + $mol_wire_solid(); + return $mol_wire_sync(this).load(this.dom_node_actual()); + } + load(frame) { + return new Promise((done, fail) => { + frame.onload = () => { + try { + if (frame.contentWindow.location.href === 'about:blank') { + return; + } + } + catch { } + done(frame.contentWindow); + }; + frame.onerror = (event) => { + fail(typeof event === 'string' ? new Error(event) : event.error || event); + }; + }); + } + uri_resource() { + return this.uri().replace(/#.*/, ''); + } + message_listener() { + return new $mol_dom_listener($mol_dom_context, 'message', $mol_wire_async(this).message_receive); + } + message_receive(event) { + if (!event) + return; + if (event.source !== this.window()) + return; + if (!Array.isArray(event.data)) + return; + this.message()[event.data[0]]?.(event); + } + uri_change(event) { + this.$.$mol_wait_timeout(1000); + this.uri(event.data[1]); + } + auto() { + return [ + this.message_listener(), + this.window(), + ]; + } + } + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "window", null); + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "uri_resource", null); + __decorate([ + $mol_mem + ], $mol_embed_native.prototype, "message_listener", null); + $$.$mol_embed_native = $mol_embed_native; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/embed/native/native.view.css", "[mol_embed_native] {\n\tmax-width: 100%;\n\tmax-height: 100vh;\n\tobject-fit: cover;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tobject-position: top left;\n\tborder-radius: var(--mol_gap_round);\n\taspect-ratio: 4/3;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_icon_youtube) = class $mol_icon_youtube extends ($.$mol_icon) { + path(){ + return "M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z"; + } + }; + + +; +"use strict"; + +; + ($.$mol_frame) = class $mol_frame extends ($.$mol_embed_native) { + uri(next){ + if(next !== undefined) return next; + return "about:config"; + } + html(){ + return null; + } + allow(){ + return ""; + } + dom_name(){ + return "iframe"; + } + attr(){ + return { + ...(super.attr()), + "data": null, + "type": null, + "src": (this.uri()), + "srcdoc": (this.html()), + "allow": (this.allow()) + }; + } + fullscreen(){ + return true; + } + accelerometer(){ + return true; + } + autoplay(){ + return true; + } + encription(){ + return true; + } + gyroscope(){ + return true; + } + pip(){ + return true; + } + clipboard_read(){ + return true; + } + clipboard_write(){ + return true; + } + }; + ($mol_mem(($.$mol_frame.prototype), "uri")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_frame extends $.$mol_frame { + window() { + return super.window(); + } + allow() { + return [ + ...this.fullscreen() ? ['fullscreen'] : [], + ...this.accelerometer() ? ['accelerometer'] : [], + ...this.autoplay() ? ['autoplay'] : [], + ...this.encription() ? ['encrypted-media'] : [], + ...this.gyroscope() ? ['gyroscope'] : [], + ...this.pip() ? ['picture-in-picture'] : [], + ...this.clipboard_read() ? [`clipboard-read ${this.uri()}`] : [], + ...this.clipboard_write() ? [`clipboard-write ${this.uri()}`] : [], + ].join('; '); + } + } + $$.$mol_frame = $mol_frame; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_define($mol_frame, { + border: { + style: 'none', + }, + maxHeight: $mol_style_unit.vh(100), + }); +})($ || ($ = {})); + +; + ($.$mol_embed_youtube) = class $mol_embed_youtube extends ($.$mol_check) { + active(next){ + if(next !== undefined) return next; + return false; + } + title(){ + return ""; + } + video_preview(){ + return ""; + } + Image(){ + const obj = new this.$.$mol_image(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.video_preview())); + return obj; + } + Hint(){ + const obj = new this.$.$mol_icon_youtube(); + return obj; + } + video_embed(){ + return ""; + } + Frame(){ + const obj = new this.$.$mol_frame(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.video_embed())); + return obj; + } + uri(){ + return ""; + } + video_id(){ + return ""; + } + checked(next){ + return (this.active(next)); + } + sub(){ + return [ + (this.Image()), + (this.Hint()), + (this.Frame()) + ]; + } + }; + ($mol_mem(($.$mol_embed_youtube.prototype), "active")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Image")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Hint")); + ($mol_mem(($.$mol_embed_youtube.prototype), "Frame")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_youtube extends $.$mol_embed_youtube { + video_embed() { + return `https://www.youtube.com/embed/${encodeURIComponent(this.video_id())}?autoplay=1&loop=1`; + } + video_id() { + return this.uri().match(/^https\:\/\/www\.youtube\.com\/(?:embed\/|shorts\/|watch\?v=)([^\/&?#]+)/)?.[1] + ?? this.uri().match(/^https\:\/\/youtu\.be\/([^\/&?#]+)/)?.[1] + ?? 'about:blank'; + } + video_preview() { + return `https://i.ytimg.com/vi/${this.video_id()}/sddefault.jpg`; + } + sub() { + return this.active() + ? [this.Frame()] + : [this.Image(), this.Hint()]; + } + } + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_embed", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_id", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "video_preview", null); + __decorate([ + $mol_mem + ], $mol_embed_youtube.prototype, "sub", null); + $$.$mol_embed_youtube = $mol_embed_youtube; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/embed/youtube/youtube.view.css", "[mol_embed_youtube] {\n\tpadding: 0;\n\tmax-width: 100%;\n}\n\n[mol_embed_youtube_image] {\n\tflex: auto 1 1;\n}\n\n[mol_embed_youtube_hint] {\n\tposition: absolute;\n left: 50%;\n top: 50%;\n width: 50%;\n height: 50%;\n opacity: 0.3;\n transform: translate(-50%, -50%);\n}\n\n[mol_embed_youtube]:hover [mol_embed_youtube_hint] {\n\topacity: .6;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_embed_any) = class $mol_embed_any extends ($.$mol_view) { + title(){ + return ""; + } + uri(){ + return ""; + } + Image(){ + const obj = new this.$.$mol_image(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + Object(){ + const obj = new this.$.$mol_embed_native(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + Youtube(){ + const obj = new this.$.$mol_embed_youtube(); + (obj.title) = () => ((this.title())); + (obj.uri) = () => ((this.uri())); + return obj; + } + }; + ($mol_mem(($.$mol_embed_any.prototype), "Image")); + ($mol_mem(($.$mol_embed_any.prototype), "Object")); + ($mol_mem(($.$mol_embed_any.prototype), "Youtube")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_embed_any extends $.$mol_embed_any { + type() { + try { + const uri = this.uri(); + if (/\b(png|gif|jpg|jpeg|jfif|webp|svg)\b/.test(uri)) + return 'image'; + if (/^https:\/\/www\.youtube\.com\//.test(uri)) + return 'youtube'; + if (/^https:\/\/youtu\.be\//.test(uri)) + return 'youtube'; + } + catch (error) { + $mol_fail_log(error); + return 'image'; + } + return 'object'; + } + sub() { + switch (this.type()) { + case 'image': return [this.Image()]; + case 'youtube': return [this.Youtube()]; + default: return [this.Object()]; + } + } + } + __decorate([ + $mol_mem + ], $mol_embed_any.prototype, "type", null); + __decorate([ + $mol_mem + ], $mol_embed_any.prototype, "sub", null); + $$.$mol_embed_any = $mol_embed_any; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$mol_text) = class $mol_text extends ($.$mol_list) { + auto_scroll(){ + return null; + } + block_content(id){ + return []; + } + uri_resolve(id){ + return ""; + } + quote_text(id){ + return ""; + } + highlight(){ + return ""; + } + list_type(id){ + return "-"; + } + list_text(id){ + return ""; + } + header_level(id){ + return 1; + } + header_arg(id){ + return {}; + } + pre_text(id){ + return ""; + } + code_sidebar_showed(){ + return true; + } + pre_sidebar_showed(){ + return (this.code_sidebar_showed()); + } + table_head_cells(id){ + return []; + } + table_rows(id){ + return []; + } + table_cells(id){ + return []; + } + table_cell_text(id){ + return ""; + } + grid_rows(id){ + return []; + } + grid_cells(id){ + return []; + } + grid_cell_text(id){ + return ""; + } + line_text(id){ + return ""; + } + line_type(id){ + return ""; + } + line_content(id){ + return []; + } + code_syntax(){ + return null; + } + link_uri(id){ + return ""; + } + link_host(id){ + return ""; + } + uri_base(){ + return ""; + } + text(){ + return ""; + } + param(){ + return ""; + } + flow_tokens(){ + return []; + } + block_text(id){ + return ""; + } + auto(){ + return [(this.auto_scroll())]; + } + Paragraph(id){ + const obj = new this.$.$mol_paragraph(); + (obj.sub) = () => ((this.block_content(id))); + return obj; + } + Quote(id){ + const obj = new this.$.$mol_text(); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.quote_text(id))); + (obj.highlight) = () => ((this.highlight())); + (obj.auto_scroll) = () => (null); + return obj; + } + List(id){ + const obj = new this.$.$mol_text_list(); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.type) = () => ((this.list_type(id))); + (obj.text) = () => ((this.list_text(id))); + (obj.highlight) = () => ((this.highlight())); + return obj; + } + item_index(id){ + return 0; + } + Header(id){ + const obj = new this.$.$mol_text_header(); + (obj.minimal_height) = () => (40); + (obj.level) = () => ((this.header_level(id))); + (obj.content) = () => ((this.block_content(id))); + (obj.arg) = () => ((this.header_arg(id))); + return obj; + } + Pre(id){ + const obj = new this.$.$mol_text_code(); + (obj.text) = () => ((this.pre_text(id))); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.sidebar_showed) = () => ((this.pre_sidebar_showed())); + return obj; + } + Cut(id){ + const obj = new this.$.$mol_view(); + (obj.dom_name) = () => ("hr"); + return obj; + } + Table(id){ + const obj = new this.$.$mol_grid(); + (obj.head_cells) = () => ((this.table_head_cells(id))); + (obj.rows) = () => ((this.table_rows(id))); + return obj; + } + Table_row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.table_cells(id))); + return obj; + } + Table_cell(id){ + const obj = new this.$.$mol_text(); + (obj.auto_scroll) = () => (null); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.table_cell_text(id))); + return obj; + } + Grid(id){ + const obj = new this.$.$mol_grid(); + (obj.rows) = () => ((this.grid_rows(id))); + return obj; + } + Grid_row(id){ + const obj = new this.$.$mol_grid_row(); + (obj.cells) = () => ((this.grid_cells(id))); + return obj; + } + Grid_cell(id){ + const obj = new this.$.$mol_text(); + (obj.auto_scroll) = () => (null); + (obj.highlight) = () => ((this.highlight())); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.text) = () => ((this.grid_cell_text(id))); + return obj; + } + String(id){ + const obj = new this.$.$mol_dimmer(); + (obj.dom_name) = () => ("span"); + (obj.needle) = () => ((this.highlight())); + (obj.haystack) = () => ((this.line_text(id))); + return obj; + } + Span(id){ + const obj = new this.$.$mol_text_span(); + (obj.dom_name) = () => ("span"); + (obj.type) = () => ((this.line_type(id))); + (obj.sub) = () => ((this.line_content(id))); + return obj; + } + Code_line(id){ + const obj = new this.$.$mol_text_code_row(); + (obj.numb_showed) = () => (false); + (obj.highlight) = () => ((this.highlight())); + (obj.text) = () => ((this.line_text(id))); + (obj.uri_resolve) = (id) => ((this.uri_resolve(id))); + (obj.syntax) = () => ((this.code_syntax())); + return obj; + } + Link(id){ + const obj = new this.$.$mol_link_iconed(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.content) = () => ((this.line_content(id))); + return obj; + } + Link_http(id){ + const obj = new this.$.$mol_link_iconed(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.content) = () => ([(this.link_host(id))]); + return obj; + } + Embed(id){ + const obj = new this.$.$mol_embed_any(); + (obj.uri) = () => ((this.link_uri(id))); + (obj.title) = () => ((this.line_text(id))); + return obj; + } + }; + ($mol_mem_key(($.$mol_text.prototype), "Paragraph")); + ($mol_mem_key(($.$mol_text.prototype), "Quote")); + ($mol_mem_key(($.$mol_text.prototype), "List")); + ($mol_mem_key(($.$mol_text.prototype), "Header")); + ($mol_mem_key(($.$mol_text.prototype), "Pre")); + ($mol_mem_key(($.$mol_text.prototype), "Cut")); + ($mol_mem_key(($.$mol_text.prototype), "Table")); + ($mol_mem_key(($.$mol_text.prototype), "Table_row")); + ($mol_mem_key(($.$mol_text.prototype), "Table_cell")); + ($mol_mem_key(($.$mol_text.prototype), "Grid")); + ($mol_mem_key(($.$mol_text.prototype), "Grid_row")); + ($mol_mem_key(($.$mol_text.prototype), "Grid_cell")); + ($mol_mem_key(($.$mol_text.prototype), "String")); + ($mol_mem_key(($.$mol_text.prototype), "Span")); + ($mol_mem_key(($.$mol_text.prototype), "Code_line")); + ($mol_mem_key(($.$mol_text.prototype), "Link")); + ($mol_mem_key(($.$mol_text.prototype), "Link_http")); + ($mol_mem_key(($.$mol_text.prototype), "Embed")); + ($.$mol_text_header) = class $mol_text_header extends ($.$mol_paragraph) { + arg(){ + return {}; + } + content(){ + return []; + } + Link(){ + const obj = new this.$.$mol_link(); + (obj.arg) = () => ((this.arg())); + (obj.hint) = () => ((this.$.$mol_locale.text("$mol_text_header_Link_hint"))); + (obj.sub) = () => ((this.content())); + return obj; + } + level(){ + return 1; + } + sub(){ + return [(this.Link())]; + } + }; + ($mol_mem(($.$mol_text_header.prototype), "Link")); + ($.$mol_text_span) = class $mol_text_span extends ($.$mol_paragraph) { + type(){ + return ""; + } + dom_name(){ + return "span"; + } + attr(){ + return {...(super.attr()), "mol_text_type": (this.type())}; + } + }; + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_text extends $.$mol_text { + flow_tokens() { + const tokens = []; + this.$.$mol_syntax2_md_flow.tokenize(this.text(), (name, found, chunks) => tokens.push({ name, found, chunks })); + return tokens; + } + block_type(index) { + return this.flow_tokens()[index].name; + } + rows() { + return this.flow_tokens().map(({ name }, index) => { + switch (name) { + case 'quote': return this.Quote(index); + case 'header': return this.Header(index); + case 'list': return this.List(index); + case 'code': return this.Pre(index); + case 'code-indent': return this.Pre(index); + case 'table': return this.Table(index); + case 'grid': return this.Grid(index); + case 'cut': return this.Cut(index); + default: return this.Paragraph(index); + } + }); + } + param() { + return this.toString().replace(/^.*?[\)>]\./, '').replace(/[(<>)]/g, ''); + } + header_level(index) { + return this.flow_tokens()[index].chunks[0].length; + } + header_arg(index) { + return { + [this.param()]: this.block_text(index) + }; + } + list_type(index) { + return this.flow_tokens()[index].chunks[1] ?? ''; + } + item_index(index) { + return this.flow_tokens().slice(0, index).filter(token => token.name === 'block').length + 1; + } + pre_text(index) { + const token = this.flow_tokens()[index]; + return (token.chunks[2] ?? token.chunks[0].replace(/^(\t| (?:\+\+|--|\*\*| ))/gm, '')).replace(/[\n\r]*$/, ''); + } + quote_text(index) { + return this.flow_tokens()[index].chunks[0].replace(/^[>"] /mg, ''); + } + list_text(index) { + return this.flow_tokens()[index].chunks[0].replace(/^([-*+]|(?:\d+[\.\)])+) ?/mg, '').replace(/^ ?/mg, ''); + } + cell_content(indexBlock) { + return this.flow_tokens()[indexBlock].chunks[0] + .split(/\r?\n/g) + .filter(row => row && !/\|--/.test(row)) + .map((row, rowId) => { + return row.split(/\|/g) + .filter(cell => cell) + .map((cell, cellId) => cell.trim()); + }); + } + table_rows(blockId) { + return this.cell_content(blockId) + .slice(1) + .map((row, rowId) => this.Table_row({ block: blockId, row: rowId + 1 })); + } + table_head_cells(blockId) { + return this.cell_content(blockId)[0] + .map((cell, cellId) => this.Table_cell({ block: blockId, row: 0, cell: cellId })); + } + table_cells(id) { + return this.cell_content(id.block)[id.row] + .map((cell, cellId) => this.Table_cell({ block: id.block, row: id.row, cell: cellId })); + } + table_cell_text(id) { + return this.cell_content(id.block)[id.row][id.cell]; + } + grid_content(indexBlock) { + return [...this.flow_tokens()[indexBlock].chunks[0].match(/(?:^! .*?$\r?\n?)+(?:^ +! .*?$\r?\n?)*/gm)] + .map((row, rowId) => { + const cells = []; + for (const line of row.trim().split(/\r?\n/)) { + const [_, indent, content] = /^( *)! (.*)/.exec(line); + const col = Math.ceil(indent.length / 2); + cells[col] = (cells[col] ? cells[col] + '\n' : '') + content; + } + return cells; + }); + } + grid_rows(blockId) { + return this.grid_content(blockId) + .map((row, rowId) => this.Grid_row({ block: blockId, row: rowId })); + } + grid_cells(id) { + return this.grid_content(id.block)[id.row] + .map((cell, cellId) => this.Grid_cell({ block: id.block, row: id.row, cell: cellId })); + } + grid_cell_text(id) { + return this.grid_content(id.block)[id.row][id.cell]; + } + uri_base() { + return $mol_dom_context.document.location.href; + } + uri_base_abs() { + return new URL(this.uri_base(), $mol_dom_context.document.location.href); + } + uri_resolve(uri) { + if (/^(\w+script+:)+/.test(uri)) + return null; + if (/^#\!/.test(uri)) { + const params = {}; + for (const chunk of uri.slice(2).split(this.$.$mol_state_arg.separator)) { + if (!chunk) + continue; + const vals = chunk.split('=').map(decodeURIComponent); + params[vals.shift()] = vals.join('='); + } + return this.$.$mol_state_arg.link(params); + } + try { + const url = new URL(uri, this.uri_base_abs()); + return url.toString(); + } + catch (error) { + $mol_fail_log(error); + return null; + } + } + code_syntax() { + return this.$.$mol_syntax2_md_code; + } + block_text(index) { + const token = this.flow_tokens()[index]; + switch (token.name) { + case 'header': return token.chunks[2]; + default: return token.chunks[0]; + } + } + block_content(index) { + return this.line_content([index]); + } + line_tokens(path) { + const tokens = []; + this.$.$mol_syntax2_md_line.tokenize(this.line_text(path), (name, found, chunks) => tokens.push({ name, found, chunks })); + return tokens; + } + line_token(path) { + const tokens = this.line_tokens(path.slice(0, path.length - 1)); + return tokens[path[path.length - 1]]; + } + line_type(path) { + return this.line_token(path).name; + } + line_text(path) { + if (path.length === 1) + return this.block_text(path[0]); + const { name, found, chunks } = this.line_token(path); + switch (name) { + case 'link': return chunks[0] || chunks[1].replace(/^.*?\/\/|\/.*$/g, ''); + case 'text-link': return chunks[0] || chunks[1].replace(/^.*?\/\/|\/.*$/g, ''); + default: return (chunks[0] || chunks[1] || chunks[2]) ?? found; + } + } + line_content(path) { + return this.line_tokens(path).map(({ name, chunks }, index) => { + const path2 = [...path, index]; + switch (name) { + case 'embed': return this.Embed(path2); + case 'link': return this.Link(path2); + case 'text-link-http': return this.Link_http(path2); + case 'text-link': return this.Link(path2); + case 'image-link': return this.Embed(path2); + case 'code': return this.Code_line(path2); + case '': return this.String(path2); + default: return this.Span(path2); + } + }); + } + link_uri(path) { + const token = this.line_token(path); + const uri = this.uri_resolve(token.chunks[1] ?? token.found); + if (!uri) + throw new Error('Bad link'); + return uri; + } + link_host(path) { + return this.link_uri(path).replace(/^.*?\/\/|\/.*$/g, ''); + } + auto_scroll() { + for (const [index, token] of this.flow_tokens().entries()) { + if (token.name !== 'header') + continue; + const header = this.Header(index); + if (!header.Link().current()) + continue; + new $mol_after_tick(() => this.ensure_visible(header)); + } + } + } + __decorate([ + $mol_mem + ], $mol_text.prototype, "flow_tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "block_type", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "rows", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "param", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "header_level", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "header_arg", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "pre_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "quote_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "list_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "cell_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_rows", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_head_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "table_cell_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_rows", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_cells", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "grid_cell_text", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "uri_base_abs", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "uri_resolve", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "block_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_tokens", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_token", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_type", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_text", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "line_content", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "link_uri", null); + __decorate([ + $mol_mem_key + ], $mol_text.prototype, "link_host", null); + __decorate([ + $mol_mem + ], $mol_text.prototype, "auto_scroll", null); + $$.$mol_text = $mol_text; + class $mol_text_header extends $.$mol_text_header { + dom_name() { + return 'h' + this.level(); + } + } + $$.$mol_text_header = $mol_text_header; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/text/text/text.view.css", "[mol_text] {\n\tline-height: 1.5em;\n\tbox-sizing: border-box;\n\tborder-radius: var(--mol_gap_round);\n\twhite-space: pre-line;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 0 0 auto;\n\ttab-size: 4;\n}\n\n[mol_text_paragraph] {\n\tpadding: var(--mol_gap_text);\n\toverflow: auto;\n\toverflow-x: overlay;\n\tmax-width: 100%;\n\tdisplay: block;\n\tmax-width: 60rem;\n}\n\n[mol_text_span] {\n\tdisplay: inline;\n}\n\n[mol_text_string] {\n\tdisplay: inline;\n\tflex: 0 1 auto;\n\twhite-space: normal;\n}\n\n[mol_text_quote] {\n\tmargin: var(--mol_gap_block);\n\tpadding: var(--mol_gap_block);\n\tbackground: var(--mol_theme_card);\n\tbox-shadow: 0 0 0 1px var(--mol_theme_back);\n}\n\n[mol_text_header] {\n\tdisplay: block;\n\ttext-shadow: 0 0;\n\tfont-weight: normal;\n}\n\n* + [mol_text_header] {\n\tmargin-top: 0.75rem;\n}\n\nh1[mol_text_header] {\n\tfont-size: 1.5rem;\n}\n\nh2[mol_text_header] {\n\tfont-size: 1.5rem;\n\tfont-style: italic;\n}\n\nh3[mol_text_header] {\n\tfont-size: 1.25rem;\n}\n\nh4[mol_text_header] {\n\tfont-size: 1.25em;\n\tfont-style: italic;\n}\n\nh5[mol_text_header] {\n\tfont-size: 1rem;\n}\n\nh6[mol_text_header] {\n\tfont-size: 1rem;\n\tfont-style: italic;\n}\n\n[mol_text_header_link] {\n\tcolor: inherit;\n}\n\n[mol_text_table_cell] {\n\twidth: auto;\n\tdisplay: table-cell;\n\tvertical-align: baseline;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n[mol_text_grid_cell] {\n\twidth: auto;\n\tdisplay: table-cell;\n\tvertical-align: top;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n[mol_text_cut] {\n\tborder: none;\n\twidth: 100%;\n\tbox-shadow: 0 0 0 1px var(--mol_theme_line);\n}\n\n[mol_text_link_http],\n[mol_text_link] {\n\tpadding: 0;\n\tdisplay: inline;\n\twhite-space: nowrap;\n}\n\n[mol_text_link_icon] + [mol_text_embed] {\n\tmargin-left: -1.5rem;\n}\n\n[mol_text_embed_youtube] {\n\tdisplay: inline;\n}\n\n[mol_text_embed_youtube_image],\n[mol_text_embed_youtube_frame],\n[mol_text_embed_object] {\n\tobject-fit: contain;\n\tobject-position: center;\n\tdisplay: inline;\n\twidth: 100vw;\n\tmax-height: calc( 100vh - 6rem );\n\tvertical-align: top;\n}\n[mol_text_embed_object_fallback] {\n\tpadding: 0;\n}\n[mol_text_embed_image] {\n\tobject-fit: contain;\n\tobject-position: center;\n\tdisplay: inline;\n\t/* max-height: calc( 100vh - 6rem ); */\n\tvertical-align: top;\n}\n\n[mol_text_pre] {\n\twhite-space: pre;\n\toverflow-x: auto;\n\toverflow-x: overlay;\n\ttab-size: 2;\n}\n\n[mol_text_code_line] {\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n}\n\n[mol_text_type=\"strong\"] {\n\ttext-shadow: 0 0;\n\tfilter: contrast(1.5);\n}\n\n[mol_text_type=\"emphasis\"] {\n\tfont-style: italic;\n}\n\n[mol_text_type=\"insert\"] {\n\tcolor: var(--mol_theme_special);\n}\n\n[mol_text_type=\"delete\"] {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_text_type=\"remark\"] {\n\tcolor: var(--mol_theme_shade);\n}\n\n[mol_text_type=\"quote\"] {\n\tfont-style: italic;\n}\n"); +})($ || ($ = {})); + +; + ($.$mol_string_button) = class $mol_string_button extends ($.$mol_string) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/string/button/button.view.css", "[mol_string_button]:not(:placeholder-shown):not(:focus):not(:hover):not(:disabled) {\n\tcolor: var(--mol_theme_control);\n\tbackground: transparent;\n\tbox-shadow: none;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_row) = class $mol_row extends ($.$mol_view) {}; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/row/row.view.css", "[mol_row] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: flex-start;\n\talign-content: flex-start;\n\tjustify-content: flex-start;\n\tpadding: var(--mol_gap_block);\n\tgap: var(--mol_gap_block);\n\tflex: 0 0 auto;\n\tbox-sizing: border-box;\n\tmax-width: 100%;\n}\n\n[mol_row] > * {\n\tmax-width: 100%;\n}\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$mol_form) = class $mol_form extends ($.$mol_list) { + keydown(next){ + if(next !== undefined) return next; + return null; + } + form_fields(){ + return []; + } + body(){ + return (this.form_fields()); + } + Body(){ + const obj = new this.$.$mol_list(); + (obj.sub) = () => ((this.body())); + return obj; + } + buttons(){ + return []; + } + foot(){ + return (this.buttons()); + } + Foot(){ + const obj = new this.$.$mol_row(); + (obj.sub) = () => ((this.foot())); + return obj; + } + submit_allowed(){ + return true; + } + submit_blocked(){ + return false; + } + event(){ + return {...(super.event()), "keydown": (next) => (this.keydown(next))}; + } + submit(next){ + if(next !== undefined) return next; + return null; + } + rows(){ + return [(this.Body()), (this.Foot())]; + } + }; + ($mol_mem(($.$mol_form.prototype), "keydown")); + ($mol_mem(($.$mol_form.prototype), "Body")); + ($mol_mem(($.$mol_form.prototype), "Foot")); + ($mol_mem(($.$mol_form.prototype), "submit")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $mol_form extends $.$mol_form { + form_fields() { + return [...this.view_find(view => view instanceof $mol_form_field)] + .map(path => path[path.length - 1]); + } + submit_allowed() { + return this.form_fields().every(field => !field.bid()); + } + submit_blocked() { + return !this.submit_allowed(); + } + keydown(next) { + if (next.ctrlKey && next.keyCode === $mol_keyboard_code.enter && !this.submit_blocked()) + this.submit(event); + } + } + __decorate([ + $mol_mem + ], $mol_form.prototype, "form_fields", null); + __decorate([ + $mol_mem + ], $mol_form.prototype, "submit_allowed", null); + $$.$mol_form = $mol_form; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/form/form.view.css", "[mol_form] {\r\n\tgap: var(--mol_gap_block);\r\n}\r\n\r\n[mol_form_body] {\r\n\tgap: var(--mol_gap_block);\r\n}"); +})($ || ($ = {})); + +; + ($.$mol_text_list) = class $mol_text_list extends ($.$mol_text) { + type(){ + return ""; + } + auto_scroll(){ + return null; + } + attr(){ + return {...(super.attr()), "mol_text_list_type": (this.type())}; + } + Paragraph(id){ + const obj = new this.$.$mol_text_list_item(); + (obj.index) = () => ((this.item_index(id))); + (obj.sub) = () => ((this.block_content(id))); + return obj; + } + }; + ($mol_mem_key(($.$mol_text_list.prototype), "Paragraph")); + ($.$mol_text_list_item) = class $mol_text_list_item extends ($.$mol_paragraph) { + index(){ + return 0; + } + attr(){ + return {...(super.attr()), "mol_text_list_item_index": (this.index())}; + } + }; + + +; +"use strict"; +var $; +(function ($) { + $mol_style_attach("mol/text/list/list.view.css", "[mol_text_list] {\r\n\tpadding-left: 1.75rem;\r\n}\r\n\r\n[mol_text_list_item] {\r\n\tcontain: none;\r\n\tdisplay: list-item;\r\n}\r\n\r\n[mol_text_list_item]::before {\r\n\tcontent: attr( mol_text_list_item_index ) \".\";\r\n\twidth: 1.25rem;\r\n\tdisplay: inline-block;\r\n\tposition: absolute;\r\n\tmargin-left: -1.75rem;\r\n\ttext-align: end;\r\n}\r\n\r\n[mol_text_list_type=\"-\"] > [mol_text_list_item]::before,\r\n[mol_text_list_type=\"*\"] > [mol_text_list_item]::before {\r\n\tcontent: \"•\";\r\n}\r\n"); +})($ || ($ = {})); + +; +"use strict"; + +; + ($.$hyoo_survey_meet_form) = class $hyoo_survey_meet_form extends ($.$mol_page) { + title(next){ + if(next !== undefined) return next; + return ""; + } + pleasant(next){ + if(next !== undefined) return next; + return ""; + } + Pleasant(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.pleasant(next))); + return obj; + } + Pleasant_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Что понравилось?"); + (obj.control) = () => ((this.Pleasant())); + return obj; + } + improvement(next){ + if(next !== undefined) return next; + return ""; + } + Improvement(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.improvement(next))); + return obj; + } + Improvement_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Что можно улучшить?"); + (obj.control) = () => ((this.Improvement())); + return obj; + } + request(next){ + if(next !== undefined) return next; + return ""; + } + Request(){ + const obj = new this.$.$mol_textarea(); + (obj.value) = (next) => ((this.request(next))); + return obj; + } + Request_field(){ + const obj = new this.$.$mol_form_field(); + (obj.name) = () => ("Идеи? Предложения?"); + (obj.control) = () => ((this.Request())); + return obj; + } + opinion(id){ + return ""; + } + Opinion(id){ + const obj = new this.$.$mol_text(); + (obj.text) = () => ((this.opinion(id))); + return obj; + } + opinions(){ + return [(this.Opinion("0"))]; + } + Opinions(){ + const obj = new this.$.$mol_list(); + (obj.rows) = () => ((this.opinions())); + return obj; + } + meet(){ + const obj = new this.$.$hyoo_survey_meet(); + return obj; + } + Title(){ + const obj = new this.$.$mol_string_button(); + (obj.value) = (next) => ((this.title(next))); + (obj.hint) = () => ("Как всё прошло?"); + return obj; + } + body(){ + return [ + (this.Pleasant_field()), + (this.Improvement_field()), + (this.Request_field()), + (this.Opinions()) + ]; + } + }; + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "title")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "pleasant")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Pleasant")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Pleasant_field")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "improvement")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Improvement")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Improvement_field")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "request")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Request")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Request_field")); + ($mol_mem_key(($.$hyoo_survey_meet_form.prototype), "Opinion")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Opinions")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "meet")); + ($mol_mem(($.$hyoo_survey_meet_form.prototype), "Title")); + + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $hyoo_survey_meet_form extends $.$hyoo_survey_meet_form { + title(next) { + return this.meet().Title(next)?.val(next) ?? ''; + } + pleasant(next) { + return this.meet().opinion_my()?.Pleasant(next)?.val(next) ?? ''; + } + improvement(next) { + return this.meet().opinion_my()?.Improvement(next)?.val(next) ?? ''; + } + request(next) { + return this.meet().opinion_my()?.Request(next)?.val(next) ?? ''; + } + opinions() { + return this.meet().Opinions()?.keys().map(key => this.Opinion(key)) ?? []; + } + opinion(key) { + const opinion = this.meet().Opinions()?.key(key)?.remote(); + if (!opinion) + return ''; + return (opinion.Pleasant()?.val() ?? '') + '\n' + + (opinion.Improvement()?.val() ?? '') + '\n' + + (opinion.Request()?.val() ?? '') + '\n'; + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_meet_form.prototype, "opinions", null); + $$.$hyoo_survey_meet_form = $hyoo_survey_meet_form; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + $mol_style_define($hyoo_survey_meet_form, { + Opinion: { + background: { + color: $mol_theme.card, + }, + margin: $mol_gap.block, + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; + ($.$hyoo_survey_app) = class $hyoo_survey_app extends ($.$mol_book2_catalog) { + meet_add(next){ + if(next !== undefined) return next; + return null; + } + Meet_add_icon(){ + const obj = new this.$.$mol_icon_plus(); + return obj; + } + Meet_add(){ + const obj = new this.$.$mol_button_minor(); + (obj.click) = (next) => ((this.meet_add(next))); + (obj.sub) = () => ([(this.Meet_add_icon())]); + return obj; + } + meet(id){ + const obj = new this.$.$hyoo_survey_meet(); + return obj; + } + Meet(id){ + const obj = new this.$.$hyoo_survey_meet_form(); + (obj.meet) = () => ((this.meet(id))); + return obj; + } + param(){ + return "meet"; + } + realm(){ + const obj = new this.$.$hyoo_crus_realm(); + return obj; + } + menu_title(){ + return "$hyoo_survey"; + } + menu_tools(){ + return [(this.Meet_add())]; + } + spread_ids(){ + return ["1", "2"]; + } + Spread(id){ + return (this.Meet(id)); + } + }; + ($mol_mem(($.$hyoo_survey_app.prototype), "meet_add")); + ($mol_mem(($.$hyoo_survey_app.prototype), "Meet_add_icon")); + ($mol_mem(($.$hyoo_survey_app.prototype), "Meet_add")); + ($mol_mem_key(($.$hyoo_survey_app.prototype), "meet")); + ($mol_mem_key(($.$hyoo_survey_app.prototype), "Meet")); + ($mol_mem(($.$hyoo_survey_app.prototype), "realm")); + + +; +"use strict"; +var $; +(function ($) { + class $hyoo_survey_person extends $hyoo_crus_entity.with({ + Meets: $hyoo_crus_list_ref_to(() => $hyoo_survey_meet), + }) { + meet_make() { + return this.Meets(true)?.remote_make($hyoo_crus_rank_orgy); + } + } + __decorate([ + $mol_action + ], $hyoo_survey_person.prototype, "meet_make", null); + $.$hyoo_survey_person = $hyoo_survey_person; +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + class $hyoo_survey_app extends $.$hyoo_survey_app { + meet_id(next) { + const id = this.$.$mol_state_arg.value('meet', next?.description); + if (!id) + return null; + return $hyoo_crus_ref(id); + } + profile() { + return this.realm().home().hall_by($hyoo_survey_person, $hyoo_crus_rank_public); + } + meet_add() { + const meet = this.profile().meet_make(); + this.meet_id(meet.ref()); + } + spread_ids() { + return this.profile()?.Meets()?.remote_list().map(meet => meet.ref().description) ?? []; + } + meet(id) { + return this.realm().Node($hyoo_crus_ref(id), $hyoo_survey_meet); + } + } + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "meet_id", null); + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "profile", null); + __decorate([ + $mol_mem + ], $hyoo_survey_app.prototype, "spread_ids", null); + __decorate([ + $mol_mem_key + ], $hyoo_survey_app.prototype, "meet", null); + $$.$hyoo_survey_app = $hyoo_survey_app; + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_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); + const res = test(context); + if ($mol_promise_like(res)) { + await new Promise((done, fail) => { + res.then(done, fail); + setTimeout(() => fail(new Error('Test timeout: ' + test.name)), 1000); + }); + } + } + $$.$mol_log3_done({ + place: '$mol_test', + message: 'All tests passed', + 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(async () => { + scheduled = false; + await $mol_test_run(); + $$.$mol_test_complete(); + }, 1000); + } + $_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() { + $mol_fail_hidden(new Error(`${api} is forbidden in tests`)); + }, + apply() { + $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'); + } + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_test_complete() { + process.exit(0); + } + $.$mol_test_complete = $mol_test_complete; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => $.$mol_fail_log = () => false); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + $.$mol_log3_come = () => { }; + $.$mol_log3_done = () => { }; + $.$mol_log3_fail = () => { }; + $.$mol_log3_warn = () => { }; + $.$mol_log3_rise = () => { }; + $.$mol_log3_area = () => () => { }; + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; + +; +"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", { class: '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 = (props, target) => { + return $mol_jsx("button", { title: props.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, + $mol_jsx("i", { id: "label" })); + }; + 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 "foo/bar"'); + }, + 'Owner based guid generationn'() { + const Foo = () => { + return $mol_jsx("div", null, + $mol_jsx(Bar, { id: "middle", icon: () => $mol_jsx("img", { id: "icon" }) })); + }; + const Bar = (props) => { + return $mol_jsx("span", null, props.icon()); + }; + const dom = $mol_jsx(Foo, { id: "app" }); + $mol_assert_equal(dom.outerHTML, '
'); + }, + 'Fail on same ids from different caller'() { + const Foo = () => { + return $mol_jsx("div", null, + $mol_jsx("img", { id: "icon" }), + $mol_jsx(Bar, { id: "bar", icon: () => $mol_jsx("img", { id: "icon" }) })); + }; + const Bar = (props) => { + return $mol_jsx("span", null, props.icon()); + }; + $mol_assert_fail(() => $mol_jsx(Foo, { id: "foo" }), 'JSX already has tag with id "foo/icon"'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) { + const source = typeof item === 'function' ? new $mol_range2_array() : item; + if (typeof item !== 'function') { + item = index => source[index]; + size = () => source.length; + } + return new Proxy(source, { + get(target, field) { + if (typeof field === 'string') { + if (field === 'length') + return size(); + const index = Number(field); + if (index < 0) + return undefined; + if (index >= size()) + return undefined; + if (index === Math.trunc(index)) + return item(index); + } + return $mol_range2_array.prototype[field]; + }, + set(target, field) { + return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`)); + }, + ownKeys(target) { + return [...Array(size())].map((v, i) => String(i)).concat('length'); + }, + getOwnPropertyDescriptor(target, field) { + if (field === "length") + return { + value: size(), + writable: true, + enumerable: false, + configurable: false, + }; + const index = Number(field); + if (index === Math.trunc(index)) + return { + get: () => this.get(target, field, this), + enumerable: true, + configurable: true, + }; + return Object.getOwnPropertyDescriptor(target, field); + } + }); + } + $.$mol_range2 = $mol_range2; + class $mol_range2_array extends Array { + concat(...tail) { + if (tail.length === 0) + return this; + if (tail.length > 1) { + let list = this; + for (let item of tail) + list = list.concat(item); + return list; + } + return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length); + } + filter(check, context) { + const filtered = []; + let cursor = -1; + return $mol_range2(index => { + while (cursor < this.length && index >= filtered.length - 1) { + const val = this[++cursor]; + if (check(val, cursor, this)) + filtered.push(val); + } + return filtered[index]; + }, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length); + } + forEach(proceed, context) { + for (let [key, value] of this.entries()) + proceed.call(context, value, key, this); + } + map(proceed, context) { + return $mol_range2(index => proceed.call(context, this[index], index, this), () => this.length); + } + reduce(merge, result) { + let index = 0; + if (arguments.length === 1) { + result = this[index++]; + } + for (; index < this.length; ++index) { + result = merge(result, this[index], index, this); + } + return result; + } + toReversed() { + return $mol_range2(index => this[this.length - 1 - index], () => this.length); + } + slice(from = 0, to = this.length) { + return $mol_range2(index => this[from + index], () => Math.min(to, this.length) - from); + } + some(check, context) { + for (let index = 0; index < this.length; ++index) { + if (check.call(context, this[index], index, this)) + return true; + } + return false; + } + every(check, context) { + for (let index = 0; index < this.length; ++index) { + if (!check.call(context, this[index], index, this)) + return false; + } + return true; + } + reverse() { + return $mol_fail(new TypeError(`Mutable reverse is forbidden. Use toReversed instead.`)); + } + sort() { + return $mol_fail(new TypeError(`Mutable sort is forbidden. Use toSorted instead.`)); + } + [Symbol.toPrimitive]() { + return $mol_guid(); + } + } + $.$mol_range2_array = $mol_range2_array; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'lazy calls'() { + let calls = 0; + const list = $mol_range2(index => (++calls, index), () => 10); + $mol_assert_equal(true, list instanceof Array); + $mol_assert_equal(list.length, 10); + $mol_assert_equal(list[-1], undefined); + $mol_assert_equal(list[0], 0); + $mol_assert_equal(list[9], 9); + $mol_assert_equal(list[9.5], undefined); + $mol_assert_equal(list[10], undefined); + $mol_assert_equal(calls, 2); + }, + 'infinity list'() { + let calls = 0; + const list = $mol_range2(index => (++calls, index)); + $mol_assert_equal(list.length, Number.POSITIVE_INFINITY); + $mol_assert_equal(list[0], 0); + $mol_assert_equal(list[4], 4); + $mol_assert_equal(list[Number.MAX_SAFE_INTEGER], Number.MAX_SAFE_INTEGER); + $mol_assert_equal(list[Number.POSITIVE_INFINITY], undefined); + $mol_assert_equal(calls, 3); + }, + 'stringify'() { + const list = $mol_range2(i => i, () => 5); + $mol_assert_equal(list.toString(), '0,1,2,3,4'); + $mol_assert_equal(list.join(';'), '0;1;2;3;4'); + }, + 'for-of'() { + let log = ''; + for (let i of $mol_range2(i => i + 1, () => 5)) { + log += i; + } + $mol_assert_equal(log, '12345'); + }, + 'for-in'() { + let log = ''; + for (let i in $mol_range2(i => i, () => 5)) { + log += i; + } + $mol_assert_equal(log, '01234'); + }, + 'forEach'() { + let log = ''; + $mol_range2(i => i, () => 5).forEach(i => log += i); + $mol_assert_equal(log, '01234'); + }, + 'reduce'() { + let calls = 0; + const list = $mol_range2().slice(1, 6); + $mol_assert_equal(list.reduce((s, v) => s + v), 15); + $mol_assert_equal(list.reduce((s, v) => s + v, 5), 20); + }, + 'lazy concat'() { + let calls1 = 0; + let calls2 = 0; + const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5)); + $mol_assert_equal(true, list instanceof Array); + $mol_assert_equal(list.length, 15); + $mol_assert_equal(list[0], 0); + $mol_assert_equal(list[4], 4); + $mol_assert_equal(list[5], 0); + $mol_assert_equal(list[9], 4); + $mol_assert_equal(list[10], 0); + $mol_assert_equal(list[14], 4); + $mol_assert_equal(list[15], undefined); + $mol_assert_equal(calls1, 2); + $mol_assert_equal(calls2, 2); + }, + 'lazy filter'() { + let calls = 0; + const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3); + $mol_assert_equal(true, list instanceof Array); + $mol_assert_equal(list.length, 3); + $mol_assert_equal(list[0], 1); + $mol_assert_equal(list[2], 5); + $mol_assert_equal(list[3], undefined); + $mol_assert_equal(calls, 8); + }, + 'lazy reverse'() { + let calls = 0; + const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3); + $mol_assert_equal(true, list instanceof Array); + $mol_assert_equal(list.length, 3); + $mol_assert_equal(list[0], 9); + $mol_assert_equal(list[2], 7); + $mol_assert_equal(list[3], undefined); + $mol_assert_equal(calls, 2); + }, + 'lazy map'() { + let calls1 = 0; + let calls2 = 0; + const source = $mol_range2(index => (++calls1, index), () => 5); + const target = source.map((item, index, self) => { + ++calls2; + $mol_assert_equal(source, self); + return index + 10; + }, () => 5); + $mol_assert_equal(true, target instanceof Array); + $mol_assert_equal(target.length, 5); + $mol_assert_equal(target[0], 10); + $mol_assert_equal(target[4], 14); + $mol_assert_equal(target[5], undefined); + $mol_assert_equal(calls1, 2); + $mol_assert_equal(calls2, 2); + }, + 'lazy slice'() { + let calls = 0; + const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7); + $mol_assert_equal(true, list instanceof Array); + $mol_assert_equal(list.length, 4); + $mol_assert_equal(list[0], 3); + $mol_assert_equal(list[3], 6); + $mol_assert_equal(list[4], undefined); + $mol_assert_equal(calls, 2); + }, + 'lazy some'() { + let calls = 0; + $mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2)); + $mol_assert_equal(calls, 3); + $mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true)); + $mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5)); + }, + 'lazy every'() { + let calls = 0; + $mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2)); + $mol_assert_equal(calls, 3); + $mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false)); + $mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5)); + }, + 'lazyfy'() { + let calls = 0; + const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2); + $mol_assert_equal(true, list instanceof Array); + $mol_assert_equal(list.length, 4); + $mol_assert_equal(calls, 0); + $mol_assert_equal(list[0], 12); + $mol_assert_equal(list[3], 15); + $mol_assert_equal(list[4], undefined); + $mol_assert_equal(calls, 2); + }, + 'prevent modification'() { + const list = $mol_range2(i => i, () => 5); + $mol_assert_fail(() => list.push(4), TypeError); + $mol_assert_fail(() => list.pop(), TypeError); + $mol_assert_fail(() => list.unshift(4), TypeError); + $mol_assert_fail(() => list.shift(), TypeError); + $mol_assert_fail(() => list.splice(1, 2), TypeError); + $mol_assert_fail(() => list[1] = 2, TypeError); + $mol_assert_fail(() => list.reverse(), TypeError); + $mol_assert_fail(() => list.sort(), TypeError); + $mol_assert_equal(list.toString(), '0,1,2,3,4'); + } + }); +})($ || ($ = {})); + +; +"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)); + $mol_assert_ok($mol_compare_deep(Object(1), Object(1))); + $mol_assert_not($mol_compare_deep(Object(1), Object(2))); + }, + 'POJO'() { + $mol_assert_ok($mol_compare_deep({}, {})); + $mol_assert_not($mol_compare_deep({ a: 1 }, { b: 2 })); + $mol_assert_not($mol_compare_deep({ a: 1 }, { a: 2 })); + $mol_assert_not($mol_compare_deep({}, { a: undefined })); + $mol_assert_not($mol_compare_deep({ a: 1, b: 2 }, { b: 2, a: 1 })); + $mol_assert_ok($mol_compare_deep({ a: { b: 1 } }, { a: { b: 1 } })); + $mol_assert_ok($mol_compare_deep(Object.create(null), Object.create(null))); + }, + '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])); + $mol_assert_not($mol_compare_deep($mol_range2().slice(0, 0), new Array())); + $mol_assert_not($mol_compare_deep($mol_range2(), $mol_range2())); + }, + 'Non POJO are different'() { + class Thing extends Object { + } + $mol_assert_not($mol_compare_deep(new Thing, new Thing)); + $mol_assert_not($mol_compare_deep(() => 1, () => 1)); + $mol_assert_not($mol_compare_deep(new RangeError('Test error'), new RangeError('Test error'))); + }, + 'POJO with symbols'() { + const sym = Symbol(); + $mol_assert_ok($mol_compare_deep({ [sym]: true }, { [sym]: true })); + $mol_assert_not($mol_compare_deep({ [Symbol()]: true }, { [Symbol()]: true })); + }, + '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)); + }, + '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)); + }, + 'Error'() { + $mol_assert_not($mol_compare_deep(new Error('xxx'), new Error('xxx'))); + const fail = (message) => new Error(message); + $mol_assert_ok($mol_compare_deep(...['xxx', 'xxx'].map(msg => new Error(msg)))); + $mol_assert_not($mol_compare_deep(...['xxx', 'yyy'].map(msg => new Error(msg)))); + }, + '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_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]]))); + $mol_assert_not($mol_compare_deep(new Map([[[1], 2]]), new Map([[[3], 2]]))); + }, + '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]))); + }, + 'DataView'() { + $mol_assert_ok($mol_compare_deep(new DataView(new Uint8Array().buffer), new DataView(new Uint8Array().buffer))); + $mol_assert_ok($mol_compare_deep(new DataView(new Uint8Array([0]).buffer), new DataView(new Uint8Array([0]).buffer))); + $mol_assert_not($mol_compare_deep(new DataView(new Uint8Array([0]).buffer), new DataView(new Uint8Array([1]).buffer))); + }, + 'Serializale'() { + class User { + name; + rand; + constructor(name, rand = Math.random()) { + this.name = name; + this.rand = rand; + } + [Symbol.toPrimitive](mode) { + return this.name; + } + } + $mol_assert_ok($mol_compare_deep(new User('Jin'), new User('Jin'))); + $mol_assert_not($mol_compare_deep(new User('Jin'), new User('John'))); + }, + 'Iterable'() { + $mol_assert_ok($mol_compare_deep(new URLSearchParams({ foo: 'bar' }), new URLSearchParams({ foo: 'bar' }))); + $mol_assert_not($mol_compare_deep(new URLSearchParams({ foo: 'xxx' }), new URLSearchParams({ foo: 'yyy' }))); + $mol_assert_not($mol_compare_deep(new URLSearchParams({ foo: 'xxx', bar: 'yyy' }), new URLSearchParams({ bar: 'yyy', foo: 'xxx' }))); + }, + }); +})($ || ($ = {})); + +; +"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) { + $.$mol_fail = fail; + if (typeof ErrorRight === 'string') { + $mol_assert_equal(error.message, ErrorRight); + } + else { + $mol_assert_equal(error instanceof ErrorRight, true); + } + return error; + } + finally { + $.$mol_fail = fail; + } + $mol_fail(new Error('Not failed')); + } + $.$mol_assert_fail = $mol_assert_fail; + function $mol_assert_like(...args) { + $mol_assert_equal(...args); + } + $.$mol_assert_like = $mol_assert_like; + 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 (!$mol_compare_deep(args[i], args[j])) + continue; + $mol_fail(new Error(`args[${i}] = args[${j}] = ${print(args[i])}`)); + } + } + } + $.$mol_assert_unique = $mol_assert_unique; + function $mol_assert_equal(...args) { + for (let i = 1; i < args.length; ++i) { + if ($mol_compare_deep(args[0], args[i])) + continue; + if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML) + continue; + return $mol_fail(new Error(`args[0] ≠ args[${i}]\n${print(args[0])}\n---\n${print(args[i])}`)); + } + } + $.$mol_assert_equal = $mol_assert_equal; + const print = (val) => { + if (!val) + return val; + if (typeof val === 'bigint') + return String(val) + 'n'; + if (typeof val === 'symbol') + return `Symbol(${val.description})`; + if (typeof val !== 'object') + return val; + if ('outerHTML' in val) + return val.outerHTML; + try { + return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t'); + } + catch (error) { + console.error(error); + return val; + } + }; +})($ || ($ = {})); + +; +"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([2], [3]); + }, + 'three must be unique'() { + $mol_assert_unique([1], [2], [3]); + }, + 'two must be alike'() { + $mol_assert_like([3], [3]); + }, + 'three must be alike'() { + $mol_assert_like([3], [3], [3]); + }, + 'two object must be alike'() { + $mol_assert_like({ a: 1 }, { a: 1 }); + }, + 'three object must be alike'() { + $mol_assert_like({ a: 1 }, { a: 1 }, { a: 1 }); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'FQN of anon function'($) { + const $$ = Object.assign($, { $mol_func_name_test: (() => () => { })() }); + $mol_assert_equal($$.$mol_func_name_test.name, ''); + $mol_assert_equal($$.$mol_func_name($$.$mol_func_name_test), '$mol_func_name_test'); + $mol_assert_equal($$.$mol_func_name_test.name, '$mol_func_name_test'); + }, + }); +})($ || ($ = {})); + +; +"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 instanceof Foo); + $mol_assert_ok(proxy instanceof $mol_delegate); + }, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'span for same uri'($) { + const span = new $mol_span('test.ts', '', 1, 3, 4); + const child = span.span(4, 5, 8); + $mol_assert_equal(child.uri, 'test.ts'); + $mol_assert_equal(child.row, 4); + $mol_assert_equal(child.col, 5); + $mol_assert_equal(child.length, 8); + }, + 'span after of given position'($) { + const span = new $mol_span('test.ts', '', 1, 3, 4); + const child = span.after(11); + $mol_assert_equal(child.uri, 'test.ts'); + $mol_assert_equal(child.row, 1); + $mol_assert_equal(child.col, 7); + $mol_assert_equal(child.length, 11); + }, + 'slice span - regular'($) { + const span = new $mol_span('test.ts', '', 1, 3, 5); + const child = span.slice(1, 4); + $mol_assert_equal(child.row, 1); + $mol_assert_equal(child.col, 4); + $mol_assert_equal(child.length, 3); + const child2 = span.slice(2, 2); + $mol_assert_equal(child2.col, 5); + $mol_assert_equal(child2.length, 0); + }, + 'slice span - negative'($) { + const span = new $mol_span('test.ts', '', 1, 3, 5); + const child = span.slice(-3, -1); + $mol_assert_equal(child.row, 1); + $mol_assert_equal(child.col, 5); + $mol_assert_equal(child.length, 2); + }, + 'slice span - out of range'($) { + const span = new $mol_span('test.ts', '', 1, 3, 5); + $mol_assert_fail(() => span.slice(-1, 3), `End value '3' can't be less than begin value (test.ts#1:3/5)`); + $mol_assert_fail(() => span.slice(1, 6), `End value '6' out of range (test.ts#1:3/5)`); + $mol_assert_fail(() => span.slice(1, 10), `End value '10' out of range (test.ts#1:3/5)`); + }, + 'error handling'($) { + const span = new $mol_span('test.ts', '', 1, 3, 4); + const error = span.error('Some error'); + $mol_assert_equal(error.message, 'Some error (test.ts#1:3/4)'); + } + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'inserting'($) { + $mol_assert_equal($.$mol_tree2_from_string('a b c d\n') + .insert($mol_tree2.struct('x'), 'a', 'b', 'c') + .toString(), 'a b x\n'); + $mol_assert_equal($.$mol_tree2_from_string('a b\n') + .insert($mol_tree2.struct('x'), 'a', 'b', 'c', 'd') + .toString(), 'a b c x\n'); + $mol_assert_equal($.$mol_tree2_from_string('a b c d\n') + .insert($mol_tree2.struct('x'), 0, 0, 0) + .toString(), 'a b x\n'); + $mol_assert_equal($.$mol_tree2_from_string('a b\n') + .insert($mol_tree2.struct('x'), 0, 0, 0, 0) + .toString(), 'a b \\\n\tx\n'); + $mol_assert_equal($.$mol_tree2_from_string('a b c d\n') + .insert($mol_tree2.struct('x'), null, null, null) + .toString(), 'a b x\n'); + $mol_assert_equal($.$mol_tree2_from_string('a b\n') + .insert($mol_tree2.struct('x'), null, null, null, null) + .toString(), 'a b \\\n\tx\n'); + }, + 'deleting'($) { + $mol_assert_equal($.$mol_tree2_from_string('a b c d\n') + .insert(null, 'a', 'b', 'c') + .toString(), 'a b\n'); + $mol_assert_equal($.$mol_tree2_from_string('a b c d\n') + .insert(null, 0, 0, 0) + .toString(), 'a b\n'); + }, + 'hack'($) { + const res = $.$mol_tree2_from_string(`foo bar xxx\n`) + .hack({ + 'bar': (input, belt) => [input.struct('777', input.hack(belt))], + }); + $mol_assert_equal(res.toString(), 'foo 777 xxx\n'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'tree parsing'($) { + $mol_assert_equal($.$mol_tree2_from_string("foo\nbar\n").kids.length, 2); + $mol_assert_equal($.$mol_tree2_from_string("foo\nbar\n").kids[1].type, "bar"); + $mol_assert_equal($.$mol_tree2_from_string("foo\n\n\n").kids.length, 1); + $mol_assert_equal($.$mol_tree2_from_string("=foo\n\\bar\n").kids.length, 2); + $mol_assert_equal($.$mol_tree2_from_string("=foo\n\\bar\n").kids[1].value, "bar"); + $mol_assert_equal($.$mol_tree2_from_string("foo bar \\pol\n").kids[0].kids[0].kids[0].value, "pol"); + $mol_assert_equal($.$mol_tree2_from_string("foo bar\n\t\\pol\n\t\\men\n").kids[0].kids[0].kids[1].value, "men"); + $mol_assert_equal($.$mol_tree2_from_string('foo bar \\text\n').toString(), 'foo bar \\text\n'); + }, + 'Too many tabs'($) { + const tree = ` + foo + bar + `; + $mol_assert_fail(() => { + $.$mol_tree2_from_string(tree, 'test'); + }, 'Too many tabs\ntest#3:1/6\n!!!!!!\n\t\t\t\t\t\tbar'); + }, + 'Too few tabs'($) { + const tree = ` + foo + bar + `; + $mol_assert_fail(() => { + $.$mol_tree2_from_string(tree, 'test'); + }, 'Too few tabs\ntest#3:1/4\n!!!!\n\t\t\t\tbar'); + }, + 'Wrong nodes separator at start'($) { + const tree = `foo\n \tbar\n`; + $mol_assert_fail(() => { + $.$mol_tree2_from_string(tree, 'test'); + }, 'Wrong nodes separator\ntest#2:1/2\n!!\n \tbar'); + }, + 'Wrong nodes separator in the middle'($) { + const tree = `foo bar\n`; + $mol_assert_fail(() => { + $.$mol_tree2_from_string(tree, 'test'); + }, 'Wrong nodes separator\ntest#1:5/1\n !\nfoo bar'); + }, + 'Unexpected EOF, LF required'($) { + const tree = ` foo`; + $mol_assert_fail(() => { + $.$mol_tree2_from_string(tree, 'test'); + }, 'Unexpected EOF, LF required\ntest#1:5/1\n !\n foo'); + }, + 'Errors skip and collect'($) { + const tree = `foo bar`; + const errors = []; + const $$ = $.$mol_ambient({ + $mol_fail: (error) => { + errors.push(error.message); + return null; + } + }); + const res = $$.$mol_tree2_from_string(tree, 'test'); + $mol_assert_like(errors, [ + 'Wrong nodes separator\ntest#1:5/1\n !\nfoo bar', + 'Unexpected EOF, LF required\ntest#1:9/1\n !\nfoo bar', + ]); + $mol_assert_equal(res.toString(), 'foo bar\n'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'fromJSON'() { + $mol_assert_equal($mol_tree2_from_json([]).toString(), '/\n'); + $mol_assert_equal($mol_tree2_from_json([false, true]).toString(), '/\n\tfalse\n\ttrue\n'); + $mol_assert_equal($mol_tree2_from_json([0, 1, 2.3]).toString(), '/\n\t0\n\t1\n\t2.3\n'); + $mol_assert_equal($mol_tree2_from_json(new Uint16Array([1, 10, 256])).toString(), '\\\x01\x00\n\\\x00\x00\x01\n'); + $mol_assert_equal($mol_tree2_from_json(['', 'foo', 'bar\nbaz']).toString(), '/\n\t\\\n\t\\foo\n\t\\\n\t\t\\bar\n\t\t\\baz\n'); + $mol_assert_equal($mol_tree2_from_json({ 'foo': false, 'bar\nbaz': 'lol' }).toString(), '*\n\tfoo false\n\t\\\n\t\t\\bar\n\t\t\\baz\n\t\t\\lol\n'); + }, + }); +})($ || ($ = {})); + +; +"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); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'Collect deps'() { + const pub1 = new $mol_wire_pub; + const pub2 = new $mol_wire_pub; + const sub = new $mol_wire_pub_sub; + const bu1 = sub.track_on(); + try { + pub1.promote(); + pub2.promote(); + pub2.promote(); + } + finally { + sub.track_cut(); + sub.track_off(bu1); + } + pub1.emit(); + pub2.emit(); + $mol_assert_like(sub.pub_list, [pub1, pub2, pub2]); + const bu2 = sub.track_on(); + try { + pub1.promote(); + pub1.promote(); + pub2.promote(); + } + finally { + sub.track_cut(); + sub.track_off(bu2); + } + pub1.emit(); + pub2.emit(); + $mol_assert_like(sub.pub_list, [pub1, pub1, pub2]); + }, + 'cyclic detection'($) { + const sub1 = new $mol_wire_pub_sub; + const sub2 = new $mol_wire_pub_sub; + const bu1 = sub1.track_on(); + try { + const bu2 = sub2.track_on(); + try { + $mol_assert_fail(() => sub1.promote(), 'Circular subscription'); + } + finally { + sub2.track_cut(); + sub2.track_off(bu2); + } + } + finally { + sub1.track_cut(); + sub1.track_off(bu1); + } + }, + }); +})($ || ($ = {})); + +; +"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 { + task; + promise = Promise.resolve(); + cancelled = false; + id; + constructor(task) { + super(); + this.task = task; + $.$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 { + delay; + constructor(delay, task) { + super(task); + this.delay = delay; + } + } + $.$mol_after_mock_timeout = $mol_after_mock_timeout; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + $.$mol_after_timeout = $mol_after_mock_timeout; + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + $.$mol_after_frame = $mol_after_mock_commmon; + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Sync execution'() { + class Sync extends $mol_object2 { + static calc(a, b) { + return a + b; + } + } + __decorate([ + $mol_wire_method + ], Sync, "calc", null); + $mol_assert_equal(Sync.calc(1, 2), 3); + }, + async 'async <=> sync'() { + class SyncAsync extends $mol_object2 { + static async val(a) { + return a; + } + static sum(a, b) { + const syn = $mol_wire_sync(this); + return syn.val(a) + syn.val(b); + } + static async calc(a, b) { + return 5 + await $mol_wire_async(this).sum(a, b); + } + } + $mol_assert_equal(await SyncAsync.calc(1, 2), 8); + }, + async 'Idempotence control'() { + class Idempotence extends $mol_object2 { + static logs_idemp = 0; + static logs_unidemp = 0; + static log_idemp() { + this.logs_idemp += 1; + } + static log_unidemp() { + this.logs_unidemp += 1; + } + static async val(a) { + return a; + } + static sum(a, b) { + this.log_idemp(); + this.log_unidemp(); + const syn = $mol_wire_sync(this); + return syn.val(a) + syn.val(b); + } + static async calc(a, b) { + return 5 + await $mol_wire_async(this).sum(a, b); + } + } + __decorate([ + $mol_wire_method + ], Idempotence, "log_idemp", null); + $mol_assert_equal(await Idempotence.calc(1, 2), 8); + $mol_assert_equal(Idempotence.logs_idemp, 1); + $mol_assert_equal(Idempotence.logs_unidemp, 3); + }, + async 'Error handling'() { + class Handle extends $mol_object2 { + static async sum(a, b) { + $mol_fail(new Error('test error ' + (a + b))); + } + static check() { + try { + return $mol_wire_sync(Handle).sum(1, 2); + } + catch (error) { + if ($mol_promise_like(error)) + $mol_fail_hidden(error); + $mol_assert_equal(error.message, 'test error 3'); + } + } + } + await $mol_wire_async(Handle).check(); + }, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'test types'($) { + class A { + static a() { + return Promise.resolve(''); + } + static b() { + return $mol_wire_sync(this).a(); + } + } + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'test types'($) { + class A { + static a() { + return ''; + } + static b() { + return $mol_wire_async(this).a(); + } + } + }, + async 'Latest method calls wins'($) { + class NameLogger extends $mol_object2 { + static $ = $; + static first = []; + static last = []; + static send(next) { + $mol_wire_sync(this.first).push(next); + this.$.$mol_wait_timeout(0); + this.last.push(next); + } + } + const name = $mol_wire_async(NameLogger).send; + name('john'); + const promise = name('jin'); + $.$mol_after_mock_warp(); + await promise; + $mol_assert_like(NameLogger.first, ['john', 'jin']); + $mol_assert_like(NameLogger.last, ['jin']); + }, + async 'Latest function calls wins'($) { + const first = []; + const last = []; + function send_name(next) { + $mol_wire_sync(first).push(next); + $.$mol_wait_timeout(0); + last.push(next); + } + const name = $mol_wire_async(send_name); + name('john'); + const promise = name('jin'); + $.$mol_after_mock_warp(); + await promise; + $mol_assert_like(first, ['john', 'jin']); + $mol_assert_like(last, ['jin']); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'Cached channel'($) { + class App extends $mol_object2 { + static $ = $; + static value(next = 1) { + return next + 1; + } + } + __decorate([ + $mol_wire_solo + ], App, "value", null); + $mol_assert_equal(App.value(), 2); + App.value(2); + $mol_assert_equal(App.value(), 3); + }, + 'Read Pushed'($) { + class App extends $mol_object2 { + static $ = $; + static value(next = 0) { + return next; + } + } + __decorate([ + $mol_wire_solo + ], App, "value", null); + $mol_assert_equal(App.value(1), 1); + $mol_assert_equal(App.value(), 1); + }, + 'Mem overrides mem'($) { + class Base extends $mol_object2 { + static $ = $; + static value(next = 1) { + return next + 1; + } + } + __decorate([ + $mol_wire_solo + ], Base, "value", null); + class Middle extends Base { + static value(next) { + return super.value(next) + 1; + } + } + __decorate([ + $mol_wire_solo + ], Middle, "value", null); + class App extends Middle { + static value(next) { + return super.value(next) * 3; + } + } + __decorate([ + $mol_wire_solo + ], App, "value", null); + $mol_assert_equal(App.value(), 9); + $mol_assert_equal(App.value(5), 21); + $mol_assert_equal(App.value(), 21); + }, + 'Auto recalculation of cached values'($) { + class App extends $mol_object2 { + static $ = $; + static xxx(next) { + return next || 1; + } + static yyy() { + return this.xxx() + 1; + } + static zzz() { + return this.yyy() + 1; + } + } + __decorate([ + $mol_wire_solo + ], App, "xxx", null); + __decorate([ + $mol_wire_solo + ], App, "yyy", null); + __decorate([ + $mol_wire_solo + ], App, "zzz", null); + $mol_assert_equal(App.yyy(), 2); + $mol_assert_equal(App.zzz(), 3); + App.xxx(5); + $mol_assert_equal(App.zzz(), 7); + }, + 'Skip recalculation when actually no dependency changes'($) { + const log = []; + class App extends $mol_object2 { + static $ = $; + static xxx(next) { + log.push('xxx'); + return next || 1; + } + static yyy() { + log.push('yyy'); + return [Math.sign(this.xxx())]; + } + static zzz() { + log.push('zzz'); + return this.yyy()[0] + 1; + } + } + __decorate([ + $mol_wire_solo + ], App, "xxx", null); + __decorate([ + $mol_wire_solo + ], App, "yyy", null); + __decorate([ + $mol_wire_solo + ], App, "zzz", null); + App.zzz(); + $mol_assert_like(log, ['zzz', 'yyy', 'xxx']); + App.xxx(5); + $mol_assert_like(log, ['zzz', 'yyy', 'xxx', 'xxx']); + App.zzz(); + $mol_assert_like(log, ['zzz', 'yyy', 'xxx', 'xxx', 'yyy']); + }, + 'Flow: Auto'($) { + class App extends $mol_object2 { + static get $() { return $; } + static source(next = 1) { return next; } + static condition(next = true) { return next; } + static counter = 0; + static result() { + const res = this.condition() ? this.source() : 0; + return res + this.counter++; + } + } + __decorate([ + $mol_wire_solo + ], App, "source", null); + __decorate([ + $mol_wire_solo + ], App, "condition", null); + __decorate([ + $mol_wire_solo + ], App, "result", null); + $mol_assert_equal(App.result(), 1); + $mol_assert_equal(App.counter, 1); + App.source(10); + $mol_assert_equal(App.result(), 11); + $mol_assert_equal(App.counter, 2); + App.condition(false); + $mol_assert_equal(App.result(), 2); + $mol_assert_equal(App.counter, 3); + $mol_wire_fiber.sync(); + $mol_assert_equal(App.source(), 1); + App.source(20); + $mol_assert_equal(App.result(), 2); + $mol_assert_equal(App.counter, 3); + App.condition(true); + $mol_assert_equal(App.result(), 23); + $mol_assert_equal(App.counter, 4); + }, + 'Dupes: Equality'($) { + let counter = 0; + class App extends $mol_object2 { + static $ = $; + static foo(next) { + return next ?? { numbs: [1] }; + } + static bar() { + return { ...this.foo(), count: ++counter }; + } + } + __decorate([ + $mol_wire_solo + ], App, "foo", null); + __decorate([ + $mol_wire_solo + ], App, "bar", null); + $mol_assert_like(App.bar(), { numbs: [1], count: 1 }); + App.foo({ numbs: [1] }); + $mol_assert_like(App.bar(), { numbs: [1], count: 1 }); + App.foo({ numbs: [2] }); + $mol_assert_like(App.bar(), { numbs: [2], count: 2 }); + }, + 'Cycle: Fail'($) { + class App extends $mol_object2 { + static $ = $; + static foo() { + return this.bar() + 1; + } + static bar() { + return this.foo() + 1; + } + static test() { + $mol_assert_fail(() => App.foo(), 'Circular subscription'); + } + } + __decorate([ + $mol_wire_solo + ], App, "foo", null); + __decorate([ + $mol_wire_solo + ], App, "bar", null); + __decorate([ + $mol_wire_method + ], App, "test", null); + App.test(); + }, + 'Different order of pull and push'($) { + class App extends $mol_object2 { + static $ = $; + static store(next = 0) { + return next; + } + static fast(next) { + return this.store(next); + } + static slow(next) { + if (next !== undefined) + this.slow(); + return this.store(next); + } + } + __decorate([ + $mol_wire_solo + ], App, "store", null); + __decorate([ + $mol_wire_solo + ], App, "fast", null); + __decorate([ + $mol_wire_solo + ], App, "slow", null); + App.fast(); + $mol_assert_equal(App.slow(666), 666); + $mol_assert_equal(App.fast(), App.slow(), 666); + App.store(777); + $mol_assert_equal(App.fast(), App.slow(), 777); + }, + 'Actions inside invariant'($) { + class App extends $mol_object2 { + static $ = $; + static count(next = 0) { + return next; + } + static count2() { + return this.count(); + } + static res() { + const count = this.count2(); + if (!count) + this.count(count + 1); + return count + 1; + } + } + __decorate([ + $mol_wire_solo + ], App, "count", null); + __decorate([ + $mol_wire_solo + ], App, "count2", null); + __decorate([ + $mol_wire_solo + ], App, "res", null); + $mol_assert_like(App.res(), 1); + App.count(5); + $mol_assert_like(App.res(), 6); + }, + async 'Toggle with async'($) { + class App extends $mol_object2 { + static $ = $; + static checked(next = false) { + $$.$mol_wait_timeout(0); + return next; + } + static toggle() { + const prev = this.checked(); + $mol_assert_unique(this.checked(!prev), prev); + } + static res() { + return this.checked(); + } + static test() { + $mol_assert_equal(App.res(), false); + App.toggle(); + $mol_assert_equal(App.res(), true); + } + } + __decorate([ + $mol_wire_solo + ], App, "checked", null); + __decorate([ + $mol_wire_method + ], App, "toggle", null); + __decorate([ + $mol_wire_solo + ], App, "res", null); + __decorate([ + $mol_wire_method + ], App, "test", null); + await $mol_wire_async(App).test(); + }, + 'Restore after error'($) { + class App extends $mol_object2 { + static get $() { return $; } + static condition(next = false) { return next; } + static broken() { + if (this.condition()) { + $mol_fail(new Error('test error')); + } + return 1; + } + static result() { + return this.broken(); + } + } + __decorate([ + $mol_wire_solo + ], App, "condition", null); + __decorate([ + $mol_wire_solo + ], App, "broken", null); + __decorate([ + $mol_wire_solo + ], App, "result", null); + $mol_assert_equal(App.result(), 1); + App.condition(true); + $mol_assert_fail(() => App.result(), 'test error'); + App.condition(false); + $mol_assert_equal(App.result(), 1); + }, + async 'Wait for data'($) { + class App extends $mol_object2 { + static $ = $; + static async source() { + return 'Jin'; + } + static middle() { + return $mol_wire_sync(this).source(); + } + static target() { + return this.middle(); + } + static test() { + $mol_assert_equal(App.target(), 'Jin'); + } + } + __decorate([ + $mol_wire_solo + ], App, "middle", null); + __decorate([ + $mol_wire_solo + ], App, "target", null); + __decorate([ + $mol_wire_method + ], App, "test", null); + await $mol_wire_async(App).test(); + }, + 'Auto destroy on long alone'($) { + let destroyed = false; + class App extends $mol_object2 { + static $ = $; + static showing(next = true) { + return next; + } + static details() { + return { + destructor() { + destroyed = true; + } + }; + } + static render() { + return this.showing() ? this.details() : null; + } + } + __decorate([ + $mol_wire_solo + ], App, "showing", null); + __decorate([ + $mol_wire_solo + ], App, "details", null); + __decorate([ + $mol_wire_solo + ], App, "render", null); + const details = App.render(); + $mol_assert_ok(details); + App.showing(false); + $mol_assert_not(App.render()); + App.showing(true); + $mol_assert_equal(App.render(), details); + $mol_wire_fiber.sync(); + $mol_assert_not(destroyed); + App.showing(false); + $mol_wire_fiber.sync(); + $mol_assert_ok(destroyed); + App.showing(true); + $mol_assert_unique(App.render(), details); + }, + async 'Hold pubs while wait async task'($) { + class App extends $mol_object2 { + static $ = $; + static counter = 0; + static resets(next) { + return ($mol_wire_probe(() => this.resets()) ?? -1) + 1; + } + static async wait() { } + static value() { + return ++this.counter; + } + static result() { + if (this.resets()) + $mol_wire_sync(this).wait(); + return this.value(); + } + static test() { + } + } + __decorate([ + $mol_wire_solo + ], App, "resets", null); + __decorate([ + $mol_wire_solo + ], App, "value", null); + __decorate([ + $mol_wire_solo + ], App, "result", null); + __decorate([ + $mol_wire_method + ], App, "test", null); + $mol_assert_equal(App.result(), 1); + App.resets(null); + $mol_wire_fiber.sync(); + $mol_assert_equal(await $mol_wire_async(App).result(), 1); + }, + 'Owned value has js-path name'() { + class App extends $mol_object2 { + static title() { + return new $mol_object2; + } + } + __decorate([ + $mol_wire_solo + ], App, "title", null); + $mol_assert_equal(`${App.title()}`, 'App.title<>'); + }, + 'Unsubscribe from temp pubs on complete'($) { + class Random extends $mol_object2 { + static $ = $; + static seed() { + return Math.random(); + } + static resets(next) { + return Math.random(); + } + static value() { + this.resets(); + return this.seed(); + } + } + __decorate([ + $mol_wire_method + ], Random, "seed", null); + __decorate([ + $mol_wire_solo + ], Random, "resets", null); + __decorate([ + $mol_wire_solo + ], Random, "value", null); + const first = Random.value(); + Random.resets(null); + $mol_assert_unique(Random.value(), first); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + async 'Error caching'($) { + const next_cached = 123; + class Some extends $mol_object2 { + static $ = $; + static data(id, next) { + if (next) + return next; + setTimeout(() => { + $mol_wire_async(this).data(id, next_cached); + }, 10); + $mol_fail_hidden(new Promise(() => { })); + } + static run() { + return this.data('1'); + } + } + __decorate([ + $mol_wire_plex + ], Some, "data", null); + __decorate([ + $mol_wire_method + ], Some, "run", null); + const val = await $mol_wire_async(Some).run(); + $mol_assert_equal(val, next_cached); + }, + 'Memoize by single simple key'($) { + class Team extends $mol_object2 { + static $ = $; + static user_name(user, next) { + return next ?? user; + } + static user_names() { + return [ + this.user_name('jin'), + this.user_name('john'), + ]; + } + } + __decorate([ + $mol_wire_plex + ], Team, "user_name", null); + __decorate([ + $mol_wire_solo + ], Team, "user_names", null); + $mol_assert_like(Team.user_names(), ['jin', 'john']); + Team.user_name('jin', 'JIN'); + $mol_assert_like(Team.user_names(), ['JIN', 'john']); + }, + 'Memoize by single complex key'($) { + class Map extends $mol_object2 { + static $ = $; + static tile(pos) { + return new String(`/tile=${pos}`); + } + static test() { + $mol_assert_like(this.tile([0, 1]), new String('/tile=0,1')); + $mol_assert_equal(this.tile([0, 1]), this.tile([0, 1])); + } + } + __decorate([ + $mol_wire_plex + ], Map, "tile", null); + __decorate([ + $mol_wire_method + ], Map, "test", null); + Map.test(); + }, + 'Owned value has js-path name'() { + class App extends $mol_object2 { + static like(friend) { + return new $mol_object2; + } + static relation([friend, props]) { + return new $mol_object2; + } + } + __decorate([ + $mol_wire_plex + ], App, "like", null); + __decorate([ + $mol_wire_plex + ], App, "relation", null); + $mol_assert_equal(`${App.like(123)}`, 'App.like<123>'); + $mol_assert_equal(`${App.relation([123, [456]])}`, 'App.relation<[123,[456]]>'); + }, + 'Deep deps'($) { + class Fib extends $mol_object2 { + static $ = $; + static sums = 0; + static value(index, next) { + if (next) + return next; + if (index < 2) + return 1; + ++this.sums; + return this.value(index - 1) + this.value(index - 2); + } + } + __decorate([ + $mol_wire_plex + ], Fib, "value", null); + $mol_assert_equal(Fib.value(4), 5); + $mol_assert_equal(Fib.sums, 3); + Fib.value(1, 2); + $mol_assert_equal(Fib.value(4), 8); + $mol_assert_equal(Fib.sums, 6); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Previous value'() { + class Cache extends $mol_object2 { + static store(next) { + if (!next) + return {}; + return { + ...$mol_wire_probe(() => this.store()) ?? {}, + ...next, + }; + } + } + __decorate([ + $mol_wire_solo + ], Cache, "store", null); + $mol_assert_like(Cache.store(), {}); + $mol_assert_like(Cache.store({ foo: 666 }), { foo: 666 }); + $mol_assert_like(Cache.store({ bar: 777 }), { foo: 666, bar: 777 }); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + $.$mol_after_tick = $mol_after_mock_commmon; + }); +})($ || ($ = {})); + +; +"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 last = 0; + static wrap(task) { + return function (...args) { + return Plus1.last = (task.call(this, ...args) || 0) + 1; + }; + } + } + 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 { + 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 level = 2; + static pow(a) { + return a ** this.level; + } + } + __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 { + bar; + constructor(bar) { + this.bar = bar; + } + }; + Foo = __decorate([ + BarInc.class + ], Foo); + $mol_assert_equal(new Foo(2).bar, 3); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'memoize field'() { + class Foo { + static one = 1; + static get two() { + return ++this.one; + } + static set two(next) { } + } + __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); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Primitives'() { + $mol_assert_equal($mol_key(null), 'null'); + $mol_assert_equal($mol_key(false), 'false'); + $mol_assert_equal($mol_key(true), 'true'); + $mol_assert_equal($mol_key(0), '0'); + $mol_assert_equal($mol_key(1n << 64n), '18446744073709551616n'); + $mol_assert_equal($mol_key(''), '""'); + }, + 'Array & POJO'() { + $mol_assert_equal($mol_key([null]), '[null]'); + $mol_assert_equal($mol_key({ foo: 0 }), '{"foo":0}'); + $mol_assert_equal($mol_key({ foo: [false] }), '{"foo":[false]}'); + }, + 'Uint8Array'() { + $mol_assert_equal($mol_key(new Uint8Array([1, 2])), '[1,2]'); + $mol_assert_equal($mol_key([new Uint8Array([1, 2])]), '[[1,2]]'); + $mol_assert_equal($mol_key({ foo: new Uint8Array([1, 2]) }), '{"foo":[1,2]}'); + }, + 'Function'() { + const func = () => { }; + $mol_assert_equal($mol_key(func), $mol_key(func)); + $mol_assert_unique($mol_key(func), $mol_key(() => { })); + }, + 'Objects'() { + class User { + } + const jin = new User(); + $mol_assert_equal($mol_key(jin), $mol_key(jin)); + $mol_assert_unique($mol_key(jin), $mol_key(new User())); + }, + 'Elements'() { + const foo = $mol_jsx("div", null, "bar"); + $mol_assert_equal($mol_key(foo), $mol_key(foo)); + $mol_assert_unique($mol_key(foo), $mol_key($mol_jsx("div", null, "bar"))); + }, + 'Custom JSON representation'() { + class User { + name; + age; + constructor(name, age) { + this.name = name; + this.age = age; + } + toJSON() { return { name: this.name }; } + } + $mol_assert_equal($mol_key(new User('jin', 18)), '{"name":"jin"}'); + }, + 'Special native classes'() { + $mol_assert_equal($mol_key(new Date('xyz')), 'null'); + $mol_assert_equal($mol_key(new Date('2001-01-02T03:04:05.678Z')), '"2001-01-02T03:04:05.678Z"'); + $mol_assert_equal($mol_key(/./), '"/./"'); + $mol_assert_equal($mol_key(/\./gimsu), '"/\\\\./gimsu"'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + class $mol_wire_log extends $mol_object2 { + static watch(task) { + return task; + } + static track(fiber) { + const prev = $mol_wire_probe(() => this.track(fiber)); + let next; + try { + next = fiber.sync(); + } + finally { + for (const pub of fiber.pub_list) { + if (pub instanceof $mol_wire_fiber) { + this.track(pub); + } + } + } + if (fiber.host === this) + return next; + if ($mol_compare_deep(prev, next)) { + this.$.$mol_log3_rise({ + message: '💧 Same', + place: fiber, + }); + } + else if (prev !== undefined) { + this.$.$mol_log3_rise({ + message: '🔥 Next', + place: fiber, + prev, + }); + } + return next; + } + static active() { + try { + this.watch()?.(); + } + catch (error) { + $mol_fail_log(error); + } + finally { + for (const pub of $mol_wire_auto().pub_list) { + if (pub instanceof $mol_wire_fiber) { + this.track(pub); + } + } + } + } + } + __decorate([ + $mol_mem + ], $mol_wire_log, "watch", null); + __decorate([ + $mol_mem_key + ], $mol_wire_log, "track", null); + __decorate([ + $mol_mem + ], $mol_wire_log, "active", null); + $.$mol_wire_log = $mol_wire_log; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_wire_log.active(); +})($ || ($ = {})); + +; +"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['()']); + }, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'id auto generation'($) { + class $mol_view_test_item extends $mol_view { + } + class $mol_view_test_block extends $mol_view { + static $ = $; + element(id) { + return new $mol_view_test_item(); + } + } + __decorate([ + $mol_mem_key + ], $mol_view_test_block.prototype, "element", null); + var x = $mol_view_test_block.Root(0); + $mol_assert_equal(x.dom_node().id, '$mol_view_test_block.Root(0)'); + $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 $mol_view { + }; + x.$ = $; + $mol_assert_equal(x.dom_node(), x.dom_node()); + }, + 'content render'($) { + class $mol_view_test extends $mol_view { + sub() { + return ['lol', 5]; + } + } + var x = new $mol_view_test(); + x.$ = $; + var node = x.dom_tree(); + $mol_assert_equal(node.innerHTML, 'lol5'); + }, + 'bem attributes generation'($) { + class $mol_view_test_item extends $mol_view { + } + class $mol_view_test_block extends $mol_view { + Element(id) { + return new $mol_view_test_item(); + } + } + __decorate([ + $mol_mem_key + ], $mol_view_test_block.prototype, "Element", null); + var x = new $mol_view_test_block(); + x.$ = $; + $mol_assert_equal(x.dom_node().getAttribute('mol_view_test_block'), ''); + $mol_assert_equal(x.dom_node().getAttribute('mol_view'), ''); + $mol_assert_equal(x.Element(0).dom_node().getAttribute('mol_view_test_block_element'), ''); + $mol_assert_equal(x.Element(0).dom_node().getAttribute('mol_view_test_item'), ''); + $mol_assert_equal(x.Element(0).dom_node().getAttribute('mol_view'), ''); + }, + 'render custom attributes'($) { + class $mol_view_test extends $mol_view { + attr() { + return { + 'href': '#haha', + 'required': true, + 'hidden': false, + }; + } + } + var x = new $mol_view_test(); + x.$ = $; + var node = x.dom_tree(); + $mol_assert_equal(node.getAttribute('href'), '#haha'); + $mol_assert_equal(node.getAttribute('required'), 'true'); + $mol_assert_equal(node.getAttribute('hidden'), null); + }, + 'render custom fields'($) { + class $mol_view_test extends $mol_view { + field() { + return { + 'hidden': true + }; + } + } + var x = new $mol_view_test(); + x.$ = $; + var node = x.dom_tree(); + $mol_assert_equal(node.hidden, true); + }, + 'attach event handlers'($) { + var clicked = false; + class $mol_view_test extends $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(); + $mol_assert_ok(clicked); + }, + }); +})($ || ($ = {})); + +; +"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'); + }, + 'custom properties'() { + class $mol_style_sheet_test extends $mol_view { + } + const sheet = $mol_style_sheet($mol_style_sheet_test, { + '--isVariable': 'yes', + }); + $mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\t--is-variable: yes;\n}\n'); + }, + 'custom property groups'() { + class $mol_style_sheet_test extends $mol_view { + } + const { px } = $mol_style_unit; + const sheet = $mol_style_sheet($mol_style_sheet_test, { + '--variable': { + test: px(5) + } + }); + $mol_assert_equal(sheet, '[mol_style_sheet_test] {\n\t--variable-test: 5px;\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]:where([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]:where([mol_theme="$mol_theme_dark"]) :where([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] :where([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] > :where([mol_style_sheet_test1]) {\n\tcolor: red;\n\tdisplay: block;\n}\n'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"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), ''); + }, + }); +})($ || ($ = {})); + +; +"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); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class TestClass extends Uint8Array { + } + $mol_test({ + 'Uint8Array vs itself'() { + $mol_assert_ok($mol_compare_array(new Uint8Array, new Uint8Array)); + $mol_assert_ok($mol_compare_array(new Uint8Array([0]), new Uint8Array([0]))); + $mol_assert_not($mol_compare_array(new Uint8Array([0]), new Uint8Array([1]))); + }, + 'Uint8Array vs subclassed array'() { + $mol_assert_not($mol_compare_array(new Uint8Array, new TestClass)); + }, + }); +})($ || ($ = {})); + +; +"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); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test_mocks.push(context => { + class $mol_state_local_mock extends $mol_state_local { + static state = {}; + static value(key, next = this.state[key]) { + return this.state[key] = (next || null); + } + } + __decorate([ + $mol_mem_key + ], $mol_state_local_mock, "value", null); + context.$mol_state_local = $mol_state_local_mock; + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + class $mol_locale_mock extends $mol_locale { + lang(next = 'en') { return next; } + static source(lang) { + return {}; + } + } + __decorate([ + $mol_mem + ], $mol_locale_mock.prototype, "lang", null); + __decorate([ + $mol_mem_key + ], $mol_locale_mock, "source", null); + $.$mol_locale = $mol_locale_mock; + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + $mol_test({ + 'handle clicks by default'($) { + let clicked = false; + const clicker = $mol_button.make({ + $, + click: (event) => { clicked = true; }, + }); + const element = clicker.dom_tree(); + const event = $mol_dom_context.document.createEvent('mouseevent'); + event.initEvent('click', true, true); + element.dispatchEvent(event); + $mol_assert_ok(clicked); + }, + 'no handle clicks if disabled'($) { + let clicked = false; + const clicker = $mol_button.make({ + $, + click: (event) => { clicked = true; }, + enabled: () => false, + }); + const element = clicker.dom_tree(); + const event = $mol_dom_context.document.createEvent('mouseevent'); + event.initEvent('click', true, true); + element.dispatchEvent(event); + $mol_assert_not(clicked); + }, + async 'Store error'($) { + const clicker = $mol_button.make({ + $, + click: (event) => $.$mol_fail(new Error('Test error')), + }); + const event = $mol_dom_context.document.createEvent('mouseevent'); + $mol_assert_fail(() => clicker.event_activate(event), 'Test error'); + await Promise.resolve(); + $mol_assert_equal(clicker.status()[0].message, 'Test error'); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'escape'() { + const specials = $mol_regexp.from('.*+?^${}()|[]\\'); + $mol_assert_equal(specials.source, '\\.\\*\\+\\?\\^\\$\\{\\}\\(\\)\\|\\[\\]\\\\'); + }, + 'char code'() { + const space = $mol_regexp.from(32); + $mol_assert_like(' '.match(space), [' ']); + }, + 'repeat fixed'() { + const { repeat, decimal_only: digit } = $mol_regexp; + const year = repeat(digit, 4, 4); + $mol_assert_like('#2020#'.match(year), ['2020']); + }, + 'greedy repeat'() { + const { repeat, repeat_greedy, latin_only: letter } = $mol_regexp; + $mol_assert_like('abc'.match(repeat(letter, 1, 2)), ['a', 'b', 'c']); + $mol_assert_like('abc'.match(repeat_greedy(letter, 1, 2)), ['ab', 'c']); + }, + 'repeat range'() { + const { repeat_greedy, decimal_only: digit } = $mol_regexp; + const year = repeat_greedy(digit, 2, 4); + $mol_assert_like('#2#'.match(year), null); + $mol_assert_like('#20#'.match(year), ['20']); + $mol_assert_like('#2020#'.match(year), ['2020']); + $mol_assert_like('#20201#'.match(year), ['2020']); + }, + 'repeat from'() { + const { repeat_greedy, latin_only: letter } = $mol_regexp; + const name = repeat_greedy(letter, 2); + $mol_assert_like('##'.match(name), null); + $mol_assert_like('#a#'.match(name), null); + $mol_assert_like('#ab#'.match(name), ['ab']); + $mol_assert_like('#abc#'.match(name), ['abc']); + }, + 'from string'() { + const regexp = $mol_regexp.from('[\\d]'); + $mol_assert_equal(regexp.source, '\\[\\\\d\\]'); + $mol_assert_equal(regexp.flags, 'gsu'); + }, + 'from regexp'() { + const regexp = $mol_regexp.from(/[\d]/i); + $mol_assert_equal(regexp.source, '[\\d]'); + $mol_assert_equal(regexp.flags, 'i'); + }, + 'split'() { + const regexp = $mol_regexp.from(';'); + $mol_assert_like('aaa;bbb;ccc'.split(regexp), ['aaa', ';', 'bbb', ';', 'ccc']); + $mol_assert_like('aaa;;ccc'.split(regexp), ['aaa', ';', '', ';', 'ccc']); + $mol_assert_like('aaa'.split(regexp), ['aaa']); + $mol_assert_like(''.split(regexp), ['']); + }, + 'test for matching'() { + const regexp = $mol_regexp.from('foo'); + $mol_assert_like(regexp.test(''), false); + $mol_assert_like(regexp.test('fo'), false); + $mol_assert_like(regexp.test('foo'), true); + $mol_assert_like(regexp.test('foobar'), true); + $mol_assert_like(regexp.test('barfoo'), true); + }, + 'case ignoring'() { + const xxx = $mol_regexp.from('x', { ignoreCase: true }); + $mol_assert_like(xxx.flags, 'gisu'); + $mol_assert_like(xxx.exec('xx')[0], 'x'); + $mol_assert_like(xxx.exec('XX')[0], 'X'); + }, + 'multiline mode'() { + const { end, from } = $mol_regexp; + const xxx = from(['x', end], { multiline: true }); + $mol_assert_like(xxx.exec('x\ny')[0], 'x'); + $mol_assert_like(xxx.flags, 'gmsu'); + }, + 'flags override'() { + const triplet = $mol_regexp.from($mol_regexp.from(/.../, { ignoreCase: true }), { multiline: true }); + $mol_assert_like(triplet.toString(), '/.../gmsu'); + }, + 'sequence'() { + const { begin, end, decimal_only: digit, repeat, from } = $mol_regexp; + const year = repeat(digit, 4, 4); + const dash = '-'; + const month = repeat(digit, 2, 2); + const day = repeat(digit, 2, 2); + const date = from([begin, year, dash, month, dash, day, end]); + $mol_assert_like(date.exec('2020-01-02')[0], '2020-01-02'); + }, + 'optional'() { + const name = $mol_regexp.from(['A', ['4']]); + $mol_assert_equal('AB'.match(name)[0], 'A'); + $mol_assert_equal('A4'.match(name)[0], 'A4'); + }, + 'anon variants'() { + const name = $mol_regexp.from(['A', $mol_regexp.vary(['4', '5'])]); + $mol_assert_equal('AB'.match(name), null); + $mol_assert_equal('A4'.match(name)[0], 'A4'); + $mol_assert_equal('A5'.match(name)[0], 'A5'); + }, + 'only groups'() { + const regexp = $mol_regexp.from({ dog: '@' }); + $mol_assert_like([...'#'.matchAll(regexp)][0].groups, undefined); + $mol_assert_like([...'@'.matchAll(regexp)][0].groups, { dog: '@' }); + }, + 'catch skipped'() { + const regexp = $mol_regexp.from(/(@)(\d?)/g); + $mol_assert_like([...'[[@]]'.matchAll(regexp)].map(f => [...f]), [ + ['[['], + ['@', '@', ''], + [']]'], + ]); + }, + 'enum variants'() { + let Sex; + (function (Sex) { + Sex["male"] = "male"; + Sex["female"] = "female"; + })(Sex || (Sex = {})); + const sexism = $mol_regexp.from(Sex); + $mol_assert_like([...''.matchAll(sexism)].length, 0); + $mol_assert_like([...'trans'.matchAll(sexism)][0].groups, undefined); + $mol_assert_like([...'male'.matchAll(sexism)][0].groups, { male: 'male', female: '' }); + $mol_assert_like([...'female'.matchAll(sexism)][0].groups, { male: '', female: 'female' }); + }, + 'recursive only groups'() { + let Sex; + (function (Sex) { + Sex["male"] = "male"; + Sex["female"] = "female"; + })(Sex || (Sex = {})); + const sexism = $mol_regexp.from({ Sex }); + $mol_assert_like([...''.matchAll(sexism)].length, 0); + $mol_assert_like([...'male'.matchAll(sexism)][0].groups, { Sex: 'male', male: 'male', female: '' }); + $mol_assert_like([...'female'.matchAll(sexism)][0].groups, { Sex: 'female', male: '', female: 'female' }); + }, + 'sequence with groups'() { + const { begin, end, decimal_only: digit, repeat, from } = $mol_regexp; + const year = repeat(digit, 4, 4); + const dash = '-'; + const month = repeat(digit, 2, 2); + const day = repeat(digit, 2, 2); + const regexp = from([begin, { year }, dash, { month }, dash, { day }, end]); + const found = [...'2020-01-02'.matchAll(regexp)]; + $mol_assert_like(found[0].groups, { + year: '2020', + month: '01', + day: '02', + }); + }, + 'sequence with groups of mixed type'() { + const prefix = '/'; + const postfix = '/'; + const regexp = $mol_regexp.from([{ prefix }, /(\w+)/, { postfix }, /([gumi]*)/]); + $mol_assert_like([...'/foo/mi'.matchAll(regexp)], [ + Object.assign(["/foo/mi", "/", "foo", "/", "mi"], { + groups: { + prefix: '/', + postfix: '/', + }, + index: 0, + input: "/", + }), + ]); + }, + 'recursive sequence with groups'() { + const { begin, end, decimal_only: digit, repeat, from } = $mol_regexp; + const year = repeat(digit, 4, 4); + const dash = '-'; + const month = repeat(digit, 2, 2); + const day = repeat(digit, 2, 2); + const regexp = from([ + begin, { date: [{ year }, dash, { month }] }, dash, { day }, end + ]); + const found = [...'2020-01-02'.matchAll(regexp)]; + $mol_assert_like(found[0].groups, { + date: '2020-01', + year: '2020', + month: '01', + day: '02', + }); + }, + 'parse multiple'() { + const { decimal_only: digit, from } = $mol_regexp; + const regexp = from({ digit }); + $mol_assert_like([...'123'.matchAll(regexp)].map(f => f.groups), [ + { digit: '1' }, + { digit: '2' }, + { digit: '3' }, + ]); + }, + 'named variants'() { + const { begin, or, end, from } = $mol_regexp; + const sexism = from([ + begin, 'sex = ', { sex: ['male', or, 'female'] }, end + ]); + $mol_assert_like([...'sex = male'.matchAll(sexism)][0].groups, { sex: 'male' }); + $mol_assert_like([...'sex = female'.matchAll(sexism)][0].groups, { sex: 'female' }); + $mol_assert_like([...'sex = malefemale'.matchAll(sexism)][0].groups, undefined); + }, + 'force after'() { + const { latin_only: letter, force_after, from } = $mol_regexp; + const regexp = from([letter, force_after('.')]); + $mol_assert_like('x.'.match(regexp), ['x']); + $mol_assert_like('x,'.match(regexp), null); + }, + 'forbid after'() { + const { latin_only: letter, forbid_after, from } = $mol_regexp; + const regexp = from([letter, forbid_after('.')]); + $mol_assert_like('x.'.match(regexp), null); + $mol_assert_like('x,'.match(regexp), ['x']); + }, + 'char except'() { + const { char_except, latin_only, tab } = $mol_regexp; + const name = char_except(latin_only, tab); + $mol_assert_like('a'.match(name), null); + $mol_assert_like('\t'.match(name), null); + $mol_assert_like('('.match(name), ['(']); + }, + 'unicode only'() { + const { unicode_only, from } = $mol_regexp; + const name = from([ + unicode_only('Script', 'Cyrillic'), + unicode_only('Hex_Digit'), + ]); + $mol_assert_like('FF'.match(name), null); + $mol_assert_like('ФG'.match(name), null); + $mol_assert_like('ФF'.match(name), ['ФF']); + }, + 'generate by optional with inner group'() { + const { begin, end, from } = $mol_regexp; + const animals = from([begin, '#', ['^', { dog: '@' }], end]); + $mol_assert_equal(animals.generate({}), '#'); + $mol_assert_equal(animals.generate({ dog: false }), '#'); + $mol_assert_equal(animals.generate({ dog: true }), '#^@'); + $mol_assert_fail(() => animals.generate({ dog: '$' }), 'Wrong param: dog=$'); + }, + 'generate by optional with inner group with variants'() { + const { begin, end, from } = $mol_regexp; + const animals = from([begin, '#', ['^', { animal: { dog: '@', fox: '&' } }], end]); + $mol_assert_equal(animals.generate({}), '#'); + $mol_assert_equal(animals.generate({ dog: true }), '#^@'); + $mol_assert_equal(animals.generate({ fox: true }), '#^&'); + $mol_assert_fail(() => animals.generate({ dog: '$' }), 'Wrong param: dog=$'); + }, + 'complex example'() { + const { begin, end, char_only, char_range, latin_only, slash_back, repeat_greedy, from, } = $mol_regexp; + const atom_char = char_only(latin_only, "!#$%&'*+/=?^`{|}~-"); + const atom = repeat_greedy(atom_char, 1); + const dot_atom = from([atom, repeat_greedy(['.', atom])]); + const name_letter = char_only(char_range(0x01, 0x08), 0x0b, 0x0c, char_range(0x0e, 0x1f), 0x21, char_range(0x23, 0x5b), char_range(0x5d, 0x7f)); + const quoted_pair = from([ + slash_back, + char_only(char_range(0x01, 0x09), 0x0b, 0x0c, char_range(0x0e, 0x7f)) + ]); + const name = repeat_greedy({ name_letter, quoted_pair }); + const quoted_name = from(['"', { name }, '"']); + const local_part = from({ dot_atom, quoted_name }); + const domain = dot_atom; + const mail = from([begin, local_part, '@', { domain }, end]); + $mol_assert_equal('foo..bar@example.org'.match(mail), null); + $mol_assert_equal('foo..bar"@example.org'.match(mail), null); + $mol_assert_like([...'foo.bar@example.org'.matchAll(mail)][0].groups, { + dot_atom: "foo.bar", + quoted_name: "", + name: "", + name_letter: "", + quoted_pair: "", + domain: "example.org", + }); + $mol_assert_like([...'"foo..bar"@example.org'.matchAll(mail)][0].groups, { + dot_atom: "", + quoted_name: '"foo..bar"', + name: "foo..bar", + name_letter: "r", + quoted_pair: "", + domain: "example.org", + }); + $mol_assert_equal(mail.generate({ dot_atom: 'foo.bar', domain: 'example.org' }), 'foo.bar@example.org'); + $mol_assert_equal(mail.generate({ name: 'foo..bar', domain: 'example.org' }), '"foo..bar"@example.org'); + $mol_assert_fail(() => mail.generate({ dot_atom: 'foo..bar', domain: 'example.org' }), 'Wrong param: dot_atom=foo..bar'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + var $$; + (function ($$) { + $mol_test({ + 'Empty needle'() { + const app = new $mol_dimmer; + app.needle = () => ' '; + app.haystack = () => 'foo bar'; + $mol_assert_like(app.strings(), ['foo bar']); + }, + 'Empty haystack'() { + const app = new $mol_dimmer; + app.needle = () => 'foo bar'; + app.haystack = () => ''; + $mol_assert_like(app.strings(), ['']); + }, + 'Not found'() { + const app = new $mol_dimmer; + app.needle = () => 'foo'; + app.haystack = () => ' bar '; + $mol_assert_like(app.strings(), [' bar ']); + }, + 'One found'() { + const app = new $mol_dimmer; + app.needle = () => 'foo'; + app.haystack = () => ' barfoo '; + $mol_assert_like(app.strings(), [' bar', 'foo', ' ']); + }, + 'Multiple found'() { + const app = new $mol_dimmer; + app.needle = () => 'foo'; + app.haystack = () => ' foobarfoo foo'; + $mol_assert_like(app.strings(), [' ', 'foo', 'bar', 'foo', ' ', 'foo']); + }, + 'Fuzzy search'() { + const app = new $mol_dimmer; + app.needle = () => 'foo bar'; + app.haystack = () => ' barfoo '; + $mol_assert_like(app.strings(), [' ', 'bar', '', 'foo', ' ']); + }, + }); + })($$ = $.$$ || ($.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const png = new Uint8Array([0x1a, 0x0a, 0x00, 0x49, 0x48, 0x78, 0xda]); + $mol_test({ + 'base64 encode string'() { + $mol_assert_equal($mol_base64_encode('Hello, ΧΨΩЫ'), 'SGVsbG8sIM6nzqjOqdCr'); + }, + 'base64 encode binary'() { + $mol_assert_equal($mol_base64_encode(png), 'GgoASUh42g=='); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const png = new Uint8Array([0x1a, 0x0a, 0x00, 0x49, 0x48, 0x78, 0xda]); + $mol_test({ + 'base64 decode string'() { + $mol_assert_like($mol_base64_decode('SGVsbG8sIM6nzqjOqdCr'), new TextEncoder().encode('Hello, ΧΨΩЫ')); + }, + 'base64 decode binary'() { + $mol_assert_like($mol_base64_decode('GgoASUh42g=='), png); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_error_mix extends AggregateError { + cause; + name = $$.$mol_func_name(this.constructor).replace(/^\$/, '') + '_Error'; + constructor(message, cause = {}, ...errors) { + super(errors, message, { cause }); + this.cause = cause; + const stack_get = Object.getOwnPropertyDescriptor(this, 'stack')?.get ?? (() => super.stack); + Object.defineProperty(this, 'stack', { + get: () => (stack_get.call(this) ?? this.message) + '\n' + [JSON.stringify(this.cause, null, ' ') ?? 'no cause', ...this.errors.map(e => e.stack)].map(e => e.trim() + .replace(/at /gm, ' at ') + .replace(/^(?! +at )(.*)/gm, ' at | $1 (#)')).join('\n') + }); + } + static [Symbol.toPrimitive]() { + return this.toString(); + } + static toString() { + return $$.$mol_func_name(this); + } + static make(...params) { + return new this(...params); + } + } + $.$mol_error_mix = $mol_error_mix; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'auto name'() { + class Invalid extends $mol_error_mix { + } + const mix = new Invalid('foo'); + $mol_assert_equal(mix.name, 'Invalid_Error'); + }, + 'simpe mix'() { + const mix = new $mol_error_mix('foo', {}, new Error('bar'), new Error('lol')); + $mol_assert_equal(mix.message, 'foo'); + $mol_assert_equal(mix.errors.map(e => e.message), ['bar', 'lol']); + }, + 'provide additional info'() { + class Invalid extends $mol_error_mix { + } + const mix = new $mol_error_mix('Wrong password', {}, new Invalid('Too short', { value: 'p@ssw0rd', hint: '> 8 letters' }), new Invalid('Too simple', { value: 'p@ssw0rd', hint: 'need capital letter' })); + const hints = []; + if (mix instanceof $mol_error_mix) { + for (const er of mix.errors) { + if (er instanceof Invalid) { + hints.push(er.cause?.hint ?? ''); + } + } + } + $mol_assert_equal(hints, ['> 8 letters', 'need capital letter']); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + class $mol_data_error extends $mol_error_mix { + } + $.$mol_data_error = $mol_data_error; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_data_number = (val) => { + if (typeof val === 'number') + return val; + return $mol_fail(new $mol_data_error(`${val} is not a number`)); + }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Is number'() { + $mol_data_number(0); + }, + 'Is not number'() { + $mol_assert_fail(() => { + $mol_data_number('x'); + }, 'x is not a number'); + }, + 'Is object number'() { + $mol_assert_fail(() => { + $mol_data_number(new Number('')); + }, '0 is not a number'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_data_integer(val) { + const val2 = $mol_data_number(val); + if (Math.floor(val2) === val2) + return val2; + return $mol_fail(new $mol_data_error(`${val} is not an integer`)); + } + $.$mol_data_integer = $mol_data_integer; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Is integer'() { + $mol_data_integer(0); + }, + 'Is float'() { + $mol_assert_fail(() => { + $mol_data_integer(1.1); + }, '1.1 is not an integer'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'tagged typing'() { + const { Weight, Length } = $mol_data_tagged({ + Weight: $mol_data_integer, + Length: $mol_data_integer, + }); + Length(20); + let len = Length(10); + len = 20; + let num = len; + len = Length(Weight(20)); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + $mol_test({ + "Ref validation"($) { + $mol_assert_fail(() => $hyoo_crus_ref('qwertyui_asdfghjk123'), 'Wrong ref (qwertyui_asdfghjk123)'); + }, + "Pick ref home only"($) { + $mol_assert_equal($hyoo_crus_ref_land($hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref_land($hyoo_crus_ref('qwertyui_asdfghjk')), $hyoo_crus_ref('qwertyui_asdfghjk')); + }, + "Pick ref head only"($) { + $mol_assert_equal($hyoo_crus_ref_head($hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), 'zxcvbnm0'); + $mol_assert_equal($hyoo_crus_ref_head($hyoo_crus_ref('qwertyui_asdfghjk')), ''); + }, + "Ref encoding"($) { + const node = $hyoo_crus_ref_encode($hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')); + const root = $hyoo_crus_ref_encode($hyoo_crus_ref('qwertyui_asdfghjk')); + const rel_node = $hyoo_crus_ref_encode($hyoo_crus_ref('__zxcvbnm0')); + const rel_root = $hyoo_crus_ref_encode($hyoo_crus_ref('__')); + const all = $hyoo_crus_ref_encode($hyoo_crus_ref('')); + $mol_assert_equal(node.length, 18); + $mol_assert_equal(root.length, 12); + $mol_assert_equal(rel_node.length, 18); + $mol_assert_equal(rel_node.length, 18); + $mol_assert_equal(all.length, 12); + $mol_assert_equal($hyoo_crus_ref_decode(node), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')); + $mol_assert_equal($hyoo_crus_ref_decode(root), $hyoo_crus_ref('qwertyui_asdfghjk')); + $mol_assert_equal($hyoo_crus_ref_decode(rel_node), $hyoo_crus_ref('__zxcvbnm0')); + $mol_assert_equal($hyoo_crus_ref_decode(rel_root), $hyoo_crus_ref('')); + $mol_assert_equal($hyoo_crus_ref_decode(all), $hyoo_crus_ref('')); + }, + "Relate ref to base"($) { + $mol_assert_equal($hyoo_crus_ref_relate($hyoo_crus_ref('QWERTYUI_ASDFGHJK'), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref_relate($hyoo_crus_ref('QWERTYUI_ASDFGHJK_ZXCVBNM0'), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')); + $mol_assert_equal($hyoo_crus_ref_relate($hyoo_crus_ref('qwertyui_asdfghjk'), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref_relate($hyoo_crus_ref('qwertyui_asdfghjk_12345678'), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref('__zxcvbnm0')); + $mol_assert_equal($hyoo_crus_ref_relate($hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0'), $hyoo_crus_ref('qwertyui_asdfghjk')), $hyoo_crus_ref_relate($hyoo_crus_ref('qwertyui_asdfghjk'), $hyoo_crus_ref('qwertyui_asdfghjk')), $hyoo_crus_ref('')); + }, + "Resolve ref from base"($) { + $mol_assert_equal($hyoo_crus_ref_resolve($hyoo_crus_ref('QWERTYUI_ASDFGHJK_ZXCVBNM0'), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref_resolve($hyoo_crus_ref('QWERTYUI_ASDFGHJK'), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref_resolve($hyoo_crus_ref('qwertyui_asdfghjk'), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')), $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0')); + $mol_assert_equal($hyoo_crus_ref_resolve($hyoo_crus_ref('qwertyui_asdfghjk'), $hyoo_crus_ref('__12345678')), $hyoo_crus_ref_resolve($hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0'), $hyoo_crus_ref('__12345678')), $hyoo_crus_ref('qwertyui_asdfghjk_12345678')); + $mol_assert_equal($hyoo_crus_ref_resolve($hyoo_crus_ref('qwertyui_asdfghjk'), $hyoo_crus_ref('')), $hyoo_crus_ref_resolve($hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0'), $hyoo_crus_ref('')), $hyoo_crus_ref('qwertyui_asdfghjk')); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_crypto_salt() { + return $mol_crypto_native.getRandomValues(new Uint8Array(16)); + } + $.$mol_crypto_salt = $mol_crypto_salt; + $.$mol_crypto_salt_once = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6]); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + async 'sizes'() { + const secret = await $mol_crypto_secret.generate(); + const key = await secret.serial(); + $mol_assert_equal(key.byteLength, $mol_crypto_secret.size); + const data = new Uint8Array([1, 2, 3]); + const salt = $mol_crypto_salt(); + const closed = await secret.encrypt(data, salt); + $mol_assert_equal(closed.byteLength, 16); + }, + async 'decrypt self encrypted with auto generated key'() { + const secret = await $mol_crypto_secret.generate(); + const data = new Uint8Array([1, 2, 3]); + const salt = $mol_crypto_salt(); + const closed = await secret.encrypt(data, salt); + const opened = await secret.decrypt(closed, salt); + $mol_assert_equal(data, opened); + }, + async 'decrypt encrypted with exported auto generated key'() { + const data = new Uint8Array([1, 2, 3]); + const salt = $mol_crypto_salt(); + const Alice = await $mol_crypto_secret.generate(); + const closed = await Alice.encrypt(data, salt); + const Bob = await $mol_crypto_secret.from(await Alice.serial()); + const opened = await Bob.decrypt(closed, salt); + $mol_assert_equal(data, opened); + }, + async 'derivation from public & private keys'() { + const A = await $mol_crypto_key_private.generate(); + const B = await $mol_crypto_key_private.generate(); + const AK = await $mol_crypto_secret.derive(A.toString(), B.public().toString()); + const BK = await $mol_crypto_secret.derive(B.toString(), A.public().toString()); + $mol_assert_equal(await AK.serial(), await BK.serial()); + }, + async 'derivation from passwod'() { + const data = new Uint8Array([1, 2, 3]); + const salt1 = $mol_crypto_salt(); + const secret = await $mol_crypto_secret.pass('hello', salt1); + const salt2 = $mol_crypto_salt(); + const closed = await secret.encrypt(data, salt2); + const opened = await secret.decrypt(closed, salt2); + $mol_assert_equal(data, opened); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + class $hyoo_crus_auth extends $.$hyoo_crus_auth { + static current() { + return this.from('_9nV1NuqbUeu1sUiLaq_KI_g1ViEjhM3-PNwxwl4t6AumN_FTqZzWpZ0T1ec64n418nazPbKmzimFyjEJST1cAMPU48vm3r966UVMmfXwrUCGXPHIcvsxSsP1x4Tf7R9c'); + } + static embryos = [ + '_8sVK0YEb5PoN899wl1_J_4RVtlKCBF3zx7qrNjtttgobBewLTIVZTZY_00kAXGopu7sxBMwtsSFPwLGWfCsHcWULiSWqUauxKa4WgH6NPFjerHWrvbICSuKyF97oIX-A', + '_-x55YK_NNRv27E3awWeWs9PmzKbqLhWGBFADEfgRmonOuHUmoyg0tgUdStHtDM9XyNF1zK1Q7r3wOfnDuRaYwtPD-Ke87FjnTjjGBIkYtsok-JsvM4E4Xx3GqSC9aNBU', + '_x0qgvnkiuJWWxOg2rJMdnqKdwWJ8S9HqP87-evKJmIgFyP9Yx44jYoGXlbVM-i-boXzALM90jsFB74doBQkDEqeSe1Fbwvvuy1mbdir8FPecODVqHo8Ex8-Ms85zafgs', + '_y2R-iKYhGNLnGzZAtF6ivtMp8SqS72i81eAoqe3BXsLYyQp4baGlcMkj3qiQf6uhjRZXrb9UuoxpYBraMvLzob-1h1xq0Dyk-_gFdM_osD9GFl6hcaVQ6UaE5jMJL-YE', + '__cZfKZc2YH8Gvl8mLkwcoiht7Z31S1Uw8yeC23kO9ctqA4QmvqSLJOxdup4XmQOj7tyrO9RRMluLWIMXhnv38jlQRziNkOBijgw0cNCthUkdctdwAgxJh-c8L8UV2M4E', + '__nWu6ndldmMALXiLD-nt0y1KsbDmmU7ER-zEBm8rcAtY_BfF4-VpTfVYvTBuPVFE18EgJYFRY4dbqpAnUbw-UcdzzLWB31gRF_TDqyvumtxClfEjz_OssaG8sALRnmHo', + '_72Hwx_sDNRiEgdMIlaixh55UWvWdSgknJD-EImNjHA475U4xYwplEYEbKMQZ7QD88SDXzwwAK5zolb--e-EmgNMJVkqWF3yGTjKxAy-o9esRRsICF-LZM4Hgs_F7vkxc', + ]; + } + __decorate([ + $mol_mem + ], $hyoo_crus_auth, "current", null); + $.$hyoo_crus_auth = $hyoo_crus_auth; + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'Watch one value'($) { + class App extends $mol_object2 { + static $ = $; + static dict = new $mol_wire_dict(); + static lucky() { + return this.dict.get(777); + } + } + __decorate([ + $mol_wire_solo + ], App, "lucky", null); + $mol_assert_equal(App.lucky(), undefined); + App.dict.set(666, 6666); + $mol_assert_equal(App.lucky(), undefined); + App.dict.set(777, 7777); + $mol_assert_equal(App.lucky(), 7777); + App.dict.delete(777); + $mol_assert_equal(App.lucky(), undefined); + }, + 'Watch item channel'($) { + class App extends $mol_object2 { + static $ = $; + static dict = new $mol_wire_dict(); + static lucky() { + return this.dict.item(777); + } + } + __decorate([ + $mol_wire_solo + ], App, "lucky", null); + $mol_assert_equal(App.lucky(), null); + App.dict.item(666, 6666); + $mol_assert_equal(App.lucky(), null); + App.dict.item(777, 7777); + $mol_assert_equal(App.lucky(), 7777); + App.dict.item(777, null); + $mol_assert_equal(App.lucky(), null); + }, + 'Watch size'($) { + class App extends $mol_object2 { + static $ = $; + static dict = new $mol_wire_dict(); + static size() { + return this.dict.size; + } + } + __decorate([ + $mol_wire_solo + ], App, "size", null); + $mol_assert_equal(App.size(), 0); + App.dict.set(666, 6666); + $mol_assert_equal(App.size(), 1); + App.dict.set(777, 7777); + $mol_assert_equal(App.size(), 2); + App.dict.delete(777); + $mol_assert_equal(App.size(), 1); + }, + 'Watch for-of'($) { + class App extends $mol_object2 { + static $ = $; + static dict = new $mol_wire_dict(); + static sum() { + let keys = 0; + let vals = 0; + for (const [key, val] of this.dict) { + keys += key; + vals += val; + } + return [keys, vals]; + } + } + __decorate([ + $mol_wire_solo + ], App, "sum", null); + $mol_assert_like(App.sum(), [0, 0]); + App.dict.set(111, 1111); + $mol_assert_like(App.sum(), [111, 1111]); + App.dict.set(222, 2222); + $mol_assert_like(App.sum(), [333, 3333]); + App.dict.delete(111); + $mol_assert_like(App.sum(), [222, 2222]); + }, + 'Watch forEach'($) { + class App extends $mol_object2 { + static $ = $; + static dict = new $mol_wire_dict(); + static sum() { + let keys = 0; + let vals = 0; + this.dict.forEach((val, key) => { + keys += key; + vals += val; + }); + return [keys, vals]; + } + } + __decorate([ + $mol_wire_solo + ], App, "sum", null); + $mol_assert_like(App.sum(), [0, 0]); + App.dict.set(111, 1111); + $mol_assert_like(App.sum(), [111, 1111]); + App.dict.set(222, 2222); + $mol_assert_like(App.sum(), [333, 3333]); + App.dict.delete(111); + $mol_assert_like(App.sum(), [222, 2222]); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'Watch one value'($) { + class App extends $mol_object2 { + static $ = $; + static set = new $mol_wire_set(); + static lucky() { + return this.set.has(777); + } + } + __decorate([ + $mol_wire_solo + ], App, "lucky", null); + $mol_assert_equal(App.lucky(), false); + App.set.add(666); + $mol_assert_equal(App.lucky(), false); + App.set.add(777); + $mol_assert_equal(App.lucky(), true); + App.set.delete(777); + $mol_assert_equal(App.lucky(), false); + }, + 'Watch item channel'($) { + class App extends $mol_object2 { + static $ = $; + static set = new $mol_wire_set(); + static lucky() { + return this.set.item(777); + } + } + __decorate([ + $mol_wire_solo + ], App, "lucky", null); + $mol_assert_equal(App.lucky(), false); + App.set.item(666, true); + $mol_assert_equal(App.lucky(), false); + App.set.item(777, true); + $mol_assert_equal(App.lucky(), true); + App.set.item(777, false); + $mol_assert_equal(App.lucky(), false); + }, + 'Watch size'($) { + class App extends $mol_object2 { + static $ = $; + static set = new $mol_wire_set(); + static size() { + return this.set.size; + } + } + __decorate([ + $mol_wire_solo + ], App, "size", null); + $mol_assert_equal(App.size(), 0); + App.set.add(666); + $mol_assert_equal(App.size(), 1); + App.set.add(777); + $mol_assert_equal(App.size(), 2); + App.set.delete(777); + $mol_assert_equal(App.size(), 1); + }, + 'Watch for-of'($) { + class App extends $mol_object2 { + static $ = $; + static set = new $mol_wire_set(); + static sum() { + let res = 0; + for (const val of this.set) { + res += val; + } + return res; + } + } + __decorate([ + $mol_wire_solo + ], App, "sum", null); + $mol_assert_equal(App.sum(), 0); + App.set.add(111); + $mol_assert_equal(App.sum(), 111); + App.set.add(222); + $mol_assert_equal(App.sum(), 333); + App.set.delete(111); + $mol_assert_equal(App.sum(), 222); + }, + 'Watch forEach'($) { + class App extends $mol_object2 { + static $ = $; + static set = new $mol_wire_set(); + static sum() { + let res = 0; + this.set.forEach(val => res += val); + return res; + } + } + __decorate([ + $mol_wire_solo + ], App, "sum", null); + $mol_assert_equal(App.sum(), 0); + App.set.add(111); + $mol_assert_equal(App.sum(), 111); + App.set.add(222); + $mol_assert_equal(App.sum(), 333); + App.set.delete(111); + $mol_assert_equal(App.sum(), 222); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'empty hash'() { + $mol_assert_like($mol_crypto_hash(new Uint8Array([])), new Uint8Array([218, 57, 163, 238, 94, 107, 75, 13, 50, 85, 191, 239, 149, 96, 24, 144, 175, 216, 7, 9])); + }, + 'three bytes hash'() { + $mol_assert_like($mol_crypto_hash(new Uint8Array([255, 254, 253])), new Uint8Array([240, 150, 38, 243, 255, 128, 96, 0, 72, 215, 207, 228, 19, 149, 113, 52, 2, 125, 27, 77])); + }, + 'six bytes hash'() { + $mol_assert_like($mol_crypto_hash(new Uint8Array([0, 255, 10, 250, 32, 128])), new Uint8Array([23, 25, 155, 181, 46, 200, 221, 83, 254, 0, 166, 68, 91, 255, 67, 140, 114, 88, 218, 155])); + }, + 'seven bytes hash'() { + $mol_assert_like($mol_crypto_hash(new Uint8Array([1, 2, 3, 4, 5, 6, 7])), new Uint8Array([140, 31, 40, 252, 47, 72, 194, 113, 214, 196, 152, 240, 242, 73, 205, 222, 54, 92, 84, 197])); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + $mol_test({ + "faces serial and parse"($) { + const land1 = $hyoo_crus_ref('12345678_12345678'); + const land2 = $hyoo_crus_ref('87654321_87654321'); + const land3 = $hyoo_crus_ref('87654321_00000000'); + const faces1 = new $hyoo_crus_face_map; + faces1.time_max('12345678', Date.now()); + faces1.total = 16_000; + const faces2 = new $hyoo_crus_face_map; + faces2.time_max('12345678', Date.now()); + faces2.time_max('87654321', Date.now() + 1); + faces2.total = 0; + const faces3 = new $hyoo_crus_face_map; + const rock1 = new Uint8Array([1, 2, 3]); + const rock2 = new Uint8Array([3, 2, 1]); + const hash1 = $mol_crypto_hash(rock1); + const hash2 = $mol_crypto_hash(rock2); + const parts = { + lands: { + [land1]: { faces: faces1, units: [] }, + [land2]: { faces: faces2, units: [] }, + [land3]: { faces: faces3, units: [] }, + }, + rocks: [ + [hash1, rock1], + [hash2, rock2], + ], + }; + $mol_assert_equal(parts, $hyoo_crus_pack.make(parts).parts()); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + class $hyoo_crus_mine extends $.$hyoo_crus_mine { + static rock(hash, next) { + return next ?? null; + } + } + __decorate([ + $mol_mem_key + ], $hyoo_crus_mine, "rock", null); + $.$hyoo_crus_mine = $hyoo_crus_mine; + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'parse and serial'() { + $mol_assert_equal(new $mol_time_duration('P42.1Y').toString(), 'P42.1YT'); + $mol_assert_equal(new $mol_time_duration('P42.1M').toString(), 'P42.1MT'); + $mol_assert_equal(new $mol_time_duration('P42.1D').toString(), 'P42.1DT'); + $mol_assert_equal(new $mol_time_duration('PT42.1h').toString(), 'PT42.1H'); + $mol_assert_equal(new $mol_time_duration('PT42.1m').toString(), 'PT42.1M'); + $mol_assert_equal(new $mol_time_duration('PT42.1s').toString(), 'PT42.1S'); + $mol_assert_equal(new $mol_time_duration('P1Y2M3DT4h5m6.7s').toString(), 'P1Y2M3DT4H5M6.7S'); + }, + 'format typed'() { + $mol_assert_equal(new $mol_time_duration('P1Y2M3DT4h5m6s').toString('P#Y#M#DT#h#m#s'), 'P1Y2M3DT4H5M6S'); + }, + 'format readable'() { + $mol_assert_equal(new $mol_time_duration('P1Y2M3DT4h5m6s').toString('hh:mm:ss.sss'), '04:05:06.000'); + }, + 'normalization'() { + $mol_assert_equal(new $mol_time_duration('P1Y2M3DT44h55m66s').normal.toString(), 'P1Y2M4DT20H56M6S'); + }, + 'comparison'() { + const iso = 'P1Y1M1DT1h1m1s'; + $mol_assert_equal(new $mol_time_duration(iso), new $mol_time_duration(iso)); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'parse and serial'() { + $mol_assert_equal(new $mol_time_moment('2014').toString(), '2014'); + $mol_assert_equal(new $mol_time_moment('2014-01').toString(), '2014-01'); + $mol_assert_equal(new $mol_time_moment('2014-01-02').toString(), '2014-01-02'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03').toString(), '2014-01-02T03'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03:04').toString(), '2014-01-02T03:04'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03:04:05').toString(), '2014-01-02T03:04:05'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03:04:05.006').toString(), '2014-01-02T03:04:05.006'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03:04:05.006Z').toString(), '2014-01-02T03:04:05.006+00:00'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03:04:05.006+07:00').toString(), '2014-01-02T03:04:05.006+07:00'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03:04:05+07:08').toString(), '2014-01-02T03:04:05+07:08'); + $mol_assert_equal(new $mol_time_moment('2014-01-02T03:04+07:08').toString(), '2014-01-02T03:04+07:08'); + $mol_assert_equal(new $mol_time_moment('T03:04+07:08').toString(), 'T03:04+07:08'); + $mol_assert_equal(new $mol_time_moment('T03:04:05').toString(), 'T03:04:05'); + $mol_assert_equal(new $mol_time_moment('T03:04').toString(), 'T03:04'); + $mol_assert_equal(new $mol_time_moment('T03').toString(), 'T03'); + }, + 'format simple'() { + $mol_assert_equal(new $mol_time_moment('2014-01-02T01:02:03.000000').toString('AD YY-M-D h:m:s'), '21 14-1-2 1:2:3'); + }, + 'format padded'() { + $mol_assert_equal(new $mol_time_moment('2014-01-02T01:02:03.000').toString('YYYY-MM-DD hh:mm:ss'), '2014-01-02 01:02:03'); + }, + 'format time zone'() { + $mol_assert_equal(new $mol_time_moment('2014-01-02T01:02:03+05:00').toString('Z'), '+05:00'); + }, + 'format names'() { + $mol_assert_ok(new $mol_time_moment('2014-01-02T01:02:03.000').toString('Month Mon | WeekDay WD')); + }, + 'shifting'() { + $mol_assert_equal(new $mol_time_moment('T15:54:58.243+03:00').shift({}).toString(), 'T15:54:58.243+03:00'); + $mol_assert_equal(new $mol_time_moment('2014-01-02').shift('P1Y').toString(), '2015-01-02'); + $mol_assert_equal(new $mol_time_moment('2014-01-02').shift('P12M').toString(), '2015-01-02'); + $mol_assert_equal(new $mol_time_moment('2014-01-02').shift('P365D').toString(), '2015-01-02'); + $mol_assert_equal(new $mol_time_moment('2014-01-02').shift('PT8760h').toString(), '2015-01-02'); + $mol_assert_equal(new $mol_time_moment('2014-01').shift('PT8760h').toString(), '2015-01'); + $mol_assert_equal(new $mol_time_moment('2014-01').shift('PT-8760h').toString(), '2013-01'); + }, + 'normalization'() { + $mol_assert_equal(new $mol_time_moment({ year: 2015, month: 6, day: 34 }).normal.toString(), '2015-08-04'); + }, + 'iso week day'() { + $mol_assert_equal(new $mol_time_moment('2017-09-17').weekday, $mol_time_moment_weekdays.sunday); + $mol_assert_equal(new $mol_time_moment('2017-09-18').weekday, $mol_time_moment_weekdays.monday); + }, + 'change offset'() { + $mol_assert_equal(new $mol_time_moment('2021-04-10 +03:00').toOffset('Z').toString(), '2021-04-09T21:00:00+00:00'); + }, + 'comparison'() { + const iso = '2021-01-02T03:04:05.678+09:10'; + $mol_assert_like(new $mol_time_moment(iso), new $mol_time_moment(iso)); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'triplets'() { + $mol_assert_equal(new $mol_time_interval('2015-01-01/P1M').end.toString(), '2015-02-01'); + $mol_assert_equal(new $mol_time_interval('P1M/2015-02-01').start.toString(), '2015-01-01'); + $mol_assert_equal(new $mol_time_interval('2015-01-01/2015-02-01').duration.toString(), 'PT2678400S'); + }, + 'comparison'() { + const iso = '2021-01-02/2022-03-04'; + $mol_assert_like(new $mol_time_interval(iso), new $mol_time_interval(iso)); + }, + }); +})($ || ($ = {})); + +; +"use strict"; + +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + function check(vary) { + $mol_assert_like(vary, $hyoo_crus_vary_decode($hyoo_crus_vary_encode(vary))); + } + $mol_test({ + "Bin"($) { + check(null); + check(new Uint8Array([1, 2, 3])); + }, + "Bool"($) { + check(false); + check(true); + }, + "Int"($) { + check(0n); + check(4611686018427387904n); + }, + "Real"($) { + check(0); + check(Math.PI); + check(Number.NaN); + check(Number.POSITIVE_INFINITY); + check(Number.NEGATIVE_INFINITY); + check(Number.MAX_SAFE_INTEGER); + check(Number.MIN_SAFE_INTEGER); + check(Number.MAX_VALUE); + check(Number.MIN_VALUE); + }, + "Str"($) { + check(''); + check('123'); + check('🐱‍👤'); + }, + "Time"($) { + check(new $mol_time_moment('1984-08-04T09:05:13.666+03:00')); + check(new $mol_time_moment); + }, + "JSON"($) { + check({ foo: ['bar'] }); + check([{ foo: 'bar' }]); + }, + "DOM"($) { + const xml = ($mol_jsx("div", null, + $mol_jsx("span", { class: "bar" }, "xxx"))); + $mol_assert_like($mol_dom_serialize($hyoo_crus_vary_decode($hyoo_crus_vary_encode(xml))), $mol_dom_serialize(xml)); + }, + "Tree"($) { + const tree = $.$mol_tree2_from_string(` + foo \\bar + foo \\bar + `); + $mol_assert_like($.$mol_tree2_to_string($hyoo_crus_vary_decode($hyoo_crus_vary_encode(tree))), $.$mol_tree2_to_string(tree)); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + $mol_test({ + "Cast from bin"($) { + const vary = new Uint8Array([1, 2, 3]); + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), vary); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 3n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), 3); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), '010203'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), [1, 2, 3]); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, 'AQID'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), '\\01\n\\02\n\\03\n'); + }, + "Cast from false"($) { + const vary = false; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([0])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), false); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 0n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), 0); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), 'false'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), [false]); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, 'false'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), 'false\n'); + }, + "Cast from true"($) { + const vary = true; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([1])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 1n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), 1); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), 'true'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), [true]); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, 'true'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), 'true\n'); + }, + "Cast from 0n"($) { + const vary = 0n; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), false); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 0n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), 0); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), '0'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary)?.toOffset(0).toString(), '1970-01-01T00:00:00+00:00'); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary)?.toString(), 'PT'); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), ['0']); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, '0'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), '0\n'); + }, + "Cast from big int"($) { + const vary = 4611686018427387903n; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([255, 255, 255, 255, 255, 255, 255, 0x3F])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 4611686018427387903n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), 4611686018427388000); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), '4611686018427387903'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary)?.toOffset(0).toString(), '10889-08-02T05:31:50.655+00:00'); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary)?.toString(), 'PT281474976710.655S'); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), ['4611686018427387903']); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, '4611686018427387903'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), '4611686018427387903\n'); + }, + "Cast from 0"($) { + const vary = 0; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), false); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 0n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), 0); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), '0'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary)?.toOffset(0).toString(), '1970-01-01T00:00:00+00:00'); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary)?.toString(), 'PT'); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), [0]); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, '0'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), '0\n'); + }, + "Cast from PI"($) { + const vary = Math.PI; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([24, 45, 68, 84, 251, 33, 9, 64])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 3n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), Math.PI); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), '3.141592653589793'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary)?.toOffset(0).toString(), '1970-01-01T00:00:00.003+00:00'); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary)?.toString(), "PT0.0031415926535897933S"); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), [Math.PI]); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, '3.141592653589793'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), '3.141592653589793\n'); + }, + "Cast from NaN"($) { + const vary = Number.NaN; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([0, 0, 0, 0, 0, 0, 248, 127])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), false); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), Number.NaN); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), 'NaN'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, 'NaN'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), 'NaN\n'); + }, + "Cast from Infinity"($) { + const vary = Number.POSITIVE_INFINITY; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([0, 0, 0, 0, 0, 0, 240, 127])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), Number.POSITIVE_INFINITY); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), 'Infinity'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, 'Infinity'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), 'Infinity\n'); + }, + "Cast from empty string"($) { + const vary = ''; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), false); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), $hyoo_crus_ref('')); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), ''); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary), null); + }, + "Cast from number string"($) { + const vary = '123456789012345678901234567890123456789'; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([ + 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, + ])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), 123456789012345678901234567890123456789n); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), 1.2345678901234568e+38); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), '123456789012345678901234567890123456789'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), [1.2345678901234568e+38]); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, '123456789012345678901234567890123456789'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), '\\123456789012345678901234567890123456789\n'); + }, + "Cast from wild string"($) { + const vary = 'foo'; + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([102, 111, 111])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), Number.NaN); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), 'foo'); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), ['foo']); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, 'foo'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), '\\foo\n'); + }, + "Cast from ref"($) { + const vary = $hyoo_crus_ref('qwertyui_asdfghjk_zxcvbnm0'); + $mol_assert_equal($hyoo_crus_vary_cast_bin(vary), new Uint8Array([ + 171, 7, 171, 183, 43, 162, + 106, 199, 95, 130, 24, 228, + 207, 23, 47, 110, 121, 180, + ])); + $mol_assert_equal($hyoo_crus_vary_cast_bool(vary), true); + $mol_assert_equal($hyoo_crus_vary_cast_int(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_real(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_ref(vary), vary); + $mol_assert_equal($hyoo_crus_vary_cast_str(vary), vary.description); + $mol_assert_equal($hyoo_crus_vary_cast_time(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_dur(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_range(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_json(vary), null); + $mol_assert_equal($hyoo_crus_vary_cast_jsan(vary), ['qwertyui_asdfghjk_zxcvbnm0']); + $mol_assert_equal($hyoo_crus_vary_cast_dom(vary)?.outerHTML, 'qwertyui_asdfghjk_zxcvbnm0'); + $mol_assert_equal($hyoo_crus_vary_cast_tree(vary)?.toString(), 'qwertyui_asdfghjk_zxcvbnm0\n'); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + class $mol_bus extends $.$mol_bus { + send() { } + } + $.$mol_bus = $mol_bus; + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + const auth1 = $hyoo_crus_auth.from('_4eLnQsSr5wj6XOzgS5bZa254pkEOf_hg1nReCSR4Zkd-E07aLSwj-II-rZt4ZubInw_f1rZiA0Qa92qR0Gq3I6xYWCkW9Aagc7-97L2P-gI84NaLwdabp_DrZEX3RJTY'); + const auth2 = $hyoo_crus_auth.from('_5THYp_Njx6-cAU53dRwdv3z8RBAVK7Z2L3OeZmTp8sCsMNXmdssFljy2fxIMDX_oxTFRrRCvAH7s92kUOVn5YYTPGuZ5fQFOAEeRNGGQ47JVCK3Cy_XDSUDvklZ-3Ix4'); + $mol_test({ + 'Join'($) { + const land = $hyoo_crus_land.make({ $ }); + $mol_assert_equal(land.joined_list(), []); + $mol_assert_equal(land.lord_rank(land.ref()), $hyoo_crus_rank.law); + land.join(); + $mol_assert_equal(land.joined_list(), [land.ref()]); + }, + 'Give rights'($) { + const land1 = $hyoo_crus_land.make({ $ }); + const land2 = $hyoo_crus_land.make({ $, ref: () => land1.ref(), auth: () => auth1 }); + $mol_assert_equal(land1.lord_rank(land1.ref()), $hyoo_crus_rank.law); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.get); + $mol_assert_fail(() => land2.give(auth2, $hyoo_crus_rank.add), 'Need add rank to join'); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.get); + land1.give(auth1, $hyoo_crus_rank.get); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.get); + land1.give(auth1, $hyoo_crus_rank.add); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.add); + land1.give(auth1, $hyoo_crus_rank.get); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.get); + land1.give(auth1, $hyoo_crus_rank.mod); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.mod); + land1.give(auth1, $hyoo_crus_rank.add); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.add); + land1.give(auth1, $hyoo_crus_rank.law); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.law); + land1.give(auth1, $hyoo_crus_rank.mod); + $mol_assert_equal(land1.lord_rank(auth1.lord()), $hyoo_crus_rank.mod); + land2.apply_unit_trust(land1.delta_unit()); + $mol_assert_equal(land2.lord_rank(auth1.lord()), $hyoo_crus_rank.mod); + $mol_assert_fail(() => land2.give(auth2, $hyoo_crus_rank.add), 'Need law rank to change rank'); + }, + 'Post Data and pick Delta'($) { + const land1 = $hyoo_crus_land.make({ $ }); + const land2 = $hyoo_crus_land.make({ $, ref: () => land1.ref(), auth: () => auth1 }); + $mol_assert_equal(land1.delta_unit(), []); + land1.post('', '', 'AA111111', new Uint8Array([1])); + $mol_assert_equal(land1.delta_unit().length, 2); + const face = new $hyoo_crus_face_map(land1.faces); + land1.post('AA111111', '', 'AA222222', new Uint8Array([2])); + $mol_assert_equal(land1.delta_unit().length, 3); + $mol_assert_equal(land1.delta_unit(face).length, 1); + land2.apply_unit_trust(land1.delta_unit()); + $mol_assert_fail(() => land2.post('AA222222', '', 'AA333333', new Uint8Array([3])), 'Need add rank to join'); + $mol_assert_equal(land2.delta_unit().length, 3); + $mol_assert_equal(land2.delta_unit(face).length, 1); + land1.give(auth1, $hyoo_crus_rank.add); + land2.apply_unit_trust(land1.delta_unit()); + $mol_assert_fail(() => land2.post('AA222222', '', 'AA333333', new Uint8Array([3])), 'Need mod rank to post any data'); + $mol_assert_equal(land2.delta_unit().length, 4); + $mol_assert_equal(land2.delta_unit(face).length, 2); + land2.post('AA222222', '', $hyoo_crus_area_to(auth1.peer(), 'data'), new Uint8Array([4])); + $mol_assert_equal(land2.delta_unit().length, 6); + $mol_assert_equal(land2.delta_unit(face).length, 4); + land1.give(auth1, $hyoo_crus_rank.mod); + land2.apply_unit_trust(land1.delta_unit()); + $mol_assert_fail(() => land2.post('AA222222', '', '33333333', new Uint8Array([3])), 'Need law rank to post to meta area'); + land2.post('AA222222', '', 'AA333333', new Uint8Array([3])); + $mol_assert_equal(land2.delta_unit().length, 7); + $mol_assert_equal(land2.delta_unit(face).length, 5); + land1.give(auth1, $hyoo_crus_rank.add); + land2.apply_unit_trust(land1.delta_unit()); + $mol_assert_equal(land2.delta_unit().length, 6); + land1.give(auth1, $hyoo_crus_rank.get); + land2.apply_unit_trust(land1.delta_unit()); + $mol_assert_equal(land2.delta_unit().length, 4); + }, + 'Self restriction for Add Rank'($) { + const land1 = $hyoo_crus_land.make({ $ }); + const land2 = $hyoo_crus_land.make({ $, ref: () => land1.ref(), auth: () => auth2 }); + $mol_assert_equal(land1.delta_unit(), []); + land1.give(auth2, $hyoo_crus_rank.add); + land2.apply_unit_trust(land1.delta_unit()); + $mol_assert_equal(land2.delta_unit().length, 2); + const gist1 = land2.post('', '', '', 'foo'); + $mol_assert_equal(gist1.self(), $hyoo_crus_area_to(auth2.peer(), 'data')); + $mol_assert_equal(land2.delta_unit().length, 4); + const gist2 = land2.post('', '', '', 'bar'); + $mol_assert_equal(gist2.self(), $hyoo_crus_area_to(auth2.peer(), 'data')); + $mol_assert_equal(land2.delta_unit().length, 4); + }, + async 'Land encryption'($) { + const land = $mol_wire_async($hyoo_crus_land.make({ $ })); + $mol_assert_equal(await land.encrypted(), false); + await land.encrypted(true); + $mol_assert_equal(await land.encrypted(), true); + const gist = await land.post('', '', '', new Uint8Array([1, 2, 3])); + $mol_assert_equal((await land.gist_encode(gist)).data().length, 16); + $mol_assert_equal(await land.gist_decode(gist), new Uint8Array([1, 2, 3])); + $mol_assert_equal((await land.gists_ordered('')).length, 1); + await land.post('', '', gist.self(), null); + $mol_assert_equal((await land.gists_ordered('')).length, 0); + }, + 'Land fork & merge'($) { + const realm = $hyoo_crus_realm.make({ $ }); + const home = realm.home().land(); + const left = home.fork(); + home.Data($hyoo_crus_list_vary).items_vary(['foo', 'xxx']); + $mol_assert_equal(home.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'xxx']); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'xxx']); + left.faces.sync(home.faces); + left.Data($hyoo_crus_list_vary).items_vary(['foo', 'yyy']); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'yyy']); + const right = home.fork(); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary(['foo', 'zzz']); + $mol_assert_equal(right.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'zzz']); + const both = home.fork(); + $mol_assert_equal(both.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'xxx']); + both.Meta().Inflow(null).items_vary([right.ref()]); + $mol_assert_equal(both.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'zzz']); + both.Meta().Inflow(null).items_vary([left.ref()]); + $mol_assert_equal(both.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'yyy']); + both.Meta().Inflow(null).items_vary([right.ref(), left.ref()]); + $mol_assert_equal(both.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'yyy']); + both.Meta().Inflow(null).items_vary([left.ref(), right.ref()]); + $mol_assert_equal(both.Data($hyoo_crus_list_vary).items_vary(), ['foo', 'zzz']); + }, + 'Inner refs is relative to land'($) { + const realm = $hyoo_crus_realm.make({ $ }); + const Alice = realm.home().land(); + const Bella = Alice.fork(); + const alice_val = Alice.Node($hyoo_crus_atom_str).Item('qwertyui'); + const bella_val = Bella.Node($hyoo_crus_atom_str).Item('qwertyui'); + alice_val.val('Alice'); + bella_val.val('Bella'); + const alice_ref = Alice.Node($hyoo_crus_atom_ref).Item('asdfghjk'); + const bella_ref = Bella.Node($hyoo_crus_atom_ref).Item('asdfghjk'); + alice_ref.val(alice_val.ref()); + $mol_assert_equal(alice_ref.val(), alice_val.ref()); + $mol_assert_unique(alice_ref.val(), bella_ref.val()); + $mol_assert_equal(bella_ref.val(), bella_val.ref()); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + const algorithm = { + name: 'ECDSA', + hash: 'SHA-256', + namedCurve: "P-256", + }; + async function $mol_crypto_auditor_pair() { + const pair = await $mol_crypto_native.subtle.generateKey(algorithm, true, ['sign', 'verify']); + return { + public: new $mol_crypto_auditor_public(pair.publicKey), + private: new $mol_crypto_auditor_private(pair.privateKey), + }; + } + $.$mol_crypto_auditor_pair = $mol_crypto_auditor_pair; + class $mol_crypto_auditor_public extends Object { + native; + static size_str = 86; + static size_bin = 64; + constructor(native) { + super(); + this.native = native; + } + static async from(serial) { + if (typeof serial !== 'string') { + serial = $mol_base64_url_encode(serial.subarray(0, 32)) + + $mol_base64_url_encode(serial.subarray(32, 64)); + } + return new this(await $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['verify'], + kty: "EC", + x: serial.slice(0, 43), + y: serial.slice(43, 86), + }, algorithm, true, ['verify'])); + } + async serial() { + const { x, y } = await $mol_crypto_native.subtle.exportKey('jwk', this.native); + return x + y; + } + async toArray() { + const { x, y, d } = await $mol_crypto_native.subtle.exportKey('jwk', this.native); + return new Uint8Array([ + ...$mol_base64_url_decode(x), + ...$mol_base64_url_decode(y), + ]); + } + async verify(data, sign) { + return await $mol_crypto_native.subtle.verify(algorithm, this.native, sign, data); + } + } + $.$mol_crypto_auditor_public = $mol_crypto_auditor_public; + class $mol_crypto_auditor_private extends Object { + native; + static size_str = 129; + static size_bin = 96; + constructor(native) { + super(); + this.native = native; + } + static async from(serial) { + if (typeof serial !== 'string') { + serial = $mol_base64_url_encode(serial.subarray(0, 32)) + + $mol_base64_url_encode(serial.subarray(32, 64)) + + $mol_base64_url_encode(serial.subarray(64)); + } + return new this(await $mol_crypto_native.subtle.importKey('jwk', { + crv: "P-256", + ext: true, + key_ops: ['sign'], + kty: "EC", + x: serial.slice(0, 43), + y: serial.slice(43, 86), + d: serial.slice(86, 129), + }, algorithm, true, ['sign'])); + } + async serial() { + const { x, y, d } = await $mol_crypto_native.subtle.exportKey('jwk', this.native); + return x + y + d; + } + async toArray() { + const { x, y, d } = await $mol_crypto_native.subtle.exportKey('jwk', this.native); + return new Uint8Array([ + ...$mol_base64_url_decode(x), + ...$mol_base64_url_decode(y), + ...$mol_base64_url_decode(d), + ]); + } + async sign(data) { + return await $mol_crypto_native.subtle.sign(algorithm, this.native, data); + } + async public() { + return await $mol_crypto_auditor_public.from($mol_crypto_auditor_private_to_public(await this.serial())); + } + } + $.$mol_crypto_auditor_private = $mol_crypto_auditor_private; + $.$mol_crypto_auditor_sign_size = 64; + function $mol_crypto_auditor_private_to_public(serial) { + return serial.slice(0, 86); + } + $.$mol_crypto_auditor_private_to_public = $mol_crypto_auditor_private_to_public; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'unit type'() { + const unit = new $hyoo_crus_unit; + $mol_assert_equal(unit.kind(), 'gist'); + }, + 'auth unit type'() { + const auth = new $hyoo_crus_pass; + auth.auth([0xFF, 0, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1]); + $mol_assert_equal(auth.kind(), 'pass'); + $mol_assert_equal(auth.lord(), $hyoo_crus_ref('ÆPv6æfj3_9vX08ÆLx')); + $mol_assert_equal(auth.peer(), 'ÆPv6æfj3'); + }, + 'gift unit type'() { + const gift = new $hyoo_crus_gift; + gift.rank($hyoo_crus_rank.law); + $mol_assert_equal(gift.kind(), 'gift'); + $mol_assert_equal(gift.rank(), $hyoo_crus_rank.law); + }, + 'data unit type'() { + const unit = new $hyoo_crus_gist; + unit.data(new Uint8Array([0xFF, 0xFF])); + $mol_assert_equal(unit.kind(), 'gist'); + $mol_assert_equal(unit.size(), 2); + $mol_assert_equal(unit.data(), new Uint8Array([0xFF, 0xFF])); + }, + 'unit peer'() { + const unit = new $hyoo_crus_unit; + $mol_assert_equal(unit.peer(), ''); + unit.peer('ÆPv6æfj3'); + $mol_assert_equal(unit.peer(), 'ÆPv6æfj3'); + }, + 'gift unit fields'() { + const unit = new $hyoo_crus_gift; + $mol_assert_equal(unit.time(), 0); + $mol_assert_equal(unit.dest(), $hyoo_crus_ref('')); + unit.time(0xd1d2d3d4d5d6); + unit.dest($hyoo_crus_ref('ÆPv6æfj3_9vX08ÆLx')); + $mol_assert_equal(unit.time(), 0xd1d2d3d4d5d6); + $mol_assert_equal(unit.dest(), $hyoo_crus_ref('ÆPv6æfj3_9vX08ÆLx')); + }, + 'data unit fields'() { + const unit = new $hyoo_crus_gist; + $mol_assert_equal(unit.time(), 0); + $mol_assert_equal(unit.head(), ''); + $mol_assert_equal(unit.self(), ''); + $mol_assert_equal(unit.lead(), ''); + unit.time(0xd1d2d3d4d5d6); + unit.head('ÆPv6æfj3'); + unit.self('Pv6æfj39'); + unit.lead('v6æfj39v'); + $mol_assert_equal(unit.time(), 0xd1d2d3d4d5d6); + $mol_assert_equal(unit.head(), 'ÆPv6æfj3'); + $mol_assert_equal(unit.self(), 'Pv6æfj39'); + $mol_assert_equal(unit.lead(), 'v6æfj39v'); + }, + async 'sign / verify'($) { + const source = new $hyoo_crus_gist; + source.data(new Uint8Array([0xF1, 0xF2])); + const key = await $.$mol_crypto_auditor_pair(); + source.sign(new Uint8Array(await key.private.sign(source.sens()))); + $mol_assert_ok(await key.public.verify(source.sens(), source.sign())); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test_mocks.push($ => { + class $hyoo_crus_yard extends $.$hyoo_crus_yard { + load(land) { + return []; + } + async save(land, units) { } + ports() { + return []; + } + } + $.$hyoo_crus_yard = $hyoo_crus_yard; + }); + $hyoo_crus_yard.masters = [ + `http://localhost:9090/`, + $mol_dom_context.document.location.origin + '/', + ]; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'same list'() { + const list = $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "old" }, "b"), + $mol_jsx("p", { "data-rev": "old" }, "c")); + $mol_reconcile({ + prev: [...list.children], + from: 0, + to: 3, + next: 'abc', + equal: (next, prev) => prev.textContent === next, + drop: (prev, lead) => list.removeChild(prev), + insert: (next, lead) => list.insertBefore($mol_jsx("p", { "data-rev": "new" }, next), lead ? lead.nextSibling : list.firstChild), + update: (next, prev, lead) => { + prev.textContent = next; + prev.setAttribute('data-rev', 'up'); + return prev; + }, + }); + $mol_assert_equal(list, $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "old" }, "b"), + $mol_jsx("p", { "data-rev": "old" }, "c"))); + }, + 'insert items'() { + const list = $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "old" }, "b"), + $mol_jsx("p", { "data-rev": "old" }, "c"), + $mol_jsx("p", { "data-rev": "old" }, "d")); + $mol_reconcile({ + prev: [...list.children], + from: 1, + to: 3, + next: 'bXYc', + equal: (next, prev) => prev.textContent === next, + drop: (prev, lead) => list.removeChild(prev), + insert: (next, lead) => list.insertBefore($mol_jsx("p", { "data-rev": "new" }, next), lead ? lead.nextSibling : list.firstChild), + update: (next, prev, lead) => { + prev.textContent = next; + prev.setAttribute('data-rev', 'up'); + return prev; + }, + }); + $mol_assert_equal(list, $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "old" }, "b"), + $mol_jsx("p", { "data-rev": "new" }, "X"), + $mol_jsx("p", { "data-rev": "new" }, "Y"), + $mol_jsx("p", { "data-rev": "old" }, "c"), + $mol_jsx("p", { "data-rev": "old" }, "d"))); + }, + 'split item'() { + const list = $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "old" }, "bc"), + $mol_jsx("p", { "data-rev": "old" }, "d")); + $mol_reconcile({ + prev: [...list.children], + from: 0, + to: 3, + next: 'abcd', + equal: (next, prev) => prev.textContent === next, + drop: (prev, lead) => list.removeChild(prev), + insert: (next, lead) => list.insertBefore($mol_jsx("p", { "data-rev": "new" }, next), lead ? lead.nextSibling : list.firstChild), + update: (next, prev, lead) => { + prev.textContent = next; + prev.setAttribute('data-rev', 'up'); + return prev; + }, + }); + $mol_assert_equal(list, $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "new" }, "b"), + $mol_jsx("p", { "data-rev": "up" }, "c"), + $mol_jsx("p", { "data-rev": "old" }, "d"))); + }, + 'drop items'() { + const list = $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "A"), + $mol_jsx("p", { "data-rev": "old" }, "B"), + $mol_jsx("p", { "data-rev": "old" }, "x"), + $mol_jsx("p", { "data-rev": "old" }, "y"), + $mol_jsx("p", { "data-rev": "old" }, "C"), + $mol_jsx("p", { "data-rev": "old" }, "D")); + $mol_reconcile({ + prev: [...list.children], + from: 1, + to: 5, + next: 'BC', + equal: (next, prev) => prev.textContent === next, + drop: (prev, lead) => list.removeChild(prev), + insert: (next, lead) => list.insertBefore($mol_jsx("p", { "data-rev": "new" }, next), lead ? lead.nextSibling : list.firstChild), + update: (next, prev, lead) => { + prev.textContent = next; + prev.setAttribute('data-rev', 'up'); + return prev; + }, + }); + $mol_assert_equal(list, $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "A"), + $mol_jsx("p", { "data-rev": "old" }, "B"), + $mol_jsx("p", { "data-rev": "old" }, "C"), + $mol_jsx("p", { "data-rev": "old" }, "D"))); + }, + 'update items'() { + const list = $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "old" }, "B"), + $mol_jsx("p", { "data-rev": "old" }, "C"), + $mol_jsx("p", { "data-rev": "old" }, "d")); + $mol_reconcile({ + prev: [...list.children], + from: 1, + to: 3, + next: 'XY', + equal: (next, prev) => prev.textContent === next, + drop: (prev, lead) => list.removeChild(prev), + insert: (next, lead) => list.insertBefore($mol_jsx("p", { "data-rev": "new" }, next), lead ? lead.nextSibling : list.firstChild), + update: (next, prev, lead) => { + prev.textContent = next; + prev.setAttribute('data-rev', 'up'); + return prev; + }, + }); + $mol_assert_equal(list, $mol_jsx("body", null, + $mol_jsx("p", { "data-rev": "old" }, "a"), + $mol_jsx("p", { "data-rev": "up" }, "X"), + $mol_jsx("p", { "data-rev": "up" }, "Y"), + $mol_jsx("p", { "data-rev": "old" }, "d"))); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + function fork(base) { + const land = $hyoo_crus_land.make({ $: base.$ }); + land.apply_land(base); + return land; + } + function sync(left, right) { + left.apply_land(right); + right.apply_land(left); + } + $mol_test({ + 'Basic list ops'($) { + const land = $hyoo_crus_land.make({ $ }); + const list = land.Node($hyoo_crus_list_vary).Item(''); + $mol_assert_equal(list.items_vary(), []); + list.items_vary([2, 3]); + $mol_assert_equal(list.items_vary(), [2, 3]); + $mol_assert_equal(list.has(1), false); + list.add(1); + $mol_assert_equal(list.items_vary(), [1, 2, 3]); + $mol_assert_equal(list.has(1), true); + list.add(3); + $mol_assert_equal(list.items_vary(), [1, 2, 3]); + list.splice([2]); + $mol_assert_equal(list.items_vary(), [1, 2, 3, 2]); + list.splice([2], 0); + $mol_assert_equal(list.items_vary(), [2, 1, 2, 3, 2]); + list.wipe(2); + $mol_assert_equal(list.items_vary(), [2, 1, 3, 2]); + list.move(2, 1); + $mol_assert_equal(list.items_vary(), [2, 3, 1, 2]); + list.move(1, 3); + $mol_assert_equal(list.items_vary(), [2, 1, 3, 2]); + list.cut(2); + $mol_assert_equal(list.items_vary(), [1, 3]); + $mol_assert_equal(list.has(2), false); + list.cut(2); + $mol_assert_equal(list.items_vary(), [1, 3]); + }, + 'Different types'($) { + const land = $hyoo_crus_land.make({ $ }); + const list = land.Node($hyoo_crus_list_vary).Item(''); + list.items_vary([ + null, + false, + true, + 0n, + 4611686018427387904n, + 0, + Math.PI, + Number.NaN, + Number.NEGATIVE_INFINITY, + '', + '1234567890123456789012345678901234567890', + new Uint8Array([]), + new Uint8Array([1, 2, 3]), + new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]), + list.ref(), + ]); + $mol_assert_equal(list.items_vary(), [ + false, + true, + 0n, + 4611686018427387904n, + 0, + Math.PI, + Number.NaN, + Number.NEGATIVE_INFINITY, + '', + '1234567890123456789012345678901234567890', + new Uint8Array([]), + new Uint8Array([1, 2, 3]), + new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]), + list.ref(), + ]); + }, + 'List merge'($) { + const land1 = $hyoo_crus_land.make({ $ }); + const land2 = $hyoo_crus_land.make({ $ }); + const list1 = land1.Node($hyoo_crus_list_vary).Item(''); + const list2 = land2.Node($hyoo_crus_list_vary).Item(''); + list1.items_vary(['foo', 'xxx']); + land2.faces.tick(); + list2.items_vary(['foo', 'yyy']); + land1.apply_unit_trust(land2.delta_unit()); + $mol_assert_equal(list1.items_vary(), ['foo', 'yyy', 'foo', 'xxx']); + }, + 'Insert before removed before changed'($) { + const land = $hyoo_crus_land.make({ $ }); + const list = land.Node($hyoo_crus_list_vary).Item(''); + list.items_vary(['foo', 'bar']); + list.items_vary(['xxx', 'foo', 'bar']); + list.items_vary(['xxx', 'bars']); + $mol_assert_equal(list.items_vary(), ['xxx', 'bars']); + }, + 'Many moves'($) { + const land = $hyoo_crus_land.make({ $ }); + const list = land.Node($hyoo_crus_list_vary).Item(''); + list.items_vary(['foo', 'bar', 'lol']); + list.move(2, 1); + list.move(2, 1); + list.move(0, 3); + list.move(2, 1); + $mol_assert_equal(list.items_vary(), ['bar', 'foo', 'lol']); + }, + 'Reorder separated sublists'($) { + const land = $hyoo_crus_land.make({ $ }); + const list = land.Node($hyoo_crus_list_vary).Item(''); + list.items_vary([1, 2, 3, 4, 5, 6]); + list.move(3, 5); + list.move(3, 5); + list.move(5, 4); + list.move(0, 2); + list.move(0, 2); + list.move(2, 1); + $mol_assert_equal(list.items_vary(), [1, 3, 2, 4, 6, 5]); + }, + 'Insert after moved right'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 7, 2, 3, 4]); + const right = fork(base); + right.Data($hyoo_crus_list_vary).move(0, 2); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [2, 1, 7, 3, 4]); + }, + 'Insert before moved left'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).move(1, 0); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 7, 2, 3, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [2, 1, 7, 3, 4]); + }, + 'Move left after inserted'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 7, 2, 3, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).move(1, 0); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [2, 1, 3, 7, 4]); + }, + 'Insert before moved right'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).move(1, 4); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 7, 2, 3, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 7, 3, 4, 2]); + }, + 'Move right after inserted'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 7, 2, 3, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).move(1, 4); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 3, 7, 4, 2]); + }, + 'Insert after wiped'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 3, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 7, 3, 4]); + }, + 'Wiped before inserted'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 3, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 7, 3, 4]); + }, + 'Insert before wiped'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).wipe(2); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 2, 7, 4]); + }, + 'Wiped after inserted'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).wipe(2); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 2, 7, 4]); + }, + 'Insert after moved out'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.gist_move(left.Data($hyoo_crus_list_vary).units()[1], '11111111', 0); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 7, 3, 4]); + $mol_assert_equal(left.Node($hyoo_crus_list_vary).Item('11111111').items_vary(), right.Node($hyoo_crus_list_vary).Item('11111111').items_vary(), [2]); + }, + 'Move out before inserted'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.gist_move(right.Data($hyoo_crus_list_vary).units()[1], '11111111', 0); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 7, 3, 4]); + $mol_assert_equal(left.Node($hyoo_crus_list_vary).Item('11111111').items_vary(), right.Node($hyoo_crus_list_vary).Item('11111111').items_vary(), [2]); + }, + 'Insert before changed'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 2, 13, 3, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 2, 13, 7, 4]); + }, + 'Change after inserted'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 2, 13, 3, 4]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 4]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 2, 7, 13, 4]); + }, + 'Insert between moved'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4, 5, 6]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).move(1, 5); + left.Data($hyoo_crus_list_vary).move(1, 5); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4, 5, 6]); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 4, 5, 2, 7, 3, 6]); + }, + 'Move near inserted'($) { + const base = $hyoo_crus_land.make({ $ }); + base.Data($hyoo_crus_list_vary).items_vary([1, 2, 3, 4, 5, 6]); + const left = fork(base); + left.Data($hyoo_crus_list_vary).items_vary([1, 2, 7, 3, 4, 5, 6]); + const right = fork(base); + right.faces.sync(left.faces); + right.Data($hyoo_crus_list_vary).move(1, 5); + right.Data($hyoo_crus_list_vary).move(1, 5); + sync(left, right); + $mol_assert_equal(left.Data($hyoo_crus_list_vary).items_vary(), right.Data($hyoo_crus_list_vary).items_vary(), [1, 4, 5, 2, 3, 7, 6]); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + const auth1 = $hyoo_crus_auth.from('_4eLnQsSr5wj6XOzgS5bZa254pkEOf_hg1nReCSR4Zkd-E07aLSwj-II-rZt4ZubInw_f1rZiA0Qa92qR0Gq3I6xYWCkW9Aagc7-97L2P-gI84NaLwdabp_DrZEX3RJTY'); + $mol_test({ + async 'Dictionary invariants'($) { + const land = $hyoo_crus_land.make({ $ }); + const dict = land.Node($hyoo_crus_dict).Item(''); + $mol_assert_equal(dict.keys(), []); + dict.dive(123, $hyoo_crus_atom_vary, null); + dict.dive('xxx', $hyoo_crus_atom_vary, null); + $mol_assert_equal(dict.keys(), ['xxx', 123]); + $mol_assert_equal(dict.has(123), true); + $mol_assert_equal(dict.has('xxx'), true); + $mol_assert_equal(dict.has('yyy'), false); + $mol_assert_equal(dict.dive(123, $hyoo_crus_atom_vary).vary(), null); + $mol_assert_equal(dict.dive('xxx', $hyoo_crus_atom_vary).vary(), null); + dict.dive(123, $hyoo_crus_atom_vary).vary(777); + $mol_assert_equal(dict.dive(123, $hyoo_crus_atom_vary).vary(), 777); + dict.dive('xxx', $hyoo_crus_list_vary).items_vary(['foo', 'bar']); + $mol_assert_equal(dict.dive('xxx', $hyoo_crus_list_vary).items_vary(), ['foo', 'bar']); + dict.has(123, false); + $mol_assert_equal(dict.keys(), ['xxx']); + }, + async 'Dictionary merge'($) { + const land1 = $hyoo_crus_land.make({ $ }); + const land2 = $hyoo_crus_land.make({ $ }); + const dict1 = land1.Node($hyoo_crus_dict).Item(''); + const dict2 = land2.Node($hyoo_crus_dict).Item(''); + dict1.dive(123, $hyoo_crus_atom_vary, null).vary(666); + land2.faces.tick(); + dict2.dive(123, $hyoo_crus_atom_vary, null).vary(777); + land1.apply_unit_trust(land2.delta_unit()); + $mol_assert_equal(dict1.dive(123, $hyoo_crus_atom_vary).vary(), 777); + dict1.dive('xxx', $hyoo_crus_list_vary, null).items_vary(['foo']); + land2.faces.tick(); + dict2.dive('xxx', $hyoo_crus_list_vary, null).items_vary(['bar']); + land1.apply_unit_trust(land2.delta_unit()); + $mol_assert_equal(dict1.dive('xxx', $hyoo_crus_list_vary).items_vary(), ['bar', 'foo']); + }, + "Narrowed Dictionary with linked Dictionaries and others"($) { + class User extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + Account: $hyoo_crus_atom_ref_to(() => Account), + Articles: $hyoo_crus_list_ref_to(() => Article), + }) { + } + class Account extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_atom_str, + User: $hyoo_crus_atom_ref_to(() => User), + }) { + } + class Article extends $hyoo_crus_dict.with({ + Title: $hyoo_crus_dict_to($hyoo_crus_atom_str), + Author: $hyoo_crus_atom_ref_to(() => User), + }) { + } + const realm = $hyoo_crus_realm.make({ $ }); + const land = realm.home().land(); + const user = land.Node(User).Item('11111111'); + $mol_assert_equal(user.Title()?.val() ?? null, null); + $mol_assert_equal(user.Account()?.remote() ?? null, null); + $mol_assert_equal(user.Articles()?.remote_list() ?? [], []); + user.Title(null).val('Jin'); + $mol_assert_equal(user.Title().val() ?? '', 'Jin'); + const account = user.Account(null).remote_ensure($hyoo_crus_rank_public); + $mol_assert_equal(user.Account()?.remote() ?? null, account); + $mol_assert_equal(account.User()?.remote() ?? null, null); + account.User(null).remote(user); + $mol_assert_equal(account.User()?.remote(), user); + const articles = [ + user.Articles(null).remote_make($hyoo_crus_rank_public), + user.Articles(null).remote_make($hyoo_crus_rank_public), + ]; + $mol_assert_equal(user.Articles()?.remote_list(), articles); + articles[0].Title(null).key('en', 'auto').val('Hello!'); + $mol_assert_equal(articles[0].Title()?.key('en').val(), 'Hello!'); + $mol_assert_equal(articles[1].Title()?.key('ru')?.val() ?? null, null); + $mol_assert_equal(articles[1].Title()?.key('ru')?.val() ?? null, null); + $mol_assert_unique(user.land(), account.land(), ...articles.map(article => article.land())); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_data_setup(value, config) { + return Object.assign(value, { + config, + Value: null + }); + } + $.$mol_data_setup = $mol_data_setup; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'config by value'() { + const N = $mol_data_setup((a) => a, 5); + $mol_assert_equal(N.config, 5); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_data_string = (val) => { + if (typeof val === 'string') + return val; + return $mol_fail(new $mol_data_error(`${val} is not a string`)); + }; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Is string'() { + $mol_data_string(''); + }, + 'Is not string'() { + $mol_assert_fail(() => { + $mol_data_string(0); + }, '0 is not a string'); + }, + 'Is object string'() { + $mol_assert_fail(() => { + $mol_data_string(new String('x')); + }, 'x is not a string'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + function $mol_data_pattern(pattern) { + return $mol_data_setup((val) => { + const val2 = $mol_data_string(val); + if (pattern.test(val2)) + return val2; + return $mol_fail(new $mol_data_error(`${val} is not a ${pattern}`)); + }, pattern); + } + $.$mol_data_pattern = $mol_data_pattern; +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Is fit'() { + $mol_data_pattern(/^-$/)('-'); + }, + 'Is not fit'() { + $mol_assert_fail(() => { + $mol_data_pattern(/^-$/)('+'); + }, '+ is not a /^-$/'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $.$mol_data_email = $mol_data_pattern(/.+@.+/); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'Is email'() { + $mol_data_email('foo@bar'); + }, + 'Has not host'() { + $mol_assert_fail(() => { + $mol_data_email('foo@'); + }, 'foo@ is not a /.+@.+/'); + }, + 'Has not name'() { + $mol_assert_fail(() => { + $mol_data_email('@bar'); + }, '@bar is not a /.+@.+/'); + }, + 'Has not @'() { + $mol_assert_fail(() => { + $mol_data_email('foo.bar'); + }, 'foo.bar is not a /.+@.+/'); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + var $$; + (function ($$) { + $mol_test({ + "Empty representation"($) { + const land = $hyoo_crus_land.make({ $ }); + const reg = land.Node($hyoo_crus_atom_time).Item(''); + $mol_assert_equal(reg.val(), null); + reg.vary(null); + $mol_assert_equal(reg.val(), null); + }, + "Narrow registers"($) { + const realm = $hyoo_crus_realm.make({ $ }); + const land = realm.home().land(); + const bin = land.Node($hyoo_crus_atom_bin).Item('11111111'); + $mol_assert_equal(bin.val(), null); + bin.val(new Uint8Array([1, 2, 3])); + $mol_assert_equal(bin.val(), new Uint8Array([1, 2, 3])); + const str = land.Node($hyoo_crus_atom_str).Item('22222222'); + $mol_assert_equal(str.val(), null); + str.val('foo'); + $mol_assert_equal(str.val(), 'foo'); + }, + "Store custom types"($) { + class Email extends $hyoo_crus_atom($mol_data_email) { + } + const land = $hyoo_crus_land.make({ $ }); + const reg = land.Node(Email).Item(''); + $mol_assert_equal(reg.val(), null); + reg.val('foo@exaple.org'); + $mol_assert_equal(reg.val(), 'foo@exaple.org'); + $mol_assert_fail(() => reg.val('xxx'), 'xxx is not a /.+@.+/'); + $mol_assert_equal(reg.val(), 'foo@exaple.org'); + reg.vary('xxx'); + $mol_assert_equal(reg.val(), null); + }, + "Hyper link to another land"($) { + const realm = $hyoo_crus_realm.make({ $ }); + const land = realm.home().land(); + const reg = land.Node($hyoo_crus_atom_ref_to(() => $hyoo_crus_atom_vary)).Item('11111111'); + const remote = reg.remote_ensure($hyoo_crus_rank_public); + $mol_assert_unique(reg.land(), remote.land()); + $mol_assert_equal(reg.vary(), remote.ref()); + $mol_assert_equal(reg.remote(), remote); + }, + "Register with linked nodes"($) { + const realm = $hyoo_crus_realm.make({ $ }); + const land = realm.home().land(); + const str = land.Node($hyoo_crus_atom_str).Item('11111111'); + const ref = land.Node($hyoo_crus_atom_ref_to(() => $hyoo_crus_atom_str)).Item('11111111'); + $mol_assert_equal(ref.remote(), null); + ref.remote(str); + $mol_assert_equal(ref.vary(), ref.remote().ref(), str.ref()); + }, + "Enumerated reg type"($) { + class FileType extends $hyoo_crus_atom_enum(['file', 'dir', 'link']) { + } + const realm = $hyoo_crus_realm.make({ $ }); + const land = realm.home().land(); + const type = land.Data(FileType); + $mol_assert_equal(type.val(), null); + type.val('file'); + $mol_assert_equal(type.val(), 'file'); + $mol_assert_fail(() => type.val('drive'), 'Wrong value (drive)'); + $mol_assert_equal(type.val(), 'file'); + type.vary('drive'); + $mol_assert_equal(type.val(), null); + }, + }); + })($$ = $_1.$$ || ($_1.$$ = {})); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($_1) { + $mol_test({ + 'Per app profiles'($) { + const realm = $hyoo_crus_realm.make({ $ }); + const base = realm.home(); + const hall = base.hall_by($hyoo_crus_dict, $hyoo_crus_rank_public); + $mol_assert_unique(base.land(), hall); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + '$mol_syntax2_md_flow'() { + const check = (input, right) => { + const tokens = []; + $mol_syntax2_md_flow.tokenize(input, (...token) => tokens.push(token)); + $mol_assert_like(tokens, right); + }; + check('Hello,\nWorld..\r\n\r\n\nof Love!', [ + ['block', 'Hello,\n', ['Hello,', '\n'], 0], + ['block', 'World..\r\n\r\n\n', ['World..', '\r\n\r\n\n'], 7], + ['block', 'of Love!', ['of Love!', ''], 19], + ]); + check('# Header1\n\nHello!\n\n## Header2', [ + ['header', '# Header1\n\n', ['#', ' ', 'Header1', '\n\n'], 0], + ['block', 'Hello!\n\n', ['Hello!', '\n\n'], 11], + ['header', '## Header2', ['##', ' ', 'Header2', ''], 19], + ]); + check('```\nstart()\n```\n\n```jam.js\nrestart()\n```\n\nHello!\n\n```\nstop()\n```', [ + ['code', '```\nstart()\n```\n\n', ['```', '', 'start()\n', '```', '\n\n'], 0], + ['code', '```jam.js\nrestart()\n```\n\n', ['```', 'jam.js', 'restart()\n', '```', '\n\n'], 17], + ['block', 'Hello!\n\n', ['Hello!', '\n\n'], 42], + ['code', '```\nstop()\n```', ['```', '', 'stop()\n', '```', ''], 50], + ]); + check('| header1 | header2\n|----|----\n| Cell11 | Cell12\n| Cell21 | Cell22\n\n| Cell11 | Cell12\n| Cell21 | Cell22\n', [ + ['table', '| header1 | header2\n|----|----\n| Cell11 | Cell12\n| Cell21 | Cell22\n\n', ['| header1 | header2\n|----|----\n| Cell11 | Cell12\n| Cell21 | Cell22\n', '\n'], 0], + ['table', '| Cell11 | Cell12\n| Cell21 | Cell22\n', ['| Cell11 | Cell12\n| Cell21 | Cell22\n', ''], 68], + ]); + }, + }); +})($ || ($ = {})); + +; +"use strict"; +var $; +(function ($) { + $mol_test({ + 'all cases of using maybe'() { + $mol_assert_equal($mol_maybe(0)[0], 0); + $mol_assert_equal($mol_maybe(false)[0], false); + $mol_assert_equal($mol_maybe(null)[0], void 0); + $mol_assert_equal($mol_maybe(void 0)[0], void 0); + $mol_assert_equal($mol_maybe(void 0).map(v => v.toString())[0], void 0); + $mol_assert_equal($mol_maybe(0).map(v => v.toString())[0], '0'); + }, + }); +})($ || ($ = {})); + +; +"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); + }, + }); +})($ || ($ = {})); + + +//# sourceMappingURL=node.test.js.map diff --git a/node.test.js.map b/node.test.js.map new file mode 100644 index 0000000..9a8bb32 --- /dev/null +++ b/node.test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../mam.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/fail/fail.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/func/name/name.ts","../../../../mol/object2/object2.ts","../../../../mol/object/object.ts","../../../../mol/window/window.node.ts","../../../../mol/wire/cursor/cursor.ts","../../../../mol/wire/pub/pub.ts","../../../../mol/wire/wire.ts","../../../../mol/dev/format/format.ts","../../../../mol/wire/pub/sub/sub.ts","../../../../mol/after/timeout/timeout.ts","../../../../mol/after/frame/frame.node.ts","../../../../mol/promise/like/like.ts","../../../../mol/wire/fiber/fiber.ts","../../../../mol/guid/guid.ts","../../../../mol/key/key.ts","../../../../mol/compare/deep/deep.ts","../../../../mol/log3/log3.ts","../../../../mol/span/span.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/tree2/tree2.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/term/color/color.ts","../../../../mol/log3/log3.node.ts","../../../../mol/wire/task/task.ts","../../../../mol/wire/method/method.ts","../../../../mol/fail/catch/catch.ts","../../../../mol/fail/log/log.ts","../../../../mol/wire/atom/atom.ts","../../../../mol/wire/solo/solo.ts","../../../../mol/wire/plex/plex.ts","../../../../mol/mem/mem.ts","../../../../mol/dom/context/context.ts","../../../../node/node.node.ts","../../../../mol/env/env.ts","../../../../mol/env/env.node.ts","../../../../mol/exec/exec.node.ts","../../../../mol/dom/context/context.node.ts","../../../../mol/after/tick/tick.ts","../../../../mol/view/selection/selection.ts","../../../../mol/wrapper/wrapper.ts","../../../../mol/memo/memo.ts","../../../../mol/dom/qname/qname.ts","../../../../mol/wire/probe/probe.ts","../../../../mol/wire/watch/watch.ts","../../../../mol/const/const.ts","../../../../mol/wire/solid/solid.ts","../../../../mol/dom/render/attributes/attributes.ts","../../../../mol/dom/render/events/events.ts","../../../../mol/dom/render/styles/styles.ts","../../../../mol/dom/render/children/children.ts","../../../../mol/dom/render/fields/fields.ts","../../../../mol/wire/async/async.ts","../../../../mol/style/attach/attach.ts","../../../../mol/decor/decor.ts","../../../../mol/style/unit/unit.ts","../../../../mol/style/func/func.ts","../../../../mol/style/prop/prop.ts","../../../../mol/theme/theme.ts","../../../../mol/theme/-css/theme.css.ts","../../../../mol/gap/gap.ts","../../../../mol/gap/-css/gap.css.ts","../../../../mol/view/view/view.ts","../../../../mol/view/view/-css/view.css.ts","../../../../mol/plugin/plugin.ts","../../../../mol/scroll/scroll.view.tree","../../../../mol/dom/listener/listener.ts","../../../../mol/print/print.ts","../../../../mol/style/sheet/sheet.ts","../../../../mol/style/define/define.ts","../../../../mol/scroll/scroll.view.ts","../../../../mol/scroll/scroll.view.css.ts","../../../../mol/book2/book2.view.tree","../../../../mol/mem/cached/cached.ts","../../../../mol/layer/layer.ts","../../../../mol/layer/-css/layer.css.ts","../../../../mol/book2/book2.view.ts","../../../../mol/book2/-css/book2.view.css.ts","../../../../mol/pop/pop.view.tree","../../../../mol/pop/pop.view.ts","../../../../mol/pop/-css/pop.view.css.ts","../../../../mol/hotkey/hotkey.view.tree","../../../../mol/keyboard/code/code.ts","../../../../mol/hotkey/hotkey.view.ts","../../../../mol/nav/nav.view.tree","../../../../mol/nav/nav.view.ts","../../../../mol/mem/persist/persist.ts","../../../../mol/wire/sync/sync.ts","../../../../mol/storage/storage.ts","../../../../mol/state/local/local.ts","../../../../mol/charset/decode/decode.ts","../../../../mol/charset/encode/encode.ts","../../../../mol/file/file.ts","../../../../mol/action/action.ts","../../../../mol/compare/array/array.ts","../../../../mol/file/file.node.ts","../../../../mol/state/local/local.node.ts","../../../../mol/locale/locale.ts","../../../../mol/string/string.view.tree","../../../../mol/string/string.view.ts","../../../../mol/string/-css/string.view.css.ts","../../../../mol/svg/svg.view.tree","../../../../mol/state/time/time.ts","../../../../mol/svg/svg.view.ts","../../../../mol/svg/root/root.view.tree","../../../../mol/svg/root/-css/root.view.css.ts","../../../../mol/svg/path/path.view.tree","../../../../mol/icon/icon.view.tree","../../../../mol/icon/-css/icon.view.css.ts","../../../../mol/icon/cross/cross.view.tree","../../../../mol/speck/speck.view.tree","../../../../mol/speck/-css/speck.view.css.ts","../../../../mol/button/button.view.tree","../../../../mol/button/button.view.ts","../../../../mol/button/-css/button.view.css.ts","../../../../mol/button/typed/typed.view.tree","../../../../mol/button/typed/-css/typed.view.css.ts","../../../../mol/button/minor/minor.view.tree","../../../../mol/button/minor/-css/minor.view.css.ts","../../../../mol/list/list.view.tree","../../../../mol/support/css/css.ts","../../../../mol/list/list.view.ts","../../../../mol/list/-css/list.view.css.ts","../../../../mol/paragraph/paragraph.view.tree","../../../../mol/paragraph/paragraph.view.ts","../../../../mol/paragraph/-css/paragraph.view.css.ts","../../../../mol/dimmer/dimmer.view.tree","../../../../mol/regexp/regexp.ts","../../../../mol/dimmer/dimmer.view.ts","../../../../mol/dimmer/-css/dimmer.view.css.ts","../../../../mol/search/search.view.tree","../../../../localized_string","../../../../mol/search/search.view.ts","../../../../mol/search/-css/search.view.css.ts","../../../../mol/link/link.view.tree","../../../../mol/state/arg/arg.node.ts","../../../../mol/link/link.view.ts","../../../../mol/link/link.view.css.ts","../../../../mol/page/page.view.tree","../../../../mol/page/page.view.css.ts","../../../../mol/book2/catalog/catalog.view.tree","../../../../mol/match/text.ts","../../../../mol/book2/catalog/catalog.view.ts","../../../../mol/book2/catalog/-css/catalog.view.css.ts","../../../../mol/icon/plus/plus.view.tree","../../../../hyoo/crus/part/part.ts","../../../../mol/base64/encode/encode.ts","../../../../mol/base64/encode/encode.node.ts","../../../../mol/base64/decode/decode.ts","../../../../mol/base64/decode/decode.node.ts","../../../../mol/base64/ae/ae.ts","../../../../mol/buffer/buffer.ts","../../../../mol/data/tagged/tagged.ts","../../../../hyoo/crus/ref/ref.ts","../../../../mol/base64/url/url.ts","../../../../mol/crypto/native/native.node.ts","../../../../mol/crypto/key/key.ts","../../../../mol/crypto/secret/secret.ts","../../../../hyoo/crus/auth/auth.ts","../../../../hyoo/crus/face/face.ts","../../../../mol/wire/dict/dict.ts","../../../../mol/wire/set/set.ts","../../../../hyoo/crus/area/area.ts","../../../../hyoo/crus/rank/rank.ts","../../../../hyoo/crus/fund/fund.ts","../../../../mol/crypto/hash/hash.ts","../../../../hyoo/crus/pack/pack.ts","../../../../hyoo/crus/mine/mine.ts","../../../../hyoo/crus/mine/mine.node.ts","../../../../mol/time/base/base.ts","../../../../mol/time/duration/duration.ts","../../../../mol/time/moment/moment.ts","../../../../mol/time/interval/interval.ts","../../../../mol/dom/serialize/serialize.ts","../../../../mol/dom/parse/parse.ts","../../../../hyoo/crus/vary/vary.ts","../../../../mol/jsx/jsx.ts","../../../../mol/tree2/bin/bin.ts","../../../../mol/tree2/xml/from/dom/dom.ts","../../../../hyoo/crus/vary/cast/cast.tsx","../../../../mol/guard/defined.ts","../../../../mol/bus/bus.ts","../../../../mol/promise/promise/promise.ts","../../../../mol/wait/timeout/timeout.ts","../../../../mol/wire/race/race.ts","../../../../hyoo/crus/land/land.ts","../../../../hyoo/crus/unit/unit.ts","../../../../hyoo/crus/pass/pass.ts","../../../../hyoo/crus/gift/gift.ts","../../../../mol/rest/code/code.ts","../../../../mol/rest/port/port.ts","../../../../mol/rest/port/ws/ws.ts","../../../../mol/websocket/frame/frame.ts","../../../../mol/rest/port/ws/ws_std.ts","../../../../mol/rest/port/ws/ws.node.ts","../../../../hyoo/crus/yard/yard.ts","../../../../hyoo/crus/yard/yard.node.ts","../../../../hyoo/crus/gist/gist.ts","../../../../hyoo/crus/node/node.ts","../../../../mol/reconcile/reconcile.ts","../../../../hyoo/crus/realm/realm.ts","../../../../hyoo/crus/list/list.ts","../../../../hyoo/crus/dict/dict.ts","../../../../hyoo/crus/atom/atom.ts","../../../../hyoo/crus/home/home.ts","../../../../hyoo/crus/meta/meta.ts","../../../../hyoo/crus/entity/entity.ts","../../../../hyoo/survey/meet/meet.ts","../../../../mol/stack/stack.view.tree","../../../../mol/stack/-css/stack.view.css.ts","../../../../mol/text/code/token/token.view.tree","../../../../mol/text/code/token/token.view.css.ts","../../../../mol/text/code/row/row.view.tree","../../../../mol/syntax2/syntax2.ts","../../../../mol/syntax2/md/md.ts","../../../../mol/text/code/row/row.view.ts","../../../../mol/text/code/row/row.view.css.ts","../../../../mol/blob/blob.ts","../../../../mol/icon/clipboard/clipboard.view.tree","../../../../mol/icon/clipboard/outline/outline.view.tree","../../../../mol/button/copy/copy.view.tree","../../../../mol/html/encode/encode.ts","../../../../mol/button/copy/copy.view.ts","../../../../mol/text/code/code.view.tree","../../../../mol/text/code/code.view.ts","../../../../mol/text/code/code.view.css.ts","../../../../mol/textarea/textarea.view.tree","../../../../mol/textarea/textarea.view.ts","../../../../mol/textarea/-css/textarea.view.css.ts","../../../../mol/labeler/labeler.view.tree","../../../../mol/labeler/-css/labeler.view.css.ts","../../../../mol/form/field/field.view.tree","../../../../mol/form/field/field.view.ts","../../../../mol/form/field/-css/field.view.css.ts","../../../../mol/float/float.view.tree","../../../../mol/float/-css/float.view.css.ts","../../../../mol/check/check.view.tree","../../../../mol/maybe/maybe.ts","../../../../mol/check/-css/check.css.ts","../../../../mol/check/check.view.ts","../../../../mol/icon/chevron/chevron.view.tree","../../../../mol/check/expand/expand.view.tree","../../../../mol/check/expand/expand.view.ts","../../../../mol/check/expand/-css/expand.view.css.ts","../../../../mol/grid/grid.view.tree","../../../../mol/state/session/session.ts","../../../../mol/grid/grid.view.ts","../../../../mol/grid/-css/grid.view.css.ts","../../../../mol/image/image.view.tree","../../../../mol/image/image.view.ts","../../../../mol/image/-css/image.view.css.ts","../../../../mol/link/iconed/iconed.view.tree","../../../../mol/link/iconed/iconed.view.ts","../../../../mol/link/iconed/-css/iconed.view.css.ts","../../../../mol/embed/native/native.view.tree","../../../../mol/embed/native/native.view.ts","../../../../mol/embed/native/-css/native.view.css.ts","../../../../mol/icon/youtube/youtube.view.tree","../../../../mol/frame/frame.view.tree","../../../../mol/frame/frame.view.ts","../../../../mol/frame/frame.view.css.ts","../../../../mol/embed/youtube/youtube.view.tree","../../../../mol/embed/youtube/youtube.view.ts","../../../../mol/embed/youtube/-css/youtube.view.css.ts","../../../../mol/embed/any/any.view.tree","../../../../mol/embed/any/any.view.ts","../../../../mol/text/text/text.view.tree","../../../../mol/text/text/text.view.ts","../../../../mol/text/text/-css/text.view.css.ts","../../../../mol/string/button/button.view.tree","../../../../mol/string/button/-css/button.view.css.ts","../../../../mol/row/row.view.tree","../../../../mol/row/-css/row.view.css.ts","../../../../mol/form/form.view.tree","../../../../mol/form/form.view.ts","../../../../mol/form/-css/form.view.css.ts","../../../../mol/text/list/list.view.tree","../../../../mol/text/list/-css/list.view.css.ts","../../../../hyoo/survey/meet/form/form.view.tree","../../../../hyoo/survey/meet/form/form.view.ts","../../../../hyoo/survey/meet/form/form.view.css.ts","../../../../hyoo/survey/app/app.view.tree","../../../../hyoo/survey/person/person.ts","../../../../hyoo/survey/app/app.view.ts","../../../../mol/test/test.test.ts","../../../../mol/test/test.node.test.ts","../../../../mol/fail/log/log.test.ts","../../../../mol/log3/log3.test.ts","../../../../mol/jsx/jsx.test.tsx","../../../../mol/range2/range2.ts","../../../../mol/range2/range2.test.ts","../../../../mol/compare/deep/deep.test.tsx","../../../../mol/assert/assert.ts","../../../../mol/assert/assert.test.ts","../../../../mol/func/name/name.test.ts","../../../../mol/delegate/delegate.test.ts","../../../../mol/span/span.test.ts","../../../../mol/tree2/tree2.test.ts","../../../../mol/tree2/from/string/string.test.ts","../../../../mol/tree2/from/json/json.test.ts","../../../../mol/object/object.test.ts","../../../../mol/wire/pub/sub/sub.test.ts","../../../../mol/after/mock/mock.test.ts","../../../../mol/after/timeout/timeout.test.ts","../../../../mol/after/frame/frame.test.ts","../../../../mol/wire/fiber/fiber.test.ts","../../../../mol/wire/sync/sync.test.ts","../../../../mol/wire/async/async.test.ts","../../../../mol/wire/solo/solo.test.ts","../../../../mol/wire/plex/plex.test.ts","../../../../mol/wire/probe/probe.test.ts","../../../../mol/after/tick/tick.test.ts","../../../../mol/wrapper/wrapper.test.ts","../../../../mol/memo/memo.test.ts","../../../../mol/key/key.test.tsx","../../../../mol/wire/log/log.ts","../../../../mol/wire/atom/atom.test.ts","../../../../mol/const/const.test.ts","../../../../mol/view/view/view.test.ts","../../../../mol/style/sheet/sheet.test.ts","../../../../mol/charset/decode/decode.test.ts","../../../../mol/charset/encode/encode.test.ts","../../../../mol/compare/array/array.test.ts","../../../../mol/state/local/local.test.ts","../../../../mol/state/local/local.mock.test.ts","../../../../mol/locale/locale.test.ts","../../../../mol/button/button.test.ts","../../../../mol/regexp/regexp.test.ts","../../../../mol/dimmer/dimmer.test.ts","../../../../mol/base64/encode/encode.test.ts","../../../../mol/base64/decode/decode.test.ts","../../../../mol/error/mix/mix.ts","../../../../mol/error/mix/mix.test.ts","../../../../mol/data/error/error.ts","../../../../mol/data/number/number.ts","../../../../mol/data/number/number.test.ts","../../../../mol/data/integer/integer.ts","../../../../mol/data/integer/integer.test.ts","../../../../mol/data/tagged/tagged.test.ts","../../../../hyoo/crus/ref/ref.test.ts","../../../../mol/crypto/salt/salt.ts","../../../../mol/crypto/secret/secret.test.ts","../../../../hyoo/crus/auth/auth.test.ts","../../../../mol/wire/dict/dict.test.ts","../../../../mol/wire/set/set.test.ts","../../../../mol/crypto/hash/hash.test.ts","../../../../hyoo/crus/pack/pack.test.ts","../../../../hyoo/crus/mine/mine.test.ts","../../../../mol/time/duration/duration.test.ts","../../../../mol/time/moment/moment.test.ts","../../../../mol/time/interval/interval.test.ts","../../../../hyoo/crus/vary/vary.test.tsx","../../../../hyoo/crus/vary/cast/cast.test.ts","../../../../mol/bus/bus.test.ts","../../../../hyoo/crus/land/land.test.ts","../../../../mol/crypto/auditor/auditor.ts","../../../../hyoo/crus/unit/unit.test.ts","../../../../hyoo/crus/yard/yard.test.ts","../../../../mol/reconcile/reconcile.test.tsx","../../../../hyoo/crus/list/list.test.ts","../../../../hyoo/crus/dict/dict.test.ts","../../../../mol/data/setup/setup.ts","../../../../mol/data/setup/setup.test.ts","../../../../mol/data/string/string.ts","../../../../mol/data/string/string.test.ts","../../../../mol/data/pattern/pattern.ts","../../../../mol/data/pattern/pattern.test.ts","../../../../mol/data/email/email.ts","../../../../mol/data/email/email.test.ts","../../../../hyoo/crus/atom/atom.test.ts","../../../../hyoo/crus/home/home.test.ts","../../../../mol/syntax2/md/md.test.ts","../../../../mol/maybe/maybe.test.ts","../../../../mol/state/session/session.test.ts"],"names":[],"mappings":"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","sourcesContent":["Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\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' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['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","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ 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\tnamed.add( func )\n\t\treturn name\n\t\t\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\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\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 $\n\t\t}\n\t\tset $( next : $ ) {\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\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\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\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< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\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 InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\tstatic size() {\n\t\t\treturn {\n\t\t\t\twidth: 1024,\n\t\t\t\theight: 768,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.pop()\n\t\t\tthis.data.pop()\n\t\t\t\n\t\t\tif( this.data.length === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['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($ as any)['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\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\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\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) 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\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 as any)[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\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\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\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t\tthis.data.pop()\n\t\t\t\tthis.data.pop()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet tail = 0\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.data.length - 2, cursor )\n\t\t\t\t\tthis.data.pop()\n\t\t\t\t\tthis.data.pop()\n\t\t\t\t} else {\n\t\t\t\t\t++ tail\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor(; tail; -- tail ) {\n\t\t\t\tthis.data.pop()\n\t\t\t\tthis.data.pop()\n\t\t\t}\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\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\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise {\n\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t}\n\n}\n","namespace $ {\n\t\n\tconst handled = new WeakSet< Promise< unknown > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_frame | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_frame( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '<>'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper()\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_auto({\n\t\t\t\t\t\t[ $mol_dev_format_head ]: ()=> $mol_dev_format_shade( cursor ),\n\t\t\t\t\t\t[ $mol_dev_format_body ]: ()=> $mol_dev_format_native( this ),\n\t\t\t\t\t})\n\t\t\t\t\t: $mol_dev_format_shade( $mol_dev_format_native( this ), cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) && !handled.has( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\tresult = result.then( put, put )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) && !handled.has( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tresult = result.finally( ()=> {\n\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\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}\n\t\t\t\n\t\t\tif( $mol_promise_like( result ) && !handled.has( result ) ) {\n\t\t\t\t\t\n\t\t\t\tresult = Object.assign( result, {\n\t\t\t\t\tdestructor: (result as any)['destructor'] ?? (()=> {})\n\t\t\t\t} )\n\t\t\t\thandled.add( result )\n\t\t\t\t\n\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsub.destructor()\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\tif( value instanceof Uint8Array ) return [ ... value ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && left.stack === (right as any).stack\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, left.byteOffset, left.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\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 : $ ,\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 : $ ,\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\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\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}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\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.kids.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} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\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.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst 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\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( 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\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\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\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\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_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.host !== host ) break reuse\n\t\t\t\t\tif( existen.task !== task ) break reuse\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) break reuse\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst next = new $mol_wire_task( `${ (host as any)?.[ Symbol.toStringTag ] ?? host }.${ task.name }<#>`, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Non idempotency`,\n\t\t\t\t\t\texisten,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Ignore it',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakMap< any , boolean >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.get( error ) ) return false\n\t\t\n\t\tcatched.set( error , true )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\tconsole.error( error )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '<>'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = `${ prefix }.${ field }`\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '<>'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = `${ prefix }.${ task.name }<${ key_str.replace( /^\"|\"$/g, \"'\" ) }>`\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update fiber value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\tprev.destructor()\n\t\t\t}\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\ttry {\n\t\t\treturn target.require( name )\n\t\t} catch( error ) {\n\t\t\tif( ( error as any ).code === 'ERR_REQUIRE_ESM' ) {\n\t\t\t\tconst module = cache.get( name )\n\t\t\t\tif( module ) return module\n\t\t\t\tthrow import( name ).then( module => cache.set( name, module ) )\n\t\t\t}\n\t\t\t$.$mol_fail_log( error )\n\t\t\treturn null\n\t\t}\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nconst cache = new Map< string, any >()\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) {\n\t\t\treturn $mol_fail( res.error || new Error( res.stderr.toString(), { cause: res.stdout } ) )\n\t\t}\n\t\t\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\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 class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[], notify?: 'notify' ) : Element[] {\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next?.[0] ?? $mol_dom_context.document.activeElement\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\t\t\t\n\t\t\tif( !next || notify ) return parents\n\t\t\t\n\t\t\tnew $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\tconst element = 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\t\t\t\t\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t}\n\t\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 : Class , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler: ProxyHandler = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t} \n\n\t\t\t\t;(handler as any)[ 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\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr : PropertyDescriptor,\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_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\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/g , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\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 === undefined ) {\n\t\t\t\t\n\t\t\t\tcontinue\n\t\t\t\t\n\t\t\t} if( 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\t\n\texport function $mol_dom_render_events (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any },\n\t\tpassive = false\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive } )\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\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle.setProperty(kebab(name), `${ val }px`);\n\t\t\t} else {\n\t\t\t\tstyle.setProperty(kebab(name), val);\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\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\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\n\t\t\t(el as any)[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify\n\t\t\n\t}\n\n\ttype FunctionResultPromisify = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike ? Some : (...args: Args) => Promise\n\t\t: Some\n\n\ttype MethodsResultPromisify = {\n\t\t[K in keyof Host]: FunctionResultPromisify\n\t}\n\n\ttype ObjectOrFunctionResultPromisify = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify : {}\n\t) & ( Some extends Object ? MethodsResultPromisify : Some )\n\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_force() {\n\t\tif( all.length ) {\n\t\t\tel!.innerHTML += '\\n' + all.join( '\\n\\n' )\n\t\t\tall = []\n\t\t}\n\t\ttimer = null\n\t\treturn el!\n\t}\n\t\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( $mol_style_attach_force )\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\n\texport type $mol_style_unit_str< Quanity extends $mol_style_unit_any = $mol_style_unit_any> = `${number}${Quanity}`\n\n\t/**\n\t * CSS Units\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\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 `${value}%` as const }\n\t\tstatic px( value : number ) { return `${ value }px` as const }\n\t\tstatic mm( value : number ) { return `${value}mm` as const }\n\t\tstatic cm( value : number ) { return `${value}cm` as const }\n\t\tstatic Q( value : number ) { return `${value}Q` as const }\n\t\tstatic in( value : number ) { return `${value}in` as const }\n\t\tstatic pc( value : number ) { return `${value}pc` as const }\n\t\tstatic pt( value : number ) { return `${value}pt` as const }\n\t\tstatic cap( value : number ) { return `${value}cap` as const }\n\t\tstatic ch( value : number ) { return `${value}ch` as const }\n\t\tstatic em( value : number ) { return `${value}em` as const }\n\t\tstatic rem( value : number ) { return `${value}rem` as const }\n\t\tstatic ex( value : number ) { return `${value}ex` as const }\n\t\tstatic ic( value : number ) { return `${value}ic` as const }\n\t\tstatic lh( value : number ) { return `${value}lh` as const }\n\t\tstatic rlh( value : number ) { return `${value}rlh` as const }\n\t\tstatic vh( value : number ) { return `${value}vh` as const }\n\t\tstatic vw( value : number ) { return `${value}vw` as const }\n\t\tstatic vi( value : number ) { return `${value}vi` as const }\n\t\tstatic vb( value : number ) { return `${value}vb` as const }\n\t\tstatic vmin( value : number ) { return `${value}vmin` as const }\n\t\tstatic vmax( value : number ) { return `${value}vmax` as const }\n\t\t\n\t\tstatic deg( value : number ) { return `${value}deg` as const }\n\t\tstatic rad( value : number ) { return `${value}rad` as const }\n\t\tstatic grad( value : number ) { return `${value}grad` as const }\n\t\tstatic turn( value : number ) { return `${value}turn` as const }\n\n\t\tstatic s( value : number ) { return `${value}s` as const }\n\t\tstatic ms( value : number ) { return `${value}ms` as const }\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| 'clamp'\n\t| 'scale'\n\t| 'cubic-bezier'\n\t| 'linear'\n\t| 'steps'\n\t| $mol_style_func_image\n\t| $mol_style_func_filter\n\t\n\texport type $mol_style_func_image =\n\t| 'url'\n\t| 'linear-gradient'\n\t| 'radial-gradient'\n\t| 'conic-gradient'\n\t\n\texport type $mol_style_func_filter =\n\t| 'blur'\n\t| 'brightness'\n\t| 'contrast'\n\t| 'drop-shadow'\n\t| 'grayscale'\n\t| 'hue-rotate'\n\t| 'invert'\n\t| 'opacity'\n\t| 'sepia'\n\t| 'saturate'\n\n\tconst { per } = $mol_style_unit\n\t\n\t/**\n\t * CSS Functions\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\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 linear_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'linear-gradient' , value )\n\t\t}\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, Value extends string >( name : Name, defaultValue? : Value ) {\n\t\t\treturn new $mol_style_func( 'var' , defaultValue ? [name, defaultValue] : 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 clamp(\n\t\t\tmin: $mol_style_unit_str< any >,\n\t\t\tmid: $mol_style_unit_str< any >,\n\t\t\tmax: $mol_style_unit_str< any >,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'clamp',\n\t\t\t\t[ min, mid, max ],\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\tstatic scale(\n\t\t\tzoom: number,\n\t\t) {\n\t\t\treturn new $mol_style_func( 'scale', [ zoom ] )\n\t\t}\n\t\t\n\t\tstatic linear(\n\t\t\t...breakpoints : Array]>\n\t\t){\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"linear\",\n\t\t\t\tbreakpoints.map((e) =>\n\t\t\t\t\tArray.isArray(e)\n\t\t\t\t\t\t? String(e[0]) +\n\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t (typeof e[1] === \"number\" ? e[1] + \"%\" : e[1].toString())\n\t\t\t\t\t\t: String(e)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic cubic_bezier(\n\t\t\tx1: number,\n\t\t\ty1: number,\n\t\t\tx2: number,\n\t\t\ty2: number\n\t\t){\n\t\t\treturn new $mol_style_func( 'cubic-bezier', [ x1, y1, x2, y2 ]);\n\t\t}\n\t\t\n\t\tstatic steps(value: number, step_position: 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both' | 'start' | 'end'){\n\t\t\treturn new $mol_style_func( 'steps', [ value, step_position ] )\n\t\t}\n\t\t\n\t\tstatic blur(value?: $mol_style_unit_str<$mol_style_unit_length>){\n\t\t\treturn new $mol_style_func( 'blur', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic brightness(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'brightness', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic contrast(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'contrast', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic drop_shadow(\n\t\t\tcolor: $mol_style_properties_color,\n\t\t\tx_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\ty_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\tblur_radius?: $mol_style_unit_str<$mol_style_unit_length>\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"drop-shadow\",\n\t\t\t\tblur_radius\n\t\t\t\t\t? [color, x_offset, y_offset, blur_radius]\n\t\t\t\t\t: [color, x_offset, y_offset]\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic grayscale(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'grayscale', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic hue_rotate(value?: 0 | $mol_style_unit_str<$mol_style_unit_angle>){\n\t\t\treturn new $mol_style_func( 'hue-rotate', value ?? \"\")\n\t\t}\n\t\t\n\t\tstatic invert(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'invert', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic opacity(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'opacity', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic sepia(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'sepia', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic saturate(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'saturate', value ?? \"\" );\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Create record of CSS variables. */\n\texport function $mol_style_prop< Keys extends string[] >(\n\t\tprefix: string ,\n\t\tkeys: Keys\n\t) {\n\t\t\n\t\tconst record = keys.reduce( ( rec , key: Keys[number] )=> {\n\t\t\t\n\t\t\trec[ key ] = $mol_style_func.vary( `--${ prefix }_${ key }` )\n\t\t\treturn rec\n\t\t\t\n\t\t}, {} as Record< Keys[number], $mol_style_func< 'var' > > )\n\t\t\n\t\treturn record\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Theme css variables\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\t\n\texport const $mol_theme = $mol_style_prop(\n\t\t'mol_theme',\n\t\t[\n\t\t\t'back',\n\t\t\t'hover',\n\t\t\t'card',\n\t\t\t'current',\n\t\t\t'special',\n\t\t\t'text',\n\t\t\t'control',\n\t\t\t'shade',\n\t\t\t'line',\n\t\t\t'focus',\n\t\t\t'field',\n\t\t\t'image',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \":root {\\n\\t--mol_theme_hue: 210deg;\\n\\t--mol_theme_hue_spread: 90deg;\\n}\\n\\n:where([mol_theme]) {\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n\\tbackground-color: var(--mol_theme_back);\\n}\\n\\t\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\n\\t--mol_theme_luma: -1;\\n\\t--mol_theme_image: invert(1) hue-rotate( 180deg );\\n\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\n\\t/* --mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .05 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 0% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .2 );\\n\\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 80% .2 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_special: oklch( 80% .3 calc( var(--mol_theme_hue) + 60deg ) ); */\\n\\n}\\n\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_luma: 1;\\n\\t--mol_theme_image: none;\\n\\t\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t\\n\\t/* --mol_theme_back: oklch( 93% .01 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 100% .02 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 70% 0 var(--mol_theme_hue) / .2 );\\n\\t--mol_theme_focus: oklch( 20% .8 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 45% .25 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 45% .5 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_special: oklch( 45% .5 calc( var(--mol_theme_hue) + 60deg ) ); */\\n\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 30% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 40%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 25% .05 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 50%, 80% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 80%, 95%, .25 );\\n\\t/* --mol_theme_back: oklch( 95% .02 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 80% .05 var(--mol_theme_hue) / .25 ); */\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 30% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 40% .2 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t--mol_theme_card: oklch( 50% .3 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + 180deg ), 90%, 75% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + 180deg ), 80%, 90%, .25 );\\n\\t/* --mol_theme_back: oklch( 90% .03 calc( var(--mol_theme_hue) + 120deg ) );\\n\\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 120deg ) / .25 ); */\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 30% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 50%, 92% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\\n\\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) - 60deg ) );\\n\\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) - 60deg ) / .25 ); */\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 30% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 40%, 20%, .25 );\\n\\t/* --mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + 60deg ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 50%, 92% );\\n\\t--mol_theme_card: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 100%, .5 );\\n\\t/* --mol_theme_back: oklch( 95% .02 calc( var(--mol_theme_hue) + 60deg ) );\\n\\t--mol_theme_card: oklch( 80% .05 calc( var(--mol_theme_hue) + 60deg ) / .25 ); */\\n}\\n\"\n) }","namespace $ {\n\n\t/**\n\t * Gap in CSS\n\t * @see https://page.hyoo.ru/#!=msdb74_bm7nsq\n\t */\n\texport let $mol_gap = $mol_style_prop(\n\t\t'mol_gap',\n\t\t[\n\t\t\t'block',\n\t\t\t'text',\n\t\t\t'round',\n\t\t\t'space',\n\t\t\t'blur',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/gap/gap.css\",\n \":root {\\n\\t--mol_gap_block: .75rem;\\n\\t--mol_gap_text: .5rem .75rem;\\n\\t--mol_gap_round: .25rem;\\n\\t--mol_gap_space: .25rem;\\n\\t--mol_gap_blur: .5rem;\\n}\\n\"\n) }","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\t\n\tconst error_showed = new WeakMap< Error, $mol_view >()\n\n\t/**\n\t * The base class for all visual components. It provides the infrastructure for reactive lazy rendering, handling exceptions.\n\t * @see https://mol.hyoo.ru/#!section=docs/=vv2nig_s5zr0f\n\t */\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\ttry {\n\t\t\t\tthis.dom_tree()\n\t\t\t\tdocument.title = this.title()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic autobind() {\n\t\t\t\n\t\t\tconst nodes = $mol_dom_context.document.querySelectorAll( '[mol_view_root]:not([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 = ($ as any)[ name ] as typeof $mol_view\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\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\treturn this.toString().match( /.*\\.(\\w+)/ )?.[1] ?? this.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\t@ $mol_memo.method\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\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub()\n\t\t\t\tif( !sub ) return 0\n\t\t\t\t\n\t\t\t\tsub.forEach( view => {\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\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\t\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\t \n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\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_wire_probe( ()=> this.view_rect() ) === undefined ) {\n\t\t\t\t$mol_wire_watch()\n\t\t\t\treturn null // don't touch DOM to prevent instant reflow\n\t\t\t} else {\n\t\t\t\tconst { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect()\n\t\t\t\treturn { width, height, left, right, top, bottom } // pick to optimize compare\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tdom_id() {\n\t\t\treturn this.toString().replace( //g, ')' ).replaceAll( /\"/g, \"'\" )\n\t\t}\n\t\n\t\tdom_node_external( next?: Element) {\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\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst node = this.dom_node_external( next )\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event_async()\n\t\t\t$mol_dom_render_events(node, events)\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_final() {\n\t\t\t\n\t\t\tthis.render()\n\t\t\t\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tfor( const el of sub ) {\n\t\t\t\tif( el && typeof el === 'object' && 'dom_final' in el ) {\n\t\t\t\t\tel['dom_final']()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.dom_node()\n\t\t\t\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\trender: try {\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\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\tconst mol_view_error = $mol_promise_like(error) ? 'Promise' : error.name || error.constructor.name\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error } )\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) break render\n\t\t\t\tif( ( error_showed.get( error ) ?? this ) !== this ) break render\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst message = error.message || error\n\t\t\t\t\t;( node as HTMLElement ).innerText = message.replace( /^|$/mg, '\\xA0\\xA0' )\n\t\t\t\t} catch {}\n\t\t\t\t\n\t\t\t\terror_showed.set( error, this )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.auto()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\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$mol_dom_render_styles( node, this.style_size() )\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tauto() {\n\t\t\treturn null as any\n\t\t}\n\n\t\t@ $mol_mem\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: child instanceof $mol_dom_context.Node\n\t\t\t\t\t? child\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\t$mol_dom_render_fields( node , this.field() )\n\t\t\t\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\tif( current.constructor.name !== classes.at(-1)?.name ) {\n\t\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\t}\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\tstatic _view_names?: Map< string, string[] >\n\t\tstatic view_names( suffix: string ) {\n\t\t\t\n\t\t\tlet cache = Reflect.getOwnPropertyDescriptor( this, '_view_names' )?.value\n\t\t\tif( !cache ) cache = this._view_names = new Map\n\t\t\t\n\t\t\tconst cached = cache.get( suffix )\n\t\t\tif( cached ) return cached\n\t\t\t\n\t\t\tconst names = [] as string[]\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tfor( const Class of this.view_classes() ) {\n\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\telse break\n\t\t\t}\n\t\t\t\n\t\t\tcache.set( suffix, names )\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this ) as $mol_wire_fiber< any, any[], any >\n\n\t\t\tif(!( owner?.host instanceof $mol_view )) return names\n\n\t\t\tconst suffix = owner.task.name.trim()\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tnames.push( ... ( owner.host.constructor as typeof $mol_view ).view_names( suffix ) )\n\t\t\t\n\t\t\tfor( let prefix of owner.host.view_names_owned() ) {\n\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t}\n\t\t\t\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tview_names() {\n\t\t\tconst names = new Set< string >()\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) names.add( name )\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 ) names.add( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttheme( next = null as null | string ) {\n\t\t\treturn next\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\t\tmol_theme: this.theme() ?? undefined,\n\t\t\t} as {}\n\t\t}\n\t\t\n\t\tstyle_size() {\n\t\t\treturn {\n\t\t\t\tminHeight: this.minimal_height(),\n\t\t\t\tminWidth: this.minimal_width(),\n\t\t\t} as {\n\t\t\t\t[key: string]: string | number;\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\t@ $mol_mem\n\t\tevent_async() {\n\t\t\treturn { ... $mol_wire_async(this.event()) }\n\t\t}\n\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\t\t\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_wire_cache( this ).sub().cache ) ,\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\ttry {\n\t\t\t\tfor( const item of this.sub() ) {\n\t\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch( error: unknown ) {\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t$mol_fail_log( error )\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\tensure_visible( view: $mol_view, align: ScrollLogicalPosition = \"start\" ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.dom_final()\n\t\t\t} catch(err) {\n\t\t\t\t$mol_fail_log(err)\n\t\t\t}\n\n\t\t\tview.dom_node().scrollIntoView({ block: align })\n\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tif( win.parent !== win.self && !win.document.hasFocus() ) return\n\t\t\t\n\t\t\tnew this.$.$mol_after_frame( ()=> {\n\t\t\t\t\n\t\t\t\tthis.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' })\n\t\t\t\tthis.focused( true )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\toverride destructor() {\n\t\t\tconst node = $mol_wire_probe(() => this.dom_node())\n\t\t\tif (! node) return\n\n\t\t\tconst events = $mol_wire_probe(() => this.event_async())\n\t\t\tif (! events) return\n\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.removeEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\tevents[ event_name ]\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $ , typeof $mol_view >\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: 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\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tcontain: style;\\n\\tscrollbar-color: var(--mol_theme_line) transparent;\\n\\tscrollbar-width: thin;\\n}\\t\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_line);\\n}\\t\\n\\n[mol_view]::-webkit-scrollbar {\\n\\twidth: .25rem;\\n\\theight: .25rem;\\n}\\n\\n[mol_view]::-webkit-scrollbar-corner {\\n\\tbackground-color: var(--mol_theme_line);\\n}\\n\\n[mol_view]::-webkit-scrollbar-track {\\n\\tbackground-color: transparent;\\n}\\n\\n[mol_view]::-webkit-scrollbar-thumb {\\n\\tbackground-color: var(--mol_theme_line);\\n\\tborder-radius: var(--mol_gap_round);\\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-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n\\tfont-size: 1rem;\\n\\tline-height: 1.5rem;\\n\\tbackground: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text);\\n\\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\\n\\ttab-size: 4;\\n\\toverscroll-behavior: contain; /** Disable navigation gestures **/\\n}\\n\\n@media print {\\n\\t[mol_view_root] {\\n\\t\\theight: auto;\\n\\t}\\n}\\n\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t-45deg,\\n\\t\\t#f92323,\\n\\t\\t#f92323 .5rem,\\n\\t\\t#ff3d3d .5rem,\\n\\t\\t#ff3d3d 1.5rem\\n\\t);\\n\\tcolor: black;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n@keyframes mol_view_wait {\\n\\tfrom {\\n\\t\\topacity: .25;\\n\\t}\\n\\t20% {\\n\\t\\topacity: .75;\\n\\t}\\n\\tto {\\n\\t\\topacity: .25;\\n\\t}\\n}\\n\\n:where([mol_view][mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground: var(--mol_theme_hover);\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait 1s steps( 20, end ) infinite;\\n}\\n\"\n) }","namespace $ {\n\t/** Plugin is component without its own DOM element, but instead uses the owner DOM element */\n\texport class $mol_plugin extends $mol_view {\n\n\t\toverride dom_node_external( next? : Element ) {\n\t\t\treturn next ?? $mol_owning_get>( this )!.host!.dom_node()\n\t\t}\n\n\t\toverride render() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\n\t}\n\n}\n","$mol_scroll $mol_view\n\tscroll_top? 0\n\tscroll_left? 0\n\tfield *\n\t\t^\n\t\ttabIndex <= tabindex -1\n\tevent *\n\t\t^\n\t\tscroll?event <=> event_scroll?event null\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 $ {\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\tlet res = `[${ block }_${ path.join('_') }]`\n\t\t\t\tif( prefix ) res = prefix + ' :where(' + res + ')'\n\t\t\t\treturn res\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 as any)[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 as any)[key] )\n\n\t\t\t\t} else if( key[0] === '$' ) {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + ' :where([' + $mol_dom_qname( key ) + '])' , [] , (config as any)[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 ) + ' > :where([' + $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 ) + ':where([' + 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 as any)[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 if( key[0] === '[' && key[key.length-1] === ']' ) {\n\n\t\t\t\t\tconst attr = key.slice( 1, -1 )\n\t\t\t\t\tconst vals = config[ key as any ] as any as Record< string, any >\n\t\t\t\t\t\n\t\t\t\t\tfor( let val in vals ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ':where([' + attr + '=' + JSON.stringify( val ) + '])' , [] , vals[val] )\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t} else {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + key , [] , (config as any)[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\t/**\n\t * CSS in TS.\n\t * Statically typed CSS style sheets. Following samples show which CSS code are generated from TS code.\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\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\t\n\t/**\n\t * Scrolling pane.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_scroll_demo\n\t */\n\texport class $mol_scroll extends $.$mol_scroll {\n\n\t\t@ $mol_mem\n\t\tscroll_top( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollTop = next\n\t\t\t\n\t\t\treturn el.scrollTop\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_left( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollLeft = next\n\t\t\t\n\t\t\treturn el.scrollLeft\n\t\t}\n\t\t\n\t\tevent_scroll( next? : Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\n\t\t\tthis.scroll_left( el.scrollLeft, 'cache' )\n\t\t\tthis.scroll_top( el.scrollTop, 'cache' )\n\t\t\t\n\t\t}\n\n\t\tminimal_height() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $.$$ {\n\n\tconst { per , rem , px } = $mol_style_unit\n\n\t$mol_style_define( $mol_scroll , {\n\n\t\tdisplay: 'grid',\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\t// basis: 0,\n\t\t},\n\t\toutline: 'none',\n\t\talign: {\n\t\t\tself: 'stretch',\n\t\t\titems: 'flex-start',\n\t\t},\n\t\tboxSizing: 'border-box',\n\t\twillChange: 'scroll-position',\n\t\tscroll: {\n\t\t\tpadding: [ rem(.75), 0 ],\n\t\t},\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\tgridArea: '1/1',\n\t\t\t},\n\t\t},\n\n\t\t'::before': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t'::after': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t\n\t\t'::-webkit-scrollbar': {\n\t\t\twidth: rem(.25),\n\t\t\theight: rem(.25),\n\t\t},\n\t\t\n\t\t'@media' : {\n\t\t\t'print' : {\n\t\t\t\toverflow: 'visible',\n\t\t\t\tcontain: 'none',\n\t\t\t\tmaxHeight: 'unset',\n\t\t\t},\n\t\t},\n\n\t})\n\n}\n","$mol_book2 $mol_scroll\n\tmenu_title \\\n\tsub <= pages /$mol_view\n\tminimal_width 0\n\tPlaceholder $mol_view\n\tGap* $mol_view title \\\n","namespace $ {\n\texport let $mol_mem_cached = $mol_wire_probe\n}\n","namespace $ {\n\n\t/**\n\t * Z-index values for layers\n\t * https://page.hyoo.ru/#!=xthcpx_wqmiba\n\t */\n\texport let $mol_layer = $mol_style_prop(\n\t\t'mol_layer',\n\t\t[\n\t\t\t'hover',\n\t\t\t'focus',\n\t\t\t'speck',\n\t\t\t'float',\n\t\t\t'popup',\n\t\t]\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/layer/layer.css\",\n \":root {\\n\\t--mol_layer_hover: 1;\\n\\t--mol_layer_focus: 2;\\n\\t--mol_layer_speck: 3;\\n\\t--mol_layer_float: 4;\\n\\t--mol_layer_popup: 5;\\n}\\n\"\n) }","namespace $.$$ {\n\n\t/**\n\t * Root component for adaptivity to various screen sizes. Implements booklet UX.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_book2_demo\n\t */\n\texport class $mol_book2 extends $.$mol_book2 {\n\t\t\n\t\ttitle() {\n\t\t\treturn this.pages().map( page => {\n\t\t\t\ttry {\n\t\t\t\t\treturn page?.title()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t} ).reverse().filter( Boolean ).join( ' | ' )\n\t\t}\n\t\t\n\t\tmenu_title() {\n\t\t\treturn this.pages()[0]?.title() || this.title()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\t\n\t\t\tconst next = [ ... this.pages(), this.Placeholder() ]\n\t\t\t\n\t\t\tconst prev = $mol_mem_cached( ()=> this.sub() ) ?? []\n\t\t\t\n\t\t\tfor( let i = 1 ; i++ ; ) {\n\t\t\t\t\n\t\t\t\tconst p = prev[ prev.length - i ]\n\t\t\t\tconst n = next[ next.length - i ]\n\t\t\t\t\n\t\t\t\tif( !n ) break\n\n\t\t\t\tif( p === n ) continue\n\n\t\t\t\tn.bring()\n\t\t\t\t\n\t\t\t\tbreak\n\n\t\t\t}\n\n\t\t\treturn next as readonly $mol_view[]\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst pages = this.pages()\n\t\t\t\n\t\t\tif( pages.length ) pages[ pages.length - 1 ].bring()\n\t\t\telse super.bring()\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/book2/book2.view.css\",\n \"[mol_book2] {\\n\\tdisplay: flex;\\n\\tflex-flow: row nowrap;\\n\\talign-items: stretch;\\n\\tflex: 1 1 auto;\\n\\talign-self: stretch;\\n\\tmargin: 0;\\n\\t/* box-shadow: 0 0 0 1px var(--mol_theme_line); */\\n\\t/* transform: translateZ(0); */\\n\\ttransition: none;\\n\\toverflow: overlay;\\n\\tscroll-snap-type: x mandatory;\\n\\t/* padding: 0 1px;\\n\\tscroll-padding: 0 1px;\\n\\tgap: 1px; */\\n}\\n\\n[mol_book2] > * {\\n/* \\tflex: none; */\\n\\tscroll-snap-stop: always;\\n\\tscroll-snap-align: end;\\n\\tposition: relative;\\n\\tmin-height: 100%;\\n\\tmax-height: 100%;\\n\\tmax-width: 100%;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_field);\\n}\\n\\n[mol_book2] > *:not(:first-of-type):before,\\n[mol_book2] > *:not(:last-of-type)::after {\\n\\tcontent: '';\\n\\tposition: absolute;\\n\\ttop: 1.5rem;\\n\\twidth: 2px;\\n\\theight: 1rem;\\n\\tbackground: linear-gradient(\\n\\t\\tto bottom,\\n\\t\\tvar(--mol_theme_focus) 0%,\\n\\t\\tvar(--mol_theme_focus) 14%,\\n\\t\\ttransparent 15%,\\n\\t\\ttransparent 42%,\\n\\t\\tvar(--mol_theme_focus) 43%,\\n\\t\\tvar(--mol_theme_focus) 57%,\\n\\t\\ttransparent 58%,\\n\\t\\ttransparent 85%,\\n\\t\\tvar(--mol_theme_focus) 86%,\\n\\t\\tvar(--mol_theme_focus) 100%\\n\\t);\\n\\topacity: .5;\\n\\tz-index: var(--mol_layer_speck);\\n}\\n[mol_book2] > *:not(:first-of-type):before {\\n\\tleft: -1px;\\n}\\n[mol_book2] > *:not(:last-of-type)::after {\\n\\tright: -1px;\\n}\\n\\n:where([mol_book2]) > * {\\n\\tbackground-color: var(--mol_theme_card);\\n\\t/* box-shadow: 0 0 0 1px var(--mol_theme_back); */\\n}\\n\\n[mol_book2] > [mol_book2] {\\n\\tdisplay: contents;\\n}\\n\\n[mol_book2] > *:first-child {\\n\\tscroll-snap-align: start;\\n}\\n\\n[mol_book2] > [mol_view] {\\n\\ttransform: none; /* prevent content clipping */\\n}\\n\\n[mol_book2_placeholder] {\\n\\tflex: 1 1 0;\\n\\tbackground: none;\\n}\\n\\n[mol_book2_gap] {\\n\\tbackground: none;\\n\\tflex-grow: 1;\\n\\tscroll-snap-align: none;\\n\\tmargin-right: -1px;\\n\\tbox-shadow: none;\\n}\\n\\n[mol_book2_gap]::before,\\n[mol_book2_gap]::after {\\n\\tdisplay: none;\\n}\\n\"\n) }","$mol_pop $mol_view\n\tshowed? false\n\talign_vert \\\n\talign_hor \\\n\tprefer \\vert\n\tsub /\n\t\t<= Anchor null\n\tsub_visible /\n\t\t<= Anchor\n\t\t<= Bubble $mol_pop_bubble\n\t\t\talign <= align \\bottom_center\n\t\t\tcontent <= bubble_content /$mol_view_content\n\t\t\theight_max <= height_max 9999\n\n$mol_pop_bubble $mol_view\n\tsub <= content /$mol_view_content\n\tstyle *\n\t\t^\n\t\tmaxHeight <= height_max 9999\n\tattr *\n\t\t^\n\t\tmol_pop_align <= align \\\n\t\ttabindex 0\n","namespace $.$$ {\n\n\t/**\n\t * `Bubble` that can be shown anchored to `Anchor` element.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_pop_demo\n\t */\n\texport class $mol_pop extends $.$mol_pop {\n\t\t\n\t\t@ $mol_mem\n\t\tshowed( next = false ) {\n\t\t\tthis.focused()\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub_visible() {\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\t@ $mol_mem\n\t\theight_max() {\n\t\t\t\n\t\t\tconst viewport = this.$.$mol_window.size()\n\t\t\tconst rect_bubble = this.view_rect()!\n\t\t\tconst align = this.align_vert()\n\t\t\t\n\t\t\tif( align === 'bottom' ) return ( viewport.height - rect_bubble.bottom ) * .66\n\t\t\tif( align === 'top' ) return rect_bubble.top * .66\n\t\t\t\n\t\t\treturn 0\n\t\t}\n\n\t\t@ $mol_mem\n\t\talign() {\n\t\t\tswitch( this.prefer() ) {\n\t\t\t\tcase 'hor': return `${ this.align_hor() }_${ this.align_vert() }`\n\t\t\t\tcase 'vert': return `${ this.align_vert() }_${ this.align_hor() }`\n\t\t\t\tdefault: return this.prefer()\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\talign_vert() {\n\t\t\tconst viewport = this.view_port()\n\t\t\t\n\t\t\tconst rect_pop = this.view_rect()\n\t\t\tif( !rect_pop ) return 'suspense'\n\t\t\t\n\t\t\treturn rect_pop.top > ( viewport.top + viewport.height / 2 ) ? 'top' : 'bottom'\n\t\t}\n\n\t\t@ $mol_mem\n\t\talign_hor() {\n\t\t\tconst viewport = this.view_port()\n\t\t\t\n\t\t\tconst rect_pop = this.view_rect()\n\t\t\tif( !rect_pop ) return 'suspense'\n\t\t\t\n\t\t\treturn rect_pop.left > ( viewport.left + viewport.width / 2 ) ? 'left' : 'right'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tView_port() {\n\t\t\tconst view = new $mol_view\n\t\t\tview.dom_node = ()=> {\n\t\t\t\tlet node = this.dom_node() as HTMLElement\n\t\t\t\twhile( node = node.offsetParent! as HTMLElement ) {\n\t\t\t\t\tif( this.$.$mol_dom_context.getComputedStyle( node ).overflow !== 'visible' ) return node\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_dom_context.document.documentElement\n\t\t\t}\n\t\t\treturn view\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tview_port() {\n\t\t\treturn this.View_port().view_rect() ?? { ... this.$.$mol_window.size(), left: 0, top: 0 }\n\t\t}\n\n\t}\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_bubble] {\\n\\tbox-shadow: 0 0 1rem hsla(0,0%,0%,.5);\\n\\tborder-radius: var(--mol_gap_round);\\n\\tposition: absolute;\\n\\tz-index: var(--mol_layer_popup);\\n\\tbackground: var(--mol_theme_back);\\n\\tmax-width: none;\\n\\tmax-height: none;\\n\\t/* overflow: hidden;\\n\\toverflow-y: scroll;\\n\\toverflow-y: overlay; */\\n\\tword-break: normal;\\n\\twidth: max-content;\\n\\theight: max-content;\\n\\tflex-direction: column;\\n\\tmax-width: 80vw;\\n\\tmax-height: 80vw;\\n\\tcontain: paint;\\n\\ttransition-property: opacity;\\n}\\n\\n:where( [mol_pop_bubble] > * ) {\\n\\tbackground: var(--mol_theme_card);\\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=\\\"suspense_suspense\\\"] {\\n\\topacity: 0;\\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) }","$mol_hotkey $mol_plugin\n\tevent *\n\t\t^\n\t\tkeydown?event <=> keydown?event null\n\tkey *\n\tmod_ctrl false\n\tmod_alt false\n\tmod_shift false\n","namespace $ {\n\t/**\n\t* Key names code for hotkey\n\t* @see [mol_hotkey](../../hotkey/hotkey.view.ts)\n\t*/\n\texport enum $mol_keyboard_code {\n\t\tbackspace = 8,\n\t\ttab = 9,\n\t\tenter = 13,\n\t\tshift = 16,\n\t\tctrl = 17,\n\t\talt = 18,\n\t\tpause = 19,\n\t\tcapsLock = 20,\n\t\tescape = 27,\n\t\tspace = 32,\n\t\tpageUp = 33,\n\t\tpageDown = 34,\n\t\tend = 35,\n\t\thome = 36,\n\t\tleft = 37,\n\t\tup = 38,\n\t\tright = 39,\n\t\tdown = 40,\n\t\tinsert = 45,\n\t\tdelete = 46,\n\t\tkey0 = 48,\n\t\tkey1 = 49,\n\t\tkey2 = 50,\n\t\tkey3 = 51,\n\t\tkey4 = 52,\n\t\tkey5 = 53,\n\t\tkey6 = 54,\n\t\tkey7 = 55,\n\t\tkey8 = 56,\n\t\tkey9 = 57,\n\t\tA = 65,\n\t\tB = 66,\n\t\tC = 67,\n\t\tD = 68,\n\t\tE = 69,\n\t\tF = 70,\n\t\tG = 71,\n\t\tH = 72,\n\t\tI = 73,\n\t\tJ = 74,\n\t\tK = 75,\n\t\tL = 76,\n\t\tM = 77,\n\t\tN = 78,\n\t\tO = 79,\n\t\tP = 80,\n\t\tQ = 81,\n\t\tR = 82,\n\t\tS = 83,\n\t\tT = 84,\n\t\tU = 85,\n\t\tV = 86,\n\t\tW = 87,\n\t\tX = 88,\n\t\tY = 89,\n\t\tZ = 90,\n\t\tmetaLeft = 91,\n\t\tmetaRight = 92,\n\t\tselect = 93,\n\t\tnumpad0 = 96,\n\t\tnumpad1 = 97,\n\t\tnumpad2 = 98,\n\t\tnumpad3 = 99,\n\t\tnumpad4 = 100,\n\t\tnumpad5 = 101,\n\t\tnumpad6 = 102,\n\t\tnumpad7 = 103,\n\t\tnumpad8 = 104,\n\t\tnumpad9 = 105,\n\t\tmultiply = 106,\n\t\tadd = 107,\n\t\tsubtract = 109,\n\t\tdecimal = 110,\n\t\tdivide = 111,\n\t\tF1 = 112,\n\t\tF2 = 113,\n\t\tF3 = 114,\n\t\tF4 = 115,\n\t\tF5 = 116,\n\t\tF6 = 117,\n\t\tF7 = 118,\n\t\tF8 = 119,\n\t\tF9 = 120,\n\t\tF10 = 121,\n\t\tF11 = 122,\n\t\tF12 = 123,\n\t\tnumLock = 144,\n\t\tscrollLock = 145,\n\t\tsemicolon = 186,\n\t\tequals = 187,\n\t\tcomma = 188,\n\t\tdash = 189,\n\t\tperiod = 190,\n\t\tforwardSlash = 191,\n\t\tgraveAccent = 192,\n\t\tbracketOpen = 219,\n\t\tslashBack = 220,\n\t\tslashBackLeft = 226,\n\t\tbracketClose = 221,\n\t\tquoteSingle = 222\n\t}\n}\n","namespace $.$$ {\n\t/**\n\t * Plugin which adds handlers for keyboard keys.\n\t * @see [mol_keyboard_code](../keyboard/code/code.ts)\n\t */\n\texport class $mol_hotkey extends $.$mol_hotkey {\n\n\t\tkey() {\n\t\t\treturn super.key() as {\n\t\t\t\t[ key in keyof typeof $mol_keyboard_code ]? : ( event : KeyboardEvent )=> void\n\t\t\t}\n\t\t}\n\t\t\n\t\tkeydown( event? : KeyboardEvent ) {\n\n\t\t\tif( !event ) return\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tlet name = $mol_keyboard_code[ event.keyCode ] as keyof typeof $mol_keyboard_code\n\t\t\t\n\t\t\tif( this.mod_ctrl() !== ( event.ctrlKey || event.metaKey ) ) return\n\t\t\tif( this.mod_alt() !== event.altKey ) return\n\t\t\tif( this.mod_shift() !== event.shiftKey ) return\n\t\t\t\n\t\t\tconst handle = this.key()[ name ]\n\t\t\tif( handle ) handle( event )\n\n\t\t}\n\t\t\n\t}\n}\n","$mol_nav $mol_plugin\n\tcycle? false\n\t-\n\tmod_ctrl false\n\tmod_shift false\n\tmod_alt false\n\t-\n\tkeys_x? /\n\tkeys_y? /\n\t-\n\tcurrent_x? null\n\tcurrent_y? null\n\t-\n\tevent_up?event null\n\tevent_down?event null\n\tevent_left?event null\n\tevent_right?event null\n\tevent *\n\t\t^\n\t\tkeydown?event <=> event_key?event null\n","namespace $.$$ {\n\t\n\t/**\n\t * Plugin which can navigate in list of items\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_nav_demo\n\t */\n\texport class $mol_nav extends $.$mol_nav {\n\t\t\n\t\tevent_key( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\t\t\tif( event.defaultPrevented ) return\n\t\t\t\n\t\t\tif( this.mod_ctrl() && !event.ctrlKey ) return\n\t\t\tif( this.mod_shift() && !event.shiftKey ) return\n\t\t\tif( this.mod_alt() && !event.altKey ) return\n\t\t\t\n\t\t\tswitch( event.keyCode ) {\n\t\t\t\tcase $mol_keyboard_code.up : return this.event_up( event )\n\t\t\t\tcase $mol_keyboard_code.down : return this.event_down( event )\n\t\t\t\tcase $mol_keyboard_code.left : return this.event_left( event )\n\t\t\t\tcase $mol_keyboard_code.right : return this.event_right( event )\n\t\t\t\tcase $mol_keyboard_code.pageUp : return this.event_up( event )\n\t\t\t\tcase $mol_keyboard_code.pageDown : return this.event_down( event )\n\t\t\t}\n\t\t}\n\t\t\n\t\tevent_up( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_y()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_y = this.index_y();\n\t\t\t\n\t\t\tconst index_old = index_y === null ? 0 : index_y\n\t\t\tconst index_new = ( index_old + keys.length - 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_old === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_y( this.keys_y()[ index_new ] )\n\t\t}\n\t\t\n\t\tevent_down( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_y()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_y = this.index_y();\n\t\t\t\n\t\t\tconst index_old = index_y === null ? keys.length - 1 : index_y;\n\t\t\tconst index_new = ( index_old + 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_new === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_y( this.keys_y()[ index_new ] )\n\t\t}\n\t\t\n\t\tevent_left( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_x()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_x = this.index_x();\n\t\t\t\n\t\t\tconst index_old = index_x === null ? 0 : index_x\n\t\t\tconst index_new = ( index_old + keys.length - 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_old === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_x( this.keys_x()[ index_new ] )\n\t\t}\n\t\t\n\t\tevent_right( event? : KeyboardEvent ) {\n\t\t\tif( !event ) return event\n\n\t\t\tconst keys = this.keys_x()\n\t\t\tif( keys.length < 1 ) return\n\t\t\t\n\t\t\tconst index_x = this.index_x();\n\t\t\t\n\t\t\tconst index_old = index_x === null ? keys.length - 1 : index_x\n\t\t\tconst index_new = ( index_old + 1 ) % keys.length\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\t\n\t\t\tif( index_new === 0 && !this.cycle() ) return\n\t\t\t\n\t\t\tthis.current_x( this.keys_x()[ index_new ] )\n\t\t}\n\t\t\n\t\tindex_y() {\n\t\t\tlet index = this.keys_y().indexOf( this.current_y() )\n\t\t\tif( index < 0 ) return null\n\t\t\t\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tindex_x() {\n\t\t\tlet index = this.keys_x().indexOf( this.current_x() )\n\t\t\tif( index < 0 ) return null\n\t\t\t\n\t\t\treturn index\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\n}\n","namespace $ {\n\t\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tconst temp = $mol_wire_task.getter( val )\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: any[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\t\tconst fiber = temp( self, args )\n\t\t\t\treturn fiber.sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited\n\t}\n\n\ttype FunctionResultAwaited = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited\n\t\t: Some\n\n\ttype MethodsResultAwaited = {\n\t\t[K in keyof Host]: FunctionResultAwaited\n\t}\n\n\ttype ObjectOrFunctionResultAwaited = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited : {}\n\t) & ( Some extends Object ? MethodsResultAwaited : Some )\n\n}\n","namespace $ {\n\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\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: any ) {\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 as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\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 ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\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\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: BufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\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\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 {\n\t\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\tstatic base = ''\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 | null, virt?: 'virt' ): $mol_file_stat | null\n\n\t\treset(): void {\n\t\t\ttry {\n\t\t\t\tthis.stat( null )\n\t\t\t} catch( error: any ) {\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(): void\n\t\tabstract drop(): void\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 ) {\n\t\t\t\n\t\t\tlet exists = Boolean( this.stat() )\n\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\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 ): Uint8Array\n\n\t\t@ $mol_mem\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tconst now = new Date\n\t\t\t\tthis.stat( {\n\t\t\t\t\ttype: 'file',\n\t\t\t\t\tsize: 0,\n\t\t\t\t\tatime: now,\n\t\t\t\t\tmtime: now,\n\t\t\t\t\tctime: now,\t\t\t\n\t\t\t\t}, 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( undefined ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = next === undefined ? undefined : $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\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 ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\topen( ... modes: readonly ( 'create' | 'exists_truncate' | 'exists_fail' | 'read_only' | 'write_only' | 'read_write' | 'append' )[] ) {\n\t\t\treturn 0\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n export function $mol_compare_array>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\tfunction buffer_normalize(buf: Buffer): Uint8Array {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\t\n\texport enum $mol_file_mode_open {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\t\t\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( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\twatcher() {\n\n\t\t\tconst watcher = $node.chokidar.watch( this.path() , {\n\t\t\t\tpersistent : true ,\n\t\t\t\tignored : /(^\\.|___$)/ ,\n\t\t\t\tdepth : 0 ,\n\t\t\t\tignoreInitial : true ,\n\t\t\t\tawaitWriteFinish: {\n\t\t\t\t\tstabilityThreshold: 100,\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\twatcher\n\t\t\t.on( 'all' , ( type , path )=> {\n\t\t\t\t\n\t\t\t\tconst file = $mol_file.relative( path.replace( /\\\\/g , '/' ) )\n\n\t\t\t\tfile.reset()\n\t\t\t\t\n\t\t\t\tif( type === 'change' ) {\n\t\t\t\t\tthis.stat( null )\n\t\t\t\t} else {\n\t\t\t\t\tfile.parent().reset()\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.on( 'error' , $mol_fail_log )\n\t\t\t\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstat( next? : $mol_file_stat | null, virt?: 'virt' ) {\n\t\t\t\n\t\t\tlet stat = next\n\t\t\tconst path = this.path()\n\n\t\t\tthis.parent().watcher()\n\t\t\t\n\t\t\tif( virt ) return next!\n\t\t\t\n\t\t\ttry {\n\t\t\t\tstat = next ?? stat_convert($node.fs.statSync( path, { throwIfNoEntry: false } ))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (error.code === 'ENOENT') error = new $mol_file_not_found(`File not found`)\n\t\t\t\terror.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(error)\n\t\t\t}\n\n\t\t\treturn stat\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensure() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tdrop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array ) {\n\n\t\t\tconst path = this.path()\n\t\t\tif( next === undefined ) {\n\n\t\t\t\tif( !this.stat() ) return new Uint8Array\n\t\t\t\t\n\t\t\t\ttry {\n\n\t\t\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\t\t\t\n\t\t\t\t\tnext = buffer_normalize( $node.fs.readFileSync( path ) )\n\n\t\t\t\t\tif( prev !== undefined && !$mol_compare_array( prev, next ) ) {\n\t\t\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\t\t\tplace: `$mol_file_node..buffer()`,\n\t\t\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\treturn next\n\n\t\t\t\t} catch( error: any ) {\n\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\t\n\t\t\tconst now = new Date\n\t\t\tthis.stat( {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize: next.length,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t}, 'virt' )\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, next )\n\n\t\t\t} catch( error: any ) {\n\n\t\t\t\terror.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\n\t\t}\n\t\t@ $mol_mem\n\t\tsub() : $mol_file[] {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tconst path = this.path()\n\t\t\tthis.stat()\n\n\t\t\ttry {\n\t\t\t\treturn $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\tresolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file ).relative( $node.path.join( this.path() , path ) )\n\t\t}\n\t\t\n\t\trelate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\t\t\n\t\tappend( next : Uint8Array | string ) {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.appendFileSync( path , next )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\topen( ... modes: readonly ( keyof typeof $mol_file_mode_open )[] ) {\n\t\t\treturn $node.fs.openSync(\n\t\t\t\tthis.path(),\n\t\t\t\tmodes.reduce( ( res, mode )=> res | $mol_file_mode_open[ mode ], 0 ),\n\t\t\t)\n\t\t}\n\n\t}\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './hyoo_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\t/**\n\t * Localisation in $mol framework\n\t * @see https://mol.hyoo.ru/#!section=docs/=s5aqnb_odub8l\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 this.$.$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( this.$.$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: any ) {\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\tconst def = this.lang_default()\n\t\t\t\t\tif( lang === def ) throw error\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ): string {\n\t\t\t\n\t\t\tconst lang = this.lang()\n\n\t\t\tconst target = this.texts( lang )[ key ]\n\t\t\tif( target ) return target\n\t\t\t\n\t\t\tthis.warn( key )\n\t\t\t\n\t\t\tconst en = this.texts( 'en' )[ key ]\n\t\t\tif( !en ) return key\n\t\t\t\n\t\t\t// try {\n\t\t\t// \treturn $mol_wire_sync( $hyoo_lingua_translate ).call( this.$, lang, en )\n\t\t\t// } catch( error ) {\n\t\t\t// \t$mol_fail_log( error )\n\t\t\t// }\n\t\t\t\n\t\t\treturn en\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic warn( key : string ) {\n\t\t\tconsole.warn( `Not translated to \"${ this.lang() }\": ${ key }` )\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_string $mol_view\n\tdom_name \\input\n\tenabled true\n\tminimal_height 40\n\tautocomplete false\n\tselection? /number\n\t\t0\n\t\t0\n\tauto /\n\t\t<= selection_watcher null\n\t\t<= error_report null\n\tfield *\n\t\t^\n\t\tdisabled <= disabled false\n\t\tvalue <= value_changed? <=> value? \\\n\t\tplaceholder <= hint_visible <= hint \\\n\t\tspellcheck <= spellcheck true\n\t\tautocomplete <= autocomplete_native \\\n\t\tselectionEnd <= selection_end 0\n\t\tselectionStart <= selection_start 0\n\t\tinputMode <= keyboard \\text\n\t\tenterkeyhint <= enter \\go\n\tattr *\n\t\t^\n\t\tmaxlength <= length_max +Infinity\n\t\ttype <= type? \\text\n\tevent *\n\t\t^\n\t\tinput?event <=> event_change?event null\n\tplugins /\n\t\t<= Submit $mol_hotkey\n\t\t\tmod_ctrl <= submit_with_ctrl false\n\t\t\tkey * enter?event <=> submit?event null\n","namespace $.$$ {\n\t/**\n\t * An input field for entering single line text.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_string_demo\n\t */\n\texport class $mol_string extends $.$mol_string {\n\t\t\n\t\t@ $mol_action\n\t\tevent_change( next? : Event ) {\n\t\t\tif( !next ) return\n\t\t\tconst el = next.target as HTMLInputElement\n\t\t\tconst from = el.selectionStart\n\t\t\tconst to = el.selectionEnd\n\t\t\ttry {\n\t\t\t\tel.value = this.value_changed( el.value )\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t\tif( to === null ) return \n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\t\t\tthis.selection_change( next )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\terror_report() {\n\t\t\ttry {\n\t\t\t\tif( this.focused() ) this.value()\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thint_visible() {\n\t\t\treturn ( this.enabled() ? this.hint() : '' ) || ' '\n\t\t}\n\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\n\t\tautocomplete_native() {\n\t\t\treturn this.autocomplete() ? 'on' : 'off'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tselection_watcher() {\n\t\t\treturn new $mol_dom_listener(\n\t\t\t\tthis.$.$mol_dom_context.document,\n\t\t\t\t'selectionchange',\n\t\t\t\t$mol_wire_async( event => this.selection_change( event ) ),\n\t\t\t)\n\t\t}\n\t\t\n\t\tselection_change( event: Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el !== this.$.$mol_dom_context.document.activeElement ) return\n\t\t\t\n\t\t\tconst [ from, to ] = this.selection([\n\t\t\t\tel.selectionStart!,\n\t\t\t\tel.selectionEnd!,\n\t\t\t])\n\t\t\t\n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\n\t\t\tif( to !== from && el.selectionEnd === el.selectionStart ) {\n\t\t\t\tel.selectionEnd = to\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tselection_start() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el.selectionStart === null ) return undefined as any as number\n\t\t\treturn this.selection()[0]\n\t\t}\n\n\t\tselection_end() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el.selectionEnd === null ) return undefined as any as number\n\t\t\treturn this.selection()[1]\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/string/string.view.css\",\n \"[mol_string] {\\n\\tbox-sizing: border-box;\\n\\toutline-offset: 0;\\n\\tborder: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\twhite-space: pre-line;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tpadding: var(--mol_gap_text);\\n\\ttext-align: left;\\n\\tposition: relative;\\n\\tfont: inherit;\\n\\tflex: 1 1 auto;\\n\\tbackground: transparent;\\n\\tmin-width: 0;\\n\\tcolor: inherit;\\n\\tbackground: var(--mol_theme_field);\\n}\\n\\n[mol_string]:disabled:not(:placeholder-shown) {\\n\\tbackground-color: transparent;\\n\\tcolor: var(--mol_theme_text);\\n}\\n\\n[mol_string]:where(:not(:disabled)) {\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_line);\\n}\\n\\n[mol_string]:where(:not(:disabled)):hover {\\n\\tbox-shadow: inset 0 0 0 2px var(--mol_theme_line);\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_string]:focus {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n\\tcolor: var(--mol_theme_text);\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_focus);\\n}\\n\\n[mol_string]::placeholder {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_string]::-ms-clear {\\n\\tdisplay: none;\\n}\\n\"\n) }","$mol_svg $mol_view\n\tdom_name \\svg\n\tdom_name_space \\http://www.w3.org/2000/svg\n\tfont_size 16\n\tfont_family \\\n\tstyle_size *\n","namespace $ {\n\t\n\t/** State of time moment */\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic task( precision: number, reset?: null ): $mol_after_timeout | $mol_after_frame {\n\t\t\t\n\t\t\tif( precision ) {\n\t\t\t\treturn new $mol_after_timeout( precision, ()=> this.task( precision, null ) )\n\t\t\t} else {\n\t\t\t\treturn new $mol_after_frame( ()=> this.task( precision, null ) )\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision: number ) {\n\t\t\tthis.task( precision )\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t/** Base SVG component to display SVG images or icons. */\n\texport class $mol_svg extends $.$mol_svg {\n\t\t@$mol_mem\n\t\tcomputed_style() {\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tconst style = win.getComputedStyle(this.dom_node()) as Record\n\n\t\t\tif(!style['font-size']) $mol_state_time.now( 0 )\n\n\t\t\treturn style\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_size(): number {\n\t\t\treturn parseInt(this.computed_style()['font-size']) || 16\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_family() {\n\t\t\treturn this.computed_style()['font-family']\n\t\t}\n\n\t}\n}\n","$mol_svg_root $mol_svg\n\tdom_name \\svg\n\tattr *\n\t\t^\n\t\tviewBox <= view_box \\0 0 100 100\n\t\tpreserveAspectRatio <= aspect \\xMidYMid\n","namespace $ { $mol_style_attach( \"mol/svg/root/root.view.css\",\n \"[mol_svg_root] {\\n\\toverflow: hidden;\\n}\\n\"\n) }","$mol_svg_path $mol_svg\n\tdom_name \\path\n\tattr *\n\t\t^\n\t\td <= geometry \\\n\n","$mol_icon $mol_svg_root\n\tview_box \\0 0 24 24\n\tminimal_width 16\n\tminimal_height 16\n\tsub /\n\t\t<= Path $mol_svg_path\n\t\t\tgeometry <= path \\\n","namespace $ { $mol_style_attach( \"mol/icon/icon.view.css\",\n \"[mol_icon] {\\n\\tfill: currentColor;\\n\\tstroke: none;\\n\\twidth: 1em;\\n\\theight: 1.5em;\\n\\tflex: 0 0 auto;\\n\\tvertical-align: top;\\n\\tdisplay: inline-block;\\n\\tfilter: drop-shadow(0px 1px 1px var(--mol_theme_back));\\n\\ttransform-origin: center;\\n}\\n\\n[mol_icon_path] {\\n\\ttransform-origin: center;\\n}\\n\"\n) }","$mol_icon_cross $mol_icon path \\M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z\n","$mol_speck $mol_view\n\tattr *\n\t\t^\n\t\tmol_theme <= theme \\$mol_theme_accent\n\tstyle *\n\t\t^\n\t\tminHeight \\1em\n\tsub /\n\t\t<= value null\n","namespace $ { $mol_style_attach( \"mol/speck/speck.view.css\",\n \"[mol_speck] {\\n\\tfont-size: .625rem;\\n\\tborder-radius: 1rem;\\n\\tmargin: -0.5rem -0.25rem;\\n\\talign-self: flex-start;\\n\\tmin-height: 1em;\\n\\tmin-width: .5em;\\n\\tvertical-align: sub;\\n\\tpadding: .25em .5em;\\n\\tposition: absolute;\\n\\tz-index: var(--mol_layer_speck);\\n\\ttext-align: center;\\n\\tline-height: 1;\\n\\tdisplay: inline-block;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tuser-select: none;\\n}\\n\"\n) }","$mol_button $mol_view\n\tenabled true\n\tclick?event null\n\tevent_click?event null\n\tevent *\n\t\t^\n\t\tclick?event <=> event_activate?event null\n\t\tdblclick?event <=> clicks?event null\n\t\tkeydown?event <=> event_key_press?event null \n\tattr *\n\t\t^\n\t\tdisabled <= disabled false\n\t\trole \\button\n\t\ttabindex <= tab_index 0\n\t\ttitle <= hint_safe <= hint \\\n\tsub /$mol_view_content\n\t\t<= title\n\tSpeck $mol_speck\n\t\tvalue <= error \\\n","namespace $.$$ {\n\t\n\t/**\n\t * Simple button.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_button_demo\n\t */\n\texport class $mol_button extends $.$mol_button {\n\n\t\t@ $mol_mem\n\t\tstatus( next = [ null as any ] ) { return next }\n\t\t\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\t\t\n\t\tevent_activate( next : Event ) {\n\t\t\t\n\t\t\tif( !next ) return\n\t\t\tif( !this.enabled() ) return\n\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tthis.event_click( next )\n\t\t\t\tthis.click( next )\n\t\t\t\tthis.status([ null ])\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tPromise.resolve().then( ()=> this.status([ error ]) )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tevent_key_press ( event: KeyboardEvent ) { \n\t\t\tif( event.keyCode === $mol_keyboard_code.enter ) {\n\t\t\t\treturn this.event_activate( event )\n\t\t\t}\n\t\t} \n\t\t\n\t\ttab_index() {\n\t\t\treturn this.enabled() ? super.tab_index() : -1\n\t\t}\n\n\t\terror() {\n\n\t\t\tconst [ error ] = this.status()\n\t\t\tif( !error ) return ''\n\n\t\t\tif( error instanceof Promise ) {\n\t\t\t\treturn $mol_fail_hidden( error )\n\t\t\t}\n\t\t\t\n\t\t\treturn String( error.message ?? error )\n\n\t\t}\n\t\t\n\t\thint_safe() {\n\t\t\ttry {\n\t\t\t\treturn this.hint()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn ''\n\t\t\t}\n\t\t}\n\n\t\tsub_visible() {\n\t\t\treturn [\n\t\t\t\t... this.error() ? [ this.Speck() ] : [] ,\n\t\t\t\t... this.sub() ,\n\t\t\t]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/button/button.view.css\",\n \"[mol_button] {\\n\\tborder: none;\\n\\tfont: inherit;\\n\\tdisplay: inline-flex;\\n\\tflex-shrink: 0;\\n\\ttext-decoration: inherit;\\n\\tcursor: inherit;\\n\\tposition: relative;\\n\\tbox-sizing: border-box;\\n\\tword-break: normal;\\n\\tcursor: default;\\n\\tuser-select: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\tbackground: transparent;\\n\\tcolor: inherit;\\n}\\n\\n[mol_button]:where(:not(:disabled)):hover {\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_button]:focus-visible {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n}\\n\"\n) }","$mol_button_typed $mol_button\n\tminimal_height 40\n\tminimal_width 40\n","namespace $ { $mol_style_attach( \"mol/button/typed/typed.view.css\",\n \"[mol_button_typed] {\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tpadding: var(--mol_gap_text);\\n\\tborder-radius: var(--mol_gap_round);\\n\\tgap: var(--mol_gap_space);\\n\\tuser-select: none;\\n\\tcursor: pointer;\\n}\\n\\n[mol_button_typed][disabled] {\\n\\tpointer-events: none;\\n}\\n\\n[mol_button_typed]:hover ,\\n[mol_button_typed]:focus-visible {\\n\\tbox-shadow: inset 0 0 0 10rem var(--mol_theme_hover);\\n}\\n\\n[mol_button_typed]:active {\\n\\tcolor: var(--mol_theme_focus);\\n}\\n\\n\"\n) }","$mol_button_minor $mol_button_typed\n","namespace $ { $mol_style_attach( \"mol/button/minor/minor.view.css\",\n \"[mol_button_minor] {\\n\\tcolor: var(--mol_theme_control);\\n}\\n\\n[mol_button_minor][disabled] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\"\n) }","$mol_list $mol_view\n\trender_visible_only true\n\trender_over 0\n\tsub <= rows /$mol_view\n\tEmpty $mol_view\n\tGap_before $mol_view style * paddingTop <= gap_before 0\n\tGap_after $mol_view style * paddingTop <= gap_after 0\n\tview_window /\n\t\t0\n\t\t0\n","namespace $ {\n\n\tlet cache = null as null | boolean\n\texport function $mol_support_css_overflow_anchor( this: $ ) {\n\t\treturn cache ?? (\n\t\t\tcache = this.$mol_dom_context.CSS?.supports( 'overflow-anchor:auto' ) ?? false\n\t\t)\n\t}\n\n}\n","namespace $.$$ {\n\n\t/**\n\t * The list of rows with lazy/virtual rendering support based on `minimal_height` of rows.\n\t * `mol_list` should contain only components that inherits `mol_view`. You should not place raw strings or numbers in list.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_list_demo\n\t */\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( next?: [ number , number ] ) : [ 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\tconst rect = this.view_rect()\n\t\t\tif( next ) return next\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 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\t\t\t\t\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\t\t\t\n\t\t\t// force recalc min when overlapse top limit\n\t\t\tif( anchoring && ( top < limit_top ) && ( bottom < limit_bottom ) && ( max < kids.length ) ) {\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 ) && ( top > limit_top ) && ( min > 0 ) ) {\n\t\t\t\tmax2 = min\n\t\t\t\tbottom2 = top\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\t\t\t\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\t\t\t\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\t\t\treturn [\n\t\t\t\t... this.gap_before() ? [ this.Gap_before() ] : [],\n\t\t\t\t... this.sub().slice( ... this.view_window() ),\n\t\t\t\t... this.gap_after() ? [ this.Gap_after() ] : [],\n\t\t\t]\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\t\t\t\t\treturn sum + view.minimal_height() \n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\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\tthis.view_window([ this.render_visible_only() ? index : 0, 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 $ { $mol_style_attach( \"mol/list/list.view.css\",\n \"[mol_list] {\\n\\twill-change: contents;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\tmax-width: 100%;\\n\\t/* display: flex;\\n\\talign-items: stretch;\\n\\talign-content: stretch; */\\n\\ttransition: none;\\n\\tmin-height: 1.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_paragraph $mol_view\n\tline_height 24\n\tletter_width 7\n\twidth_limit +Infinity\n\trow_width 0\n\tsub / <= title\n","namespace $.$$ {\n\n\texport class $mol_paragraph extends $.$mol_paragraph {\n\n\t\t@ $mol_mem\n\t\tmaximal_width() {\n\n\t\t\tlet width = 0\n\t\t\tconst letter = this.letter_width()\n\t\t\t\n\t\t\tfor( const kid of this.sub() ) {\n\t\t\t\t\n\t\t\t\tif( !kid ) continue\n\t\t\t\t\n\t\t\t\tif( kid instanceof $mol_view ) {\n\t\t\t\t\twidth += kid.maximal_width()\n\t\t\t\t} else if( typeof kid !== 'object' ) {\n\t\t\t\t\twidth += String( kid ).length * letter\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\treturn width\n\n\t\t}\n\n\t\twidth_limit() {\n\t\t\treturn this.$.$mol_window.size().width\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.letter_width()\n\t\t}\n\n\t\t@ $mol_mem\n\t\trow_width() {\n\t\t\treturn Math.max( Math.min( this.width_limit() , this.maximal_width() ) , this.letter_width() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\treturn Math.max( 1 , Math.ceil( this.maximal_width() / this.row_width() ) ) * this.line_height()\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/paragraph/paragraph.view.css\",\n \":where([mol_paragraph]) {\\n\\tmargin: 0;\\n\\tmax-width: 100%;\\n}\\n\"\n) }","$mol_dimmer $mol_paragraph\n\thaystack \\\n\tneedle \\\n\tsub <= parts /$mol_view_content\n\tLow* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n\tHigh* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): IterableIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\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\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\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 null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\n\t/**\n\t * Output text with dimmed mismatched substrings.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_dimmer_demo\n\t */\n\texport class $mol_dimmer extends $.$mol_dimmer {\n\t\t\n\t\tparts() {\n\t\t\tconst needle = this.needle()\n\t\t\tif( needle.length < 2 ) return [ this.haystack() ]\n\t\t\t\n\t\t\tlet chunks : any[] = []\n\t\t\tlet strings = this.strings()\n\t\t\t\n\t\t\tfor( let index = 0 ; index < strings.length ; index++ ) {\n\t\t\t\tif( strings[ index ] === '' ) continue\n\t\t\t\t\n\t\t\t\tchunks.push( ( index % 2 ) ? this.High( index ) : this.Low( index ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstrings() {\n\t\t\t\n\t\t\tconst options = this.needle().split( /\\s+/g ).filter( Boolean )\n\t\t\tif( !options.length ) return [ this.haystack() ]\n\t\t\t\n\t\t\tconst variants = { ... options } as Record< number, string >\n\t\t\tconst regexp = $mol_regexp.from( { needle: variants } , { ignoreCase: true } )\n\t\t\t\n\t\t\treturn this.haystack().split( regexp )\n\t\t}\n\t\t\n\t\tstring( index: number ) {\n\t\t\treturn this.strings()[ index ]\n\t\t}\n\t\t\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, this.haystack() ) ) {\n\t\t\t\tyield [ ... path, this ]\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/dimmer/dimmer.view.css\",\n \"[mol_dimmer] {\\n\\tdisplay: block;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_dimmer_low] {\\n\\tdisplay: inline;\\n\\topacity: 0.8;\\n}\\n\\n[mol_dimmer_high] {\\n\\tdisplay: inline;\\n\\tcolor: var(--mol_theme_focus);\\n\\ttext-shadow: 0 0;\\n}\\n\"\n) }","$mol_search $mol_pop\n\tquery? \\\n\tsuggests /string\n\tplugins /$mol_plugin\n\t\t^\n\t\t<= Hotkey $mol_hotkey\n\t\t\tkey * escape? <=> clear? null\n\t\t<= Nav $mol_nav\n\t\t\tkeys_y <= nav_components /$mol_view\n\t\t\tcurrent_y?component <=> nav_focused?component null\n\tshowed? <=> suggests_showed? false\n\talign_hor \\right\n\tAnchor $mol_view\n\t\tsub <= anchor_content /\n\t\t\t<= Query $mol_string\n\t\t\t\tvalue? <=> query? \\\n\t\t\t\thint <= hint @ \\Search...\n\t\t\t\tsubmit?event <=> submit?event null\n\t\t\t\tenabled <= enabled true\n\t\t\t\tkeyboard <= keyboard \\search\n\t\t\t\tenter <= enter \\search\n\t\t\t\tbring => bring\n\t\t\t<= Clear $mol_button_minor\n\t\t\t\thint @ \\Clear\n\t\t\t\tclick?event <=> clear?event null\n\t\t\t\tsub /\n\t\t\t\t\t<= Clear_icon $mol_icon_cross\n\tbubble_content /$mol_view_content\n\t\t<= Menu $mol_list\n\t\t\trows <= menu_items /$mol_view\n\tSuggest* $mol_button_minor\n\t\tclick?event <=> suggest_select*?event null\n\t\tsub <= suggest_content* /$mol_view_content\n\t\t\t<= Suggest_label* $mol_dimmer\n\t\t\t\thaystack <= suggest_label* \\\n\t\t\t\tneedle <= query? \\\n","\n\t\t()\n\t\t\tthis\n\t\t\t[] \\$\n\t\t\t[] \\$mol_locale\n\t\t\t[] \\text\n\t\t\t(,) #key\n\t","namespace $.$$ {\n\t\n\t/**\n\t * Search input with suggest and clear button.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_search_demo\n\t */\n\texport class $mol_search extends $.$mol_search {\n\t\t\n\t\t@ $mol_mem\n\t\tanchor_content() {\n\t\t\treturn [\n\t\t\t\tthis.Query(),\n\t\t\t\t... this.query() ? [ this.Clear() ] : [],\n\t\t\t]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsuggests_showed( next = true ) {\n\t\t\t\n\t\t\tthis.query()\n\t\t\t\n\t\t\tif( !this.focused() ) return false\n\n\t\t\treturn next\n\t\t}\n\n\t\tsuggest_selected( next? : string ) {\n\t\t\t\n\t\t\tif( next === undefined ) return\n\t\t\t\n\t\t\tthis.query( next )\n\t\t\tthis.Query().focused( true )\n\t\t\t\n\t\t}\n\t\t\n\t\tnav_components() {\n\t\t\treturn [\n\t\t\t\tthis.Query(),\n\t\t\t\t... this.menu_items(),\n\t\t\t]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tnav_focused( component? : $mol_view ) {\n\t\t\t\n\t\t\tif( !this.focused() ) return null\n\t\t\t\n\t\t\tif( component == null ) {\n\t\t\t\t\n\t\t\t\tfor( let comp of this.nav_components() ) {\n\t\t\t\t\tif( comp && comp.focused() ) return comp\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tif( this.suggests_showed() ) {\n\t\t\t\tthis.ensure_visible( component, \"center\" )\n\t\t\t\tcomponent.focused( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn component\n\t\t}\n\t\t\n\t\tsuggest_label( key: string ) {\n\t\t\treturn key\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmenu_items() {\n\t\t\treturn this.suggests().map( ( suggest : string ) => this.Suggest( suggest ) )\n\t\t}\n\t\t\n\t\tsuggest_select( id : string , event? : MouseEvent ) {\n\t\t\tthis.query( id )\n\t\t\tthis.Query().selection([ id.length, id.length ])\n\t\t\tthis.Query().focused( true )\n\t\t}\n\t\t\n\t\tclear( event? : Event ) {\n\t\t\tthis.query( '' )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/search/search.view.css\",\n \"[mol_search] {\\n\\talign-self: flex-start;\\n\\tflex: auto;\\n}\\n\\n[mol_search_anchor] {\\n\\tflex: 1 1 auto;\\n}\\n\\n[mol_search_query] {\\n\\tflex-grow: 1;\\n}\\n\\n[mol_search_menu] {\\n\\tmin-height: .75rem;\\n\\tdisplay: flex;\\n}\\n\\n[mol_search_suggest] {\\n\\ttext-align: left;\\n}\\n\\n[mol_search_suggest_label_high] {\\n\\tcolor: var(--mol_theme_shade);\\n\\ttext-shadow: none;\\n}\\n\"\n) }","$mol_link $mol_view\n\turi \\\n\tdom_name \\a\n\turi_off \\\n\turi_native null\n\texternal false\n\tattr *\n\t\t^\n\t\thref <= uri_toggle \\\n\t\ttitle <= hint_safe <= hint \\\n\t\ttarget <= target \\_self\n\t\tdownload <= file_name \\\n\t\tmol_link_current <= current false\n\t\trel <= relation \\\n\tsub /$mol_view_content\n\t\t<= title\n\targ *\n\tevent *\n\t\t^\n\t\tclick?event <=> click?event <=> event_click?event null\n","namespace $ {\n\n\t/** State of arguments like `foo=bar xxx` */\n\texport class $mol_state_arg extends $mol_object {\n\t\t\n\t\tstatic prolog = ''\n\t\tstatic separator = ' '\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href( next? : string ) {\n\t\t\treturn next || process.argv.slice( 2 ).join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href_normal() {\n\t\t\treturn this.link({})\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dict( next? : { [ key : string ] : string | null } ) {\n\t\t\tif( next !== void 0 ) this.href( this.make_link( next ) )\n\t\t\t\n\t\t\tvar href = this.href()\n\t\t\tvar chunks = href.split( ' ' )\n\t\t\t\n\t\t\tvar params : { [ key : string ] : string } = {}\n\t\t\tchunks.forEach(\n\t\t\t\tchunk => {\n\t\t\t\t\tif( !chunk ) return\n\t\t\t\t\tvar vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join('=')\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn params as Readonly< typeof params >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value( key : string , next? : string | null ) {\n\t\t\tif( next === void 0 ) return this.dict()[ key ] ?? null\n\t\t\tthis.href( this.link( { [ key ] : next } ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic link( next : Record ) {\n\t\t\tconst params : Record = {}\n\t\t\t\n\t\t\tvar prev = this.dict()\n\t\t\tfor( var key in prev ) {\n\t\t\t\tparams[ key ] = prev[ key ]\n\t\t\t}\n\t\t\t\n\t\t\tfor( var key in next ) {\n\t\t\t\tparams[ key ] = next[ key ]\n\t\t\t}\n\t\t\t\n\t\t\treturn this.make_link( params )\n\t\t}\n\t\t\n\t\tstatic make_link( next : Record) {\n\t\t\tconst chunks : string[] = []\n\t\t\tfor( const key in next ) {\n\t\t\t\tif( next[ key ] !== null ) {\n\t\t\t\t\tchunks.push([key, next[key]!].map(encodeURIComponent).join('='))\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks.join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\tthis.href( this.make_link( next ) )\n\t\t}\n\t\t\n\t\tconstructor( public prefix = '' ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tvalue( key : string , next? : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).value( this.prefix + key , next )\n\t\t}\n\t\t\n\t\tsub( postfix : string ) {\n\t\t\treturn new ( this.constructor as typeof $mol_state_arg )( this.prefix + postfix + '.' )\n\t\t}\n\t\t\n\t\tlink( next : Record ) {\n\t\t\tconst prefix = this.prefix\n\t\t\tconst dict : Record = {}\n\t\t\tfor( var key in next ) {\n\t\t\t\tdict[ prefix + key ] = next[ key ]\n\t\t\t}\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).link( dict )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Dynamic hyperlink. It can add, change or remove parameters. A link that leads to the current page has [mol_link_current] attribute set to true.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_link_demo\n\t */\n\texport class $mol_link extends $.$mol_link {\n\t\t\n\t\t@ $mol_mem\n\t\turi_toggle() {\n\t\t\treturn this.current() ? this.uri_off() : this.uri()\n\t\t}\n\n\t\t@ $mol_mem\n\t\turi() {\n\t\t\treturn new this.$.$mol_state_arg( this.state_key() ).link( this.arg() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\turi_off() {\n\t\t\tconst arg2: Record = {}\n\t\t\tfor( let i in this.arg() ) arg2[i] = null\n\t\t\t\n\t\t\treturn new this.$.$mol_state_arg( this.state_key() ).link( arg2 )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi_native() {\n\t\t\tconst base = this.$.$mol_state_arg.href()\n\t\t\treturn new URL( this.uri() , base )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tcurrent() {\n\n\t\t\tconst base = this.$.$mol_state_arg.href_normal()\n\t\t\tconst target = this.uri_native().toString()\n\n\t\t\tif( base === target ) return true\n\t\t\t\n\t\t\tconst args = this.arg() as Record\n\t\t\t\n\t\t\tconst keys = Object.keys( args ).filter( key => args[ key ] != null )\n\t\t\tif( keys.length === 0 ) return false\n\n\t\t\tfor( const key of keys ) {\n\t\t\t\tif( this.$.$mol_state_arg.value( key ) != args[ key ] ) return false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\tfile_name() {\n\t\t\treturn null as unknown as string\n\t\t}\n\n\t\tminimal_height() {\n\t\t\treturn Math.max( super.minimal_height(), 24 )\n\t\t}\n\t\t\n\t\texternal() {\n\t\t\treturn this.uri_native().origin !== $mol_dom_context.location.origin\n\t\t}\n\t\t\n\t\ttarget(): '_self' | '_blank' | '_top' | '_parent' | string {\n\t\t\treturn this.external() ? '_blank' : '_self'\n\t\t}\n\n\t\thint_safe() {\n\t\t\ttry {\n\t\t\t\treturn this.hint()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn ''\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst { rem } = $mol_style_unit\n\n\t$mol_style_define( $mol_link , {\n\t\t\n\t\ttextDecoration: 'none',\n\t\tcolor: $mol_theme.control,\n\t\tstroke: 'currentcolor',\n\t\tcursor: 'pointer',\n\t\tpadding: $mol_gap.text,\n\t\tboxSizing: 'border-box',\n\t\tposition: 'relative',\n\t\tminWidth: rem(2.5),\n\t\tgap: $mol_gap.space,\n\t\t\n\t\tborder: {\n\t\t\tradius: $mol_gap.round,\n\t\t},\n\n\t\t':hover': {\n\t\t\t\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.hover,\n\t\t\t},\n\t\t\t\n\t\t},\n\n\t\t':focus-visible': {\n\t\t\t\n\t\t\toutline: 'none',\n\t\t\t\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.hover,\n\t\t\t},\n\t\t\t\n\t\t},\n\n\t\t// ':has(:focus-visible)': {\n\t\t// \toutline: 'none',\n\t\t// \tbackground: {\n\t\t// \t\tcolor: $mol_theme.hover,\n\t\t// \t}\n\t\t// },\n\t\t\n\t\t':active': {\n\t\t\tcolor: $mol_theme.focus,\n\t\t},\n\n\t\t'@': {\n\t\t\tmol_link_current: {\n\t\t\t\t'true': {\n\t\t\t\t\tcolor: $mol_theme.current,\n\t\t\t\t\ttextShadow: '0 0',\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\n\t} )\n\n}\n","$mol_page $mol_view\n\tdom_name \\article\n\tfield *\n\t\t^\n\t\ttabIndex <= tabindex -1\n\tsub /\n\t\t<= Head $mol_view\n\t\t\tminimal_height 64\n\t\t\tdom_name \\header\n\t\t\tsub <= head /\n\t\t\t\t<= Title $mol_view\n\t\t\t\t\tdom_name \\h1\n\t\t\t\t\tsub <= title_content /\n\t\t\t\t\t\t<= Logo null\n\t\t\t\t\t\t<= title\n\t\t\t\t<= Tools $mol_view\n\t\t\t\t\tsub <= tools /$mol_view_content\n\t\t<= Body $mol_scroll\n\t\t\tscroll_top? => body_scroll_top?\n\t\t\tsub <= body_content /\n\t\t\t\t<= Body_content $mol_view\n\t\t\t\t\tsub <= body /$mol_view\n\t\t<= Foot $mol_view\n\t\t\tdom_name \\footer\n\t\t\tsub <= foot /$mol_view\n","namespace $.$$ {\n\n\tconst { per , rem } = $mol_style_unit\n\tconst { hsla } = $mol_style_func\n\n\t$mol_style_define( $mol_page , {\n\n\t\tdisplay: 'flex' ,\n\t\tflex: {\n\t\t\tbasis: 'auto' ,\n\t\t\tdirection: 'column' ,\n\t\t},\n\t\tposition: 'relative' ,\n\t\talignSelf: 'stretch' ,\n\t\tmaxWidth: per(100) ,\n\t\tmaxHeight: per(100) ,\n\t\tboxSizing: 'border-box' ,\n\t\tcolor: $mol_theme.text ,\n\t\t// zIndex: 0 ,\n\t\t\n\t\t':focus': {\n\t\t\toutline: 'none',\n\t\t} ,\n\n\t\tHead: {\n\t\t\tdisplay: 'flex' ,\n\t\t\tflexWrap: 'wrap' ,\n\t\t\tjustifyContent: 'flex-end' ,\n\t\t\tflex: 'none',\n\t\t\tposition: 'relative' ,\n\t\t\tmargin: 0 ,\n\t\t\tminHeight: rem(4),\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [[ 0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ]],\n\t\t\t},\n\t\t\tzIndex: 2,\n\t\t},\n\n\t\tTitle: {\n\n\t\t\tminHeight: rem(2),\n\t\t\tmargin: 0,\n\t\t\tpadding: $mol_gap.text,\n\t\t\tgap: $mol_gap.text,\n\t\t\twordBreak: 'normal',\n\t\t\ttextShadow: '0 0',\n\n\t\t\tfont: {\n\t\t\t\tsize: 'inherit',\n\t\t\t\tweight: 'normal',\n\t\t\t},\n\t\n\t\t\tflex: {\n\t\t\t\tgrow: 1,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: 'auto',\n\t\t\t},\n\n\t\t},\n\n\t\tTools: {\n\t\t\t\n\t\t\tflex: {\n\t\t\t\tbasis: 'auto',\n\t\t\t\tgrow: 1000,\n\t\t\t\tshrink: 1,\n\t\t\t},\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'flex-end',\n\t\t\talignItems: 'flex-start',\n\t\t\tflexWrap: 'wrap',\n\n\t\t},\n\n\t\tBody: {\n\t\t\tflex: {\n\t\t\t\tgrow: 1000,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: per(100),\n\t\t\t},\n\t\t},\n\t\t\n\t\tBody_content: {\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tflex: {\n\t\t\t\tdirection: 'column',\n\t\t\t\tshrink: 1,\n\t\t\t\tgrow: 1,\n\t\t\t},\n\t\t\tjustify: {\n\t\t\t\tself: 'stretch',\n\t\t\t},\n\t\t},\n\t\t\n\t\tFoot: {\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'space-between',\n\t\t\tflex: 'none',\n\t\t\tmargin: 0,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [[ 0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ]],\n\t\t\t},\n\t\t\tzIndex: 1,\n\t\t\tpadding: $mol_gap.block ,\n\t\t\t':empty': {\n\t\t\t\tdisplay: 'none',\n\t\t\t},\n\t\t},\t\n\n\t} )\n\t\n}\n","$mol_book2_catalog $mol_book2\n\tparam \\\n\tspread? \\\n\tspreads *\n\tSpread* $mol_view\n\tSpread_default null\n\tspread_ids /string\n\tmenu_filter_enabled false\n\tspread_ids_filtered /string\n\tmenu_tools /\n\taddon_tools /\n\tpages /\n\t\t<= Menu $mol_page\n\t\t\tTitle => Menu_title\n\t\t\ttitle <= menu_title \\\n\t\t\tTools => Menu_tools\n\t\t\tLogo <= Menu_logo null\n\t\t\ttools /\n\t\t\t\t^ menu_tools\n\t\t\t\t^ addon_tools\n\t\t\thead <= menu_head /\n\t\t\t\t<= Menu_title\n\t\t\t\t<= Menu_tools\n\t\t\tbody <= menu_body /\n\t\t\t\t<= Menu_filter $mol_search\n\t\t\t\t\tquery? <=> menu_filter? \\\n\t\t\t\t<= Menu_links $mol_list\n\t\t\t\t\trows <= menu_links /\n\t\t\t\t\t\t<= Menu_link*0 $mol_link\n\t\t\t\t\t\t\targ <= arg* *\n\t\t\t\t\t\t\tsub <= menu_link_content* /\n\t\t\t\t\t\t\t\t<= Menu_link_title* $mol_dimmer\n\t\t\t\t\t\t\t\t\tneedle <= menu_filter\n\t\t\t\t\t\t\t\t\thaystack <= spread_title* \\\n\t\t\tfoot <= menu_foot /\n\tSpread_close $mol_link\n\t\targ <= spread_close_arg *\n\t\tsub /\n\t\t\t<= Spread_close_icon $mol_icon_cross\n","namespace $ {\n\n\texport function $mol_match_text< Variant >( query : string , values : ( variant : Variant )=> string[] ) {\n\t\tconst tags = query.toLowerCase().trim().split( /\\s+/ ).filter( tag => tag )\n\n\t\tif( tags.length === 0 ) return ()=> true\n\t\t\n\t\treturn ( variant : Variant )=> {\n\t\t\tconst vals = values( variant )\n\t\t\treturn tags.every( tag => vals.some( val => val.toLowerCase().indexOf( tag ) >= 0 ) )\n\t\t}\n\t}\n\n}\n","namespace $.$$ {\n\n\t/**\n\t * Variant of [mol_book2](../book2.view.ts) which draws menu in side bar on opens one of taken spreads.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_book2_catalog_demo\n\t */\n\texport class $mol_book2_catalog extends $.$mol_book2_catalog {\n\t\t\n\t\t@ $mol_mem\n\t\tpages() {\n\t\t\tconst spread = this.spread() === '' ? this.Spread_default() : this.Spread(this.spread())\n\t\t\treturn [\n\t\t\t\tthis.Menu(),\n\t\t\t\t... spread\n\t\t\t\t\t? spread instanceof $mol_book2\n\t\t\t\t\t\t? spread.pages()\n\t\t\t\t\t\t: [ spread ]\n\t\t\t\t\t: [],\n\t\t\t]\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride spread_ids(): readonly string[] {\n\t\t\treturn Object.keys( this.spreads() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\toverride menu_body() {\n\t\t\treturn [\n\t\t\t\t... this.menu_filter_enabled() ? [ this.Menu_filter() ] : [],\n\t\t\t\tthis.Menu_links(),\n\t\t\t]\n\t\t}\n\n\t\toverride menu_filter_enabled() {\n\t\t\treturn this.spread_ids().length >= 10\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\toverride menu_links() {\n\t\t\treturn this.spread_ids_filtered()\n\t\t\t\t.map( spread => this.Menu_link( spread ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride spread_ids_filtered() {\n\t\t\treturn this.spread_ids()\n\t\t\t\t.filter( $mol_match_text( this.menu_filter(), spread => [ this.spread_title( spread ) ] ) )\n\t\t}\n\t\t\n\t\toverride Spread(id: string): $mol_view {\n\t\t\treturn this.spreads()[ id ]\n\t\t}\n\n\t\toverride Spread_default() {\n\t\t\treturn this.spreads()['']\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\toverride spread( next?: string ) {\n\t\t\treturn this.$.$mol_state_arg.value( this.param(), next ) ?? ''\n\t\t}\n\t\t\n\t\toverride arg( spread: string ) {\n\t\t\treturn { [ this.param() ]: spread || null }\n\t\t}\n\t\t\n\t\toverride spread_close_arg() {\n\t\t\treturn { [ this.param() ]: null }\n\t\t}\n\t\t\n\t\toverride spread_title( spread: string ) {\n\t\t\tconst page = this.Spread( spread )\n\t\t\treturn page instanceof $mol_book2\n\t\t\t\t&& page.menu_title()\n\t\t\t\t|| page.title()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/book2/catalog/catalog.view.css\",\n \"[mol_book2_catalog_menu_filter] {\\n\\tflex-shrink: 0;\\n\\tflex-grow: 0;\\n\\talign-self: stretch;\\n}\\n\\n\"\n) }","$mol_icon_plus $mol_icon path \\M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\n","namespace $ {\n\t\n\texport enum $hyoo_crus_part {\n\t\t\n\t\t/** Land header for the following parts. */\n\t\tland = 0b1101_1011,\n\t\t\n\t\t/** Public key. First writes wins. */\n\t\tpass = 0b1111_1111,\n\t\t/** Rights/Keys sharing. Last writes wins. */\n\t\tgift = 0b1111_0111,\n\t\t/** Changable data. Last writes wins. */\n\t\tgist = 0b0000_0000,\n\t\t\n\t\t/** Blob request. */\n\t\thash = 0b1111_1101,\n\t\t/** Blob response. */\n\t\trock = 0b1111_0101,\n\t\t\n\t\t/** B+Tree root bucket. */\n\t\troot = 0b0000_0001,\n\t\t\n\t\t/** B+Tree branch bucket. */\n\t\tbuck = 0b0000_1001,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_base64_encode(src: string | Uint8Array): string {\n\t\tthrow new Error('Not implemented')\n\t}\n}\n","namespace $ {\n\n\texport function $mol_base64_encode_node(str: string | Uint8Array): string {\n\t\tif (! str) return ''\n\t\tif (Buffer.isBuffer(str)) return str.toString('base64')\n\n\t\treturn Buffer.from(str).toString('base64')\n\t}\n\n\t$.$mol_base64_encode = $mol_base64_encode_node\n}\n","namespace $ {\n\texport function $mol_base64_decode(base64: string): Uint8Array {\n\t\tthrow new Error('Not implemented')\n\t}\n}\n","namespace $ {\n\texport function $mol_base64_decode_node(base64Str: string): Uint8Array {\n\t\t\n\t\tbase64Str = base64Str.replace( /-/g, '+' ).replace( /_/g, '/' )\n\t\t\n\t\t// without Uint8Array breaks $mol_compare_deep\n\t\tconst buffer = Buffer.from(base64Str, 'base64')\n\n\t\treturn new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\t}\n\n\t$.$mol_base64_decode = $mol_base64_decode_node\n}\n","namespace $ {\n\t\n\texport function $mol_base64_ae_encode( buffer: Uint8Array ) {\n\t\treturn $mol_base64_encode( buffer ).replace( /\\+/g, 'æ' ).replace( /\\//g, 'Æ' ).replace( /=/g, '' )\n\t}\n\t\n\texport function $mol_base64_ae_decode( str: string ) {\n\t\treturn $mol_base64_decode( str.replace( /æ/g, '+' ).replace( /Æ/g, '/' ) )\n\t}\n\t\n}\n","namespace $ {\n\texport class $mol_buffer extends DataView {\n\t\t\n\t\tstatic from<\n\t\t\tThis extends typeof $mol_buffer\n\t\t>(\n\t\t\tthis: This,\n\t\t\tarray: number | string | ArrayBufferView,\n\t\t) {\n\t\t\tif( typeof array === 'number' ) array = new Uint8Array( array )\n\t\t\tif( typeof array === 'string' ) array = $mol_base64_ae_decode( array )\n\t\t\treturn new this( array.buffer, array.byteOffset, array.byteLength ) as InstanceType< This >\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tgetUint48( offset: number, LE = false ) {\n\t\t\tif( offset % 4 ) {\n\t\t\t\treturn this.getUint16( offset, LE ) + this.getUint32( offset + 2, LE ) * 2**16\n\t\t\t} else {\n\t\t\t\treturn this.getUint32( offset, LE ) + this.getUint16( offset + 4, LE ) * 2**32\n\t\t\t}\n\t\t}\n\t\t\n\t\tsetUint48( offset: number, value: number, LE = false ) {\n\t\t\tif( offset % 4 ) {\n\t\t\t\tthis.setUint16( offset, value & ( (1<<16) - 1 ), LE )\n\t\t\t\tthis.setUint32( offset + 2, ( value / 2**16 )|0, LE )\n\t\t\t} else {\n\t\t\t\tthis.setUint32( offset, value |0, LE )\n\t\t\t\tthis.setUint16( offset + 4, ( value / 2**32 )|0, LE )\n\t\t\t}\n\t\t}\n\t\t\n\t\tint8( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt8( offset )\n\t\t\tif( next >= -(2**7) && next < 2**7 ) return this.setInt8( offset, next ), next\n\t\t\t$mol_fail( new Error( `Wrong int8 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint8( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint8( offset )\n\t\t\tif( next >= 0 && next < 2**8 ) return this.setUint8( offset, next ), next\n\t\t\t$mol_fail( new Error( `Wrong uint8 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tint16( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt16( offset, !!'LE' )\n\t\t\tif( next >= -(2**15) && next < 2**15 ) return this.setInt16( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong int16 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint16( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint16( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**16 ) return this.setUint16( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint16 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tint32( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt32( offset, !!'LE' )\n\t\t\tif( next >= -(2**31) && next < 2**31 ) return this.setInt32( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong int32 value ${ next }` ) )\n\t\t}\n\t\n\t\tuint32( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint32( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**32 ) return this.setUint32( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint32 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint48( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint48( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**48 ) return this.setUint48( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint48 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tint64( offset: number, next?: bigint ) {\n\t\t\tif( next === undefined ) return this.getBigInt64( offset, !!'LE' )\n\t\t\tif( next >= -(2**63) && next < 2**63 ) return this.setBigInt64( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong int64 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tuint64( offset: number, next?: bigint ) {\n\t\t\tif( next === undefined ) return this.getBigUint64( offset, !!'LE' )\n\t\t\tif( next >= 0 && next < 2**64 ) return this.setBigUint64( offset, next, !!'LE' ), next\n\t\t\t$mol_fail( new Error( `Wrong uint64 value ${ next }` ) )\n\t\t}\n\t\t\n\t\tfloat32( offset: number, next?: number ) {\n\t\t\tif( next !== undefined ) this.setFloat32( offset, next, !!'LE' )\n\t\t\treturn this.getFloat32( offset, !!'LE' )\n\t\t}\n\t\t\n\t\tfloat64( offset: number, next?: number ) {\n\t\t\tif( next !== undefined ) this.setFloat64( offset, next, !!'LE' )\n\t\t\treturn this.getFloat64( offset, !!'LE' )\n\t\t}\n\t\t\n\t\tasArray() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset, this.byteLength )\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn $mol_base64_ae_encode( this.asArray() )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\ttype $mol_data_tagged_type< Value, Tag extends PropertyKey > = Value & { [ Key in Tag ]: Value }\n\t\n\ttype $mol_data_tagged_parser< Input, Output > = {\n\t\tValue: Output\n\t} & (\n\t\t( val: $mol_data_tagged_type< Input, never > )=> Output\n\t)\n\n\t/**\n\t * Checks for given runtype and returns tagged version of returned type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_tagged_demo\n\t */\n\texport function $mol_data_tagged<\n\t\tConfig extends Record< string, $mol_data_value >,\n\t>(\n\t\tconfig: Config\n\t) {\n\t\treturn config as any as {\n\t\t\t[ Type in keyof Config ]: $mol_data_tagged_parser<\n\t\t\t\tParameters< Config[ Type ] >[0],\n\t\t\t\t$mol_data_tagged_type< ReturnType< Config[ Type ] >, Type >\n\t\t\t>\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport const { $hyoo_crus_ref } = $mol_data_tagged({ $hyoo_crus_ref: ( val: string | symbol )=> {\n\t\tif( typeof val === 'string' ) val = Symbol.for( val.replace( /_+$/, '' ) )\n\t\tif( /^(([a-zæA-ZÆ0-9]{8})?_){0,2}([a-zæA-ZÆ0-9]{8})?$/.test( val.description! ) ) return val\n\t\t$mol_fail( new Error( `Wrong ref (${ val.description! })` ) )\n\t} })\n\t\n\t/** Reference to Lord/Land/Node. May be absolute or relative. */\n\texport type $hyoo_crus_ref = typeof $hyoo_crus_ref.Value\n\t\n\t/** Land ref of any ref */\n\texport function $hyoo_crus_ref_land( ref: $hyoo_crus_ref ) {\n\t\treturn $hyoo_crus_ref( ref.description!.slice( 0, 17 ) )\n\t}\n\n\t/** Peer part of Ref */\n\texport function $hyoo_crus_ref_peer( ref: $hyoo_crus_ref ) {\n\t\treturn ref.description!.split( '_' )[ 0 ] ?? ''\n\t}\n\t\n\t/** Head part of Node Ref */\n\texport function $hyoo_crus_ref_head( ref: $hyoo_crus_ref ) {\n\t\treturn ref.description!.split( '_' )[ 2 ] ?? ''\n\t}\n\n\t/** Encode to binary (12/18 bytes) */\n\texport function $hyoo_crus_ref_encode( ref: $hyoo_crus_ref ) {\n\t\treturn $mol_base64_ae_decode(\n\t\t\t( ref.description! || '_' )\n\t\t\t\t.split( /_/g )\n\t\t\t\t.map( numb => numb || 'AAAAAAAA' )\n\t\t\t\t.join( '' )\n\t\t\t\t//.padEnd( 32, 'AAAAAAAA' )\n\t\t)\n\t}\n\n\t/** Read from binary (12/18 bytes) */\n\texport function $hyoo_crus_ref_decode( bin: Uint8Array ) {\n\t\treturn $hyoo_crus_ref(\n\t\t\t[ ... $mol_base64_ae_encode( bin ).match( /(.{8})/g ) ?? [] ]\n\t\t\t\t.map( numb => numb === 'AAAAAAAA' ? '' : numb )\n\t\t\t\t.join( '_' ).replace( /_+$/, '' )\n\t\t)\n\t}\n\n\t/** Make Node Ref relative to base Land: `__QWERTYUI` */\n\texport function $hyoo_crus_ref_relate( base: $hyoo_crus_ref, ref: $hyoo_crus_ref ) {\n\t\tif( !ref.description!.padEnd( 18, '_' ).startsWith( base.description!.slice( 0, 18 ).padEnd( 18, '_' ) ) ) return ref\n\t\treturn $hyoo_crus_ref( ( '__' + ( ref.description!.split( '_' )[2] ?? '' ) ).replace( /_+$/, '' ) )\n\t}\n\n\t/** Make absolute Node Ref from relative (`__QWERTYUI`) using base Land Ref. */\n\texport function $hyoo_crus_ref_resolve( base: $hyoo_crus_ref, ref: $hyoo_crus_ref ) {\n\t\tif( !ref.description ) return $hyoo_crus_ref_land( base )\n\t\tif( !ref.description!.startsWith( '__' ) ) return ref\n\t\treturn $hyoo_crus_ref( base.description!.slice( 0, 18 ).padEnd( 18, '_' ) + ref.description!.slice( 2 ) )\n\t}\t\n\n}\n","namespace $ {\n\t\n\texport function $mol_base64_url_encode( buffer: Uint8Array ) {\n\t\treturn $mol_base64_encode( buffer ).replace( /\\+/g, '-' ).replace( /\\//g, '_' ).replace( /=/g, '' )\n\t}\n\t\n\texport function $mol_base64_url_decode( str: string ) {\n\t\treturn $mol_base64_decode( str.replace( /-/g, '+' ).replace( /_/g, '/' ) )\n\t}\n\t\n}\n","namespace $ {\n\texport var $mol_crypto_native = $node.crypto.webcrypto as any as Crypto\n}\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'ECDSA',\n\t\thash: 'SHA-256',\n\t\tnamedCurve: \"P-256\",\n\t}\n\t\n\texport class $mol_crypto_key extends $mol_buffer {\n\t\t\n\t\tstatic from< This extends typeof $mol_crypto_key >( this: This, serial: number | string | ArrayBufferView ) {\n\t\t\t\n\t\t\tif( typeof serial === 'string' ) {\n\t\t\t\tserial = new Uint8Array([\n\t\t\t\t\t... $mol_base64_url_decode( serial.slice( 0, 43 ) ),\n\t\t\t\t\t... $mol_base64_url_decode( serial.slice( 43, 86 ) ),\n\t\t\t\t\t... $mol_base64_url_decode( serial.slice( 86, 129 ) ),\n\t\t\t\t])\n\t\t\t}\n\t\t\t\n\t\t\treturn super.from( serial ) as InstanceType< This >\n\t\t}\n\t\t\n\t\tasArray() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset, this.byteLength )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\ttoString() {\n\t\t\tconst arr = this.asArray()\n\t\t\treturn $mol_base64_url_encode( arr.subarray( 0, 32 ) )\n\t\t\t\t+ $mol_base64_url_encode( arr.subarray( 32, 64 ) )\n\t\t\t\t+ $mol_base64_url_encode( arr.subarray( 64 ) )\n\t\t}\n\t\t\n\t}\n\t\n\texport class $mol_crypto_key_public extends $mol_crypto_key {\n\t\t\n\t\tstatic size_str = 86\n\t\tstatic size_bin = 64\n\t\t\n\t\t@ $mol_memo.method\n\t\tasync native() {\n\t\t\tconst str = this.toString()\n\t\t\treturn $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: \"P-256\",\n\t\t\t\t\text: true,\n\t\t\t\t\tkey_ops: [ 'verify' ],\n\t\t\t\t\tkty: \"EC\",\n\t\t\t\t\tx: str.slice( 0, 43 ),\n\t\t\t\t\ty: str.slice( 43, 86 ),\n\t\t\t\t},\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ 'verify' ],\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync verify( data: BufferSource, sign: BufferSource ) {\n\t\t\treturn await $mol_crypto_native.subtle.verify(\n\t\t\t\talgorithm,\n\t\t\t\tawait this.native(),\n\t\t\t\tsign,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\texport class $mol_crypto_key_private extends $mol_crypto_key {\n\t\t\n\t\tstatic size_str = 129\n\t\tstatic size_bin = 96\n\t\tstatic size_sign = 64\n\t\t\n\t\tstatic async generate() {\n\t\t\t\n\t\t\tconst pair = await $mol_crypto_native.subtle.generateKey(\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ 'sign', 'verify' ]\n\t\t\t)\n\t\t\t\n\t\t\tconst { x, y, d } = await $mol_crypto_native.subtle.exportKey( 'jwk', pair.privateKey )\n\t\t\treturn this.from( x + y! + d! )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tasync native() {\n\t\t\tconst str = this.toString()\n\t\t\treturn await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: \"P-256\",\n\t\t\t\t\text: true,\n\t\t\t\t\tkey_ops: [ 'sign' ],\n\t\t\t\t\tkty: \"EC\",\n\t\t\t\t\tx: str.slice( 0, 43 ),\n\t\t\t\t\ty: str.slice( 43, 86 ),\n\t\t\t\t\td: str.slice( 86, 129 ),\n\t\t\t\t},\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ 'sign' ],\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tpublic() {\n\t\t\treturn new $mol_crypto_key_public( this.buffer, this.byteOffset, this.byteOffset + 64 )\n\t\t}\n\t\t\n\t\tasync sign( data: BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.sign(\n\t\t\t\talgorithm,\n\t\t\t\tawait this.native(),\n\t\t\t\tdata\n\t\t\t) )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'AES-CBC',\n\t\tlength: 128,\n\t\ttagLength: 32,\n\t}\n\t\n\t/** Symmetric cipher with shortest payload */\n\texport class $mol_crypto_secret extends Object {\n\t\t\n\t\t/** Key size in bytes. */\n\t\tstatic size = 16\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'secret' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async generate() {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.generateKey(\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ]\n\t\t\t\t) as CryptoKey & { type: 'secret' }\n\t\t\t)\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\t\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t'raw',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'secret' }\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic async pass( pass: string, salt: Uint8Array ) {\n\t\t\t\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.deriveKey(\n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"PBKDF2\",\n\t\t\t\t\t\tsalt,\n\t\t\t\t\t\titerations: 10_000,\n\t\t\t\t\t\thash: \"SHA-256\",\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t\t\"raw\",\n\t\t\t\t\t\t$mol_charset_encode( pass ),\n\t\t\t\t\t\t\"PBKDF2\",\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t[ \"deriveKey\" ],\n\t\t\t\t\t),\n\t\t\t\t\t\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ],\n\t\t\t\t\t\n\t\t\t\t) as CryptoKey & { type: 'secret' }\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic async derive( private_serial: string, public_serial: string ) {\n\t\t\t\n\t\t\tconst ecdh = { name: \"ECDH\", namedCurve: \"P-256\" }\n\t\t\tconst jwk = { crv: 'P-256', ext: true, kty: 'EC' }\n\t\t\t\n\t\t\tconst private_key = await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\t... jwk,\n\t\t\t\t\tkey_ops: [ 'deriveKey' ],\n\t\t\t\t\tx: private_serial.slice( 0, 43 ),\n\t\t\t\t\ty: private_serial.slice( 43, 86 ),\n\t\t\t\t\td: private_serial.slice( 86, 129 ),\n\t\t\t\t},\n\t\t\t\tecdh,\n\t\t\t\ttrue,\n\t\t\t\t[ 'deriveKey' ],\n\t\t\t)\n\t\t\n\t\t\tconst public_key = await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\t... jwk,\n\t\t\t\t\tkey_ops: [],\n\t\t\t\t\tx: public_serial.slice( 0, 43 ),\n\t\t\t\t\ty: public_serial.slice( 43, 86 ),\n\t\t\t\t},\n\t\t\t\tecdh,\n\t\t\t\ttrue,\n\t\t\t\t[],\n\t\t\t)\n\t\t\t\n\t\t\tconst secret = await $mol_crypto_native.subtle.deriveKey(\n\t\t\t\t{\n\t\t\t\t name: \"ECDH\",\n\t\t\t\t public: public_key,\n\t\t\t\t},\n\t\t\t\tprivate_key,\n\t\t\t\talgorithm,\n\t\t\t\ttrue,\n\t\t\t\t[ \"encrypt\", \"decrypt\" ],\n\t\t\t)\n\t\t\n\t\t\treturn new this( secret as CryptoKey & { type: 'secret' } )\n\t\t}\n\t\t\n\t\t/** 16 bytes */\n\t\tasync serial() {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.exportKey(\n\t\t\t\t'raw',\n\t\t\t\tthis.native,\n\t\t\t) )\n\t\t}\n\n\t\t/** 16n bytes */\n\t\tasync encrypt( open: BufferSource, salt: BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.encrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\topen\n\t\t\t) )\n\t\t}\n\t\t\n\t\tasync decrypt( closed: BufferSource, salt : BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.decrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\tclosed\n\t\t\t) )\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_auth extends $mol_crypto_key_private {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic current( next?: $hyoo_crus_auth | null ) {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tif( next === undefined ) {\n\t\t\t\tconst key = String( $mol_state_local.value( '$hyoo_crus_auth' ) ?? '' )\n\t\t\t\tif( key ) return $hyoo_crus_auth.from( key )\n\t\t\t}\n\t\t\t\n\t\t\tif( !next ) next = this.grab()\n\t\t\t\n\t\t\t$mol_state_local.value( '$hyoo_crus_auth', next.toString() )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic embryos = [] as string[]\n\t\t\n\t\t@ $mol_action\n\t\tstatic grab() {\n\t\t\tif( this.embryos.length ) return this.from( this.embryos.pop()! )\n\t\t\treturn $mol_wire_sync( this as typeof $hyoo_crus_auth ).generate()\n\t\t}\n\t\t\n\t\tstatic async generate() {\n\t\t\tfor( let i = 0; i < 4096; ++i ) {\n\t\t\t\tconst auth = await super.generate()\n\t\t\t\tif( auth.uint8(0) !== $hyoo_crus_unit_kind.pass ) continue\n\t\t\t\treturn this.from( auth )\n\t\t\t}\n\t\t\t$mol_fail( new Error( `Too long key generation` ) )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tlord() {\n\t\t\treturn $hyoo_crus_ref_decode( new Uint8Array( this.buffer, 2, 12 ) )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tpeer() {\n\t\t\treturn $mol_base64_ae_encode( new Uint8Array( this.buffer, 2, 6 ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsecret_mutual( pub: string ) {\n\t\t\treturn $mol_wire_sync( $mol_crypto_secret ).derive( this.toString(), pub.toString() )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $hyoo_crus_face_data = Iterable< readonly [ peer: string, time: number ] >\n\t\n\texport class $hyoo_crus_face_map extends Map< string, number > {\n\t\t\n\t\t/** Maximum time for all peers. */\n\t\tlast = 0\n\t\t\n\t\t/** Total units count in Land. */\n\t\ttotal = 0\n\t\t\n\t\tconstructor(\n\t\t\tentries?: $hyoo_crus_face_data\n\t\t) {\n\t\t\tsuper()\n\t\t\tif( entries ) this.sync( entries )\n\t\t}\n\t\t\n\t\t/** Synchronize this clock with another. */\n\t\tsync( right: $hyoo_crus_face_data ) {\n\t\t\tif( right instanceof $hyoo_crus_face_map ) this.total = right.total\n\t\t\tfor( const [ peer, time ] of right ) this.time_max( peer, time )\n\t\t}\n\t\t\n\t\t/** Update last time for peer. */\n\t\ttime_max(\n\t\t\tpeer: string,\n\t\t\ttime: number,\n\t\t) {\n\t\t\t\n\t\t\tif( this.last < time ) this.last = time\n\t\t\t\n\t\t\tlet prev = this.get( peer ) ?? 0\n\t\t\tif( prev < time ) this.set( peer, time )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Gererates new time for peer that greater then other seen. */\n\t\t@ $mol_action\n\t\ttick() {\n\t\t\treturn this.last = Math.max( this.last + 1, Date.now() )\n\t\t}\n\t\t\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( ' ', this.total ) ,\n\t\t\t\t$mol_dev_format_shade( ' ', new Date( this.last ) ) ,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t/** reactive Dictionary */\n\texport class $mol_wire_dict< Key, Value > extends Map< Key, Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( key )\n\t\t}\n\t\t\n\t\tget( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.get( key )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, key: Key, dict: Map< Key, Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tset( key: Key, value: Value ) {\n\t\t\tif( super.get( key ) === value ) return this\n\t\t\tsuper.set( key, value )\n\t\t\tthis.pub?.emit() // undefined in constructor\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( key: Key ) {\n\t\t\tconst res = super.delete( key )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\t\t\n\t\t// Extensions\n\t\t\n\t\titem( key: Key, next?: Value | null ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.get( key ) ?? null\n\t\t\t\n\t\t\tif( next === null ) this.delete( key )\n\t\t\telse this.set( key, next )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t/** Reactive Set */\n\texport class $mol_wire_set< Value > extends Set< Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( value: Value ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( value )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, value2: Value, set: Set< Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tadd( value: Value ) {\n\t\t\tif( super.has( value ) ) return this\n\t\t\tsuper.add( value )\n\t\t\tthis.pub.emit()\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( value: Value ) {\n\t\t\tconst res = super.delete( value )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\n\t\t// Extensions\n\t\t\n\t\titem( val: Value, next?: boolean ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.has( val )\n\t\t\t\n\t\t\tif( next ) this.add( val )\n\t\t\telse this.delete( val )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_area {\n\t\tdata = 0,\n\t\tmeta = 1,\n\t}\n\t\n\texport function $hyoo_crus_area_of( numb: string ) {\n\t\tconst num = $mol_base64_ae_decode( numb || 'AAAAAAAA' )[0]\n\t\treturn $hyoo_crus_area[ num % 2 ] as keyof typeof $hyoo_crus_area\n\t}\n\t\n\texport function $hyoo_crus_area_to( numb: string, area: keyof typeof $hyoo_crus_area ) {\n\t\tconst buf = $mol_base64_ae_decode( numb || 'AAAAAAAA' )\n\t\tbuf[0] -= buf[0] % 2 - $hyoo_crus_area[ area ]\n\t\tnumb = $mol_base64_ae_encode( buf )\n\t\treturn numb\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_rank {\n\t\tnil = 0b0000,\n\t\tget = 0b0001,\n\t\tadd = 0b0011,\n\t\tmod = 0b0111,\n\t\tlaw = 0b1111,\n\t}\n\t\n\texport type $hyoo_crus_rank_preset = Record< string, $hyoo_crus_rank >\n\t\n\texport let $hyoo_crus_rank_private = {} as $hyoo_crus_rank_preset\n\texport let $hyoo_crus_rank_public = { '': $hyoo_crus_rank.get } as $hyoo_crus_rank_preset\n\texport let $hyoo_crus_rank_lobby = { '': $hyoo_crus_rank.add } as $hyoo_crus_rank_preset\n\texport let $hyoo_crus_rank_orgy = { '': $hyoo_crus_rank.mod } as $hyoo_crus_rank_preset\n\t\n}\n","namespace $ {\n\t\n\t/** Registry of nodes as domain entities. */\n\texport class $hyoo_crus_fund< Key, Node > extends $mol_object {\n\t\t\n\t\tconstructor(\n\t\t\treadonly item_make: ( head: Key )=> Node\n\t\t) { super() }\n\t\t\n\t\t@ $mol_mem_key\n\t\tItem( head: Key ) {\n\t\t\treturn this.item_make( head )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\tlet sponge = new Uint32Array(80)\n\t\n\t/** Fast small sync SHA-1 */\n\texport function $mol_crypto_hash( data: Uint8Array ) {\n\t\t\n\t\tconst bits = data.byteLength << 3\n\t\tconst kbits = bits >> 5\n\t\tconst kword = 0x80 << ( 24 - bits & 0b11111 )\n\t\t\n\t\tconst bytes = 16 + ( bits + 64 >>> 9 << 4 )\n\t\tconst klens = bytes - 1\n\t\tconst words = new Int32Array( data.buffer, data.byteOffset, data.byteLength >> 2 )\n\t\t\n\t\tlet tail = 0\n\t\tfor( let i = words.length * 4; i < data.length; ++i ) {\n\t\t\ttail |= data[i] << ( i << 3 & 0b11000 )\n\t\t}\n\t\t\n\t\t// Initial\n\t\tconst hash = new Int32Array([ 1732584193, -271733879, -1732584194, 271733878, -1009589776 ])\n\t\t\n\t\t// Digest\n\t\tfor( let i = 0; i < bytes; i += 16 ) {\n\t\t\t\n\t\t\tlet h0 = hash[0]\n\t\t\tlet h1 = hash[1]\n\t\t\tlet h2 = hash[2]\n\t\t\tlet h3 = hash[3]\n\t\t\tlet h4 = hash[4]\n\n\t\t\tfor( let j = 0; j < 80; ++j ) {\n\t\t\t\t\n\t\t\t\tlet turn\n\t\t\t\t\n\t\t\t\tif( j < 16 ) {\n\t\t\t\t\t\n\t\t\t\t\tconst k = i + j\n\t\t\t\t\tif( k === klens ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = bits\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet word =\n\t\t\t\t\t\t\tk === words.length ? tail :\n\t\t\t\t\t\t\tk > words.length ? 0 :\n\t\t\t\t\t\t\twords[k]\n\t\t\t\t\t\t\n\t\t\t\t\t\tword = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // LE -> BE\n\t\t\t\t\t\tif( k === kbits ) word |= kword\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = word\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tturn = ( h1 & h2 | ~h1 & h3 ) + 1518500249\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\t\n\t\t\t\t\tturn =\n\t\t\t\t\t\tj < 20 ? ( h1 & h2 | ~h1 & h3 ) + 1518500249 :\n\t\t\t\t\t\tj < 40 ? ( h1 ^ h2 ^ h3 ) + 1859775393 :\n\t\t\t\t\t\tj < 60 ? ( h1 & h2 | h1 & h3 | h2 & h3 ) - 1894007588 :\n\t\t\t\t\t\t( h1 ^ h2 ^ h3 ) - 899497514\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst next = turn + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 ))\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\thash[0] += h0\n\t\t\thash[1] += h1\n\t\t\thash[2] += h2\n\t\t\thash[3] += h3\n\t\t\thash[4] += h4\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let i = 0; i < 20; ++i ) {\n\t\t\tconst word = hash[i]\n\t\t\thash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // BE -> LE\n\t\t}\n\n\t\treturn new Uint8Array( hash.buffer )\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $hyoo_crus_pack_parts = {\n\t\t\n\t\tlands: Record< $hyoo_crus_ref, {\n\t\t\tfaces: $hyoo_crus_face_map,\n\t\t\tunits: $hyoo_crus_unit[],\n\t\t} >,\n\t\t\n\t\trocks: [ Uint8Array, null | Uint8Array ][],\n\t\t\n\t}\n\t\n\texport class $hyoo_crus_pack extends $mol_buffer {\n\t\t\n\t\ttoBlob() {\n\t\t\treturn new Blob( [ this ], { type: 'application/vnd.hyoo_crus_pack' } )\n\t\t}\n\t\t\n\t\tparts( land = null as $hyoo_crus_ref | null ) {\n\t\t\t\n\t\t\tconst lands = {} as $hyoo_crus_pack_parts[ 'lands' ]\n\t\t\tif( land ) lands[ land ] = { faces: new $hyoo_crus_face_map, units: [] }\n\t\t\t\n\t\t\tconst rocks = [] as $hyoo_crus_pack_parts[ 'rocks' ]\n\t\t\t\n\t\t\tconst buf = this.asArray()\n\t\t\t\n\t\t\tfor( let offset = 0; offset < this.byteLength; ) {\n\t\t\t\t\n\t\t\t\tconst kind = this.uint8( offset )\n\t\t\t\tif( kind % 2 ) {\n\t\t\t\t\t\n\t\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.land: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst faces = new $hyoo_crus_face_map\n\t\t\t\t\t\t\tfaces.total = this.uint32( offset ) >> 8\n\t\t\t\t\t\t\toffset += 4\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tland = $hyoo_crus_ref_decode(\n\t\t\t\t\t\t\t\tnew Uint8Array( buf.buffer, buf.byteOffset + offset, 18 )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\toffset += 18\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst len = this.uint16( offset )\n\t\t\t\t\t\t\toffset += 2\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst peer = $mol_base64_ae_encode(\n\t\t\t\t\t\t\t\t\tnew Uint8Array( buf.buffer, buf.byteOffset + offset, 6 )\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\tconst time = this.uint48( offset + 6 )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tfaces.time_max( peer, time )\n\t\t\t\t\t\t\t\toffset += 12\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlands[ land ] = { faces, units: [] }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.pass: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !land ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst unit = new $hyoo_crus_pass(\n\t\t\t\t\t\t\t\tbuf.slice( offset, offset += $hyoo_crus_unit.size ).buffer\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlands[ land ].units ||= []\n\t\t\t\t\t\t\tlands[ land ].units.push( unit )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.gift: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !land ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst unit = new $hyoo_crus_gift(\n\t\t\t\t\t\t\t\tbuf.slice( offset, offset += $hyoo_crus_unit.size ).buffer\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlands[ land ].units ||= []\n\t\t\t\t\t\t\tlands[ land ].units.push( unit )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.hash: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst hash = buf.slice( offset += 4, offset += 24 )\n\t\t\t\t\t\t\trocks.push([ hash, null ])\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase $hyoo_crus_part.rock: {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst size = this.uint32( offset ) >> 8\n\t\t\t\t\t\t\tif( size === 0 ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst hash = buf.slice( offset + 4, offset + 4 + 24 )\n\t\t\t\t\t\t\t\trocks.push([ hash, null ])\n\t\t\t\t\t\t\t\toffset += 4 + 24\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst rock = buf.slice( offset + 4, offset + 4 + size )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst hash = $mol_crypto_hash( rock )\n\t\t\t\t\t\t\t\trocks.push([ hash, rock ])\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\toffset += Math.ceil( size / 8 + .5 ) * 8\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue\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\tcase $hyoo_crus_part.buck: {\n\t\t\t\t\t\t\toffset += 128\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault: $mol_fail( new Error( `Unknown CRUS Pack Part (${ kind.toString(2) }) at (${ offset.toString(16) })` ) )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tif( !land ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\n\t\t\t\t\tconst unit = new $hyoo_crus_gist(\n\t\t\t\t\t\tbuf.slice( offset, offset += $hyoo_crus_unit.size ).buffer\n\t\t\t\t\t)\n\t\t\t\t\t\n\t\t\t\t\tlands[ land ].units ||= []\n\t\t\t\t\tlands[ land ].units.push( unit )\n\t\t\t\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn { lands, rocks }\n\t\t\t\n\t\t}\n\t\n\t\tstatic make( { lands, rocks }: $hyoo_crus_pack_parts ) {\n\t\t\t\n\t\t\tlet size = 0\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\tsize += 24\n\t\t\t\tsize += lands[ land ].faces.size * 12\n\t\t\t\tsize += lands[ land ].units.length * $hyoo_crus_unit.size\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ hash, rock ] of rocks ) {\n\t\t\t\tsize += rock ? Math.ceil( rock.length / 8 + .5 ) * 8 : 24\n\t\t\t}\n\t\t\t\n\t\t\tif( size === 0 ) return null!\n\t\t\t\n\t\t\tconst buff = new Uint8Array( size )\n\t\t\tconst pack = new $hyoo_crus_pack( buff.buffer )\n\t\t\t\n\t\t\tlet offset = 0\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\t\n\t\t\t\tconst faces = lands[ land ].faces\n\t\t\t\t\n\t\t\t\tpack.uint32( offset, $hyoo_crus_part.land | ( faces.total << 8 ) )\n\t\t\t\tbuff.set( $hyoo_crus_ref_encode( land ), offset + 4 )\n\t\t\t\tpack.uint16( offset + 22, faces.size )\n\t\t\t\toffset += 24\n\t\t\t\t\n\t\t\t\tfor( const [ peer, time ] of faces ) {\n\t\t\t\t\tbuff.set( $mol_base64_ae_decode( peer ), offset )\n\t\t\t\t\tpack.uint48( offset + 6, time )\n\t\t\t\t\toffset += 12\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const unit of lands[ land ].units ) {\n\t\t\t\t\tbuff.set( unit.asArray(), offset )\n\t\t\t\t\toffset += unit.byteLength\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ hash, rock ] of rocks ) {\n\t\t\t\t\n\t\t\t\tconst len = rock?.length ?? 0\n\t\t\t\tpack.uint32( offset, $hyoo_crus_part.rock | ( len << 8 ) )\n\t\t\t\t\n\t\t\t\tif( rock ) buff.set( rock, offset + 4 )\n\t\t\t\telse buff.set( hash, offset + 4 )\n\t\t\t\n\t\t\t\toffset += rock ? Math.ceil( len / 8 + .5 ) * 8 : 24\n\t\t\t}\n\t\t\t\n\t\t\treturn pack\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_mine extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic hash( blob: Uint8Array ) {\n\t\t\treturn $mol_crypto_hash( blob )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic rock( hash: Uint8Array, next?: Uint8Array ): Uint8Array | null {\n\t\t\t$mol_wire_solid()\n\t\t\treturn next ?? null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic save( blob: Uint8Array ) {\n\t\t\tconst hash = this.hash( blob )\n\t\t\tthis.rock( hash, blob )\n\t\t\treturn hash\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $hyoo_crus_mine_node extends $hyoo_crus_mine {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic root() {\n\t\t\treturn $mol_file.relative( '.crus' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic rock_file( hash: Uint8Array ) {\n\t\t\tconst id = $mol_base64_ae_encode( hash )\n\t\t\treturn this.root().resolve( `rock/${ id.slice( 0, 2 ) }/${ id }.blob` )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic rock( hash: Uint8Array, next?: Uint8Array ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst buf = this.rock_file( hash ).buffer( next )\n\t\t\tif( !next ) return buf\n\t\t\tif( $mol_compare_deep( hash, this.hash( buf ) ) ) return buf\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t$.$hyoo_crus_mine = $hyoo_crus_mine_node\n}\n","namespace $ {\n\n\texport class $mol_time_base {\n\n\t\tstatic patterns = {} as Record< string , ( arg : any )=> string >\n\n\t\tstatic formatter( pattern : string ) {\n\n\t\t\tif( this.patterns[ pattern ] ) return this.patterns[ pattern ]\n\n\t\t\tvar tokens = Object.keys( this.patterns )\n\t\t\t\t.sort()\n\t\t\t\t.reverse()\n\t\t\t\t.map( ( token : string ) => token.replace( /([-+*.\\[\\]()\\^])/g , '\\\\$1' ) )\n\t\t\tvar lexer = RegExp( '(.*?)(' + tokens.join( '|' ) + '|$)', 'g' )\n\n\t\t\tvar funcs = [] as ( ( arg : any )=> string )[]\n\n\t\t\tpattern.replace( lexer, ( str : string , text : string , token : string ) => {\n\t\t\t\tif( text ) funcs.push( () => text )\n\t\t\t\tif( token ) funcs.push( this.patterns[ token ] )\n\t\t\t\treturn str\n\t\t\t} )\n\n\t\t\treturn this.patterns[ pattern ] = ( arg : any )=> {\n\t\t\t\treturn funcs.reduce( ( res , func )=> res + func( arg ) , '' )\n\t\t\t}\n\t\t\n\t\t}\n\n\t\ttoString( pattern : string ) : string {\n\t\t\tconst Base = this.constructor as typeof $mol_time_base\n\t\t\tconst formatter = Base.formatter( pattern )\n\t\t\treturn formatter( this )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_time_duration_config = number | string | {\n\t\tyear? : number\n\t\tmonth? : number\n\t\tday? : number\n\t\thour? : number\n\t\tminute? : number\n\t\tsecond? : number\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time duration representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_duration extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_duration_config = 0 ) {\n\t\t\t\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( typeof config === 'number' ) {\n\t\t\t\tif( !Number.isFinite( config ) ) throw new RangeError( `Wrong ms count` )\n\t\t\t\tthis.second = config / 1000\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( config === 'Z' ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.hour = 0\n\t\t\t\t\tthis.minute = 0\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tduration: {\n\t\t\t\t\tconst parser = /^P(?:([+-]?\\d+(?:\\.\\d+)?)Y)?(?:([+-]?\\d+(?:\\.\\d+)?)M)?(?:([+-]?\\d+(?:\\.\\d+)?)D)?(?:T(?:([+-]?\\d+(?:\\.\\d+)?)h)?(?:([+-]?\\d+(?:\\.\\d+)?)m)?(?:([+-]?\\d+(?:\\.\\d+)?)s)?)?$/i\n\t\t\t\t\t\n\t\t\t\t\tconst found = parser.exec( config )\n\t\t\t\t\tif( !found ) break duration\n\t\t\t\t\t\t\n\t\t\t\t\tif( found[1] ) this.year = Number( found[1] )\n\t\t\t\t\tif( found[2] ) this.month = Number( found[2] )\n\t\t\t\t\tif( found[3] ) this.day = Number( found[3] )\n\t\t\t\t\tif( found[4] ) this.hour = Number( found[4] )\n\t\t\t\t\tif( found[5] ) this.minute = Number( found[5] )\n\t\t\t\t\tif( found[6] ) this.second = Number( found[6] )\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toffset: {\n\t\t\t\t\tvar parser = /^[+-](\\d\\d)(?::?(\\d\\d))?$/i\n\t\t\t\t\t\n\t\t\t\t\tvar found = parser.exec( config )\n\t\t\t\t\tif( !found ) break offset\n\t\t\t\t\t\t\n\t\t\t\t\tif( found[1] ) this.hour = Number( found[1] )\n\t\t\t\t\tif( found[2] ) this.minute = Number( found[2] )\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tthrow new Error( `Can not parse time duration (${ config })` )\n\t\t\t}\n\t\t\t\n\t\t\tthis.year = config.year || 0\n\t\t\tthis.month = config.month || 0\n\t\t\tthis.day = config.day || 0\n\t\t\tthis.hour = config.hour || 0\n\t\t\tthis.minute = config.minute || 0\n\t\t\tthis.second = config.second || 0\n\t\t}\n\n\t\treadonly year : number= 0\n\t\treadonly month : number = 0\n\t\treadonly day : number = 0\n\t\treadonly hour : number = 0\n\t\treadonly minute : number = 0\n\t\treadonly second : number = 0\n\t\t\n\t\tget normal() {\n\t\t\t\n\t\t\tlet second = this.second ?? 0\n\t\t\tlet minute = this.minute ?? 0\n\t\t\tlet hour = this.hour ?? 0\n\t\t\tlet day = this.day ?? 0\n\t\t\t\n\t\t\tminute += Math.floor( second / 60 )\n\t\t\tsecond = second % 60\n\t\t\t\n\t\t\thour += Math.floor( minute / 60 )\n\t\t\tminute = minute % 60\n\t\t\t\n\t\t\tday += Math.floor( hour / 24 )\n\t\t\thour = hour % 24\n\t\t\t\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear: this.year,\n\t\t\t\tmonth: this.month,\n\t\t\t\tday: day,\n\t\t\t\thour: hour,\n\t\t\t\tminute: minute,\n\t\t\t\tsecond: second,\n\t\t\t})\n\t\t\t\n\t\t}\n\n\t\tsumm( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\t\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear : this.year + duration.year ,\n\t\t\t\tmonth : this.month + duration.month ,\n\t\t\t\tday : this.day + duration.day ,\n\t\t\t\thour : this.hour + duration.hour ,\n\t\t\t\tminute : this.minute + duration.minute ,\n\t\t\t\tsecond : this.second + duration.second ,\n\t\t\t})\n\t\t}\n\n\t\tmult( numb : number ) {\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear : this.year && this.year * numb ,\n\t\t\t\tmonth : this.month && this.month * numb ,\n\t\t\t\tday : this.day && this.day * numb ,\n\t\t\t\thour : this.hour && this.hour * numb ,\n\t\t\t\tminute : this.minute && this.minute * numb ,\n\t\t\t\tsecond : this.second && this.second * numb ,\n\t\t\t})\n\t\t}\n\n\t\tcount( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\treturn this.valueOf() / duration.valueOf()\n\t\t}\n\n\t\tvalueOf() {\n\t\t\tvar day = this.year * 365 + this.month * 30.4 + this.day\n\t\t\tvar second = ( ( day * 24 + this.hour ) * 60 + this.minute ) * 60 + this.second\n\t\t\treturn second * 1000\n\t\t}\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( pattern = 'P#Y#M#DT#h#m#s' ) {\n\t\t\treturn super.toString( pattern )\n\t\t}\n\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn mode === 'number' ? this.valueOf() : this.toString()\n\t\t}\n\t\t\n\t\tstatic patterns = {\n\n\t\t\t'#Y' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.year ) return ''\n\t\t\t\treturn duration.year + 'Y'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#M' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.month ) return ''\n\t\t\t\treturn duration.month + 'M'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#D' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.day ) return ''\n\t\t\t\treturn duration.day + 'D'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#h' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.hour ) return ''\n\t\t\t\treturn duration.hour + 'H'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#m' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.minute ) return ''\n\t\t\t\treturn duration.minute + 'M'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#s' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.second ) return ''\n\t\t\t\treturn duration.second + 'S'\n\t\t\t} ,\n\t\t\t\n\t\t\t'hh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( 100 + moment.hour ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'h' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( moment.hour )\n\t\t\t} ,\n\t\t\t\n\t\t\t':mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'mm' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( 100 + moment.minute ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( moment.minute )\n\t\t\t},\n\t\t\t\n\t\t\t':ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'ss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( 100 + moment.second | 0 ).slice(1)\n\t\t\t},\n\t\t\t\n\t\t\t's' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( moment.second | 0 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'.sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\t// if( moment.second === ( moment.second | 0 ) ) return ''\n\t\t\t\treturn '.' + $mol_time_moment.patterns[ 'sss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tconst millisecond = ( moment.second - Math.trunc( moment.second ) ).toFixed( 3 )\n\t\t\t\treturn millisecond.slice(2)\n\t\t\t},\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport enum $mol_time_moment_weekdays {\n\t\tmonday,\n\t\ttuesday,\n\t\twednesday,\n\t\tthursday,\n\t\tfriday,\n\t\tsaturday,\n\t\tsunday\n\t}\n\t\n\texport type $mol_time_moment_config = number | Date | string | {\n\t\tyear? : number\n\t\tmonth? : number\n\t\tday? : number\n\t\thour? : number\n\t\tminute? : number\n\t\tsecond? : number\n\t\toffset? : $mol_time_duration_config\n\t}\n\t\n\tfunction numb( str: string, max: number ) {\n\t\tconst numb = Number( str )\n\t\tif( numb < max ) return numb\n\t\t$mol_fail( new Error( `Wrong time component ${ str }` ) )\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time moment representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_moment extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_moment_config = new Date ) {\n\t\t\t\n\t\t\tsuper()\n\n\t\t\tif( typeof config === 'number' ) {\n\t\t\t\tconfig = new Date( config )\n\t\t\t\tif( Number.isNaN( config.valueOf() ) ) throw new RangeError( `Wrong ms count` )\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tconst parsed = /^(?:(\\d\\d?\\d?\\d?)(?:-?(\\d\\d?)(?:-?(\\d\\d?))?)?)?(?:[T ](?:(\\d\\d?)(?::?(\\d\\d?)(?::?(\\d\\d?(?:\\.\\d+)?))?)?)?(Z|[\\+\\-]\\d\\d?(?::?(?:\\d\\d?)?)?)?)?$/.exec( config )\n\t\t\t\tif( !parsed ) throw new Error( `Can not parse time moment (${ config })` )\n\n\t\t\t\tif( parsed[1] ) this.year = numb( parsed[1], 9999 )\n\t\t\t\tif( parsed[2] ) this.month = numb( parsed[2], 13 ) - 1\n\t\t\t\tif( parsed[3] ) this.day = numb( parsed[3], 32 ) - 1\n\t\t\t\tif( parsed[4] ) this.hour = numb( parsed[4], 60 )\n\t\t\t\tif( parsed[5] ) this.minute = numb( parsed[5], 60 )\n\t\t\t\tif( parsed[6] ) this.second = numb( parsed[6], 60 )\n\t\t\t\tif( parsed[7] ) this.offset = new $mol_time_duration( parsed[7] )\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tif( config instanceof Date ) {\n\t\t\t\t\n\t\t\t\tthis.year = config.getFullYear()\n\t\t\t\tthis.month = config.getMonth()\n\t\t\t\tthis.day = config.getDate() - 1\n\t\t\t\tthis.hour = config.getHours()\n\t\t\t\tthis.minute = config.getMinutes()\n\t\t\t\tthis.second = config.getSeconds() + config.getMilliseconds() / 1000\n\t\t\t\t\n\t\t\t\tconst offset = - config.getTimezoneOffset()\n\t\t\t\tthis.offset = new $mol_time_duration({\n\t\t\t\t\thour : ( offset < 0 ) ? Math.ceil( offset / 60 ) : Math.floor( offset / 60 ) ,\n\t\t\t\t\tminute : offset % 60\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.year = config.year\n\t\t\tthis.month = config.month\n\t\t\tthis.day = config.day\n\t\t\tthis.hour = config.hour\n\t\t\tthis.minute = config.minute\n\t\t\tthis.second = config.second\n\t\t\t\n\t\t\tthis.offset = config.offset == null ? config.offset as undefined : new $mol_time_duration( config.offset ) \n\n\t\t}\n\n\t\treadonly year : number | undefined\n\t\treadonly month : number | undefined\n\t\treadonly day : number | undefined\n\t\treadonly hour : number | undefined\n\t\treadonly minute : number | undefined\n\t\treadonly second : number | undefined\n\t\treadonly offset : $mol_time_duration | undefined\n\n\t\tget weekday() {\n\t\t\treturn ( this.native.getDay() + 6 ) % 7\n\t\t}\n\n\t\t_native : Date | undefined\n\t\tget native() {\n\t\t\tif( this._native ) return this._native\n\t\t\t\n\t\t\tconst utc = this.toOffset( 'Z' )\n\n\t\t\treturn this._native = new Date( Date.UTC(\n\t\t\t\tutc.year ?? 0 ,\n\t\t\t\tutc.month ?? 0 ,\n\t\t\t\t( utc.day ?? 0 ) + 1 ,\n\t\t\t\tutc.hour ?? 0 ,\n\t\t\t\tutc.minute ?? 0 ,\n\t\t\t\tutc.second != undefined ? Math.floor( utc.second ) : 0 ,\n\t\t\t\tutc.second != undefined ? Math.floor( ( utc.second - Math.floor( utc.second ) ) * 1000 ) : 0 ,\n\t\t\t) )\n\t\t}\n\n\t\t_normal : $mol_time_moment | undefined\n\t\tget normal() {\n\t\t\tif( this._normal ) return this._normal\n\t\t\t\n\t\t\tconst moment = new $mol_time_moment( this.native )\n\t\t\t\n\t\t\treturn this._normal = new $mol_time_moment({\n\t\t\t\tyear : this.year === undefined ? undefined : moment.year ,\n\t\t\t\tmonth : this.month === undefined ? undefined : moment.month ,\n\t\t\t\tday : this.day === undefined ? undefined : moment.day ,\n\t\t\t\thour : this.hour === undefined ? undefined : moment.hour ,\n\t\t\t\tminute : this.minute === undefined ? undefined : moment.minute ,\n\t\t\t\tsecond : this.second === undefined ? undefined : moment.second ,\n\t\t\t\toffset : this.offset === undefined ? undefined : moment.offset ,\n\t\t\t})\n\t\t}\n\n\t\tmerge( config : $mol_time_moment_config ) {\n\t\t\tconst moment = new $mol_time_moment( config )\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : moment.year === undefined ? this.year : moment.year ,\n\t\t\t\tmonth : moment.month === undefined ? this.month : moment.month ,\n\t\t\t\tday : moment.day === undefined ? this.day : moment.day ,\n\t\t\t\thour : moment.hour === undefined ? this.hour : moment.hour ,\n\t\t\t\tminute : moment.minute === undefined ? this.minute : moment.minute ,\n\t\t\t\tsecond : moment.second === undefined ? this.second : moment.second ,\n\t\t\t\toffset : moment.offset === undefined ? this.offset : moment.offset ,\n\t\t\t})\n\t\t}\n\n\t\tshift( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\tconst moment = new $mol_time_moment().merge({\n\t\t\t\tyear: this.year,\n\t\t\t\tmonth: this.month,\n\t\t\t\tday: this.day,\n\t\t\t\thour: this.hour ?? 0,\n\t\t\t\tminute: this.minute ?? 0,\n\t\t\t\tsecond: this.second ?? 0,\n\t\t\t\toffset: this.offset ?? 0\n\t\t\t})\n\n\t\t\tconst second = moment.second! + ( duration.second ?? 0 )\n\t\t\tconst native = new Date(\n\t\t\t\tmoment.year! + ( duration.year ?? 0 ) ,\n\t\t\t\tmoment.month! + ( duration.month ?? 0 ) ,\n\t\t\t\tmoment.day! + 1 + ( duration.day ?? 0 ) ,\n\t\t\t\tmoment.hour! + ( duration.hour ?? 0 ) ,\n\t\t\t\tmoment.minute! + ( duration.minute ?? 0 ) ,\n\t\t\t\tMath.floor( second ) ,\n\t\t\t\t( second - Math.floor( second ) ) * 1000\n\t\t\t)\n\n\t\t\tif( isNaN( native.valueOf() ) ) throw new Error( 'Wrong time' )\n\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : this.year === undefined ? undefined : native.getFullYear(),\n\t\t\t\tmonth : this.month === undefined ? undefined : native.getMonth(),\n\t\t\t\tday : this.day === undefined ? undefined : native.getDate() - 1,\n\t\t\t\thour : this.hour === undefined ? undefined : native.getHours(),\n\t\t\t\tminute : this.minute === undefined ? undefined : native.getMinutes(),\n\t\t\t\tsecond : this.second === undefined ? undefined : native.getSeconds() + native.getMilliseconds() / 1000,\n\t\t\t\toffset : this.offset,\n\t\t\t})\n\t\t}\n\n\t\tmask( config : $mol_time_moment_config ) {\n\n\t\t\tconst mask = new $mol_time_moment( config )\n\t\t\t\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : mask.year === undefined ? undefined : this.year ,\n\t\t\t\tmonth : mask.month === undefined ? undefined : this.month ,\n\t\t\t\tday : mask.day === undefined ? undefined : this.day ,\n\t\t\t\thour : mask.hour === undefined ? undefined : this.hour ,\n\t\t\t\tminute : mask.minute === undefined ? undefined : this.minute ,\n\t\t\t\tsecond : mask.second === undefined ? undefined : this.second ,\n\t\t\t\toffset : mask.offset === undefined ? undefined : this.offset ,\n\t\t\t})\n\t\t\t\n\t\t}\n\n\t\ttoOffset( config: $mol_time_duration_config = new $mol_time_moment().offset! ) {\n\t\t\t\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\tconst offset = this.offset || new $mol_time_moment().offset!\n\t\t\t\n\t\t\tlet with_time = new $mol_time_moment( 'T00:00:00' ).merge( this ) \n\t\t \tconst moment = with_time.shift( duration.summ( offset.mult( -1 ) ) )\n\n\t\t\treturn moment.merge({ offset : duration })\n\t\t}\n\n\t\tvalueOf() { return this.native.getTime() }\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( pattern = 'YYYY-MM-DDThh:mm:ss.sssZ' ) {\n\t\t\treturn super.toString( pattern )\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn mode === 'number' ? this.valueOf() : this.toString()\n\t\t}\n\t\t\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' ',\n\t\t\t\t$mol_dev_format_accent( this.toString( 'YYYY-MM-DD hh:mm:ss.sss Z' ) ),\n\t\t\t)\n\t\t}\n\n\t\t/// Mnemonics:\n\t\t/// * single letter for numbers: M - month number, D - day of month.\n\t\t/// * uppercase letters for dates, lowercase for times: M - month number , m - minutes number\n\t\t/// * repeated letters for define register count: YYYY - full year, YY - shot year, MM - padded month number\n\t\t/// * words for word representation: Month - month name, WeekDay - day of week name\n\t\t/// * shortcuts: WD - short day of week, Mon - short month name.\n\t\tstatic patterns = {\n\n\t\t\t'YYYY' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( moment.year )\n\t\t\t} ,\n\t\t\t\n\t\t\t'AD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( Math.floor( moment.year / 100 ) + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'YY' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( moment.year % 100 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'Month' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { month : 'long' } ) ) ,\n\t\t\t\n\t\t\t'DD Month' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Month' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : '2-digit' , month : 'long' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'D Month' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'D' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Month' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : 'numeric' , month : 'long' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'Mon' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { month : 'short' } ) ) ,\n\t\t\t\n\t\t\t'DD Mon' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Mon' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : '2-digit' , month : 'short' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'D Mon' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'D' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Mon' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn pattern.format( moment.native )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )(\n\t\t\t\tnew Intl.DateTimeFormat( undefined , { day : 'numeric' , month : 'short' } )\n\t\t\t) ,\n\t\t\t\n\t\t\t'-MM' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn '-' + $mol_time_moment.patterns[ 'MM' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'MM' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn String( 100 + moment.month + 1 ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'M' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn String( moment.month + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'WeekDay' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { weekday : 'long' } ) ) ,\n\n\t\t\t'WD' : ( pattern => ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn pattern.format( moment.native )\n\t\t\t} )( new Intl.DateTimeFormat( undefined , { weekday : 'short' } ) ) ,\n\t\t\t\n\t\t\t'-DD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn '-' + $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'DD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn String( 100 + moment.day + 1 ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'D' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn String( moment.day + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'Thh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn 'T' + $mol_time_moment.patterns[ 'hh' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'hh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( 100 + moment.hour ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'h' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( moment.hour )\n\t\t\t} ,\n\t\t\t\n\t\t\t':mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'mm' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( 100 + moment.minute ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( moment.minute )\n\t\t\t},\n\t\t\t\n\t\t\t':ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'ss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( 100 + moment.second | 0 ).slice(1)\n\t\t\t},\n\t\t\t\n\t\t\t's' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( moment.second | 0 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'.sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tif( moment.second === ( moment.second | 0 ) ) return ''\n\t\t\t\treturn '.' + $mol_time_moment.patterns[ 'sss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tconst millisecond = ( moment.second - Math.trunc( moment.second ) ).toFixed( 3 )\n\t\t\t\treturn millisecond.slice(2)\n\t\t\t},\n\t\t\t\n\t\t\t'Z' : ( moment : $mol_time_moment )=> {\n\t\t\t\t\n\t\t\t\tconst offset = moment.offset\n\t\t\t\tif( !offset ) return ''\n\t\t\t\t\n\t\t\t\tlet hour = offset.hour\n\n\t\t\t\tlet sign = '+'\n\t\t\t\tif( hour < 0 ) {\n\t\t\t\t\tsign = '-'\n\t\t\t\t\thour = -hour\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn sign + String( 100 + hour ).slice(1) + ':' + String( 100 + offset.minute ).slice(1)\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_time_interval_config = string | {\n\t\tstart? : $mol_time_moment_config\n\t\tend? : $mol_time_moment_config\n\t\tduration? : $mol_time_duration_config\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time interval representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_interval extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_interval_config ) {\n\t\t\t\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tvar chunks = config.split( '/' )\n\t\t\t\t\n\t\t\t\tif( chunks[0] ) {\n\t\t\t\t\tif( chunks[0][0].toUpperCase() === 'P' ) {\n\t\t\t\t\t\tthis._duration = new $mol_time_duration( chunks[0] )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._start = new $mol_time_moment( chunks[0] )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._start = new $mol_time_moment()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( chunks[1] ) {\n\t\t\t\t\tif( chunks[1][0].toUpperCase() === 'P' ) {\n\t\t\t\t\t\tthis._duration = new $mol_time_duration( chunks[1] )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._end = new $mol_time_moment( chunks[1] )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._end = new $mol_time_moment()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif( config.start !== undefined ) this._start = new $mol_time_moment( config.start )\n\t\t\tif( config.end !== undefined ) this._end = new $mol_time_moment( config.end )\n\t\t\tif( config.duration !== undefined ) this._duration = new $mol_time_duration( config.duration )\n\t\t}\n\n\t\tprivate _start : $mol_time_moment | undefined\n\t\tget start() {\n\t\t\tif( this._start ) return this._start\n\t\t\t\n\t\t\treturn this._start = this._end!.shift( this._duration!.mult( -1 ) )\n\t\t}\n\n\t\tprivate _end : $mol_time_moment | undefined\n\t\tget end() {\n\t\t\tif( this._end ) return this._end\n\t\t\t\n\t\t\treturn this._end = this._start!.shift( this._duration! )\n\t\t}\n\n\t\tprivate _duration : $mol_time_duration | undefined\n\t\tget duration() {\n\t\t\tif( this._duration ) return this._duration\n\t\t\t\n\t\t\treturn this._duration = new $mol_time_duration( this._end!.valueOf() - this._start!.valueOf() )\n\t\t}\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( ) {\n\t\t\treturn ( this._start || this._duration || '' ).toString() + '/' + ( this._end || this._duration || '' ).toString()\n\t\t}\n\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\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' )\n\t\tif( error.length ) throw new Error( error[0].textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $ {\n\t\n\ttype json = null | boolean | number | string | { [ key in string ]: json } | readonly json[]\n\texport type $hyoo_crus_vary_type =\n\t| Uint8Array | bigint | $hyoo_crus_ref\n\t| $mol_time_moment | $mol_time_duration | $mol_time_interval\n\t| $mol_tree2 | json | Node\n\t\n\texport let $hyoo_crus_vary_mapping = {\n\t\t\n\t\tnil: null,\n\t\tbin: Uint8Array,\n\t\tbool: Boolean,\n\t\tint: BigInt,\n\t\treal: Number,\n\t\tref: Symbol,\n\t\t\n\t\tstr: String,\n\t\ttime: $mol_time_moment,\n\t\tdur: $mol_time_duration,\n\t\trange: $mol_time_interval,\n\t\tjson: Object,\n\t\tjsan: Array,\n\t\tdom: $mol_dom_context.Element,\n\t\ttree: $mol_tree2,\n\t\t\n\t}\n\t\n\texport type $hyoo_crus_vary_classes = typeof $hyoo_crus_vary_mapping[ keyof typeof $hyoo_crus_vary_mapping ]\n\t\n\texport type $hyoo_crus_vary_pack = {\n\t\ttip: keyof typeof $hyoo_crus_vary_tip,\n\t\tbin: Uint8Array,\n\t}\n\t\n\texport enum $hyoo_crus_vary_tip {\n\t\t\n\t\tnil = 0b00000, // 0\n\t\tbin = 0b00001, // 0\n\t\tbool = 0b00010, // 1b * 32 * 8\n\t\tint = 0b00011, // 8B * 4\n\t\treal = 0b00100, // 8B * 4\n\t\tref = 0b00101, // 12B + 6B = 18B\n\t\t\n\t\tstr = 0b10000,\n\t\ttime = 0b10001, // iso8601 moment\n\t\tdur = 0b10010, // iso8601 duration\n\t\trange = 0b10011, // iso8601 interval\n\t\tjson = 0b10100, // json object\n\t\tjsan = 0b10101, // json array\n\t\tdom = 0b10110, // dom tree\n\t\ttree = 0b10111, // tree\n\t\t\n\t}\n\t\n\texport function $hyoo_crus_vary_switch< Ways extends {\n\t\t\t\n\t\tnil: ( vary: null )=> any,\n\t\tbin: ( vary: Uint8Array )=> any,\n\t\tbool: ( vary: boolean )=> any,\n\t\tint: ( vary: bigint )=> any,\n\t\treal: ( vary: number )=> any,\n\t\tref: ( vary: $hyoo_crus_ref )=> any,\n\t\t\n\t\tstr: ( vary: string )=> any,\n\t\ttime: ( vary: $mol_time_moment )=> any,\n\t\tdur: ( vary: $mol_time_duration )=> any,\n\t\trange: ( vary: $mol_time_interval )=> any,\n\t\tjson: ( vary: {} )=> any,\n\t\tjsan: ( vary: any[] )=> any,\n\t\tdom: ( vary: Element )=> any,\n\t\ttree: ( vary: $mol_tree2 )=> any,\n\t\t\n\t} >(\n\t\tvary: $hyoo_crus_vary_type,\n\t\tways: Ways,\n\t): $mol_type_result< Ways[ keyof Ways ] > {\n\t\t\n\t\tif( vary === null ) return ways.nil( vary )\n\t\t\t\n\t\tswitch( typeof vary ) {\n\t\t\tcase \"boolean\": return ways.bool( vary )\n\t\t\tcase \"bigint\": return ways.int( vary )\n\t\t\tcase \"number\": return ways.real( vary )\n\t\t\tcase \"string\": return ways.str( vary )\n\t\t\tcase 'symbol': return ways.ref( vary )\n\t\t}\n\t\t\n\t\tswitch( Reflect.getPrototypeOf( vary ) ) {\n\t\t\tcase Object.prototype: return ways.json( vary )\n\t\t\tcase Array.prototype: return ways.jsan( vary as any[] )\n\t\t\tcase Uint8Array.prototype: return ways.bin( vary as Uint8Array )\n\t\t\tcase $mol_time_moment.prototype: return ways.time( vary as $mol_time_moment )\n\t\t\tcase $mol_time_duration.prototype: return ways.dur( vary as $mol_time_duration )\n\t\t\tcase $mol_time_interval.prototype: return ways.range( vary as $mol_time_interval )\n\t\t\tcase $mol_tree2.prototype: return ways.tree( vary as $mol_tree2 )\n\t\t}\n\t\t\n\t\tif( vary instanceof $mol_dom_context.Element ) return ways.dom( vary )\n\t\t\n\t\treturn $mol_fail( new TypeError( `Unsupported vary type` ) )\n\t}\n\t\n\texport function $hyoo_crus_vary_encode( vary: $hyoo_crus_vary_type ): $hyoo_crus_vary_pack {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => ({ tip: 'nil' as const, bin: new Uint8Array([]) }),\n\t\t\tbin: vary => ({ tip: 'bin' as const, bin: vary }),\n\t\t\tbool: vary => ({ tip: 'bool' as const, bin: new Uint8Array([ Number( vary ) ]) }),\n\t\t\tint: vary => ({ tip: 'int' as const, bin: new Uint8Array( new BigInt64Array([ vary as bigint ]).buffer ) }),\n\t\t\treal: vary => ({ tip: 'real' as const, bin: new Uint8Array( new Float64Array([ vary as number ]).buffer ) }),\n\t\t\tref: vary => ({ tip: 'ref' as const, bin: $hyoo_crus_ref_encode( vary ) }),\n\t\t\t\n\t\t\tstr: vary => ({ tip: 'str' as const, bin: $mol_charset_encode( vary as string ) }),\n\t\t\ttime: vary => ({ tip: 'time' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\tdur: vary => ({ tip: 'dur' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\trange: vary => ({ tip: 'range' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\tjson: vary => ({ tip: 'json' as const, bin: $mol_charset_encode( JSON.stringify( vary ) ) }),\n\t\t\tjsan: vary => ({ tip: 'jsan' as const, bin: $mol_charset_encode( JSON.stringify( vary ) ) }),\n\t\t\tdom: vary => ({ tip: 'dom' as const, bin: $mol_charset_encode( $mol_dom_serialize( vary as Node ) ) }),\n\t\t\ttree: vary => ({ tip: 'tree' as const, bin: $mol_charset_encode( String( vary ) ) }),\n\t\t\t\n\t\t} )\n\t}\n\t\n\texport function $hyoo_crus_vary_decode( { tip, bin }: $hyoo_crus_vary_pack ): $hyoo_crus_vary_type {\n\t\tswitch( tip ) {\n\t\t\t\n\t\t\tcase 'nil': return null\n\t\t\tcase 'bin': return bin\n\t\t\tcase 'bool': return Boolean( bin[0] )\n\t\t\tcase 'int': return new BigInt64Array( bin.buffer, bin.byteOffset, bin.byteLength / 8 )[0]\n\t\t\tcase 'real': return new Float64Array( bin.buffer, bin.byteOffset, bin.byteLength / 8 )[0]\n\t\t\tcase 'ref': return $hyoo_crus_ref_decode( bin )\n\t\t\t\n\t\t\tcase 'str': return $mol_charset_decode( bin )\n\t\t\tcase 'time': return new $mol_time_moment( $mol_charset_decode( bin ) )\n\t\t\tcase 'dur': return new $mol_time_duration( $mol_charset_decode( bin ) )\n\t\t\tcase 'range': return new $mol_time_interval( $mol_charset_decode( bin ) )\n\t\t\tcase 'json': return JSON.parse( $mol_charset_decode( bin ) )\n\t\t\tcase 'jsan': return JSON.parse( $mol_charset_decode( bin ) )\n\t\t\tcase 'dom': return $mol_dom_parse( $mol_charset_decode( bin ) ).documentElement\n\t\t\tcase 'tree': return $$.$mol_tree2_from_string( $mol_charset_decode( bin ) )\n\t\t\t\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\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\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_bin_to_bytes( tree : $mol_tree2 ) {\n\t\treturn Uint8Array.from( tree.kids , kid => parseInt( kid.value , 16 ) )\n\t}\n\n\texport function $mol_tree2_bin_from_bytes(\n\t\tbytes : ArrayLike< number >,\n\t\tspan = $mol_span.unknown,\n\t) {\n\t\t\n\t\treturn $mol_tree2.list( Array.from( bytes , code => {\n\t\t\treturn $mol_tree2.data( code.toString( 16 ).padStart( 2 , '0' ) , [] , span )\n\t\t} ) , span )\n\t\t\n\t}\n\n\texport function $mol_tree2_bin_from_string(\n\t\tstr : string,\n\t\tspan = $mol_span.unknown,\n\t) {\n\t\treturn $mol_tree2_bin_from_bytes( [ ... new TextEncoder().encode( str ) ] , span )\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_tree2_xml_from_dom( dom: Node ): $mol_tree2 {\n\t\t\n\t\tswitch( dom.nodeType ) {\n\t\t\t\n\t\t\tcase dom.DOCUMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tkids.push( $mol_tree2_xml_from_dom( kid ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.list( kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.PROCESSING_INSTRUCTION_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '?', [\n\t\t\t\t\t$mol_tree2.struct( dom.nodeName, \n\t\t\t\t\t\tdom.nodeValue!.split(' ').map( chunk => {\n\t\t\t\t\t\t\tconst [, name, value ] = /^(.*?)(?:=\"(.*?)\")?$/.exec( chunk )!\n\t\t\t\t\t\t\tconst kids = value ? [ $mol_tree2.data( value ) ] : []\n\t\t\t\t\t\t\treturn $mol_tree2.struct( name, kids )\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.DOCUMENT_TYPE_NODE: {\n\t\t\t\tconst dom2 = dom as DocumentType\n\t\t\t\treturn $mol_tree2.struct( '!', [\n\t\t\t\t\t$mol_tree2.struct( 'DOCTYPE', [ \n\t\t\t\t\t\t$mol_tree2.struct( dom2.name )\n\t\t\t\t\t] )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.ELEMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const attr of ( dom as Element ).attributes ) {\n\t\t\t\t\tkids.push(\n\t\t\t\t\t\t$mol_tree2.struct( '@', [\n\t\t\t\t\t\t\t$mol_tree2.struct( attr.nodeName, [\n\t\t\t\t\t\t\t\t$mol_tree2.data( attr.nodeValue! )\n\t\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\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tconst k = $mol_tree2_xml_from_dom( kid ) \n\t\t\t\t\tif( k.type || k.value ) kids.push( k )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.struct( dom.nodeName, kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.COMMENT_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '--', [\n\t\t\t\t\t$mol_tree2.data( dom.nodeValue! )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.TEXT_NODE: {\n\t\t\t\tif( !dom.nodeValue!.trim() ) return $mol_tree2.list([])\n\t\t\t\treturn $mol_tree2.data(\n\t\t\t\t\tdom.nodeValue!.replace( /\\s+/g, ' ' )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn $mol_fail( new Error( `Unsupported node ${ dom.nodeName }` ) )\n\t}\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\texport function $hyoo_crus_vary_cast_bin( vary: $hyoo_crus_vary_type ) {\n\t\treturn vary === null || vary === '' ? null : $hyoo_crus_vary_encode( vary ).bin\n\t}\n\t\n\texport function $hyoo_crus_vary_cast_bool( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => Boolean( vary.length ),\n\t\t\tbool: vary => vary,\n\t\t\tint: vary => Boolean( vary ),\n\t\t\treal: vary => Boolean( vary ),\n\t\t\tref: vary => Boolean( vary.description ),\n\t\t\t\n\t\t\tstr: vary => Boolean( vary ),\n\t\t\ttime: vary => Boolean( vary.valueOf() ),\n\t\t\tdur: vary => Boolean( vary.valueOf() ),\n\t\t\trange: vary => Boolean( vary.duration.valueOf() ),\n\t\t\tjson: vary => Boolean( Reflect.ownKeys( vary ).length ),\n\t\t\tjsan: vary => Boolean( vary.length ),\n\t\t\tdom: vary => Boolean( vary.attributes.length + vary.childNodes.length ),\n\t\t\ttree: vary => Boolean( vary.value || vary.kids.length ),\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_int( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => BigInt( vary.length ),\n\t\t\tbool: vary => BigInt( vary ),\n\t\t\tint: vary => vary,\n\t\t\treal: vary => Number.isFinite( vary ) ? BigInt( Math.trunc( vary ) ) : null,\n\t\t\tref: vary => null,//$mol_base64_ae_decode( vary.description!.slice( 0, 16 ) ) + ( BigInt( vary.land() ) << 64n ) + ( BigInt( vary.head() ) << 96n ),\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? BigInt( vary ) : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\ttime: vary => BigInt( vary.valueOf() ),\n\t\t\tdur: vary => BigInt( vary.valueOf() ),\n\t\t\trange: vary => BigInt( vary.duration.valueOf() ),\n\t\t\t\n\t\t\tjson: vary => BigInt( Reflect.ownKeys( vary ).length ),\n\t\t\tjsan: vary => BigInt( vary.length ),\n\t\t\tdom: vary => BigInt( vary.attributes.length + vary.childNodes.length ),\n\t\t\t\n\t\t\ttree: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn BigInt( vary.value )\n\t\t\t\t} catch {\n\t\t\t\t\treturn BigInt( vary.kids.length )\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_real( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => vary.length,\n\t\t\tbool: vary => Number( vary ),\n\t\t\tint: vary => Number( vary ),\n\t\t\treal: vary => vary,\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => vary ? Number( vary ) : null,\n\t\t\ttime: vary => vary.valueOf(),\n\t\t\tdur: vary => vary.valueOf(),\n\t\t\trange: vary => vary.duration.valueOf(),\n\t\t\tjson: vary => Reflect.ownKeys( vary ).length,\n\t\t\tjsan: vary => vary.length,\n\t\t\tdom: vary => Number( vary.attributes.length + vary.childNodes.length ),\n\t\t\ttree: vary => Number( vary.value || vary.kids.length ),\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_ref( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => ( !vary.length || vary.length % 6 ) ? null : $hyoo_crus_ref_decode( vary ),\n\t\t\tbool: vary => null,\n\t\t\tint: vary => null,\n\t\t\treal: vary => null,\n\t\t\tref: vary => vary,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn $hyoo_crus_ref( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => null,\n\t\t\tdur: vary => null,\n\t\t\trange: vary => null,\n\t\t\tjson: vary => null,\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn $hyoo_crus_ref( vary.type )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_str( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => [ ... vary ].map( n => n.toString(16).padStart( 2, '0' ) ).join( '' ),\n\t\t\tbool: vary => String( vary ),\n\t\t\tint: vary => String( vary ),\n\t\t\treal: vary => String( vary ),\n\t\t\tref: vary => vary.description!,\n\t\t\t\n\t\t\tstr: vary => vary,\n\t\t\ttime: vary => String( vary ),\n\t\t\tdur: vary => String( vary ),\n\t\t\trange: vary => String( vary ),\n\t\t\tjson: vary => JSON.stringify( vary ),\n\t\t\tjsan: vary => JSON.stringify( vary ),\n\t\t\tdom: vary => $mol_dom_serialize( vary ),\n\t\t\ttree: vary => String( vary ),\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_time( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => new $mol_time_moment( Number( vary & 0xFFFFFFFFFFFFn ) ),\n\t\t\treal: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_moment( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? new $mol_time_moment( vary ) : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => vary,\n\t\t\tdur: vary => null,\n\t\t\trange: vary => null,\n\t\t\tjson: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_moment( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_dur( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => new $mol_time_duration( Number( vary & 0xFFFFFFFFFFFFn ) ),\n\t\t\treal: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_duration( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_duration( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => vary,\n\t\t\tdur: vary => null,\n\t\t\trange: vary => null,\n\t\t\tjson: vary => new $mol_time_duration( vary as any ),\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_range( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => null,\n\t\t\treal: vary => null,\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? new $mol_time_interval( vary ) : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => new $mol_time_interval({ start: vary, duration: 0 }),\n\t\t\tdur: vary => null,\n\t\t\trange: vary => vary,\n\t\t\tjson: vary => {\n\t\t\t\ttry {\n\t\t\t\t\treturn new $mol_time_interval( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tjsan: vary => null,\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_json( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => null,\n\t\t\tbool: vary => null,\n\t\t\tint: vary => null,\n\t\t\treal: vary => null,\n\t\t\tref: vary => null,\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\tconst res = JSON.parse( vary )\n\t\t\t\t\tif( typeof res === 'object' ) return res\n\t\t\t\t\treturn null\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => ({ ... vary }),\n\t\t\tdur: vary => ({ ... vary }),\n\t\t\trange: vary => ({ ... vary }),\n\t\t\tjson: vary => vary,\n\t\t\tjsan: vary => Object( vary[0] ),\n\t\t\tdom: vary => null,\n\t\t\ttree: vary => null,\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_jsan( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => [ ... vary ],\n\t\t\tbool: vary => [ vary ],\n\t\t\tint: vary => [ vary.toString() ],\n\t\t\treal: vary => Number.isFinite( vary ) ? [ vary ] : null,\n\t\t\tref: vary => [ vary.description! ],\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\treturn [].concat( JSON.parse( vary ) )\n\t\t\t\t} catch {\n\t\t\t\t\treturn [ vary ]\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => [ vary.toJSON() ],\n\t\t\tdur: vary => [ vary.toJSON() ],\n\t\t\trange: vary => [ vary.toJSON() ],\n\t\t\tjson: vary => [ vary ],\n\t\t\tjsan: vary => vary,\n\t\t\tdom: vary => [ $mol_dom_serialize( vary ) ],\n\t\t\ttree: vary => [ vary.toString() ],\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_dom( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => { vary && $mol_base64_ae_encode( vary ) },\n\t\t\tbool: vary => { vary },\n\t\t\tint: vary => { vary },\n\t\t\treal: vary => { vary },\n\t\t\tref: vary => { vary.description },\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\treturn vary ? $mol_dom_parse( vary, 'application/xhtml+xml' ).documentElement : null\n\t\t\t\t} catch {\n\t\t\t\t\treturn { vary }\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => { vary },\n\t\t\tdur: vary => { vary },\n\t\t\trange: vary => { vary },\n\t\t\tjson: vary => { JSON.stringify( vary ) },\n\t\t\tjsan: vary => { JSON.stringify( vary ) },\n\t\t\tdom: vary => vary,\n\t\t\ttree: vary => { vary },\n\t\t\t\n\t\t})\n\t}\n\n\texport function $hyoo_crus_vary_cast_tree( vary: $hyoo_crus_vary_type ) {\n\t\treturn $hyoo_crus_vary_switch( vary, {\n\t\t\t\n\t\t\tnil: vary => null,\n\t\t\tbin: vary => $mol_tree2_bin_from_bytes( vary ),\n\t\t\tbool: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tint: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\treal: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tref: vary => $mol_tree2.struct( vary.description! ),\n\t\t\t\n\t\t\tstr: vary => {\n\t\t\t\tif( !vary ) return null\n\t\t\t\ttry {\n\t\t\t\t\treturn $$.$mol_tree2_from_string( vary )\n\t\t\t\t} catch {\n\t\t\t\t\treturn $$.$mol_tree2.data( vary )\n\t\t\t\t}\n\t\t\t},\n\t\t\ttime: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tdur: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\trange: vary => $mol_tree2.struct( vary.toString() ),\n\t\t\tjson: vary => $$.$mol_tree2_from_json( vary ),\n\t\t\tjsan: vary => $$.$mol_tree2_from_json( vary ),\n\t\t\tdom: vary => $$.$mol_tree2_xml_from_dom( vary ),\n\t\t\ttree: vary => vary,\n\t\t\t\n\t\t})\n\t}\n\n\texport const $hyoo_crus_vary_cast_funcs = {\n\t\t\t\n\t\tnil: ()=> null,\n\t\tbin: $hyoo_crus_vary_cast_bin,\n\t\tbool: $hyoo_crus_vary_cast_bool,\n\t\tint: $hyoo_crus_vary_cast_int,\n\t\treal: $hyoo_crus_vary_cast_real,\n\t\tref: $hyoo_crus_vary_cast_ref,\n\t\t\n\t\tstr: $hyoo_crus_vary_cast_str,\n\t\ttime: $hyoo_crus_vary_cast_time,\n\t\tdur: $hyoo_crus_vary_cast_dur,\n\t\trange: $hyoo_crus_vary_cast_range,\n\t\tjson: $hyoo_crus_vary_cast_json,\n\t\tjsan: $hyoo_crus_vary_cast_jsan,\n\t\tdom: $hyoo_crus_vary_cast_dom,\n\t\ttree: $hyoo_crus_vary_cast_tree,\n\t\t\n\t} as const\n\t\n\texport function $hyoo_crus_vary_cast<\n\t\tTip extends keyof typeof $hyoo_crus_vary_tip\n\t>(\n\t\ttip: Tip,\n\t\tvary: $hyoo_crus_vary_type,\n\t) {\n\t\treturn $hyoo_crus_vary_cast_funcs[ tip ]( vary )\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined(value: T): value is NonNullable {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n export class $mol_bus< Data > extends $mol_object {\n\t\t\n readonly channel: BroadcastChannel\n\t\t\n\t\tconstructor(\n\t\t\treadonly name: string,\n\t\t\treadonly handle: ( data: Data )=> void\n\t\t) {\n\t\t\tsuper()\n const channel = new BroadcastChannel( name )\n channel.onmessage = ( event: MessageEvent< Data > )=> this.handle( event.data )\n\t\t\tthis.channel = channel\n }\n\t\t\n\t\tdestructor() {\n\t\t\tthis.channel.close()\n\t\t}\n\t\t\n\t\tsend( data: Data ) {\n\t\t\tthis.channel.postMessage( data )\n\t\t}\n\t\t\n }\n}\n","namespace $ {\n\n\texport function $mol_promise< Result = void >() {\n\t\t\n\t\tlet done!: ( res: Result | PromiseLike< Result > )=> void\n\t\tlet fail!: ( error?: any ) => void\n\t\t\n\t\tconst promise = new Promise< Result >( ( d, f ) => {\n\t\t\tdone = d\n\t\t\tfail = f\n\t\t} )\n\t\t\n\t\treturn Object.assign( promise, {\n\t\t\tdone,\n\t\t\tfail,\n\t\t} )\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_wait_timeout_async( this: $, timeout: number ) {\n\t\tconst promise = $mol_promise()\n\t\tconst task = new this.$mol_after_timeout( timeout , ()=> promise.done() )\n\t\treturn Object.assign( promise, {\n\t\t\tdestructor: ()=> task.destructor()\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_timeout( this: $, timeout: number ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_timeout_async( timeout )\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Starts subtasks concurrently instead of serial. */\n\texport function $mol_wire_race<\n\t\tTasks extends ( ( ... args: any )=> any )[]\n\t>( ... tasks: Tasks ): {\n\t\t[ index in keyof Tasks ]: ReturnType< Tasks[ index ] > \n\t} {\n\t\t\n\t\tconst results = tasks.map( task => {\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn task()\n\t\t\t} catch( error ) {\n\t\t\t\treturn error\n\t\t\t}\n\t\t\t\n\t\t} )\n\t\t\n\t\tconst promises = results.filter( res => $mol_promise_like( res ) )\n\t\tif( promises.length ) $mol_fail( Promise.race( promises ) )\n\t\t\n\t\tconst error = results.find( res => res instanceof Error )\n\t\tif( error ) $mol_fail( error )\n\t\t\n\t\treturn results as any\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_land extends $mol_object {\n\t\t\n\t\trealm() {\n\t\t\treturn null as null | $hyoo_crus_realm\n\t\t}\n\t\t\n\t\tref() {\n\t\t\treturn this.auth().lord()\n\t\t}\n\t\t\n\t\tauth() {\n\t\t\treturn this.$.$hyoo_crus_auth.current()\n\t\t}\n\t\t\n\t\tfaces = new $hyoo_crus_face_map\n\t\t\n\t\tpasses = new $mol_wire_dict< string /*peer*/, $hyoo_crus_pass >()\n\t\tgifts = new $mol_wire_dict< $hyoo_crus_ref /*lord*/, $hyoo_crus_gift >()\n\t\tgists = new $mol_wire_dict< string /*head*/, $mol_wire_dict< string /*self*/, $hyoo_crus_gist > >()\n\t\t\n\t\tself_all = new $mol_wire_set< string >()\n\t\t\n\t\t@ $mol_action\n\t\tself_make( area: keyof typeof $hyoo_crus_area, idea = Math.floor( Math.random() * 2**48 ) ) {\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst rank = this.lord_rank( auth.lord() )\n\t\t\t\n\t\t\tif( rank === $hyoo_crus_rank.add ) return $hyoo_crus_area_to( auth.peer(), 'data' )\n\t\t\tif( rank === $hyoo_crus_rank.nil ) $mol_fail( new Error( 'Rank too low (nil)' ) )\n\t\t\t\n\t\t\tfor( let i = 0; i < 4096; ++i ) {\n\t\t\t\t\n\t\t\t\tidea = ( idea + 1 ) % 2**48\n\t\t\t\tif( !idea ) continue\n\t\t\t\tif( $hyoo_crus_area[ idea % 2 ] !== area ) continue\n\t\t\t\t\n\t\t\t\tconst idea_str = $mol_base64_ae_encode( new Uint8Array( new BigUint64Array([ BigInt( idea ) ]).buffer, 0, 6 ) )\n\t\t\t\tif( this.self_all.has( idea_str ) ) continue\n\t\t\t\t\n\t\t\t\tthis.self_all.add( idea_str )\n\t\t\t\treturn idea_str\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too long self generation` ) )\n\t\t}\n\t\t\n\t\thome() {\n\t\t\treturn this.Data( $hyoo_crus_home )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tData< Node extends typeof $hyoo_crus_node >( Node: Node ) {\n\t\t\treturn this.Node( Node ).Item( '' ) // 0\n\t\t} \n\t\t\n\t\t@ $mol_mem\n\t\tMeta() {\n\t\t\treturn this.Node( $hyoo_crus_meta ).Item( 'AQAAAAAA' ) // 1\n\t\t} \n\t\t\n\t\t@ $mol_mem_key\n\t\tNode< Node extends typeof $hyoo_crus_node >( Node: Node ): $hyoo_crus_fund< string, InstanceType< Node > > {\n\t\t\treturn new $hyoo_crus_fund( ( head: string )=> {\n\t\t\t\tif( head === 'AAAAAAAA' ) return this.Node( Node ).Item( '' )\n\t\t\t\treturn ( Node as typeof $hyoo_crus_node ).make({\n\t\t\t\t\tland: ()=> this.sync(),\n\t\t\t\t\thead: $mol_const( head ),\n\t\t\t\t}) as InstanceType< Node >\n\t\t\t} )\n\t\t} \n\t\t\n\t\t/** Total count of Units inside Land. */\n\t\t@ $mol_mem\n\t\ttotal() {\n\t\t\tlet total = this.passes.size + this.gifts.size\n\t\t\tfor( const units of this.gists.values() ) total += units.size\n\t\t\treturn total\n\t\t}\n\t\t\n\t\t/** All joined Lords. */\n\t\t@ $mol_mem\n\t\tjoined_list() {\n\t\t\treturn [ ... this.passes.values() ].map( unit => unit.lord() )\n\t\t}\n\t\t\n\t\t/** Public key of Land Lord. */\n\t\t@ $mol_mem\n\t\tkey() {\n\t\t\tconst pass = this.passes.get( $hyoo_crus_ref_peer( this.ref() ) )\n\t\t\tif( !pass ) return null\n\t\t\treturn $hyoo_crus_auth.from( pass.auth() )\n\t\t}\n\t\t\n\t\t/** Rights level of Lord for Land. */\n\t\t@ $mol_mem_key\n\t\tlord_rank( lord: $hyoo_crus_ref, next?: $hyoo_crus_rank ) {\n\t\t\t\n\t\t\tif( lord === this.ref() ) return $hyoo_crus_rank.law\n\t\t\t\n\t\t\tconst prev = this.gifts.get( lord )?.rank()\n\t\t\t\t?? this.gifts.get( $hyoo_crus_ref( '' ) )?.rank()\n\t\t\t\t?? $hyoo_crus_rank.get\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( next === prev ) return prev\n\t\t\t\n\t\t\tconst key = this.passes.get( $hyoo_crus_ref_peer( lord ) )?.auth()\n\t\t\tif( !key ) $mol_fail( new Error( `No pub key for lord (${ lord.description })` ) )\n\t\t\t\n\t\t\tthis.give( $hyoo_crus_auth.from( key ), next )\n\t\t\treturn next\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Rights level of Peer for Land. */\n\t\tpeer_rank( peer: string ) {\n\t\t\tconst auth = this.passes.get( peer )!\n\t\t\tif( !auth ) return $hyoo_crus_rank.get\n\t\t\treturn this.lord_rank( auth.lord() )\n\t\t}\n\t\t\n\t\t/** Picks units between Face and current state. */\n\t\tdelta_unit( face = new $hyoo_crus_face_map ): $hyoo_crus_unit[] {\n\t\t\t\n\t\t\tthis.loading()\n\t\t\t\n\t\t\tconst delta = [] as $hyoo_crus_unit[]\n\t\t\t\n\t\t\tconst passed = new Set< string >()\n\t\t\tconst auth = ( peer: string )=> {\n\t\t\t\t\n\t\t\t\tif( passed.has( peer ) ) return\n\t\t\t\tif( face.get( peer ) ) return\n\t\t\t\t\n\t\t\t\tconst pass = this.passes.get( peer )\n\t\t\t\tif( !pass ) $mol_fail( new Error( `No pass for Peer (${ peer })` ) )\n\t\t\t\t\n\t\t\t\tdelta.push( pass )\n\t\t\t\tpassed.add( peer )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ lord, unit ] of this.gifts ) {\n\t\t\t\t\n\t\t\t\tconst time = face.get( unit.peer() ) ?? 0\n\t\t\t\tif( time >= unit.time() ) continue\n\t\t\t\t\n\t\t\t\tauth( unit.peer() )\n\t\t\t\tdelta.push( unit )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const kids of this.gists.values() ) {\n\t\t\t\tfor( const unit of kids.values() ) {\n\t\t\t\t\t\n\t\t\t\t\tconst time = face.get( unit.peer() ) ?? 0\n\t\t\t\t\tif( time >= unit.time() ) continue\n\t\t\t\t\t\n\t\t\t\t\tauth( unit.peer() )\n\t\t\t\t\tdelta.push( unit )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( delta.length || this.faces.total <= this.faces.total ) return delta\n\t\t\treturn this.delta_unit()\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Makes binary Delta between Face and current state. */\n\t\tdelta_pack( face = new $hyoo_crus_face_map ) {\n\t\t\t\n\t\t\tconst parts = this.delta_parts( face )\n\t\t\tif( !parts ) return null\n\t\t\t\n\t\t\tconst pack = $hyoo_crus_pack.make( parts )\n\t\t\t\n\t\t\treturn pack\n\t\t}\n\t\t\n\t\tdelta_parts( face = new $hyoo_crus_face_map ) {\n\t\t\t\n\t\t\tconst units = this.delta_unit( face )\n\t\t\tif( !units.length ) return null\n\t\t\t\n\t\t\tconst rocks = [] as [ Uint8Array, null | Uint8Array ][]\n\t\t\t\n\t\t\tfor( let unit of units ) {\n\t\t\t\t\n\t\t\t\tif( unit.kind() !== 'gist' ) continue\n\t\t\t\t\n\t\t\t\tconst gist = unit.narrow() as $hyoo_crus_gist\n\t\t\t\tif( gist.size() <= 32 ) continue\n\t\t\t\t\n\t\t\t\tconst rock = this.$.$hyoo_crus_mine.rock( gist.hash() ) ?? null\n\t\t\t\trocks.push([ gist.hash(), rock ])\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tlands: {\n\t\t\t\t\t[ this.ref() ]: {\n\t\t\t\t\t\tfaces: new $hyoo_crus_face_map,\n\t\t\t\t\t\tunits,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trocks,\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tfaces_pack() {\n\t\t\tconst pack = $hyoo_crus_pack.make({\n\t\t\t\tlands: {\n\t\t\t\t\t[ this.ref() ]: { faces: this.faces, units: [] },\n\t\t\t\t},\n\t\t\t\trocks: [],\n\t\t\t})\n\t\t\treturn pack\n\t\t}\n\t\t\n\t\t/** Applies Delta to current state with verify. */\n\t\t@ $mol_action\n\t\tapply_unit( delta: readonly $hyoo_crus_unit[], skip_check = false ) {\n\t\t\t\n\t\t\tif( !delta.length ) return []\n\t\t\t\n\t\t\tconst errors = $mol_wire_sync( this ).units_verify( delta )\n\t\t\tif( errors.some( v => v ) ) return errors\n\t\t\t\n\t\t\treturn this.apply_unit_trust( delta, skip_check )\n\t\t}\n\t\t\n\t\tasync units_verify( delta: readonly $hyoo_crus_unit[] ) {\n\t\t\t\n\t\t\tconst passes = delta.filter( unit => unit.kind() === 'pass' ) as $hyoo_crus_pass[]\n\t\t\tconst auth = new Map( passes.map( ( unit: $hyoo_crus_pass )=> [ unit.peer(), unit.auth() ] ) )\n\t\t\t\n\t\t\tconst mixin = $hyoo_crus_ref_encode( this.ref() )\n\t\t\t\n\t\t\treturn await Promise.all( delta.map( async unit => {\n\t\t\t\t\n\t\t\t\tlet key_public = this.key_public( unit.peer() )\n\t\t\t\tif( !key_public ) {\n\t\t\t\t\t\n\t\t\t\t\tconst key_serial = auth.get( unit.peer() )\n\t\t\t\t\tif( !key_serial ) return `No public key for peer (${unit.peer()})`\n\t\t\t\t\t\n\t\t\t\t\tkey_public = $mol_crypto_key_public.from( key_serial )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst sens = unit.sens().slice()\n\t\t\t\tfor( let i = 0; i < mixin.length; ++i ) sens[i+14] ^= mixin[i+14]\n\t\t\t\t\n\t\t\t\treturn await key_public.verify( sens, unit.sign() ) ? '' : `Wrong unit sign`\n\t\n\t\t\t} ) )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Applies Delta to current state without verifying. */\n\t\t@ $mol_action\n\t\tapply_unit_trust( delta: readonly $hyoo_crus_unit[], skip_check = false ) {\n\t\t\treturn delta.map( unit => {\n\t\t\t\t\n\t\t\t\tif( !skip_check ) {\n\t\t\t\t\tconst error = this.check_unit( unit )\n\t\t\t\t\tif( error ) return error\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlet need_recheck = false\n\t\t\t\tconst res = unit.choose({\n\t\t\t\t\t\n\t\t\t\t\tpass: next => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst peer = next.peer()\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst exists = this.passes.get( peer )\n\t\t\t\t\t\tif( exists ) return ''\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.passes.set( peer, next )\n\t\t\t\t\t\tthis.faces.total ++\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tgift: next => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst dest = next.dest()\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst prev = this.gifts.get( dest )\n\t\t\t\t\t\tif( prev && $hyoo_crus_gift.compare( prev, next ) <= 0 ) return ''\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.gifts.set( dest, next )\n\t\t\t\t\t\tthis.faces.time_max( next.peer(), next.time() )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !prev ) this.faces.total ++\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ( prev?.rank() ?? $hyoo_crus_rank.nil ) > next.rank() ) need_recheck = true\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tgist: next => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst head = next.head()\n\t\t\t\t\t\tconst self = next.self()\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet units = this.gists.get( head )\n\t\t\t\t\t\tif( !units ) this.gists.set( head, units = new $mol_wire_dict )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tconst prev = units.get( self )\n\t\t\t\t\t\tif( prev && $hyoo_crus_gist.compare( prev, next ) <= 0 ) return ''\n\t\t\t\t\t\t\n\t\t\t\t\t\tunits.set( self, next )\n\t\t\t\t\t\tthis.self_all.add( self )\n\t\t\t\t\t\tthis.faces.time_max( next.peer(), next.time() )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !prev ) this.faces.total ++\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\t\t\t\t\n\t\t\t\tif( need_recheck ) this.recheck()\n\t\t\t\treturn res ?? ''\n\t\t\t\t\n\t\t\t})\n\t\t}\n\t\t\n\t\tapply_land( land: $hyoo_crus_land ) {\n\t\t\treturn this.apply_unit_trust( land.delta_unit() )\n\t\t}\n\t\t\n\t\trecheck() {\n\t\t\t\n\t\t\tfor( const [ peer, pass ] of this.passes ) {\n\t\t\t\tif( !this.check_unit( pass ) ) continue\n\t\t\t\tthis.passes.delete( peer )\n\t\t\t\tthis.faces.total --\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ lord, gift ] of this.gifts ) {\n\t\t\t\tif( !this.check_unit( gift ) ) continue\n\t\t\t\tthis.gifts.delete( lord )\n\t\t\t\tthis.faces.total --\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ head, units ] of this.gists ) {\n\t\t\t\tfor( const [ self, gist ] of units ) {\n\t\t\t\t\tif( !this.check_unit( gist ) ) continue\n\t\t\t\t\tunits.delete( self )\n\t\t\t\t\tthis.faces.total --\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tcheck_unit( unit: $hyoo_crus_unit ): string {\n\t\t\treturn unit.choose({\n\t\t\t\t\n\t\t\t\tpass: next => this.lord_rank( next.lord() ) < $hyoo_crus_rank.add ? 'Need add rank to join' : '',\n\t\t\t\t\n\t\t\t\tgift: next => this.peer_rank( next.peer() ) < $hyoo_crus_rank.law ? 'Need law rank to change rank': '',\n\t\t\t\t\n\t\t\t\tgist: next => {\n\t\t\t\t\tif( $hyoo_crus_area_of( next.self() ) !== $hyoo_crus_area_of( next.self() ) ) return 'Need same area'\n\t\t\t\t\tif( $hyoo_crus_area_to( next.peer(), 'data' ) === next.self() ) {\n\t\t\t\t\t\treturn this.peer_rank( next.peer() ) < $hyoo_crus_rank.add ? 'Need add rank to post self data' : ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( $hyoo_crus_area_of( next.self() ) === 'data' ) {\n\t\t\t\t\t\t\treturn this.peer_rank( next.peer() ) < $hyoo_crus_rank.mod ? 'Need mod rank to post any data' : ''\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn this.peer_rank( next.peer() ) < $hyoo_crus_rank.law ? 'Need law rank to post to meta area' : ''\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})\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tfork( preset = $hyoo_crus_rank_public ) {\n\t\t\tconst realm = this.realm()\n\t\t\t\n\t\t\tif( !realm ) $mol_fail( new Error( 'Realm is required to fork' ) )\n\t\t\t\n\t\t\tconst land = realm.land_grab( preset )\n\t\t\tland.Meta().Inflow(null)!.items_vary([ this.ref() ])\n\t\t\t\n\t\t\treturn land\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgists_ordered( head: string ) {\n\t\t\t\n\t\t\tthis.sync()\n\t\t\t\n\t\t\tconst queue = [ ... this.gists.get( head )?.values() ?? [] ]\n\t\t\tconst res = [] as $hyoo_crus_gist[]\n\t\t\t\n\t\t\tconst slices = new WeakMap\n\t\t\tfor( const gist of queue ) slices.set( gist, 0 )\n\t\t\t\n\t\t\tmerge: if( $hyoo_crus_area_of( head ) === 'data' ) {\n\t\t\t\t\n\t\t\t\tconst inflow = ( this.Meta().Inflow()?.items_vary().slice().reverse() ?? [] )\n\t\t\t\t\t.map( $hyoo_crus_vary_cast_ref )\n\t\t\t\t\t.filter( $mol_guard_defined )\n\t\t\t\tif( !inflow.length ) break merge\n\t\t\t\t\n\t\t\t\tconst exists = new Set([ ... this.gists.get( head )?.keys() ?? [] ])\n\t\t\t\t\n\t\t\t\tconst realm = this.realm()\n\t\t\t\tlet slice = 0\n\t\t\t\tif( realm ) for( const ref of inflow ) {\n\t\t\t\t\t++ slice\n\t\t\t\t\tconst land = realm.Land( ref )\n\t\t\t\t\tfor( const gist of land.gists_ordered( head ) ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( exists.has( gist.self() ) ) continue\n\t\t\t\t\t\tqueue.push( gist )\n\t\t\t\t\t\texists.add( gist.self() )\n\t\t\t\t\t\tslices.set( gist, slice )\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\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( queue.length < 2 ) return queue.filter( unit => !unit.nil() )\n\t\t\t\n\t\t\tconst compare = ( left: $hyoo_crus_gist, right: $hyoo_crus_gist )=> {\n\t\t\t\treturn ( slices.get( left ) - slices.get( right ) ) || $hyoo_crus_gist.compare( left, right )\n\t\t\t}\n\t\t\t\n\t\t\tqueue.sort( compare )\n\t\t\t\n\t\t\tconst locate = ( self: string )=> {\n\t\t\t\t\n\t\t\t\tfor( let i = res.length - 1; i >= 0; --i ) {\n\t\t\t\t\tif( res[i].self() === self ) return i\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\t\n\t\t\twhile( queue.length ) {\n\t\t\t\t\n\t\t\t\tres.push( queue.pop()! )\n\t\t\t\t\n\t\t\t\tfor( let cursor = queue.length - 1; cursor >= 0; --cursor ) {\n\t\t\t\t\t\n\t\t\t\t\tconst kid = queue[cursor]\n\t\t\t\t\tlet index = 0\n\n\t\t\t\t\tif( kid.lead() ) {\n\t\t\t\t\t\tindex = locate( kid.lead() ) + 1\n\t\t\t\t\t\tif( !index ) continue\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\twhile( res[ index ] && ( compare( res[ index ], kid ) < 0 ) ) ++ index\n\t\t\t\t\t\n\t\t\t\t\tconst exists = locate( kid.self() )\n\t\t\t\t\tif( index === exists ) {\n\t\t\t\t\t\tif( cursor === queue.length - 1 ) queue.pop()\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif( exists >= 0 ) {\n\t\t\t\t\t\tres.splice( exists, 1 )\n\t\t\t\t\t\tif( exists < index ) -- index\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tres.splice( index, 0, kid )\n\t\t\t\t\t\n\t\t\t\t\tif( cursor === queue.length - 1 ) queue.pop()\n\t\t\t\t\tcursor = queue.length\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\t/** Register public key **/\n\t\t@ $mol_action\n\t\tjoin() {\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\t\n\t\t\tconst prev = this.passes.get( auth.peer() )\n\t\t\tif( prev ) return prev\n\t\t\t\n\t\t\tconst next = new $hyoo_crus_pass\n\t\t\tnext.auth( auth.public().asArray() )\n\t\t\tnext._land = this\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ next ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t/**\n\t\t * Gives access rights to Lord by Auth key.\n\t\t * `null` - gives rights for all Peers.\n\t\t */\n\t\t@ $mol_action\n\t\tgive(\n\t\t\tdest: $hyoo_crus_auth | null,\n\t\t\trank: $hyoo_crus_rank,\n\t\t) {\n\t\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst unit = new $hyoo_crus_gift\n\t\t\t\n\t\t\tunit.rank( rank )\n\t\t\tunit.time( this.faces.tick() )\n\t\t\tunit.peer( auth.peer() )\n\t\t\tunit.dest( dest ? dest.lord() : $hyoo_crus_ref('') )\n\t\t\tunit._land = this\n\t\t\t\n\t\t\tif( rank >= $hyoo_crus_rank.get ) {\n\t\t\t\t\n\t\t\t\tconst secret_land = this.secret()\n\t\t\t\tif( secret_land ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !dest ) $mol_fail( new Error( `Encrypted land can't be shared to everyone` ) )\n\t\t\t\t\t\n\t\t\t\t\tconst secret_mutual = this.secret_mutual( dest.toString() )\n\t\t\t\t\tif( secret_mutual ) {\n\t\t\t\t\t\tconst secret_bin = $mol_wire_sync( secret_land ).serial()\n\t\t\t\t\t\tconst bill = $mol_wire_sync( secret_mutual ).encrypt( secret_bin, unit.salt() )\n\t\t\t\t\t\tunit.bill().set( bill )\n\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}\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ unit ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\treturn unit\n\t\t}\n\t\t\n\t\t/** Places data to tree. */\n\t\t@ $mol_action\n\t\tpost(\n\t\t\tlead: string,\n\t\t\thead: string,\n\t\t\tself: string,\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\t\n\t\t\tif( typeof vary === 'symbol' ) vary = $hyoo_crus_ref_relate( this.ref(), vary )\n\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst unit = new $hyoo_crus_gist\n\t\t\t\n\t\t\tunit.time( this.faces.tick() )\n\t\t\tunit.peer( auth.peer() )\n\t\t\tunit.lead( lead )\n\t\t\tunit.head( head )\n\t\t\tunit._vary = vary\n\t\t\tunit._land = this\n\t\t\t\n\t\t\tlet { tip, bin } = $hyoo_crus_vary_encode( vary )\n\t\t\tunit._open = bin\n\t\t\t\n\t\t\tif( vary !== null && this.encrypted() ) {\n\t\t\t\tunit.hash( $mol_crypto_hash( bin ), tip, tag )\n\t\t\t} else {\n\t\t\t\tif( bin.byteLength > 32 ) unit.hash( this.$.$hyoo_crus_mine.hash( bin ), tip, tag )\n\t\t\t\telse unit.data( bin, tip, tag )\n\t\t\t}\n\t\t\n\t\t\tunit.self( self || this.self_make( $hyoo_crus_area_of( head ), unit.idea() ) )\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ unit ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\treturn unit\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tgist_move(\n\t\t\tgist: $hyoo_crus_gist,\n\t\t\thead: string,\n\t\t\tseat: number,\n\t\t) {\n\t\t\t\n\t\t\tif( gist.nil() ) $mol_fail( new RangeError( `Can't move wiped gist` ) )\n\t\t\t\n\t\t\tconst units = this.gists_ordered( head ).filter( unit => !unit.nil() )\n\t\t\tif( seat > units.length ) $mol_fail( new RangeError( `Seat (${seat}) out of units length (${units.length})` ) )\n\t\t\t\n\t\t\tconst lead = seat ? units[ seat - 1 ].self() : ''\n\t\t\tconst vary = this.gist_decode( gist )\n\t\t\t\n\t\t\tif( gist.head() === head ) {\n\t\t\t\t\n\t\t\t\tconst seat_prev = units.indexOf( gist )\n\t\t\t\t\n\t\t\t\tif( seat === seat_prev ) return\n\t\t\t\tif( seat === seat_prev + 1 ) return\n\t\t\t\t\n\t\t\t\tconst prev = seat_prev ? units[ seat_prev - 1 ].self() : ''\n\t\t\t\tconst next = units[ seat_prev + 1 ]\n\t\t\t\t\n\t\t\t\tif( next ) this.post(\n\t\t\t\t\tprev,\n\t\t\t\t\thead,\n\t\t\t\t\tnext.self(),\n\t\t\t\t\tthis.gist_decode( next ),\n\t\t\t\t\tnext.tag(),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.gist_wipe( gist )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.post(\n\t\t\t\tlead,\n\t\t\t\thead,\n\t\t\t\tgist.self(),\n\t\t\t\tvary,\n\t\t\t\tgist.tag(),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tgist_wipe( gist: $hyoo_crus_gist ) {\n\t\t\t\n\t\t\tconst units = this.gists_ordered( gist.head() ).filter( unit => !unit.nil() )\n\t\t\tconst seat = units.indexOf( gist )\n\t\t\t\n\t\t\tthis.post(\n\t\t\t\tseat ? units[ seat - 1 ].self() : '',\n\t\t\t\tgist.head(),\n\t\t\t\tgist.self(),\n\t\t\t\tnull,\n\t\t\t\t'term',\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tbroadcast() {\n\t\t\tthis.realm()?.yard().neonatals.add( this.ref() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync() {\n\t\t\t\n\t\t\tthis.loading()\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.saving()\n\t\t\t\tthis.bus()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t\tthis.realm()?.yard().sync_land( this.ref() )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbus() {\n\t\t\treturn new this.$.$mol_bus< ArrayBuffer[] >(\n\t\t\t\t`$hyoo_crus_land:${ this.ref().description }`,\n\t\t\t\t$mol_wire_async( bins => {\n\t\t\t\t\t\n\t\t\t\t\tconst yard = this.realm()!.yard()\n\t\t\t\t\t\n\t\t\t\t\tthis.apply_unit_trust( bins.map( bin => {\n\t\t\t\t\t\tconst unit = new $hyoo_crus_unit( bin ).narrow()\n\t\t\t\t\t\tyard.persisted.add( unit )\n\t\t\t\t\t\treturn unit\n\t\t\t\t\t} ) )\n\t\t\t\t\t\n\t\t\t\t} ),\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tloading() {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tconst realm = this.realm()\n\t\t\tif( !realm ) return\n\t\t\t\n\t\t\tconst units = realm.yard().load( this ) ?? []\n\t\t\t\n\t\t\t$mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Load Unit',\n\t\t\t\tunits: units.length,\n\t\t\t})\n\t\t\t\n\t\t\tconst errors = this.apply_unit_trust( units, !!'skip_check' ).filter( Boolean )\n\t\t\t\n\t\t\tif( errors.length ) this.$.$mol_log3_fail({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: errors.join( '\\n' ),\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsaving() {\n\t\t\tthis.$.$mol_wait_timeout(250)\n\t\t\tthis.save()\n\t\t}\n\t\t\n\t\tsave() {\n\t\t\t\n\t\t\tconst yard = this.realm()?.yard()\n\t\t\tif( !yard ) return\n\t\t\t\n\t\t\tconst encoding = [] as $hyoo_crus_gist[]\n\t\t\tconst signing = [] as $hyoo_crus_unit[]\n\t\t\tconst persisting = [] as $hyoo_crus_unit[]\n\t\t\t\n\t\t\tfor( const pass of this.passes.values() ) {\n\t\t\t\tif( !pass.signed() ) signing.push( pass )\n\t\t\t\tif( !yard.persisted.has( pass ) ) persisting.push( pass )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const gift of this.gifts.values() ) {\n\t\t\t\tif( !gift.signed() ) signing.push( gift )\n\t\t\t\tif( !yard.persisted.has( gift ) ) persisting.push( gift )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const kids of this.gists.values() ) {\n\t\t\t\tfor( const gist of kids.values() ) {\n\t\t\t\t\tif( !gist.signed() ) {\n\t\t\t\t\t\tencoding.push( gist )\n\t\t\t\t\t\tsigning.push( gist )\n\t\t\t\t\t}\n\t\t\t\t\tif( !yard.persisted.has( gist ) ) persisting.push( gist )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_race( ... encoding.map( unit => ()=> this.gist_encode( unit ) ) )\n\t\t\t$mol_wire_race( ... signing.map( unit => ()=> this.unit_sign( unit ) ) )\n\t\t\t\n\t\t\tif( persisting.length )\t$mol_wire_sync( yard ).save( this, persisting )\n\t\t\tthis.bus().send( persisting.map( unit => unit.buffer ) )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tunit_sign( unit: $hyoo_crus_unit ) {\n\t\t\tif( unit.signed() ) return\n\t\t\t\n\t\t\tconst key = $mol_wire_sync( unit._land!.auth() )\n\t\t\tconst mixin = $hyoo_crus_ref_encode( unit._land!.ref() )\n\t\t\t\n\t\t\tconst sens = unit.sens().slice()\n\t\t\tfor( let i = 0; i < mixin.length; ++i ) sens[i+14] ^= mixin[i+14]\n\t\t\t\n\t\t\tconst sign = new Uint8Array( key.sign( sens ) )\n\t\t\tunit.sign( sign )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgist_encode( gist: $hyoo_crus_gist ) {\n\t\t\t\n\t\t\tif( gist._open === null ) return gist\n\t\t\tif( gist.nil() ) return gist\n\t\t\t\n\t\t\tlet bin = gist._open\n\t\t\tconst secret = gist._land!.secret()!\n\t\t\t\n\t\t\tif( secret ) bin = new Uint8Array( $mol_wire_sync( secret ).encrypt( bin, gist.salt() ) )\n\t\t\t\n\t\t\tif( bin.byteLength > 32 ) gist.hash( this.$.$hyoo_crus_mine.save( bin ), gist.tip(), gist.tag() )\n\t\t\telse gist.data( bin, gist.tip(), gist.tag() )\n\t\t\t\n\t\t\treturn gist\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgist_decode( gist: $hyoo_crus_gist ): $hyoo_crus_vary_type {\n\t\t\tlet vary = this.gist_decode_raw( gist )\n\t\t\tif( typeof vary === 'symbol' ) vary = $hyoo_crus_ref_resolve( this.ref(), vary )\n\t\t\treturn vary\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgist_decode_raw( gist: $hyoo_crus_gist ): $hyoo_crus_vary_type {\n\t\t\t\n\t\t\tif( this.gists.get( gist.head() )?.get( gist.self() ) !== gist ) {\n\t\t\t\tfor( const id of this.Meta().Inflow()?.items_vary() ?? [] ) {\n\t\t\t\t\tconst vary = this.realm()?.Land( $hyoo_crus_vary_cast_ref( id! )! ).gist_decode_raw( gist )\n\t\t\t\t\tif( vary !== undefined ) return vary\n\t\t\t\t}\n\t\t\t\treturn undefined!\n\t\t\t}\n\t\t\t\n\t\t\tconst secret = this.secret()\n\t\t\t\n\t\t\tif( gist._vary !== undefined ) return gist._vary\n\t\t\tif( gist._open !== null ) return gist._vary = $hyoo_crus_vary_decode({ tip: gist.tip(), bin: gist._open })\n\t\t\t\n\t\t\tlet bin = gist.size() > 32 ? this.$.$hyoo_crus_mine.rock( gist.hash() ) : gist.data()\n\t\t\tif( secret && bin && !gist.nil() ) {\n\t\t\t\ttry {\n\t\t\t\t\tbin = new Uint8Array( $mol_wire_sync( secret ).decrypt( bin, gist.salt() ) )\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\t\tif( error.message ) $mol_fail_hidden( error )\n\t\t\t\t\t\telse $mol_fail_hidden( new Error( `Can't decrypt`, { cause: error } ) )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tgist._open = bin\n\t\t\treturn gist._vary = ( bin ? $hyoo_crus_vary_decode({ tip: gist.tip(), bin }) : null )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tkey_public( peer: string ) {\n\t\t\tconst key = this.passes.get( peer )?.auth()\n\t\t\treturn key ? $mol_crypto_key_public.from( key ) : null\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsecret_mutual( key_public: string ) {\n\t\t\treturn $mol_wire_sync( $mol_crypto_secret ).derive(\n\t\t\t\tthis.auth().toString(),\n\t\t\t\tkey_public,\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tencryptable() {\n\t\t\treturn !this.gists.size\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tencrypted( next?: boolean ) {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tconst gift = this.gifts.get( this.ref() )\n\t\t\tconst prev = gift?.bill().some( b => b ) ?? false\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( prev === next ) return prev\n\t\t\t\n\t\t\tif( !this.encryptable() ) $mol_fail( new Error( `Non empty Land never encrypted` ) )\n\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst secret = $mol_wire_sync( $mol_crypto_secret ).generate()\n\t\t\tconst secret_land = $mol_wire_sync( secret ).serial()\n\t\t\tconst secret_mutual = auth.secret_mutual( auth.public().toString() )\n\t\t\t\n\t\t\tconst unit = new $hyoo_crus_gift\n\t\t\t\n\t\t\tunit.rank( $hyoo_crus_rank.law )\n\t\t\tunit.time( this.faces.tick() )\n\t\t\tunit.peer( auth.peer() )\n\t\t\tunit.dest( auth.lord() )\n\t\t\tunit._land = this\n\t\t\t\n\t\t\tconst secret_closed = $mol_wire_sync( secret_mutual ).encrypt( secret_land, unit.salt() )\n\t\t\tunit.bill().set( new Uint8Array( secret_closed ) )\n\t\t\t\n\t\t\tconst error = this.apply_unit_trust([ unit ])[0]\n\t\t\tif( error ) $mol_fail( new Error( error ) )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsecret() {\n\t\t\t\n\t\t\tif( !this.encrypted() ) return null\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst gift = this.gifts.get( auth.lord() )\n\t\t\tif( !gift ) return $mol_fail( new Error( `Access denied` ) )\n\t\t\t\n\t\t\tconst bill = gift.bill()\n\t\t\tif( !bill.some( b => b ) ) return $mol_fail( new Error( `No key to decrypt` ) )\n\t\t\t\n\t\t\tconst secret_mutual = auth.secret_mutual( this.key_public( gift.peer() )!.toString() )\n\t\t\tif( !secret_mutual ) return $mol_fail( new Error( `Can't decrypt secret` ) )\n\t\t\t\n\t\t\tconst secret_land = $mol_wire_sync( secret_mutual ).decrypt( bill, gift.salt() )\n\t\t\treturn $mol_wire_sync( $mol_crypto_secret ).from( secret_land )\n\t\t\t\n\t\t}\n\t\t\n\t\tdump() {\n\t\t\t\n\t\t\tthis.saving()\n\t\t\t\n\t\t\tconst units = [] as $hyoo_crus_unit[]\n\t\t\tconst rocks = [] as [ Uint8Array, Uint8Array ][]\n\t\t\t\n\t\t\tfor( const pass of this.passes.values() ) units.push( pass )\n\t\t\tfor( const gift of this.gifts.values() ) units.push( gift )\n\t\t\t\n\t\t\tfor( const kids of this.gists.values() ) {\n\t\t\t\tfor( const gist of kids.values() ) {\n\t\t\t\t\tunits.push( gist )\n\t\t\t\t\tif( gist.size() <= 32 ) continue\n\t\t\t\t\tconst rock = this.$.$hyoo_crus_mine.rock( gist.hash() )\n\t\t\t\t\tif( !rock ) continue\n\t\t\t\t\trocks.push([ gist.hash(), rock ])\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tland: this.ref(),\n\t\t\t\tunits, rocks,\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\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' ',\n\t\t\t\t$mol_dev_format_auto( this.faces.total ),\n\t\t \t)\n\t\t }\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_unit_kind {\n\t\t\n\t\t/** Public key. First writes wins. */\n\t\tpass = $hyoo_crus_part.pass,\n\t\t\n\t\t/** Rights sharing. More power wins. */\n\t\tgift = $hyoo_crus_part.gift,\n\t\t\n\t\t/** Changable data. Last writes wins. */\n\t\tgist = $hyoo_crus_part.gist,\n\t\t\n\t}\n\t\n\texport class $hyoo_crus_unit extends $mol_buffer {\n\t\t\n\t\tstatic size = 128 as const\n\t\t\t\t\n\t\tconstructor(\n\t\t\tbuffer = new ArrayBuffer( $hyoo_crus_unit.size ),\n\t\t\tbyteOffset = 0,\n\t\t\tbyteLength = buffer.byteLength,\n\t\t) {\n\t\t\tsuper( buffer, byteOffset, byteLength )\n\t\t}\n\t\t\n\t\tkind() {\n\t\t\t\n\t\t\tconst val = this.uint8( 0 )\n\t\t\tif( ( val & 1 ) === 0 ) return 'gist'\n\t\t\t\n\t\t\tconst kind = $hyoo_crus_unit_kind[ val ] as keyof typeof $hyoo_crus_unit_kind\n\t\t\tif( kind ) return kind\n\t\t\t\n\t\t\t$mol_fail( new Error( `Unknown unit kind (${val})` ) )\n\t\t}\n\t\t\n\t\tchoose< Res >( ways: {\n\t\t\tpass: ( unit: $hyoo_crus_pass )=> Res,\n\t\t\tgift: ( unit: $hyoo_crus_gift )=> Res,\n\t\t\tgist: ( unit: $hyoo_crus_gist )=> Res,\n\t\t} ) {\n\t\t\tconst way = this.kind()\n\t\t\tconst Unit = {\n\t\t\t\tpass: $hyoo_crus_pass,\n\t\t\t\tgift: $hyoo_crus_gift,\n\t\t\t\tgist: $hyoo_crus_gist,\n\t\t\t}[ way ]\n\t\t\tif( this instanceof Unit ) return ways[ way ]( this as any )\n\t\t\tconst unit = new Unit( this.buffer, this.byteOffset, this.byteLength ) as any\n\t\t\treturn ways[ way ]( unit )\n\t\t}\n\t\t\n\t\tnarrow() {\n\t\t\treturn this.choose< $hyoo_crus_pass | $hyoo_crus_gift | $hyoo_crus_gist >({\n\t\t\t\tgist: unit => unit,\n\t\t\t\tpass: unit => unit,\n\t\t\t\tgift: unit => unit,\n\t\t\t})\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn this.narrow().key()\n\t\t}\n\t\t\n\t\tid6( offset: number, next?: string ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\tconst str = $mol_base64_ae_encode( new Uint8Array( this.buffer, offset, 6 ) )\n\t\t\t\treturn str === 'AAAAAAAA' ? '' : str\n\t\t\t} else {\n\t\t\t\tthis.asArray().set( $mol_base64_ae_decode( next || 'AAAAAAAA' ), offset )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\t\t\n\t\tid12( offset: number, next?: $hyoo_crus_ref ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $hyoo_crus_ref_decode( new Uint8Array( this.buffer, offset, 12 ) )\n\t\t\t} else {\n\t\t\t\tthis.asArray().set( $hyoo_crus_ref_encode( next ), offset )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\t\t\n\t\t_peer!: string\n\t\tpeer( next?: string ) {\n\t\t\tif( next === undefined && this._peer !== undefined ) return this._peer\n\t\t\telse return this._peer = this.id6( 2, next )\n\t\t}\n\t\t\n\t\tsalt() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 2, 16 )\n\t\t}\n\t\t\n\t\tsens( next?: ArrayLike< number > ) {\n\t\t\tconst prev = new Uint8Array( this.buffer, this.byteOffset, 64 )\n\t\t\tif( next ) prev.set( next )\n\t\t\treturn prev\n\t\t}\n\t\t\n\t\tmix( mixin: Uint8Array ) {\n\t\t\tfor( let i = 0; i < mixin.length; ++i ) {\n\t\t\t\tthis.uint8( 14 + i, this.uint8( 14 + i ) ^ mixin[i] )\n\t\t\t}\n\t\t}\n\t\t\n\t\tsign( next?: ArrayLike< number > ) {\n\t\t\tconst prev = new Uint8Array( this.buffer, this.byteOffset + 64, 64 )\n\t\t\tif( next ) prev.set( next )\n\t\t\treturn prev\n\t\t}\n\t\t\n\t\tsigned() {\n\t\t\treturn this.sign().some( b => b )\n\t\t}\n\t\t\n\t\t_land = null as null | $hyoo_crus_land\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_pass extends $hyoo_crus_unit {\n\t\t\n\t\twork() {\n\t\t\treturn this.uint8( 1 )\n\t\t}\n\t\t\n\t\t_lord!: $hyoo_crus_ref\n\t\tlord( next?: $hyoo_crus_ref ) {\n\t\t\tif( next === undefined && this._lord !== undefined ) return this._lord\n\t\t\telse return this._lord = this.id12( 2, next )\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn this.id6( 2 )\n\t\t}\n\t\t\n\t\tauth( next?: ArrayLike< number > ) {\n\t\t\tconst prev = new Uint8Array( this.buffer, this.byteOffset, 64 )\n\t\t\tif( next ) prev.set( next )\n\t\t\treturn prev\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.peer(),\n\t\t\t\t' 🔑 ',\n\t\t\t\t$mol_dev_format_span( {}, this.lord().description ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_gift extends $hyoo_crus_unit {\n\t\t\n\t\trank( next?: $hyoo_crus_rank ) {\n\t\t\t\n\t\t\tif( next !== undefined ) this.uint8( 0, $hyoo_crus_unit_kind.gift )\n\t\t\tnext = this.uint8( 1, next )\n\t\t\t\n\t\t\tif( next < $hyoo_crus_rank.nil || next > $hyoo_crus_rank.law ) {\n\t\t\t\t$mol_fail( new RangeError( `Wrong rank ${ next }` ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\ttime( next?: number ) {\n\t\t\treturn this.uint48( 8, next )\n\t\t}\n\t\t\n\t\tfree() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 26, 6 )\n\t\t}\n\t\t\n\t\t_dest!: $hyoo_crus_ref\n\t\tdest( next?: $hyoo_crus_ref ) {\n\t\t\tif( next === undefined && this._dest !== undefined ) return this._dest\n\t\t\telse return this._dest = this.id12( 14, next )\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn this.dest().description!\n\t\t}\n\t\t\n\t\tbill() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 32, 32 )\n\t\t}\n\t\t\n\t\tstatic compare(\n\t\t\tleft: $hyoo_crus_gift,\n\t\t\tright: $hyoo_crus_gift,\n\t\t) {\n\t\t\treturn ( right.time() - left.time() ) || ( right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0 )\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.peer(),\n\t\t\t\t' 🏅 ',\n\t\t\t\t$mol_dev_format_span( {}, this.dest().description ),\n\t\t\t\tthis.bill().some( v => v ) ? ' 🔐' : ' 📢',\n\t\t\t\t$hyoo_crus_rank[ this.rank() ],\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_shade( new $mol_time_moment( this.time() ).toString( 'YYYY-MM-DD hh:mm:ss.sss' ) ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport enum $mol_rest_code {\n\t\n\t\tContinue = 100,\n\t\tSwitching_Protocols = 101,\n\t\tProcessing = 102,\n\t\t\n\t\tOK = 200,\n\t\tCreated = 201,\n\t\tAccepted = 202,\n\t\tNon_Authoritative_Information = 203,\n\t\tNo_Content = 204,\n\t\tReset_Content = 205,\n\t\tPartial_Content = 206,\n\t\tMulti_Status = 207,\n\t\tAlready_Reported = 208,\n\t\tIM_Used = 226,\n\t\t\n\t\tMultiple_Choices = 300,\n\t\tMoved_Permanently = 301,\n\t\tFound = 302,\n\t\tSee_Other = 303,\n\t\tNot_Modified = 304,\n\t\tUse_Proxy = 305,\n\t\tTemporary_Redirect = 307,\n\t\t\n\t\tBad_Request = 400,\n\t\tUnauthorized = 401,\n\t\tPayment_Required = 402,\n\t\tForbidden = 403,\n\t\tNot_Found = 404,\n\t\tMethod_Not_Allowed = 405,\n\t\tNot_Acceptable = 406,\n\t\tProxy_Authentication_Required = 407,\n\t\tRequest_Timeout = 408,\n\t\tConflict = 409,\n\t\tGone = 410,\n\t\tLength_Required = 411,\n\t\tPrecondition_Failed = 412,\n\t\tRequest_Entity_Too_Large = 413,\n\t\tRequest_URI_Too_Long = 414,\n\t\tUnsupported_Media_Type = 415,\n\t\tRequested_Range_Not_Satisfiable = 416,\n\t\tExpectation_Failed = 417,\n\t\tTeapot = 418,\n\t\tUnprocessable_Entity = 422,\n\t\tLocked = 423,\n\t\tFailed_Dependency = 424,\n\t\tUpgrade_Required = 426,\n\t\tPrecondition_Required = 428,\n\t\tToo_Many_Requests = 429,\n\t\tRequest_Header_Fields_Too_Large = 431,\n\t\tUnavailable_For_Legal_Reasons = 451,\n\t\t\n\t\tInternal_Server_Error = 500,\n\t\tNot_Implemented = 501,\n\t\tBad_Gateway = 502,\n\t\tService_Unavailable = 503,\n\t\tGateway_Timeout = 504,\n\t\tHTTP_Version_Not_Supported = 505,\n\t\tInsufficient_Storage = 507,\n\t\tLoop_Detected = 508,\n\t\tNot_Extended = 510,\n\t\tNetwork_Authentication_Required = 511,\n\t\tNetwork_Read_Timeout_Error = 598,\n\t\tNetwork_Connect_Timeout_Error = 599,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $mol_rest_port_mime_hi =\n\t\t| 'text' | 'application' | 'font'\n\t\t| 'audio' | 'video' | 'image' | 'model'\n\t\n\texport type $mol_rest_port_mime = `${ $mol_rest_port_mime_hi }/${ string }`\n\t\n\texport class $mol_rest_port extends $mol_object {\n\t\t\n\t\tsend_code( code: $mol_rest_code ) {}\n\t\tsend_type( mime: $mol_rest_port_mime ) {}\n\t\t\n\t\t@ $mol_action\n\t\tsend_data( data: null | string | Uint8Array | Element | object ) {\n\t\t\tif( data === null ) return this.send_nil()\n\t\t\tif( typeof data === 'string' ) return this.send_text( data )\n\t\t\tif( data instanceof Uint8Array ) return this.send_bin( data )\n\t\t\tif( data instanceof $mol_dom_context.Element ) return this.send_dom( data )\n\t\t\treturn this.send_json( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tthis.send_code( 204 )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'application/octet-stream' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'text/plain' )\n\t\t\tthis.send_bin( $mol_charset_encode( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_json( data: object ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'application/json' )\n\t\t\tthis.send_text( JSON.stringify( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_dom( data: Element ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'text/html' )\n\t\t\tthis.send_text( $mol_dom_serialize( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action< any, any >\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.make( config ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws extends $mol_rest_port {}\n\t\n}\n","namespace $ {\n\t\n\texport enum $mol_websocket_frame_op {\n\t\t\n\t\tcon = 0,\n\t\ttxt = 1,\n\t\tbin = 2,\n\t\t\n\t\tstop = 8,\n\t\tping = 9,\n\t\tpong = 10,\n\t\t\n\t}\n\t\n\t/**\n\t * WebSocket frame header.\n\t * Payload >= 2^32 isn't supported\n\t */\n\texport class $mol_websocket_frame extends $mol_buffer {\n\t\t\n\t\tkind( next?: {\n\t\t\top: keyof typeof $mol_websocket_frame_op\n\t\t\tfin: boolean,\n\t\t} ) {\n\t\t\tif( next ) {\n\t\t\t\t\n\t\t\t\tthis.setUint8( 0, Number( next.fin ) << 7 | $mol_websocket_frame_op[ next.op ] )\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst state = this.getUint8( 0 )\n\t\t\t\tconst fin = state >> 7\n\t\t\t\t\n\t\t\t\tconst op = $mol_websocket_frame_op[ state & 0b1111 ] as keyof typeof $mol_websocket_frame_op\n\t\t\t\tif( op === undefined ) $mol_fail( new Error( `Wrong op (${ state.toString(2) })` ) )\n\t\t\t\t\n\t\t\t\treturn { op, fin }\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tdata( next?: { size: number, mask: boolean } ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\t\n\t\t\t\tconst state = this.getUint8( 1 )\n\t\t\t\tconst mask = state >> 7\n\t\t\t\t\n\t\t\t\tlet size = state & 0b0111_1111\n\t\t\t\tif( size === 126 ) size = this.getUint16( 2 )\n\t\t\t\telse if( size === 127 ) size = this.getUint32( 6 )\n\t\t\t\n\t\t\t\treturn { size, mask }\n\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( next.size >= 2**16 ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, 127 | Number( next.mask ) << 7 )\n\t\t\t\t\tthis.setUint32( 6, next.size )\n\t\t\t\t\t\n\t\t\t\t} else if( next.size >= 126 ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, 126 | Number( next.mask ) << 7 )\n\t\t\t\t\tthis.setUint16( 2, next.size )\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, next.size | Number( next.mask ) << 7 )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tsize() {\n\t\t\tconst short = this.getUint8( 1 ) & 0b0111_1111\n\t\t\tconst mask = this.getUint8( 1 ) >> 7\n\t\t\treturn ( short === 127 ? 10 : short === 126 ? 4 : 2 ) + ( mask ? 4 : 0 )\n\t\t}\n\t\t\n\t\tmask() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + this.size() - 4, 4 )\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst { op, fin } = this.kind()\n\t\t\tconst { size, mask } = this.data()\n\t\t\treturn `${op}${ fin ? '!' : '+' }${ size }${ mask ? '@' : '#' }`\n\t\t}\n\t\t\n\t\tstatic make(\n\t\t\top: keyof typeof $mol_websocket_frame_op,\n\t\t\tsize = 0,\n\t\t\tmask = false,\n\t\t\tfin = true,\n\t\t) {\n\t\t\t\n\t\t\tconst head = ( size >= 2**16 ? 10 : size >= 126 ? 4 : 2 ) + ( mask ? 4 : 0 )\n\t\t\tconst frame = $mol_websocket_frame.from( head ) \n\t\t\t\n\t\t\tframe.kind({ op, fin })\n\t\t\tframe.data({ size, mask })\n\t\t\t\n\t\t\treturn frame\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws_std extends $mol_rest_port_ws {\n\t\t\n\t\tsocket!: WebSocket\n\t\t\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tthis.socket.send( '' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array ) {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tthis.socket.send( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tconst bin = $mol_charset_encode( data )\n\t\t\tthis.socket.send( bin )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws_node extends $mol_rest_port_ws {\n\t\t\n\t\tsocket!: InstanceType< $node['stream']['Duplex'] >\n\t\t\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'pong', 0 ).asArray() )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array ) {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'bin', data.byteLength ).asArray() )\n\t\t\tthis.socket.write( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tconst bin = $mol_charset_encode( data )\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'txt', bin.byteLength ).asArray() )\n\t\t\tthis.socket.write( bin )\n\t\t}\n\t\t\n\t}\n\t\n\t$.$mol_rest_port_ws = $mol_rest_port_ws_node\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_yard extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\trealm() {\n\t\t\treturn null! as $hyoo_crus_realm\n\t\t}\n\t\t\n\t\tpersisted = new WeakSet< $hyoo_crus_unit >()\n\t\tneonatals = new $mol_wire_set< $hyoo_crus_ref >()\n\t\t\n\t\tload( land: $hyoo_crus_land ) {\n\t\t\treturn [] as readonly $hyoo_crus_unit[]\n\t\t}\n\t\t\n\t\tasync save( land: $hyoo_crus_land, units: readonly $hyoo_crus_unit[] ) {}\n\t\t\n\t\tstatic masters = [] as string[]\n\t\t\n\t\t@ $mol_mem\n\t\tmaster_cursor( next = 0 ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmaster_current() {\n\t\t\treturn this.$.$hyoo_crus_yard.masters[ this.master_cursor() ]\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tmaster_next() {\n\t\t\tthis.master_cursor( ( this.master_cursor() + 1 ) % this.$.$hyoo_crus_yard.masters.length )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\treconnects( reset?: null ): number {\n\t\t\treturn ( $mol_wire_probe( ()=> this.reconnects() ) ?? 0 ) + 1\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmaster() {\n\t\t\t\n\t\t\tthis.reconnects()\n\t\t\t\n\t\t\tconst link = this.master_current()\n\t\t\tif( !link ) return null\n\t\t\t\n\t\t\tconst socket = new $mol_dom_context.WebSocket( link.replace( /^http/, 'ws' ) )\n\t\t\tsocket.binaryType = 'arraybuffer'\n\t\t\tconst port = $mol_rest_port_ws_std.make({ socket })\n\t\t\t\n\t\t\tsocket.onmessage = async( event )=> {\n\t\t\t\t\n\t\t\t\tif( event.data instanceof ArrayBuffer ) {\n\t\t\t\t\tif( !event.data.byteLength ) return\n\t\t\t\t\tawait $mol_wire_async( this ).port_income( port, new Uint8Array( event.data ) )\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tthis.$.$mol_log3_fail({\t\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Wrong data',\n\t\t\t\t\t\tdata: event.data\n\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}\n\t\t\t\n\t\t\tlet interval: any\n\n\t\t\tsocket.onclose = ()=> {\n\t\t\t\tclearInterval( interval )\n\t\t\t\tsetTimeout( ()=> this.reconnects( null ), 1000 )\n\t\t\t}\n\t\t\t\n\t\t\tObject.assign( socket, {\n\t\t\t\tdestructor: ()=> {\n\t\t\t\t\tsocket.onclose = ()=> {}\n\t\t\t\t\tclearInterval( interval )\n\t\t\t\t\tsocket.close()\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\treturn new Promise< $mol_rest_port >( ( done, fail )=> {\n\t\t\t\t\n\t\t\t\tsocket.onopen = ()=> {\n\t\t\t\t\t\n\t\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Connected',\n\t\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\t\tserver: link,\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t\tinterval = setInterval( ()=> socket.send( new Uint8Array ), 30000 )\n\t\t\t\t\t\n\t\t\t\t\tdone( port )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tsocket.onerror = ()=> {\n\t\t\t\t\t\n\t\t\t\t\tsocket.onclose = event => {\n\t\t\t\t\t\tfail( new Error( `Master (${link}) is unavailable (${ event.code })` ) )\n\t\t\t\t\t\tclearInterval( interval )\n\t\t\t\t\t\tinterval = setTimeout( ()=> {\n\t\t\t\t\t\t\tthis.master_next()\n\t\t\t\t\t\t\tthis.reconnects( null )\n\t\t\t\t\t\t}, 1000 )\n\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} ) as any as $mol_rest_port\n\t\t\t\n\t\t}\n\t\t\n\t\tslaves = new $mol_wire_set< $mol_rest_port >()\n\t\t\n\t\t@ $mol_mem\n\t\tsync() {\n\t\t\tfor( const port of this.ports() ) {\n\t\t\t\t\n\t\t\t\tfor( const land of this.neonatals ) {\n\t\t\t\t\tthis.sync_port_land([ port, land ])\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const land of this.port_lands( port ) ) {\n\t\t\t\t\tthis.sync_port_land([ port, land ])\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\tthis.neonatals.clear()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tports() {\n\t\t\ttry {\n\t\t\t\treturn [ this.master(), ... this.slaves ].filter( $mol_guard_defined )\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn [ ... this.slaves ]\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tport_lands( port: $mol_rest_port ) {\n\t\t\treturn new $mol_wire_set< $hyoo_crus_ref >()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tport_income( port: $mol_rest_port, msg: Uint8Array ) {\n\t\t\t\n\t\t\tconst pack = $mol_wire_sync( $hyoo_crus_pack ).from( msg ) as $hyoo_crus_pack\n\t\t\tconst parts = $mol_wire_sync( pack ).parts()\n\t\t\t\n\t\t\t$mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Gain Pack',\n\t\t\t\tport: $mol_key( port ),\n\t\t\t\tlands: parts.lands,\n\t\t\t\trocks: parts.rocks.length,\n\t\t\t})\n\t\t\t\n\t\t\tconst lands = this.port_lands( port )\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( parts.lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\t\n\t\t\t\tlands.add( land )\n\t\t\t\t\n\t\t\t\tconst faces = parts.lands[ land ].faces\n\t\t\t\tlet port_faces = this.face_port_land([ port, land ])\n\t\t\t\t\n\t\t\t\tif( port_faces ) port_faces.sync( faces )\n\t\t\t\telse this.face_port_land( [ port, land ], port_faces = faces )\n\t\t\t\n\t\t\t\tconst units = parts.lands[ land ].units\n\t\t\t\tfor( let unit of units ) {\n\t\t\t\t\tconst unit2 = unit.narrow()\n\t\t\t\t\tif( unit2 instanceof $hyoo_crus_pass ) continue\n\t\t\t\t\tport_faces.time_max( unit2.peer(), unit2.time() )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.realm().apply_pack( pack )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsync_land( land: $hyoo_crus_ref ) {\n\t\t\tfor( const port of this.ports() ) {\n\t\t\t\tthis.port_lands( port ).add( land )\n\t\t\t}\n\t\t\tthis.sync()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsync_port_land( [ port, land ]: [ $mol_rest_port, $hyoo_crus_ref ] ) {\n\t\t\t\n\t\t\ttry {\n\t\t\t\n\t\t\t\tthis.init_port_land([ port, land ])\n\t\t\t\t\n\t\t\t\tconst faces = this.face_port_land([ port, land ])\n\t\t\t\tif( !faces ) return\n\t\t\t\t\n\t\t\t\tconst Land = this.realm().Land( land )\n\t\t\t\tLand.saving()\n\t\t\t\t\n\t\t\t\tconst parts = Land.delta_parts( faces )\n\t\t\t\tif( !parts ) return\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Send Unit',\n\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\tlands: parts.lands,\n\t\t\t\t\trocks: parts.rocks.length,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tport.send_bin( $hyoo_crus_pack.make( parts ).asArray() )\n\t\t\t\tfaces.sync( Land.faces )\n\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tinit_port_land( [ port, land ]: [ $mol_rest_port, $hyoo_crus_ref ] ) {\n\t\t\t// $mol_wire_solid()\n\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Send Face',\n\t\t\t\tport: $mol_key( port ),\n\t\t\t\tland: land,\n\t\t\t\tfaces: this.realm().Land( land ).faces,\n\t\t\t})\n\t\t\tport.send_bin( this.realm().Land( land ).faces_pack().asArray() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tface_port_land(\n\t\t\t[ port, land ]: [ $mol_rest_port, $hyoo_crus_ref ],\n\t\t\tnext = null as null | $hyoo_crus_face_map\n\t\t) {\n\t\t\t// $mol_wire_solid()\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $hyoo_crus_yard_node extends $.$hyoo_crus_yard {\n\t\t\n\t\t@ $mol_mem\n\t\troot() {\n\t\t\treturn $mol_file.relative( '.crus' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tland_file( land: $hyoo_crus_land ) {\n\t\t\tconst id = land.ref().description!\n\t\t\tconst dir = this.root().resolve( `unit/${ id.slice( 0, 2 ) }` )\n\t\t\tdir.exists( true )\n\t\t\treturn dir.resolve( `${ id }.crus` )\n\t\t}\n\t\t\n\t\tland_offsets( land: $hyoo_crus_land ) {\n\t\t\treturn new Map< string, number >()\n\t\t}\n\t\t\n\t\tfile_sizes = new Map< number, number >()\n\t\t\n\t\t@ $mol_mem_key\n\t\tland_descr( land: $hyoo_crus_land ) {\n\t\t\treturn this.land_file( land ).open( 'create', 'read_write' )\n\t\t}\n\t\t\n\t\tasync save( land: $hyoo_crus_land, units: readonly $hyoo_crus_unit[] ) {\n\t\t\t\n\t\t\tconst descr = this.land_descr( land )\n\t\t\tconst offsets = this.land_offsets( land )\n\t\t\tconst append = [] as $hyoo_crus_unit[]\n\t\t\t\n\t\t\tfor( const unit of units ) {\n\t\t\t\tconst off = offsets.get( unit.key() )\n\t\t\t\tif( off === undefined ) {\n\t\t\t\t\tappend.push( unit )\n\t\t\t\t} else {\n\t\t\t\t\t$node.fs.write( descr, unit, 0, unit.byteLength, off, ()=> {} )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( !append.length ) return\n\t\t\t\n\t\t\tlet size = this.file_sizes.get( descr ) ?? 0\n\t\t\tlet offset = size\n\t\t\tsize += append.length * $hyoo_crus_unit.size\n\t\t\t\n\t\t\t$node.fs.ftruncateSync( descr, size )\n\t\t\tthis.file_sizes.set( descr, size )\n\t\t\t\t\t\t\n\t\t\tfor( const unit of append ) {\n\t\t\t\t$node.fs.write( descr, unit, 0, unit.byteLength, offset, ()=> {} )\n\t\t\t\toffsets.set( unit.key(), offset )\n\t\t\t\toffset += unit.byteLength\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tload( land: $hyoo_crus_land ) {\n\t\t\t\n\t\t\tconst descr = this.land_descr( land )\n\t\t\t\n\t\t\tconst buf = $node.fs.readFileSync( descr )\n\t\t\tif( !buf.length ) return []\n\t\t\t\n\t\t\tthis.file_sizes.set( descr, buf.length )\n\t\t\tconst pack = $hyoo_crus_pack.from( buf )\n\t\t\tconst { lands, rocks } = pack.parts( land.ref() )\n\t\t\tconst units = lands[ land.ref() ]?.units ?? []\n\t\t\t\n\t\t\tconst offsets = this.land_offsets( land )\n\t\t\t\n\t\t\tfor( let i = 0; i < units.length; ++i ) {\n\t\t\t\toffsets.set( units[i].key(), i * $hyoo_crus_unit.size )\n\t\t\t}\n\t\t\t\n\t\t\treturn units\n\t\t}\n\t\t\n\t}\n\t$.$hyoo_crus_yard = $hyoo_crus_yard_node\n}\n","namespace $ {\n\t\n\texport enum $hyoo_crus_gist_tag {\n\t\t/** Itself value */\n\t\tterm = 0b00,\n\t\t/** Value in first sub node */\n\t\tsolo = 0b01,\n\t\t/** List of values */\n\t\tvals = 0b10,\n\t\t/** List of keys */\n\t\tkeys = 0b11,\n\t}\n\t\n\texport class $hyoo_crus_gist extends $hyoo_crus_unit {\n\t\t\n\t\t_vary = undefined as undefined | $hyoo_crus_vary_type\n\t\t_open = null as null | Uint8Array\n\t\t\n\t\thint(\n\t\t\ttip = 'null' as keyof typeof $hyoo_crus_vary_tip,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tthis.uint8( 0, ( $hyoo_crus_gist_tag[ tag ] << 1 )|( $hyoo_crus_vary_tip[ tip ] << 3 ) )\n\t\t}\n\t\t\n\t\ttag() {\n\t\t\treturn $hyoo_crus_gist_tag[ ( this.uint8( 0 ) >> 1 ) & 0b11 ] as keyof typeof $hyoo_crus_gist_tag\n\t\t}\n\t\t\n\t\ttip() {\n\t\t\treturn $hyoo_crus_vary_tip[ this.uint8( 0 ) >> 3 ] as keyof typeof $hyoo_crus_vary_tip\n\t\t}\n\t\t\n\t\tutf() {\n\t\t\treturn Boolean( this.uint8( 0 ) & 0b10000000 )\n\t\t}\n\t\t\n\t\tnil() {\n\t\t\treturn !this.uint16(0)\n\t\t}\n\t\t\n\t\tsize( next?: number ) {\n\t\t\treturn this.uint8( 1, next )\n\t\t}\n\t\t\n\t\ttime( next?: number ) {\n\t\t\treturn this.uint48( 8, next )\n\t\t}\n\t\t\n\t\t_self!: string\n\t\tself( next?: string ) {\n\t\t\tif( next === undefined && this._self !== undefined ) return this._self\n\t\t\telse return this._self = this.id6( 14, next )\n\t\t}\n\t\t\n\t\t_head!: string\n\t\thead( next?: string ) {\n\t\t\tif( next === undefined && this._head !== undefined ) return this._head\n\t\t\telse return this._head = this.id6( 20, next )\n\t\t}\n\t\t\n\t\tkey(): string {\n\t\t\treturn `${ this.head() }/${ this.self() }`\n\t\t}\n\t\t\n\t\t_lead!: string\n\t\tlead( next?: string ) {\n\t\t\tif( next === undefined && this._lead !== undefined ) return this._lead\n\t\t\telse return this._lead = this.id6( 26, next )\n\t\t}\n\t\t\n\t\thash(\n\t\t\tnext?: Uint8Array,\n\t\t\ttip = 'null' as keyof typeof $hyoo_crus_vary_tip,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tconst bin = new Uint8Array( this.buffer, this.byteOffset + 32, 20 )\n\t\t\tif( next !== undefined ) {\n\t\t\t\tthis.hint( tip, tag )\n\t\t\t\tthis.size( 255 )\n\t\t\t\tbin.set( next )\n\t\t\t}\n\t\t\tif( this.size() > 32 ) return bin\n\t\t\t$mol_fail( new Error( 'No stored hash' ) )\n\t\t}\n\t\t\n\t\tmeta() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 42, 12 )\n\t\t}\n\t\t\n\t\tdata(\n\t\t\tnext?: Uint8Array,\n\t\t\ttip = 'null' as keyof typeof $hyoo_crus_vary_tip,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tif( next === undefined ) {\n\t\t\t\tconst size = this.size()\n\t\t\t\tif( size > 32 ) $mol_fail( new Error( 'Too long data' ) )\n\t\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 32, size )\n\t\t\t} else {\n\t\t\t\tthis.hint( tip, tag )\n\t\t\t\tif( next.byteLength > 32 ) $mol_fail( new Error( 'Too long data' ) )\n\t\t\t\tthis.uint8( 1, next.byteLength )\n\t\t\t\tconst bin = new Uint8Array( this.buffer, this.byteOffset + 32, next.byteLength )\n\t\t\t\tbin.set( next )\n\t\t\t\tnew Uint8Array( this.buffer, this.byteOffset + 32 + next.length, 32 - next.length ).fill( 0 )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t}\n\t\t\n\t\tidea() {\n\t\t\tconst bin = new Uint8Array( this.buffer, this.byteOffset + 20, 44 )\n\t\t\tconst hash = $mol_crypto_hash( bin )\n\t\t\tconst buf = new $mol_buffer( hash.buffer )\n\t\t\treturn buf.uint48(0)\n\t\t}\n\t\t\n\t\t/** Compare gists on timeline ( right - left ) */\n\t\tstatic compare(\n\t\t\tleft: $hyoo_crus_gist,\n\t\t\tright: $hyoo_crus_gist,\n\t\t) {\n\t\t\treturn ( right.time() - left.time() ) || ( right.peer() > left.peer() ? 1 : right.peer() < left.peer() ? -1 : 0 )\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.peer(),\n\t\t\t\t' ',\n\t\t\t\tthis.lead() || 'AAAAAAAA',\n\t\t\t\t$mol_dev_format_shade( '\\\\' ),\n\t\t\t\t$mol_dev_format_accent( this.head() || 'AAAAAAAA' ),\n\t\t\t\t$mol_dev_format_shade( '/' ),\n\t\t\t\tthis.self() || 'AAAAAAAA',\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_shade( new $mol_time_moment( this.time() ).toString( 'YYYY-MM-DD hh:mm:ss.sss' ) ),\n\t\t\t\t' ',\n\t\t\t\t{\n\t\t\t\t\tterm: '💼',\n\t\t\t\t\tsolo: '1️⃣',\n\t\t\t\t\tvals: '🎹',\n\t\t\t\t\tkeys: '🔑',\n\t\t\t\t}[ this.tag() ],\n\t\t\t\tthis.tip(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_native( this._vary ) //??\n\t\t\t\t\t// ( this.size() > 32\n\t\t\t\t\t// \t? $mol_dev_format_shade( this.hash() )\n\t\t\t\t\t// \t: $mol_dev_format_native( $hyoo_crus_vary_decode({ tip: this.tip(), bin: this.data() }) )\n\t\t\t\t\t// ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Virtual Node that represents contained units as high-level data types. */\n\texport class $hyoo_crus_node extends $mol_object {\n\t\t\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.vals ] as keyof typeof $hyoo_crus_gist_tag\n\t\t\n\t\tland() {\n\t\t\treturn null as any as $hyoo_crus_land\n\t\t}\n\t\t\n\t\t/** Land local Node id */\n\t\thead() {\n\t\t\treturn ''\n\t\t}\n\t\t\n\t\trealm() {\n\t\t\treturn this.land()?.realm() ?? null\n\t\t}\n\t\t\n\t\tland_ref() {\n\t\t\treturn this.land()?.ref() ?? this.$.$hyoo_crus_auth.current().lord()\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tref() {\n\t\t\treturn $hyoo_crus_ref( this.land_ref().description + '_' + this.head() )\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.ref().description\n\t\t}\n\t\t\n\t\t/** Returns another representation of this node. */\n\t\t@ $mol_mem_key\n\t\tcast< Node extends typeof $hyoo_crus_node >( Node: Node ): InstanceType< Node > {\n\t\t\treturn this.land().Node( Node ).Item( this.head() )\n\t\t}\n\t\t\n\t\t/** Ordered inner alive Node. */\n\t\t@ $mol_mem_key\n\t\tnodes< Node extends typeof $hyoo_crus_node >( Node: Node | null ): readonly InstanceType< Node >[] {\n\t\t\tconst land = this.land()\n\t\t\tconst map = {\n\t\t\t\tterm: ()=> land.Node( Node || $hyoo_crus_atom_vary ),\n\t\t\t\tsolo: ()=> land.Node( Node || $hyoo_crus_atom_vary ),\n\t\t\t\tvals: ()=> land.Node( Node || $hyoo_crus_list_vary ),\n\t\t\t\tkeys: ()=> land.Node( Node || $hyoo_crus_dict ),\n\t\t\t}\n\t\t\treturn this.units().map( unit => map[ unit.tag() ]().Item( unit.self() ) ) as any\n\t\t}\n\t\t\n\t\t/** All ordered alive Units */\n\t\t@ $mol_mem\n\t\tunits() {\n\t\t\treturn this.land().gists_ordered( this.head() ).filter( unit => !unit.nil() )\n\t\t}\n\t\t\n\t\tfilled() {\n\t\t\treturn this.units().length > 0\n\t\t}\n\t\t\n\t\t/** Ability to make changes inside Land */\n\t\tcan_change( lord = this.land().auth().lord() ) {\n\t\t\treturn this.land().lord_rank( lord ) >= $hyoo_crus_rank.add\n\t\t}\n\t\t\n\t\t/** Time of last changed unit inside Node subtree */\n\t\t@ $mol_mem\n\t\tlast_change() {\n\t\t\t\n\t\t\tconst land = this.land()\n\t\t\tlet last = 0\n\t\t\t\n\t\t\tconst map = {\n\t\t\t\tterm: ()=> null,\n\t\t\t\tsolo: ()=> land.Node( $hyoo_crus_atom_vary ),\n\t\t\t\tvals: ()=> land.Node( $hyoo_crus_list_vary ),\n\t\t\t\tkeys: ()=> land.Node( $hyoo_crus_dict ),\n\t\t\t}\n\t\t\t\n\t\t\tconst visit = ( gist: $hyoo_crus_gist )=> {\n\t\t\t\tif( gist.time() > last ) last = gist.time()\n\t\t\t\tmap[ gist.tag() ]()?.Item( gist.self() ).units().forEach( visit )\n\t\t\t}\n\t\t\tfor( const gist of this.units() ) visit( gist )\n\t\t\t\n\t\t\treturn last ? new $mol_time_moment( last ) : null\n\t\t\t\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.head(),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_reconcile< Prev, Next >( {\n\t\tprev,\n\t\tfrom,\n\t\tto,\n\t\tnext,\n\t\tequal,\n\t\tdrop,\n\t\tinsert,\n\t\tupdate,\n\t}: {\n\t\tprev: readonly Prev[],\n\t\tfrom: number,\n\t\tto: number,\n\t\tnext: ArrayLike,\n\t\tequal: ( next: Next, prev: Prev )=> boolean,\n\t\tdrop: ( prev: Prev, lead: Prev | null )=> Prev | null,\n\t\tinsert: ( next: Next, lead: Prev | null )=> Prev,\n\t\tupdate?: ( next: Next, prev: Prev, lead: Prev | null )=> Prev,\n\t} ) {\n\t\t\n\t\tif( !update ) update = ( next, prev, lead )=> insert( next, drop( prev, lead ) )\n\t\t\n\t\tlet p = from\n\t\tlet n = 0\n\t\tlet lead = p ? prev[ p - 1 ] : null\n\t\t\n\t\tif( to > prev.length ) $mol_fail( new RangeError( `To(${ to }) greater then length(${ prev.length })` ) )\n\t\tif( from > to ) $mol_fail( new RangeError( `From(${ to }) greater then to(${ to })` ) )\n\t\n\t\twhile( p < to || n < next.length ) {\n\t\t\t\n\t\t\tif( p < to && n < next.length && equal( next[n], prev[p] ) ) {\n\t\t\t\t\n\t\t\t\tlead = prev[p]\n\t\t\t\t++ p\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t} else if( next.length - n > to - p ) {\n\t\t\t\t\n\t\t\t\tlead = insert( next[n], lead )\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t} else if( next.length - n < to - p ) {\n\t\t\t\t\n\t\t\t\tlead = drop( prev[p], lead )\n\t\t\t\t++ p\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tlead = update( next[n], prev[p], lead )\n\t\t\t\t++ p\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_realm extends $mol_object {\n\t\t\n\t\tlands = new $mol_wire_dict< $hyoo_crus_ref, $hyoo_crus_land >()\n\t\t\n\t\t@ $mol_mem\n\t\tyard() {\n\t\t\treturn this.$.$hyoo_crus_yard.make({\n\t\t\t\trealm: $mol_const( this ),\n\t\t\t})\n\t\t}\n\t\t\n\t\thome() {\n\t\t\treturn this.Land( this.$.$hyoo_crus_auth.current().lord() ).home()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tking_grab( preset = $hyoo_crus_rank_public ) {\n\t\t\t\n\t\t\tconst king = this.$.$hyoo_crus_auth.grab()\n\t\t\tconst colony = ( $mol_wire_sync( $hyoo_crus_land ) as typeof $hyoo_crus_land ).make({})\n\t\t\tcolony.auth = $mol_const( king )\n\t\t\t\n\t\t\tif( ( preset[''] ?? $hyoo_crus_rank.nil ) === $hyoo_crus_rank.nil ) {\n\t\t\t\tcolony.encrypted( true )\n\t\t\t}\n\t\t\t\n\t\t\tconst self = this.$.$hyoo_crus_auth.current()\n\t\t\tcolony.give( self, $hyoo_crus_rank.law )\n\t\t\t\n\t\t\tfor( const key in preset ) colony.give( key ? $hyoo_crus_auth.from( key ) : null, preset[ key ] )\n\t\t\t\n\t\t\tthis.Land( colony.ref() ).apply_unit_trust( colony.delta_unit() )\n\t\t\t\n\t\t\treturn king\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tland_grab( preset = $hyoo_crus_rank_public ) {\n\t\t\treturn this.Land( this.king_grab( preset ).lord() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tLand( ref: $hyoo_crus_ref ): $hyoo_crus_land {\n\t\t\t\n\t\t\tlet land = this.lands.get( ref )\n\t\t\tif( land ) return land\n\t\t\t\n\t\t\tland = $hyoo_crus_land.make({\n\t\t\t\trealm: $mol_const( this ),\n\t\t\t\tref: $mol_const( ref ),\n\t\t\t})\n\t\t\t\n\t\t\tthis.lands.set( ref, land )\n\t\t\treturn land\n\t\t\t\n\t\t}\n\t\t\n\t\tNode< Node extends typeof $hyoo_crus_node > ( ref: $hyoo_crus_ref, Node: Node ) {\n\t\t\tconst land = this.Land( $hyoo_crus_ref_land( ref ) )\n\t\t\treturn land.Node( Node ).Item( $hyoo_crus_ref_head( ref ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tapply_pack( pack: $hyoo_crus_pack ) {\n\t\t\t\n\t\t\tconst { lands, rocks } = pack.parts()\n\t\t\t\n\t\t\tfor( const land of Reflect.ownKeys( lands ) as $hyoo_crus_ref[] ) {\n\t\t\t\t\n\t\t\t\tconst errors = this.Land( land ).apply_unit( lands[ land ].units ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tfor( const error of errors ) this.$.$mol_log3_warn({\n\t\t\t\t\tplace: `${this}.apply_pack()`,\n\t\t\t\t\tmessage: error,\n\t\t\t\t\thint: 'Send it to developer',\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const [ hash, rock ] of rocks ) {\n\t\t\t\tif( !rock ) continue\n\t\t\t\tthis.$.$hyoo_crus_mine.save( rock )\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t// @ $mol_mem_key\n\t\t// key_public( lord: bigint ) {\n\t\t// \tconst key = this.Land( lord ).Area( 0 ).pass.get( Number( lord >> 16n ) )?.auth()\n\t\t// \treturn key ? $mol_crypto_key_public.from( key ) : null\n\t\t// }\n\t\t\n\t\t// @ $mol_mem_key\n\t\t// secret_mutual( dest: bigint ) {\n\t\t\t\n\t\t// \tconst key = this.key_public( dest )\n\t\t// \tif( !key ) return null\n\t\t\t\n\t\t// \treturn $mol_wire_sync( $mol_crypto_secret ).derive(\n\t\t// \t\tthis.$.$hyoo_crus_auth.current().toString(),\n\t\t// \t\tkey.toString(),\n\t\t// \t)\n\t\t\t\n\t\t// }\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Reactive convergent list. */\n\texport class $hyoo_crus_list_vary extends $hyoo_crus_node {\n\t\t\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.vals ] as keyof typeof $hyoo_crus_gist_tag\n\t\t\n\t\t/** All Vary in the list. */\n\t\t@ $mol_mem\n\t\titems_vary(\n\t\t\tnext?: readonly $hyoo_crus_vary_type[],\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t): readonly $hyoo_crus_vary_type[] {\n\t\t\t\n\t\t\tconst units = this.units()\n\t\t\tif( next === undefined ) return units.map( unit => this.land().gist_decode( unit ) )\n\t\t\t\n\t\t\tthis.splice( next, 0, units.length, tag )\n\t\t\treturn this.items_vary()\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Replace sublist by new one with reconcilation. */\n\t\tsplice(\n\t\t\tnext: readonly $hyoo_crus_vary_type[],\n\t\t\tfrom = this.units().length,\n\t\t\tto = from,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tconst land = this.land()\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: this.units(),\n\t\t\t\tfrom,\n\t\t\t\tto,\n\t\t\t\tnext,\n\t\t\t\tequal: ( next, prev )=> $mol_compare_deep( this.land().gist_decode( prev ), next ),\n\t\t\t\tdrop: ( prev, lead )=> this.land().post( lead?.self() ?? '', prev.head(), prev.self(), null ),\n\t\t\t\tinsert: ( next, lead )=> this.land().post( lead?.self() ?? '', this.head(), land.self_make( $hyoo_crus_area_of( this.head() ) ), next, tag ),\n\t\t\t\tupdate: ( next, prev, lead )=> this.land().post( lead?.self() ?? '', prev.head(), prev.self(), next, prev.tag() ),\n\t\t\t})\n\t\t}\n\t\t\n\t\t/** Unit by Vary. */\n\t\tfind( vary: $hyoo_crus_vary_type ) {\n\t\t\tfor( const unit of this.units() ) {\n\t\t\t\tif( $mol_compare_deep( this.land().gist_decode( unit ), vary ) ) return unit\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t/** Existance of Vary in the list. */\n\t\thas(\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\tnext?: boolean,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tif( next === undefined ) return Boolean( this.find( vary ) )\n\t\t\tif( next ) this.add( vary, tag )\n\t\t\telse this.cut( vary )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t/** Add Vary a the beginnig if it doesn't exists. */\n\t\tadd(\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tif( this.has( vary ) ) return\n\t\t\tthis.land().post( '', this.head(), '', vary, tag )\n\t\t}\n\t\t\n\t\t/** Removes all Vary presence. */\n\t\tcut( vary: $hyoo_crus_vary_type ) {\n\t\t\t\n\t\t\tconst units = [ ... this.units() ]\n\t\t\tfor( let i = 0; i < units.length; ++ i ) {\n\t\t\t\t\n\t\t\t\tif( ! $mol_compare_deep( this.land().gist_decode( units[i] ), vary ) ) continue\n\t\t\t\t\n\t\t\t\tthis.land().post(\n\t\t\t\t\tunits[i-1]?.self() ?? 0,\n\t\t\t\t\tunits[i].head(),\n\t\t\t\t\tunits[i].self(),\n\t\t\t\t\tnull,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tunits.splice( i, 1 )\n\t\t\t\t-- i\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Moves item from one Seat to another. */\n\t\tmove( from: number, to: number ) {\n\t\t\tthis.land().gist_move( this.units()[ from ], this.head(), to )\n\t\t}\n\t\t\n\t\t/** Remove item by Seat. */\n\t\twipe( seat: number ) {\n\t\t\tthis.land().gist_wipe( this.units()[ seat ] )\n\t\t}\n\t\t\n\t\t/** Add vary at the end and use maked Self as Node Head. */\n\t\tnode_make< Node extends typeof $hyoo_crus_node >(\n\t\t\tNode: Node,\n\t\t\tvary: $hyoo_crus_vary_type,\n\t\t\ttag = 'term' as keyof typeof $hyoo_crus_gist_tag,\n\t\t) {\n\t\t\tthis.splice( [ vary ], undefined, undefined, tag )\n\t\t\treturn this.land().Node( Node ).Item( this.units().at(-1)!.self() )\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.items_vary() ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n\texport function $hyoo_crus_list<\n\t\tParse extends $mol_data_value\n\t>( parse: Parse ) {\n\n\t\tabstract class Narrow extends $hyoo_crus_list_vary {\n\n\t\t\tstatic parse = parse;\n\n\t\t\t@ $mol_mem\n\t\t\titems( next?: readonly ReturnType< Parse >[] ): readonly ReturnType< Parse >[] {\n\t\t\t\treturn this.items_vary( next?.map( parse ) ).map( parse )\n\t\t\t}\n\n\t\t}\n\n\t\treturn Narrow\n\t}\n\n\texport class $hyoo_crus_list_bin extends $hyoo_crus_list( $hyoo_crus_vary_cast_bin ) {}\n\texport class $hyoo_crus_list_bool extends $hyoo_crus_list( $hyoo_crus_vary_cast_bool ) {}\n\texport class $hyoo_crus_list_int extends $hyoo_crus_list( $hyoo_crus_vary_cast_int ) {}\n\texport class $hyoo_crus_list_real extends $hyoo_crus_list( $hyoo_crus_vary_cast_real ) {}\n\texport class $hyoo_crus_list_ref extends $hyoo_crus_list( $hyoo_crus_vary_cast_ref ) {}\n\t\n\texport class $hyoo_crus_list_str extends $hyoo_crus_list( $hyoo_crus_vary_cast_str ) {}\n\texport class $hyoo_crus_list_time extends $hyoo_crus_list( $hyoo_crus_vary_cast_time ) {}\n\texport class $hyoo_crus_list_dur extends $hyoo_crus_list( $hyoo_crus_vary_cast_dur ) {}\n\texport class $hyoo_crus_list_range extends $hyoo_crus_list( $hyoo_crus_vary_cast_range ) {}\n\texport class $hyoo_crus_list_json extends $hyoo_crus_list( $hyoo_crus_vary_cast_json ) {}\n\texport class $hyoo_crus_list_jsan extends $hyoo_crus_list( $hyoo_crus_vary_cast_jsan ) {}\n\texport class $hyoo_crus_list_dom extends $hyoo_crus_list( $hyoo_crus_vary_cast_dom ) {}\n\texport class $hyoo_crus_list_tree extends $hyoo_crus_list( $hyoo_crus_vary_cast_tree ) {}\n\n\texport class $hyoo_crus_list_ref_base extends $hyoo_crus_list_ref {\n\t}\n\t\t\n\texport function $hyoo_crus_list_ref_to< const Value extends any >( Value: Value ) {\n\t\t\t\n\t\ttype Vals = readonly $mol_type_result< $mol_type_result< Value > >[]\n\t\t\n\t\tclass Ref extends $hyoo_crus_list_ref_base {\n\t\t\t\n\t\t\tstatic Value = Value\n\t\t\t\n\t\t\tstatic toJSON() {\n\t\t\t\treturn '$hyoo_crus_list_to<' + ( Value as any )() + '>'\n\t\t\t}\n\t\t\t\n\t\t\t/** List of referenced Nodes */\n\t\t\t@ $mol_mem\n\t\t\tremote_list( next?: Vals ): Vals {\n\t\t\t\tconst realm = this.realm()\n\t\t\t\tconst Node = ( Value as any )()\n\t\t\t\treturn this.items_vary( next?.map( item => ( item as $hyoo_crus_node ).ref() ) )\n\t\t\t\t\t.map( $hyoo_crus_vary_cast_ref )\n\t\t\t\t\t.filter( $mol_guard_defined )\n\t\t\t\t\t.map( ref => realm!.Node( ref, Node ) )\n\t\t\t}\n\t\t\t\n\t\t\t/** Add new Node which placed in new Land */\n\t\t\t@ $mol_action\n\t\t\tremote_make( preset: $hyoo_crus_rank_preset ): Vals[number] {\n\t\t\t\tconst land = this.realm()!.land_grab( preset )\n\t\t\t\tthis.splice([ land.ref() ])\n\t\t\t\treturn land.Node( ( Value as any )() ).Item('')\n\t\t\t}\n\t\t\t\n\t\t\t/** Add new Node which placed in same Land */\n\t\t\t@ $mol_action\n\t\t\tlocal_make( idea?: number ): Vals[number] {\n\t\t\t\tconst area = $hyoo_crus_area_of( this.head() )\n\t\t\t\tconst self = this.land().self_make( area, idea )\n\t\t\t\tconst node = this.land().Node( ( Value as any )() ).Item( self )\n\t\t\t\tthis.splice([ node.ref() ])\n\t\t\t\treturn node\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn Ref\n\t}\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_dict extends (\n\t\t$hyoo_crus_list_vary\n\t) {\n\t\t\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.keys ] as keyof typeof $hyoo_crus_gist_tag\n\t\t\n\t\t/** List of Vary keys. */\n\t\t@ $mol_mem\n\t\tkeys(): readonly $hyoo_crus_vary_type[] {\n\t\t\treturn this.items_vary()\n\t\t}\n\t\t\n\t\t/** Inner Node by key. */\n\t\tdive< Node extends typeof $hyoo_crus_node >(\n\t\t\tkey: $hyoo_crus_vary_type,\n\t\t\tNode: Node,\n\t\t\tauto?: any,\n\t\t) {\n\t\t\tif( this.can_change() && auto !== undefined ) this.has( key, true, Node.tag )\n\t\t\tconst unit = this.find( key )\n\t\t\treturn unit ? this.land().Node( Node ).Item( unit.self() ) : null\n\t\t}\n\t\t\n\t\tstatic schema = {} as Record< string, typeof $hyoo_crus_node >\n\t\t\n\t\tstatic with<\n\t\t\tThis extends typeof $hyoo_crus_dict,\n\t\t\tconst Schema extends Record< string, { tag: keyof typeof $hyoo_crus_gist_tag, new(): {} } >\n\t\t>( this: This, schema: Schema ) {\n\t\t\t\n\t\t\tconst Entity = class Entity extends ( this as any ) {\n\t\t\t\t// static get schema() { return { ... this.schema, ... schema } }\n\t\t\t} as Omit< This, 'prototype' > & {\n\t\t\t\tnew( ...args: any[] ): $mol_type_override< InstanceType< This >, {\n\t\t\t\t\treadonly [ Key in keyof Schema ]: ( auto?: any )=> InstanceType< Schema[ Key ] > | null\n\t\t\t\t} >\n\t\t\t}\n\n\t\t\tfor( const Field in schema ) {\n\t\t\t\t\n\t\t\t\tObject.defineProperty( Entity.prototype, Field, {\n\t\t\t\t\tvalue: function( this: InstanceType< This >, auto?: any ) {\n\t\t\t\t\t\treturn this.dive( Field, schema[ Field ] as any, auto )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\t// $mol_wire_field( Entity.prototype, Field as any )\n\t\t\t}\n\t\t\t\n\t\t\treturn Object.assign( Entity, { schema: { ... this.schema, ... schema } } )\n\t\t\t\n\t\t}\n\t\t\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst keys = $mol_wire_probe( ()=> this.keys() )\n\t\t\tconst nodes = $mol_wire_probe( ()=> this.nodes(null) ) ?? []\n\t\t\t\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( keys?.map( ( key, index )=> new Pair( key, nodes[ index ] ) ) ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\tclass Pair {\n\t\tconstructor( readonly key: any, readonly val: any ) {\n\t\t}\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_tr( {} ,\n\t\t\t\t$mol_dev_format_td( {}, $mol_dev_format_auto(this.key) ),\n\t\t\t\t$mol_dev_format_td( {},': '),\n\t\t\t\t$mol_dev_format_td( {}, $mol_dev_format_auto(this.val) ),\n\t\t\t)\n\t\t}\n\t}\n\t\n\texport function $hyoo_crus_dict_to<\n\t\tValue extends { tag: keyof typeof $hyoo_crus_gist_tag, new(): {} }\n\t>( Value: Value ) {\n\t\t\n\t\treturn class Dict extends $hyoo_crus_dict {\n\t\t\t\n\t\t\tValue = Value\n\t\t\t\n\t\t\tkey( key: $hyoo_crus_vary_type, auto?: any ) {\n\t\t\t\tthis.has( key, auto === undefined ? undefined : true, Value.tag )\n\t\t\t\tconst unit = this.find( key )!\n\t\t\t\tif( !unit ) return null\n\t\t\t\treturn this.land().Node( this.Value as any as typeof $hyoo_crus_node ).Item( unit.self() ) as InstanceType< Value >\n\t\t\t}\n\t\t\t\n\t\t\tstatic toString() {\n\t\t\t\treturn '$hyoo_crus_dict_to(' + Value + ')'\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","\nnamespace $ {\n\n\texport class $hyoo_crus_atom_vary extends $hyoo_crus_node {\n\n\t\tstatic tag = $hyoo_crus_gist_tag[ $hyoo_crus_gist_tag.solo ] as keyof typeof $hyoo_crus_gist_tag;\n\t\t\n\t\tpick_unit() {\n\t\t\treturn this.units().at(0)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tvary( next?: $hyoo_crus_vary_type ): $hyoo_crus_vary_type {\n\t\t\t\n\t\t\tlet unit_prev = this.pick_unit()\n\t\t\tlet prev = unit_prev ? this.land().gist_decode( unit_prev ) : null\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( $mol_compare_deep( prev , next ) ) return next\n\t\t\t\n\t\t\tthis.land().post(\n\t\t\t\t'', \n\t\t\t\tunit_prev?.head() ?? this.head(),\n\t\t\t\tunit_prev?.self() ?? '',\n\t\t\t\tnext\n\t\t\t)\n\t\t\t\n\t\t\treturn this.vary()\n\t\t}\n\t\t\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' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.vary() ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\n\texport class $hyoo_crus_atom_enum_base extends $hyoo_crus_atom_vary {\n\n\t\tstatic options = [] as readonly $hyoo_crus_vary_type[]\n\t\t\n\t}\n\t\n\texport function $hyoo_crus_atom_enum<\n\t\tconst Options extends readonly $hyoo_crus_vary_type[]\n\t>( options: Options ) {\n\n\t\tabstract class Narrow extends $hyoo_crus_atom_enum_base {\n\n\t\t\tstatic options = options;\n\n\t\t\t@ $mol_mem\n\t\t\tval( next?: Options[number] ): Options[number] | null {\n\t\t\t\t\n\t\t\t\tvalidate: if( next !== undefined ) {\n\t\t\t\t\tfor( const option of options ) {\n\t\t\t\t\t\tif( $mol_compare_deep( option, next ) ) break validate\n\t\t\t\t\t}\n\t\t\t\t\t$mol_fail( new Error( `Wrong value (${ $hyoo_crus_vary_cast_str( next ) })` ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst val = this.vary( next )\n\t\t\t\t\n\t\t\t\tfor( const option of options ) {\n\t\t\t\t\tif( $mol_compare_deep( option, val ) ) return val\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t}\n\n\t\treturn Narrow\n\t}\n\n\texport function $hyoo_crus_atom<\n\t\tParse extends $mol_data_value\n\t>( parse: Parse ) {\n\n\t\tabstract class Narrow extends $hyoo_crus_atom_vary {\n\n\t\t\tstatic parse = parse;\n\n\t\t\tval( next?: ReturnType< Parse > ): ReturnType< Parse > | null {\n\t\t\t\t\n\t\t\t\tif( next !== undefined ) parse( next )\n\t\t\t\t\n\t\t\t\tconst res = this.vary( next )\n\t\t\t\ttry {\n\t\t\t\t\treturn parse( res )\n\t\t\t\t} catch {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\treturn Narrow\n\t}\n\t\n\texport class $hyoo_crus_atom_bin extends $hyoo_crus_atom( $hyoo_crus_vary_cast_bin ) {}\n\texport class $hyoo_crus_atom_bool extends $hyoo_crus_atom( $hyoo_crus_vary_cast_bool ) {}\n\texport class $hyoo_crus_atom_int extends $hyoo_crus_atom( $hyoo_crus_vary_cast_int ) {}\n\texport class $hyoo_crus_atom_real extends $hyoo_crus_atom( $hyoo_crus_vary_cast_real ) {}\n\texport class $hyoo_crus_atom_ref extends $hyoo_crus_atom( $hyoo_crus_vary_cast_ref ) {}\n\t\n\texport class $hyoo_crus_atom_str extends $hyoo_crus_atom( $hyoo_crus_vary_cast_str ) {}\n\texport class $hyoo_crus_atom_time extends $hyoo_crus_atom( $hyoo_crus_vary_cast_time ) {}\n\texport class $hyoo_crus_atom_dur extends $hyoo_crus_atom( $hyoo_crus_vary_cast_dur ) {}\n\texport class $hyoo_crus_atom_range extends $hyoo_crus_atom( $hyoo_crus_vary_cast_range ) {}\n\t\n\texport class $hyoo_crus_atom_json extends $hyoo_crus_atom( $hyoo_crus_vary_cast_json ) {}\n\texport class $hyoo_crus_atom_jsan extends $hyoo_crus_atom( $hyoo_crus_vary_cast_jsan ) {}\n\texport class $hyoo_crus_atom_dom extends $hyoo_crus_atom( $hyoo_crus_vary_cast_dom ) {}\n\texport class $hyoo_crus_atom_tree extends $hyoo_crus_atom( $hyoo_crus_vary_cast_tree ) {}\n\t\n\texport class $hyoo_crus_atom_ref_base extends $hyoo_crus_atom_ref {\n\t\t\n\t\tstatic Value = $hyoo_crus_dict;\n\t\t\n\t}\n\t\n\texport function $hyoo_crus_atom_ref_to< const Value extends any >( Value: Value ) {\n\n\t\tclass Ref extends $hyoo_crus_atom_ref_base {\n\n\t\t\tValue = Value;\n\n\t\t\tstatic toString() {\n\t\t\t\treturn '$hyoo_crus_atom_ref_to<' + ( Value as any )() + '>'\n\t\t\t}\n\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tyoke( preset?: $hyoo_crus_rank_preset ) {\n\t\t\t\t\n\t\t\t\tconst realm = this.realm()!\n\t\t\t\tconst Ref = this.cast( $hyoo_crus_atom_ref )\n\t\t\t\tconst ref = Ref.val()\n\t\t\t\tif( ref ) return realm.Land( ref )\n\t\t\t\tif( preset === undefined ) return null\n\t\t\t\t\n\t\t\t\tconst land = realm.land_grab( preset )\n\t\t\t\tRef.val( land.ref() )\n\t\t\t\t\n\t\t\t\treturn land\n\t\t\t}\n\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tremote(\n\t\t\t\tnext?: null | $mol_type_result< $mol_type_result< this['Value'] > >\n\t\t\t): null | $mol_type_result< $mol_type_result< this['Value'] > > {\n\t\t\t\t\n\t\t\t\tconst realm = this.realm()\n\t\t\t\t\n\t\t\t\tlet ref: $hyoo_crus_ref | null = ( next as $hyoo_crus_node )?.ref() ?? next\n\t\t\t\tref = $hyoo_crus_vary_cast_ref( this.vary( ref ) )\n\t\t\t\tif( !ref ) return null\n\t\t\t\t\n\t\t\t\treturn realm!.Node( ref, ( Value as any )() )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t// @ $mol_mem\n\t\t\tremote_ensure( preset?: $hyoo_crus_rank_preset ) {\n\t\t\t\tthis.yoke( preset )\n\t\t\t\treturn this.remote()\n\t\t\t}\n\n\t\t\t@ $mol_mem\n\t\t\tlocal_ensure() {\n\t\t\t\tif( this.remote() ) return this.remote()!\n\t\t\t\tconst node = this.land().Node( ( Value as any )() ).Item( this.land().self_make( $hyoo_crus_area_of( this.head() ) ) )\n\t\t\t\treturn this.remote( node )\n\t\t\t}\n\n\t\t}\n\n\t\treturn Ref\n\t}\n\t\n}\n","namespace $ {\n\texport class $hyoo_crus_home extends $hyoo_crus_dict.with({\n\t\tTitle: $hyoo_crus_atom_str,\n\t\tSelection: $hyoo_crus_atom_str,\n\t\tHall: $hyoo_crus_atom_ref_to( ()=> $hyoo_crus_dict ),\n\t}) {\n\t\t\n\t\thall_by< Node extends typeof $hyoo_crus_dict >(\n\t\t\tNode: Node,\n\t\t\tpreset?: $hyoo_crus_rank_preset\n\t\t) {\n\t\t\treturn this.Hall(null)?.remote_ensure( preset )?.cast( Node ) ?? null\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $hyoo_crus_meta extends $hyoo_crus_dict.with({\n\t\tInflow: $hyoo_crus_list_ref,\n\t}) {}\n\n}\n","namespace $ {\n\texport class $hyoo_crus_entity extends $hyoo_crus_dict.with({\n\t\tTitle: $hyoo_crus_atom_str,\n\t}) {}\n}\n","namespace $ {\n\t\n\texport class $hyoo_survey_meet extends $hyoo_crus_entity.with({\n\t\tOpinions: $hyoo_crus_dict_to( $hyoo_crus_atom_ref_to( ()=> $hyoo_survey_meet_opinion ) )\n\t}) {\n\n\t\t@ $mol_mem\n\t\topinion_my() {\n\t\t\tconst key = this.land().auth().peer()\n\t\t\treturn this.Opinions( true )?.key( key, true )?.remote_ensure( $hyoo_crus_rank_public ) ?? null\n\t\t}\n\n\t}\n\t\n\texport class $hyoo_survey_meet_opinion extends $hyoo_crus_entity.with({\n\t\tPleasant: $hyoo_crus_atom_str,\n\t\tImprovement: $hyoo_crus_atom_str,\n\t\tContinue: $hyoo_crus_atom_bool,\n\t\tRequest: $hyoo_crus_atom_str,\n\t}) {}\n\n}\n","$mol_stack $mol_view\n","namespace $ { $mol_style_attach( \"mol/stack/stack.view.css\",\n \"[mol_stack] {\\n\\tdisplay: grid;\\n\\t/* width: max-content; */\\n\\t/* height: max-content; */\\n\\talign-items: flex-start;\\n\\tjustify-items: flex-start;\\n}\\n\\n[mol_stack] > * {\\n\\tgrid-area: 1/1;\\n}\\n\"\n) }","$mol_text_code_token $mol_dimmer\n\tattr *\n\t\t^\n\t\tmol_text_code_token_type <= type \\\n\n$mol_text_code_token_link $mol_text_code_token\n\tdom_name \\a\n\ttype \\code-link\n\tattr *\n\t\t^\n\t\thref <= uri \\\n\t\ttarget \\_blank\n","namespace $.$$ {\n\n\tconst { hsla } = $mol_style_func\n\t\n\t$mol_style_define( $mol_text_code_token, {\n\n\t\tdisplay: 'inline',\n\t\ttextDecoration: 'none',\n\n\t\t'@': {\n\t\t\tmol_text_code_token_type: {\n\n\t\t\t\t'code-keyword': {\n\t\t\t\t\tcolor: hsla( 0, 70, 60, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-field': {\n\t\t\t\t\tcolor: hsla( 300, 70, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-tag': {\n\t\t\t\t\tcolor: hsla( 330, 70, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-global': {\n\t\t\t\t\tcolor: hsla( 30, 80, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-decorator': {\n\t\t\t\t\tcolor: hsla( 180, 40, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-punctuation': {\n\t\t\t\t\tcolor: hsla( 0, 0, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-string': {\n\t\t\t\t\tcolor: hsla( 90, 40, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-number': {\n\t\t\t\t\tcolor: hsla( 55, 65, 45, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-call': {\n\t\t\t\t\tcolor: hsla( 270, 60, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-link': {\n\t\t\t\t\tcolor: hsla( 210, 60, 50, 1 ),\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-comment-inline': {\n\t\t\t\t\topacity: .5,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-comment-block': {\n\t\t\t\t\topacity: .5,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t'code-docs': {\n\t\t\t\t\topacity: .75,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t},\n\t\t}\n\n\t} )\n\n}\n","$mol_text_code_row $mol_paragraph\n\ttext \\\n\tminimal_height 24\n\tnumb_showed true\n\tsyntax null\n\turi_resolve* \\\n\tNumb $mol_view\n\t\tsub /\n\t\t\t<= numb 0\n\tToken* $mol_text_code_token\n\t\ttype <= token_type* \\\n\t\thaystack <= token_text* \\\n\t\tneedle <= highlight \\\n\tToken_link* $mol_text_code_token_link\n\t\thaystack <= token_text* \\\n\t\tneedle <= highlight \\\n\t\turi <= token_uri* \\\n\tfind_pos* null\n","namespace $ {\n\n\t/** Creates lexer by dictionary of lexems. Lexem that started first wins. Then lexem that declared earlier wins. Use regexp capture to take parts of token. */\n\texport class $mol_syntax2< Lexems extends { [ name : string ] : RegExp } > {\n\t\t\n\t\tconstructor(\n\t\t\tpublic lexems : Lexems\n\t\t) {\n\n\t\t\tfor( let name in lexems ) {\n\t\t\t\tthis.rules.push({\n\t\t\t\t\tname : name ,\n\t\t\t\t\tregExp : lexems[ name ] ,\n\t\t\t\t\tsize : RegExp( '^$|' + lexems[ name ].source ).exec( '' )!.length - 1 , \n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst parts = '(' + this.rules.map( rule => rule.regExp.source ).join( ')|(' ) + ')'\n\t\t\tthis.regexp = RegExp( `([\\\\s\\\\S]*?)(?:(${ parts })|$(?![^]))` , 'gmu' ) \n\t\t\t\n\t\t}\n\t\t\n\t\trules = [] as Array<{\n\t\t\tregExp : RegExp ,\n\t\t\tname : string ,\n\t\t\tsize : number\n\t\t}>\n\t\t\n\t\tregexp : RegExp\n\n\t\ttokenize(\n\t\t\ttext : string ,\n\t\t\thandle : ( name : string , found : string , chunks : string[] , offset : number )=> void ,\n\t\t) {\n\t\t\t\n\t\t\tlet end = 0\n\t\t\t\t\n\t\t\tlexing : while( end < text.length ) {\n\n\t\t\t\tconst start = end\n\n\t\t\t\tthis.regexp.lastIndex = start\n\t\t\t\tvar found = this.regexp.exec( text )!\n\t\t\t\t\n\t\t\t\tend = this.regexp.lastIndex\n\t\t\t\tif( start === end ) throw new Error( 'Empty token' )\n\t\t\t\t\n\t\t\t\tvar prefix = found[ 1 ]\n\t\t\t\tif( prefix ) handle( '' , prefix , [ prefix ] , start )\n\t\t\t\t\n\t\t\t\tvar suffix = found[ 2 ]\n\t\t\t\tif( !suffix ) continue\n\n\t\t\t\tlet offset = 4\n\t\t\t\tfor( let rule of this.rules ) {\n\n\t\t\t\t\tif( found[ offset - 1 ] ) {\n\t\t\t\t\t\thandle( rule.name , suffix , found.slice( offset, offset + rule.size ) , start + prefix.length )\n\t\t\t\t\t\tcontinue lexing\n\t\t\t\t\t}\n\n\t\t\t\t\toffset += rule.size + 1\n\t\t\t\t}\n\n\t\t\t\t$mol_fail( new Error( '$mol_syntax2 is broken' ) )\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tparse(\n\t\t\ttext : string ,\n\t\t\thandlers : { [ key in keyof Lexems | '' ] : ( found : string , chunks : string[] , offset : number )=> void } ,\n\t\t) : void {\n\t\t\tthis.tokenize( text , ( name , ...args )=> handlers[ name ]( ... args ) )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_syntax2_md_flow = new $mol_syntax2({\n\t\t'quote' : /^((?:(?:[>\"] )(?:[^]*?)$(\\r?\\n?))+)([\\n\\r]*)/ ,\n\t\t'header' : /^([#=]+)(\\s+)(.*?)$([\\n\\r]*)/ ,\n\t\t'list' : /^((?:(?: ?([*+-])|(?:\\d+[\\.\\)])+) +(?:[^]*?)$(?:\\r?\\n?)(?: (?:[^]*?)$(?:\\r?\\n?))*)+)((?:\\r?\\n)*)/ ,\n\t\t'code' : /^(```\\s*)([\\w.-]*)[\\r\\n]+([^]*?)^(```)$([\\n\\r]*)/ ,\n\t\t'code-indent' : /^((?:(?: |\\t)(?:[^]*?)$\\r?\\n?)+)([\\n\\r]*)/ ,\n\t\t'table' : /((?:^\\|.+?$\\r?\\n?)+)([\\n\\r]*)/ ,\n\t\t'grid' : /((?:^ *! .*?$\\r?\\n?)+)([\\n\\r]*)/ ,\n\t\t'cut' : /^--+$((?:\\r?\\n)*)/ ,\n\t\t'block' : /^(.*?)$((?:\\r?\\n)*)/ ,\n\t})\n\t\n\texport var $mol_syntax2_md_line = new $mol_syntax2({\n\t\t'strong' : /\\*\\*(.+?)\\*\\*/ ,\n\t\t'emphasis' : /\\*(?!\\s)(.+?)\\*|\\/\\/(?!\\s)(.+?)\\/\\// ,\n\t\t'code' : /```(.+?)```|;;(.+?);;|`(.+?)`/ ,\n\t\t'insert' : /\\+\\+(.+?)\\+\\+/ ,\n\t\t'delete' : /~~(.+?)~~|--(.+?)--/ ,\n\t\t// 'remark' : /(\\()(.+?)(\\))/ ,\n\t\t// 'quote' : /(\")(.+?)(\")/ ,\n\t\t'embed' : /\"\"(?:(.*?)\\\\)?(.*?)\"\"/ ,\n\t\t'link' : /\\\\\\\\(?:(.*?)\\\\)?(.*?)\\\\\\\\/ ,\n\t\t'image-link' : /!\\[([^\\[\\]]*?)\\]\\((.*?)\\)/ ,\n\t\t'text-link' : /\\[(.*?(?:\\[[^\\[\\]]*?\\][^\\[\\]]*?)*)\\]\\((.*?)\\)/ ,\n\t\t'text-link-http' : /\\b(https?:\\/\\/[^\\s,.;:!?\")]+(?:[,.;:!?\")][^\\s,.;:!?\")]+)+)/ ,\n\t})\n\t\n\texport const $mol_syntax2_md_code = new $mol_syntax2({\n\t\t'code-indent' : /\\t+/ ,\n\t\t'code-docs' : /\\/\\/\\/.*?$/ ,\n\t\t'code-comment-block' : /(?:\\/\\*[^]*?\\*\\/|\\/\\+[^]*?\\+\\/|)/ ,\n\t\t'code-link' : /(?:\\w+:\\/\\/|#)\\S+?(?=\\s|\\\\\\\\|\"\"|$)/ ,\n\t\t'code-comment-inline' : /\\/\\/.*?(?:$|\\/\\/)/ ,\n\t\t'code-string' : /(?:\".*?\"|'.*?'|`.*?`|\\/.+?\\/[dygimsu]*(?!\\p{Letter})|(?:^|[ \\t])\\\\[^\\n]*\\n)/ ,\n\t\t'code-number' : /[+-]?(?:\\d*\\.)?\\d+\\w*/ ,\n\t\t'code-call' : /\\.?\\w+ *(?=\\()/ ,\n\t\t'code-sexpr' : /\\((\\w+ )/ ,\n\t\t'code-field' : /(?:(?:\\.|::|->)\\w+|[\\w-]+\\??\\s*:(?!\\/\\/|:))/ ,\n\t\t'code-keyword' : /\\b(throw|readonly|unknown|keyof|typeof|never|from|class|struct|interface|type|function|extends|implements|module|namespace|import|export|include|require|var|val|let|const|for|do|while|until|in|out|of|new|if|then|else|switch|case|this|return|async|await|yield|try|catch|break|continue|get|set|public|private|protected|string|boolean|number|null|undefined|true|false|void|int|float|ref)\\b/ ,\n\t\t'code-global' : /[$]+\\w*|\\b[A-Z][a-z0-9]+[A-Z]\\w*/ ,\n\t\t'code-word' : /\\w+/ ,\n\t\t'code-decorator' : /@\\s*\\S+/ ,\n\t\t'code-tag' : /<\\/?[\\w-]+\\/?>?|&\\w+;/ ,\n\t\t'code-punctuation' : /[\\-\\[\\]\\{\\}\\(\\)<=>~!\\?@#%&\\*_\\+\\\\\\/\\|;:\\.,\\^]+?/ ,\n\t})\n\t\n}\n","namespace $.$$ {\n\n\texport class $mol_text_code_row extends $.$mol_text_code_row {\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.text().length * this.letter_width()\n\t\t}\n\t\t\n\t\tsyntax() {\n\t\t\treturn this.$.$mol_syntax2_md_code\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttokens( path: number[] ) {\n\n\t\t\tconst tokens = [] as { name : string , found : string , chunks: string[] }[]\n\t\t\t\n\t\t\tconst text = ( path.length > 0 )\n\t\t\t\t// @FIXME: this logic compatible only with `string`\n\t\t\t\t? this.tokens( path.slice( 0, path.length - 1 ) )[ path[ path.length - 1 ] ].found.slice( 1, -1 )\n\t\t\t\t: this.text()\n\t\t\t\n\t\t\tthis.syntax().tokenize(\n\t\t\t\ttext,\n\t\t\t\t( name , found , chunks )=> {\n\t\t\t\t\tif( name === 'code-sexpr' ) {\n\t\t\t\t\t\ttokens.push({ name: 'code-punctuation', found: '(', chunks: [] })\n\t\t\t\t\t\ttokens.push({ name: 'code-call', found: chunks[0], chunks: [] })\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttokens.push({ name , found , chunks })\t\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t\treturn tokens as Readonly< typeof tokens >\n\t\t}\n\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\t... this.numb_showed() ? [ this.Numb() ] : [],\n\t\t\t\t... this.row_content([])\n\t\t\t]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\trow_content( path: number[] ) {\n\t\t\treturn this.tokens( path ).map( (t,i)=> this.Token([ ... path, i ]) )\n\t\t}\n\n\t\tToken( path: number[] ) {\n\t\t\treturn this.token_type( path ) === 'code-link' ? this.Token_link( path ) : super.Token( path )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_type( path: number[] ) {\n\t\t\treturn this.tokens( [ ... path.slice( 0, path.length - 1 ) ] )[ path[ path.length - 1 ] ].name\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_content( path: number[] ) {\n\n\t\t\tconst tokens = this.tokens( [ ... path.slice( 0, path.length - 1 ) ] ) \n\t\t\tconst token = tokens[ path[ path.length - 1 ] ]\n\n\t\t\tswitch( token.name ) {\n\t\t\t\t\n\t\t\t\tcase 'code-string': return [\n\t\t\t\t\ttoken.found[0],\n\t\t\t\t\t... this.row_content( path ),\n\t\t\t\t\ttoken.found[ token.found.length - 1 ],\n\t\t\t\t] \n\t\t\t\t\n\t\t\t\tdefault: return [ token.found ]\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_text( path: number[] ) {\n\n\t\t\tconst tokens = this.tokens( [ ... path.slice( 0, path.length - 1 ) ] ) \n\t\t\tconst token = tokens[ path[ path.length - 1 ] ]\n\n\t\t\treturn token.found\n\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttoken_uri( path: number[] ) {\n\t\t\tconst uri = this.token_text( path )\n\t\t\treturn this.uri_resolve( uri )\n\t\t}\n\t\t\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, this.text() ) ) {\n\t\t\t\tyield [ ... path, this ]\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tfind_pos( offset: number ) {\n\t\t\treturn this.find_token_pos([ offset ])\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tfind_token_pos( [ offset, ... path ]: number[] ) {\n\t\t\t\n\t\t\tfor( const [ index, token ] of this.tokens( path ).entries() ) {\n\t\t\t\tif( token.found.length >= offset ) {\n\t\t\t\t\tconst token = this.Token([ ... path, index ])\n\t\t\t\t\treturn { token, offset }\n\t\t\t\t} else {\n\t\t\t\t\toffset -= token.found.length\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $.$$ {\n\t\n\tconst { rem } = $mol_style_unit\n\n\t$mol_style_define( $mol_text_code_row, {\n\n\t\tdisplay: 'block',\n\t\tposition: 'relative',\n\t\t\n\t\tfont: {\n\t\t\tfamily: 'monospace',\n\t\t},\n\t\t\n\t\tNumb: {\n\t\t\ttextAlign: 'right',\n\t\t\tcolor: $mol_theme.shade,\n\t\t\twidth: rem(3),\n\t\t\tmargin: {\n\t\t\t\tleft: rem(-4),\n\t\t\t},\n\t\t\tdisplay: 'inline-block',\n\t\t\twhiteSpace: 'nowrap',\n\t\t\tuserSelect: 'none',\n\t\t\tposition: 'absolute',\n\t\t},\n\n\t} )\n\t\n}\n","namespace $ {\n\n\texport type $mol_blob = Blob\n\n\texport let $mol_blob = ( $node.buffer?.Blob ?? $mol_dom_context.Blob ) as any as {\n\t\tprototype: Blob;\n\t\tnew(blobParts?: readonly BlobPart[], options?: BlobPropertyBag): Blob;\n\t}\n\n}\n","$mol_icon_clipboard $mol_icon path \\M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3\n","$mol_icon_clipboard_outline $mol_icon path \\M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5C3.9,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3M12,3C12.55,3 13,3.45 13,4C13,4.55 12.55,5 12,5C11.45,5 11,4.55 11,4C11,3.45 11.45,3 12,3M7,7H17V5H19V19H5V5H7V7Z\n","$mol_button_copy $mol_button_minor\n\tblobs /$mol_blob\n\t\t<= text_blob? $mol_blob /\n\t\t\t/BlobPart <= text <= title\n\t\t\t* type \\text/plain\n\t\t<= html_blob? $mol_blob /\n\t\t\t/BlobPart <= html \\\n\t\t\t* type \\text/html\n\tdata *\n\tsub /\n\t\t<= Icon $mol_icon_clipboard_outline\n\t\t<= title \\\n\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '<' ,\n\t\t'>' : '>' ,\n\t\t'\"' : '"' ,\n\t\t'&' : '&' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Button copy text() value to clipboard\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_button_demo\n\t */\n\texport class $mol_button_copy extends $.$mol_button_copy {\n\t\t\n\t\tdata() {\n\t\t\treturn Object.fromEntries(\n\t\t\t\tthis.blobs().map( blob => [ blob.type, blob ] )\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\thtml() {\n\t\t\treturn $mol_html_encode( this.text() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tattachments() {\n\t\t\treturn [ new ClipboardItem( this.data() ) ]\n\t\t}\n\t\t\n\t\tclick( event?: Event ) {\n\t\t\tconst cb = $mol_wire_sync( this.$.$mol_dom_context.navigator.clipboard )\n\t\t\t\n\t\t\tcb.writeText?.( this.text() )\n\t\t\tcb.write?.( this.attachments() )\n\n\t\t\tif( cb.writeText === undefined && cb.write === undefined ) {\n\t\t\t\tthrow new Error( \"doesn't support copy to clipoard\" )\n\t\t\t}\n\t\t}\n\n\t}\n\t\n}\n","$mol_text_code $mol_stack\n\tattr *\n\t\t^\n\t\tmol_text_code_sidebar_showed <= sidebar_showed false\n\ttext \\\n\ttext_lines /string\n\tfind_pos* null\n\turi_base \\\n\tsub /\n\t\t<= Rows $mol_list\n\t\t\trender_visible_only <= render_visible_only false\n\t\t\trows <= rows /\n\t\t\t\t<= Row*0 $mol_text_code_row\n\t\t\t\t\tnumb_showed <= sidebar_showed\n\t\t\t\t\tnumb <= row_numb* 0\n\t\t\t\t\ttext <= row_text* \\\n\t\t\t\t\tsyntax <= syntax null\n\t\t\t\t\turi_resolve* <= uri_resolve* \\\n\t\t\t\t\thighlight <= highlight \\\n\t\t<= Copy $mol_button_copy\n\t\t\thint @ \\Copy whole code\n\t\t\ttext <= text_export \\\n","namespace $.$$ {\n\n\t/**\n\t * Code visualizer.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_text_code_demo\n\t */\n\texport class $mol_text_code extends $.$mol_text_code {\n\t\t\n\t\trender_visible_only() {\n\t\t\treturn this.$.$mol_support_css_overflow_anchor()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttext_lines() {\n\t\t\treturn this.text().split( '\\n' ) as readonly string[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trows() {\n\t\t\treturn this.text_lines().map( ( _ , index )=> this.Row( index + 1 ) )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\trow_text( index: number ) {\n\t\t\treturn this.text_lines()[ index - 1 ]\n\t\t}\n\t\t\n\t\trow_numb( index: number ) {\n\t\t\treturn index\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tfind_pos( offset: number ) {\n\t\t\t\n\t\t\tfor( const [ index, line ] of this.text_lines().entries() ) {\n\t\t\t\tif( line.length >= offset ) {\n\t\t\t\t\treturn this.Row( index + 1 ).find_pos( offset )\n\t\t\t\t} else {\n\t\t\t\t\toffset -= line.length + 1\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\tthis.Rows(),\n\t\t\t\t... this.sidebar_showed() ? [ this.Copy() ] : []\n\t\t\t]\n\t\t}\n\t\t\n\t\tsyntax() {\n\t\t\treturn this.$.$mol_syntax2_md_code\n\t\t}\n\n\t\turi_base() {\n\t\t\treturn $mol_dom_context.document.location.href\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\turi_resolve( uri: string ) {\n\t\t\t\n\t\t\tif( /^(\\w+script+:)+/.test( uri ) ) return null as any as string\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst url = new URL( uri , this.uri_base() )\n\t\t\t\treturn url.toString()\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn null as any as string\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\ttext_export() {\n\t\t\treturn this.text() + '\\n'\n\t\t}\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t\n\tconst { rem, px } = $mol_style_unit\n\n\t$mol_style_define( $mol_text_code, {\n\n\t\twhiteSpace: 'pre-wrap',\n\t\tfont: {\n\t\t\tfamily: 'monospace',\n\t\t},\n\t\t\n\t\tRows: {\n\t\t\tpadding: $mol_gap.text,\n\t\t},\n\n\t\tRow: {\n\t\t\tfont: {\n\t\t\t\tfamily: 'inherit',\n\t\t\t},\n\t\t},\n\t\t\n\t\tCopy: {\n\t\t\talignSelf: 'flex-start',\n\t\t\tjustifySelf: 'flex-start',\n\t\t},\n\t\t\n\t\t'@': {\n\t\t\t'mol_text_code_sidebar_showed': {\n\t\t\t\ttrue: {\n\t\t\t\t\t$mol_text_code_row: {\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\tleft: rem(1.75),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t} )\n\t\n}\n","$mol_textarea $mol_stack\n\tattr *\n\t\t^\n\t\tmol_textarea_clickable <= clickable? false\n\t\tmol_textarea_sidebar_showed <= sidebar_showed false\n\tevent *\n\t\tkeydown?event <=> press?event null\n\t\tpointermove?event <=> hover?event null\n\tsub /\n\t\t<= Edit $mol_textarea_edit\n\t\t\tvalue? <=> value? \\\n\t\t\thint <= hint \\ \n\t\t\tenabled <= enabled true\n\t\t\tspellcheck <= spellcheck true\n\t\t\tlength_max <= length_max +Infinity\n\t\t\tselection? <=> selection? /number\n\t\t\tbring => bring\n\t\t\tsubmit? <=> submit? null\n\t\t\tsubmit_with_ctrl <= submit_with_ctrl true\n\t\t<= View $mol_text_code\n\t\t\ttext <= value\n\t\t\trender_visible_only false\n\t\t\trow_numb* <= row_numb* 0\n\t\t\tsidebar_showed <= sidebar_showed\n\t\t\thighlight <= highlight \\\n\tsymbols_alt *string\n\t\tcomma \\<\n\t\tperiod \\>\n\t\tdash \\−\n\t\tequals \\≈\n\t\tgraveAccent \\́\n\t\tforwardSlash \\÷\n\t\tE \\€\n\t\tV \\✔\n\t\tX \\×\n\t\tC \\©\n\t\tP \\§\n\t\tH \\₽\n\t\tkey0 \\°\n\t\tkey8 \\•\n\t\tkey2 \\@\n\t\tkey3 \\#\n\t\tkey4 \\$\n\t\tkey6 \\^\n\t\tkey7 \\&\n\t\tbracketOpen \\[\n\t\tbracketClose \\]\n\t\tslashBack \\|\n\tsymbols_alt_ctrl *string\n\t\tspace \\ \n\tsymbols_alt_shift *string\n\t\tV \\✅\n\t\tX \\❌\n\t\tO \\⭕\n\t\tkey1 \\❗\n\t\tkey4 \\💲\n\t\tkey7 \\❓\n\t\tcomma \\«\n\t\tperiod \\»\n\t\tsemicolon \\“\n\t\tquoteSingle \\”\n\t\tdash \\—\n\t\tequals \\≠\n\t\tgraveAccent \\̱\n\t\tbracketOpen \\{\n\t\tbracketClose \\}\n\n$mol_textarea_edit $mol_string\n\tdom_name \\textarea\n\tenter \\enter\n\tfield *\n\t\t^\n\t\tscrollTop 0\n","namespace $.$$ {\n\n\t/**\n\t * An input field for entering multiline text.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\n\texport class $mol_textarea extends $.$mol_textarea {\n\n\t\tindent_inc() {\n\n\t\t\tlet text = this.value()\n\t\t\tlet [ from, to ] = this.selection()\n\t\t\t\n\t\t\tconst rows = text.split( '\\n' )\n\t\t\tlet start = 0\n\t\t\t\n\t\t\tfor( let i = 0; i < rows.length; ++i ) {\n\t\t\t\tlet end = start + rows[i].length\n\t\t\t\t\n\t\t\t\tif( end >= from && start <= to ) {\n\t\t\t\t\tif( to === from || start !== to ) {\n\t\t\t\t\t\trows[i] = '\\t' + rows[i]\n\t\t\t\t\t\tto += 1\n\t\t\t\t\t\tend += 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstart = end + 1\n\t\t\t}\n\n\t\t\tthis.value( rows.join('\\n') )\n\t\t\tthis.selection([ from + 1, to ])\n\t\t\t\n\t\t}\n\n\t\tindent_dec() {\n\n\t\t\tlet text = this.value()\n\t\t\tlet [ from, to ] = this.selection()\n\t\t\t\n\t\t\tconst rows = text.split( '\\n' )\n\t\t\tlet start = 0\n\t\t\t\n\t\t\tfor( let i = 0; i < rows.length; ++i ) {\n\t\t\t\tconst end = start + rows[i].length\n\t\t\t\t\n\t\t\t\tif( end >= from && start <= to && rows[i].startsWith( '\\t' ) ) {\n\t\t\t\t\trows[i] = rows[i].slice( 1 )\n\t\t\t\t\tto -= 1\n\t\t\t\t\tif( start < from ) from -= 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstart = end + 1\n\t\t\t}\n\n\t\t\tthis.value( rows.join('\\n') )\n\t\t\tthis.selection([ from, to ])\n\t\t\t\n\t\t}\n\t\t\n\t\tsymbol_insert( event: KeyboardEvent ) {\n\t\t\t\n\t\t\tconst symbol = event.shiftKey\n\t\t\t\t? this.symbols_alt_shift()[ $mol_keyboard_code[ event.keyCode ] ]\n\t\t\t\t: event.ctrlKey\n\t\t\t\t\t? this.symbols_alt_ctrl()[ $mol_keyboard_code[ event.keyCode ] ]\n\t\t\t\t\t: this.symbols_alt()[ $mol_keyboard_code[ event.keyCode ] ]\n\t\t\t\t\n\t\t\tif( !symbol ) return\n\t\t\t\n\t\t\tevent.preventDefault()\n\t\t\tdocument.execCommand( 'insertText', false, symbol )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tclickable( next?: boolean ) {\n\t\t\tif( !this.enabled() ) return true\n\t\t\treturn next ?? false\n\t\t}\n\t\t\n\t\thover( event : PointerEvent ) {\n\t\t\tthis.clickable( event.ctrlKey )\n\t\t}\n\t\t\n\t\tpress( event : KeyboardEvent ) {\n\t\t\t\n\t\t\tif( event.altKey ) {\n\t\t\t\t\n\t\t\t\tthis.symbol_insert( event )\n\t\t\t\t\n\t\t\t} else {\n\n\t\t\t\tswitch( event.keyCode ) {\n\t\t\t\t\tcase !event.shiftKey && $mol_keyboard_code.tab : this.indent_inc() ; break\n\t\t\t\t\tcase event.shiftKey && $mol_keyboard_code.tab : this.indent_dec() ; break\n\t\t\t\t\tdefault : return\n\t\t\t\t}\n\t\t\t\n\t\t\t\tevent.preventDefault()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\trow_numb( index: number ) {\n\t\t\treturn index\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/textarea/textarea.view.css\",\n \"[mol_textarea] {\\n\\tflex: 1 0 auto;\\n\\tflex-direction: column;\\n\\tvertical-align: top;\\n\\tmin-height: max-content;\\n\\twhite-space: pre-wrap;\\n\\tword-break: break-word;\\n\\tborder-radius: var(--mol_gap_round);\\n\\tfont-family: monospace;\\n\\tposition: relative;\\n\\ttab-size: 4;\\n}\\n\\n[mol_textarea_view] {\\n\\tpointer-events: none;\\n\\twhite-space: inherit;\\n\\tfont-family: inherit;\\n\\ttab-size: inherit;\\n\\tuser-select: none;\\n}\\n\\n[mol_textarea_view_copy] {\\n\\tpointer-events: all;\\n}\\n\\n[mol_textarea_clickable] > [mol_textarea_view] {\\n\\tpointer-events: all;\\n\\tuser-select: auto;\\n}\\n\\n[mol_textarea_clickable] > [mol_textarea_edit] {\\n\\tuser-select: none;\\n}\\n\\n[mol_textarea_edit] {\\n\\tfont-family: inherit;\\n\\tpadding: var(--mol_gap_text);\\n\\tcolor: transparent !important;\\n\\tcaret-color: var(--mol_theme_text);\\n\\tresize: none;\\n\\ttext-align: inherit;\\n\\twhite-space: inherit;\\n\\tborder-radius: inherit;\\n\\toverflow-anchor: none;\\n\\tposition: absolute;\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\ttab-size: inherit;\\n}\\n\\n[mol_textarea_sidebar_showed] [mol_textarea_edit] {\\n\\tleft: 1.75rem;\\n\\twidth: calc( 100% - 1.75rem );\\n}\\n\\n[mol_textarea_edit]:hover + [mol_textarea_view] {\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_textarea_edit]:focus + [mol_textarea_view] {\\n\\tz-index: var(--mol_layer_focus);\\n}\\n\"\n) }","$mol_labeler $mol_list\n\trows /\n\t\t<= Label $mol_view\n\t\t\tminimal_height 32\n\t\t\tsub <= label /$mol_view_content\n\t\t\t\t<= title\n\t\t<= Content $mol_view\n\t\t\tminimal_height 24\n\t\t\tsub <= content /\n","namespace $ { $mol_style_attach( \"mol/labeler/labeler.view.css\",\n \"[mol_labeler] {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: stretch;\\n\\tcursor: inherit;\\n}\\n\\n[mol_labeler_label] {\\n\\tmin-height: 2rem;\\n\\tcolor: var(--mol_theme_shade);\\n\\tpadding: .5rem .75rem 0;\\n\\tgap: 0 var(--mol_gap_block);\\n\\tflex-wrap: wrap;\\n}\\n\\n[mol_labeler_content] {\\n\\tdisplay: flex;\\n\\tpadding: var(--mol_gap_text);\\n}\\n\"\n) }","$mol_form_field $mol_labeler\n\tbids /string\n\tlabel /\n\t\t<= name \\\n\t\t<= Bid $mol_view\n\t\t\tsub / <= bid \\\n\tcontent / <= control null\n","namespace $.$$ {\n\t/**\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_form_demo\n\t */\n\texport class $mol_form_field extends $.$mol_form_field {\n\t\t\n\t\t@ $mol_mem\n\t\tbid() {\n\t\t\treturn this.bids().filter( Boolean )[ 0 ] ?? ''\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/form/field/field.view.css\",\n \"[mol_form_field] {\\n\\talign-items: stretch;\\n}\\n\\n[mol_form_field_bid] {\\n\\tcolor: var(--mol_theme_focus);\\n\\tdisplay: inline-block;\\n\\ttext-shadow: 0 0;\\n}\\n\\n[mol_form_field_content] {\\n\\tborder-radius: var(--mol_gap_round);\\n}\\n\"\n) }","$mol_float $mol_view\n\tstyle *\n\t\t^\n\t\tminHeight \\auto\n","namespace $ { $mol_style_attach( \"mol/float/float.view.css\",\n \"[mol_float] {\\n\\tposition: sticky;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tz-index: var(--mol_layer_float);\\n\\topacity: 1;\\n\\ttransition: opacity .25s ease-in;\\n\\tdisplay: block;\\n\\tbackground: linear-gradient( var(--mol_theme_card), var(--mol_theme_card) ), var(--mol_theme_back);\\n\\tbox-shadow: 0 0 .5rem hsla(0,0%,0%,.25);\\n}\\n\\n\"\n) }","$mol_check $mol_button_minor\n\tattr *\n\t\t^\n\t\tmol_check_checked <= checked? false\n\t\taria-checked <= aria_checked \\false\n\t\trole <= aria_role \\checkbox\n\tsub /$mol_view_content\n\t\t<= Icon null\n\t\t<= label /\n\t\t\t<= Title $mol_view\n\t\t\t\tsub /\n\t\t\t\t\t<= title \\\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/check/check.css\",\n \"[mol_check] {\\n\\tflex: 0 0 auto;\\n\\tjustify-content: flex-start;\\n\\talign-content: center;\\n\\t/* align-items: flex-start; */\\n\\tborder: none;\\n\\tfont-weight: inherit;\\n\\tbox-shadow: none;\\n\\ttext-align: left;\\n\\tdisplay: inline-flex;\\n\\tflex-wrap: nowrap;\\n}\\n\\n[mol_check_title] {\\n\\tflex-shrink: 1;\\n}\\n\"\n) }","namespace $.$$ {\n\n\t/**\n\t * Checkbox UI component. See Variants for more concrete implementations.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_check_box_demo\n\t */\n\texport class $mol_check extends $.$mol_check {\n\n\t\tclick( next? : Event ) {\n\t\t\tif( next?.defaultPrevented ) return\n\t\t\tthis.checked( !this.checked() )\n\t\t\tif( next ) next.preventDefault()\n\t\t}\n\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\t... $mol_maybe( this.Icon() ) ,\n\t\t\t\t... this.label() ,\n\t\t\t] as readonly $mol_view_content[]\n\t\t}\n\n\t\tlabel() {\n\t\t\treturn this.title() ? super.label() : []\n\t\t}\n\t\t\n\t\taria_checked() {\n\t\t\treturn String( this.checked() )\n\t\t}\n\n\t}\n}\n","$mol_icon_chevron $mol_icon path \\M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\n","$mol_check_expand $mol_check\n\tIcon $mol_icon_chevron\n\tlevel 0\n\tstyle *\n\t\t^\n\t\tpaddingLeft <= level_style \\0px\n\tchecked? <=> expanded? false\n\tenabled <= expandable false\n","namespace $.$$ {\n\t\n\t/**\n\t * Expander for trees, lists, etc\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_check_expand_demo\n\t */\n\texport class $mol_check_expand extends $.$mol_check_expand {\n\t\t\n\t\tlevel_style() {\n\t\t\treturn `${ this.level() * 1 - 1 }rem`\n\t\t}\n\t\t\n\t\texpandable() {\n\t\t\treturn this.expanded() !== null\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/check/expand/expand.view.css\",\n \"[mol_check_expand] {\\n\\tmin-width: 20px;\\n}\\n\\n:where([mol_check_expand][disabled]) [mol_check_expand_icon] {\\n\\tvisibility: hidden;\\n}\\n\\n[mol_check_expand_icon] {\\n\\tbox-shadow: none;\\n}\\n[mol_check_expand_icon] {\\n\\ttransform: rotateZ(0deg);\\n}\\n\\n:where([mol_check_checked]) [mol_check_expand_icon] {\\n\\ttransform: rotateZ(90deg);\\n}\\n\\n[mol_check_expand_icon] {\\n\\tvertical-align: text-top;\\n}\\n\\n[mol_check_expand_label] {\\n\\tmargin-left: 0;\\n}\\n\"\n) }","$mol_grid $mol_view\n\trow_height 32\n\trow_ids /string[]\n\trow_id* null\n\tcol_ids /\n\trecords *\n\trecord* null\n\thierarchy null\n\thierarchy_col \\\n\tminimal_width 0\n\t-\n\tsub /\n\t\t<= Head\n\t\t<= Table $mol_grid_table\n\t\t\tsub <= rows /$mol_view\n\tHead $mol_grid_row\n\t\tcells <= head_cells /$mol_view\n\tRow* $mol_grid_row\n\t\tminimal_height <= row_height\n\t\tminimal_width <= minimal_width\n\t\tcells <= cells* /$mol_view\n\t-\n\tCell* $mol_view\n\tcell* null\n\tCell_text* $mol_grid_cell\n\t\tsub <= cell_content_text* <= cell_content* /$mol_view_content\n\tCell_number* $mol_grid_number\n\t\tsub <= cell_content_number* <= cell_content* /$mol_view_content\n\tCol_head* $mol_float\n\t\tdom_name \\th\n\t\tsub <= col_head_content* /$mol_view_content\n\tCell_branch* $mol_check_expand\n\t\tlevel <= cell_level* 0\n\t\tlabel <= cell_content* /$mol_view_content\n\t\texpanded? <=> cell_expanded*? false\n\tCell_content* /\n\t\t<= Cell_dimmer* $mol_dimmer\n\t\t\tneedle <= needle \\\n\t\t\thaystack <= cell_value* \\\n\n$mol_grid_table $mol_list\n\t- dom_name \\table\n\n$mol_grid_row $mol_view\n\t- dom_name \\tr\n\tsub <= cells /$mol_view\n\n$mol_grid_cell $mol_view\n\t- dom_name \\td\n\tminimal_height 40\n\n$mol_grid_number $mol_grid_cell\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: any ) {\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 as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + 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\t\n\texport interface $mol_grid_node {\n\t\tid : string\n\t\tparent : $mol_grid_node\n\t\tsub : $mol_grid_node[]\n\t}\n\t\n\texport class $mol_grid extends $.$mol_grid {\n\t\t\n\t\t@ $mol_mem\n\t\thead_cells() {\n\t\t\treturn this.col_ids().map( colId => this.Col_head( colId ) ) as readonly $mol_view[]\n\t\t}\n\t\t\n\t\tcol_head_content( colId : string ) {\n\t\t\treturn [ colId ] as readonly string[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trows() {\n\t\t\treturn this.row_ids().map( id => this.Row( id ) ) as readonly $mol_view[]\n\t\t}\n\t\t\n\t\tcells( row_id : string[] ) {\n\t\t\treturn this.col_ids().map( col_id => this.Cell({ row : row_id , col : col_id }) ) as readonly $mol_view[]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tcol_type( col_id : string ) {\n\t\t\tif( col_id === this.hierarchy_col() ) return 'branch'\n\t\t\t\n\t\t\tconst rowFirst = this.row_id( 0 )\n\t\t\tconst val = this.record( rowFirst[ rowFirst.length -1 ] )[ col_id ]\n\t\t\tif( typeof val === 'number' ) return 'number'\n\t\t\t\n\t\t\treturn 'text'\n\t\t}\n\t\t\n\t\tCell( id : { row : string[] , col : string } ) : $mol_view {\n\t\t\tswitch( this.col_type( id.col ).valueOf() ) {\n\t\t\t\tcase 'branch' : return this.Cell_branch( id )\n\t\t\t\tcase 'number' : return this.Cell_number( id )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.Cell_text( id )\n\t\t}\n\t\t\n\t\tcell_content( id : { row : string[] , col : string } ) {\n\t\t\treturn [ this.record( id.row[ id.row.length - 1 ] )[ id.col ] ]\n\t\t}\n\t\t\n\t\tcell_content_text( id : { row : string[] , col : string } ) {\n\t\t\treturn this.cell_content( id ).map( val => typeof val === 'object' ? JSON.stringify( val ) : val )\n\t\t}\n\t\t\n\t\trecords() : any {\n\t\t\treturn []\n\t\t}\n\t\t\n\t\trecord( id : string ) {\n\t\t\treturn this.records()[ id ]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trecord_ids() {\n\t\t\treturn Object.keys( this.records() )\n\t\t}\n\t\t\n\t\trow_id( index : number ) {\n\t\t\treturn ( this.row_ids().slice( index , index + 1 ).valueOf() as string[] )[0]\n\t\t}\n\n\t\tcol_ids() {\n\t\t\tconst rowFirst = this.row_id(0)\n\t\t\tif( rowFirst === void 0 ) return []\n\t\t\t\n\t\t\tconst record = this.record( rowFirst[ rowFirst.length - 1 ] )\n\t\t\tif( !record ) return []\n\t\t\t\n\t\t\treturn Object.keys( record ) as readonly string[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\thierarchy() {\n\t\t\tconst hierarchy : { [ id : string ] : $mol_grid_node } = {}\n\t\t\tconst root = hierarchy[ '' ] = {\n\t\t\t\tid : '' ,\n\t\t\t\tparent : null as any as $mol_grid_node ,\n\t\t\t\tsub : [] as $mol_grid_node[] ,\n\t\t\t}\n\t\t\tthis.record_ids().map( id => {\n\t\t\t\troot.sub.push( hierarchy[ id ] = {\n\t\t\t\t\tid ,\n\t\t\t\t\tparent : root ,\n\t\t\t\t\tsub : [] ,\n\t\t\t\t} )\n\t\t\t} )\n\t\t\treturn hierarchy\n\t\t}\n\t\t\n\t\trow_sub_ids( row : string[] ) : string[][] {\n\t\t\treturn this.hierarchy()[ row[ row.length - 1 ] ].sub.map( child => row.concat( child.id ) )\n\t\t}\n\t\t\n\t\trow_root_id() : string[] {\n\t\t\treturn [ '' ]\n\t\t}\n\t\t\n\t\tcell_level( id : { row : string[] } ) {\n\t\t\treturn id.row.length - 1\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trow_ids() {\n\t\t\tconst next : string[][] = []\n\t\t\t\n\t\t\tconst add = ( row : string[] )=> {\n\t\t\t\tnext.push( row )\n\t\t\t\tif( this.row_expanded( row ) ) {\n\t\t\t\t\tthis.row_sub_ids( row ).forEach( child => add( child ) )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.row_sub_ids( this.row_root_id() ).forEach( child => add( child ) )\n\t\t\t\n\t\t\treturn next as readonly string[][]\n\t\t}\n\t\t\n\t\trow_expanded( row_id : string[] , next? : boolean ) {\n\t\t\tif( !this.row_sub_ids( row_id ).length ) return null\n\t\t\t\n\t\t\tconst key = `row_expanded(${ JSON.stringify( row_id ) })`\n\t\t\tconst next2 = $mol_state_session.value( key , next )\n\t\t\t\n\t\t\treturn ( next2 == null ) ? this.row_expanded_default( row_id ) : next2\n\t\t}\n\t\t\n\t\trow_expanded_default( row_id : string[] ) {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcell_expanded( id : { row : string[] } , next? : boolean ) {\n\t\t\treturn this.row_expanded( id.row , next )!\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/grid/grid.view.css\",\n \"[mol_grid] {\\n\\tdisplay: block;\\n\\tflex: 0 1 auto;\\n\\tposition: relative;\\n\\toverflow-x: auto;\\n}\\n\\n[mol_grid_gap] {\\n\\tposition: absolute;\\n\\tpadding: .1px;\\n\\ttop: 0;\\n\\ttransform: translateZ(0);\\n}\\n\\n[mol_grid_table] {\\n\\tborder-spacing: 0;\\n\\tdisplay: table-row-group;\\n\\tposition: relative;\\n}\\n\\n[mol_grid_table] > * {\\n\\tdisplay: table-row;\\n\\ttransition: none;\\n}\\n\\n[mol_grid_head] > *,\\n[mol_grid_table] > * > * {\\n\\tdisplay: table-cell;\\n\\tpadding: var(--mol_gap_text);\\n\\twhite-space: nowrap;\\n\\tvertical-align: middle;\\n\\tbox-shadow: inset 1px 1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_row]:where(:first-child) > * {\\n\\tbox-shadow: inset 1px 0 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_table] > * > *:where(:first-child) {\\n\\tbox-shadow: inset 0px 1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_head] > * {\\n\\tbox-shadow: inset 1px -1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_head] > *:where(:first-child) {\\n\\tbox-shadow: inset 0px -1px 0 0 var(--mol_theme_line);\\n}\\n\\n[mol_grid_table] > [mol_grid_row]:where(:first-child) > *:where(:first-child) {\\n\\tbox-shadow: none;\\n}\\t\\n\\n[mol_grid_head] {\\n\\tdisplay: table-row;\\n\\ttransform: none !important;\\n}\\n\\n/* [mol_grid_cell_number] {\\n\\ttext-align: right;\\n} */\\n\\n[mol_grid_col_head] {\\n\\tfont-weight: inherit;\\n\\ttext-align: inherit;\\n\\tdisplay: table-cell;\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_grid_cell_dimmer] {\\n\\tdisplay: inline-block;\\n\\tvertical-align: inherit;\\n}\\n\"\n) }","$mol_image $mol_view\n\tdom_name \\img\n\tfield *any\n\t\t^\n\t\tsrc <= uri \\\n\t\talt <= title\n\t\tloading <= loading \\eager\n\t\tdecoding <= decoding \\async\n\t\tcrossOrigin <= cors null\n\tattr *any\n\t\t^\n\t\twidth <= natural_width 0\n\t\theight <= natural_height 0\n\tevent *any\n\t\tload? <=> load? null\n\tminimal_width 16\n\tminimal_height 16\n","namespace $.$$ {\n\texport class $mol_image extends $.$mol_image {\n\t\t\n\t\t@ $mol_mem\n\t\tnatural_width( next?: null ) {\n\t\t\t\n\t\t\tconst dom = this.dom_node() as HTMLImageElement\n\t\t\tif( dom.naturalWidth ) return dom.naturalWidth\n\t\t\t\n\t\t\tconst found = this.uri().match( /\\bwidth=(\\d+)/ )\n\t\t\treturn found ? Number( found[1] ) : null!\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tnatural_height( next?: null ) {\n\t\t\t\n\t\t\tconst dom = this.dom_node() as HTMLImageElement\n\t\t\tif( dom.naturalHeight ) return dom.naturalHeight\n\t\t\t\n\t\t\tconst found = this.uri().match( /\\bheight=(\\d+)/ )\n\t\t\treturn found ? Number( found[1] ) : null!\n\t\t\t\n\t\t}\n\t\t\n\t\tload() {\n\t\t\tthis.natural_width( null )\n\t\t\tthis.natural_height( null )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/image/image.view.css\",\n \"[mol_image] {\\n\\tborder-radius: var(--mol_gap_round);\\n\\toverflow: hidden;\\n\\tflex: 0 1 auto;\\n\\tmax-width: 100%;\\n\\tobject-fit: cover;\\n\\theight: fit-content;\\n}\\n\"\n) }","$mol_link_iconed $mol_link\n\tsub /\n\t\t<= Icon $mol_image\n\t\t\turi <= icon \\\n\t\t\ttitle \\\n\tcontent /\n\t\t<= title <= uri\n\thost \\\n","namespace $.$$ {\n\n\texport class $mol_link_iconed extends $.$mol_link_iconed {\n\n\t\t@ $mol_mem\n\t\ticon() {\n\t\t\treturn `https://favicon.yandex.net/favicon/${ this.host() }?color=0,0,0,0&size=32&stub=1`\n\t\t\t// return `https://api.faviconkit.com/${ this.host() }/16`\n\t\t}\n\n\t\t@ $mol_mem\n\t\thost() {\n\t\t\tconst base = this.$.$mol_state_arg.href()\n\t\t\tconst url = new URL( this.uri() , base )\n\t\t\treturn url.hostname\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\tconst uri = this.uri()\n\t\t\tconst host = this.host()\n\t\t\tconst suffix = ( host ? uri.split( this.host() , 2 )[1] : uri )?.replace( /^[\\/\\?#!]+/, '' )\n\t\t\treturn decodeURIComponent( suffix || host ).replace( /^\\//, ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\treturn [\n\t\t\t\t... this.host() ? [ this.Icon() ] : [],\n\t\t\t\t... this.content() ? [ ' ', ... this.content() ] : [],\n\t\t\t] as readonly any[]\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/link/iconed/iconed.view.css\",\n \"[mol_link_iconed] {\\n\\talign-items: baseline;\\n\\tdisplay: inline-flex;\\n\\tpadding: var(--mol_gap_text);\\n}\\n\\n[mol_link_iconed_icon] {\\n\\tbox-shadow: none;\\n\\theight: 1.5em;\\n\\twidth: 1em;\\n\\tflex: 0 0 auto;\\n\\tdisplay: inline-block;\\n\\talign-self: normal;\\n\\tvertical-align: top;\\n\\tborder-radius: 0;\\n\\tobject-fit: scale-down;\\n\\topacity: .75;\\n}\\n\\n[mol_theme=\\\"$mol_theme_dark\\\"] [mol_link_iconed_icon] {\\n\\tfilter: var(--mol_theme_image);\\n}\\n\"\n) }","$mol_embed_native $mol_scroll\n\turi? \\\n\tdom_name \\object\n\twindow null\n\tattr *\n\t\t^\n\t\tdata <= uri\n\t\ttype <= mime \\\n\tsub /\n\t\t<= Fallback $mol_link\n\t\t\turi <= uri\n\t\t\tsub /\n\t\t\t\t<= title \\\n\tmessage *\n\t\thashchange? <=> uri_change? null\n","namespace $.$$ {\n\texport class $mol_embed_native extends $.$mol_embed_native {\n\n\t\t@ $mol_mem\n\t\twindow() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $mol_wire_sync( this as $mol_embed_native ).load( this.dom_node_actual() as HTMLIFrameElement )\n\t\t}\n\t\t\n\t\tload( frame: HTMLIFrameElement ) {\n\t\t\treturn new Promise< Window >( ( done, fail )=> {\n\t\t\t\t\n\t\t\t\tframe.onload = () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( frame.contentWindow!.location.href === 'about:blank' ) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch { }\n\t\t\t\t\tdone( frame.contentWindow! )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tframe.onerror = ( event : Event | string ) => {\n\t\t\t\t\tfail( typeof event === 'string' ? new Error( event ) : ( event as ErrorEvent ).error || event )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi_resource() {\n\t\t\treturn this.uri().replace( /#.*/, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmessage_listener() {\n\t\t\treturn new $mol_dom_listener(\n\t\t\t\t$mol_dom_context,\n\t\t\t\t'message',\n\t\t\t\t$mol_wire_async( this ).message_receive\n\t\t\t)\n\t\t}\n\t\t\n\t\tmessage_receive( event?: MessageEvent<[ string, string ]> ) {\n\t\t\t\n\t\t\tif( !event ) return\n\t\t\tif( event.source !== this.window() ) return\n\t\t\tif( !Array.isArray( event.data ) ) return\n\t\t\t\n\t\t\t(this.message() as any)[ event.data[0] ]?.( event )\n\t\t}\n\n\t\turi_change( event: MessageEvent<[ string, string ]> ) {\n\t\t\tthis.$.$mol_wait_timeout( 1000 )\n\t\t\tthis.uri( event.data[1] )\n\t\t}\n\n\t\tauto() {\n\t\t\treturn [\n\t\t\t\tthis.message_listener(),\n\t\t\t\tthis.window(),\n\t\t\t]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/embed/native/native.view.css\",\n \"[mol_embed_native] {\\n\\tmax-width: 100%;\\n\\tmax-height: 100vh;\\n\\tobject-fit: cover;\\n\\tdisplay: flex;\\n\\tflex: 1 1 auto;\\n\\tobject-position: top left;\\n\\tborder-radius: var(--mol_gap_round);\\n\\taspect-ratio: 4/3;\\n}\\n\"\n) }","$mol_icon_youtube $mol_icon path \\M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z\n","$mol_frame $mol_embed_native\n\tdom_name \\iframe\n\tattr *\n\t\t^\n\t\tdata null\n\t\ttype null\n\t\tsrc <= uri? \\about:config\n\t\tsrcdoc <= html null\n\t\tallow <= allow \\\n\t\t- allowfullscreen <=\n\tfullscreen true\n\taccelerometer true\n\tautoplay true\n\tencription true\n\tgyroscope true\n\tpip true\n\tclipboard_read true\n\tclipboard_write true\n","namespace $.$$ {\n\n\t/**\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_frame_demo\n\t */\n\texport class $mol_frame extends $.$mol_frame {\n\t\t\n\t\twindow() {\n\t\t\t// if( this.html() ) return ( this.dom_node() as HTMLIFrameElement ).contentWindow!\n\t\t\treturn super.window()\n\t\t}\n\n\t\tallow() {\n\t\t\treturn [\n\t\t\t\t... this.fullscreen() ? [ 'fullscreen' ] : [] ,\n\t\t\t\t... this.accelerometer() ? [ 'accelerometer' ] : [] ,\n\t\t\t\t... this.autoplay() ? [ 'autoplay' ] : [] ,\n\t\t\t\t... this.encription() ? [ 'encrypted-media' ] : [] ,\n\t\t\t\t... this.gyroscope() ? [ 'gyroscope' ] : [] ,\n\t\t\t\t... this.pip() ? [ 'picture-in-picture' ] : [] ,\n\t\t\t\t... this.clipboard_read() ? [ `clipboard-read ${ this.uri() }` ] : [],\n\t\t\t\t... this.clipboard_write() ? [ `clipboard-write ${ this.uri() }` ] : [],\n\t\t\t].join('; ')\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t$mol_style_define( $mol_frame , {\n\t\tborder: {\n\t\t\tstyle: 'none',\n\t\t},\n\t\tmaxHeight: $mol_style_unit.vh(100),\n\t} )\n}\n","$mol_embed_youtube $mol_check\n\turi \\\n\tvideo_preview \\\n\tvideo_id \\\n\tchecked? <=> active? false\n\tsub /\n\t\t<= Image $mol_image\n\t\t\ttitle <= title \\\n\t\t\turi <= video_preview \\\n\t\t<= Hint $mol_icon_youtube\n\t\t<= Frame $mol_frame\n\t\t\ttitle <= title \\\n\t\t\turi <= video_embed \\\n\n","namespace $.$$ {\n\texport class $mol_embed_youtube extends $.$mol_embed_youtube {\n\t\t\n\t\t@ $mol_mem\n\t\tvideo_embed() {\n\t\t\treturn `https://www.youtube.com/embed/${ encodeURIComponent( this.video_id() ) }?autoplay=1&loop=1`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tvideo_id() {\n\t\t\treturn this.uri().match( /^https\\:\\/\\/www\\.youtube\\.com\\/(?:embed\\/|shorts\\/|watch\\?v=)([^\\/&?#]+)/ )?.[1]\n\t\t\t\t?? this.uri().match( /^https\\:\\/\\/youtu\\.be\\/([^\\/&?#]+)/ )?.[1]\n\t\t\t\t?? 'about:blank'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tvideo_preview() {\n\t\t\treturn `https://i.ytimg.com/vi/${ this.video_id() }/sddefault.jpg`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\treturn this.active()\n\t\t\t\t? [ this.Frame() ]\n\t\t\t\t: [ this.Image(), this.Hint() ]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/embed/youtube/youtube.view.css\",\n \"[mol_embed_youtube] {\\n\\tpadding: 0;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_embed_youtube_image] {\\n\\tflex: auto 1 1;\\n}\\n\\n[mol_embed_youtube_hint] {\\n\\tposition: absolute;\\n left: 50%;\\n top: 50%;\\n width: 50%;\\n height: 50%;\\n opacity: 0.3;\\n transform: translate(-50%, -50%);\\n}\\n\\n[mol_embed_youtube]:hover [mol_embed_youtube_hint] {\\n\\topacity: .6;\\n}\\n\"\n) }","$mol_embed_any $mol_view\n\tImage $mol_image\n\t\ttitle <= title \\\n\t\turi <= uri \\\n\tObject $mol_embed_native\n\t\ttitle <= title \\\n\t\turi <= uri \\\n\tYoutube $mol_embed_youtube\n\t\ttitle <= title \\\n\t\turi <= uri \\\n","namespace $.$$ {\n\t\n\texport class $mol_embed_any extends $.$mol_embed_any {\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst uri = this.uri()\n\t\t\t\t\n\t\t\t\tif( /\\b(png|gif|jpg|jpeg|jfif|webp|svg)\\b/.test( uri ) ) return 'image'\n\t\t\t\tif( /^https:\\/\\/www\\.youtube\\.com\\//.test( uri ) ) return 'youtube'\n\t\t\t\tif( /^https:\\/\\/youtu\\.be\\//.test( uri ) ) return 'youtube'\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 'image'\n\t\t\t}\n\t\t\t\n\t\t\treturn 'object'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsub() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'image': return [ this.Image() ]\n\t\t\t\tcase 'youtube': return [ this.Youtube() ]\n\t\t\t\tdefault: return [ this.Object() ]\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_text $mol_list\n\turi_base \\\n\ttext \\\n\tparam \\\n\tflow_tokens /\n\tblock_text* \\\n\tauto /\n\t\t<= auto_scroll null\n\t- \\Blocks\n\tParagraph* $mol_paragraph\n\t\tsub <= block_content* /\n\tQuote* $mol_text\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttext <= quote_text* \\\n\t\thighlight <= highlight \\\n\t\tauto_scroll null\n\tList* $mol_text_list\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttype <= list_type* \\-\n\t\ttext <= list_text* \\\n\t\thighlight <= highlight \\\n\titem_index* 0\n\tHeader* $mol_text_header\n\t\tminimal_height 40\n\t\tlevel <= header_level* 1\n\t\tcontent <= block_content* /\n\t\targ <= header_arg* *\n\tPre* $mol_text_code\n\t\ttext <= pre_text* \\\n\t\thighlight <= highlight \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\tsidebar_showed <= pre_sidebar_showed <= code_sidebar_showed true\n\tCut* $mol_view dom_name \\hr\n\t- \\Table\n\tTable* $mol_grid\n\t\thead_cells <= table_head_cells* /\n\t\trows <= table_rows* /\n\tTable_row* $mol_grid_row\n\t\tcells <= table_cells* /\n\tTable_cell* $mol_text\n\t\tauto_scroll null\n\t\thighlight <= highlight \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttext <= table_cell_text* \\\n\t- \\Grid\n\tGrid* $mol_grid\n\t\trows <= grid_rows* /\n\tGrid_row* $mol_grid_row\n\t\tcells <= grid_cells* /\n\tGrid_cell* $mol_text\n\t\tauto_scroll null\n\t\thighlight <= highlight \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\ttext <= grid_cell_text* \\\n\t- \\Lines\n\tString* $mol_dimmer\n\t\tdom_name \\span\n\t\tneedle <= highlight \\\n\t\thaystack <= line_text* \\\n\tSpan* $mol_text_span\n\t\tdom_name \\span\n\t\ttype <= line_type* \\\n\t\tsub <= line_content* /\n\tCode_line* $mol_text_code_row\n\t\tnumb_showed false\n\t\thighlight <= highlight \\\n\t\ttext <= line_text* \\\n\t\turi_resolve* <= uri_resolve* \\\n\t\tsyntax <= code_syntax null\n\tLink* $mol_link_iconed\n\t\turi <= link_uri* \\\n\t\tcontent <= line_content* /\n\tLink_http* $mol_link_iconed\n\t\turi <= link_uri* \\\n\t\tcontent / <= link_host* \\\n\tEmbed* $mol_embed_any\n\t\turi <= link_uri* \\\n\t\ttitle <= line_text* \\\n\n$mol_text_header $mol_paragraph\n\tlevel 1\n\tsub /\n\t\t<= Link $mol_link\n\t\t\targ <= arg *\n\t\t\thint @ \\Permalink to this section\n\t\t\tsub <= content /\n\n$mol_text_span $mol_paragraph\n\tdom_name \\span\n\tattr *\n\t\t^\n\t\tmol_text_type <= type \\\n","namespace $.$$ {\n\t/**\n\t * Markdown visualizer.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_text_demo\n\t */\n\texport class $mol_text extends $.$mol_text {\n\t\t\n\t\t@ $mol_mem\n\t\tflow_tokens() {\n\t\t\tconst tokens = [] as { name : string , found : string , chunks: string[] }[]\n\t\t\tthis.$.$mol_syntax2_md_flow.tokenize(\n\t\t\t\tthis.text(),\n\t\t\t\t( name , found , chunks )=> tokens.push({ name , found , chunks }),\n\t\t\t)\n\t\t\treturn tokens as Readonly< typeof tokens >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tblock_type( index: number ) {\n\t\t\treturn this.flow_tokens()[ index ].name\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trows() {\n\t\t\treturn this.flow_tokens().map( ( { name }, index )=> {\n\t\t\t\t\n\t\t\t\tswitch( name ) {\n\t\t\t\t\tcase 'quote': return this.Quote( index )\n\t\t\t\t\tcase 'header': return this.Header( index )\n\t\t\t\t\tcase 'list': return this.List( index )\n\t\t\t\t\tcase 'code': return this.Pre( index )\n\t\t\t\t\tcase 'code-indent': return this.Pre( index )\n\t\t\t\t\tcase 'table': return this.Table( index )\n\t\t\t\t\tcase 'grid': return this.Grid( index )\n\t\t\t\t\tcase 'cut': return this.Cut( index )\n\t\t\t\t\tdefault: return this.Paragraph( index )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tparam() {\n\t\t\treturn this.toString().replace( /^.*?[\\)>]\\./, '' ).replace( /[(<>)]/g, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\theader_level( index: number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[0].length\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\theader_arg( index: number ) {\n\t\t\treturn {\n\t\t\t\t[ this.param() ]: this.block_text( index )\n\t\t\t}\n\t\t}\n\t\t\n\t\tlist_type( index: number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[1] ?? ''\n\t\t}\n\t\t\n\t\titem_index( index: number ) {\n\t\t\treturn this.flow_tokens().slice( 0, index ).filter( token => token.name === 'block' ).length + 1\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tpre_text( index : number ) {\n\t\t\tconst token = this.flow_tokens()[ index ]\n\t\t\treturn ( token.chunks[2] ?? token.chunks[0].replace( /^(\\t| (?:\\+\\+|--|\\*\\*| ))/gm , '' ) ).replace( /[\\n\\r]*$/ , '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tquote_text( index : number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[0].replace( /^[>\"] /mg , '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlist_text( index : number ) {\n\t\t\treturn this.flow_tokens()[ index ].chunks[0].replace( /^([-*+]|(?:\\d+[\\.\\)])+) ?/mg , '' ).replace( /^ ?/mg, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tcell_content( indexBlock : number ) {\n\t\t\treturn this.flow_tokens()[ indexBlock ].chunks[ 0 ]\n\t\t\t.split( /\\r?\\n/g )\n\t\t\t.filter( row => row && !/\\|--/.test( row ) )\n\t\t\t.map( ( row , rowId ) => {\n\t\t\t\treturn row.split( /\\|/g )\n\t\t\t\t.filter( cell => cell )\n\t\t\t\t.map( ( cell , cellId )=> cell.trim() )\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_rows( blockId : number ) {\n\t\t\treturn this.cell_content( blockId )\n\t\t\t.slice( 1 )\n\t\t\t.map( ( row , rowId )=> this.Table_row({ block : blockId , row : rowId + 1 }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_head_cells( blockId : number ) {\n\t\t\treturn this.cell_content( blockId )[ 0 ]\n\t\t\t.map( ( cell , cellId )=> this.Table_cell({ block : blockId , row : 0 , cell : cellId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_cells( id : { block : number , row : number } ) {\n\t\t\treturn this.cell_content( id.block )[ id.row ]\n\t\t\t.map( ( cell , cellId )=> this.Table_cell({ block : id.block , row : id.row , cell : cellId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttable_cell_text( id : { block : number , row : number , cell : number } ) {\n\t\t\treturn this.cell_content( id.block )[ id.row ][ id.cell ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_content( indexBlock: number ) {\n\t\t\treturn [ ... this.flow_tokens()[ indexBlock ].chunks[ 0 ].match( /(?:^! .*?$\\r?\\n?)+(?:^ +! .*?$\\r?\\n?)*/gm )! ]\n\t\t\t.map( ( row , rowId ) => {\n\t\t\t\tconst cells = [] as string[]\n\t\t\t\tfor( const line of row.trim().split( /\\r?\\n/ ) ) {\n\t\t\t\t\tconst [ _, indent, content ] = /^( *)! (.*)/.exec( line )!\n\t\t\t\t\tconst col = Math.ceil( indent.length / 2 )\n\t\t\t\t\tcells[ col ] = ( cells[ col ] ? cells[ col ] + '\\n' : '' ) + content\n\t\t\t\t}\n\t\t\t\treturn cells\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_rows( blockId: number ) {\n\t\t\treturn this.grid_content( blockId )\n\t\t\t.map( ( row, rowId )=> this.Grid_row({ block: blockId , row: rowId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_cells( id: { block: number, row: number } ) {\n\t\t\treturn this.grid_content( id.block )[ id.row ]\n\t\t\t.map( ( cell , cellId )=> this.Grid_cell({ block: id.block, row: id.row, cell: cellId }) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgrid_cell_text( id: { block: number, row: number, cell: number } ) {\n\t\t\treturn this.grid_content( id.block )[ id.row ][ id.cell ]\n\t\t}\n\t\t\n\t\turi_base() {\n\t\t\treturn $mol_dom_context.document.location.href\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi_base_abs() {\n\t\t\treturn new URL( this.uri_base() , $mol_dom_context.document.location.href )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\turi_resolve( uri: string ) {\n\t\t\t\n\t\t\tif( /^(\\w+script+:)+/.test( uri ) ) return null as any as string\n\t\t\t\n\t\t\tif( /^#\\!/.test( uri ) ) {\n\t\t\t\t\n\t\t\t\tconst params: Record< string, string > = {}\n\t\t\t\n\t\t\t\tfor( const chunk of uri.slice(2).split( this.$.$mol_state_arg.separator ) ) {\n\t\t\t\t\tif( !chunk ) continue\n\t\t\t\t\tconst vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join( '=' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.$.$mol_state_arg.link( params )\n\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst url = new URL( uri , this.uri_base_abs() )\n\t\t\t\treturn url.toString()\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn null as any as string\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tcode_syntax() {\n\t\t\treturn this.$.$mol_syntax2_md_code\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tblock_text( index: number ) {\n\t\t\t\n\t\t\tconst token = this.flow_tokens()[ index ]\n\t\t\t\n\t\t\tswitch( token.name ) {\n\t\t\t\tcase 'header' : return token.chunks[2]\n\t\t\t\tdefault: return token.chunks[0]\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tblock_content( index: number ) {\n\t\t\treturn this.line_content([ index ])\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_tokens( path: readonly number[] ) {\n\t\t\t\n\t\t\tconst tokens = [] as { name : string , found : string , chunks: string[] }[]\n\t\t\t\n\t\t\tthis.$.$mol_syntax2_md_line.tokenize(\n\t\t\t\tthis.line_text( path ),\n\t\t\t\t( name , found , chunks )=> tokens.push({ name , found , chunks }),\n\t\t\t)\n\t\t\t\n\t\t\treturn tokens as Readonly< typeof tokens >\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_token( path: readonly number[] ) {\n\t\t\tconst tokens = this.line_tokens( path.slice( 0, path.length - 1 ) )\n\t\t\treturn tokens[ path[ path.length - 1 ] ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_type( path: readonly number[] ) {\n\t\t\treturn this.line_token( path ).name\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_text( path: readonly number[] ) {\n\t\t\t\n\t\t\tif( path.length === 1 ) return this.block_text( path[0] )\n\t\t\t\n\t\t\tconst { name, found, chunks } = this.line_token( path )\n\t\t\t\n\t\t\tswitch( name ) {\n\t\t\t\tcase 'link': return chunks[0] || chunks[1].replace( /^.*?\\/\\/|\\/.*$/g, '' )\n\t\t\t\tcase 'text-link': return chunks[0] || chunks[1].replace( /^.*?\\/\\/|\\/.*$/g, '' )\n\t\t\t\tdefault: return ( chunks[0] || chunks[1] || chunks[2] ) ?? found\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tline_content( path: readonly number[] ) {\n\t\t\treturn this.line_tokens( path ).map( ( { name, chunks }, index )=> {\n\t\t\t\t\n\t\t\t\tconst path2 = [ ... path, index ]\n\t\t\t\t\n\t\t\t\tswitch( name ) {\n\t\t\t\t\tcase 'embed': return this.Embed( path2 )\n\t\t\t\t\tcase 'link' : return this.Link( path2 )\n\t\t\t\t\tcase 'text-link-http': return this.Link_http( path2 )\n\t\t\t\t\tcase 'text-link' : return this.Link( path2 )\n\t\t\t\t\tcase 'image-link': return this.Embed( path2 )\n\t\t\t\t\tcase 'code': return this.Code_line( path2 )\n\t\t\t\t\tcase '': return this.String( path2 )\n\t\t\t\t\tdefault: return this.Span( path2 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlink_uri( path: readonly number[] ) {\n\t\t\t\n\t\t\tconst token = this.line_token( path )\n\t\t\tconst uri = this.uri_resolve( token.chunks[1] ?? token.found )\n\t\t\t\n\t\t\tif( !uri ) throw new Error( 'Bad link' )\n\t\t\treturn uri\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlink_host( path: readonly number[] ) {\n\t\t\treturn this.link_uri( path ).replace( /^.*?\\/\\/|\\/.*$/g, '' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tauto_scroll() {\n\t\t\tfor( const [ index, token ] of this.flow_tokens().entries() ) {\n\t\t\t\t\n\t\t\t\tif( token.name !== 'header' ) continue\n\t\t\t\t\n\t\t\t\tconst header = this.Header( index )\n\t\t\t\tif( !header.Link().current() ) continue\n\t\t\t\t\n\t\t\t\tnew $mol_after_tick(\n\t\t\t\t\t()=> this.ensure_visible( header )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t}\n\n\t}\n\t\n\texport class $mol_text_header extends $.$mol_text_header {\n\t\t\n\t\tdom_name() {\n\t\t\treturn 'h' + this.level()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/text/text/text.view.css\",\n \"[mol_text] {\\n\\tline-height: 1.5em;\\n\\tbox-sizing: border-box;\\n\\tborder-radius: var(--mol_gap_round);\\n\\twhite-space: pre-line;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex: 0 0 auto;\\n\\ttab-size: 4;\\n}\\n\\n[mol_text_paragraph] {\\n\\tpadding: var(--mol_gap_text);\\n\\toverflow: auto;\\n\\toverflow-x: overlay;\\n\\tmax-width: 100%;\\n\\tdisplay: block;\\n\\tmax-width: 60rem;\\n}\\n\\n[mol_text_span] {\\n\\tdisplay: inline;\\n}\\n\\n[mol_text_string] {\\n\\tdisplay: inline;\\n\\tflex: 0 1 auto;\\n\\twhite-space: normal;\\n}\\n\\n[mol_text_quote] {\\n\\tmargin: var(--mol_gap_block);\\n\\tpadding: var(--mol_gap_block);\\n\\tbackground: var(--mol_theme_card);\\n\\tbox-shadow: 0 0 0 1px var(--mol_theme_back);\\n}\\n\\n[mol_text_header] {\\n\\tdisplay: block;\\n\\ttext-shadow: 0 0;\\n\\tfont-weight: normal;\\n}\\n\\n* + [mol_text_header] {\\n\\tmargin-top: 0.75rem;\\n}\\n\\nh1[mol_text_header] {\\n\\tfont-size: 1.5rem;\\n}\\n\\nh2[mol_text_header] {\\n\\tfont-size: 1.5rem;\\n\\tfont-style: italic;\\n}\\n\\nh3[mol_text_header] {\\n\\tfont-size: 1.25rem;\\n}\\n\\nh4[mol_text_header] {\\n\\tfont-size: 1.25em;\\n\\tfont-style: italic;\\n}\\n\\nh5[mol_text_header] {\\n\\tfont-size: 1rem;\\n}\\n\\nh6[mol_text_header] {\\n\\tfont-size: 1rem;\\n\\tfont-style: italic;\\n}\\n\\n[mol_text_header_link] {\\n\\tcolor: inherit;\\n}\\n\\n[mol_text_table_cell] {\\n\\twidth: auto;\\n\\tdisplay: table-cell;\\n\\tvertical-align: baseline;\\n\\tpadding: 0;\\n\\tborder-radius: 0;\\n}\\n\\n[mol_text_grid_cell] {\\n\\twidth: auto;\\n\\tdisplay: table-cell;\\n\\tvertical-align: top;\\n\\tpadding: 0;\\n\\tborder-radius: 0;\\n}\\n\\n[mol_text_cut] {\\n\\tborder: none;\\n\\twidth: 100%;\\n\\tbox-shadow: 0 0 0 1px var(--mol_theme_line);\\n}\\n\\n[mol_text_link_http],\\n[mol_text_link] {\\n\\tpadding: 0;\\n\\tdisplay: inline;\\n\\twhite-space: nowrap;\\n}\\n\\n[mol_text_link_icon] + [mol_text_embed] {\\n\\tmargin-left: -1.5rem;\\n}\\n\\n[mol_text_embed_youtube] {\\n\\tdisplay: inline;\\n}\\n\\n[mol_text_embed_youtube_image],\\n[mol_text_embed_youtube_frame],\\n[mol_text_embed_object] {\\n\\tobject-fit: contain;\\n\\tobject-position: center;\\n\\tdisplay: inline;\\n\\twidth: 100vw;\\n\\tmax-height: calc( 100vh - 6rem );\\n\\tvertical-align: top;\\n}\\n[mol_text_embed_object_fallback] {\\n\\tpadding: 0;\\n}\\n[mol_text_embed_image] {\\n\\tobject-fit: contain;\\n\\tobject-position: center;\\n\\tdisplay: inline;\\n\\t/* max-height: calc( 100vh - 6rem ); */\\n\\tvertical-align: top;\\n}\\n\\n[mol_text_pre] {\\n\\twhite-space: pre;\\n\\toverflow-x: auto;\\n\\toverflow-x: overlay;\\n\\ttab-size: 2;\\n}\\n\\n[mol_text_code_line] {\\n\\tdisplay: inline-block;\\n\\twhite-space: nowrap;\\n}\\n\\n[mol_text_type=\\\"strong\\\"] {\\n\\ttext-shadow: 0 0;\\n\\tfilter: contrast(1.5);\\n}\\n\\n[mol_text_type=\\\"emphasis\\\"] {\\n\\tfont-style: italic;\\n}\\n\\n[mol_text_type=\\\"insert\\\"] {\\n\\tcolor: var(--mol_theme_special);\\n}\\n\\n[mol_text_type=\\\"delete\\\"] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_text_type=\\\"remark\\\"] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_text_type=\\\"quote\\\"] {\\n\\tfont-style: italic;\\n}\\n\"\n) }","$mol_string_button $mol_string\n","namespace $ { $mol_style_attach( \"mol/string/button/button.view.css\",\n \"[mol_string_button]:not(:placeholder-shown):not(:focus):not(:hover):not(:disabled) {\\n\\tcolor: var(--mol_theme_control);\\n\\tbackground: transparent;\\n\\tbox-shadow: none;\\n}\\n\"\n) }","$mol_row $mol_view\n","namespace $ { $mol_style_attach( \"mol/row/row.view.css\",\n \"[mol_row] {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\talign-items: flex-start;\\n\\talign-content: flex-start;\\n\\tjustify-content: flex-start;\\n\\tpadding: var(--mol_gap_block);\\n\\tgap: var(--mol_gap_block);\\n\\tflex: 0 0 auto;\\n\\tbox-sizing: border-box;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_row] > * {\\n\\tmax-width: 100%;\\n}\\n\"\n) }","$mol_form $mol_list\n\tsubmit_allowed true\n\tsubmit_blocked false\n\tevent *\n\t\t^\n\t\tkeydown?event <=> keydown?event null\n\tsubmit?event null\n\trows /\n\t\t<= Body $mol_list\n\t\t\tsub <= body <= form_fields /$mol_form_field\n\t\t<= Foot $mol_row\n\t\t\tsub <= foot <= buttons /$mol_view\n","namespace $.$$ {\n\n\t/**\n\t * Form, that contains form fields and action buttons.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_form_demo\n\t */\n\texport class $mol_form extends $.$mol_form {\n\t\t\n\t\t@ $mol_mem\n\t\tform_fields() {\n\t\t\treturn [ ... this.view_find( view => view instanceof $mol_form_field ) ]\n\t\t\t\t.map( path => path[ path.length - 1 ] ) as any as readonly $mol_form_field[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsubmit_allowed() {\n\t\t\treturn this.form_fields().every( field => !field.bid() )\n\t\t}\n\n\t\tsubmit_blocked( ) {\n\t\t\treturn !this.submit_allowed()\n\t\t}\n\t\t\n\t\tkeydown( next : KeyboardEvent ) {\n\t\t\tif( next.ctrlKey && next.keyCode === $mol_keyboard_code.enter && !this.submit_blocked() ) this.submit( event )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/form/form.view.css\",\n \"[mol_form] {\\r\\n\\tgap: var(--mol_gap_block);\\r\\n}\\r\\n\\r\\n[mol_form_body] {\\r\\n\\tgap: var(--mol_gap_block);\\r\\n}\"\n) }","$mol_text_list $mol_text\n\tauto_scroll null\n\tattr *\n\t\t^\n\t\tmol_text_list_type <= type \\\n\tParagraph* $mol_text_list_item\n\t\tindex <= item_index*\n\t\tsub <= block_content*\n\n$mol_text_list_item $mol_paragraph\n\tattr *\n\t\t^\n\t\tmol_text_list_item_index <= index 0\n","namespace $ { $mol_style_attach( \"mol/text/list/list.view.css\",\n \"[mol_text_list] {\\r\\n\\tpadding-left: 1.75rem;\\r\\n}\\r\\n\\r\\n[mol_text_list_item] {\\r\\n\\tcontain: none;\\r\\n\\tdisplay: list-item;\\r\\n}\\r\\n\\r\\n[mol_text_list_item]::before {\\r\\n\\tcontent: attr( mol_text_list_item_index ) \\\".\\\";\\r\\n\\twidth: 1.25rem;\\r\\n\\tdisplay: inline-block;\\r\\n\\tposition: absolute;\\r\\n\\tmargin-left: -1.75rem;\\r\\n\\ttext-align: end;\\r\\n}\\r\\n\\r\\n[mol_text_list_type=\\\"-\\\"] > [mol_text_list_item]::before,\\r\\n[mol_text_list_type=\\\"*\\\"] > [mol_text_list_item]::before {\\r\\n\\tcontent: \\\"•\\\";\\r\\n}\\r\\n\"\n) }","$hyoo_survey_meet_form $mol_page\n\tmeet $hyoo_survey_meet\n\tTitle $mol_string_button\n\t\tvalue? <=> title? \\\n\t\thint \\Как всё прошло?\n\tbody /\n\t\t<= Pleasant_field $mol_form_field\n\t\t\tname \\Что понравилось?\n\t\t\tcontrol <= Pleasant $mol_textarea\n\t\t\t\tvalue? <=> pleasant? \\\n\t\t<= Improvement_field $mol_form_field\n\t\t\tname \\Что можно улучшить?\n\t\t\tcontrol <= Improvement $mol_textarea\n\t\t\t\tvalue? <=> improvement? \\\n\t\t<= Request_field $mol_form_field\n\t\t\tname \\Идеи? Предложения?\n\t\t\tcontrol <= Request $mol_textarea\n\t\t\t\tvalue? <=> request? \\\n\t\t<= Opinions $mol_list\n\t\t\trows <= opinions /\n\t\t\t\t<= Opinion*0 $mol_text\n\t\t\t\t\ttext <= opinion* \\\n","namespace $.$$ {\n\texport class $hyoo_survey_meet_form extends $.$hyoo_survey_meet_form {\n\n\t\ttitle( next?: string ) {\n\t\t\treturn this.meet().Title( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\tpleasant( next?: string ) {\n\t\t\treturn this.meet().opinion_my()?.Pleasant( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\timprovement( next?: string ) {\n\t\t\treturn this.meet().opinion_my()?.Improvement( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\trequest( next?: string ) {\n\t\t\treturn this.meet().opinion_my()?.Request( next )?.val( next ) ?? ''\n\t\t}\n\n\t\t@ $mol_mem\n\t\topinions() {\n\t\t\treturn this.meet().Opinions()?.keys().map( key => this.Opinion( key ) ) ?? []\n\t\t}\n\n\t\topinion( key: string ) {\n\t\t\tconst opinion = this.meet().Opinions()?.key( key )?.remote()\n\t\t\tif( !opinion ) return ''\n\t\t\treturn ( opinion.Pleasant()?.val() ?? '' ) + '\\n'\n\t\t\t\t+ ( opinion.Improvement()?.val() ?? '' ) + '\\n'\n\t\t\t\t+ ( opinion.Request()?.val() ?? '' ) + '\\n'\n\t\t}\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t\n\t$mol_style_define( $hyoo_survey_meet_form, {\n\t\t\n\t\tOpinion: {\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card,\n\t\t\t},\n\t\t\tmargin: $mol_gap.block, \n\t\t},\n\t\t\n\t} )\n\t\n}\n","$hyoo_survey_app $mol_book2_catalog\n\t- \\Конструктивный отзыв делает мир лучше!\n\tparam \\meet\n\trealm $hyoo_crus_realm\n\tmenu_title \\$hyoo_survey\n\tmenu_tools /\n\t\t<= Meet_add $mol_button_minor\n\t\t\tclick? <=> meet_add? null\n\t\t\tsub /\n\t\t\t\t<= Meet_add_icon $mol_icon_plus\n\tspread_ids /string\n\t\t\\1\n\t\t\\2\n\tSpread*0 <= Meet* $hyoo_survey_meet_form\n\t\tmeet <= meet* $hyoo_survey_meet\n","namespace $ {\n\texport class $hyoo_survey_person extends $hyoo_crus_entity.with({\n\t\tMeets: $hyoo_crus_list_ref_to( ()=> $hyoo_survey_meet ),\n\t}) {\n\t\t\n\t\t@ $mol_action\n\t\tmeet_make() {\n\t\t\treturn this.Meets(true)?.remote_make( $hyoo_crus_rank_orgy )\n\t\t}\n\n\t}\n}\n","namespace $.$$ {\n\texport class $hyoo_survey_app extends $.$hyoo_survey_app {\n\t\t\n\t\t@ $mol_mem\n\t\tmeet_id( next?: $hyoo_crus_ref ) {\n\t\t\tconst id = this.$.$mol_state_arg.value( 'meet', next?.description )\n\t\t\tif( !id ) return null\n\t\t\treturn $hyoo_crus_ref( id )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprofile() {\n\t\t\treturn this.realm().home().hall_by( $hyoo_survey_person, $hyoo_crus_rank_public )\n\t\t}\n\n\t\tmeet_add() {\n\t\t\tconst meet = this.profile()!.meet_make()!\n\t\t\tthis.meet_id( meet.ref() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tspread_ids() {\n\t\t\treturn this.profile()?.Meets()?.remote_list().map( meet => meet.ref().description! ) ?? []\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tmeet( id: string ) {\n\t\t\treturn this.realm().Node( $hyoo_crus_ref( id ), $hyoo_survey_meet )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport function $mol_test( set : { [ name : string ] : string | ( ( 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 : $ )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $ )=> any >\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\tconst res = test( context )\n\t\t\tif( $mol_promise_like( res ) ) {\n\t\t\t\tawait new Promise( ( done, fail )=> {\n\t\t\t\t\tres.then( done, fail )\n\t\t\t\t\tsetTimeout( ()=> fail( new Error( 'Test timeout: ' + test.name ) ), 1000 )\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t$$.$mol_log3_done({\n\t\t\tplace: '$mol_test',\n\t\t\tmessage: 'All tests passed',\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( async ()=> {\n\t\t\t\n\t\t\tscheduled = false\n \t\t\t\n\t\t\tawait $mol_test_run()\n\t\t\t$$.$mol_test_complete()\n\t\t\t\n\t\t} , 1000 )\n\t\t\n\t}\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' ] as const\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} as any , {\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: any ) {\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: any ) {\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","namespace $ {\n\t\n\texport function $mol_test_complete() {\n\t\tprocess.exit(0)\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> $.$mol_fail_log = ()=> false )\n}\n\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_log3_come = ()=> {}\n\t\t$.$mol_log3_done = ()=> {}\n\t\t$.$mol_log3_fail = ()=> {}\n\t\t$.$mol_log3_warn = ()=> {}\n\t\t$.$mol_log3_rise = ()=> {}\n\t\t$.$mol_log3_area = ()=> ()=> {}\n\t} )\n\n}\n","/** @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 =