vasille 1.2.8 → 2.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/.gitlab-ci.yml +20 -0
- package/LICENSE.md +21 -0
- package/README.md +160 -119
- package/cdn/es2015.js +3221 -0
- package/cdn/es5.js +3673 -0
- package/flow-typed/vasille.js +837 -0
- package/lib/binding/attribute.js +32 -0
- package/lib/binding/binding.js +39 -0
- package/lib/binding/class.js +51 -0
- package/lib/binding/style.js +29 -0
- package/lib/core/core.js +178 -0
- package/lib/core/destroyable.js +45 -0
- package/lib/core/errors.js +16 -0
- package/lib/core/executor.js +154 -0
- package/lib/core/ivalue.js +56 -0
- package/lib/core/signal.js +50 -0
- package/lib/core/slot.js +47 -0
- package/lib/index.js +27 -22
- package/lib/models/array-model.js +208 -0
- package/lib/models/listener.js +130 -0
- package/lib/models/map-model.js +66 -0
- package/lib/models/model.js +1 -0
- package/lib/models/object-model.js +78 -0
- package/lib/models/set-model.js +62 -0
- package/lib/node/app.js +38 -0
- package/lib/node/interceptor.js +83 -0
- package/lib/node/node.js +1202 -0
- package/lib/node/watch.js +27 -0
- package/lib/value/expression.js +83 -0
- package/lib/value/mirror.js +58 -0
- package/lib/value/pointer.js +26 -0
- package/lib/value/reference.js +55 -0
- package/lib/views/array-view.js +23 -0
- package/lib/views/base-view.js +49 -0
- package/lib/views/map-view.js +20 -0
- package/lib/views/object-view.js +20 -0
- package/lib/views/repeat-node.js +106 -0
- package/lib/views/repeater.js +63 -0
- package/lib/views/set-view.js +23 -0
- package/package.json +27 -19
- package/types/binding/attribute.d.ts +23 -0
- package/types/binding/binding.d.ts +30 -0
- package/types/binding/class.d.ts +23 -0
- package/types/binding/style.d.ts +23 -0
- package/types/core/core.d.ts +140 -0
- package/types/core/destroyable.d.ts +15 -0
- package/types/core/errors.d.ts +4 -0
- package/types/core/executor.d.ts +87 -0
- package/types/core/ivalue.d.ts +45 -0
- package/types/core/signal.d.ts +35 -0
- package/types/core/slot.d.ts +45 -0
- package/types/index.d.ts +27 -21
- package/types/models/array-model.d.ts +103 -0
- package/types/models/listener.d.ts +74 -0
- package/types/models/map-model.d.ts +35 -0
- package/types/models/model.d.ts +19 -0
- package/types/models/object-model.d.ts +36 -0
- package/types/models/set-model.d.ts +34 -0
- package/types/node/app.d.ts +37 -0
- package/types/node/interceptor.d.ts +50 -0
- package/types/node/node.d.ts +741 -0
- package/types/node/watch.d.ts +23 -0
- package/types/value/expression.d.ts +60 -0
- package/types/value/mirror.d.ts +35 -0
- package/types/value/pointer.d.ts +19 -0
- package/types/value/reference.d.ts +30 -0
- package/types/views/array-view.d.ts +13 -0
- package/types/views/base-view.d.ts +43 -0
- package/types/views/map-view.d.ts +11 -0
- package/types/views/object-view.d.ts +11 -0
- package/types/views/repeat-node.d.ts +35 -0
- package/types/views/repeater.d.ts +38 -0
- package/types/views/set-view.d.ts +11 -0
- package/CHANGELOG.md +0 -23
- package/img/favicon.svg +0 -441
- package/img/getLocus.svg +0 -18
- package/img/logo.png +0 -0
- package/img/logo.svg +0 -550
- package/img/scores-o-log.png +0 -0
- package/img/scores-o.png +0 -0
- package/img/scores-wo-log.png +0 -0
- package/img/scores-wo.png +0 -0
- package/img/x1-x32.png +0 -0
- package/lib/attribute.js +0 -71
- package/lib/attribute.js.map +0 -1
- package/lib/bind.js +0 -286
- package/lib/bind.js.map +0 -1
- package/lib/class.js +0 -97
- package/lib/class.js.map +0 -1
- package/lib/executor.js +0 -167
- package/lib/executor.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/interfaces/core.js +0 -247
- package/lib/interfaces/core.js.map +0 -1
- package/lib/interfaces/destroyable.js +0 -39
- package/lib/interfaces/destroyable.js.map +0 -1
- package/lib/interfaces/errors.js +0 -49
- package/lib/interfaces/errors.js.map +0 -1
- package/lib/interfaces/ibind.js +0 -31
- package/lib/interfaces/ibind.js.map +0 -1
- package/lib/interfaces/idefinition.js +0 -64
- package/lib/interfaces/idefinition.js.map +0 -1
- package/lib/interfaces/ivalue.js +0 -60
- package/lib/interfaces/ivalue.js.map +0 -1
- package/lib/models.js +0 -579
- package/lib/models.js.map +0 -1
- package/lib/node.js +0 -2155
- package/lib/node.js.map +0 -1
- package/lib/property.js +0 -38
- package/lib/property.js.map +0 -1
- package/lib/style.js +0 -66
- package/lib/style.js.map +0 -1
- package/lib/value.js +0 -203
- package/lib/value.js.map +0 -1
- package/lib/views.js +0 -688
- package/lib/views.js.map +0 -1
- package/src/attribute.js +0 -70
- package/src/bind.js +0 -285
- package/src/class.js +0 -96
- package/src/executor.js +0 -165
- package/src/index.js +0 -20
- package/src/interfaces/core.js +0 -248
- package/src/interfaces/destroyable.js +0 -37
- package/src/interfaces/errors.js +0 -47
- package/src/interfaces/ibind.js +0 -29
- package/src/interfaces/idefinition.js +0 -62
- package/src/interfaces/ivalue.js +0 -58
- package/src/models.js +0 -577
- package/src/node.js +0 -2162
- package/src/property.js +0 -36
- package/src/style.js +0 -65
- package/src/value.js +0 -201
- package/src/views.js +0 -686
- package/types/attribute.d.ts +0 -18
- package/types/bind.d.ts +0 -72
- package/types/class.d.ts +0 -19
- package/types/data.d.ts +0 -11
- package/types/event.d.ts +0 -10
- package/types/executor.d.ts +0 -57
- package/types/interfaces/core.d.ts +0 -129
- package/types/interfaces/destroyable.d.ts +0 -11
- package/types/interfaces/errors.d.ts +0 -24
- package/types/interfaces/ibind.d.ts +0 -19
- package/types/interfaces/idefinition.d.ts +0 -29
- package/types/interfaces/ivalue.d.ts +0 -40
- package/types/models.d.ts +0 -179
- package/types/node.d.ts +0 -906
- package/types/property.d.ts +0 -9
- package/types/style.d.ts +0 -28
- package/types/value.d.ts +0 -43
- package/types/views.d.ts +0 -135
package/lib/views.js
DELETED
|
@@ -1,688 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
import { VasilleNode } from "./interfaces/core";
|
|
3
|
-
import { IValue } from "./interfaces/ivalue.js";
|
|
4
|
-
import { ArrayModel, MapModel, ObjectModel, SetModel } from "./models.js";
|
|
5
|
-
import { App, INode, BaseNodePrivate, Extension, RepeatNodeItem } from "./node.js";
|
|
6
|
-
import { Reference } from "./value.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class RepeatNodePrivate extends BaseNodePrivate {
|
|
11
|
-
/**
|
|
12
|
-
* Children node hash
|
|
13
|
-
* @type {Map<*, Extension>}
|
|
14
|
-
*/
|
|
15
|
-
nodes = new Map();
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Call-back function to create a children pack
|
|
19
|
-
* @type {function(RepeatNodeItem, ?*) : void}
|
|
20
|
-
*/
|
|
21
|
-
cb;
|
|
22
|
-
|
|
23
|
-
constructor () {
|
|
24
|
-
super ();
|
|
25
|
-
this.seal();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Repeat node repeats its children
|
|
31
|
-
*/
|
|
32
|
-
export class RepeatNode extends Extension {
|
|
33
|
-
|
|
34
|
-
constructor ($) {
|
|
35
|
-
super($ || new RepeatNodePrivate);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Sets call-back function
|
|
40
|
-
* @param cb {function(RepeatNodeItem, ?*) : void}
|
|
41
|
-
*/
|
|
42
|
-
setCallback (cb) {
|
|
43
|
-
(this.$).cb = cb;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Initialize the shadow node
|
|
48
|
-
* @param app {App} App node
|
|
49
|
-
* @param rt {INode} Root node
|
|
50
|
-
* @param ts {INode} This node
|
|
51
|
-
* @param before {VasilleNode} Node to paste content before it
|
|
52
|
-
*/
|
|
53
|
-
$$preinitShadow (app, rt, ts, before) {
|
|
54
|
-
let $ = this.$;
|
|
55
|
-
|
|
56
|
-
super.$$preinitShadow(app, rt, ts, before);
|
|
57
|
-
$.encapsulate($.el);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Create a children pack
|
|
62
|
-
* @param id {*} id of child pack
|
|
63
|
-
* @param item {IValue<*>} value for children pack
|
|
64
|
-
* @param before {VasilleNode} Node to insert before it
|
|
65
|
-
*/
|
|
66
|
-
createChild (id, item, before) {
|
|
67
|
-
let current = this.$.nodes.get(id);
|
|
68
|
-
let node = new RepeatNodeItem(id);
|
|
69
|
-
let $ = node.$;
|
|
70
|
-
|
|
71
|
-
this.destroyChild(id, item);
|
|
72
|
-
|
|
73
|
-
$.parent = this;
|
|
74
|
-
if (current) {
|
|
75
|
-
$.next = current.$.next;
|
|
76
|
-
$.prev = current.$.prev;
|
|
77
|
-
if ($.next) {
|
|
78
|
-
$.next.$.prev = node;
|
|
79
|
-
}
|
|
80
|
-
if ($.prev) {
|
|
81
|
-
$.prev.$.next = node;
|
|
82
|
-
}
|
|
83
|
-
this.$children.splice(this.$children.indexOf(current), 1, node);
|
|
84
|
-
}
|
|
85
|
-
else if (before) {
|
|
86
|
-
$.next = before;
|
|
87
|
-
$.prev = before.$.prev;
|
|
88
|
-
before.$.prev = node;
|
|
89
|
-
if ($.prev) {
|
|
90
|
-
$.prev.$.next = node;
|
|
91
|
-
}
|
|
92
|
-
this.$children.splice(this.$children.indexOf(before) - 1, 0, node);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
let lastChild = this.$children[this.$children.length - 1];
|
|
96
|
-
|
|
97
|
-
if (lastChild) {
|
|
98
|
-
lastChild.$.next = node;
|
|
99
|
-
}
|
|
100
|
-
$.prev = lastChild;
|
|
101
|
-
this.$children.push(node);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
node.$$preinitShadow(this.$.app, this.$.rt, this, before || (
|
|
105
|
-
current ? current.$.next : null
|
|
106
|
-
));
|
|
107
|
-
|
|
108
|
-
node.$init();
|
|
109
|
-
this.$.app.$run.callCallback(() => {
|
|
110
|
-
this.$.cb(node, item.$);
|
|
111
|
-
node.$ready();
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
this.$.nodes.set(id, node);
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Destroy a old child
|
|
119
|
-
* @param id {*} id of children pack
|
|
120
|
-
* @param item {IValue<*>} value of children pack
|
|
121
|
-
*/
|
|
122
|
-
destroyChild (id, item) {
|
|
123
|
-
let child = this.$.nodes.get(id);
|
|
124
|
-
|
|
125
|
-
if (child) {
|
|
126
|
-
let $ = child.$;
|
|
127
|
-
|
|
128
|
-
if ($.prev) {
|
|
129
|
-
$.prev.$.next = $.next;
|
|
130
|
-
}
|
|
131
|
-
if ($.next) {
|
|
132
|
-
$.next.$.prev = $.prev;
|
|
133
|
-
}
|
|
134
|
-
child.$destroy();
|
|
135
|
-
this.$.nodes.delete(id);
|
|
136
|
-
this.$children.splice(this.$children.indexOf(child), 1);
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Private part of repeater
|
|
143
|
-
*/
|
|
144
|
-
export class RepeaterPrivate extends RepeatNodePrivate {
|
|
145
|
-
/**
|
|
146
|
-
* Handler to catch count updates
|
|
147
|
-
* @type {Function}
|
|
148
|
-
*/
|
|
149
|
-
updateHandler;
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Current count of child nodes
|
|
153
|
-
* @type {number}
|
|
154
|
-
*/
|
|
155
|
-
currentCount = 0;
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Order number is used like children pack value
|
|
159
|
-
* @type {Array<IValue<number>>}
|
|
160
|
-
*/
|
|
161
|
-
orderNumber = [];
|
|
162
|
-
|
|
163
|
-
constructor () {
|
|
164
|
-
super ();
|
|
165
|
-
this.seal();
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* The simplest repeat $node interpretation, repeat children pack a several times
|
|
171
|
-
*/
|
|
172
|
-
export class Repeater extends RepeatNode {
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* The count of children
|
|
176
|
-
* @type {IValue<number>}
|
|
177
|
-
*/
|
|
178
|
-
count = new Reference(0);
|
|
179
|
-
|
|
180
|
-
constructor ($) {
|
|
181
|
-
super($ || new RepeaterPrivate);
|
|
182
|
-
this.seal();
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Changes the children count
|
|
187
|
-
* @param number {number} The new children count
|
|
188
|
-
*/
|
|
189
|
-
changeCount (number) {
|
|
190
|
-
let $ = this.$;
|
|
191
|
-
|
|
192
|
-
if (number > $.currentCount) {
|
|
193
|
-
for (let i = $.currentCount; i < number; i++) {
|
|
194
|
-
let item = new Reference(i);
|
|
195
|
-
this.createChild(i, item);
|
|
196
|
-
$.orderNumber.push(item);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
for (let i = $.currentCount - 1; i >= number; i--) {
|
|
201
|
-
this.destroyChild(i, $.orderNumber[i]);
|
|
202
|
-
}
|
|
203
|
-
$.orderNumber.splice(number);
|
|
204
|
-
}
|
|
205
|
-
$.currentCount = number;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Handles created event
|
|
212
|
-
*/
|
|
213
|
-
$created () {
|
|
214
|
-
let $ = this.$;
|
|
215
|
-
|
|
216
|
-
super.$created();
|
|
217
|
-
|
|
218
|
-
$.updateHandler = (value) => {
|
|
219
|
-
this.changeCount(value);
|
|
220
|
-
};
|
|
221
|
-
this.count.on($.updateHandler);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Handles ready event
|
|
226
|
-
*/
|
|
227
|
-
$ready () {
|
|
228
|
-
this.changeCount(this.count.$);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Handles destroy event
|
|
233
|
-
*/
|
|
234
|
-
$destroy () {
|
|
235
|
-
let $ = this.$;
|
|
236
|
-
|
|
237
|
-
super.$destroy();
|
|
238
|
-
this.count.off($.updateHandler);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Private part of BaseView
|
|
244
|
-
*/
|
|
245
|
-
export class BaseViewPrivate extends RepeatNodePrivate {
|
|
246
|
-
/**
|
|
247
|
-
* Handler to catch values addition
|
|
248
|
-
* @type {Function}
|
|
249
|
-
*/
|
|
250
|
-
addHandler;
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Handler to catch values removes
|
|
254
|
-
* @type {Function}
|
|
255
|
-
*/
|
|
256
|
-
removeHandler;
|
|
257
|
-
|
|
258
|
-
constructor () {
|
|
259
|
-
super ();
|
|
260
|
-
this.seal();
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* Base class of default views
|
|
266
|
-
*/
|
|
267
|
-
export class BaseView extends RepeatNode {
|
|
268
|
-
|
|
269
|
-
// props
|
|
270
|
-
/**
|
|
271
|
-
* Property which will contain a model
|
|
272
|
-
* @type {IValue<*>}
|
|
273
|
-
*/
|
|
274
|
-
model;
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Sets up model and handlers
|
|
278
|
-
*/
|
|
279
|
-
constructor ($1) {
|
|
280
|
-
super($1 || new BaseViewPrivate);
|
|
281
|
-
|
|
282
|
-
let $ = this.$;
|
|
283
|
-
$.addHandler = (id, item) => {
|
|
284
|
-
this.createChild(id, item);
|
|
285
|
-
};
|
|
286
|
-
$.removeHandler = (id, item) => {
|
|
287
|
-
this.destroyChild(id, item);
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
this.seal();
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* Creates a child when user adds new values
|
|
295
|
-
* @param id {*} id of children pack
|
|
296
|
-
* @param item {IValue<*>} Reference of children pack
|
|
297
|
-
* @param before {VasilleNode} Node to paste before it
|
|
298
|
-
* @return {handler} handler must be saved and unliked on value remove
|
|
299
|
-
*/
|
|
300
|
-
createChild (id, item, before) {
|
|
301
|
-
let handler = () => {
|
|
302
|
-
this.createChild(id, item);
|
|
303
|
-
};
|
|
304
|
-
item.on(handler);
|
|
305
|
-
super.createChild(id, item, before);
|
|
306
|
-
|
|
307
|
-
return handler;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
* Handle ready event
|
|
314
|
-
*/
|
|
315
|
-
$ready () {
|
|
316
|
-
let $ = this.$;
|
|
317
|
-
|
|
318
|
-
this.model.$.listener.onAdd($.addHandler);
|
|
319
|
-
this.model.$.listener.onRemove($.removeHandler);
|
|
320
|
-
super.$ready();
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* Handles destroy event
|
|
325
|
-
*/
|
|
326
|
-
$destroy () {
|
|
327
|
-
let $ = this.$;
|
|
328
|
-
|
|
329
|
-
this.model.$.listener.offAdd($.addHandler);
|
|
330
|
-
this.model.$.listener.offRemove($.removeHandler);
|
|
331
|
-
super.$destroy();
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* Private part of array view
|
|
337
|
-
*/
|
|
338
|
-
export class ArrayViewPrivate extends BaseViewPrivate {
|
|
339
|
-
/**
|
|
340
|
-
* Contains handlers of each child
|
|
341
|
-
* @type {Map<IValue<*>, Function>}
|
|
342
|
-
*/
|
|
343
|
-
handlers = new Map();
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* Contains buffered children
|
|
347
|
-
* @type {Array<string>}
|
|
348
|
-
*/
|
|
349
|
-
buffer = [];
|
|
350
|
-
|
|
351
|
-
constructor () {
|
|
352
|
-
super ();
|
|
353
|
-
this.seal();
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/**
|
|
358
|
-
* Represents a view of a array model
|
|
359
|
-
*/
|
|
360
|
-
export class ArrayView extends BaseView {
|
|
361
|
-
|
|
362
|
-
/**
|
|
363
|
-
* model of view
|
|
364
|
-
* @type {IValue<ArrayModel<*>>}
|
|
365
|
-
*/
|
|
366
|
-
model;
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* Sets up model with a default value
|
|
370
|
-
*/
|
|
371
|
-
constructor ($) {
|
|
372
|
-
super($ || new ArrayViewPrivate);
|
|
373
|
-
|
|
374
|
-
this.model = this.$prop(ArrayModel);
|
|
375
|
-
this.seal();
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* Overrides child created and generate random id for children
|
|
382
|
-
*/
|
|
383
|
-
createChild (id, item, before) {
|
|
384
|
-
let $ = this.$;
|
|
385
|
-
let next = typeof id === "number" ? $.nodes.get($.buffer[id]) : null;
|
|
386
|
-
let handler = super.createChild(item, item, before || next);
|
|
387
|
-
|
|
388
|
-
$.handlers.set(item, handler);
|
|
389
|
-
$.buffer.splice(id, 0, item);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/**
|
|
393
|
-
* Removes a children pack
|
|
394
|
-
*/
|
|
395
|
-
destroyChild (id, item) {
|
|
396
|
-
let $ = this.$;
|
|
397
|
-
let index = typeof id === "number" ? id : $.buffer.indexOf(item);
|
|
398
|
-
|
|
399
|
-
if (index === -1) {
|
|
400
|
-
return;
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
item.off($.handlers.get(item));
|
|
404
|
-
$.handlers.delete(item);
|
|
405
|
-
super.destroyChild(item, item);
|
|
406
|
-
$.buffer.splice(index, 1);
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Handle ready event
|
|
413
|
-
*/
|
|
414
|
-
$ready () {
|
|
415
|
-
let $ = this.$;
|
|
416
|
-
let arr = this.model.$;
|
|
417
|
-
|
|
418
|
-
for (let i = 0; i < arr.length; i++) {
|
|
419
|
-
$.app.$run.callCallback(() => {
|
|
420
|
-
this.createChild(i, arr[i]);
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
super.$ready();
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
/**
|
|
428
|
-
* Handle destroy event
|
|
429
|
-
*/
|
|
430
|
-
$destroy () {
|
|
431
|
-
for (let it of (this.$).handlers) {
|
|
432
|
-
it[0].off(it[1]);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
super.$destroy();
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
/**
|
|
440
|
-
* private part of object view
|
|
441
|
-
*/
|
|
442
|
-
class ObjectViewPrivate extends BaseViewPrivate {
|
|
443
|
-
/**
|
|
444
|
-
* Handler of property changes
|
|
445
|
-
* @type {Object<string, function>}
|
|
446
|
-
*/
|
|
447
|
-
handlers = {};
|
|
448
|
-
|
|
449
|
-
constructor () {
|
|
450
|
-
super ();
|
|
451
|
-
this.seal();
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
/**
|
|
456
|
-
* Create a children pack for each object field
|
|
457
|
-
*/
|
|
458
|
-
export class ObjectView extends BaseView {
|
|
459
|
-
/**
|
|
460
|
-
* Sets up model
|
|
461
|
-
*/
|
|
462
|
-
constructor ($) {
|
|
463
|
-
super($ || new ObjectViewPrivate);
|
|
464
|
-
this.model = this.$prop(ObjectModel);
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
/**
|
|
470
|
-
* Saves the child handler
|
|
471
|
-
*/
|
|
472
|
-
createChild (id, item, before) {
|
|
473
|
-
(this.$).handlers[id] = super.createChild(id, item, before);
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* Disconnects the child handler
|
|
478
|
-
*/
|
|
479
|
-
destroyChild (id, item) {
|
|
480
|
-
let $ = this.$;
|
|
481
|
-
|
|
482
|
-
item.off($.handlers[id]);
|
|
483
|
-
delete $.handlers[id];
|
|
484
|
-
super.destroyChild(id, item);
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
/**
|
|
490
|
-
* Handler ready event
|
|
491
|
-
*/
|
|
492
|
-
$ready () {
|
|
493
|
-
let $ = this.$;
|
|
494
|
-
let obj = this.model.$;
|
|
495
|
-
|
|
496
|
-
for (let i in obj) {
|
|
497
|
-
if (obj.hasOwnProperty(i) && obj.get(i) instanceof IValue) {
|
|
498
|
-
$.app.$run.callCallback(() => {
|
|
499
|
-
this.createChild(i, obj.get(i));
|
|
500
|
-
});
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
super.$ready();
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
/**
|
|
508
|
-
* Handler destroy event
|
|
509
|
-
*/
|
|
510
|
-
$destroy () {
|
|
511
|
-
let $ = this.$;
|
|
512
|
-
let obj = this.model.$;
|
|
513
|
-
|
|
514
|
-
for (let i in obj) {
|
|
515
|
-
if (obj.hasOwnProperty(i)) {
|
|
516
|
-
obj.get(i).off($.handlers[i]);
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
super.$destroy();
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
/**
|
|
525
|
-
* private part of map view
|
|
526
|
-
*/
|
|
527
|
-
class MapViewPrivate extends BaseViewPrivate {
|
|
528
|
-
/**
|
|
529
|
-
* Contains update handler for each value
|
|
530
|
-
* @type {Map<*, Function>}
|
|
531
|
-
*/
|
|
532
|
-
handlers = new Map();
|
|
533
|
-
|
|
534
|
-
constructor () {
|
|
535
|
-
super ();
|
|
536
|
-
this.seal();
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
/**
|
|
541
|
-
* Create a children pack for each map value
|
|
542
|
-
*/
|
|
543
|
-
export class MapView extends BaseView {
|
|
544
|
-
|
|
545
|
-
/**
|
|
546
|
-
* Sets up model
|
|
547
|
-
*/
|
|
548
|
-
constructor ($) {
|
|
549
|
-
super($ || new MapViewPrivate);
|
|
550
|
-
this.model = this.$prop(MapModel);
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
/**
|
|
556
|
-
* Saves the child handler
|
|
557
|
-
*/
|
|
558
|
-
createChild (id, item, before) {
|
|
559
|
-
(this.$).handlers.set(id, super.createChild(id, item, before));
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
/**
|
|
563
|
-
* Disconnects the child handler
|
|
564
|
-
*/
|
|
565
|
-
destroyChild (id, item) {
|
|
566
|
-
let $ = this.$;
|
|
567
|
-
|
|
568
|
-
item.off($.handlers.get(id));
|
|
569
|
-
$.handlers.delete(id);
|
|
570
|
-
super.destroyChild(id, item);
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
/**
|
|
576
|
-
* Handler ready event
|
|
577
|
-
*/
|
|
578
|
-
$ready () {
|
|
579
|
-
let $ = this.$;
|
|
580
|
-
let map = this.model.$;
|
|
581
|
-
|
|
582
|
-
for (let it of map) {
|
|
583
|
-
$.app.$run.callCallback(() => {
|
|
584
|
-
this.createChild(it[0], it[1]);
|
|
585
|
-
});
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
super.$ready();
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
/**
|
|
592
|
-
* Handler destroy event
|
|
593
|
-
*/
|
|
594
|
-
$destroy () {
|
|
595
|
-
let $ = this.$;
|
|
596
|
-
let map = this.model.$;
|
|
597
|
-
|
|
598
|
-
for (let it of map) {
|
|
599
|
-
it[1].off($.handlers.get(it[0]));
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
super.$destroy();
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
/**
|
|
607
|
-
* private part of set view
|
|
608
|
-
*/
|
|
609
|
-
class SetViewPrivate extends BaseViewPrivate {
|
|
610
|
-
/**
|
|
611
|
-
* Contains update handler for each value
|
|
612
|
-
* @type {Map<IValue<*>, Function>}
|
|
613
|
-
*/
|
|
614
|
-
handlers = new Map();
|
|
615
|
-
|
|
616
|
-
constructor () {
|
|
617
|
-
super ();
|
|
618
|
-
this.seal();
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
/**
|
|
623
|
-
* Create a children pack for each set value
|
|
624
|
-
*/
|
|
625
|
-
export class SetView extends BaseView {
|
|
626
|
-
|
|
627
|
-
/**
|
|
628
|
-
* Sets up model
|
|
629
|
-
*/
|
|
630
|
-
constructor ($) {
|
|
631
|
-
super($ || new SetViewPrivate);
|
|
632
|
-
this.model = this.$prop(SetModel);
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
/**
|
|
638
|
-
* Saves the child handler
|
|
639
|
-
*/
|
|
640
|
-
createChild (id, item, before) {
|
|
641
|
-
(this.$).handlers.set(item, super.createChild(id, item, before));
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
/**
|
|
645
|
-
* Disconnects the child handler
|
|
646
|
-
*/
|
|
647
|
-
destroyChild (id, item) {
|
|
648
|
-
let $ = this.$;
|
|
649
|
-
|
|
650
|
-
item.off($.handlers.get(item));
|
|
651
|
-
$.handlers.delete(item);
|
|
652
|
-
super.destroyChild(id, item);
|
|
653
|
-
}
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
/**
|
|
658
|
-
* Handler ready event
|
|
659
|
-
*/
|
|
660
|
-
$ready () {
|
|
661
|
-
let $ = this.$;
|
|
662
|
-
let set = this.model.$;
|
|
663
|
-
|
|
664
|
-
for (let it of set) {
|
|
665
|
-
$.app.$run.callCallback(() => {
|
|
666
|
-
this.createChild(it, it);
|
|
667
|
-
});
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
super.$ready();
|
|
671
|
-
}
|
|
672
|
-
|
|
673
|
-
/**
|
|
674
|
-
* Handler destroy event
|
|
675
|
-
*/
|
|
676
|
-
$destroy () {
|
|
677
|
-
let $ = this.$;
|
|
678
|
-
let set = this.model.$;
|
|
679
|
-
|
|
680
|
-
for (let it of set) {
|
|
681
|
-
it.off($.handlers.get(it));
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
super.$destroy();
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
//# sourceMappingURL=views.js.map
|
package/lib/views.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/views.js"],"names":[],"mappings":"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"}
|