@dooboostore/dom-render 1.0.108 → 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/README.MD +27 -1451
- package/dist/cjs/DomRender.js +41 -26
- package/dist/cjs/DomRender.js.map +2 -2
- package/dist/cjs/DomRenderProxy.js +134 -62
- package/dist/cjs/DomRenderProxy.js.map +2 -2
- package/dist/cjs/bundle-entry.js +32 -21
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +24 -6
- package/dist/cjs/components/ComponentBase.js.map +2 -2
- package/dist/cjs/components/ComponentRouterBase.js +11 -1
- package/dist/cjs/components/ComponentRouterBase.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 +7 -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 +17 -3
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +26 -12
- 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 +15 -13
- package/dist/cjs/components/timer/Timer.js.map +2 -2
- package/dist/cjs/decorators/DomRenderNoProxy.js +2 -1
- package/dist/cjs/decorators/DomRenderNoProxy.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/lifecycle/OnRawSetRendered.js +26 -0
- package/dist/cjs/lifecycle/OnRawSetRendered.js.map +7 -0
- package/dist/cjs/lifecycle/index.js +1 -0
- package/dist/cjs/lifecycle/index.js.map +2 -2
- 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/operators/DrTargetElement.js +2 -0
- package/dist/cjs/operators/DrTargetElement.js.map +2 -2
- package/dist/cjs/operators/OperatorExecuter.js +1 -2
- package/dist/cjs/operators/OperatorExecuter.js.map +2 -2
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/rawsets/RawSet.js +392 -115
- package/dist/cjs/rawsets/RawSet.js.map +3 -3
- package/dist/cjs/rawsets/Render.js.map +1 -1
- package/dist/cjs/routers/PathRouter.js +13 -7
- package/dist/cjs/routers/PathRouter.js.map +2 -2
- package/dist/cjs/routers/Router.js +76 -36
- package/dist/cjs/routers/Router.js.map +3 -3
- package/dist/esm/DomRender.js +41 -26
- package/dist/esm/DomRender.js.map +2 -2
- package/dist/esm/DomRenderProxy.js +134 -62
- package/dist/esm/DomRenderProxy.js.map +2 -2
- package/dist/esm/bundle-entry.js +22 -21
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +24 -6
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/ComponentRouterBase.js +11 -1
- package/dist/esm/components/ComponentRouterBase.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 +7 -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 +18 -4
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +26 -12
- 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 +15 -13
- package/dist/esm/components/timer/Timer.js.map +2 -2
- package/dist/esm/decorators/DomRenderNoProxy.js +2 -1
- package/dist/esm/decorators/DomRenderNoProxy.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/lifecycle/OnRawSetRendered.js +7 -0
- package/dist/esm/lifecycle/OnRawSetRendered.js.map +7 -0
- package/dist/esm/lifecycle/index.js +1 -0
- package/dist/esm/lifecycle/index.js.map +2 -2
- 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/operators/DrTargetElement.js +2 -0
- package/dist/esm/operators/DrTargetElement.js.map +2 -2
- package/dist/esm/operators/OperatorExecuter.js +1 -2
- package/dist/esm/operators/OperatorExecuter.js.map +2 -2
- package/dist/esm/rawsets/RawSet.js +392 -115
- 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 +76 -36
- package/dist/esm/routers/Router.js.map +3 -3
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +14023 -6402
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRender.d.ts +11 -5
- package/dist/types/DomRender.d.ts.map +1 -1
- package/dist/types/DomRenderProxy.d.ts +2 -2
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/bundle-entry.d.ts +5 -2
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +8 -2
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/ComponentRouterBase.d.ts +8 -0
- package/dist/types/components/ComponentRouterBase.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 +2 -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 +6 -2
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +5 -5
- 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 +6 -4
- package/dist/types/components/timer/Timer.d.ts.map +1 -1
- package/dist/types/decorators/DomRenderNoProxy.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 -100
- package/dist/types/lifecycle/OnInitRender.d.ts +1 -1
- package/dist/types/lifecycle/OnInitRender.d.ts.map +1 -1
- package/dist/types/lifecycle/OnRawSetRendered.d.ts +10 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -0
- package/dist/types/lifecycle/index.d.ts +1 -0
- package/dist/types/lifecycle/index.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/operators/DrTargetElement.d.ts.map +1 -1
- package/dist/types/operators/OperatorExecuter.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +17 -9
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/rawsets/Render.d.ts +1 -0
- package/dist/types/rawsets/Render.d.ts.map +1 -1
- package/dist/types/routers/PathRouter.d.ts.map +1 -1
- package/dist/types/routers/Router.d.ts +11 -14
- package/dist/types/routers/Router.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +14104 -6502
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +9 -8
- package/src/DomRender.ts +62 -34
- package/src/DomRenderProxy.ts +275 -142
- package/src/bundle-entry.ts +5 -3
- package/src/components/ComponentBase.ts +33 -11
- package/src/components/ComponentRouterBase.ts +17 -2
- package/src/components/appender/Appender.ts +0 -5
- package/src/components/checkbox/CheckBox.ts +22 -25
- package/src/components/choose/Choose.ts +19 -18
- 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 +29 -8
- package/src/components/select/Select.ts +47 -33
- package/src/components/this/This.ts +13 -12
- package/src/components/timer/Timer.ts +29 -65
- package/src/decorators/DomRenderNoProxy.ts +3 -1
- package/src/events/EventManager.ts +15 -4
- package/src/lifecycle/OnInitRender.ts +1 -1
- package/src/lifecycle/OnRawSetRendered.ts +15 -0
- package/src/lifecycle/index.ts +1 -0
- 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/operators/DrTargetElement.ts +14 -0
- package/src/operators/OperatorExecuter.ts +1 -2
- package/src/rawsets/RawSet.ts +709 -295
- package/src/rawsets/Render.ts +1 -0
- package/src/routers/PathRouter.ts +14 -7
- package/src/routers/Router.ts +107 -61
- package/types.d.ts +0 -2825
|
@@ -22,7 +22,6 @@ __export(RawSet_exports, {
|
|
|
22
22
|
module.exports = __toCommonJS(RawSet_exports);
|
|
23
23
|
var import_RandomUtils = require("@dooboostore/core/random/RandomUtils");
|
|
24
24
|
var import_StringUtils = require("@dooboostore/core/string/StringUtils");
|
|
25
|
-
var import_ScriptUtils = require("@dooboostore/core-web/script/ScriptUtils");
|
|
26
25
|
var import_EventManager = require("../events/EventManager");
|
|
27
26
|
var import_Range = require("../iterators/Range");
|
|
28
27
|
var import_ElementUtils = require("@dooboostore/core-web/element/ElementUtils");
|
|
@@ -54,6 +53,8 @@ var import_OnCreatedThisChild = require("../lifecycle/OnCreatedThisChild");
|
|
|
54
53
|
var import_OnDestroyRender = require("../lifecycle/OnDestroyRender");
|
|
55
54
|
var import_DrTargetElementIsElement = require("../operators/DrTargetElementIsElement");
|
|
56
55
|
var import_ObjectUtils = require("@dooboostore/core/object/ObjectUtils");
|
|
56
|
+
var import_NodeUtils = require("@dooboostore/core-web/node/NodeUtils");
|
|
57
|
+
var import_ConvertUtils = require("@dooboostore/core/convert/ConvertUtils");
|
|
57
58
|
const _RawSet = class _RawSet {
|
|
58
59
|
constructor(uuid, type, point, dataSet, detect) {
|
|
59
60
|
this.uuid = uuid;
|
|
@@ -65,14 +66,14 @@ const _RawSet = class _RawSet {
|
|
|
65
66
|
const path = this.findNearThisPath(rawSet);
|
|
66
67
|
if (path) {
|
|
67
68
|
const optionalPath = import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(path);
|
|
68
|
-
return
|
|
69
|
+
return import_ObjectUtils.ObjectUtils.Script.evaluateReturn(optionalPath, obj);
|
|
69
70
|
}
|
|
70
71
|
};
|
|
71
72
|
this.findParentThis = (obj, rawSet = this) => {
|
|
72
73
|
const path = this.findParentThisPath(rawSet);
|
|
73
74
|
if (path) {
|
|
74
75
|
const optionalPath = import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(path);
|
|
75
|
-
return
|
|
76
|
+
return import_ObjectUtils.ObjectUtils.Script.evaluateReturn(optionalPath, obj);
|
|
76
77
|
}
|
|
77
78
|
};
|
|
78
79
|
this.findNearThisPath = (rawSet = this) => {
|
|
@@ -87,11 +88,10 @@ const _RawSet = class _RawSet {
|
|
|
87
88
|
const paths = [];
|
|
88
89
|
const findPath = (rawSet2) => {
|
|
89
90
|
if (rawSet2 && rawSet2.point) {
|
|
90
|
-
if ("getAttribute" in rawSet2.point.start && rawSet2.point.start.getAttribute("this-path")) {
|
|
91
|
+
if (rawSet2.point?.start && "getAttribute" in rawSet2.point.start && rawSet2.point.start.getAttribute("this-path")) {
|
|
91
92
|
paths.push(rawSet2.point.start.getAttribute("this-path"));
|
|
92
93
|
}
|
|
93
|
-
if (rawSet2.point.parentRawSet)
|
|
94
|
-
findPath(rawSet2.point.parentRawSet);
|
|
94
|
+
if (rawSet2.point.parentRawSet) findPath(rawSet2.point.parentRawSet);
|
|
95
95
|
}
|
|
96
96
|
};
|
|
97
97
|
findPath(rawSet);
|
|
@@ -100,7 +100,7 @@ const _RawSet = class _RawSet {
|
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
get isConnected() {
|
|
103
|
-
return this.point.start.isConnected && this.point.end.isConnected;
|
|
103
|
+
return this.point && this.point.start && this.point.end && this.point.start.isConnected && this.point.end.isConnected;
|
|
104
104
|
}
|
|
105
105
|
// 중요
|
|
106
106
|
getUsingTriggerVariables(config) {
|
|
@@ -115,12 +115,18 @@ const _RawSet = class _RawSet {
|
|
|
115
115
|
}
|
|
116
116
|
} else if (cNode.nodeType === Node.ELEMENT_NODE) {
|
|
117
117
|
const element = cNode;
|
|
118
|
-
const targetAttrNames = (config?.targetAttrs?.map((it) => it.name) ?? []).concat(
|
|
118
|
+
const targetAttrNames = (config?.targetAttrs?.map((it) => it.name) ?? []).concat(
|
|
119
|
+
_RawSet.DR_ATTRIBUTES,
|
|
120
|
+
_RawSet.DR_DETECT_FILTER_OPTIONNAME,
|
|
121
|
+
_RawSet.DR_DETECT_IF_OPTIONNAME,
|
|
122
|
+
_RawSet.DR_DETECT_ATTR_OPTIONNAME
|
|
123
|
+
);
|
|
119
124
|
const targetScripts = targetAttrNames.map((it) => element.getAttribute(it)).filter((it) => it).map((it) => `(${it})`);
|
|
120
125
|
const targetAttrMap = element.getAttribute(import_EventManager.EventManager.normalAttrMapAttrName);
|
|
121
126
|
if (targetAttrMap) {
|
|
122
127
|
new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
|
|
123
|
-
|
|
128
|
+
const variablePaths = v.variablePaths;
|
|
129
|
+
variablePaths.forEach((it) => targetScripts.push(`(${it.inner})`));
|
|
124
130
|
});
|
|
125
131
|
}
|
|
126
132
|
script = targetScripts.join(";");
|
|
@@ -136,6 +142,8 @@ const _RawSet = class _RawSet {
|
|
|
136
142
|
return usingTriggerVariables;
|
|
137
143
|
}
|
|
138
144
|
// 중요 render 처리 부분
|
|
145
|
+
// public async render(obj: any, config: DomRenderConfig): Promise<RawSet[]> {
|
|
146
|
+
// }
|
|
139
147
|
async render(obj, config) {
|
|
140
148
|
const genNode = config.window.document.importNode(this.dataSet.fragment, true);
|
|
141
149
|
const raws = [];
|
|
@@ -143,6 +151,7 @@ const _RawSet = class _RawSet {
|
|
|
143
151
|
const onElementInitCallBacks = [];
|
|
144
152
|
const onThisComponentSetCallBacks = [];
|
|
145
153
|
const drAttrs = [];
|
|
154
|
+
const executedOperators = [];
|
|
146
155
|
for (const cNode of Array.from(genNode.childNodes.values())) {
|
|
147
156
|
let attribute = {};
|
|
148
157
|
if (cNode.nodeType === Node.ELEMENT_NODE) {
|
|
@@ -156,7 +165,7 @@ const _RawSet = class _RawSet {
|
|
|
156
165
|
element: cNode,
|
|
157
166
|
attribute,
|
|
158
167
|
rootObject: obj,
|
|
159
|
-
scriptUtils:
|
|
168
|
+
scriptUtils: import_ObjectUtils.ObjectUtils.Script,
|
|
160
169
|
nearThis: this.findNearThis(obj),
|
|
161
170
|
parentThis: this.findParentThis(obj),
|
|
162
171
|
bindScript: ` /** render **/
|
|
@@ -178,12 +187,18 @@ const _RawSet = class _RawSet {
|
|
|
178
187
|
const runText = _RawSet.expressionGroups(textContent)[0][1];
|
|
179
188
|
let newNode;
|
|
180
189
|
if (textContent?.startsWith("#")) {
|
|
181
|
-
const r =
|
|
190
|
+
const r = import_ObjectUtils.ObjectUtils.Script.evaluate(
|
|
191
|
+
`${__render.bindScript} return ${runText}`,
|
|
192
|
+
Object.assign(obj, { __render })
|
|
193
|
+
);
|
|
182
194
|
const template = config.window.document.createElement("template");
|
|
183
195
|
template.innerHTML = r;
|
|
184
196
|
newNode = template.content;
|
|
185
197
|
} else {
|
|
186
|
-
const r =
|
|
198
|
+
const r = import_ObjectUtils.ObjectUtils.Script.evaluate(
|
|
199
|
+
`${__render.bindScript} return ${runText}`,
|
|
200
|
+
Object.assign(obj, { __render })
|
|
201
|
+
);
|
|
187
202
|
newNode = config.window.document.createTextNode(r);
|
|
188
203
|
}
|
|
189
204
|
cNode.parentNode?.replaceChild(newNode, cNode);
|
|
@@ -222,30 +237,148 @@ const _RawSet = class _RawSet {
|
|
|
222
237
|
};
|
|
223
238
|
drAttrs.push(drAttr);
|
|
224
239
|
const operators = [
|
|
225
|
-
new import_DrPre.DrPre(
|
|
226
|
-
|
|
240
|
+
new import_DrPre.DrPre(
|
|
241
|
+
this,
|
|
242
|
+
__render,
|
|
243
|
+
{ raws, fag },
|
|
244
|
+
{ element, attrName: _RawSet.DR_PRE_NAME, attr: drAttr.drPre, attrs: drAttr },
|
|
245
|
+
{ config, obj, operatorAround: config.operatorAround?.drPre },
|
|
246
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
247
|
+
),
|
|
248
|
+
new import_Dr.Dr(
|
|
249
|
+
this,
|
|
250
|
+
__render,
|
|
251
|
+
{ raws, fag },
|
|
252
|
+
{ element, attrName: _RawSet.DR_NAME, attr: drAttr.dr, attrs: drAttr },
|
|
253
|
+
{ config, obj, operatorAround: config.operatorAround?.dr },
|
|
254
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
255
|
+
),
|
|
227
256
|
// new Dr(this, __render, {raws, fag}, {element, attrName: EventManager.onRenderedInitAttrName, attr: drAttr.dr, attrs: drAttr}, {config, obj, operatorAround: config.operatorAround?.dr}, {onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks}),
|
|
228
|
-
new import_DrIf.DrIf(
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
new
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
257
|
+
new import_DrIf.DrIf(
|
|
258
|
+
this,
|
|
259
|
+
__render,
|
|
260
|
+
{ raws, fag },
|
|
261
|
+
{ element, attrName: _RawSet.DR_IF_NAME, attr: drAttr.drIf, attrs: drAttr },
|
|
262
|
+
{ config, obj, operatorAround: config.operatorAround?.drIf },
|
|
263
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
264
|
+
),
|
|
265
|
+
new import_DrStripElement.DrStripElement(
|
|
266
|
+
this,
|
|
267
|
+
__render,
|
|
268
|
+
{ raws, fag },
|
|
269
|
+
{ element, attrName: _RawSet.DR_STRIP_NAME, attr: drAttr.drStripElement, attrs: drAttr },
|
|
270
|
+
{ config, obj, operatorAround: config.operatorAround?.drThis },
|
|
271
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
272
|
+
),
|
|
273
|
+
new import_DrThis.DrThis(
|
|
274
|
+
this,
|
|
275
|
+
__render,
|
|
276
|
+
{ raws, fag },
|
|
277
|
+
{ element, attrName: _RawSet.DR_THIS_NAME, attr: drAttr.drThis, attrs: drAttr },
|
|
278
|
+
{ config, obj, operatorAround: config.operatorAround?.drThis },
|
|
279
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
280
|
+
),
|
|
281
|
+
new import_DrForm.DrForm(
|
|
282
|
+
this,
|
|
283
|
+
__render,
|
|
284
|
+
{ raws, fag },
|
|
285
|
+
{ element, attrName: _RawSet.DR_FOR_NAME, attr: drAttr.drForm, attrs: drAttr },
|
|
286
|
+
{ config, obj, operatorAround: config.operatorAround?.drForm },
|
|
287
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
288
|
+
),
|
|
289
|
+
new import_DrInnerText.DrInnerText(
|
|
290
|
+
this,
|
|
291
|
+
__render,
|
|
292
|
+
{ raws, fag },
|
|
293
|
+
{ element, attrName: _RawSet.DR_INNERTEXT_NAME, attr: drAttr.drInnerText, attrs: drAttr },
|
|
294
|
+
{ config, obj, operatorAround: config.operatorAround?.drInnerText },
|
|
295
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
296
|
+
),
|
|
297
|
+
new import_DrInnerHTML.DrInnerHTML(
|
|
298
|
+
this,
|
|
299
|
+
__render,
|
|
300
|
+
{ raws, fag },
|
|
301
|
+
{ element, attrName: _RawSet.DR_INNERHTML_NAME, attr: drAttr.drInnerHTML, attrs: drAttr },
|
|
302
|
+
{ config, obj, operatorAround: config.operatorAround?.drInnerHTML },
|
|
303
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
304
|
+
),
|
|
305
|
+
new import_DrFor.DrFor(
|
|
306
|
+
this,
|
|
307
|
+
__render,
|
|
308
|
+
{ raws, fag },
|
|
309
|
+
{ element, attrName: _RawSet.DR_FOR_NAME, attr: drAttr.drFor, attrs: drAttr },
|
|
310
|
+
{ config, obj, operatorAround: config.operatorAround?.drFor },
|
|
311
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
312
|
+
),
|
|
313
|
+
new import_DrForOf.DrForOf(
|
|
314
|
+
this,
|
|
315
|
+
__render,
|
|
316
|
+
{ raws, fag },
|
|
317
|
+
{ element, attrName: _RawSet.DR_FOR_OF_NAME, attr: drAttr.drForOf, attrs: drAttr },
|
|
318
|
+
{ config, obj, operatorAround: config.operatorAround?.drForOf },
|
|
319
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
320
|
+
),
|
|
321
|
+
new import_DrThisProperty.DrThisProperty(
|
|
322
|
+
this,
|
|
323
|
+
__render,
|
|
324
|
+
{ raws, fag },
|
|
325
|
+
{ element, attrName: _RawSet.DR_THIS_PROPERTY_NAME, attr: drAttr.drThisProperty, attrs: drAttr },
|
|
326
|
+
{ config, obj, operatorAround: config.operatorAround?.drThisProperty },
|
|
327
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
328
|
+
),
|
|
329
|
+
new import_DrAppender.DrAppender(
|
|
330
|
+
this,
|
|
331
|
+
__render,
|
|
332
|
+
{ raws, fag },
|
|
333
|
+
{ element, attrName: _RawSet.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr },
|
|
334
|
+
{ config, obj, operatorAround: config.operatorAround?.drAppender },
|
|
335
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
336
|
+
),
|
|
337
|
+
new import_DrRepeat.DrRepeat(
|
|
338
|
+
this,
|
|
339
|
+
__render,
|
|
340
|
+
{ raws, fag },
|
|
341
|
+
{ element, attrName: _RawSet.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr },
|
|
342
|
+
{ config, obj, operatorAround: config.operatorAround?.drRepeat },
|
|
343
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
344
|
+
),
|
|
345
|
+
new import_DrTargetElementIsElement.DrTargetElementIsElement(
|
|
346
|
+
this,
|
|
347
|
+
__render,
|
|
348
|
+
{ raws, fag },
|
|
349
|
+
{
|
|
350
|
+
element,
|
|
351
|
+
attrName: _RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME,
|
|
352
|
+
attr: drAttr.drReplaceTargetElementIs,
|
|
353
|
+
attrs: drAttr
|
|
354
|
+
},
|
|
355
|
+
{ config, obj },
|
|
356
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
357
|
+
),
|
|
358
|
+
new import_DrTargetElement.DrTargetElement(
|
|
359
|
+
this,
|
|
360
|
+
__render,
|
|
361
|
+
{ raws, fag },
|
|
362
|
+
{ element, attrs: drAttr },
|
|
363
|
+
{ config, obj },
|
|
364
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
365
|
+
),
|
|
366
|
+
new import_DrTargetAttr.DrTargetAttr(
|
|
367
|
+
this,
|
|
368
|
+
__render,
|
|
369
|
+
{ raws, fag },
|
|
370
|
+
{ element, attrs: drAttr },
|
|
371
|
+
{ config, obj },
|
|
372
|
+
{ onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
|
|
373
|
+
)
|
|
242
374
|
];
|
|
243
375
|
for (const operator of operators) {
|
|
244
376
|
const state = await operator.start();
|
|
245
377
|
if (state === import_OperatorExecuter.ExecuteState.EXECUTE) {
|
|
378
|
+
executedOperators.push(operator);
|
|
246
379
|
break;
|
|
247
380
|
} else if (state === import_OperatorExecuter.ExecuteState.STOP) {
|
|
248
|
-
return raws;
|
|
381
|
+
return { raws, executedOperators };
|
|
249
382
|
}
|
|
250
383
|
}
|
|
251
384
|
}
|
|
@@ -265,21 +398,24 @@ const _RawSet = class _RawSet {
|
|
|
265
398
|
fag: genNode,
|
|
266
399
|
scripts: import_EventManager.EventManager.setBindProperty(config?.scripts, obj)
|
|
267
400
|
});
|
|
268
|
-
|
|
401
|
+
import_ObjectUtils.ObjectUtils.Script.evaluate(
|
|
402
|
+
`
|
|
269
403
|
const ${import_EventManager.EventManager.FAG_VARNAME} = this.__render.fag;
|
|
270
404
|
const ${import_EventManager.EventManager.SCRIPTS_VARNAME} = this.__render.scripts;
|
|
271
405
|
const ${import_EventManager.EventManager.RAWSET_VARNAME} = this.__render.rawSet;
|
|
272
|
-
${it.drCompleteOption}`,
|
|
406
|
+
${it.drCompleteOption}`,
|
|
407
|
+
Object.assign(obj, { __render: render })
|
|
408
|
+
);
|
|
273
409
|
}
|
|
274
410
|
});
|
|
275
411
|
for (const it of onThisComponentSetCallBacks) {
|
|
276
412
|
if ((0, import_OnInitRender.isOnInitRender)(it.obj)) {
|
|
277
|
-
it.obj?.onInitRender?.({}, this);
|
|
413
|
+
await it.obj?.onInitRender?.({}, this);
|
|
278
414
|
}
|
|
279
415
|
}
|
|
280
416
|
for (const it of onElementInitCallBacks) {
|
|
281
417
|
if ((0, import_OnInitRender.isOnInitRender)(this.dataSet.render?.currentThis)) {
|
|
282
|
-
this.dataSet.render.currentThis.onInitRender({}, this);
|
|
418
|
+
await this.dataSet.render.currentThis.onInitRender({}, this);
|
|
283
419
|
}
|
|
284
420
|
config?.onElementInit?.(it.name, obj, this, it.targetElement);
|
|
285
421
|
}
|
|
@@ -297,7 +433,7 @@ const _RawSet = class _RawSet {
|
|
|
297
433
|
}
|
|
298
434
|
});
|
|
299
435
|
}
|
|
300
|
-
return raws;
|
|
436
|
+
return { raws, executedOperators };
|
|
301
437
|
}
|
|
302
438
|
// 중요 스타일 적용 부분
|
|
303
439
|
static generateRuleSelector(start, end, sit) {
|
|
@@ -330,9 +466,7 @@ const _RawSet = class _RawSet {
|
|
|
330
466
|
const isRoot = rule.selector.includes(":root");
|
|
331
467
|
if (!isRoot) {
|
|
332
468
|
const selectors = rule.selector.split(",").map((s) => s.trim());
|
|
333
|
-
const transformedSelectors = selectors.map(
|
|
334
|
-
(selector) => this.generateRuleSelector(start, end, selector)
|
|
335
|
-
);
|
|
469
|
+
const transformedSelectors = selectors.map((selector) => this.generateRuleSelector(start, end, selector));
|
|
336
470
|
rule.selector = transformedSelectors.join(", ");
|
|
337
471
|
}
|
|
338
472
|
} else if ((0, import_CssParser.isAtRule)(rule)) {
|
|
@@ -344,9 +478,7 @@ const _RawSet = class _RawSet {
|
|
|
344
478
|
rule.children.forEach((childRule) => {
|
|
345
479
|
if ((0, import_CssParser.isStyleRule)(childRule)) {
|
|
346
480
|
const selectors = childRule.selector.split(",").map((s) => s.trim());
|
|
347
|
-
const transformedSelectors = selectors.map(
|
|
348
|
-
(selector) => this.generateRuleSelector(start, end, selector)
|
|
349
|
-
);
|
|
481
|
+
const transformedSelectors = selectors.map((selector) => this.generateRuleSelector(start, end, selector));
|
|
350
482
|
childRule.selector = transformedSelectors.join(", ");
|
|
351
483
|
}
|
|
352
484
|
});
|
|
@@ -364,7 +496,11 @@ const _RawSet = class _RawSet {
|
|
|
364
496
|
return styleBody;
|
|
365
497
|
}
|
|
366
498
|
applyEvent(obj, fragment = this.dataSet.fragment, config) {
|
|
367
|
-
this.dataSet.config.eventManager.applyEvent(
|
|
499
|
+
this.dataSet.config.eventManager.applyEvent(
|
|
500
|
+
obj,
|
|
501
|
+
this.dataSet.config.eventManager.findAttrElements(fragment, config),
|
|
502
|
+
config
|
|
503
|
+
);
|
|
368
504
|
}
|
|
369
505
|
onRenderedEvent(obj, nodes, config) {
|
|
370
506
|
this.dataSet.config.eventManager.onRenderedEvent(obj, nodes, config);
|
|
@@ -381,7 +517,10 @@ const _RawSet = class _RawSet {
|
|
|
381
517
|
getDrAppendAttributeAndDelete(element, obj) {
|
|
382
518
|
let data = element.getAttribute(_RawSet.DR_APPENDER_NAME);
|
|
383
519
|
if (data && !/\[.+\]/g.test(data)) {
|
|
384
|
-
const currentIndex =
|
|
520
|
+
const currentIndex = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(
|
|
521
|
+
`${import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`,
|
|
522
|
+
obj
|
|
523
|
+
);
|
|
385
524
|
data = `${data}[${currentIndex}]`;
|
|
386
525
|
element.setAttribute(_RawSet.DR_APPENDER_NAME, data);
|
|
387
526
|
}
|
|
@@ -394,19 +533,28 @@ const _RawSet = class _RawSet {
|
|
|
394
533
|
}
|
|
395
534
|
// 중요 important
|
|
396
535
|
static checkPointCreates(element, obj, config) {
|
|
397
|
-
const
|
|
398
|
-
|
|
399
|
-
|
|
536
|
+
const NodeFilter2 = config.window.NodeFilter;
|
|
537
|
+
const Node2 = config.window.Node;
|
|
538
|
+
const processedNodes = /* @__PURE__ */ new Set();
|
|
539
|
+
const findNodes = import_NodeUtils.NodeUtils.findNodes(
|
|
540
|
+
element,
|
|
541
|
+
(node) => {
|
|
542
|
+
if (node.nodeType === Node2.TEXT_NODE) {
|
|
400
543
|
const between = _RawSet.expressionGroups(import_StringUtils.StringUtils.deleteEnter(node.data ?? ""));
|
|
401
|
-
|
|
402
|
-
|
|
544
|
+
const r2 = between?.length > 0 ? import_NodeUtils.NodeUtils.FindNodesFilterResult.MATCH_AND_SKIP_CHILDREN : import_NodeUtils.NodeUtils.FindNodesFilterResult.NO_MATCH_AND_SKIP_CHILDREN;
|
|
545
|
+
return r2;
|
|
546
|
+
} else if (node.nodeType === Node2.ELEMENT_NODE) {
|
|
403
547
|
const element2 = node;
|
|
404
548
|
if (element2.hasAttribute(_RawSet.DR_PRE_NAME)) {
|
|
405
|
-
|
|
549
|
+
let r3 = import_NodeUtils.NodeUtils.FindNodesFilterResult.NO_MATCH_AND_SKIP_CHILDREN;
|
|
550
|
+
return r3;
|
|
406
551
|
}
|
|
407
552
|
if (element2.hasAttribute(import_EventManager.EventManager.attrAttrName)) {
|
|
408
553
|
const script = element2.getAttribute(import_EventManager.EventManager.attrAttrName) ?? "";
|
|
409
|
-
const keyValuePairs = Array.from(script.matchAll(/(\w+):\s*([^,}]+)/g)).map((match) => ({
|
|
554
|
+
const keyValuePairs = Array.from(script.matchAll(/(\w+):\s*([^,}]+)/g)).map((match) => ({
|
|
555
|
+
key: match[1],
|
|
556
|
+
value: match[2]
|
|
557
|
+
}));
|
|
410
558
|
(keyValuePairs ?? []).forEach((it) => {
|
|
411
559
|
element2.setAttribute(it.key, "${" + it.value + "}$");
|
|
412
560
|
});
|
|
@@ -418,79 +566,102 @@ const _RawSet = class _RawSet {
|
|
|
418
566
|
const normalAttrs = /* @__PURE__ */ new Map();
|
|
419
567
|
const linkVariables = /* @__PURE__ */ new Map();
|
|
420
568
|
const linkNames = import_EventManager.EventManager.linkAttrs.map((it) => it.name);
|
|
421
|
-
const isAttr = element2.getAttributeNames().filter((it) => {
|
|
569
|
+
const isAttr = element2.getAttributeNames().filter((it) => !import_EventManager.EventManager.noDetectAttr.includes(it)).filter((it) => {
|
|
422
570
|
const value = element2.getAttribute(it);
|
|
423
571
|
if (value && linkNames.includes(it)) {
|
|
424
572
|
linkVariables.set(it, value);
|
|
425
573
|
} else if (value && _RawSet.isExpression(value)) {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
574
|
+
const variablePaths = _RawSet.expressionGroups(value).map((it2) => ({
|
|
575
|
+
origin: it2[0],
|
|
576
|
+
inner: it2[1]
|
|
577
|
+
}));
|
|
578
|
+
let targetScript = value;
|
|
579
|
+
variablePaths.forEach((it2) => {
|
|
580
|
+
let r3 = it2.inner.replace(/#[^#]*#/g, "({})");
|
|
581
|
+
r3 = import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(r3);
|
|
582
|
+
targetScript = targetScript.replaceAll(it2.origin, `\${${r3}}`);
|
|
583
|
+
});
|
|
584
|
+
const cval = import_ObjectUtils.ObjectUtils.Script.evaluateReturn("`" + targetScript + "`", Object.assign(obj));
|
|
431
585
|
if (cval === null) {
|
|
432
586
|
element2.removeAttribute(it);
|
|
433
587
|
} else {
|
|
434
588
|
element2.setAttribute(it, cval);
|
|
435
589
|
}
|
|
436
|
-
normalAttrs.set(it,
|
|
590
|
+
normalAttrs.set(it, { originalAttrValue: value, variablePaths });
|
|
437
591
|
}
|
|
438
592
|
const isTargetAttr = targetAttrNames.includes(it.toLowerCase());
|
|
439
593
|
return isTargetAttr;
|
|
440
594
|
}).length > 0;
|
|
441
595
|
if (linkVariables.size) {
|
|
442
|
-
element2.setAttribute(
|
|
596
|
+
element2.setAttribute(
|
|
597
|
+
import_EventManager.EventManager.linkTargetMapAttrName,
|
|
598
|
+
JSON.stringify(Array.from(linkVariables.entries()))
|
|
599
|
+
);
|
|
443
600
|
}
|
|
444
601
|
if (normalAttrs.size) {
|
|
445
602
|
element2.setAttribute(import_EventManager.EventManager.normalAttrMapAttrName, JSON.stringify(Array.from(normalAttrs.entries())));
|
|
446
603
|
}
|
|
447
|
-
const
|
|
448
|
-
return
|
|
604
|
+
const r2 = isAttr || isElement ? import_NodeUtils.NodeUtils.FindNodesFilterResult.MATCH_AND_SKIP_CHILDREN : import_NodeUtils.NodeUtils.FindNodesFilterResult.NO_MATCH_AND_CONTINUE;
|
|
605
|
+
return r2;
|
|
449
606
|
}
|
|
450
|
-
|
|
607
|
+
const r = import_NodeUtils.NodeUtils.FindNodesFilterResult.NO_MATCH_AND_CONTINUE;
|
|
608
|
+
return r;
|
|
451
609
|
}
|
|
452
|
-
|
|
610
|
+
);
|
|
453
611
|
const pars = [];
|
|
454
612
|
let currentNode;
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
613
|
+
const name = import_RandomUtils.RandomUtils.uuid();
|
|
614
|
+
for (const currentNode2 of findNodes) {
|
|
615
|
+
processedNodes.add(currentNode2);
|
|
616
|
+
if (currentNode2.nodeType === Node2.TEXT_NODE) {
|
|
617
|
+
const text = currentNode2.textContent ?? "";
|
|
458
618
|
const template = config.window.document?.createElement("template");
|
|
459
619
|
if (!template) break;
|
|
460
620
|
const groups = _RawSet.expressionGroups(text);
|
|
461
|
-
const map = groups.map((it) => ({
|
|
621
|
+
const map = groups.map((it) => ({
|
|
622
|
+
uuid: `${import_RandomUtils.RandomUtils.alphabet(40)}_${obj?.constructor?.name}`,
|
|
623
|
+
content: it[0],
|
|
624
|
+
regexArr: it
|
|
625
|
+
}));
|
|
462
626
|
let lasterIndex = 0;
|
|
463
627
|
for (let i = 0; i < map.length; i++) {
|
|
464
628
|
const it = map[i];
|
|
465
629
|
const regexArr = it.regexArr;
|
|
466
630
|
const preparedText = regexArr.input.substring(lasterIndex, regexArr.index);
|
|
467
631
|
let type;
|
|
468
|
-
if (
|
|
632
|
+
if (currentNode2.parentNode && currentNode2.parentNode.nodeName.toUpperCase() === "STYLE") {
|
|
469
633
|
type = import_RawSetType.RawSetType.STYLE_TEXT;
|
|
470
634
|
} else {
|
|
471
635
|
type = import_RawSetType.RawSetType.TEXT;
|
|
472
636
|
}
|
|
473
|
-
const node = document.createTextNode(preparedText);
|
|
637
|
+
const node = config.window.document.createTextNode(preparedText);
|
|
474
638
|
const startEndPoint = _RawSet.createStartEndPoint({ id: it.uuid, type }, config);
|
|
475
639
|
template.content.append(node);
|
|
476
640
|
template.content.append(startEndPoint.start);
|
|
477
641
|
template.content.append(startEndPoint.end);
|
|
478
642
|
const fragment = config.window.document.createDocumentFragment();
|
|
479
643
|
fragment.append(config.window.document.createTextNode(it.content));
|
|
480
|
-
pars.push(
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
644
|
+
pars.push(
|
|
645
|
+
new _RawSet(
|
|
646
|
+
it.uuid,
|
|
647
|
+
type,
|
|
648
|
+
{
|
|
649
|
+
start: startEndPoint.start,
|
|
650
|
+
node: currentNode2,
|
|
651
|
+
end: startEndPoint.end,
|
|
652
|
+
parent: currentNode2.parentNode
|
|
653
|
+
// thisVariableName: thisVariableName
|
|
654
|
+
},
|
|
655
|
+
{ fragment, config }
|
|
656
|
+
)
|
|
657
|
+
);
|
|
487
658
|
lasterIndex = regexArr.index + it.content.length;
|
|
488
659
|
}
|
|
489
660
|
template.content.append(config.window.document.createTextNode(text.substring(lasterIndex, text.length)));
|
|
490
|
-
|
|
491
|
-
} else if (
|
|
661
|
+
currentNode2?.parentNode?.replaceChild(template.content, currentNode2);
|
|
662
|
+
} else if (currentNode2.nodeType === Node2.ELEMENT_NODE) {
|
|
492
663
|
const uuid = `${import_RandomUtils.RandomUtils.alphabet(40)}`;
|
|
493
|
-
const element2 =
|
|
664
|
+
const element2 = currentNode2;
|
|
494
665
|
const fragment = config.window.document.createDocumentFragment();
|
|
495
666
|
const elementType = import_RawSetType.RawSetType.TARGET_ELEMENT;
|
|
496
667
|
const startEndPoint = _RawSet.createStartEndPoint({ node: element2, id: uuid, type: elementType }, config);
|
|
@@ -499,19 +670,25 @@ const _RawSet = class _RawSet {
|
|
|
499
670
|
const isElement = targetElementNames.includes(element2.tagName.toLowerCase()) || targetElementNames.includes(targetElementIs?.toLowerCase());
|
|
500
671
|
const targetAttrNames = (config.targetAttrs?.map((it) => it.name) ?? []).concat(_RawSet.DR_ATTRIBUTES);
|
|
501
672
|
const isAttr = element2.getAttributeNames().filter((it) => targetAttrNames.includes(it.toLowerCase())).length > 0;
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
fragment.append(
|
|
505
|
-
const rawSet = new _RawSet(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
673
|
+
currentNode2?.parentNode?.insertBefore(startEndPoint.start, currentNode2);
|
|
674
|
+
currentNode2?.parentNode?.insertBefore(startEndPoint.end, currentNode2.nextSibling);
|
|
675
|
+
fragment.append(currentNode2);
|
|
676
|
+
const rawSet = new _RawSet(
|
|
677
|
+
uuid,
|
|
678
|
+
isElement ? elementType : isAttr ? import_RawSetType.RawSetType.TARGET_ATTR : import_RawSetType.RawSetType.UNKOWN,
|
|
679
|
+
{
|
|
680
|
+
start: startEndPoint.start,
|
|
681
|
+
node: currentNode2,
|
|
682
|
+
end: startEndPoint.end,
|
|
683
|
+
parent: currentNode2.parentNode
|
|
684
|
+
// thisVariableName: thisVariableName
|
|
685
|
+
},
|
|
686
|
+
{ config, fragment }
|
|
687
|
+
);
|
|
512
688
|
pars.push(rawSet);
|
|
513
689
|
}
|
|
514
690
|
}
|
|
691
|
+
const util = import_ElementUtils.ElementUtils;
|
|
515
692
|
return pars;
|
|
516
693
|
}
|
|
517
694
|
static createStartEndPoint(data, config) {
|
|
@@ -587,13 +764,17 @@ const _RawSet = class _RawSet {
|
|
|
587
764
|
static drItOtherEncoding(element, postFix) {
|
|
588
765
|
const random = import_RandomUtils.RandomUtils.uuid() + postFix;
|
|
589
766
|
const regex = /#it#/g;
|
|
590
|
-
element.querySelectorAll(
|
|
767
|
+
element.querySelectorAll(
|
|
768
|
+
`[${_RawSet.DR_IT_OPTIONNAME}], [${_RawSet.DR_FOR_OF_NAME}], [${_RawSet.DR_REPEAT_NAME}], [${_RawSet.DR_APPENDER_NAME}]`
|
|
769
|
+
).forEach((it) => {
|
|
591
770
|
it.innerHTML = it.innerHTML.replace(regex, random);
|
|
592
771
|
});
|
|
593
772
|
return random;
|
|
594
773
|
}
|
|
595
774
|
static drItOtherDecoding(element, random) {
|
|
596
|
-
element.querySelectorAll(
|
|
775
|
+
element.querySelectorAll(
|
|
776
|
+
`[${_RawSet.DR_IT_OPTIONNAME}], [${_RawSet.DR_FOR_OF_NAME}], [${_RawSet.DR_REPEAT_NAME}], [${_RawSet.DR_APPENDER_NAME}]`
|
|
777
|
+
).forEach((it) => {
|
|
597
778
|
it.innerHTML = it.innerHTML.replace(RegExp(random, "g"), "#it#");
|
|
598
779
|
});
|
|
599
780
|
}
|
|
@@ -734,7 +915,7 @@ const _RawSet = class _RawSet {
|
|
|
734
915
|
const style = _RawSet.generateStyleTransform(set.styles ?? [], rawSet.uuid, true);
|
|
735
916
|
targetElement.innerHTML = style + (set.template ?? "");
|
|
736
917
|
} else {
|
|
737
|
-
targetObj =
|
|
918
|
+
targetObj = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(drThis), obj);
|
|
738
919
|
}
|
|
739
920
|
const componentKey = rawSet.uuid;
|
|
740
921
|
const renderScript = ` /*drThisCreate*/
|
|
@@ -778,7 +959,10 @@ const _RawSet = class _RawSet {
|
|
|
778
959
|
render.attribute = _RawSet.getAttributeObject(element, { script: renderScript, obj, renderData: render });
|
|
779
960
|
render = Object.freeze(render);
|
|
780
961
|
const onCreateDataScript = `return {rootParent: this, render: this.__render}`;
|
|
781
|
-
const onCreateDataParam =
|
|
962
|
+
const onCreateDataParam = import_ObjectUtils.ObjectUtils.Script.evaluate(
|
|
963
|
+
onCreateDataScript,
|
|
964
|
+
Object.assign(obj, { __render: render })
|
|
965
|
+
);
|
|
782
966
|
if ((0, import_OnCreateRenderData.isOnCreateRenderData)(targetObj)) {
|
|
783
967
|
targetObj?.onCreateRenderData(onCreateDataParam);
|
|
784
968
|
}
|
|
@@ -788,7 +972,10 @@ const _RawSet = class _RawSet {
|
|
|
788
972
|
const onCreate = element.getAttribute(_RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
|
|
789
973
|
let createParam = [];
|
|
790
974
|
if (onCreate) {
|
|
791
|
-
createParam =
|
|
975
|
+
createParam = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(
|
|
976
|
+
{ bodyScript: renderScript, returnScript: import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(onCreate) },
|
|
977
|
+
obj
|
|
978
|
+
);
|
|
792
979
|
if (!Array.isArray(createParam)) {
|
|
793
980
|
createParam = [createParam];
|
|
794
981
|
}
|
|
@@ -809,15 +996,38 @@ const _RawSet = class _RawSet {
|
|
|
809
996
|
const oninit = element.getAttribute(_RawSet.DR_ON_CREATED_CALLBACK_OPTIONNAME);
|
|
810
997
|
if (oninit) {
|
|
811
998
|
const script = `${renderScript} ${oninit} `;
|
|
812
|
-
|
|
999
|
+
import_ObjectUtils.ObjectUtils.Script.evaluate(script, Object.assign(obj, { __render: render }));
|
|
813
1000
|
}
|
|
814
1001
|
targetElement.querySelectorAll(import_EventManager.EventManager.attrNames.map((it) => `[${it}]`).join(",")).forEach((it) => {
|
|
815
1002
|
it.setAttribute(import_EventManager.EventManager.ownerVariablePathAttrName, "this");
|
|
816
1003
|
});
|
|
817
|
-
|
|
818
|
-
const
|
|
1004
|
+
rawSet.point.innerHTML = element.innerHTML;
|
|
1005
|
+
const innerText = element.textContent?.trim() ?? "";
|
|
1006
|
+
const escapedInnerHTML = import_ConvertUtils.ConvertUtils.escapeHTML(element.innerHTML);
|
|
1007
|
+
const innerHTMLName = targetElement.getAttribute(_RawSet.DR_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
|
|
1008
|
+
const innerTEXTName = targetElement.getAttribute(_RawSet.DR_INNER_TEXT_NAME_OPTIONNAME) ?? "innerTEXT";
|
|
1009
|
+
const innerHTMLEscapedName = targetElement.getAttribute(_RawSet.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME) ?? "innerHTMLEscaped";
|
|
1010
|
+
const templateReplacements = [];
|
|
819
1011
|
if (innerHTMLName) {
|
|
820
|
-
|
|
1012
|
+
templateReplacements.push({
|
|
1013
|
+
regex: new RegExp(`#${innerHTMLName}#`, "g"),
|
|
1014
|
+
callback: () => element.innerHTML
|
|
1015
|
+
});
|
|
1016
|
+
}
|
|
1017
|
+
if (innerTEXTName) {
|
|
1018
|
+
templateReplacements.push({
|
|
1019
|
+
regex: new RegExp(`#${innerTEXTName}#`, "g"),
|
|
1020
|
+
callback: () => innerText
|
|
1021
|
+
});
|
|
1022
|
+
}
|
|
1023
|
+
if (innerHTMLEscapedName) {
|
|
1024
|
+
templateReplacements.push({
|
|
1025
|
+
regex: new RegExp(`#${innerHTMLEscapedName}#`, "g"),
|
|
1026
|
+
callback: () => escapedInnerHTML
|
|
1027
|
+
});
|
|
1028
|
+
}
|
|
1029
|
+
if (templateReplacements.length > 0) {
|
|
1030
|
+
targetElement.innerHTML = import_StringUtils.StringUtils.replaceSequentially(targetElement.innerHTML, templateReplacements);
|
|
821
1031
|
}
|
|
822
1032
|
const optionThisName = targetElement.getAttribute(_RawSet.DR_THIS_NAME_OPTIONNAME);
|
|
823
1033
|
targetElement.getAttributeNames().forEach((it) => targetElement.setAttribute(it, targetElement.getAttribute(it).replace(/#this#/g, drThis)));
|
|
@@ -825,8 +1035,14 @@ const _RawSet = class _RawSet {
|
|
|
825
1035
|
if (optionThisName) {
|
|
826
1036
|
targetElement.innerHTML = targetElement.innerHTML.replaceAll(`@${optionThisName}@`, drThis);
|
|
827
1037
|
}
|
|
828
|
-
const nearThisRandom = this.drThisBindEncoding(targetElement, /@nearThis@/g, {
|
|
829
|
-
|
|
1038
|
+
const nearThisRandom = this.drThisBindEncoding(targetElement, /@nearThis@/g, {
|
|
1039
|
+
config,
|
|
1040
|
+
otherReplaceVariablePath: rawSet.findNearThisPath()
|
|
1041
|
+
});
|
|
1042
|
+
const parentThisRandom = this.drThisBindEncoding(targetElement, /@parentThis@/g, {
|
|
1043
|
+
config,
|
|
1044
|
+
otherReplaceVariablePath: rawSet.findParentThisPath()
|
|
1045
|
+
});
|
|
830
1046
|
const vars = this.drVarEncoding(targetElement, drVarOption);
|
|
831
1047
|
this.drVarDecoding(targetElement, vars);
|
|
832
1048
|
this.drThisDecoding(targetElement, { asIs: thisRandom, toBe: "@this@" });
|
|
@@ -869,7 +1085,13 @@ const _RawSet = class _RawSet {
|
|
|
869
1085
|
};
|
|
870
1086
|
return targetAttribute;
|
|
871
1087
|
}
|
|
872
|
-
static createComponentTargetElement({
|
|
1088
|
+
static createComponentTargetElement({
|
|
1089
|
+
name,
|
|
1090
|
+
objFactory,
|
|
1091
|
+
template = "",
|
|
1092
|
+
styles = [],
|
|
1093
|
+
noStrip
|
|
1094
|
+
}) {
|
|
873
1095
|
const targetElement = {
|
|
874
1096
|
name,
|
|
875
1097
|
styles,
|
|
@@ -882,7 +1104,6 @@ const _RawSet = class _RawSet {
|
|
|
882
1104
|
obj.__domrender_components ?? (obj.__domrender_components = {});
|
|
883
1105
|
const domrenderComponents = obj.__domrender_components;
|
|
884
1106
|
const renderScript = ` /*createComponentTargetElement*/
|
|
885
|
-
// console.log('-------------------',this.__render);
|
|
886
1107
|
var ${import_EventManager.EventManager.RAWSET_VARNAME} = this.__render.rawSet;
|
|
887
1108
|
var ${import_EventManager.EventManager.COMPONENT_VARNAME} = this.__render.component;
|
|
888
1109
|
var ${import_EventManager.EventManager.ELEMENT_VARNAME} = this.__render.element;
|
|
@@ -919,7 +1140,10 @@ const _RawSet = class _RawSet {
|
|
|
919
1140
|
render.attribute = _RawSet.getAttributeObject(element, { script: renderScript, obj, renderData: render });
|
|
920
1141
|
render = Object.freeze(render);
|
|
921
1142
|
if (constructor) {
|
|
922
|
-
let param =
|
|
1143
|
+
let param = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(
|
|
1144
|
+
{ bodyScript: renderScript, returnScript: import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(constructor) },
|
|
1145
|
+
Object.assign(obj, { __render: render })
|
|
1146
|
+
) ?? [];
|
|
923
1147
|
if (!Array.isArray(param)) {
|
|
924
1148
|
param = [param];
|
|
925
1149
|
}
|
|
@@ -934,22 +1158,55 @@ const _RawSet = class _RawSet {
|
|
|
934
1158
|
rawSet.dataSet.render = render;
|
|
935
1159
|
instance.__rawSet = rawSet;
|
|
936
1160
|
let applayTemplate = element.innerHTML;
|
|
1161
|
+
let applayTemplateText = element.textContent?.trim() ?? "";
|
|
1162
|
+
let applayTemplateEscape = import_ConvertUtils.ConvertUtils.escapeHTML(element.innerHTML);
|
|
937
1163
|
let innerHTMLThisRandom;
|
|
938
|
-
const componentName = element.getAttribute(_RawSet.
|
|
939
|
-
const innerHTMLName = element.getAttribute(_RawSet.
|
|
1164
|
+
const componentName = element.getAttribute(_RawSet.DR_VARIABLE_NAME_OPTIONNAME) ?? "component";
|
|
1165
|
+
const innerHTMLName = element.getAttribute(_RawSet.DR_INNER_HTML_NAME_OPTIONNAME) ?? "innerHTML";
|
|
1166
|
+
const innerTEXTName = element.getAttribute(_RawSet.DR_INNER_TEXT_NAME_OPTIONNAME) ?? "innerTEXT";
|
|
1167
|
+
const innerHTMLEscapedName = element.getAttribute(_RawSet.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME) ?? "innerHTMLEscaped";
|
|
940
1168
|
if (applayTemplate) {
|
|
941
1169
|
innerHTMLThisRandom = import_RandomUtils.RandomUtils.uuid();
|
|
942
|
-
applayTemplate =
|
|
943
|
-
|
|
1170
|
+
applayTemplate = import_StringUtils.StringUtils.replaceSequentially(applayTemplate, [
|
|
1171
|
+
{
|
|
1172
|
+
regex: /this\./g,
|
|
1173
|
+
callback: () => innerHTMLThisRandom
|
|
1174
|
+
},
|
|
1175
|
+
{
|
|
1176
|
+
regex: new RegExp(`#${componentName}#`, "g"),
|
|
1177
|
+
callback: () => nearThisPath
|
|
1178
|
+
}
|
|
1179
|
+
]);
|
|
944
1180
|
}
|
|
945
|
-
applayTemplate = (this.template ?? ""
|
|
1181
|
+
applayTemplate = import_StringUtils.StringUtils.replaceSequentially(this.template ?? "", [
|
|
1182
|
+
{
|
|
1183
|
+
regex: new RegExp(`#${innerHTMLName}#`, "g"),
|
|
1184
|
+
callback: () => applayTemplate
|
|
1185
|
+
},
|
|
1186
|
+
{
|
|
1187
|
+
regex: new RegExp(`#${innerTEXTName}#`, "g"),
|
|
1188
|
+
callback: () => applayTemplateText
|
|
1189
|
+
},
|
|
1190
|
+
{
|
|
1191
|
+
regex: new RegExp(`#${innerHTMLEscapedName}#`, "g"),
|
|
1192
|
+
callback: () => applayTemplateEscape
|
|
1193
|
+
}
|
|
1194
|
+
]);
|
|
946
1195
|
const style = _RawSet.generateStyleTransform(this.styles, rawSet.uuid, true);
|
|
947
1196
|
element.innerHTML = style + (applayTemplate ?? "");
|
|
948
|
-
let data = await _RawSet.drThisCreate(
|
|
1197
|
+
let data = await _RawSet.drThisCreate(
|
|
1198
|
+
rawSet,
|
|
1199
|
+
element,
|
|
1200
|
+
`this.__domrender_components.${rawSet.uuid}`,
|
|
1201
|
+
"",
|
|
1202
|
+
!noStrip,
|
|
1203
|
+
obj,
|
|
1204
|
+
config
|
|
1205
|
+
);
|
|
949
1206
|
if (data && innerHTMLThisRandom) {
|
|
950
1207
|
const template2 = config.window.document.createElement("template");
|
|
951
|
-
template2.
|
|
952
|
-
|
|
1208
|
+
template2.innerHTML = import_ElementUtils.ElementUtils.toInnerHTML(data, { document: config.window.document }).replace(RegExp(innerHTMLThisRandom, "g"), "this.");
|
|
1209
|
+
;
|
|
953
1210
|
data = template2.content;
|
|
954
1211
|
}
|
|
955
1212
|
return data;
|
|
@@ -986,7 +1243,26 @@ const _RawSet = class _RawSet {
|
|
|
986
1243
|
const normalAttribute = attribute[import_EventManager.EventManager.normalAttrMapAttrName];
|
|
987
1244
|
if (normalAttribute) {
|
|
988
1245
|
new Map(JSON.parse(normalAttribute)).forEach((v, k) => {
|
|
989
|
-
const
|
|
1246
|
+
const variablePaths = v.variablePaths;
|
|
1247
|
+
let targetScript = v.originalAttrValue.trim();
|
|
1248
|
+
let checktargetScript = v.originalAttrValue.trim();
|
|
1249
|
+
variablePaths.forEach((it) => {
|
|
1250
|
+
checktargetScript = targetScript.replaceAll(it.origin, "");
|
|
1251
|
+
});
|
|
1252
|
+
let isScriptValue = checktargetScript.length === 0 && variablePaths.length === 1;
|
|
1253
|
+
if (isScriptValue) {
|
|
1254
|
+
let r = import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(variablePaths[0].inner);
|
|
1255
|
+
targetScript = targetScript.replaceAll(variablePaths[0].origin, r);
|
|
1256
|
+
} else {
|
|
1257
|
+
variablePaths.forEach((it) => {
|
|
1258
|
+
let r = import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(it.inner);
|
|
1259
|
+
targetScript = targetScript.replaceAll(it.origin, `\${${r}}`);
|
|
1260
|
+
});
|
|
1261
|
+
}
|
|
1262
|
+
const cval = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(
|
|
1263
|
+
{ bodyScript: config.script, returnScript: isScriptValue ? targetScript : "`" + targetScript + "`" },
|
|
1264
|
+
Object.assign(config.obj, config.renderData ? { __render: config.renderData } : void 0)
|
|
1265
|
+
);
|
|
990
1266
|
attribute[k] = cval;
|
|
991
1267
|
});
|
|
992
1268
|
}
|
|
@@ -1027,11 +1303,12 @@ _RawSet.DR_COMPLETE_OPTIONNAME = "dr-option-complete";
|
|
|
1027
1303
|
_RawSet.DR_STRIP_OPTIONNAME = "dr-option-strip";
|
|
1028
1304
|
_RawSet.DR_DESTROY_OPTIONNAME = "dr-option-destroy";
|
|
1029
1305
|
_RawSet.DR_THIS_NAME_OPTIONNAME = "dr-option-this-name";
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
_RawSet.
|
|
1034
|
-
_RawSet.
|
|
1306
|
+
_RawSet.DR_VARIABLE_NAME_OPTIONNAME = "dr-option-variable-name";
|
|
1307
|
+
_RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME = "dr-option-item-variable-name";
|
|
1308
|
+
_RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME = "dr-option-item-index-variable-name";
|
|
1309
|
+
_RawSet.DR_INNER_HTML_NAME_OPTIONNAME = "dr-option-inner-html-name";
|
|
1310
|
+
_RawSet.DR_INNER_TEXT_NAME_OPTIONNAME = "dr-option-inner-text-name";
|
|
1311
|
+
_RawSet.DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME = "dr-option-inner-html-escaped-name";
|
|
1035
1312
|
_RawSet.DR_KEY_OPTIONNAME = "dr-option-key";
|
|
1036
1313
|
_RawSet.DR_HAS_KEYS_OPTIONNAME = "dr-option-has-keys";
|
|
1037
1314
|
_RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME = "dr-on-create:arguments";
|