dom-render 1.0.94 → 1.0.96

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,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
  };