@dooboostore/dom-render 1.0.109 → 1.0.110
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/dist/cjs/DomRenderProxy.js +122 -57
- package/dist/cjs/DomRenderProxy.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +4 -4
- package/dist/cjs/components/ComponentBase.js.map +2 -2
- package/dist/cjs/components/appender/Appender.js +0 -3
- package/dist/cjs/components/appender/Appender.js.map +2 -2
- package/dist/cjs/components/checkbox/CheckBox.js.map +2 -2
- package/dist/cjs/components/choose/Choose.js +3 -1
- package/dist/cjs/components/choose/Choose.js.map +2 -2
- package/dist/cjs/components/details/Details.js +2 -2
- package/dist/cjs/components/details/Details.js.map +2 -2
- package/dist/cjs/components/forOf/ForOf.js.map +2 -2
- package/dist/cjs/components/if/If.js +2 -2
- package/dist/cjs/components/if/If.js.map +2 -2
- package/dist/cjs/components/input/Input.js +2 -2
- package/dist/cjs/components/input/Input.js.map +2 -2
- package/dist/cjs/components/promise/PromiseSwitch.js +6 -6
- package/dist/cjs/components/promise/PromiseSwitch.js.map +2 -2
- package/dist/cjs/components/radio/Radio.js.map +2 -2
- package/dist/cjs/components/router/Route.js +2 -2
- package/dist/cjs/components/router/Route.js.map +2 -2
- package/dist/cjs/components/router/RouterOutlet.js +2 -2
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +6 -6
- package/dist/cjs/components/select/Select.js.map +2 -2
- package/dist/cjs/components/this/This.js +2 -2
- package/dist/cjs/components/this/This.js.map +2 -2
- package/dist/cjs/components/timer/Timer.js +2 -3
- package/dist/cjs/components/timer/Timer.js.map +2 -2
- package/dist/cjs/events/EventManager.js +9 -2
- package/dist/cjs/events/EventManager.js.map +2 -2
- package/dist/cjs/lifecycle/OnInitRender.js.map +1 -1
- package/dist/cjs/operators/DrForOf.js +24 -11
- package/dist/cjs/operators/DrForOf.js.map +2 -2
- package/dist/cjs/operators/DrIf.js +1 -2
- package/dist/cjs/operators/DrIf.js.map +2 -2
- package/dist/cjs/operators/DrInnerText.js +2 -2
- package/dist/cjs/operators/DrInnerText.js.map +2 -2
- package/dist/cjs/rawsets/RawSet.js +243 -46
- package/dist/cjs/rawsets/RawSet.js.map +3 -3
- package/dist/cjs/routers/PathRouter.js +13 -7
- package/dist/cjs/routers/PathRouter.js.map +2 -2
- package/dist/cjs/routers/Router.js +51 -27
- package/dist/cjs/routers/Router.js.map +2 -2
- package/dist/esm/DomRenderProxy.js +122 -57
- package/dist/esm/DomRenderProxy.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +4 -4
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/appender/Appender.js +0 -3
- package/dist/esm/components/appender/Appender.js.map +2 -2
- package/dist/esm/components/checkbox/CheckBox.js.map +2 -2
- package/dist/esm/components/choose/Choose.js +3 -1
- package/dist/esm/components/choose/Choose.js.map +2 -2
- package/dist/esm/components/details/Details.js +2 -2
- package/dist/esm/components/details/Details.js.map +2 -2
- package/dist/esm/components/forOf/ForOf.js.map +2 -2
- package/dist/esm/components/if/If.js +2 -2
- package/dist/esm/components/if/If.js.map +2 -2
- package/dist/esm/components/input/Input.js +2 -2
- package/dist/esm/components/input/Input.js.map +2 -2
- package/dist/esm/components/promise/PromiseSwitch.js +6 -6
- package/dist/esm/components/promise/PromiseSwitch.js.map +2 -2
- package/dist/esm/components/radio/Radio.js.map +2 -2
- package/dist/esm/components/router/Route.js +2 -2
- package/dist/esm/components/router/Route.js.map +2 -2
- package/dist/esm/components/router/RouterOutlet.js +2 -2
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +6 -6
- package/dist/esm/components/select/Select.js.map +2 -2
- package/dist/esm/components/this/This.js +2 -2
- package/dist/esm/components/this/This.js.map +2 -2
- package/dist/esm/components/timer/Timer.js +2 -3
- package/dist/esm/components/timer/Timer.js.map +2 -2
- package/dist/esm/events/EventManager.js +9 -2
- package/dist/esm/events/EventManager.js.map +2 -2
- package/dist/esm/lifecycle/OnInitRender.js.map +1 -1
- package/dist/esm/operators/DrForOf.js +24 -11
- package/dist/esm/operators/DrForOf.js.map +2 -2
- package/dist/esm/operators/DrIf.js +1 -2
- package/dist/esm/operators/DrIf.js.map +2 -2
- package/dist/esm/operators/DrInnerText.js +2 -2
- package/dist/esm/operators/DrInnerText.js.map +2 -2
- package/dist/esm/rawsets/RawSet.js +243 -46
- package/dist/esm/rawsets/RawSet.js.map +3 -3
- package/dist/esm/routers/PathRouter.js +13 -7
- package/dist/esm/routers/PathRouter.js.map +2 -2
- package/dist/esm/routers/Router.js +51 -27
- package/dist/esm/routers/Router.js.map +2 -2
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +1850 -319
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRenderProxy.d.ts +2 -2
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +1 -1
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/appender/Appender.d.ts +0 -2
- package/dist/types/components/appender/Appender.d.ts.map +1 -1
- package/dist/types/components/checkbox/CheckBox.d.ts.map +1 -1
- package/dist/types/components/choose/Choose.d.ts.map +1 -1
- package/dist/types/components/details/Details.d.ts +1 -1
- package/dist/types/components/details/Details.d.ts.map +1 -1
- package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
- package/dist/types/components/if/If.d.ts +1 -1
- package/dist/types/components/if/If.d.ts.map +1 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/input/Input.d.ts +1 -1
- package/dist/types/components/input/Input.d.ts.map +1 -1
- package/dist/types/components/promise/PromiseSwitch.d.ts +1 -1
- package/dist/types/components/promise/PromiseSwitch.d.ts.map +1 -1
- package/dist/types/components/radio/Radio.d.ts.map +1 -1
- package/dist/types/components/router/Route.d.ts +1 -1
- package/dist/types/components/router/Route.d.ts.map +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +3 -3
- package/dist/types/components/select/Select.d.ts.map +1 -1
- package/dist/types/components/this/This.d.ts +1 -1
- package/dist/types/components/this/This.d.ts.map +1 -1
- package/dist/types/components/timer/Timer.d.ts +1 -1
- package/dist/types/components/timer/Timer.d.ts.map +1 -1
- package/dist/types/events/EventManager.d.ts +8 -0
- package/dist/types/events/EventManager.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -101
- package/dist/types/lifecycle/OnInitRender.d.ts +1 -1
- package/dist/types/lifecycle/OnInitRender.d.ts.map +1 -1
- package/dist/types/operators/DrForOf.d.ts.map +1 -1
- package/dist/types/operators/DrInnerText.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +6 -5
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/routers/PathRouter.d.ts.map +1 -1
- package/dist/types/routers/Router.d.ts +9 -11
- package/dist/types/routers/Router.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +1850 -319
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +7 -7
- package/src/DomRenderProxy.ts +258 -137
- package/src/components/ComponentBase.ts +4 -4
- package/src/components/appender/Appender.ts +0 -5
- package/src/components/checkbox/CheckBox.ts +22 -25
- package/src/components/choose/Choose.ts +16 -19
- package/src/components/details/Details.ts +40 -43
- package/src/components/forOf/ForOf.ts +6 -9
- package/src/components/if/If.ts +9 -11
- package/src/components/input/Input.ts +16 -22
- package/src/components/promise/PromiseSwitch.ts +67 -66
- package/src/components/radio/Radio.ts +23 -28
- package/src/components/router/Route.ts +10 -13
- package/src/components/router/RouterOutlet.ts +5 -4
- package/src/components/select/Select.ts +7 -7
- package/src/components/this/This.ts +13 -12
- package/src/components/timer/Timer.ts +12 -16
- package/src/events/EventManager.ts +15 -4
- package/src/lifecycle/OnInitRender.ts +1 -1
- package/src/node_modules/.bin/acorn +17 -0
- package/src/node_modules/.bin/browserslist +17 -0
- package/src/node_modules/.bin/eslint +17 -0
- package/src/node_modules/.bin/sbf +17 -0
- package/src/node_modules/.bin/ts-node +17 -0
- package/src/node_modules/.bin/ts-node-cwd +17 -0
- package/src/node_modules/.bin/ts-node-dev +17 -0
- package/src/node_modules/.bin/ts-node-esm +17 -0
- package/src/node_modules/.bin/ts-node-script +17 -0
- package/src/node_modules/.bin/ts-node-transpile-only +17 -0
- package/src/node_modules/.bin/ts-script +17 -0
- package/src/node_modules/.bin/tsc +17 -0
- package/src/node_modules/.bin/tsnd +17 -0
- package/src/node_modules/.bin/tsserver +17 -0
- package/src/node_modules/.bin/webpack +17 -0
- package/src/node_modules/.bin/webpack-cli +17 -0
- package/src/node_modules/.bin/webpack-dev-server +17 -0
- package/src/operators/DrForOf.ts +25 -10
- package/src/operators/DrIf.ts +1 -1
- package/src/operators/DrInnerText.ts +2 -1
- package/src/rawsets/RawSet.ts +387 -288
- package/src/routers/PathRouter.ts +14 -7
- package/src/routers/Router.ts +77 -48
- package/types.d.ts +0 -2873
|
@@ -26,7 +26,10 @@ class PathRouter extends import_Router.Router {
|
|
|
26
26
|
super(config);
|
|
27
27
|
}
|
|
28
28
|
getSearchParams(data) {
|
|
29
|
-
|
|
29
|
+
if (!this.config.window.document?.location?.href) {
|
|
30
|
+
return new URLSearchParams();
|
|
31
|
+
}
|
|
32
|
+
const searchParams = new URL(this.config.window.document.location?.href).searchParams;
|
|
30
33
|
data?.delete?.forEach((it) => {
|
|
31
34
|
searchParams.delete(it);
|
|
32
35
|
});
|
|
@@ -48,7 +51,7 @@ class PathRouter extends import_Router.Router {
|
|
|
48
51
|
pushDeleteHashSearchParam(name, data, title) {
|
|
49
52
|
const s = this.getHashSearchParams({ delete: [name] });
|
|
50
53
|
const size = Array.from(s.entries()).length;
|
|
51
|
-
const href = `${this.config.window.location
|
|
54
|
+
const href = `${this.config.window.location?.pathname ?? "/"}${this.config.window.location?.search}${size > 0 ? "#" + s.toString() : ""}`;
|
|
52
55
|
super.pushState(data, title, href);
|
|
53
56
|
}
|
|
54
57
|
pushAddSearchParam(params, data, title) {
|
|
@@ -62,7 +65,7 @@ class PathRouter extends import_Router.Router {
|
|
|
62
65
|
replaceDeleteHashSearchParam(name, data, title) {
|
|
63
66
|
const s = this.getHashSearchParams({ delete: Array.isArray(name) ? name : [name] });
|
|
64
67
|
const size = Array.from(s.entries()).length;
|
|
65
|
-
const href = `${this.config.window.location
|
|
68
|
+
const href = `${this.config.window.location?.pathname ?? "/"}${this.config.window.location?.search}${size > 0 ? "#" + s.toString() : ""}`;
|
|
66
69
|
super.replaceState(data, title, href);
|
|
67
70
|
}
|
|
68
71
|
replaceAddSearchParam(params, data, title) {
|
|
@@ -70,17 +73,20 @@ class PathRouter extends import_Router.Router {
|
|
|
70
73
|
this.replace({ searchParams: s }, data, title);
|
|
71
74
|
}
|
|
72
75
|
getUrl() {
|
|
73
|
-
|
|
76
|
+
if (!this.config.window.document?.location?.href) {
|
|
77
|
+
return "/";
|
|
78
|
+
}
|
|
79
|
+
const url = new URL(this.config.window.document.location?.href);
|
|
74
80
|
return url.pathname + url.search;
|
|
75
81
|
}
|
|
76
82
|
getHref() {
|
|
77
|
-
return this.config.window.location
|
|
83
|
+
return this.config.window.location?.href ?? "/";
|
|
78
84
|
}
|
|
79
85
|
getPathName() {
|
|
80
|
-
return this.config.window.location
|
|
86
|
+
return this.config.window.location?.pathname ?? "/";
|
|
81
87
|
}
|
|
82
88
|
getHashSearchParams(data) {
|
|
83
|
-
const searchParams = new URLSearchParams(this.config.window.location
|
|
89
|
+
const searchParams = new URLSearchParams(this.config.window.location?.hash.slice(1) ?? "");
|
|
84
90
|
data?.delete?.forEach((it) => {
|
|
85
91
|
searchParams.delete(it);
|
|
86
92
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/routers/PathRouter.ts"],
|
|
4
|
-
"sourcesContent": ["import { ChangeStateResult, RouteAction, Router, RouterConfig } from './Router';\n\nexport class PathRouter extends Router {\n constructor(config: RouterConfig) {\n super(config);\n }\n\n getSearchParams(data?:{delete?:string[], append?:[[string, string]]}): URLSearchParams {\n const searchParams = (new URL(this.config.window.document.location
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAqE;AAE9D,MAAM,mBAAmB,qBAAO;AAAA,EACrC,YAAY,QAAsB;AAChC,UAAM,MAAM;AAAA,EACd;AAAA,EAEA,gBAAgB,MAAuE;AACrF,UAAM,eAAiB,IAAI,IAAI,KAAK,OAAO,OAAO,SAAS,
|
|
4
|
+
"sourcesContent": ["import { ChangeStateResult, RouteAction, Router, RouterConfig } from './Router';\n\nexport class PathRouter extends Router {\n constructor(config: RouterConfig) {\n super(config);\n }\n\n getSearchParams(data?:{delete?:string[], append?:[[string, string]]}): URLSearchParams {\n if (!this.config.window.document?.location?.href) {\n return new URLSearchParams();\n }\n\n const searchParams = (new URL(this.config.window.document.location?.href)).searchParams;\n data?.delete?.forEach(it => {\n searchParams.delete(it);\n })\n\n data?.append?.forEach(it => {\n searchParams.append(it[0], it[1]);\n })\n return searchParams;\n\n }\n\n push(path: RouteAction, data?: any, title: string = ''): ChangeStateResult {\n return super.pushState(data, title, this.toUrl(path));\n }\n\n replace(path: RouteAction, data?: any, title: string = ''): ChangeStateResult {\n return super.replaceState(data, title, this.toUrl(path));\n }\n\n pushDeleteSearchParam(name: string, data?: any, title?: string): void {\n const s = this.getSearchParams({delete: [name]});\n this.push({searchParams: s}, data, title);\n }\n\n pushDeleteHashSearchParam(name: string, data?: any, title?: string) {\n const s = this.getHashSearchParams({delete: [name]});\n const size = Array.from(s.entries()).length;\n const href = `${this.config.window.location?.pathname??'/'}${this.config.window.location?.search}${size > 0 ? '#' + s.toString() : ''}`;\n super.pushState(data, title, href);\n }\n\n pushAddSearchParam(params:[[string, string]], data?: any, title?: string): void {\n const s = this.getSearchParams({append: params});\n this.push({searchParams: s}, data, title);\n }\n replaceDeleteSearchParam(name: string | string[], data?: any, title?: string): void {\n const s = this.getSearchParams({delete: Array.isArray(name) ? name : [name]});\n this.replace({searchParams: s}, data, title);\n }\n\n replaceDeleteHashSearchParam(name: string | string[], data?: any, title?: string) {\n const s = this.getHashSearchParams({delete: Array.isArray(name) ? name : [name]});\n const size = Array.from(s.entries()).length;\n const href = `${this.config.window.location?.pathname??'/'}${this.config.window.location?.search}${size > 0 ? '#' + s.toString() : ''}`;\n super.replaceState(data, title, href);\n }\n\n replaceAddSearchParam(params:[[string, string]], data?: any, title?: string): void {\n const s = this.getSearchParams({append: params});\n this.replace({searchParams: s}, data, title);\n }\n\n\n getUrl(): string {\n if (!this.config.window.document?.location?.href) {\n return '/';\n }\n const url = new URL(this.config.window.document.location?.href);\n return url.pathname + url.search;\n }\n\n getHref(): string {\n return this.config.window.location?.href??'/';\n }\n\n getPathName(): string {\n return this.config.window.location?.pathname??'/';\n }\n\n getHashSearchParams(data?:{delete?:string[], append?:[[string, string]]}): URLSearchParams {\n // http://local.com/#wow=222&wow=bb&z=2\n const searchParams = new URLSearchParams(this.config.window.location?.hash.slice(1)??'');\n\n data?.delete?.forEach(it => {\n searchParams.delete(it);\n })\n\n data?.append?.forEach(it => {\n searchParams.append(it[0], it[1]);\n })\n return searchParams;\n\n // return undefined;\n }\n\n\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -17,14 +17,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
18
|
var Router_exports = {};
|
|
19
19
|
__export(Router_exports, {
|
|
20
|
-
Router: () => Router
|
|
21
|
-
isPopStateCurrentTargetDomrenderRouter: () => isPopStateCurrentTargetDomrenderRouter
|
|
20
|
+
Router: () => Router
|
|
22
21
|
});
|
|
23
22
|
module.exports = __toCommonJS(Router_exports);
|
|
24
23
|
var import_ConvertUtils = require("@dooboostore/core/convert/ConvertUtils");
|
|
25
24
|
var import_BehaviorSubject = require("@dooboostore/core/message/BehaviorSubject");
|
|
26
25
|
var import_Expression = require("@dooboostore/core/expression/Expression");
|
|
27
|
-
const isPopStateCurrentTargetDomrenderRouter = (obj) => obj?.currentTargetName === "domRenderRouter";
|
|
28
26
|
class Router {
|
|
29
27
|
constructor(config) {
|
|
30
28
|
this._config = config;
|
|
@@ -35,19 +33,18 @@ class Router {
|
|
|
35
33
|
url: config.firstUrl,
|
|
36
34
|
path: path[0],
|
|
37
35
|
searchParams: new URLSearchParams(path[1] ?? ""),
|
|
38
|
-
router: this
|
|
36
|
+
router: this,
|
|
37
|
+
triggerPoint: "end"
|
|
39
38
|
};
|
|
40
39
|
this.behaviorSubject = new import_BehaviorSubject.BehaviorSubject(routeData);
|
|
41
40
|
this.go(config.firstUrl);
|
|
42
41
|
} else {
|
|
43
|
-
routeData = this.getRouteData();
|
|
42
|
+
routeData = { ...this.getRouteData(), triggerPoint: "end" };
|
|
44
43
|
this.behaviorSubject = new import_BehaviorSubject.BehaviorSubject(routeData);
|
|
45
44
|
}
|
|
46
45
|
this.config.window.addEventListener("popstate", (event) => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.behaviorSubject.next(routeData2);
|
|
50
|
-
}
|
|
46
|
+
const routeData2 = { ...this.getRouteData(), triggerPoint: "end" };
|
|
47
|
+
this.behaviorSubject.next(routeData2);
|
|
51
48
|
});
|
|
52
49
|
}
|
|
53
50
|
get observable() {
|
|
@@ -89,9 +86,30 @@ class Router {
|
|
|
89
86
|
}
|
|
90
87
|
}
|
|
91
88
|
getRouteData(config) {
|
|
89
|
+
let path = "";
|
|
90
|
+
let url = "";
|
|
91
|
+
if (config?.pathOrUrl) {
|
|
92
|
+
let isUrl = false;
|
|
93
|
+
try {
|
|
94
|
+
new URL(config.pathOrUrl);
|
|
95
|
+
isUrl = true;
|
|
96
|
+
} catch {
|
|
97
|
+
isUrl = false;
|
|
98
|
+
}
|
|
99
|
+
if (isUrl) {
|
|
100
|
+
const u = new URL(config.pathOrUrl);
|
|
101
|
+
path = u.pathname;
|
|
102
|
+
url = u.pathname + u.search;
|
|
103
|
+
} else {
|
|
104
|
+
path = config.pathOrUrl.split("?")[0];
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
path = this.getPathName();
|
|
108
|
+
url = this.getUrl();
|
|
109
|
+
}
|
|
92
110
|
const newVar = {
|
|
93
|
-
path
|
|
94
|
-
url
|
|
111
|
+
path,
|
|
112
|
+
url,
|
|
95
113
|
searchParams: this.getSearchParams()
|
|
96
114
|
};
|
|
97
115
|
const data = this.getData();
|
|
@@ -105,32 +123,40 @@ class Router {
|
|
|
105
123
|
}
|
|
106
124
|
}
|
|
107
125
|
newVar.router = this;
|
|
108
|
-
newVar.currentTarget = config?.currentTarget;
|
|
109
126
|
return Object.freeze(newVar);
|
|
110
127
|
}
|
|
111
128
|
pushState(data, title, path) {
|
|
112
|
-
this.
|
|
113
|
-
this.
|
|
129
|
+
this.behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: "start" });
|
|
130
|
+
this.config.window.history?.pushState(data, title ?? "", path);
|
|
131
|
+
this.behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: "end" });
|
|
114
132
|
return { data };
|
|
115
133
|
}
|
|
116
134
|
replaceState(data, title, path) {
|
|
117
|
-
this.
|
|
118
|
-
this.
|
|
135
|
+
this.behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: "start" });
|
|
136
|
+
this.config.window.history?.replaceState(data, title ?? "", path);
|
|
137
|
+
this.behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: "end" });
|
|
119
138
|
return { data };
|
|
120
139
|
}
|
|
121
|
-
dispatchPopStateEvent(data) {
|
|
122
|
-
this.config.window.dispatchEvent(new PopStateEvent("popstate", { state: { ...data, currentTargetName: "domRenderRouter" } }));
|
|
123
|
-
}
|
|
124
|
-
reload(data) {
|
|
125
|
-
this.config.window.dispatchEvent(new PopStateEvent("popstate", { state: data }));
|
|
126
|
-
}
|
|
127
140
|
getData() {
|
|
128
|
-
return this.config.window.history
|
|
141
|
+
return this.config.window.history?.state;
|
|
129
142
|
}
|
|
130
143
|
getPathData(urlExpression, currentUrl = this.getPathName()) {
|
|
131
144
|
return import_Expression.Expression.Path.pathNameData(currentUrl, urlExpression);
|
|
132
145
|
}
|
|
133
|
-
|
|
146
|
+
back() {
|
|
147
|
+
this.behaviorSubject.next({ ...this.getRouteData(), triggerPoint: "start" });
|
|
148
|
+
this.config.window.history.back();
|
|
149
|
+
}
|
|
150
|
+
forward() {
|
|
151
|
+
this.behaviorSubject.next({ ...this.getRouteData(), triggerPoint: "start" });
|
|
152
|
+
this.config.window.history?.forward();
|
|
153
|
+
}
|
|
154
|
+
go(config) {
|
|
155
|
+
if (typeof config === "number") {
|
|
156
|
+
this.behaviorSubject.next({ ...this.getRouteData(), triggerPoint: "start" });
|
|
157
|
+
this.config.window.history?.go(config);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
134
160
|
if (typeof config === "string") {
|
|
135
161
|
config = { path: config };
|
|
136
162
|
}
|
|
@@ -145,11 +171,9 @@ class Router {
|
|
|
145
171
|
} catch (e) {
|
|
146
172
|
}
|
|
147
173
|
}
|
|
148
|
-
if (!config.disabledPopEvent) {
|
|
149
|
-
this.dispatchPopStateEvent(config?.data);
|
|
150
|
-
}
|
|
151
174
|
}
|
|
152
175
|
toUrl(data) {
|
|
176
|
+
console.log("toUrl", data);
|
|
153
177
|
let targetPath;
|
|
154
178
|
if (typeof data === "string") {
|
|
155
179
|
targetPath = data;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/routers/Router.ts"],
|
|
4
|
-
"sourcesContent": ["import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';\nimport { Observable } from '@dooboostore/core/message/Observable';\nimport { BehaviorSubject } from '@dooboostore/core/message/BehaviorSubject';\nimport { Expression } from '@dooboostore/core/expression/Expression';\nimport ToURLSearchParamsParams = ConvertUtils.ToURLSearchParamsParams;\n\nexport type RouteData = {\n path: string;\n url: string;\n data?: any;\n searchParams: URLSearchParams;\n pathData?: any;\n router: Router;\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
4
|
+
"sourcesContent": ["import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';\nimport { Observable } from '@dooboostore/core/message/Observable';\nimport { BehaviorSubject } from '@dooboostore/core/message/BehaviorSubject';\nimport { Expression } from '@dooboostore/core/expression/Expression';\nimport ToURLSearchParamsParams = ConvertUtils.ToURLSearchParamsParams;\n\nexport type RouteData = {\n path: string;\n url: string;\n data?: any;\n searchParams: URLSearchParams;\n pathData?: any;\n router: Router;\n}\n\nexport type RouterConfig<T = any> = { rootObject?: T, window: Window, firstUrl?: string};\nexport type ChangeStateResult = {data?: any}\nexport type RouteAction = string | { path?: string, searchParams?: ToURLSearchParamsParams };\n\ntype RouterEventType = RouteData & { triggerPoint: 'start' | 'end' };\n\nexport abstract class Router<T = any> {\n private behaviorSubject: BehaviorSubject<RouterEventType>;\n private _config: RouterConfig<T>;\n\n constructor(config: RouterConfig<any>) {\n this._config = config;\n\n let routeData: RouterEventType;\n if (config?.firstUrl) {\n const path = config.firstUrl.split('?');\n routeData = {\n url: config.firstUrl,\n path: path[0],\n searchParams: new URLSearchParams(path[1]??''),\n router: this,\n triggerPoint: 'end'\n }\n this.behaviorSubject = new BehaviorSubject<RouterEventType>(routeData);\n this.go(config.firstUrl);\n } else {\n routeData = {...this.getRouteData(), triggerPoint: 'end'};\n this.behaviorSubject = new BehaviorSubject<RouterEventType>(routeData);\n }\n this.config.window.addEventListener('popstate', (event: PopStateEvent) => {\n // domrender\uC5D0\uC11C \uBC1C\uC0DD\uD558\uC9C0 \uC54A\uC740 \uC989 back, previous \uC77C\uB584\uC5D0\uB3C4 \uC774\uBCA4\uD2B8\uAC00\uB3C4\uB85D \uCC98\uB9AC\n // if(!isPopStateCurrentTargetDomrenderRouter(event.state)) {\n // console.log('-------');\n const routeData: RouterEventType = {...this.getRouteData(), triggerPoint: 'end'};\n this.behaviorSubject.next(routeData);\n // }\n })\n }\n\n\n get observable(): Observable<RouterEventType> {\n return this.behaviorSubject.asObservable();\n }\n\n get searchParamObject() {\n return ConvertUtils.toObject(this.getSearchParams());\n }\n\n get config() {\n return this._config;\n }\n\n public getSearchFirstParamsObject<T = any>(defaultValue?: T) {\n const a = ConvertUtils.toObject<T>(this.getSearchParams(), {firstValue: true});\n return Object.assign({}, defaultValue, a);\n }\n\n public getHashSearchFirstParamsObject<T = any>() {\n return ConvertUtils.toObject<T>(this.getHashSearchParams(), {firstValue: true});\n }\n\n // async attach(): Promise<void> {\n // // const proxy = getDomRenderProxy(this.config.rootObject)\n // // if (proxy) {\n // // const key = `___${EventManager.ROUTER_VARNAME}`;\n // // await proxy.render(key);\n // // }\n // }\n\n testRegexp(regexp?: string): boolean {\n if (regexp) {\n const b = RegExp(regexp).test(this.getPathName());\n return b;\n }else {\n return false;\n }\n }\n\n test(urlExpression?: string): boolean {\n if (urlExpression && this.getPathData(urlExpression)) {\n return true;\n } else {\n return false;\n }\n }\n\n getRouteData(config?: {pathOrUrl?: string, urlExpression?: string}): RouteData {\n\n let path = '';\n let url ='';\n if (config?.pathOrUrl) {\n let isUrl = false;\n try {\n new URL(config.pathOrUrl);\n isUrl = true;\n } catch {\n isUrl = false;\n }\n if(isUrl){\n const u = new URL(config.pathOrUrl);\n path = u.pathname;\n url = u.pathname + u.search;\n } else {\n path = config.pathOrUrl.split('?')[0];\n }\n } else {\n path = this.getPathName();\n url = this.getUrl();\n }\n const newVar = {\n path: path,\n url: url,\n searchParams: this.getSearchParams()\n } as RouteData;\n\n const data = this.getData();\n if (data) {\n newVar.data = data;\n }\n if (config?.urlExpression) {\n const data = this.getPathData(config.urlExpression);\n if (data) {\n newVar.pathData = data;\n }\n }\n newVar.router = this;\n // newVar.currentTarget = config?.currentTarget;\n return Object.freeze(newVar);\n }\n\n pushState(data: any, title: string | undefined, path: string):ChangeStateResult {\n // data = this.config.changeStateConvertDate?this.config.changeStateConvertDate(data): data;\n // console.log('--->pushState', data);\n this.behaviorSubject.next({ ...this.getRouteData({pathOrUrl:path}), triggerPoint: 'start' });\n this.config.window.history?.pushState(data, title ?? '', path);\n this.behaviorSubject.next({ ...this.getRouteData({pathOrUrl:path}), triggerPoint: 'end' });\n return {data};\n }\n\n replaceState(data: any, title: string | undefined, path: string):ChangeStateResult {\n // data = this.config.changeStateConvertDate?this.config.changeStateConvertDate(data): data;\n // console.log('--->replaceState', data);\n this.behaviorSubject.next({ ...this.getRouteData({pathOrUrl:path}), triggerPoint: 'start' });\n this.config.window.history?.replaceState(data, title ?? '', path);\n this.behaviorSubject.next({ ...this.getRouteData({pathOrUrl:path}), triggerPoint: 'end' });\n return {data};\n }\n\n getData(): any {\n return this.config.window.history?.state;\n }\n\n getPathData(urlExpression: string, currentUrl = this.getPathName()): any {\n return Expression.Path.pathNameData(currentUrl, urlExpression);\n }\n\n back(): void {\n this.behaviorSubject.next({...this.getRouteData(),triggerPoint:'start'});\n this.config.window.history.back();\n //en\uBD80\uBD84\uC740 constructo\uC758 this.config.window.addEventListener('popstate' \uC5D0\uC11C \uBC1B\uC544\uC11C \uCC98\uB9AC\uB41C\uB2E4 \uD638\uCD9C\uB41C\uB2E4.\n }\n\n forward(): void {\n this.behaviorSubject.next({...this.getRouteData(),triggerPoint:'start'});\n this.config.window.history?.forward();\n //end\uBD80\uBD84\uC740 constructor\uC758 this.config.window.addEventListener('popstate' \uC5D0\uC11C \uBC1B\uC544\uC11C \uCC98\uB9AC\uB41C\uB2E4 \uD638\uCD9C\uB41C\uB2E4.\n }\n\n go(i: number): void;\n async go(config: string | { path: RouteAction, data?: any, replace?: boolean, title?: string, scrollToTop?: boolean } | string): Promise<void> ;\n go(config: number | string | { path: RouteAction, data?: any, replace?: boolean, title?: string, scrollToTop?: boolean } | string): Promise<void> | void {\n if (typeof config === 'number') {\n this.behaviorSubject.next({...this.getRouteData(),triggerPoint:'start'});\n this.config.window.history?.go(config);\n //end\uBD80\uBD84\uC740 constructor\uC758 this.config.window.addEventListener('popstate' \uC5D0\uC11C \uBC1B\uC544\uC11C \uCC98\uB9AC\uB41C\uB2E4 \uD638\uCD9C\uB41C\uB2E4.\n return;\n }\n\n if (typeof config === 'string') {\n config = { path: config };\n }\n\n // let data: ChangeStateResult | undefined = undefined;\n if (config?.replace) {\n this.replace(config.path, config.data, config.title);\n } else {\n this.push(config.path, config.data, config.title);\n }\n // if (!this.config.disableAttach) {\n // await this.attach();\n // }\n\n // \uC2A4\uD06C\uB864 \uC81C\uC5B4 (\uAE30\uBCF8\uAC12: true - \uB9E8 \uC704\uB85C \uC2A4\uD06C\uB864)\n if (config.scrollToTop !== false) {\n try {\n this._config.window?.scrollTo?.(0, 0);\n }catch (e){}\n }\n\n // console.log('----------', data, config)\n // if (!config.disabledPopEvent) {\n // this.dispatchPopStateEvent(config?.data);\n // }\n }\n\n toUrl(data: RouteAction) {\n console.log('toUrl', data);\n let targetPath: string;\n if (typeof data === 'string') {\n targetPath = data;\n } else {\n const tpath = data.path ?? this.getPathName();\n const s = data.searchParams ? ConvertUtils.toURLSearchParams(data.searchParams).toString() : '';\n // data.searchParams\n targetPath = `${tpath}${s.length > 0 ? '?' : ''}${s}`;\n }\n return targetPath;\n }\n\n\n abstract push(path: RouteAction, data?: any, title?: string): void;\n\n abstract replace(path: RouteAction, data?: any, title?: string): void;\n\n abstract pushDeleteSearchParam(name: string | string[], data?: any, title?: string): void;\n\n abstract pushDeleteHashSearchParam(name: string | string[], data?: any, title?: string): void;\n\n abstract pushAddSearchParam(params:[[string, string]], data?: any, title?: string): void;\n\n abstract replaceDeleteSearchParam(name: string | string[], data?: any, title?: string): void;\n\n abstract replaceDeleteHashSearchParam(name: string | string[], data?: any, title?: string): void;\n\n abstract replaceAddSearchParam(params:[[string, string]], data?: any, title?: string): void;\n\n abstract getSearchParams(data?:{delete?:string[], append?:[[string, string]]}): URLSearchParams;\n\n abstract getHashSearchParams(data?:{delete?:string[], append?:[[string, string]]}): URLSearchParams;\n\n abstract getUrl(): string;\n\n abstract getHref(): string;\n\n abstract getPathName(): string;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["routeData", "data"]
|
|
7
7
|
}
|
|
@@ -19,7 +19,20 @@ import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
|
|
|
19
19
|
import { ValidUtils } from "@dooboostore/core/valid/ValidUtils";
|
|
20
20
|
import { isOnProxyDomRender } from "./lifecycle/OnProxyDomRender.js";
|
|
21
21
|
import { isOnRawSetRendered } from "./lifecycle/OnRawSetRendered.js";
|
|
22
|
-
const excludeGetSetPropertys = [
|
|
22
|
+
const excludeGetSetPropertys = [
|
|
23
|
+
"onBeforeReturnGet",
|
|
24
|
+
"onBeforeReturnSet",
|
|
25
|
+
"__domrender_components",
|
|
26
|
+
"__render",
|
|
27
|
+
"_DomRender_isFinal",
|
|
28
|
+
"_domRender_ref",
|
|
29
|
+
"_rawSets",
|
|
30
|
+
"_domRender_proxy",
|
|
31
|
+
"_targets",
|
|
32
|
+
"_DomRender_origin",
|
|
33
|
+
"_DomRender_ref",
|
|
34
|
+
"_DomRender_proxy"
|
|
35
|
+
];
|
|
23
36
|
const isWrapProxyDomRenderProxy = (obj) => {
|
|
24
37
|
return obj && typeof obj === "object" && "_DomRender_isProxy" in obj;
|
|
25
38
|
};
|
|
@@ -62,7 +75,7 @@ class DomRenderProxy {
|
|
|
62
75
|
static isFinal(obj) {
|
|
63
76
|
return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);
|
|
64
77
|
}
|
|
65
|
-
run(objProxy) {
|
|
78
|
+
async run(objProxy) {
|
|
66
79
|
this._domRender_proxy = objProxy;
|
|
67
80
|
if (isOnProxyDomRender(objProxy)) {
|
|
68
81
|
objProxy.onProxyDomRender(this._domRender_config);
|
|
@@ -87,18 +100,18 @@ class DomRenderProxy {
|
|
|
87
100
|
}
|
|
88
101
|
});
|
|
89
102
|
}
|
|
90
|
-
this._targets
|
|
91
|
-
this.initRender(target);
|
|
92
|
-
}
|
|
103
|
+
for (let target of this._targets) {
|
|
104
|
+
await this.initRender(target);
|
|
105
|
+
}
|
|
93
106
|
}
|
|
94
|
-
initRender(target, rawSet) {
|
|
107
|
+
async initRender(target, rawSet) {
|
|
95
108
|
if (target instanceof Element) {
|
|
96
109
|
target.innerHTML = target.innerHTML.replace(/@this@/g, "this");
|
|
97
110
|
}
|
|
98
111
|
const onCreate = target.getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
|
|
99
112
|
let createParam = [];
|
|
100
113
|
if (onCreate) {
|
|
101
|
-
createParam =
|
|
114
|
+
createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
|
|
102
115
|
if (!Array.isArray(createParam)) {
|
|
103
116
|
createParam = [createParam];
|
|
104
117
|
}
|
|
@@ -111,7 +124,11 @@ class DomRenderProxy {
|
|
|
111
124
|
}
|
|
112
125
|
this._targets.add(target);
|
|
113
126
|
const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);
|
|
114
|
-
this._domRender_config.eventManager.applyEvent(
|
|
127
|
+
this._domRender_config.eventManager.applyEvent(
|
|
128
|
+
this._domRender_proxy,
|
|
129
|
+
this._domRender_config.eventManager.findAttrElements(target, this._domRender_config),
|
|
130
|
+
this._domRender_config
|
|
131
|
+
);
|
|
115
132
|
rawSets.forEach((it) => {
|
|
116
133
|
const variables = it.getUsingTriggerVariables(this._domRender_config);
|
|
117
134
|
if (variables.size <= 0) {
|
|
@@ -122,16 +139,20 @@ class DomRenderProxy {
|
|
|
122
139
|
});
|
|
123
140
|
}
|
|
124
141
|
});
|
|
125
|
-
this.render(this.getRawSets())
|
|
142
|
+
const targetRawSets = await this.render(this.getRawSets());
|
|
143
|
+
for (let targetRawSet of targetRawSets) {
|
|
126
144
|
const onInit = target.getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
|
|
127
145
|
let initParam;
|
|
128
146
|
if (onCreate) {
|
|
129
147
|
initParam = ScriptUtils.evaluateReturn(onCreate, this._domRender_proxy);
|
|
130
148
|
}
|
|
131
149
|
if (isOnInitRender(this._domRender_proxy)) {
|
|
132
|
-
this._domRender_proxy.onInitRender(
|
|
150
|
+
await this._domRender_proxy.onInitRender(
|
|
151
|
+
initParam,
|
|
152
|
+
rawSet ?? { dataSet: { config: this._domRender_config } }
|
|
153
|
+
);
|
|
133
154
|
}
|
|
134
|
-
}
|
|
155
|
+
}
|
|
135
156
|
}
|
|
136
157
|
getRawSets() {
|
|
137
158
|
const set = /* @__PURE__ */ new Set();
|
|
@@ -164,9 +185,12 @@ class DomRenderProxy {
|
|
|
164
185
|
} else if (it.type === RawSetType.TARGET_ELEMENT && it.dataSet?.render?.currentThis && fullPathStr && targetAttrMap) {
|
|
165
186
|
new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
|
|
166
187
|
var _a;
|
|
167
|
-
const isUsing = EventManager.isUsingThisVar(
|
|
188
|
+
const isUsing = v.variablePaths.some((it2) => EventManager.isUsingThisVar(it2.inner, `this.${fullPathStr}`));
|
|
168
189
|
if (isUsing) {
|
|
169
|
-
const targetAttrObject = RawSet.getAttributeObject(it.point.node, {
|
|
190
|
+
const targetAttrObject = RawSet.getAttributeObject(it.point.node, {
|
|
191
|
+
script: it.dataSet?.render?.renderScript ?? "",
|
|
192
|
+
obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
|
|
193
|
+
});
|
|
170
194
|
(_a = it.dataSet).render ?? (_a.render = {});
|
|
171
195
|
it.dataSet.render.attribute = targetAttrObject;
|
|
172
196
|
if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {
|
|
@@ -210,7 +234,11 @@ class DomRenderProxy {
|
|
|
210
234
|
it.forEach((sit) => {
|
|
211
235
|
try {
|
|
212
236
|
const concat = pathInfos.concat([[{ path: sit, obj: key }]]);
|
|
213
|
-
const items = key._DomRender_proxy?.root(
|
|
237
|
+
const items = key._DomRender_proxy?.root(
|
|
238
|
+
concat,
|
|
239
|
+
value,
|
|
240
|
+
lastDoneExecute
|
|
241
|
+
);
|
|
214
242
|
fullPaths.push(items.flat());
|
|
215
243
|
} catch (e) {
|
|
216
244
|
}
|
|
@@ -246,10 +274,19 @@ class DomRenderProxy {
|
|
|
246
274
|
if (value === void 0) {
|
|
247
275
|
const rawSet = it.getHasRawSet(lastPropertyName);
|
|
248
276
|
rawSet?.remove();
|
|
249
|
-
startElement.setAttribute(
|
|
277
|
+
startElement.setAttribute(
|
|
278
|
+
RawSet.DR_HAS_KEYS_OPTIONNAME,
|
|
279
|
+
keys.filter((it2) => it2 !== lastPropertyName).join(",")
|
|
280
|
+
);
|
|
250
281
|
}
|
|
251
282
|
if (!keys.includes(lastPropertyName)) {
|
|
252
|
-
const raws = DrThisProperty.append(
|
|
283
|
+
const raws = DrThisProperty.append(
|
|
284
|
+
this._domRender_proxy,
|
|
285
|
+
fullPathStr,
|
|
286
|
+
lastPropertyName,
|
|
287
|
+
it,
|
|
288
|
+
this._domRender_config
|
|
289
|
+
);
|
|
253
290
|
if (raws) {
|
|
254
291
|
rawSets.push(...raws);
|
|
255
292
|
}
|
|
@@ -269,10 +306,19 @@ class DomRenderProxy {
|
|
|
269
306
|
} else if (iterable) {
|
|
270
307
|
rData = await this.render(Array.from(iterable), fullPathStr);
|
|
271
308
|
}
|
|
309
|
+
const Node = this._domRender_config.window.Node;
|
|
272
310
|
this._targets.forEach((it) => {
|
|
273
311
|
if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
|
|
274
|
-
const targets = this._domRender_config.eventManager.findAttrElements(
|
|
275
|
-
|
|
312
|
+
const targets = this._domRender_config.eventManager.findAttrElements(
|
|
313
|
+
it,
|
|
314
|
+
this._domRender_config
|
|
315
|
+
);
|
|
316
|
+
this._domRender_config.eventManager.changeVar(
|
|
317
|
+
this._domRender_proxy,
|
|
318
|
+
targets,
|
|
319
|
+
`this.${fullPathStr}`,
|
|
320
|
+
this._domRender_config
|
|
321
|
+
);
|
|
276
322
|
}
|
|
277
323
|
});
|
|
278
324
|
if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {
|
|
@@ -304,49 +350,64 @@ class DomRenderProxy {
|
|
|
304
350
|
fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);
|
|
305
351
|
}
|
|
306
352
|
const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;
|
|
307
|
-
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
});
|
|
323
|
-
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach((elementInfo) => {
|
|
324
|
-
const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
|
|
325
|
-
Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
|
|
326
|
-
return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
|
|
327
|
-
}).forEach((info) => {
|
|
328
|
-
const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);
|
|
329
|
-
const applyAttributeName = EventManager.linkAttrs.find((it) => it.name === info.key);
|
|
330
|
-
if (applyAttributeName) {
|
|
353
|
+
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(
|
|
354
|
+
(elementInfo) => {
|
|
355
|
+
const targets = new Map(
|
|
356
|
+
ObjectUtils.Script.evaluateReturn(elementInfo.value)
|
|
357
|
+
);
|
|
358
|
+
Array.from(targets.entries()).filter(isDefined).flatMap(([key, valueScript]) => {
|
|
359
|
+
return fullPathInfo.flat().filter((it) => valueScript.variablePaths?.some((vit) => vit.inner.includes(`this.${it.path}`))).flatMap((it) => ({ key, valueScript, pathInfo: it }));
|
|
360
|
+
}).forEach((it) => {
|
|
361
|
+
const variablePaths = it.valueScript.variablePaths;
|
|
362
|
+
let targetScript = it.valueScript.originalAttrValue;
|
|
363
|
+
variablePaths.forEach((it2) => {
|
|
364
|
+
let r = ObjectUtils.Path.toOptionalChainPath(it2.inner);
|
|
365
|
+
targetScript = targetScript.replaceAll(it2.origin, `\${${r}}`);
|
|
366
|
+
});
|
|
367
|
+
const value1 = ObjectUtils.Script.evaluateReturn("`" + targetScript + "`", it.pathInfo.obj);
|
|
331
368
|
if (value1 === null) {
|
|
332
|
-
elementInfo.element.removeAttribute(
|
|
369
|
+
elementInfo.element.removeAttribute(it.key);
|
|
370
|
+
elementInfo.element[it.key] = null;
|
|
333
371
|
} else {
|
|
334
|
-
elementInfo.element.setAttribute(
|
|
372
|
+
elementInfo.element.setAttribute(it.key, value1);
|
|
373
|
+
elementInfo.element[it.key] = value1;
|
|
335
374
|
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
const
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
);
|
|
378
|
+
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(
|
|
379
|
+
(elementInfo) => {
|
|
380
|
+
const targets = new Map(ScriptUtils.evaluateReturn(elementInfo.value));
|
|
381
|
+
Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
|
|
382
|
+
return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
|
|
383
|
+
}).forEach((info) => {
|
|
384
|
+
const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);
|
|
385
|
+
const applyAttributeName = EventManager.linkAttrs.find((it) => it.name === info.key);
|
|
386
|
+
if (applyAttributeName) {
|
|
387
|
+
if (value1 === null) {
|
|
388
|
+
elementInfo.element.removeAttribute(applyAttributeName.property);
|
|
389
|
+
} else {
|
|
390
|
+
elementInfo.element.setAttribute(applyAttributeName.property, value1);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
|
|
395
|
+
return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
|
|
396
|
+
}).forEach((info) => {
|
|
397
|
+
const linkInfo = EventManager.linkAttrs.find((it) => it.name === info.key);
|
|
398
|
+
if (linkInfo) {
|
|
399
|
+
elementInfo.element[linkInfo.property] = value;
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
);
|
|
347
404
|
if ("onBeforeReturnSet" in receiver && typeof p === "string" && !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)) {
|
|
348
405
|
if (isOnBeforeReturnSet(receiver)) {
|
|
349
|
-
receiver.onBeforeReturnSet?.(
|
|
406
|
+
receiver.onBeforeReturnSet?.(
|
|
407
|
+
p,
|
|
408
|
+
value,
|
|
409
|
+
fullPathInfo.map((it) => it.map((it2) => it2.path).join())
|
|
410
|
+
);
|
|
350
411
|
}
|
|
351
412
|
}
|
|
352
413
|
return true;
|
|
@@ -366,7 +427,11 @@ class DomRenderProxy {
|
|
|
366
427
|
it = it._DomRender_origin;
|
|
367
428
|
}
|
|
368
429
|
if ("onBeforeReturnGet" in receiver && typeof p === "string" && !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)) {
|
|
369
|
-
receiver?.onBeforeReturnGet?.(
|
|
430
|
+
receiver?.onBeforeReturnGet?.(
|
|
431
|
+
p,
|
|
432
|
+
it,
|
|
433
|
+
this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)
|
|
434
|
+
);
|
|
370
435
|
}
|
|
371
436
|
return it;
|
|
372
437
|
}
|