dom-render 1.0.66 → 1.0.70

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.
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;