vasille 2.3.9 → 3.0.2
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.
- package/README.md +57 -155
- package/lib/binding/attribute.js +4 -5
- package/lib/binding/binding.js +4 -5
- package/lib/binding/class.js +2 -4
- package/lib/binding/style.js +12 -4
- package/lib/core/config.js +3 -0
- package/lib/core/core.js +39 -177
- package/lib/core/destroyable.js +1 -36
- package/lib/core/ivalue.js +6 -49
- package/lib/functional/safety.js +7 -0
- package/lib/index.js +7 -8
- package/lib/models/array-model.js +40 -107
- package/lib/models/listener.js +16 -80
- package/lib/models/map-model.js +6 -13
- package/lib/models/object-model.js +6 -6
- package/lib/models/set-model.js +5 -12
- package/lib/node/app.js +8 -27
- package/lib/node/node.js +294 -524
- package/lib/node/watch.js +10 -8
- package/lib/tsconfig-build.tsbuildinfo +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/value/expression.js +16 -41
- package/lib/value/mirror.js +9 -23
- package/lib/value/pointer.js +64 -16
- package/lib/value/reference.js +24 -29
- package/lib/views/array-view.js +5 -6
- package/lib/views/base-view.js +14 -26
- package/lib/views/map-view.js +4 -5
- package/lib/views/repeat-node.js +17 -34
- package/lib/views/set-view.js +7 -5
- package/lib-node/binding/attribute.js +4 -5
- package/lib-node/binding/binding.js +4 -5
- package/lib-node/binding/class.js +2 -4
- package/lib-node/binding/style.js +13 -4
- package/lib-node/core/config.js +6 -0
- package/lib-node/core/core.js +39 -180
- package/lib-node/core/destroyable.js +1 -36
- package/lib-node/core/ivalue.js +7 -51
- package/lib-node/functional/safety.js +12 -0
- package/lib-node/index.js +7 -12
- package/lib-node/models/array-model.js +41 -107
- package/lib-node/models/listener.js +16 -80
- package/lib-node/models/map-model.js +6 -13
- package/lib-node/models/object-model.js +6 -6
- package/lib-node/models/set-model.js +5 -12
- package/lib-node/node/app.js +8 -28
- package/lib-node/node/node.js +294 -529
- package/lib-node/node/watch.js +10 -8
- package/lib-node/tsconfig-build-node.tsbuildinfo +1 -1
- package/lib-node/value/expression.js +16 -41
- package/lib-node/value/mirror.js +9 -23
- package/lib-node/value/pointer.js +66 -17
- package/lib-node/value/reference.js +24 -29
- package/lib-node/views/array-view.js +5 -6
- package/lib-node/views/base-view.js +14 -27
- package/lib-node/views/map-view.js +4 -5
- package/lib-node/views/repeat-node.js +17 -35
- package/lib-node/views/set-view.js +7 -5
- package/package.json +9 -6
- package/types/binding/attribute.d.ts +2 -2
- package/types/binding/binding.d.ts +1 -1
- package/types/binding/style.d.ts +3 -2
- package/types/core/config.d.ts +3 -0
- package/types/core/core.d.ts +18 -93
- package/types/core/destroyable.d.ts +11 -6
- package/types/core/ivalue.d.ts +7 -24
- package/types/functional/options.d.ts +7 -22
- package/types/functional/safety.d.ts +2 -0
- package/types/index.d.ts +8 -10
- package/types/models/array-model.d.ts +6 -55
- package/types/models/listener.d.ts +0 -26
- package/types/models/map-model.d.ts +3 -4
- package/types/models/model.d.ts +2 -9
- package/types/models/set-model.d.ts +1 -2
- package/types/node/app.d.ts +7 -25
- package/types/node/node.d.ts +105 -222
- package/types/node/watch.d.ts +4 -5
- package/types/spec/html.d.ts +231 -231
- package/types/spec/svg.d.ts +166 -166
- package/types/tsconfig-types.tsbuildinfo +1 -1
- package/types/value/expression.d.ts +5 -7
- package/types/value/mirror.d.ts +4 -6
- package/types/value/pointer.d.ts +26 -9
- package/types/value/reference.d.ts +6 -7
- package/types/views/array-view.d.ts +3 -3
- package/types/views/base-view.d.ts +15 -23
- package/types/views/map-view.d.ts +2 -2
- package/types/views/repeat-node.d.ts +9 -23
- package/types/views/set-view.d.ts +3 -2
- package/cdn/es2015.js +0 -2480
- package/flow-typed/vasille.js +0 -2613
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ArrayModel = void 0;
|
|
4
|
+
exports.proxyArrayModel = proxyArrayModel;
|
|
4
5
|
const listener_1 = require("./listener");
|
|
5
6
|
/**
|
|
6
7
|
* Model based on Array class
|
|
@@ -11,25 +12,17 @@ class ArrayModel extends Array {
|
|
|
11
12
|
/**
|
|
12
13
|
* @param data {Array} input data
|
|
13
14
|
*/
|
|
14
|
-
constructor(data
|
|
15
|
+
constructor(data) {
|
|
15
16
|
super();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
super.push(data[i]);
|
|
17
|
+
this.passive = false;
|
|
18
|
+
this.listener = new listener_1.Listener();
|
|
19
|
+
if (data instanceof Array) {
|
|
20
|
+
for (let i = 0; i < data.length; i++) {
|
|
21
|
+
super.push(data[i]);
|
|
22
|
+
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
/* Array members */
|
|
26
|
-
/**
|
|
27
|
-
* Gets the last item of array
|
|
28
|
-
* @return {*} the last item of array
|
|
29
|
-
*/
|
|
30
|
-
get last() {
|
|
31
|
-
return this.length ? this[this.length - 1] : null;
|
|
32
|
-
}
|
|
33
26
|
/**
|
|
34
27
|
* Calls Array.fill and notify about changes
|
|
35
28
|
* @param value {*} value to fill with
|
|
@@ -37,6 +30,7 @@ class ArrayModel extends Array {
|
|
|
37
30
|
* @param end {?number} end index
|
|
38
31
|
*/
|
|
39
32
|
fill(value, start, end) {
|
|
33
|
+
this.passive = true;
|
|
40
34
|
if (!start) {
|
|
41
35
|
start = 0;
|
|
42
36
|
}
|
|
@@ -48,6 +42,7 @@ class ArrayModel extends Array {
|
|
|
48
42
|
this[i] = value;
|
|
49
43
|
this.listener.emitAdded(value, value);
|
|
50
44
|
}
|
|
45
|
+
this.passive = false;
|
|
51
46
|
return this;
|
|
52
47
|
}
|
|
53
48
|
/**
|
|
@@ -55,10 +50,12 @@ class ArrayModel extends Array {
|
|
|
55
50
|
* @return {*} removed value
|
|
56
51
|
*/
|
|
57
52
|
pop() {
|
|
53
|
+
this.passive = true;
|
|
58
54
|
const v = super.pop();
|
|
59
55
|
if (v !== undefined) {
|
|
60
56
|
this.listener.emitRemoved(v, v);
|
|
61
57
|
}
|
|
58
|
+
this.passive = false;
|
|
62
59
|
return v;
|
|
63
60
|
}
|
|
64
61
|
/**
|
|
@@ -67,10 +64,12 @@ class ArrayModel extends Array {
|
|
|
67
64
|
* @return {number} new length of array
|
|
68
65
|
*/
|
|
69
66
|
push(...items) {
|
|
67
|
+
this.passive = true;
|
|
70
68
|
items.forEach(item => {
|
|
71
69
|
this.listener.emitAdded(item, item);
|
|
72
70
|
super.push(item);
|
|
73
71
|
});
|
|
72
|
+
this.passive = false;
|
|
74
73
|
return this.length;
|
|
75
74
|
}
|
|
76
75
|
/**
|
|
@@ -78,10 +77,12 @@ class ArrayModel extends Array {
|
|
|
78
77
|
* @return {*} the shifted value
|
|
79
78
|
*/
|
|
80
79
|
shift() {
|
|
80
|
+
this.passive = true;
|
|
81
81
|
const v = super.shift();
|
|
82
82
|
if (v !== undefined) {
|
|
83
83
|
this.listener.emitRemoved(v, v);
|
|
84
84
|
}
|
|
85
|
+
this.passive = false;
|
|
85
86
|
return v;
|
|
86
87
|
}
|
|
87
88
|
/**
|
|
@@ -92,8 +93,9 @@ class ArrayModel extends Array {
|
|
|
92
93
|
* @return {ArrayModel} a pointer to this
|
|
93
94
|
*/
|
|
94
95
|
splice(start, deleteCount, ...items) {
|
|
96
|
+
this.passive = true;
|
|
95
97
|
start = Math.min(start, this.length);
|
|
96
|
-
deleteCount = deleteCount
|
|
98
|
+
deleteCount = typeof deleteCount === "number" ? deleteCount : this.length - start;
|
|
97
99
|
const before = this[start + deleteCount];
|
|
98
100
|
for (let i = 0; i < deleteCount; i++) {
|
|
99
101
|
const index = start + deleteCount - i - 1;
|
|
@@ -104,6 +106,7 @@ class ArrayModel extends Array {
|
|
|
104
106
|
for (let i = 0; i < items.length; i++) {
|
|
105
107
|
this.listener.emitAdded(before, items[i]);
|
|
106
108
|
}
|
|
109
|
+
this.passive = false;
|
|
107
110
|
return new ArrayModel(super.splice(start, deleteCount, ...items));
|
|
108
111
|
}
|
|
109
112
|
/**
|
|
@@ -112,107 +115,38 @@ class ArrayModel extends Array {
|
|
|
112
115
|
* @return {number} the length after prepend
|
|
113
116
|
*/
|
|
114
117
|
unshift(...items) {
|
|
118
|
+
this.passive = true;
|
|
115
119
|
for (let i = 0; i < items.length; i++) {
|
|
116
120
|
this.listener.emitAdded(this[i], items[i]);
|
|
117
121
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
* Inserts a value to the end of array
|
|
122
|
-
* @param v {*} value to insert
|
|
123
|
-
*/
|
|
124
|
-
append(v) {
|
|
125
|
-
this.listener.emitAdded(null, v);
|
|
126
|
-
super.push(v);
|
|
127
|
-
return this;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Clears array
|
|
131
|
-
* @return {this} a pointer to this
|
|
132
|
-
*/
|
|
133
|
-
clear() {
|
|
134
|
-
this.forEach(v => {
|
|
135
|
-
this.listener.emitRemoved(v, v);
|
|
136
|
-
});
|
|
137
|
-
super.splice(0);
|
|
138
|
-
return this;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Inserts a value to position `index`
|
|
142
|
-
* @param index {number} index to insert value
|
|
143
|
-
* @param v {*} value to insert
|
|
144
|
-
* @return {this} a pointer to this
|
|
145
|
-
*/
|
|
146
|
-
insert(index, v) {
|
|
147
|
-
this.listener.emitAdded(this[index], v);
|
|
148
|
-
super.splice(index, 0, v);
|
|
149
|
-
return this;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Inserts a value to the beginning of array
|
|
153
|
-
* @param v {*} value to insert
|
|
154
|
-
* @return {this} a pointer to this
|
|
155
|
-
*/
|
|
156
|
-
prepend(v) {
|
|
157
|
-
this.listener.emitAdded(this[0], v);
|
|
158
|
-
super.unshift(v);
|
|
159
|
-
return this;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Removes a value from an index
|
|
163
|
-
* @param index {number} index of value to remove
|
|
164
|
-
* @return {this} a pointer to this
|
|
165
|
-
*/
|
|
166
|
-
removeAt(index) {
|
|
167
|
-
if (index > 0 && index < this.length) {
|
|
168
|
-
this.listener.emitRemoved(this[index], this[index]);
|
|
169
|
-
super.splice(index, 1);
|
|
170
|
-
}
|
|
171
|
-
return this;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Removes the first value of array
|
|
175
|
-
* @return {this} a pointer to this
|
|
176
|
-
*/
|
|
177
|
-
removeFirst() {
|
|
178
|
-
if (this.length) {
|
|
179
|
-
this.listener.emitRemoved(this[0], this[0]);
|
|
180
|
-
super.shift();
|
|
181
|
-
}
|
|
182
|
-
return this;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Removes the ast value of array
|
|
186
|
-
* @return {this} a pointer to this
|
|
187
|
-
*/
|
|
188
|
-
removeLast() {
|
|
189
|
-
const last = this.last;
|
|
190
|
-
if (last != null) {
|
|
191
|
-
this.listener.emitRemoved(this[this.length - 1], last);
|
|
192
|
-
super.pop();
|
|
193
|
-
}
|
|
194
|
-
return this;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Remove the first occurrence of value
|
|
198
|
-
* @param v {*} value to remove
|
|
199
|
-
* @return {this}
|
|
200
|
-
*/
|
|
201
|
-
removeOne(v) {
|
|
202
|
-
this.removeAt(this.indexOf(v));
|
|
203
|
-
return this;
|
|
122
|
+
const r = super.unshift(...items);
|
|
123
|
+
this.passive = false;
|
|
124
|
+
return r;
|
|
204
125
|
}
|
|
205
126
|
replace(at, with_) {
|
|
127
|
+
this.passive = true;
|
|
206
128
|
this.listener.emitAdded(this[at], with_);
|
|
207
129
|
this.listener.emitRemoved(this[at], this[at]);
|
|
208
130
|
this[at] = with_;
|
|
131
|
+
this.passive = false;
|
|
209
132
|
return this;
|
|
210
133
|
}
|
|
211
|
-
|
|
212
|
-
this.
|
|
213
|
-
}
|
|
214
|
-
disableReactivity() {
|
|
215
|
-
this.listener.disableReactivity();
|
|
134
|
+
destroy() {
|
|
135
|
+
this.splice(0);
|
|
216
136
|
}
|
|
217
137
|
}
|
|
218
138
|
exports.ArrayModel = ArrayModel;
|
|
139
|
+
function proxyArrayModel(arr) {
|
|
140
|
+
return new Proxy(arr, {
|
|
141
|
+
set(target, p, newValue, receiver) {
|
|
142
|
+
if (!arr.passive && typeof p === "string") {
|
|
143
|
+
const index = parseInt(p);
|
|
144
|
+
if (Number.isFinite(index)) {
|
|
145
|
+
arr.replace(index, newValue);
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return Reflect.set(target, p, newValue, receiver);
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
@@ -7,41 +7,16 @@ exports.Listener = void 0;
|
|
|
7
7
|
*/
|
|
8
8
|
class Listener {
|
|
9
9
|
constructor() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
frozen: {
|
|
22
|
-
value: false,
|
|
23
|
-
writable: true,
|
|
24
|
-
configurable: false
|
|
25
|
-
},
|
|
26
|
-
queue: {
|
|
27
|
-
value: [],
|
|
28
|
-
writable: false,
|
|
29
|
-
configurable: false
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Exclude the repeated operation in queue
|
|
35
|
-
* @private
|
|
36
|
-
*/
|
|
37
|
-
excludeRepeat(index) {
|
|
38
|
-
this.queue.forEach((item, i) => {
|
|
39
|
-
if (item.index === index) {
|
|
40
|
-
this.queue.splice(i, 1);
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
return false;
|
|
10
|
+
/**
|
|
11
|
+
* Functions to run on adding new items
|
|
12
|
+
* @type Set
|
|
13
|
+
*/
|
|
14
|
+
this.onAdded = new Set();
|
|
15
|
+
/**
|
|
16
|
+
* Functions to run on item removing
|
|
17
|
+
* @type Set
|
|
18
|
+
*/
|
|
19
|
+
this.onRemoved = new Set();
|
|
45
20
|
}
|
|
46
21
|
/**
|
|
47
22
|
* Emits added event to listeners
|
|
@@ -49,16 +24,9 @@ class Listener {
|
|
|
49
24
|
* @param value {*} value of added item
|
|
50
25
|
*/
|
|
51
26
|
emitAdded(index, value) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.onAdded.forEach(handler => {
|
|
59
|
-
handler(index, value);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
27
|
+
this.onAdded.forEach(handler => {
|
|
28
|
+
handler(index, value);
|
|
29
|
+
});
|
|
62
30
|
}
|
|
63
31
|
/**
|
|
64
32
|
* Emits removed event to listeners
|
|
@@ -66,16 +34,9 @@ class Listener {
|
|
|
66
34
|
* @param value {*} value of removed item
|
|
67
35
|
*/
|
|
68
36
|
emitRemoved(index, value) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this.onRemoved.forEach(handler => {
|
|
76
|
-
handler(index, value);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
37
|
+
this.onRemoved.forEach(handler => {
|
|
38
|
+
handler(index, value);
|
|
39
|
+
});
|
|
79
40
|
}
|
|
80
41
|
/**
|
|
81
42
|
* Adds a handler to added event
|
|
@@ -105,30 +66,5 @@ class Listener {
|
|
|
105
66
|
offRemove(handler) {
|
|
106
67
|
this.onRemoved.delete(handler);
|
|
107
68
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Run all queued operation and enable reactivity
|
|
110
|
-
*/
|
|
111
|
-
enableReactivity() {
|
|
112
|
-
this.queue.forEach(item => {
|
|
113
|
-
if (item.sign) {
|
|
114
|
-
this.onAdded.forEach(handler => {
|
|
115
|
-
handler(item.index, item.value);
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
this.onRemoved.forEach(handler => {
|
|
120
|
-
handler(item.index, item.value);
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
this.queue.splice(0);
|
|
125
|
-
this.frozen = false;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Disable the reactivity and enable the queue
|
|
129
|
-
*/
|
|
130
|
-
disableReactivity() {
|
|
131
|
-
this.frozen = true;
|
|
132
|
-
}
|
|
133
69
|
}
|
|
134
70
|
exports.Listener = Listener;
|
|
@@ -13,19 +13,15 @@ class MapModel extends Map {
|
|
|
13
13
|
* Constructs a map model
|
|
14
14
|
* @param map {[*, *][]} input data
|
|
15
15
|
*/
|
|
16
|
-
constructor(map
|
|
16
|
+
constructor(map) {
|
|
17
17
|
super();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
writable: false,
|
|
21
|
-
configurable: false
|
|
22
|
-
});
|
|
23
|
-
map.forEach(([key, value]) => {
|
|
18
|
+
this.listener = new listener_1.Listener();
|
|
19
|
+
map === null || map === void 0 ? void 0 : map.forEach(([key, value]) => {
|
|
24
20
|
super.set(key, value);
|
|
25
21
|
});
|
|
26
22
|
}
|
|
27
23
|
/**
|
|
28
|
-
* Calls Map.clear and notify
|
|
24
|
+
* Calls Map.clear and notify about changes
|
|
29
25
|
*/
|
|
30
26
|
clear() {
|
|
31
27
|
this.forEach((value, key) => {
|
|
@@ -60,11 +56,8 @@ class MapModel extends Map {
|
|
|
60
56
|
this.listener.emitAdded(key, value);
|
|
61
57
|
return this;
|
|
62
58
|
}
|
|
63
|
-
|
|
64
|
-
this.
|
|
65
|
-
}
|
|
66
|
-
disableReactivity() {
|
|
67
|
-
this.listener.disableReactivity();
|
|
59
|
+
destroy() {
|
|
60
|
+
this.clear();
|
|
68
61
|
}
|
|
69
62
|
}
|
|
70
63
|
exports.MapModel = MapModel;
|
|
@@ -14,17 +14,17 @@ class ObjectModel extends Object {
|
|
|
14
14
|
constructor(obj = {}) {
|
|
15
15
|
super();
|
|
16
16
|
this.container = Object.create(null);
|
|
17
|
-
Object.defineProperty(this,
|
|
18
|
-
value: new listener_1.Listener,
|
|
17
|
+
Object.defineProperty(this, "listener", {
|
|
18
|
+
value: new listener_1.Listener(),
|
|
19
19
|
writable: false,
|
|
20
|
-
configurable: false
|
|
20
|
+
configurable: false,
|
|
21
21
|
});
|
|
22
22
|
for (const i in obj) {
|
|
23
23
|
Object.defineProperty(this.container, i, {
|
|
24
24
|
value: obj[i],
|
|
25
25
|
configurable: true,
|
|
26
26
|
writable: true,
|
|
27
|
-
enumerable: true
|
|
27
|
+
enumerable: true,
|
|
28
28
|
});
|
|
29
29
|
this.listener.emitAdded(i, obj[i]);
|
|
30
30
|
}
|
|
@@ -44,7 +44,7 @@ class ObjectModel extends Object {
|
|
|
44
44
|
* @return {ObjectModel} a pointer to this
|
|
45
45
|
*/
|
|
46
46
|
set(key, v) {
|
|
47
|
-
if (
|
|
47
|
+
if (key in this.container) {
|
|
48
48
|
this.listener.emitRemoved(key, this.container[key]);
|
|
49
49
|
this.container[key] = v;
|
|
50
50
|
}
|
|
@@ -53,7 +53,7 @@ class ObjectModel extends Object {
|
|
|
53
53
|
value: v,
|
|
54
54
|
configurable: true,
|
|
55
55
|
writable: true,
|
|
56
|
-
enumerable: true
|
|
56
|
+
enumerable: true,
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
this.listener.emitAdded(key, this.container[key]);
|
|
@@ -13,14 +13,10 @@ class SetModel extends Set {
|
|
|
13
13
|
* Constructs a set model based on a set
|
|
14
14
|
* @param set {Set} input data
|
|
15
15
|
*/
|
|
16
|
-
constructor(set
|
|
16
|
+
constructor(set) {
|
|
17
17
|
super();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
writable: false,
|
|
21
|
-
configurable: false
|
|
22
|
-
});
|
|
23
|
-
set.forEach(item => {
|
|
18
|
+
this.listener = new listener_1.Listener();
|
|
19
|
+
set === null || set === void 0 ? void 0 : set.forEach(item => {
|
|
24
20
|
super.add(item);
|
|
25
21
|
});
|
|
26
22
|
}
|
|
@@ -56,11 +52,8 @@ class SetModel extends Set {
|
|
|
56
52
|
}
|
|
57
53
|
return super.delete(value);
|
|
58
54
|
}
|
|
59
|
-
|
|
60
|
-
this.
|
|
61
|
-
}
|
|
62
|
-
disableReactivity() {
|
|
63
|
-
this.listener.disableReactivity();
|
|
55
|
+
destroy() {
|
|
56
|
+
this.clear();
|
|
64
57
|
}
|
|
65
58
|
}
|
|
66
59
|
exports.SetModel = SetModel;
|
package/lib-node/node/app.js
CHANGED
|
@@ -1,29 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Portal = exports.App =
|
|
3
|
+
exports.Portal = exports.App = void 0;
|
|
4
4
|
const node_1 = require("./node");
|
|
5
|
-
/**
|
|
6
|
-
* Application Node
|
|
7
|
-
* @class AppNode
|
|
8
|
-
* @extends INode
|
|
9
|
-
*/
|
|
10
|
-
class AppNode extends node_1.INode {
|
|
11
|
-
/**
|
|
12
|
-
* @param input
|
|
13
|
-
*/
|
|
14
|
-
constructor(input) {
|
|
15
|
-
super(input);
|
|
16
|
-
this.debugUi = input.debugUi || false;
|
|
17
|
-
this.$seal();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.AppNode = AppNode;
|
|
21
5
|
/**
|
|
22
6
|
* Represents a Vasille.js application
|
|
23
7
|
* @class App
|
|
24
8
|
* @extends AppNode
|
|
25
9
|
*/
|
|
26
|
-
class App extends
|
|
10
|
+
class App extends node_1.Root {
|
|
27
11
|
/**
|
|
28
12
|
* Constructs an app node
|
|
29
13
|
* @param node {Element} The root of application
|
|
@@ -31,24 +15,20 @@ class App extends AppNode {
|
|
|
31
15
|
*/
|
|
32
16
|
constructor(node, input) {
|
|
33
17
|
super(input);
|
|
34
|
-
this
|
|
35
|
-
this.preinit(this, this);
|
|
36
|
-
this.init();
|
|
37
|
-
this.$seal();
|
|
18
|
+
this.node = node;
|
|
38
19
|
}
|
|
39
20
|
appendNode(node) {
|
|
40
|
-
this
|
|
21
|
+
this.node.appendChild(node);
|
|
41
22
|
}
|
|
42
23
|
}
|
|
43
24
|
exports.App = App;
|
|
44
|
-
class Portal extends
|
|
25
|
+
class Portal extends node_1.Fragment {
|
|
45
26
|
constructor(input) {
|
|
46
|
-
super(input);
|
|
47
|
-
this
|
|
48
|
-
this.$seal();
|
|
27
|
+
super(input, ":portal");
|
|
28
|
+
this.node = input.node;
|
|
49
29
|
}
|
|
50
30
|
appendNode(node) {
|
|
51
|
-
this
|
|
31
|
+
this.node.appendChild(node);
|
|
52
32
|
}
|
|
53
33
|
}
|
|
54
34
|
exports.Portal = Portal;
|