dom-render 1.0.66 → 1.0.70

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. package/Config.d.ts +5 -3
  2. package/Config.js +2 -1
  3. package/DomRender.js +11 -4
  4. package/DomRenderProxy.d.ts +5 -4
  5. package/DomRenderProxy.js +136 -44
  6. package/README.MD +272 -237
  7. package/RawSet.d.ts +51 -14
  8. package/RawSet.js +451 -252
  9. package/dist/bundle.js +3042 -1879
  10. package/events/EventManager.d.ts +15 -4
  11. package/events/EventManager.js +240 -187
  12. package/iterators/Range.d.ts +0 -1
  13. package/iterators/Range.js +13 -36
  14. package/lifecycle/OnBeforeReturnGet.js +2 -1
  15. package/lifecycle/OnBeforeReturnSet.js +2 -1
  16. package/lifecycle/OnCreateRender.d.ts +3 -0
  17. package/lifecycle/OnCreateRender.js +2 -0
  18. package/lifecycle/OnInitRender.d.ts +5 -1
  19. package/lifecycle/OnInitRender.js +2 -1
  20. package/managers/RenderManager.d.ts +3 -0
  21. package/managers/RenderManager.js +18 -0
  22. package/package.json +18 -14
  23. package/types/Types.d.ts +8 -0
  24. package/types/Types.js +32 -2
  25. package/utils/clipboard/ClipBoardUtils.d.ts +6 -0
  26. package/utils/clipboard/ClipBoardUtils.js +25 -0
  27. package/utils/dom/DomUtils.js +5 -2
  28. package/utils/location/LocationUtils.d.ts +15 -0
  29. package/utils/location/LocationUtils.js +54 -0
  30. package/utils/node/NodeUtils.js +7 -2
  31. package/utils/random/RandomUtils.js +9 -5
  32. package/utils/script/ScriptUtils.d.ts +5 -5
  33. package/utils/script/ScriptUtils.js +36 -53
  34. package/utils/storage/StorageUtils.d.ts +9 -0
  35. package/utils/storage/StorageUtils.js +48 -0
  36. package/utils/string/StringUtils.js +22 -2
  37. package/utils/valid/ValidUtils.js +10 -2
  38. package/validators/AllCheckedValidatorArray.js +7 -4
  39. package/validators/AllUnCheckedValidatorArray.js +7 -4
  40. package/validators/CheckedValidator.js +7 -4
  41. package/validators/CountEqualsCheckedValidatorArray.js +7 -4
  42. package/validators/CountEqualsUnCheckedValidatorArray.js +7 -4
  43. package/validators/CountGreaterThanCheckedValidatorArray.js +7 -4
  44. package/validators/CountGreaterThanEqualsCheckedValidatorArray.js +7 -4
  45. package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +7 -4
  46. package/validators/CountGreaterThanUnCheckedValidatorArray.js +7 -4
  47. package/validators/CountLessThanCheckedValidatorArray.js +7 -4
  48. package/validators/CountLessThanEqualsCheckedValidatorArray.js +7 -4
  49. package/validators/CountLessThanEqualsUnCheckedValidatorArray.js +7 -4
  50. package/validators/CountLessThanUnCheckedValidatorArray.js +7 -4
  51. package/validators/CountUnCheckedValidatorArray.js +7 -4
  52. package/validators/EmptyValidator.js +7 -4
  53. package/validators/ExcludeCheckedValidatorArray.js +7 -4
  54. package/validators/FormValidator.d.ts +1 -0
  55. package/validators/FormValidator.js +10 -4
  56. package/validators/IncludeCheckedValidatorArray.js +7 -4
  57. package/validators/MultipleValidator.js +8 -4
  58. package/validators/NonPassValidator.js +7 -4
  59. package/validators/NotEmptyValidator.js +8 -4
  60. package/validators/NotRegExpTestValidator.js +9 -6
  61. package/validators/PassValidator.js +7 -4
  62. package/validators/RegExpTestValidator.js +10 -6
  63. package/validators/RequiredValidator.js +8 -4
  64. package/validators/UnCheckedValidator.js +7 -4
  65. package/validators/ValidMultipleValidator.js +7 -4
  66. package/validators/ValidValidator.js +7 -4
  67. package/validators/ValidValidatorArray.js +7 -4
  68. package/validators/Validator.d.ts +12 -1
  69. package/validators/Validator.js +68 -25
  70. package/validators/ValidatorArray.js +10 -7
  71. package/validators/ValueEqualsValidator.js +7 -4
  72. package/validators/ValueNotEqualsValidator.js +7 -4
  73. package/dist/Config.d.ts +0 -31
  74. package/dist/DomRender.d.ts +0 -4
  75. package/dist/DomRenderProxy.d.ts +0 -28
  76. package/dist/RawSet.d.ts +0 -73
  77. package/dist/bundle.js.map +0 -1
  78. package/dist/events/EventManager.d.ts +0 -35
  79. package/dist/iterators/Range.d.ts +0 -23
  80. package/dist/lifecycle/OnBeforeReturnGet.d.ts +0 -3
  81. package/dist/lifecycle/OnBeforeReturnSet.d.ts +0 -3
  82. package/dist/lifecycle/OnInitRender.d.ts +0 -3
  83. package/dist/types/Types.d.ts +0 -6
  84. package/dist/utils/dom/DomUtils.d.ts +0 -13
  85. package/dist/utils/node/NodeUtils.d.ts +0 -10
  86. package/dist/utils/random/RandomUtils.d.ts +0 -7
  87. package/dist/utils/script/ScriptUtils.d.ts +0 -14
  88. package/dist/utils/string/StringUtils.d.ts +0 -5
  89. package/dist/utils/valid/ValidUtils.d.ts +0 -10
  90. package/dist/validators/AllCheckedValidatorArray.d.ts +0 -6
  91. package/dist/validators/AllUnCheckedValidatorArray.d.ts +0 -6
  92. package/dist/validators/CheckedValidator.d.ts +0 -5
  93. package/dist/validators/CountEqualsCheckedValidatorArray.d.ts +0 -7
  94. package/dist/validators/CountEqualsUnCheckedValidatorArray.d.ts +0 -7
  95. package/dist/validators/CountGreaterThanCheckedValidatorArray.d.ts +0 -7
  96. package/dist/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +0 -7
  97. package/dist/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +0 -7
  98. package/dist/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +0 -7
  99. package/dist/validators/CountLessThanCheckedValidatorArray.d.ts +0 -7
  100. package/dist/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +0 -7
  101. package/dist/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +0 -7
  102. package/dist/validators/CountLessThanUnCheckedValidatorArray.d.ts +0 -7
  103. package/dist/validators/CountUnCheckedValidatorArray.d.ts +0 -7
  104. package/dist/validators/EmptyValidator.d.ts +0 -5
  105. package/dist/validators/ExcludeCheckedValidatorArray.d.ts +0 -8
  106. package/dist/validators/FormValidator.d.ts +0 -6
  107. package/dist/validators/IncludeCheckedValidatorArray.d.ts +0 -8
  108. package/dist/validators/MultipleValidator.d.ts +0 -8
  109. package/dist/validators/NonPassValidator.d.ts +0 -5
  110. package/dist/validators/NotEmptyValidator.d.ts +0 -5
  111. package/dist/validators/NotRegExpTestValidator.d.ts +0 -6
  112. package/dist/validators/PassValidator.d.ts +0 -5
  113. package/dist/validators/RegExpTestValidator.d.ts +0 -6
  114. package/dist/validators/RequiredValidator.d.ts +0 -5
  115. package/dist/validators/UnCheckedValidator.d.ts +0 -5
  116. package/dist/validators/ValidMultipleValidator.d.ts +0 -9
  117. package/dist/validators/ValidValidator.d.ts +0 -6
  118. package/dist/validators/ValidValidatorArray.d.ts +0 -7
  119. package/dist/validators/Validator.d.ts +0 -46
  120. package/dist/validators/ValidatorArray.d.ts +0 -17
  121. package/dist/validators/ValueEqualsValidator.d.ts +0 -6
  122. package/dist/validators/ValueNotEqualsValidator.d.ts +0 -6
