@dooboostore/dom-render 1.0.110 → 1.0.112
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/README.MD +1 -2
- package/dist/cjs/DomRenderProxy.js +89 -48
- package/dist/cjs/DomRenderProxy.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +47 -1
- package/dist/cjs/components/ComponentBase.js.map +2 -2
- package/dist/cjs/components/a/A.js +22 -0
- package/dist/cjs/components/a/A.js.map +2 -2
- package/dist/cjs/components/appender/Appender.js +21 -4
- package/dist/cjs/components/appender/Appender.js.map +2 -2
- package/dist/cjs/components/details/Details.js +5 -0
- package/dist/cjs/components/details/Details.js.map +2 -2
- package/dist/cjs/components/forOf/ForOf.js +2 -2
- package/dist/cjs/components/forOf/ForOf.js.map +1 -1
- package/dist/cjs/components/if/If.js +1 -1
- package/dist/cjs/components/if/If.js.map +2 -2
- package/dist/cjs/components/index.js +3 -1
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/router/RouterOutlet.js +41 -10
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +39 -1
- package/dist/cjs/components/select/Select.js.map +2 -2
- package/dist/cjs/components/this/This.js +33 -5
- package/dist/cjs/components/this/This.js.map +2 -2
- package/dist/cjs/decorators/DomRenderNoProxy.js +3 -9
- package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/cjs/events/EventManager.js +103 -37
- package/dist/cjs/events/EventManager.js.map +2 -2
- package/dist/cjs/lifecycle/OnChangeAttrRender.js.map +1 -1
- package/dist/cjs/lifecycle/OnChildRawSetRendered.js +26 -0
- package/dist/cjs/lifecycle/OnChildRawSetRendered.js.map +7 -0
- package/dist/cjs/lifecycle/OnRawSetRendered.js.map +2 -2
- package/dist/cjs/operators/Appender.js +8 -1
- package/dist/cjs/operators/Appender.js.map +2 -2
- package/dist/cjs/operators/Dr.js +2 -2
- package/dist/cjs/operators/Dr.js.map +2 -2
- package/dist/cjs/operators/DrAppender.js +2 -2
- package/dist/cjs/operators/DrAppender.js.map +2 -2
- package/dist/cjs/operators/DrFor.js +2 -2
- package/dist/cjs/operators/DrFor.js.map +2 -2
- package/dist/cjs/operators/DrForOf.js +34 -6
- package/dist/cjs/operators/DrForOf.js.map +2 -2
- package/dist/cjs/operators/DrForm.js +6 -6
- package/dist/cjs/operators/DrForm.js.map +2 -2
- package/dist/cjs/operators/DrInnerHTML.js +2 -2
- package/dist/cjs/operators/DrInnerHTML.js.map +2 -2
- package/dist/cjs/operators/DrRepeat.js +2 -2
- package/dist/cjs/operators/DrRepeat.js.map +2 -2
- package/dist/cjs/operators/DrStripElement.js +2 -2
- package/dist/cjs/operators/DrStripElement.js.map +2 -2
- package/dist/cjs/operators/DrTargetElement.js +14 -5
- package/dist/cjs/operators/DrTargetElement.js.map +2 -2
- package/dist/cjs/operators/DrTargetElementIsElement.js +2 -2
- package/dist/cjs/operators/DrTargetElementIsElement.js.map +2 -2
- package/dist/cjs/operators/DrThis.js +2 -2
- package/dist/cjs/operators/DrThis.js.map +2 -2
- package/dist/cjs/operators/DrThisProperty.js +2 -1
- package/dist/cjs/operators/DrThisProperty.js.map +2 -2
- package/dist/cjs/rawsets/RawSet.js +87 -160
- package/dist/cjs/rawsets/RawSet.js.map +2 -2
- package/dist/cjs/routers/HashRouter.js +3 -0
- package/dist/cjs/routers/HashRouter.js.map +2 -2
- package/dist/cjs/routers/PathRouter.js +3 -0
- package/dist/cjs/routers/PathRouter.js.map +2 -2
- package/dist/cjs/routers/Router.js +25 -21
- package/dist/cjs/routers/Router.js.map +2 -2
- package/dist/esm/DomRenderProxy.js +89 -48
- package/dist/esm/DomRenderProxy.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +47 -1
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/a/A.js +22 -0
- package/dist/esm/components/a/A.js.map +2 -2
- package/dist/esm/components/appender/Appender.js +22 -5
- package/dist/esm/components/appender/Appender.js.map +2 -2
- package/dist/esm/components/details/Details.js +5 -0
- package/dist/esm/components/details/Details.js.map +2 -2
- package/dist/esm/components/forOf/ForOf.js +2 -2
- package/dist/esm/components/forOf/ForOf.js.map +1 -1
- package/dist/esm/components/if/If.js +1 -1
- package/dist/esm/components/if/If.js.map +2 -2
- package/dist/esm/components/index.js +3 -1
- package/dist/esm/components/index.js.map +2 -2
- package/dist/esm/components/router/RouterOutlet.js +41 -10
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +39 -1
- package/dist/esm/components/select/Select.js.map +2 -2
- package/dist/esm/components/this/This.js +33 -5
- package/dist/esm/components/this/This.js.map +2 -2
- package/dist/esm/decorators/DomRenderNoProxy.js +3 -9
- package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/esm/events/EventManager.js +103 -37
- package/dist/esm/events/EventManager.js.map +2 -2
- package/dist/esm/lifecycle/OnChangeAttrRender.js.map +1 -1
- package/dist/esm/lifecycle/OnChildRawSetRendered.js +7 -0
- package/dist/esm/lifecycle/OnChildRawSetRendered.js.map +7 -0
- package/dist/esm/lifecycle/OnRawSetRendered.js.map +2 -2
- package/dist/esm/operators/Appender.js +8 -1
- package/dist/esm/operators/Appender.js.map +2 -2
- package/dist/esm/operators/Dr.js +2 -2
- package/dist/esm/operators/Dr.js.map +2 -2
- package/dist/esm/operators/DrAppender.js +2 -2
- package/dist/esm/operators/DrAppender.js.map +2 -2
- package/dist/esm/operators/DrFor.js +2 -2
- package/dist/esm/operators/DrFor.js.map +2 -2
- package/dist/esm/operators/DrForOf.js +34 -6
- package/dist/esm/operators/DrForOf.js.map +2 -2
- package/dist/esm/operators/DrForm.js +6 -6
- package/dist/esm/operators/DrForm.js.map +2 -2
- package/dist/esm/operators/DrInnerHTML.js +2 -2
- package/dist/esm/operators/DrInnerHTML.js.map +2 -2
- package/dist/esm/operators/DrRepeat.js +2 -2
- package/dist/esm/operators/DrRepeat.js.map +2 -2
- package/dist/esm/operators/DrStripElement.js +2 -2
- package/dist/esm/operators/DrStripElement.js.map +2 -2
- package/dist/esm/operators/DrTargetElement.js +14 -5
- package/dist/esm/operators/DrTargetElement.js.map +2 -2
- package/dist/esm/operators/DrTargetElementIsElement.js +2 -2
- package/dist/esm/operators/DrTargetElementIsElement.js.map +2 -2
- package/dist/esm/operators/DrThis.js +2 -2
- package/dist/esm/operators/DrThis.js.map +2 -2
- package/dist/esm/operators/DrThisProperty.js +2 -1
- package/dist/esm/operators/DrThisProperty.js.map +2 -2
- package/dist/esm/rawsets/RawSet.js +87 -160
- package/dist/esm/rawsets/RawSet.js.map +2 -2
- package/dist/esm/routers/HashRouter.js +3 -0
- package/dist/esm/routers/HashRouter.js.map +2 -2
- package/dist/esm/routers/PathRouter.js +3 -0
- package/dist/esm/routers/PathRouter.js.map +2 -2
- package/dist/esm/routers/Router.js +25 -21
- package/dist/esm/routers/Router.js.map +2 -2
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +830 -1533
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +12 -1
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/a/A.d.ts +6 -0
- package/dist/types/components/a/A.d.ts.map +1 -1
- package/dist/types/components/appender/Appender.d.ts +1 -0
- package/dist/types/components/appender/Appender.d.ts.map +1 -1
- package/dist/types/components/details/Details.d.ts +2 -0
- package/dist/types/components/details/Details.d.ts.map +1 -1
- package/dist/types/components/forOf/ForOf.d.ts +1 -1
- package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
- package/dist/types/components/if/If.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts +6 -3
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +5 -3
- package/dist/types/components/select/Select.d.ts.map +1 -1
- package/dist/types/components/this/This.d.ts +5 -1
- package/dist/types/components/this/This.d.ts.map +1 -1
- package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
- package/dist/types/events/EventManager.d.ts +1 -0
- package/dist/types/events/EventManager.d.ts.map +1 -1
- package/dist/types/lifecycle/OnChangeAttrRender.d.ts +1 -1
- package/dist/types/lifecycle/OnChangeAttrRender.d.ts.map +1 -1
- package/dist/types/lifecycle/OnChildRawSetRendered.d.ts +9 -0
- package/dist/types/lifecycle/OnChildRawSetRendered.d.ts.map +1 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts +2 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -1
- package/dist/types/operators/Appender.d.ts +1 -0
- package/dist/types/operators/Appender.d.ts.map +1 -1
- package/dist/types/operators/Dr.d.ts.map +1 -1
- package/dist/types/operators/DrAppender.d.ts.map +1 -1
- package/dist/types/operators/DrFor.d.ts.map +1 -1
- package/dist/types/operators/DrForOf.d.ts.map +1 -1
- package/dist/types/operators/DrForm.d.ts.map +1 -1
- package/dist/types/operators/DrInnerHTML.d.ts.map +1 -1
- package/dist/types/operators/DrRepeat.d.ts.map +1 -1
- package/dist/types/operators/DrStripElement.d.ts.map +1 -1
- package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
- package/dist/types/operators/DrThisProperty.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +4 -1
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/routers/HashRouter.d.ts +1 -0
- package/dist/types/routers/HashRouter.d.ts.map +1 -1
- package/dist/types/routers/PathRouter.d.ts +1 -0
- package/dist/types/routers/PathRouter.d.ts.map +1 -1
- package/dist/types/routers/Router.d.ts +3 -0
- package/dist/types/routers/Router.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +830 -1533
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +4 -4
- package/src/DomRenderProxy.ts +169 -75
- package/src/DomRenderProxy.ts_cache_back +1031 -0
- package/src/components/ComponentBase.ts +61 -5
- package/src/components/a/A.ts +25 -0
- package/src/components/appender/Appender.ts +3 -3
- package/src/components/details/Details.ts +7 -0
- package/src/components/forOf/ForOf.ts +2 -2
- package/src/components/if/If.ts +3 -2
- package/src/components/index.ts +3 -0
- package/src/components/router/RouterOutlet.ts +60 -22
- package/src/components/select/Select.ts +69 -30
- package/src/components/this/This.ts +41 -6
- package/src/decorators/DomRenderNoProxy.ts +17 -14
- package/src/events/EventManager.ts +180 -77
- package/src/lifecycle/OnChangeAttrRender.ts +1 -1
- package/src/lifecycle/OnChildRawSetRendered.ts +13 -0
- package/src/lifecycle/OnRawSetRendered.ts +3 -1
- package/src/operators/Appender.ts +8 -1
- package/src/operators/Dr.ts +2 -1
- package/src/operators/DrAppender.ts +2 -1
- package/src/operators/DrFor.ts +2 -1
- package/src/operators/DrForOf.ts +36 -6
- package/src/operators/DrForm.ts +6 -5
- package/src/operators/DrInnerHTML.ts +2 -1
- package/src/operators/DrRepeat.ts +2 -1
- package/src/operators/DrStripElement.ts +2 -1
- package/src/operators/DrTargetElement.ts +17 -5
- package/src/operators/DrTargetElementIsElement.ts +2 -2
- package/src/operators/DrThis.ts +2 -2
- package/src/operators/DrThisProperty.ts +2 -1
- package/src/rawsets/RawSet.ts +161 -237
- package/src/routers/HashRouter.ts +4 -0
- package/src/routers/PathRouter.ts +5 -0
- package/src/routers/Router.ts +64 -47
- package/src/node_modules/.bin/acorn +0 -17
- package/src/node_modules/.bin/browserslist +0 -17
- package/src/node_modules/.bin/eslint +0 -17
- package/src/node_modules/.bin/sbf +0 -17
- package/src/node_modules/.bin/ts-node +0 -17
- package/src/node_modules/.bin/ts-node-cwd +0 -17
- package/src/node_modules/.bin/ts-node-dev +0 -17
- package/src/node_modules/.bin/ts-node-esm +0 -17
- package/src/node_modules/.bin/ts-node-script +0 -17
- package/src/node_modules/.bin/ts-node-transpile-only +0 -17
- package/src/node_modules/.bin/ts-script +0 -17
- package/src/node_modules/.bin/tsc +0 -17
- package/src/node_modules/.bin/tsnd +0 -17
- package/src/node_modules/.bin/tsserver +0 -17
- package/src/node_modules/.bin/webpack +0 -17
- package/src/node_modules/.bin/webpack-cli +0 -17
- package/src/node_modules/.bin/webpack-dev-server +0 -17
|
@@ -90,6 +90,9 @@ class HashRouter extends import_Router.Router {
|
|
|
90
90
|
getPathName() {
|
|
91
91
|
return import_LocationUtils.LocationUtils.hashPath(this.config.window) || "/";
|
|
92
92
|
}
|
|
93
|
+
getSearch() {
|
|
94
|
+
return import_LocationUtils.LocationUtils.hashSearch(this.config.window);
|
|
95
|
+
}
|
|
93
96
|
getHashSearchParams(data) {
|
|
94
97
|
const hash = this.config.window.location.hash;
|
|
95
98
|
const queryIndex = hash.indexOf("?");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/routers/HashRouter.ts"],
|
|
4
|
-
"sourcesContent": ["import { ChangeStateResult, RouteAction, Router, RouterConfig } from './Router';\nimport { LocationUtils } from '@dooboostore/core-web/location/LocationUtils';\n\n\nexport class HashRouter extends Router {\n\n constructor(config: RouterConfig) {\n super(config);\n }\n\n\n getSearchParams(data?: { delete?: string[], append?: [[string, string]] }): URLSearchParams {\n const hashSearch = LocationUtils.hashSearch(this.config.window);\n const searchParams = hashSearch ? new URLSearchParams(hashSearch) : (new URL(this.config.window.document.location.href)).searchParams;\n\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\n push(path: RouteAction, data?: any, title: string = ''): ChangeStateResult {\n if (path === '/') {\n return super.pushState(data, title, '/');\n } else {\n return super.pushState(data, title, `#${this.toUrl(path)}`);\n }\n }\n\n replace(path: RouteAction, data?: any, title?: string):ChangeStateResult {\n if (path === '/') {\n return super.replaceState(data, title, '/');\n } else {\n return super.replaceState(data, title, `#${this.toUrl(path)}`);\n }\n }\n\n setDeleteHashSearchParam(name: string, data?: any, title?: string) {\n }\n\n pushDeleteHashSearchParam(name: string | string[], data: any, title: string | undefined): void {\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.pushState(data, title, href);\n }\n\n pushDeleteSearchParam(name: string | string[], data?: any, title?: string): void {\n const s = this.getSearchParams({delete:Array.isArray(name) ? name : [name]});\n this.push({searchParams: s}, data, title);\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\n replaceDeleteHashSearchParam(name: string | string[], data: any, title: string | undefined): void {\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.pushState(data, title, href);\n }\n\n replaceDeleteSearchParam(name: string | string[], data?: any, title?: string): void {\n const s = this.getSearchParams({delete: Array.isArray(name) ? name : [name]});\n this.push({searchParams: s}, data, title);\n }\n\n replaceAddSearchParam(params:[[string, string]], data?: any, title?: string): void {\n const s = this.getSearchParams({append: params});\n this.push({searchParams: s}, data, title);\n }\n\n getUrl(): string {\n return LocationUtils.hash(this.config.window) || '/';\n }\n\n getHref(): string {\n return this.config.window.location.href;\n }\n\n getPathName(): string {\n return LocationUtils.hashPath(this.config.window) || '/';\n }\n\n getHashSearchParams(data?:{delete?:string[], append?:[[string, string]]}): URLSearchParams {\n const hash = this.config.window.location.hash;\n const queryIndex = hash.indexOf('?');\n const searchParams = (queryIndex !== -1) ? new URLSearchParams(hash.slice(queryIndex + 1)) : new URLSearchParams();;\n data?.delete?.forEach(it => {\n searchParams.delete(it);\n })\n data?.append?.forEach(it => {\n searchParams.append(it[0], it[1]);\n })\n return searchParams;\n\n }\n\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { ChangeStateResult, RouteAction, Router, RouterConfig } from './Router';\nimport { LocationUtils } from '@dooboostore/core-web/location/LocationUtils';\n\n\nexport class HashRouter extends Router {\n\n constructor(config: RouterConfig) {\n super(config);\n }\n\n\n getSearchParams(data?: { delete?: string[], append?: [[string, string]] }): URLSearchParams {\n const hashSearch = LocationUtils.hashSearch(this.config.window);\n const searchParams = hashSearch ? new URLSearchParams(hashSearch) : (new URL(this.config.window.document.location.href)).searchParams;\n\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\n push(path: RouteAction, data?: any, title: string = ''): ChangeStateResult {\n if (path === '/') {\n return super.pushState(data, title, '/');\n } else {\n return super.pushState(data, title, `#${this.toUrl(path)}`);\n }\n }\n\n replace(path: RouteAction, data?: any, title?: string):ChangeStateResult {\n if (path === '/') {\n return super.replaceState(data, title, '/');\n } else {\n return super.replaceState(data, title, `#${this.toUrl(path)}`);\n }\n }\n\n setDeleteHashSearchParam(name: string, data?: any, title?: string) {\n }\n\n pushDeleteHashSearchParam(name: string | string[], data: any, title: string | undefined): void {\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.pushState(data, title, href);\n }\n\n pushDeleteSearchParam(name: string | string[], data?: any, title?: string): void {\n const s = this.getSearchParams({delete:Array.isArray(name) ? name : [name]});\n this.push({searchParams: s}, data, title);\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\n replaceDeleteHashSearchParam(name: string | string[], data: any, title: string | undefined): void {\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.pushState(data, title, href);\n }\n\n replaceDeleteSearchParam(name: string | string[], data?: any, title?: string): void {\n const s = this.getSearchParams({delete: Array.isArray(name) ? name : [name]});\n this.push({searchParams: s}, data, title);\n }\n\n replaceAddSearchParam(params:[[string, string]], data?: any, title?: string): void {\n const s = this.getSearchParams({append: params});\n this.push({searchParams: s}, data, title);\n }\n\n getUrl(): string {\n return LocationUtils.hash(this.config.window) || '/';\n }\n\n getHref(): string {\n return this.config.window.location.href;\n }\n\n getPathName(): string {\n return LocationUtils.hashPath(this.config.window) || '/';\n }\n\n getSearch(): string {\n return LocationUtils.hashSearch(this.config.window);\n }\n\n getHashSearchParams(data?:{delete?:string[], append?:[[string, string]]}): URLSearchParams {\n const hash = this.config.window.location.hash;\n const queryIndex = hash.indexOf('?');\n const searchParams = (queryIndex !== -1) ? new URLSearchParams(hash.slice(queryIndex + 1)) : new URLSearchParams();;\n data?.delete?.forEach(it => {\n searchParams.delete(it);\n })\n data?.append?.forEach(it => {\n searchParams.append(it[0], it[1]);\n })\n return searchParams;\n\n }\n\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -85,6 +85,9 @@ class PathRouter extends import_Router.Router {
|
|
|
85
85
|
getPathName() {
|
|
86
86
|
return this.config.window.location?.pathname ?? "/";
|
|
87
87
|
}
|
|
88
|
+
getSearch() {
|
|
89
|
+
return this.config.window.location?.search ?? "";
|
|
90
|
+
}
|
|
88
91
|
getHashSearchParams(data) {
|
|
89
92
|
const searchParams = new URLSearchParams(this.config.window.location?.hash.slice(1) ?? "");
|
|
90
93
|
data?.delete?.forEach((it) => {
|
|
@@ -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 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": ";;;;;;;;;;;;;;;;;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,QAAI,CAAC,KAAK,OAAO,OAAO,UAAU,UAAU,MAAM;AAChD,aAAO,IAAI,gBAAgB;AAAA,IAC7B;AAEA,UAAM,eAAiB,IAAI,IAAI,KAAK,OAAO,OAAO,SAAS,UAAU,IAAI,EAAG;AAC5E,UAAM,QAAQ,QAAQ,QAAM;AAC1B,mBAAa,OAAO,EAAE;AAAA,IACxB,CAAC;AAED,UAAM,QAAQ,QAAQ,QAAM;AAC1B,mBAAa,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAAA,IAClC,CAAC;AACD,WAAO;AAAA,EAET;AAAA,EAEA,KAAK,MAAmB,MAAY,QAAgB,IAAuB;AACzE,WAAO,MAAM,UAAU,MAAM,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,EACtD;AAAA,EAEA,QAAQ,MAAmB,MAAY,QAAgB,IAAuB;AAC5E,WAAO,MAAM,aAAa,MAAM,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,EACzD;AAAA,EAEA,sBAAsB,MAAc,MAAY,OAAsB;AACpE,UAAM,IAAI,KAAK,gBAAgB,EAAC,QAAQ,CAAC,IAAI,EAAC,CAAC;AAC/C,SAAK,KAAK,EAAC,cAAc,EAAC,GAAG,MAAM,KAAK;AAAA,EAC1C;AAAA,EAEA,0BAA0B,MAAc,MAAY,OAAgB;AAClE,UAAM,IAAI,KAAK,oBAAoB,EAAC,QAAQ,CAAC,IAAI,EAAC,CAAC;AACnD,UAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE;AACrC,UAAM,OAAO,GAAG,KAAK,OAAO,OAAO,UAAU,YAAU,GAAG,GAAG,KAAK,OAAO,OAAO,UAAU,MAAM,GAAG,OAAO,IAAI,MAAM,EAAE,SAAS,IAAI,EAAE;AACrI,UAAM,UAAU,MAAM,OAAO,IAAI;AAAA,EACnC;AAAA,EAEA,mBAAmB,QAA2B,MAAY,OAAsB;AAC9E,UAAM,IAAI,KAAK,gBAAgB,EAAC,QAAQ,OAAM,CAAC;AAC/C,SAAK,KAAK,EAAC,cAAc,EAAC,GAAG,MAAM,KAAK;AAAA,EAC1C;AAAA,EACA,yBAAyB,MAAyB,MAAY,OAAsB;AAClF,UAAM,IAAI,KAAK,gBAAgB,EAAC,QAAQ,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAC,CAAC;AAC5E,SAAK,QAAQ,EAAC,cAAc,EAAC,GAAG,MAAM,KAAK;AAAA,EAC7C;AAAA,EAEA,6BAA6B,MAAyB,MAAY,OAAgB;AAChF,UAAM,IAAI,KAAK,oBAAoB,EAAC,QAAQ,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAC,CAAC;AAChF,UAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE;AACrC,UAAM,OAAO,GAAG,KAAK,OAAO,OAAO,UAAU,YAAU,GAAG,GAAG,KAAK,OAAO,OAAO,UAAU,MAAM,GAAG,OAAO,IAAI,MAAM,EAAE,SAAS,IAAI,EAAE;AACrI,UAAM,aAAa,MAAM,OAAO,IAAI;AAAA,EACtC;AAAA,EAEA,sBAAsB,QAA2B,MAAY,OAAsB;AACjF,UAAM,IAAI,KAAK,gBAAgB,EAAC,QAAQ,OAAM,CAAC;AAC/C,SAAK,QAAQ,EAAC,cAAc,EAAC,GAAG,MAAM,KAAK;AAAA,EAC7C;AAAA,EAGA,SAAiB;AACf,QAAI,CAAC,KAAK,OAAO,OAAO,UAAU,UAAU,MAAM;
|
|
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 //if ((!this.config.window.document?.location?.href) || (this.config.window.document?.location?.href === 'about:blank')) {\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 getSearch(): string {\n return this.config.window.location?.search??'';\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
|
}
|
|
@@ -23,17 +23,20 @@ module.exports = __toCommonJS(Router_exports);
|
|
|
23
23
|
var import_ConvertUtils = require("@dooboostore/core/convert/ConvertUtils");
|
|
24
24
|
var import_BehaviorSubject = require("@dooboostore/core/message/BehaviorSubject");
|
|
25
25
|
var import_Expression = require("@dooboostore/core/expression/Expression");
|
|
26
|
+
var import_ValidUtils = require("@dooboostore/core/valid/ValidUtils");
|
|
26
27
|
class Router {
|
|
27
28
|
constructor(config) {
|
|
28
29
|
this._config = config;
|
|
29
30
|
let routeData;
|
|
30
31
|
if (config?.firstUrl) {
|
|
31
32
|
const path = config.firstUrl.split("?");
|
|
33
|
+
const urlSearchParams = new URLSearchParams(path[1] ?? "");
|
|
32
34
|
routeData = {
|
|
33
35
|
url: config.firstUrl,
|
|
34
36
|
path: path[0],
|
|
35
|
-
searchParams:
|
|
37
|
+
searchParams: urlSearchParams,
|
|
36
38
|
router: this,
|
|
39
|
+
search: urlSearchParams.size > 0 ? `?${urlSearchParams.toString()}` : "",
|
|
37
40
|
triggerPoint: "end"
|
|
38
41
|
};
|
|
39
42
|
this.behaviorSubject = new import_BehaviorSubject.BehaviorSubject(routeData);
|
|
@@ -86,31 +89,30 @@ class Router {
|
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
91
|
getRouteData(config) {
|
|
89
|
-
let path =
|
|
90
|
-
let url =
|
|
92
|
+
let path = this.getPathName();
|
|
93
|
+
let url = this.getUrl();
|
|
94
|
+
let searchParams = this.getSearchParams();
|
|
95
|
+
let search = this.getSearch();
|
|
91
96
|
if (config?.pathOrUrl) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
if (isUrl) {
|
|
100
|
-
const u = new URL(config.pathOrUrl);
|
|
101
|
-
path = u.pathname;
|
|
102
|
-
url = u.pathname + u.search;
|
|
97
|
+
const paths = config.pathOrUrl.split("?");
|
|
98
|
+
search = paths[1] ? `?${paths[1]}` : "";
|
|
99
|
+
searchParams = new URLSearchParams(search);
|
|
100
|
+
const firstUrl = paths[0];
|
|
101
|
+
if (import_ValidUtils.ValidUtils.isUrl(firstUrl)) {
|
|
102
|
+
path = new URL(firstUrl).pathname;
|
|
103
103
|
} else {
|
|
104
|
-
path =
|
|
104
|
+
path = firstUrl;
|
|
105
105
|
}
|
|
106
|
-
|
|
107
|
-
path = this.getPathName();
|
|
108
|
-
url = this.getUrl();
|
|
106
|
+
url = config.pathOrUrl;
|
|
109
107
|
}
|
|
110
108
|
const newVar = {
|
|
111
109
|
path,
|
|
112
110
|
url,
|
|
113
|
-
searchParams
|
|
111
|
+
searchParams,
|
|
112
|
+
// 이렇게 하면 진짜 문자열이 변형이 될수 있다 따라서 그냥 문자열 자른 원본을넣어줘야한다
|
|
113
|
+
// search: searchParams.size > 0 ? `?${searchParams.toString()}` : '',
|
|
114
|
+
search,
|
|
115
|
+
router: this
|
|
114
116
|
};
|
|
115
117
|
const data = this.getData();
|
|
116
118
|
if (data) {
|
|
@@ -122,7 +124,6 @@ class Router {
|
|
|
122
124
|
newVar.pathData = data2;
|
|
123
125
|
}
|
|
124
126
|
}
|
|
125
|
-
newVar.router = this;
|
|
126
127
|
return Object.freeze(newVar);
|
|
127
128
|
}
|
|
128
129
|
pushState(data, title, path) {
|
|
@@ -173,7 +174,6 @@ class Router {
|
|
|
173
174
|
}
|
|
174
175
|
}
|
|
175
176
|
toUrl(data) {
|
|
176
|
-
console.log("toUrl", data);
|
|
177
177
|
let targetPath;
|
|
178
178
|
if (typeof data === "string") {
|
|
179
179
|
targetPath = data;
|
|
@@ -184,5 +184,9 @@ class Router {
|
|
|
184
184
|
}
|
|
185
185
|
return targetPath;
|
|
186
186
|
}
|
|
187
|
+
reload() {
|
|
188
|
+
const currentUrl = this.getUrl();
|
|
189
|
+
this.replace(currentUrl);
|
|
190
|
+
}
|
|
187
191
|
}
|
|
188
192
|
//# sourceMappingURL=Router.js.map
|
|
@@ -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}\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": ";;;;;;;;;;;;;;;;;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;\nimport {ValidUtils} from \"@dooboostore/core/valid/ValidUtils\";\n\nexport type RouteData = {\n path: string;\n url: string;\n data?: any;\n search: string;\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 const urlSearchParams = new URLSearchParams(path[1] ?? '');\n routeData = {\n url: config.firstUrl,\n path: path[0],\n searchParams: urlSearchParams,\n router: this,\n search: urlSearchParams.size > 0 ? `?${urlSearchParams.toString()}` : '',\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 = this.getPathName();\n let url = this.getUrl();\n let searchParams = this.getSearchParams();\n let search = this.getSearch();\n\n // console.log('pppppppppppppp', path,url,searchParams,search);\n // \uC694\uCCAD URL\uC774 \uC788\uC744\uACBD\uC6B0 \uD574\uB2F9 URL\uB85C \uD30C\uC2F1\n if (config?.pathOrUrl) {\n const paths = config.pathOrUrl.split('?');\n search = paths[1] ? `?${paths[1]}`: '';\n searchParams = new URLSearchParams(search);\n const firstUrl = paths[0];\n if (ValidUtils.isUrl(firstUrl)) {\n path = new URL(firstUrl).pathname;\n } else {\n path = firstUrl;\n }\n url = config.pathOrUrl;\n // }\n }\n // console.log('url', url);\n const newVar: RouteData = {\n path: path,\n url: url,\n searchParams: searchParams,\n // \uC774\uB807\uAC8C \uD558\uBA74 \uC9C4\uC9DC \uBB38\uC790\uC5F4\uC774 \uBCC0\uD615\uC774 \uB420\uC218 \uC788\uB2E4 \uB530\uB77C\uC11C \uADF8\uB0E5 \uBB38\uC790\uC5F4 \uC790\uB978 \uC6D0\uBCF8\uC744\uB123\uC5B4\uC918\uC57C\uD55C\uB2E4\n // search: searchParams.size > 0 ? `?${searchParams.toString()}` : '',\n search: search,\n router: this\n };\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 // console.log('Router go', config);\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\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 abstract getSearch(): string;\n\n reload(): void {\n const currentUrl = this.getUrl();\n this.replace(currentUrl);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["routeData", "data"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { RawSet } from "./rawsets/RawSet.js";
|
|
2
2
|
import { EventManager } from "./events/EventManager.js";
|
|
3
|
-
import { ScriptUtils } from "@dooboostore/core-web/script/ScriptUtils";
|
|
4
3
|
import { DomRenderFinalProxy, Shield } from "./types/Types.js";
|
|
5
4
|
import { RawSetType } from "./rawsets/RawSetType.js";
|
|
6
5
|
import { DrThisProperty } from "./operators/DrThisProperty.js";
|
|
@@ -19,6 +18,7 @@ import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
|
|
|
19
18
|
import { ValidUtils } from "@dooboostore/core/valid/ValidUtils";
|
|
20
19
|
import { isOnProxyDomRender } from "./lifecycle/OnProxyDomRender.js";
|
|
21
20
|
import { isOnRawSetRendered } from "./lifecycle/OnRawSetRendered.js";
|
|
21
|
+
import { isOnChildRawSetRendered } from "./lifecycle/OnChildRawSetRendered.js";
|
|
22
22
|
const excludeGetSetPropertys = [
|
|
23
23
|
"onBeforeReturnGet",
|
|
24
24
|
"onBeforeReturnSet",
|
|
@@ -55,12 +55,12 @@ const getDomRenderProxy = (obj) => {
|
|
|
55
55
|
return void 0;
|
|
56
56
|
};
|
|
57
57
|
class DomRenderProxy {
|
|
58
|
+
// public name = Math.random();
|
|
58
59
|
constructor(_domRender_origin, target, _domRender_config) {
|
|
59
60
|
this._domRender_origin = _domRender_origin;
|
|
60
61
|
this._domRender_config = _domRender_config;
|
|
61
62
|
this._domRender_ref = /* @__PURE__ */ new Map();
|
|
62
63
|
this._rawSets = /* @__PURE__ */ new Map();
|
|
63
|
-
// public _firstTarget: Node;
|
|
64
64
|
this._targets = /* @__PURE__ */ new Set();
|
|
65
65
|
if (target) {
|
|
66
66
|
this._targets.add(target);
|
|
@@ -144,7 +144,7 @@ class DomRenderProxy {
|
|
|
144
144
|
const onInit = target.getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
|
|
145
145
|
let initParam;
|
|
146
146
|
if (onCreate) {
|
|
147
|
-
initParam =
|
|
147
|
+
initParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
|
|
148
148
|
}
|
|
149
149
|
if (isOnInitRender(this._domRender_proxy)) {
|
|
150
150
|
await this._domRender_proxy.onInitRender(
|
|
@@ -173,46 +173,65 @@ class DomRenderProxy {
|
|
|
173
173
|
}
|
|
174
174
|
const removeRawSets = [];
|
|
175
175
|
const rawSets = raws ?? this.getRawSets();
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
176
|
+
const CHUNK_SIZE = 50;
|
|
177
|
+
const chunks = [];
|
|
178
|
+
const rawSetsArray = Array.from(rawSets);
|
|
179
|
+
for (let i = 0; i < rawSetsArray.length; i += CHUNK_SIZE) {
|
|
180
|
+
chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));
|
|
181
|
+
}
|
|
182
|
+
for (const chunk of chunks) {
|
|
183
|
+
const promises = chunk.map(async (it) => {
|
|
184
|
+
it.getUsingTriggerVariables(this._domRender_config).forEach((path) => {
|
|
185
|
+
this.addRawSet(path, it);
|
|
186
|
+
});
|
|
187
|
+
let renderResult;
|
|
188
|
+
if (it.isConnected) {
|
|
189
|
+
const targetAttrMap = it.point.node?.getAttribute?.(EventManager.normalAttrMapAttrName);
|
|
190
|
+
if (it.detect?.action) {
|
|
191
|
+
it.detect.action();
|
|
192
|
+
} else if (it.type === RawSetType.TARGET_ELEMENT && it.dataSet?.render?.currentThis && fullPathStr && targetAttrMap) {
|
|
193
|
+
const attrStart = performance.now();
|
|
194
|
+
new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
|
|
195
|
+
var _a;
|
|
196
|
+
const isUsing = v.variablePaths.some((it2) => EventManager.isUsingThisVar(it2.inner, `this.${fullPathStr}`));
|
|
197
|
+
if (isUsing) {
|
|
198
|
+
const targetAttrObject = RawSet.getAttributeObject(it.point.node, {
|
|
199
|
+
script: it.dataSet?.render?.renderScript ?? "",
|
|
200
|
+
obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
|
|
201
|
+
});
|
|
202
|
+
(_a = it.dataSet).render ?? (_a.render = {});
|
|
203
|
+
it.dataSet.render.attribute = targetAttrObject;
|
|
204
|
+
if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {
|
|
205
|
+
it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], { rawSet: it });
|
|
206
|
+
}
|
|
198
207
|
}
|
|
208
|
+
});
|
|
209
|
+
const attrEnd = performance.now();
|
|
210
|
+
} else {
|
|
211
|
+
const renderStart = performance.now();
|
|
212
|
+
const rawSets2 = await it.render(this._domRender_proxy, this._domRender_config);
|
|
213
|
+
const renderEnd = performance.now();
|
|
214
|
+
renderResult = rawSets2;
|
|
215
|
+
if (rawSets2 && rawSets2.raws.length > 0) {
|
|
216
|
+
await this.render(rawSets2.raws);
|
|
199
217
|
}
|
|
200
|
-
});
|
|
201
|
-
} else {
|
|
202
|
-
const rawSets2 = await it.render(this._domRender_proxy, this._domRender_config);
|
|
203
|
-
renderResult = rawSets2;
|
|
204
|
-
if (rawSets2 && rawSets2.raws.length > 0) {
|
|
205
|
-
await this.render(rawSets2.raws);
|
|
206
218
|
}
|
|
219
|
+
} else {
|
|
220
|
+
removeRawSets.push(it);
|
|
207
221
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
222
|
+
const t = it.findNearThis(this._domRender_proxy);
|
|
223
|
+
if (isOnRawSetRendered(t)) {
|
|
224
|
+
await t.onRawSetRendered(it, { path: fullPathStr, value: ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult });
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
await Promise.all(promises);
|
|
228
|
+
if (chunks.length > 1) {
|
|
229
|
+
await new Promise((resolve) => requestAnimationFrame(resolve));
|
|
214
230
|
}
|
|
215
231
|
}
|
|
232
|
+
if (isOnChildRawSetRendered(this._domRender_proxy)) {
|
|
233
|
+
await this._domRender_proxy.onChildRawSetRendered();
|
|
234
|
+
}
|
|
216
235
|
if (removeRawSets.length > 0) {
|
|
217
236
|
this.removeRawSet(...removeRawSets);
|
|
218
237
|
}
|
|
@@ -227,12 +246,15 @@ class DomRenderProxy {
|
|
|
227
246
|
// return current;
|
|
228
247
|
// }
|
|
229
248
|
root(pathInfos, value, lastDoneExecute = true) {
|
|
249
|
+
const rootStartTime = Date.now();
|
|
250
|
+
const pathKey = pathInfos.flat().map((i) => i.path).join(".");
|
|
230
251
|
const fullPaths = [];
|
|
231
252
|
if (this._domRender_ref.size > 0) {
|
|
232
253
|
this._domRender_ref.forEach((it, key) => {
|
|
233
254
|
if ("_DomRender_isProxy" in key) {
|
|
234
255
|
it.forEach((sit) => {
|
|
235
256
|
try {
|
|
257
|
+
const recursiveStartTime = Date.now();
|
|
236
258
|
const concat = pathInfos.concat([[{ path: sit, obj: key }]]);
|
|
237
259
|
const items = key._DomRender_proxy?.root(
|
|
238
260
|
concat,
|
|
@@ -246,6 +268,7 @@ class DomRenderProxy {
|
|
|
246
268
|
}
|
|
247
269
|
});
|
|
248
270
|
} else {
|
|
271
|
+
const pathProcessStartTime = Date.now();
|
|
249
272
|
const strings = pathInfos.reverse().map((it) => it.map((it2) => it2.path).join(","));
|
|
250
273
|
const fullPathStr = strings.map((it) => isNaN(Number(it)) ? "." + it : `[${it}]`).join("").slice(1);
|
|
251
274
|
if (lastDoneExecute) {
|
|
@@ -253,10 +276,13 @@ class DomRenderProxy {
|
|
|
253
276
|
const front = strings.slice(0, strings.length - 1).map((it) => isNaN(Number(it)) ? "." + it : `[${it}]`).join("");
|
|
254
277
|
const lastPropertyName = strings[strings.length - 1];
|
|
255
278
|
const path = "this" + front;
|
|
256
|
-
const data =
|
|
279
|
+
const data = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);
|
|
280
|
+
const promiseStartTime = Date.now();
|
|
257
281
|
new Promise(async (resolve) => {
|
|
282
|
+
const promiseInnerStartTime = Date.now();
|
|
258
283
|
let rData = [];
|
|
259
284
|
const firstPathStr = front.slice(1);
|
|
285
|
+
const dictionaryCheckStartTime = Date.now();
|
|
260
286
|
const firstTargets = this._rawSets.get(firstPathStr);
|
|
261
287
|
const firstTargetDictionary = [];
|
|
262
288
|
firstTargets?.forEach((it) => {
|
|
@@ -298,6 +324,7 @@ class DomRenderProxy {
|
|
|
298
324
|
rData = await this.render(rawSets);
|
|
299
325
|
}
|
|
300
326
|
}
|
|
327
|
+
const renderStartTime = Date.now();
|
|
301
328
|
if (lastPropertyName === "length" && Array.isArray(data)) {
|
|
302
329
|
const aIterable = this._rawSets.get(firstPathStr);
|
|
303
330
|
if (aIterable) {
|
|
@@ -306,13 +333,17 @@ class DomRenderProxy {
|
|
|
306
333
|
} else if (iterable) {
|
|
307
334
|
rData = await this.render(Array.from(iterable), fullPathStr);
|
|
308
335
|
}
|
|
336
|
+
const eventProcessStartTime = Date.now();
|
|
309
337
|
const Node = this._domRender_config.window.Node;
|
|
310
338
|
this._targets.forEach((it) => {
|
|
311
339
|
if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
|
|
340
|
+
const findAttrStartTime = Date.now();
|
|
312
341
|
const targets = this._domRender_config.eventManager.findAttrElements(
|
|
313
342
|
it,
|
|
314
343
|
this._domRender_config
|
|
315
344
|
);
|
|
345
|
+
const targetCount = targets?.size || targets?.length || 0;
|
|
346
|
+
const changeVarStartTime = Date.now();
|
|
316
347
|
this._domRender_config.eventManager.changeVar(
|
|
317
348
|
this._domRender_proxy,
|
|
318
349
|
targets,
|
|
@@ -322,7 +353,7 @@ class DomRenderProxy {
|
|
|
322
353
|
}
|
|
323
354
|
});
|
|
324
355
|
if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {
|
|
325
|
-
const propertyValue =
|
|
356
|
+
const propertyValue = ObjectUtils.Script.evaluateReturn(`this.${lastPropertyName}`, data);
|
|
326
357
|
data.onChildRenderedByProperty(lastPropertyName, propertyValue);
|
|
327
358
|
}
|
|
328
359
|
resolve(rData);
|
|
@@ -338,6 +369,7 @@ class DomRenderProxy {
|
|
|
338
369
|
target[p] = value;
|
|
339
370
|
return true;
|
|
340
371
|
}
|
|
372
|
+
let start = performance.now();
|
|
341
373
|
if (typeof p === "string") {
|
|
342
374
|
value = this.proxy(receiver, value, p);
|
|
343
375
|
}
|
|
@@ -360,14 +392,23 @@ class DomRenderProxy {
|
|
|
360
392
|
}).forEach((it) => {
|
|
361
393
|
const variablePaths = it.valueScript.variablePaths;
|
|
362
394
|
let targetScript = it.valueScript.originalAttrValue;
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
395
|
+
let script;
|
|
396
|
+
if (it.valueScript.isStringTemplate) {
|
|
397
|
+
variablePaths.forEach((it2) => {
|
|
398
|
+
let r = ObjectUtils.Path.toOptionalChainPath(it2.inner);
|
|
399
|
+
targetScript = targetScript.replaceAll(it2.origin, `\${${r}}`);
|
|
400
|
+
});
|
|
401
|
+
script = "`" + targetScript + "`";
|
|
402
|
+
} else {
|
|
403
|
+
variablePaths.forEach((it2) => {
|
|
404
|
+
let r = ObjectUtils.Path.toOptionalChainPath(it2.inner);
|
|
405
|
+
targetScript = targetScript.replaceAll(it2.origin, `${r}`);
|
|
406
|
+
});
|
|
407
|
+
script = targetScript;
|
|
408
|
+
}
|
|
409
|
+
const value1 = ObjectUtils.Script.evaluateReturn(script, it.pathInfo.obj);
|
|
410
|
+
if (value1 === null || value1 === void 0) {
|
|
369
411
|
elementInfo.element.removeAttribute(it.key);
|
|
370
|
-
elementInfo.element[it.key] = null;
|
|
371
412
|
} else {
|
|
372
413
|
elementInfo.element.setAttribute(it.key, value1);
|
|
373
414
|
elementInfo.element[it.key] = value1;
|
|
@@ -377,11 +418,11 @@ class DomRenderProxy {
|
|
|
377
418
|
);
|
|
378
419
|
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(
|
|
379
420
|
(elementInfo) => {
|
|
380
|
-
const targets = new Map(
|
|
421
|
+
const targets = new Map(ObjectUtils.Script.evaluateReturn(elementInfo.value));
|
|
381
422
|
Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(isDefined).flatMap(([key, valueScript]) => {
|
|
382
423
|
return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
|
|
383
424
|
}).forEach((info) => {
|
|
384
|
-
const value1 =
|
|
425
|
+
const value1 = ObjectUtils.Script.evaluateReturn(info.valueScript, info.pathInfo.obj);
|
|
385
426
|
const applyAttributeName = EventManager.linkAttrs.find((it) => it.name === info.key);
|
|
386
427
|
if (applyAttributeName) {
|
|
387
428
|
if (value1 === null) {
|