dom-render 1.0.93 → 1.0.95

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.
@@ -18,6 +18,7 @@ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T>
18
18
  root(paths: string[], value?: any, lastDoneExecute?: boolean): string[];
19
19
  set(target: T, p: string | symbol, value: any, receiver: T): boolean;
20
20
  get(target: T, p: string | symbol, receiver: any): any;
21
+ deleteProperty(target: T, p: string | symbol): boolean;
21
22
  has(target: T, p: string | symbol): boolean;
22
23
  proxy(parentProxy: T, obj: T | any, p: string): any;
23
24
  addRef(parent: object, path: string): void;
package/DomRenderProxy.js CHANGED
@@ -51,6 +51,7 @@ var EventManager_1 = require("./events/EventManager");
51
51
  var ScriptUtils_1 = require("./utils/script/ScriptUtils");
52
52
  var Types_1 = require("./types/Types");
53
53
  var RawSetType_1 = require("./rawsets/RawSetType");
54
+ var DrDictionary_1 = require("./operators/DrDictionary");
54
55
  var excludeGetSetPropertys = ['onBeforeReturnGet', 'onBeforeReturnSet', '__domrender_components', '__render', '_DomRender_isFinal', '_domRender_ref', '_rawSets', '_domRender_proxy', '_targets', '_DomRender_origin', '_DomRender_ref', '_DomRender_proxy'];