package/Config.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ConstructorType } from './types/Types';
2
- import { RawSet, Render } from './RawSet';
2
+ import { CreatorMetaData, RawSet, Render } from './RawSet';
3
3
  export declare type TargetElement = {
4
4
  name: string;
5
5
  template?: string;
@@ -7,6 +7,7 @@ export declare type TargetElement = {
7
7
  callBack: (target: Element, obj: any, rawSet: RawSet) => DocumentFragment;
8
8
  complete?: (target: Element, obj: any, rawSet: RawSet) => void;
9
9
  __render?: Render;
10
+ __creatorMetaData?: CreatorMetaData;
10
11
  };
11
12
  export declare type TargetAttr = {
12
13
  name: string;
@@ -14,10 +15,11 @@ export declare type TargetAttr = {
14
15
  complete?: (target: Element, attrValue: string, obj: any, rawSet: RawSet) => void;
15
16
  };
16
17
  export interface Config {
18
+ window: Window;
17
19
  targetElements?: TargetElement[];
18
20
  targetAttrs?: TargetAttr[];
19
- onElementInit?: (name: string, obj: any, rawSet: RawSet, targetElement: TargetElement) => void;
20
- onAttrInit?: (name: string, attrValue: string, obj: any, rawSet: RawSet) => void;
21
+ onElementInit?: (name: string, obj: any, rawSet: RawSet, targetElement: TargetElement) => any;
22
+ onAttrInit?: (name: string, attrValue: string, obj: any, rawSet: RawSet) => any;
21
23
  proxyExcludeTyps?: ConstructorType<any>[];
22
24
  proxyExcludeOnBeforeReturnSets?: string[];
23
25
  proxyExcludeOnBeforeReturnGets?: string[];
package/Config.js CHANGED
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/DomRender.js CHANGED
@@ -1,5 +1,8 @@
1
- import { DomRenderProxy } from './DomRenderProxy';
2
- var DomRender = (function () {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomRender = void 0;
4
+ var DomRenderProxy_1 = require("./DomRenderProxy");
5
+ var DomRender = /** @class */ (function () {
3
6
  function DomRender() {
4
7
  }
5
8
  DomRender.run = function (obj, target, config) {
@@ -11,7 +14,10 @@ var DomRender = (function () {
11
14
  robj = obj;
12
15
  return robj;
13
16
  }
14
- var domRender = new DomRenderProxy(obj, target, config);
17
+ if (!config) {
18
+ config = { window: window };
19
+ }
20
+ var domRender = new DomRenderProxy_1.DomRenderProxy(obj, target, config);
15
21
  var dest = new Proxy(obj, domRender);
16
22
  robj = dest;
17
23
  domRender.run(robj);
@@ -19,4 +25,5 @@ var DomRender = (function () {
19
25
  };
20
26
  return DomRender;
21
27
  }());
22
- export { DomRender };
28
+ exports.DomRender = DomRender;
29
+ // export default DomRender;
@@ -2,12 +2,12 @@ import { RawSet } from './RawSet';
2
2
  import { Config } from './Config';
3
3
  export declare class DomRenderProxy<T extends object> implements ProxyHandler<T> {
4
4
  _domRender_origin: T;
5
- private config?;
5
+ private config;
6
6
  _domRender_ref: Map<object, Set<string>>;
7
7
  _rawSets: Map<string, Set<RawSet>>;
8
8
  _domRender_proxy?: T;
9
9
  _targets: Set<Node>;
10
- constructor(_domRender_origin: T, target?: Node, config?: Config | undefined);
10
+ constructor(_domRender_origin: T, target: Node | undefined, config: Config);
11
11
  static unFinal<T = any>(obj: T): T;
12
12
  static final<T = any>(obj: T): T;
13
13
  static isFinal<T = any>(obj: T): boolean;
@@ -23,6 +23,7 @@ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T>
23
23
  addRef(parent: object, path: string): void;
24
24
  addRawSetAndRender(path: string, rawSet: RawSet): void;
25
25
  addRawSet(path: string, rawSet: RawSet): void;
26
- removeRawSet(raws: RawSet): void;
27
- garbageRawSet(): void;
26
+ removeRawSet(...raws: RawSet[]): void;
27
+ private targetGarbageRawSet;
28
+ private garbageRawSet;
28
29
  }
package/DomRenderProxy.js CHANGED
@@ -1,9 +1,12 @@
1
- import { RawSet } from './RawSet';
2
- import { eventManager } from './events/EventManager';
3
- import { ScriptUtils } from './utils/script/ScriptUtils';
4
- import { Shield } from './types/Types';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomRenderProxy = void 0;
4
+ var RawSet_1 = require("./RawSet");
5
+ var EventManager_1 = require("./events/EventManager");
6
+ var ScriptUtils_1 = require("./utils/script/ScriptUtils");
7
+ var Types_1 = require("./types/Types");
5
8
  var excludeGetSetPropertys = ['onBeforeReturnGet', 'onBeforeReturnSet', '__domrender_components', '__render', '_DomRender_isFinal', '_domRender_ref', '_rawSets', '_domRender_proxy', '_targets', '_DomRender_origin', '_DomRender_ref', '_DomRender_proxy'];
6
- var DomRenderProxy = (function () {
9
+ var DomRenderProxy = /** @class */ (function () {
7
10
  function DomRenderProxy(_domRender_origin, target, config) {
8
11
  this._domRender_origin = _domRender_origin;
9
12
  this.config = config;
@@ -15,15 +18,13 @@ var DomRenderProxy = (function () {
15
18
  }
16
19
  }
17
20
  DomRenderProxy.unFinal = function (obj) {
18
- delete obj._DomRender_isFinal;
19
- return obj;
21
+ return Types_1.DomRenderFinalProxy.unFinal(obj);
20
22
  };
21
23
  DomRenderProxy.final = function (obj) {
22
- obj._DomRender_isFinal = true;
23
- return obj;
24
+ return Types_1.DomRenderFinalProxy.final(obj);
24
25
  };
25
26
  DomRenderProxy.isFinal = function (obj) {
26
- return '_DomRender_isFinal' in obj;
27
+ return Types_1.DomRenderFinalProxy.isFinal(obj);
27
28
  };
28
29
  DomRenderProxy.prototype.run = function (objProxy) {
29
30
  var _this = this;
@@ -31,10 +32,14 @@ var DomRenderProxy = (function () {
31
32
  var obj = objProxy._DomRender_origin;
32
33
  if (obj) {
33
34
  Object.keys(obj).forEach(function (it) {
34
- var _a, _b, _c;
35
+ var _a, _b;
36
+ // console.log('key-------->', it)
35
37
  var target = obj[it];
36
- if (target !== undefined && target !== null && typeof target === 'object' && !DomRenderProxy.isFinal(target) && !Object.isFrozen(target) && !(obj instanceof Shield)) {
37
- var filter = (_c = (_b = (_a = _this.config) === null || _a === void 0 ? void 0 : _a.proxyExcludeTyps) === null || _b === void 0 ? void 0 : _b.filter(function (it) { return target instanceof it; })) !== null && _c !== void 0 ? _c : [];
38
+ if (target !== undefined && target !== null && typeof target === 'object' && !DomRenderProxy.isFinal(target) && !Object.isFrozen(target) && !(obj instanceof Types_1.Shield)) {
39
+ // console.log('target-------->', it, target);
40
+ // console.count('target')
41
+ // console.log('target-------->')
42
+ var filter = (_b = (_a = _this.config.proxyExcludeTyps) === null || _a === void 0 ? void 0 : _a.filter(function (it) { return target instanceof it; })) !== null && _b !== void 0 ? _b : [];
38
43
  if (filter.length === 0) {
39
44
  var proxyAfter = _this.proxy(objProxy, target, it);
40
45
  obj[it] = proxyAfter;
@@ -48,23 +53,36 @@ var DomRenderProxy = (function () {
48
53
  };
49
54
  DomRenderProxy.prototype.initRender = function (target) {
50
55
  var _this = this;
51
- var _a, _b;
56
+ var _a, _b, _c, _d, _e, _f, _g;
57
+ var onCreate = (_b = (_a = target).getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, 'dr-on-create');
58
+ var createParam = undefined;
59
+ if (onCreate) {
60
+ createParam = ScriptUtils_1.ScriptUtils.evalReturn(onCreate, this._domRender_proxy);
61
+ }
62
+ (_d = (_c = this._domRender_proxy) === null || _c === void 0 ? void 0 : _c.onCreateRender) === null || _d === void 0 ? void 0 : _d.call(_c, createParam);
63
+ var innerHTML = (_e = target.innerHTML) !== null && _e !== void 0 ? _e : '';
52
64
  this._targets.add(target);
53
- var rawSets = RawSet.checkPointCreates(target, this.config);
54
- eventManager.applyEvent(this._domRender_proxy, eventManager.findAttrElements(target, this.config), this.config);
65
+ var rawSets = RawSet_1.RawSet.checkPointCreates(target, this.config);
66
+ EventManager_1.eventManager.applyEvent(this._domRender_proxy, EventManager_1.eventManager.findAttrElements(target, this.config), this.config);
55
67
  rawSets.forEach(function (it) {
56
- var strings = it.getUsingTriggerVariables(_this.config);
57
- if (strings.size <= 0) {
68
+ var variables = it.getUsingTriggerVariables(_this.config);
69
+ if (variables.size <= 0) {
58
70
  _this.addRawSet('', it);
59
71
  }
60
72
  else {
61
- strings.forEach(function (sit) {
73
+ variables.forEach(function (sit) {
62
74
  _this.addRawSet(sit, it);
63
75
  });
64
76
  }
65
77
  });
66
78
  this.render(this.getRawSets());
67
- (_b = (_a = this._domRender_proxy) === null || _a === void 0 ? void 0 : _a.onInitRender) === null || _b === void 0 ? void 0 : _b.call(_a);
79
+ var render = { target: target };
80
+ var creatorMetaData = {
81
+ creator: this._domRender_proxy,
82
+ rootCreator: this._domRender_proxy,
83
+ innerHTML: innerHTML,
84
+ };
85
+ (_g = (_f = this._domRender_proxy) === null || _f === void 0 ? void 0 : _f.onInitRender) === null || _g === void 0 ? void 0 : _g.call(_f, { render: render, creatorMetaData: creatorMetaData });
68
86
  };
69
87
  DomRenderProxy.prototype.getRawSets = function () {
70
88
  var set = new Set();
@@ -75,20 +93,35 @@ var DomRenderProxy = (function () {
75
93
  };
76
94
  DomRenderProxy.prototype.render = function (raws) {
77
95
  var _this = this;
96
+ var removeRawSets = [];
78
97
  (raws !== null && raws !== void 0 ? raws : this.getRawSets()).forEach(function (it) {
98
+ var _a;
79
99
  it.getUsingTriggerVariables(_this.config).forEach(function (path) { return _this.addRawSet(path, it); });
80
- if (it.point.start.isConnected && it.point.start.isConnected) {
81
- var rawSets = it.render(_this._domRender_proxy, _this.config);
82
- _this.render(rawSets);
100
+ // console.log('------->', it, it.isConnected)
101
+ if (it.isConnected) {
102
+ if ((_a = it.detect) === null || _a === void 0 ? void 0 : _a.action) {
103
+ it.detect.action();
104
+ }
105
+ else {
106
+ var rawSets = it.render(_this._domRender_proxy, _this.config);
107
+ if (rawSets && rawSets.length > 0) {
108
+ _this.render(rawSets);
109
+ }
110
+ }
83
111
  }
84
112
  else {
85
- _this.removeRawSet(it);
113
+ removeRawSets.push(it);
114
+ // this.removeRawSet(it)
86
115
  }
87
116
  });
117
+ if (removeRawSets.length > 0) {
118
+ this.removeRawSet.apply(this, removeRawSets);
119
+ }
88
120
  };
89
121
  DomRenderProxy.prototype.root = function (paths, value, lastDoneExecute) {
90
122
  var _this = this;
91
123
  if (lastDoneExecute === void 0) { lastDoneExecute = true; }
124
+ // console.log('root--->', paths, value, this._domRender_ref, this._domRender_origin);
92
125
  var fullPaths = [];
93
126
  if (this._domRender_ref.size > 0) {
94
127
  this._domRender_ref.forEach(function (it, key) {
@@ -103,13 +136,20 @@ var DomRenderProxy = (function () {
103
136
  }
104
137
  else {
105
138
  var strings = paths.reverse();
106
- var fullPathStr_1 = strings.join('.');
139
+ // const fullPathStr = strings.join('.');
140
+ var fullPathStr_1 = strings.map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('').slice(1);
107
141
  if (lastDoneExecute) {
108
142
  var iterable = this._rawSets.get(fullPathStr_1);
109
- var front = strings.slice(0, strings.length - 1).join('.');
143
+ // array check
144
+ var front = strings.slice(0, strings.length - 1).map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('');
145
+ // front = front.replace(/\.\[/g, '[');
146
+ // const front = strings.slice(0, strings.length - 1).join('.');
147
+ // front = front.replace(/\.\[/g, '[');
110
148
  var last = strings[strings.length - 1];
111
- if (!isNaN(Number(last)) && Array.isArray(ScriptUtils.evalReturn('this.' + front, this._domRender_proxy))) {
112
- var aIterable = this._rawSets.get(front);
149
+ // console.log('root-else-->', fullPathStr, iterable, front, last)
150
+ // if (!isNaN(Number(last)) && Array.isArray(ScriptUtils.evalReturn('this' + front, this._domRender_proxy))) {
151
+ if (last === 'length' && Array.isArray(ScriptUtils_1.ScriptUtils.evalReturn('this' + front, this._domRender_proxy))) {
152
+ var aIterable = this._rawSets.get(front.slice(1));
113
153
  if (aIterable) {
114
154
  this.render(Array.from(aIterable));
115
155
  }
@@ -119,8 +159,8 @@ var DomRenderProxy = (function () {
119
159
  }
120
160
  this._targets.forEach(function (it) {
121
161
  if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
122
- var targets = eventManager.findAttrElements(it, _this.config);
123
- eventManager.changeVar(_this._domRender_proxy, targets, "this." + fullPathStr_1);
162
+ var targets = EventManager_1.eventManager.findAttrElements(it, _this.config);
163
+ EventManager_1.eventManager.changeVar(_this._domRender_proxy, targets, "this.".concat(fullPathStr_1), _this.config);
124
164
  }
125
165
  });
126
166
  }
@@ -129,7 +169,17 @@ var DomRenderProxy = (function () {
129
169
  return fullPaths;
130
170
  };
131
171
  DomRenderProxy.prototype.set = function (target, p, value, receiver) {
132
- var _a, _b, _c, _d;
172
+ var _a, _b, _c;
173
+ if (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) {
174
+ target[p] = value;
175
+ return true;
176
+ }
177
+ // console.log('set proxy-->', target, p, value, this._rawSets, this._domRender_ref);
178
+ // if (typeof p === 'string' && '__render' === p) {
179
+ // (target as any)[p] = value;
180
+ // return true;
181
+ // }
182
+ // console.log('set--?', p, target, value);
133
183
  if (typeof p === 'string') {
134
184
  value = this.proxy(receiver, value, p);
135
185
  }
@@ -138,13 +188,15 @@ var DomRenderProxy = (function () {
138
188
  if (typeof p === 'string') {
139
189
  fullPath = this.root([p], value);
140
190
  }
141
- if (('onBeforeReturnSet' in receiver) && typeof p === 'string' && !((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.proxyExcludeOnBeforeReturnSets) !== null && _b !== void 0 ? _b : []).concat(excludeGetSetPropertys).includes(p)) {
142
- (_d = (_c = receiver) === null || _c === void 0 ? void 0 : _c.onBeforeReturnSet) === null || _d === void 0 ? void 0 : _d.call(_c, p, value, fullPath);
191
+ // console.log('full path:', fullPath);
192
+ if (('onBeforeReturnSet' in receiver) && typeof p === 'string' && !((_a = this.config.proxyExcludeOnBeforeReturnSets) !== null && _a !== void 0 ? _a : []).concat(excludeGetSetPropertys).includes(p)) {
193
+ (_c = (_b = receiver) === null || _b === void 0 ? void 0 : _b.onBeforeReturnSet) === null || _c === void 0 ? void 0 : _c.call(_b, p, value, fullPath);
143
194
  }
144
195
  return true;
145
196
  };
146
197
  DomRenderProxy.prototype.get = function (target, p, receiver) {
147
- var _a, _b, _c, _d;
198
+ var _a, _b, _c;
199
+ // console.log('get-->', target, p, receiver);
148
200
  if (p === '_DomRender_origin') {
149
201
  return this._domRender_origin;
150
202
  }
@@ -155,12 +207,26 @@ var DomRenderProxy = (function () {
155
207
  return this;
156
208
  }
157
209
  else {
210
+ // Date라던지 이런놈들은-_-프록시가 이상하게 동작해서
211
+ // console.log('--->', p, target, target.bind, 'bind' in target)
212
+ // if ((p in target) && ('bind' in target)) {
213
+ // try{
214
+ // return (target as any)[p].bind(target);
215
+ // }catch (e) {
216
+ // console.error(e)
217
+ // }
218
+ // } else {
219
+ // return (target as any)[p]
220
+ // }
221
+ // return (p in target) ? (target as any)[p].bind(target) : (target as any)[p]
222
+ // console.log('-->', p, Object.prototype.toString.call((target as any)[p]), (target as any)[p])
223
+ // return (target as any)[p]
158
224
  var it_1 = target[p];
159
225
  if (it_1 && typeof it_1 === 'object' && ('_DomRender_isProxy' in it_1) && Object.prototype.toString.call(it_1._DomRender_origin) === '[object Date]') {
160
226
  it_1 = it_1._DomRender_origin;
161
227
  }
162
- if (('onBeforeReturnGet' in receiver) && typeof p === 'string' && !((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.proxyExcludeOnBeforeReturnGets) !== null && _b !== void 0 ? _b : []).concat(excludeGetSetPropertys).includes(p)) {
163
- (_d = (_c = receiver) === null || _c === void 0 ? void 0 : _c.onBeforeReturnGet) === null || _d === void 0 ? void 0 : _d.call(_c, p, it_1, this.root([p], it_1, false));
228
+ if (('onBeforeReturnGet' in receiver) && typeof p === 'string' && !((_a = this.config.proxyExcludeOnBeforeReturnGets) !== null && _a !== void 0 ? _a : []).concat(excludeGetSetPropertys).includes(p)) {
229
+ (_c = (_b = receiver) === null || _b === void 0 ? void 0 : _b.onBeforeReturnGet) === null || _c === void 0 ? void 0 : _c.call(_b, p, it_1, this.root([p], it_1, false));
164
230
  }
165
231
  return it_1;
166
232
  }
@@ -169,16 +235,16 @@ var DomRenderProxy = (function () {
169
235
  return p === '_DomRender_isProxy' || p in target;
170
236
  };
171
237
  DomRenderProxy.prototype.proxy = function (parentProxy, obj, p) {
172
- var _a, _b, _c;
173
- var proxyTarget = ((_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.proxyExcludeTyps) === null || _b === void 0 ? void 0 : _b.filter(function (it) { return obj instanceof it; })) !== null && _c !== void 0 ? _c : []).length <= 0;
174
- if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {
238
+ var _a, _b;
239
+ var proxyTarget = ((_b = (_a = this.config.proxyExcludeTyps) === null || _a === void 0 ? void 0 : _a.filter(function (it) { return obj instanceof it; })) !== null && _b !== void 0 ? _b : []).length <= 0;
240
+ if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Types_1.Shield)) {
175
241
  var domRender = new DomRenderProxy(obj, undefined, this.config);
176
242
  domRender.addRef(parentProxy, p);
177
243
  var proxy = new Proxy(obj, domRender);
178
244
  domRender.run(proxy);
179
245
  return proxy;
180
246
  }
181
- if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {
247
+ if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Types_1.Shield)) {
182
248
  var d = obj._DomRender_proxy;
183
249
  d.addRef(this._domRender_proxy, p);
184
250
  return obj;
@@ -200,16 +266,42 @@ var DomRenderProxy = (function () {
200
266
  };
201
267
  DomRenderProxy.prototype.addRawSet = function (path, rawSet) {
202
268
  var _a;
269
+ // console.log('addRawSet-->', path, rawSet)
203
270
  if (!this._rawSets.get(path)) {
204
271
  this._rawSets.set(path, new Set());
205
272
  }
206
273
  (_a = this._rawSets.get(path)) === null || _a === void 0 ? void 0 : _a.add(rawSet);
207
274
  };
208
- DomRenderProxy.prototype.removeRawSet = function (raws) {
275
+ // public removeRawSet(...raws: RawSet[]) {
276
+ // this._rawSets.forEach(it => {
277
+ // raws.forEach(sit => it.delete(sit));
278
+ // })
279
+ // this.garbageRawSet();
280
+ // }
281
+ DomRenderProxy.prototype.removeRawSet = function () {
282
+ var raws = [];
283
+ for (var _i = 0; _i < arguments.length; _i++) {
284
+ raws[_i] = arguments[_i];
285
+ }
209
286
  this._rawSets.forEach(function (it) {
210
- it.delete(raws);
287
+ it.forEach(function (sit) {
288
+ if (!sit.isConnected) {
289
+ it.delete(sit);
290
+ }
291
+ else if (raws.includes(sit)) {
292
+ it.delete(sit);
293
+ }
294
+ });
295
+ });
296
+ this.targetGarbageRawSet();
297
+ };
298
+ DomRenderProxy.prototype.targetGarbageRawSet = function () {
299
+ var _this = this;
300
+ this._targets.forEach(function (it) {
301
+ if (!it.isConnected) {
302
+ _this._targets.delete(it);
303
+ }
211
304
  });
212
- this.garbageRawSet();
213
305
  };
214
306
  DomRenderProxy.prototype.garbageRawSet = function () {
215
307
  var _this = this;
@@ -228,4 +320,4 @@ var DomRenderProxy = (function () {
228
320
  };
229
321
  return DomRenderProxy;
230
322
  }());
231
- export { DomRenderProxy };
323
+ exports.DomRenderProxy = DomRenderProxy;