cruzo 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +268 -0
- package/assets/cruzo.png +0 -0
- package/dist/component-CH-TJ5VF.js +1850 -0
- package/dist/component-CH-TJ5VF.js.map +1 -0
- package/dist/component.d.ts +62 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/components-registry.service.d.ts +21 -0
- package/dist/components-registry.service.d.ts.map +1 -0
- package/dist/http.d.ts +54 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +355 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.d.ts +39 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/lib/component.d.ts +62 -0
- package/dist/lib/component.d.ts.map +1 -0
- package/dist/lib/components-registry.service.d.ts +21 -0
- package/dist/lib/components-registry.service.d.ts.map +1 -0
- package/dist/lib/http.d.ts +54 -0
- package/dist/lib/http.d.ts.map +1 -0
- package/dist/lib/index.d.ts +14 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/interfaces.d.ts +39 -0
- package/dist/lib/interfaces.d.ts.map +1 -0
- package/dist/lib/router.service.d.ts +84 -0
- package/dist/lib/router.service.d.ts.map +1 -0
- package/dist/lib/rx-scope.d.ts +76 -0
- package/dist/lib/rx-scope.d.ts.map +1 -0
- package/dist/lib/rx.d.ts +21 -0
- package/dist/lib/rx.d.ts.map +1 -0
- package/dist/lib/service.d.ts +10 -0
- package/dist/lib/service.d.ts.map +1 -0
- package/dist/lib/template.d.ts +141 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/vm.d.ts +118 -0
- package/dist/lib/vm.d.ts.map +1 -0
- package/dist/router.service-CYzZn3L6.js +231 -0
- package/dist/router.service-CYzZn3L6.js.map +1 -0
- package/dist/router.service.d.ts +84 -0
- package/dist/router.service.d.ts.map +1 -0
- package/dist/rx-scope.d.ts +76 -0
- package/dist/rx-scope.d.ts.map +1 -0
- package/dist/rx.d.ts +21 -0
- package/dist/rx.d.ts.map +1 -0
- package/dist/service.d.ts +10 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/template.d.ts +141 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/ui-components/button-group/button-group.component.d.ts +17 -0
- package/dist/ui-components/button-group/button-group.component.d.ts.map +1 -0
- package/dist/ui-components/button-group.css +38 -0
- package/dist/ui-components/button-group.js +35 -0
- package/dist/ui-components/button-group.js.map +1 -0
- package/dist/ui-components/input/input.component.d.ts +41 -0
- package/dist/ui-components/input/input.component.d.ts.map +1 -0
- package/dist/ui-components/input.css +13 -0
- package/dist/ui-components/input.js +104 -0
- package/dist/ui-components/input.js.map +1 -0
- package/dist/ui-components/modal/modal.component.d.ts +32 -0
- package/dist/ui-components/modal/modal.component.d.ts.map +1 -0
- package/dist/ui-components/modal.css +35 -0
- package/dist/ui-components/modal.js +45 -0
- package/dist/ui-components/modal.js.map +1 -0
- package/dist/ui-components/router-link/router-link.d.ts +29 -0
- package/dist/ui-components/router-link/router-link.d.ts.map +1 -0
- package/dist/ui-components/router-link.js +46 -0
- package/dist/ui-components/router-link.js.map +1 -0
- package/dist/ui-components/select/select.component.d.ts +30 -0
- package/dist/ui-components/select/select.component.d.ts.map +1 -0
- package/dist/ui-components/select.css +111 -0
- package/dist/ui-components/select.js +77 -0
- package/dist/ui-components/select.js.map +1 -0
- package/dist/ui-components/spinner/spinner.component.d.ts +30 -0
- package/dist/ui-components/spinner/spinner.component.d.ts.map +1 -0
- package/dist/ui-components/spinner.css +106 -0
- package/dist/ui-components/spinner.js +83 -0
- package/dist/ui-components/spinner.js.map +1 -0
- package/dist/ui-components/upload/upload.component.d.ts +17 -0
- package/dist/ui-components/upload/upload.component.d.ts.map +1 -0
- package/dist/ui-components/upload.css +31 -0
- package/dist/ui-components/upload.js +34 -0
- package/dist/ui-components/upload.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +26 -0
- package/dist/utils.js.map +1 -0
- package/dist/vm.d.ts +118 -0
- package/dist/vm.d.ts.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AbstractComponent } from "./component";
|
|
2
|
+
import { HttpMethod, HttpRequestOptions } from "./http";
|
|
3
|
+
import { Rx } from "./rx";
|
|
4
|
+
declare global {
|
|
5
|
+
interface ScopeEventMap {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export interface AbstractComponentConstructor {
|
|
9
|
+
new (): AbstractComponent;
|
|
10
|
+
selector: string;
|
|
11
|
+
}
|
|
12
|
+
export type ComponentsRegistryState = {
|
|
13
|
+
[key: string]: Map<HTMLElement, AbstractComponent>;
|
|
14
|
+
};
|
|
15
|
+
export type ComponentsList = AbstractComponent[];
|
|
16
|
+
export interface ComponentDescriptor<A> {
|
|
17
|
+
config?: A;
|
|
18
|
+
}
|
|
19
|
+
export interface ScopeEvent<D> {
|
|
20
|
+
data?: D;
|
|
21
|
+
}
|
|
22
|
+
export interface IHttpClient {
|
|
23
|
+
request<A = any>(method: HttpMethod, path: string, options?: HttpRequestOptions): Promise<A>;
|
|
24
|
+
clearCache(method: HttpMethod, path: string, options?: HttpRequestOptions): Promise<void>;
|
|
25
|
+
get<A = any>(path: string, options?: HttpRequestOptions): Promise<A>;
|
|
26
|
+
post<A = any>(path: string, options?: HttpRequestOptions): Promise<A>;
|
|
27
|
+
put<A = any>(path: string, options?: HttpRequestOptions): Promise<A>;
|
|
28
|
+
patch<A = any>(path: string, options?: HttpRequestOptions): Promise<A>;
|
|
29
|
+
delete<A = any>(path: string, options?: HttpRequestOptions): Promise<A>;
|
|
30
|
+
}
|
|
31
|
+
export type HttpFactory = (signal: AbortSignal) => IHttpClient;
|
|
32
|
+
export interface ComponentConnectedParams {
|
|
33
|
+
httpFactory?: {
|
|
34
|
+
[key: string]: HttpFactory;
|
|
35
|
+
};
|
|
36
|
+
routeParams$?: Rx<(v: any) => any>;
|
|
37
|
+
disableTemplate?: boolean;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../lib/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa;KAAI;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAO,iBAAiB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;CAAE,CAAC;AAC7F,MAAM,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;AAEjD,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,CAAC;CACZ;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd,UAAU,CACR,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Rx } from "./rx";
|
|
2
|
+
import { AbstractService } from "./service";
|
|
3
|
+
import { AbstractComponentConstructor, IHttpClient } from "./interfaces";
|
|
4
|
+
interface RuleParams {
|
|
5
|
+
onLoadRoute?: () => any;
|
|
6
|
+
onUnloadRoute?: () => any;
|
|
7
|
+
httpFactory?: {
|
|
8
|
+
[key: string]: (signal: AbortSignal) => IHttpClient;
|
|
9
|
+
};
|
|
10
|
+
url: string;
|
|
11
|
+
redirectTo?: string;
|
|
12
|
+
routeSelectorUnbox?: () => string;
|
|
13
|
+
componentSelectorUnbox?: () => string;
|
|
14
|
+
}
|
|
15
|
+
export interface RuleCompleted {
|
|
16
|
+
onLoadRoute?: () => any;
|
|
17
|
+
onUnloadRoute?: () => any;
|
|
18
|
+
httpFactory?: {
|
|
19
|
+
[key: string]: (signal: AbortSignal) => IHttpClient;
|
|
20
|
+
};
|
|
21
|
+
url: RouteUrl;
|
|
22
|
+
redirectTo?: string;
|
|
23
|
+
componentSelector?: string;
|
|
24
|
+
routeSelector?: string;
|
|
25
|
+
params$?: Rx<any>;
|
|
26
|
+
components?: InstanceType<AbstractComponentConstructor>[];
|
|
27
|
+
}
|
|
28
|
+
declare class RouteUrl<A extends Record<string, any> = {}> {
|
|
29
|
+
templateUrl: string;
|
|
30
|
+
matcher: RouteMatcher;
|
|
31
|
+
private re;
|
|
32
|
+
constructor(templateUrl: string);
|
|
33
|
+
private getReplacer;
|
|
34
|
+
build(params?: A, query?: URLSearchParams, hash?: string): string;
|
|
35
|
+
}
|
|
36
|
+
declare class RouteMatcher {
|
|
37
|
+
static reEscape: RegExp;
|
|
38
|
+
static reParam: RegExp;
|
|
39
|
+
private names;
|
|
40
|
+
private re;
|
|
41
|
+
constructor(route: string);
|
|
42
|
+
private replacer;
|
|
43
|
+
parse(url: string): any;
|
|
44
|
+
}
|
|
45
|
+
declare class RouterService extends AbstractService {
|
|
46
|
+
private rules;
|
|
47
|
+
private completedComponentRules;
|
|
48
|
+
pathname$: Rx<string, [v: string]>;
|
|
49
|
+
hash$: Rx<string, [v: string]>;
|
|
50
|
+
search$: Rx<string, [v: string]>;
|
|
51
|
+
private scrollToHashElementIsBlocked;
|
|
52
|
+
private normalizePathname;
|
|
53
|
+
hrefIsActive(href: string, mode?: {
|
|
54
|
+
startsWith?: boolean;
|
|
55
|
+
ignoreSearch?: boolean;
|
|
56
|
+
ignoreHash?: boolean;
|
|
57
|
+
}): boolean;
|
|
58
|
+
private getCompletedRedirectRules;
|
|
59
|
+
private getCompletedComponentRules;
|
|
60
|
+
update(ignoreRedirectRules?: boolean): void;
|
|
61
|
+
scrollToHashElement(): void;
|
|
62
|
+
blockScrollToHashElement(time?: number): (this: unknown) => void;
|
|
63
|
+
unblockScrollToHashElement: () => void;
|
|
64
|
+
pushHistory(href: string): void;
|
|
65
|
+
pushHistoryLink(event: Event, href: string): void;
|
|
66
|
+
private eventListener;
|
|
67
|
+
private separateRules;
|
|
68
|
+
private applyRedirectRulesForUrl;
|
|
69
|
+
private applyComponentRulesForUrl;
|
|
70
|
+
constructor();
|
|
71
|
+
}
|
|
72
|
+
export declare const routerService: RouterService;
|
|
73
|
+
export declare class RouteUrlBucket<A> {
|
|
74
|
+
private routerLayoutIdx;
|
|
75
|
+
private rules;
|
|
76
|
+
constructor(rulesParams: {
|
|
77
|
+
[K in keyof A]: RuleParams;
|
|
78
|
+
});
|
|
79
|
+
buildUrl(k: keyof A, params?: Record<number | string, number | string>): string;
|
|
80
|
+
private getRouterOutletUnbox;
|
|
81
|
+
destroy(): void;
|
|
82
|
+
}
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=router.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.service.d.ts","sourceRoot":"","sources":["../../lib/router.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ComponentDescriptor, ScopeEvent } from "./interfaces";
|
|
2
|
+
import { Rx } from "./rx";
|
|
3
|
+
export declare class RxScope<A> {
|
|
4
|
+
descriptors: {
|
|
5
|
+
[K in keyof A]: ComponentDescriptor<A[K]>;
|
|
6
|
+
};
|
|
7
|
+
static lastId: number;
|
|
8
|
+
id: number;
|
|
9
|
+
private values;
|
|
10
|
+
private states;
|
|
11
|
+
private rx;
|
|
12
|
+
private _ids;
|
|
13
|
+
constructor(descriptors: {
|
|
14
|
+
[K in keyof A]: ComponentDescriptor<A[K]>;
|
|
15
|
+
});
|
|
16
|
+
private initId;
|
|
17
|
+
addDescriptor(id: keyof A, descriptor: ComponentDescriptor<any>): void;
|
|
18
|
+
removeDescriptor(id: keyof A): void;
|
|
19
|
+
getValue(id: keyof A, index?: string): any;
|
|
20
|
+
getState(id: keyof A, index?: string): any;
|
|
21
|
+
setValue(id: keyof A, value: any, index?: string, byUser?: boolean): void;
|
|
22
|
+
setState(id: keyof A, value: any, index?: string, byUser?: boolean): void;
|
|
23
|
+
setValues(values: Partial<Record<keyof A, {
|
|
24
|
+
[index: string]: any;
|
|
25
|
+
}>>, byUser?: boolean): void;
|
|
26
|
+
setValuesAtIndex<I extends string>(values: Partial<{
|
|
27
|
+
[id in keyof A]: any;
|
|
28
|
+
}>, index?: I, byUser?: boolean): void;
|
|
29
|
+
setStates(states: Partial<Record<keyof A, {
|
|
30
|
+
[index: string]: any;
|
|
31
|
+
}>>, byUser?: boolean): void;
|
|
32
|
+
setStatesAtIndex<I extends string>(states: Partial<{
|
|
33
|
+
[id in keyof A]: any;
|
|
34
|
+
}>, index?: I, byUser?: boolean): void;
|
|
35
|
+
newRxEvent<K extends keyof ScopeEventMap, B>(id: keyof A, name: K, fn: (event: ScopeEvent<ScopeEventMap[K]>, index?: string) => B, rxList: Rx<any>[]): Rx<B, [event: ScopeEvent<ScopeEventMap[K]>, index?: string]>;
|
|
36
|
+
newRxAllValues(fn: (values: Record<keyof A, {
|
|
37
|
+
[index: string]: any;
|
|
38
|
+
}>) => Record<keyof A, {
|
|
39
|
+
[index: string]: any;
|
|
40
|
+
}>): Rx<Record<keyof A, {
|
|
41
|
+
[index: string]: any;
|
|
42
|
+
}>, [values: Record<keyof A, {
|
|
43
|
+
[index: string]: any;
|
|
44
|
+
}>]>;
|
|
45
|
+
newRxAllStates(fn: (states: Record<keyof A, {
|
|
46
|
+
[index: string]: any;
|
|
47
|
+
}>) => Record<keyof A, {
|
|
48
|
+
[index: string]: any;
|
|
49
|
+
}>): Rx<Record<keyof A, {
|
|
50
|
+
[index: string]: any;
|
|
51
|
+
}>, [states: Record<keyof A, {
|
|
52
|
+
[index: string]: any;
|
|
53
|
+
}>]>;
|
|
54
|
+
newRxValue<B>(id: keyof A, fn: (value: any, index?: string, byUser?: boolean) => B, rxList: Rx<any>[]): Rx<any, any[]>;
|
|
55
|
+
newRxState<B>(id: keyof A, fn: (value: any, index?: string, byUser?: boolean) => B, rxList: Rx<any>[]): Rx<any, any[]>;
|
|
56
|
+
emitEvent<K extends keyof ScopeEventMap>(id: keyof A, name: K, event: ScopeEvent<ScopeEventMap[K]>, index?: string): void;
|
|
57
|
+
private _set;
|
|
58
|
+
private _setStates;
|
|
59
|
+
private updateAllValues;
|
|
60
|
+
private updateAllStates;
|
|
61
|
+
private execRxs;
|
|
62
|
+
static idsArr<D>(descriptors: {
|
|
63
|
+
[K in keyof D]: ComponentDescriptor<D[K]>;
|
|
64
|
+
}): (keyof D)[];
|
|
65
|
+
static ids<D>(descriptors: {
|
|
66
|
+
[K in keyof D]: ComponentDescriptor<D[K]>;
|
|
67
|
+
}): { [K in keyof D]: keyof D; };
|
|
68
|
+
static wrapAtIndex<A, I extends string>(values: Partial<{
|
|
69
|
+
[id in keyof A]: any;
|
|
70
|
+
}>, index?: I): Partial<{
|
|
71
|
+
[id in keyof A]: Record<I, any>;
|
|
72
|
+
}>;
|
|
73
|
+
ids(): { [K in keyof A]: keyof A; };
|
|
74
|
+
idsArr(): (keyof A)[];
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=rx-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rx-scope.d.ts","sourceRoot":"","sources":["../../lib/rx-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/rx.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class Rx<A, Args extends any[] = any[]> {
|
|
2
|
+
private group;
|
|
3
|
+
fn: (...args: Args) => A;
|
|
4
|
+
actual: A;
|
|
5
|
+
private groupIndex;
|
|
6
|
+
postUpdateFns?: Set<(rx: Rx<any>) => any>;
|
|
7
|
+
constructor(group: Rx<any>[], fn?: (...args: Args) => A);
|
|
8
|
+
update(...args: Args): void;
|
|
9
|
+
setPostUpdate(fn: (value: Rx<any>) => any): void;
|
|
10
|
+
unsubscribe(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare class RxFunc<A> extends Rx<A> {
|
|
13
|
+
private readonly deps;
|
|
14
|
+
private updateScheduled;
|
|
15
|
+
update: () => void;
|
|
16
|
+
constructor(group: Rx<any>[], fn: (...args: any[]) => A, opts?: {
|
|
17
|
+
immediate?: boolean;
|
|
18
|
+
}, ...deps: Rx<any>[]);
|
|
19
|
+
unsubscribe(): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=rx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rx.d.ts","sourceRoot":"","sources":["../../lib/rx.ts"],"names":[],"mappings":"AAAA,qBAAa,EAAE,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE;IAM/B,OAAO,CAAC,KAAK;IAAoB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC;IAL9D,MAAM,EAAE,CAAC,CAAe;IAC/B,OAAO,CAAC,UAAU,CAAuB;IAElC,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAQ;gBAEpC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAS,EAAE,GAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAQ;IAKrE,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI;IAQpB,aAAa,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG;IAKhD,WAAW;CAQZ;AAED,qBAAa,MAAM,CAAC,CAAC,CAAE,SAAQ,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,eAAe,CAAS;IAEzB,MAAM,aASX;gBAGA,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAChB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EACzB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,EAC9B,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;IAYX,WAAW;CAWrB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Rx, RxFunc } from "./rx";
|
|
2
|
+
export declare abstract class AbstractService {
|
|
3
|
+
rxList: Rx<(value: any) => any>[];
|
|
4
|
+
constructor();
|
|
5
|
+
newRx<T>(initial?: T): Rx<T, [v: T]>;
|
|
6
|
+
newRxFunc<RR, A extends readonly Rx<any>[]>(cb: (...values: {
|
|
7
|
+
[K in keyof A]: A[K]["actual"];
|
|
8
|
+
}) => RR, ...deps: A): RxFunc<RR>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../lib/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAElC,8BAAsB,eAAe;IACnC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAQ;;IAIlC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAE,CAAQ;IAS1B,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAC/C,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;KAAE,KAAK,EAAE,EACzD,GAAG,IAAI,EAAE,CAAC;CAMb"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Bytecode } from "./vm";
|
|
2
|
+
import { Rx } from "./rx";
|
|
3
|
+
declare enum CONTEXT_TYPE {
|
|
4
|
+
REPEAT = 1,
|
|
5
|
+
EVENT = 2,
|
|
6
|
+
TEXT_NODE = 3,
|
|
7
|
+
ATTRIBUTE = 4,
|
|
8
|
+
ATTACHED = 5,
|
|
9
|
+
LEXICAL_ENV = 6,
|
|
10
|
+
INNER_HTML = 7
|
|
11
|
+
}
|
|
12
|
+
type SelfFunction = (...args: any[]) => any;
|
|
13
|
+
interface TemplateDebug {
|
|
14
|
+
selector?: string;
|
|
15
|
+
__tplFile?: string;
|
|
16
|
+
}
|
|
17
|
+
interface TemplateParams extends TemplateDebug {
|
|
18
|
+
node: HTMLElement;
|
|
19
|
+
self?: SelfFunction;
|
|
20
|
+
parent?: Template;
|
|
21
|
+
root?: Template;
|
|
22
|
+
cloneIndex?: number;
|
|
23
|
+
domStructureChanged?: (...args: any[]) => any;
|
|
24
|
+
}
|
|
25
|
+
export type ChangeAttrEvent = CustomEvent<{
|
|
26
|
+
name: string;
|
|
27
|
+
prev: string;
|
|
28
|
+
next: string;
|
|
29
|
+
}>;
|
|
30
|
+
declare global {
|
|
31
|
+
interface HTMLElementEventMap {
|
|
32
|
+
onchangeattr: ChangeAttrEvent;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export declare class Template {
|
|
36
|
+
private root;
|
|
37
|
+
private debug;
|
|
38
|
+
private area;
|
|
39
|
+
private areas;
|
|
40
|
+
private parent;
|
|
41
|
+
private self;
|
|
42
|
+
private lexicalEnv;
|
|
43
|
+
private selector;
|
|
44
|
+
private children;
|
|
45
|
+
private clones;
|
|
46
|
+
private rxAcc;
|
|
47
|
+
private pointer;
|
|
48
|
+
private cloneIndex;
|
|
49
|
+
private parentNode;
|
|
50
|
+
private attached;
|
|
51
|
+
private detecting;
|
|
52
|
+
private repeatBC;
|
|
53
|
+
private attachedBC;
|
|
54
|
+
private nodeByIndex;
|
|
55
|
+
private nodeValueByIndex;
|
|
56
|
+
private attrValueByIndex;
|
|
57
|
+
private innerHTMLValue;
|
|
58
|
+
private events;
|
|
59
|
+
private onRxUpdate;
|
|
60
|
+
private rxUpdated;
|
|
61
|
+
private rxUpdatedScheduled;
|
|
62
|
+
private domStructureChanged;
|
|
63
|
+
private domChangedScheduled;
|
|
64
|
+
onceMap: Map<Bytecode, any | any[]>;
|
|
65
|
+
node: HTMLElement;
|
|
66
|
+
static REMOVE_ATTR: {};
|
|
67
|
+
static appVariables: any;
|
|
68
|
+
static getChangeAttrEvent(name: string, prev: string, next: string): ChangeAttrEvent;
|
|
69
|
+
static allowAttributeEvent(element: HTMLElement, attrsSet: Set<string>): void;
|
|
70
|
+
static stringToNode(str: string): HTMLElement;
|
|
71
|
+
static setAppVariables(appVariables: any): void;
|
|
72
|
+
detectChanges(): void;
|
|
73
|
+
private internalDetectChanges;
|
|
74
|
+
completelyClearRxAcc(): void;
|
|
75
|
+
clearRxAccLocally(): void;
|
|
76
|
+
fullDestroy(): void;
|
|
77
|
+
private destroyAllClones;
|
|
78
|
+
private locallyDestroyAllChildren;
|
|
79
|
+
private setEventsRec;
|
|
80
|
+
private destroyLastClone;
|
|
81
|
+
private locallyDestroy;
|
|
82
|
+
private attach;
|
|
83
|
+
linkRxWhenDetach(): void;
|
|
84
|
+
private detach;
|
|
85
|
+
private static kebabToCamel;
|
|
86
|
+
private execRepeatExpr;
|
|
87
|
+
private rebuildClones;
|
|
88
|
+
private updateAttributes;
|
|
89
|
+
private updateVars;
|
|
90
|
+
private removeEvents;
|
|
91
|
+
private setEvents;
|
|
92
|
+
private handleAttachedAttr;
|
|
93
|
+
private updateRepeat;
|
|
94
|
+
private reactiveUpdateAttachedAttr;
|
|
95
|
+
private reactiveUpdateLexicalEnv;
|
|
96
|
+
private reactiveUpdateRepeat;
|
|
97
|
+
private reactiveUpdateNode;
|
|
98
|
+
private reactiveUpdateAttr;
|
|
99
|
+
private reactiveUpdateInnerHtml;
|
|
100
|
+
private updateTextNode;
|
|
101
|
+
private updateAttr;
|
|
102
|
+
private updateInnerHtml;
|
|
103
|
+
private updateVar;
|
|
104
|
+
private updateAllTextNodes;
|
|
105
|
+
private updateAllClones;
|
|
106
|
+
private updateAllChildren;
|
|
107
|
+
private isTemplate;
|
|
108
|
+
private handleTemplateParseError;
|
|
109
|
+
private getNodeForError;
|
|
110
|
+
private getTemplateBytecode;
|
|
111
|
+
private getItem;
|
|
112
|
+
private execBytecode;
|
|
113
|
+
private childNodeIsDynamic;
|
|
114
|
+
private addClone;
|
|
115
|
+
private addChildren;
|
|
116
|
+
private areaFactory;
|
|
117
|
+
private createAreas;
|
|
118
|
+
private hasBindingAttributes;
|
|
119
|
+
private hasTemplateTextChild;
|
|
120
|
+
private handleChildrens;
|
|
121
|
+
private resetDetectingUpTree;
|
|
122
|
+
private handleError;
|
|
123
|
+
handleSafeError(message: string, expr?: string): void;
|
|
124
|
+
private getSingleBytecode;
|
|
125
|
+
private linkRxToTemplate;
|
|
126
|
+
getRxValue(ctx: CONTEXT_TYPE, rx: Rx<any>, linkIndex: number, allowRxLink: boolean, onceMod: boolean): any;
|
|
127
|
+
getVarFromLexicalEnv(name: string): any;
|
|
128
|
+
private getThisArg;
|
|
129
|
+
private runVMProgramForContext;
|
|
130
|
+
private handleAttributesFilledArea;
|
|
131
|
+
private handleAttributes;
|
|
132
|
+
private markDomStructureChanged;
|
|
133
|
+
private getRxUpdate;
|
|
134
|
+
constructor(params: TemplateParams);
|
|
135
|
+
private insertFragmentAfter;
|
|
136
|
+
private removePointer;
|
|
137
|
+
private getPointer;
|
|
138
|
+
private setPointer;
|
|
139
|
+
}
|
|
140
|
+
export {};
|
|
141
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../lib/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function arrayToHash<I extends Record<PropertyKey, any>, K extends keyof I>(arr: I[], key: K): Record<string, I>;
|
|
2
|
+
export declare function delay(ms: number): Promise<unknown>;
|
|
3
|
+
export declare function debounce<T extends (...args: any[]) => any>(ms: number, cb: T): (this: ThisParameterType<T>, ...args: Parameters<T>) => void;
|
|
4
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAC/E,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,GACL,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAInB;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAM/B;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,CAAC,IAIW,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,UAOnE"}
|
package/dist/lib/vm.d.ts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
export type Tok = {
|
|
2
|
+
t: "num";
|
|
3
|
+
v: number;
|
|
4
|
+
} | {
|
|
5
|
+
t: "str";
|
|
6
|
+
v: string;
|
|
7
|
+
} | {
|
|
8
|
+
t: "id";
|
|
9
|
+
v: string;
|
|
10
|
+
} | {
|
|
11
|
+
t: "op";
|
|
12
|
+
v: string;
|
|
13
|
+
} | {
|
|
14
|
+
t: "punc";
|
|
15
|
+
v: string;
|
|
16
|
+
} | {
|
|
17
|
+
t: "eof";
|
|
18
|
+
};
|
|
19
|
+
export declare function tokenizeExpr(input: string): Tok[];
|
|
20
|
+
export declare enum OP {
|
|
21
|
+
PUSH_CONST = 1,
|
|
22
|
+
LOAD_ID = 2,
|
|
23
|
+
LOAD_THIS = 3,
|
|
24
|
+
GET_PROP = 4,
|
|
25
|
+
GET_PROP_KEEP = 5,
|
|
26
|
+
GET_INDEX = 6,
|
|
27
|
+
GET_INDEX_KEEP = 7,
|
|
28
|
+
POP = 8,
|
|
29
|
+
POP_BELOW = 9,
|
|
30
|
+
UNARY_NOT = 10,
|
|
31
|
+
UNARY_POS = 11,
|
|
32
|
+
UNARY_NEG = 12,
|
|
33
|
+
BIN_ADD = 13,
|
|
34
|
+
BIN_SUB = 14,
|
|
35
|
+
BIN_MUL = 15,
|
|
36
|
+
BIN_DIV = 16,
|
|
37
|
+
BIN_MOD = 17,
|
|
38
|
+
BIN_EQ = 18,
|
|
39
|
+
BIN_NEQ = 19,
|
|
40
|
+
BIN_SEQ = 20,
|
|
41
|
+
BIN_SNEQ = 21,
|
|
42
|
+
BIN_LT = 22,
|
|
43
|
+
BIN_LTE = 23,
|
|
44
|
+
BIN_GT = 24,
|
|
45
|
+
BIN_GTE = 25,
|
|
46
|
+
CALL_FN = 26,
|
|
47
|
+
CALL_METHOD = 27,
|
|
48
|
+
RX_UI = 28,
|
|
49
|
+
JMP = 29,
|
|
50
|
+
JMP_IF_FALSE = 30,
|
|
51
|
+
JMP_IF_FALSE_KEEP = 31,
|
|
52
|
+
JMP_IF_TRUE_KEEP = 32,
|
|
53
|
+
JMP_IF_NULLISH = 33,
|
|
54
|
+
MAKE_ARRAY = 34,
|
|
55
|
+
MAKE_OBJECT = 35,
|
|
56
|
+
ONCE_ENTER = 36,
|
|
57
|
+
ONCE_STORE = 37
|
|
58
|
+
}
|
|
59
|
+
export declare class Bytecode {
|
|
60
|
+
private code;
|
|
61
|
+
private consts;
|
|
62
|
+
private idNames;
|
|
63
|
+
private exprCount;
|
|
64
|
+
private onceCount;
|
|
65
|
+
expr: string;
|
|
66
|
+
constructor(code: Uint32Array, consts: any[], idNames: string[], exprCount: number, onceCount: number, expr: string);
|
|
67
|
+
onlyOnce(): boolean;
|
|
68
|
+
fmtArg(op: OP, a: number, wide?: number): string[];
|
|
69
|
+
log(): void;
|
|
70
|
+
noRunNeeded(template: any): any;
|
|
71
|
+
setOnceSlotValue(template: any, slot: number, slotValue: any): void;
|
|
72
|
+
getOnceSlotValue(template: any, slot: number): any;
|
|
73
|
+
getSafeErrorMsg(obj: any, prop: string): string;
|
|
74
|
+
run(template: any, ctx: number, linkIndex: number, app: any, allowRxLink: boolean, event: Event): any;
|
|
75
|
+
}
|
|
76
|
+
export declare class VMProgramCompiler {
|
|
77
|
+
private tokens;
|
|
78
|
+
private pos;
|
|
79
|
+
private code;
|
|
80
|
+
private consts;
|
|
81
|
+
private constMap;
|
|
82
|
+
private idNames;
|
|
83
|
+
private idMap;
|
|
84
|
+
private onceSlot;
|
|
85
|
+
private exprDepth;
|
|
86
|
+
private exprCount;
|
|
87
|
+
constructor(tokens: Tok[]);
|
|
88
|
+
private withNestedExpr;
|
|
89
|
+
private allocOnceSlot;
|
|
90
|
+
private peek;
|
|
91
|
+
private next;
|
|
92
|
+
private expectPunc;
|
|
93
|
+
private expectOp;
|
|
94
|
+
private c;
|
|
95
|
+
private id;
|
|
96
|
+
private emit;
|
|
97
|
+
private emitJump;
|
|
98
|
+
private patch;
|
|
99
|
+
private canCount;
|
|
100
|
+
private parseBinaryCounted;
|
|
101
|
+
private parseShortCircuit;
|
|
102
|
+
private parseNullishChain;
|
|
103
|
+
getBytecode(expr: string): Bytecode;
|
|
104
|
+
private parseExpression;
|
|
105
|
+
private parseTernary;
|
|
106
|
+
private parseNullish;
|
|
107
|
+
private parseOr;
|
|
108
|
+
private parseAnd;
|
|
109
|
+
private parseEq;
|
|
110
|
+
private parseRel;
|
|
111
|
+
private parseAdd;
|
|
112
|
+
private parseMul;
|
|
113
|
+
private parseUnary;
|
|
114
|
+
private parsePostfix;
|
|
115
|
+
private parseArgsAndCount;
|
|
116
|
+
private parsePrimary;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=vm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vm.d.ts","sourceRoot":"","sources":["../../lib/vm.ts"],"names":[],"mappings":"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"}
|