55
56
  var DomRenderProxy = /** @class */ (function () {
56
57
  function DomRenderProxy(_domRender_origin, target, config) {
@@ -102,7 +103,7 @@ var DomRenderProxy = /** @class */ (function () {
102
103
  };
103
104
  DomRenderProxy.prototype.initRender = function (target) {
104
105
  var _this = this;
105
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
106
+ var _a, _b, _c, _d, _e;
106
107
  var onCreate = (_b = (_a = target).getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, RawSet_1.RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
107
108
  var createParam = [];
108
109
  if (onCreate) {
@@ -129,22 +130,24 @@ var DomRenderProxy = /** @class */ (function () {
129
130
  });
130
131
  }
131
132
  });
132
- this.render(this.getRawSets());
133
- // const render = {target} as Render;
134
- // const creatorMetaData = {
135
- // creator: this._domRender_proxy,
136
- // rootCreator: this._domRender_proxy,
137
- // innerHTML
138
- // } as CreatorMetaData;
139
- var onInit = (_g = (_f = target).getAttribute) === null || _g === void 0 ? void 0 : _g.call(_f, RawSet_1.RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
140
- var initParam = [];
141
- if (onCreate) {
142
- initParam = ScriptUtils_1.ScriptUtils.evalReturn(onCreate, this._domRender_proxy);
143
- if (!Array.isArray(initParam)) {
144
- initParam = [initParam];
133
+ this.render(this.getRawSets()).then(function (it) {
134
+ var _a, _b, _c, _d;
135
+ // const render = {target} as Render;
136
+ // const creatorMetaData = {
137
+ // creator: this._domRender_proxy,
138
+ // rootCreator: this._domRender_proxy,
139
+ // innerHTML
140
+ // } as CreatorMetaData;
141
+ var onInit = (_b = (_a = target).getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, RawSet_1.RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
142
+ var initParam = [];
143
+ if (onCreate) {
144
+ initParam = ScriptUtils_1.ScriptUtils.evalReturn(onCreate, _this._domRender_proxy);
145
+ if (!Array.isArray(initParam)) {
146
+ initParam = [initParam];
147
+ }
145
148
  }
146
- }
147
- (_j = (_h = this._domRender_proxy) === null || _h === void 0 ? void 0 : _h.onInitRender) === null || _j === void 0 ? void 0 : _j.call.apply(_j, __spreadArray([_h], initParam, false));
149
+ (_d = (_c = _this._domRender_proxy) === null || _c === void 0 ? void 0 : _c.onInitRender) === null || _d === void 0 ? void 0 : _d.call.apply(_d, __spreadArray([_c], initParam, false));
150
+ });
148
151
  };
149
152
  DomRenderProxy.prototype.getRawSets = function () {
150
153
  var set = new Set();
@@ -179,11 +182,11 @@ var DomRenderProxy = /** @class */ (function () {
179
182
  switch (_e.label) {
180
183
  case 0:
181
184
  it_1.getUsingTriggerVariables(this_1.config).forEach(function (path) { return _this.addRawSet(path, it_1); });
182
- if (!it_1.isConnected) return [3 /*break*/, 5];
185
+ if (!it_1.isConnected) return [3 /*break*/, 6];
183
186
  targetAttrMap = (_b = (_a = it_1.point.node) === null || _a === void 0 ? void 0 : _a.getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, EventManager_1.EventManager.normalAttrMapAttrName);
184
187
  if (!((_c = it_1.detect) === null || _c === void 0 ? void 0 : _c.action)) return [3 /*break*/, 1];
185
188
  it_1.detect.action();
186
- return [3 /*break*/, 4];
189
+ return [3 /*break*/, 5];
187
190
  case 1:
188
191
  if (!(it_1.type === RawSetType_1.RawSetType.TARGET_ELEMENT && it_1.data && fullPathStr && targetAttrMap && it_1.fragment.render)) return [3 /*break*/, 2];
189
192
  new Map(JSON.parse(targetAttrMap)).forEach(function (v, k) {
@@ -199,20 +202,20 @@ var DomRenderProxy = /** @class */ (function () {
199
202
  }
200
203
  // console.log('---?', v, fullPathStr, isUsing);
201
204
  });
202
- return [3 /*break*/, 4];
205
+ return [3 /*break*/, 5];
203
206
  case 2: return [4 /*yield*/, it_1.render(this_1._domRender_proxy, this_1.config)];
204
207
  case 3:
205
208
  rawSets_2 = _e.sent();
206
- // 그외 자식들 render
207
- if (rawSets_2 && rawSets_2.length > 0) {
208
- this_1.render(rawSets_2);
209
- }
210
- _e.label = 4;
211
- case 4: return [3 /*break*/, 6];
212
- case 5:
209
+ if (!(rawSets_2 && rawSets_2.length > 0)) return [3 /*break*/, 5];
210
+ return [4 /*yield*/, this_1.render(rawSets_2)];
211
+ case 4:
212
+ _e.sent();
213
+ _e.label = 5;
214
+ case 5: return [3 /*break*/, 7];
215
+ case 6:
213
216
  removeRawSets.push(it_1);
214
- _e.label = 6;
215
- case 6: return [2 /*return*/];
217
+ _e.label = 7;
218
+ case 7: return [2 /*return*/];
216
219
  }
217
220
  });
218
221
  };
@@ -262,33 +265,88 @@ var DomRenderProxy = /** @class */ (function () {
262
265
  });
263
266
  }
264
267
  else {
268
+ // const firstPathStr = paths.slice(1).reverse().join('.');
265
269
  var strings = paths.reverse();
266
270
  // array같은경우도 키값으로 접근하기때문에 특정 인덱스를 찾아서 그부분만 바꿔줄수 있다.
267
271
  var fullPathStr_1 = strings.map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('').slice(1);
272
+ // console.log('-------fullPathStr', fullPathStr, lastDoneExecute);
268
273
  if (lastDoneExecute) {
269
- var iterable = this._rawSets.get(fullPathStr_1);
270
- // console.log('----->', iterable);
274
+ // const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);
275
+ // console.log('-------', firstPathStr, firstData);
276
+ // if (firstData instanceof Dictionary) {
277
+ // }
278
+ var iterable_1 = this._rawSets.get(fullPathStr_1);
271
279
  // array check
272
- var front = strings.slice(0, strings.length - 1).map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('');
273
- var last = strings[strings.length - 1];
274
- var data = ScriptUtils_1.ScriptUtils.evalReturn('this' + front, this._domRender_proxy);
275
- if (last === 'length' && Array.isArray(data)) {
276
- var aIterable = this._rawSets.get(front.slice(1));
277
- if (aIterable) {
278
- this.render(Array.from(aIterable));
280
+ var front_1 = strings.slice(0, strings.length - 1).map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('');
281
+ var last_1 = strings[strings.length - 1];
282
+ var data_1 = ScriptUtils_1.ScriptUtils.evalReturn('this' + front_1, this._domRender_proxy);
283
+ // console.log('-------!!!!!', fullPathStr, iterable, data, front, last);
284
+ new Promise(function (resolve) {
285
+ var firstPathStr = front_1.slice(1);
286
+ // console.log('-promise-------', firstPathStr, this)
287
+ var firstTargets = _this._rawSets.get(firstPathStr);
288
+ var firstTargetDictionary = [];
289
+ firstTargets === null || firstTargets === void 0 ? void 0 : firstTargets.forEach(function (it) {
290
+ var _a, _b;
291
+ // console.log('----forEach---', it);
292
+ var type = (_b = (_a = it.point.start).getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, 'type');
293
+ if (type === 'dictionary') {
294
+ firstTargetDictionary.push(it);
295
+ }
296
+ });
297
+ if (firstTargetDictionary.length > 0) {
298
+ // console.log('ddddddddddd', firstTargetDictionary);
299
+ var rawSets_3 = [];
300
+ var skip_1 = false;
301
+ firstTargetDictionary.forEach(function (it) {
302
+ var _a, _b;
303
+ var keys = (_b = (_a = it.point.start.getAttribute('dictionary-keys')) === null || _a === void 0 ? void 0 : _a.split(',')) !== null && _b !== void 0 ? _b : [];
304
+ if (!keys.includes(last_1)) {
305
+ var raws = DrDictionary_1.DrDictionary.append(_this._domRender_proxy, fullPathStr_1, last_1, it, _this.config);
306
+ // console.log('----append---', raws);
307
+ if (raws) {
308
+ rawSets_3.push.apply(rawSets_3, raws);
309
+ }
310
+ }
311
+ else {
312
+ skip_1 = true;
313
+ }
314
+ });
315
+ if (skip_1 === false || rawSets_3.length > 0) {
316
+ return _this.render(rawSets_3);
317
+ }
318
+ // console.log('rawSets-->#$$$$$$$$$$$', this._rawSets);
319
+ // rawSets.forEach(it => this.addRawSet(fullPathStr, it));
320
+ // DrDictionary.append(this._domRender_proxy, fullPathStr, it, this.config);
321
+ // it.render(this._domRender_proxy, this.config);
279
322
  }
280
- }
281
- else if (iterable) {
282
- this.render(Array.from(iterable), fullPathStr_1);
283
- }
284
- this._targets.forEach(function (it) {
285
- // console.log('target------->,', it)
286
- // return;
287
- if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
288
- var targets = EventManager_1.eventManager.findAttrElements(it, _this.config);
289
- // console.log('------>', targets);
290
- EventManager_1.eventManager.changeVar(_this._domRender_proxy, targets, "this.".concat(fullPathStr_1), _this.config);
323
+ /* if (data instanceof Dictionary) {
324
+ const a = this._rawSets.get(firstPathStr);
325
+ // a?.forEach(it => {
326
+ // if (it.type === RawSetType.TARGET_ATTR)
327
+ // })
328
+ console.log('dictionary-->', data, last, value, this._rawSets, a);
329
+ } else */
330
+ if (last_1 === 'length' && Array.isArray(data_1)) {
331
+ var aIterable = _this._rawSets.get(firstPathStr);
332
+ if (aIterable) {
333
+ return _this.render(Array.from(aIterable));
334
+ }
291
335
  }
336
+ else if (iterable_1) {
337
+ return _this.render(Array.from(iterable_1), fullPathStr_1);
338
+ }
339
+ }).then(function (it) {
340
+ console.log('target1------->,', it);
341
+ _this._targets.forEach(function (it) {
342
+ console.log('target2------->,', it);
343
+ // return;
344
+ if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
345
+ var targets = EventManager_1.eventManager.findAttrElements(it, _this.config);
346
+ // console.log('------>', targets);
347
+ EventManager_1.eventManager.changeVar(_this._domRender_proxy, targets, "this.".concat(fullPathStr_1), _this.config);
348
+ }
349
+ });
292
350
  });
293
351
  }
294
352
  fullPaths.push(fullPathStr_1);
@@ -297,6 +355,7 @@ var DomRenderProxy = /** @class */ (function () {
297
355
  };
298
356
  DomRenderProxy.prototype.set = function (target, p, value, receiver) {
299
357
  var _a, _b;
358
+ // console.log('set-->', p, value, target, receiver);
300
359
  if (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) {
301
360
  target[p] = value;
302
361
  return true;
@@ -358,6 +417,13 @@ var DomRenderProxy = /** @class */ (function () {
358
417
  return it_2;
359
418
  }
360
419
  };
420
+ DomRenderProxy.prototype.deleteProperty = function (target, p) {
421
+ delete target[p];
422
+ if (typeof p === 'string') {
423
+ this.root([p]);
424
+ }
425
+ return true;
426
+ };
361
427
  DomRenderProxy.prototype.has = function (target, p) {
362
428
  return p === '_DomRender_isProxy' || p in target;
363
429
  };