dom-render 1.0.94 → 1.0.96

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