dom-render 1.0.94 → 1.0.95

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,18 +265,70 @@ 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) {
274
+ // const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);
275
+ // console.log('-------', firstPathStr, firstData);
276
+ // if (firstData instanceof Dictionary) {
277
+ // }
269
278
  var iterable_1 = this._rawSets.get(fullPathStr_1);
270
279
  // array check
271
280
  var front_1 = strings.slice(0, strings.length - 1).map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('');
272
281
  var last_1 = strings[strings.length - 1];
273
282
  var data_1 = ScriptUtils_1.ScriptUtils.evalReturn('this' + front_1, this._domRender_proxy);
283
+ // console.log('-------!!!!!', fullPathStr, iterable, data, front, last);
274
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);
322
+ }
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 */
275
330
  if (last_1 === 'length' && Array.isArray(data_1)) {
276
- var aIterable = _this._rawSets.get(front_1.slice(1));
331
+ var aIterable = _this._rawSets.get(firstPathStr);
277
332
  if (aIterable) {
278
333
  return _this.render(Array.from(aIterable));
279
334
  }
@@ -282,8 +337,9 @@ var DomRenderProxy = /** @class */ (function () {
282
337
  return _this.render(Array.from(iterable_1), fullPathStr_1);
283
338
  }
284
339
  }).then(function (it) {
340
+ console.log('target1------->,', it);
285
341
  _this._targets.forEach(function (it) {
286
- // console.log('target------->,', it)
342
+ console.log('target2------->,', it);
287
343
  // return;
288
344
  if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
289
345
  var targets = EventManager_1.eventManager.findAttrElements(it, _this.config);
@@ -299,6 +355,7 @@ var DomRenderProxy = /** @class */ (function () {
299
355
  };
300
356
  DomRenderProxy.prototype.set = function (target, p, value, receiver) {
301
357
  var _a, _b;
358
+ // console.log('set-->', p, value, target, receiver);
302
359
  if (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) {
303
360
  target[p] = value;
304
361
  return true;
@@ -360,6 +417,13 @@ var DomRenderProxy = /** @class */ (function () {
360
417
  return it_2;
361
418
  }
362
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
+ };
363
427
  DomRenderProxy.prototype.has = function (target, p) {
364
428
  return p === '_DomRender_isProxy' || p in target;
365
429
  };