vasille 1.2.9 → 2.0.3

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 (133) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +195 -129
  3. package/cdn/es2015.js +3231 -0
  4. package/cdn/es5.js +3675 -0
  5. package/flow-typed/vasille.js +839 -0
  6. package/lib/binding/attribute.js +32 -0
  7. package/lib/binding/binding.js +39 -0
  8. package/lib/binding/class.js +51 -0
  9. package/lib/binding/style.js +29 -0
  10. package/lib/core/core.js +186 -0
  11. package/lib/core/destroyable.js +45 -0
  12. package/lib/core/errors.js +16 -0
  13. package/lib/core/executor.js +154 -0
  14. package/lib/core/ivalue.js +56 -0
  15. package/lib/core/signal.js +50 -0
  16. package/lib/core/slot.js +47 -0
  17. package/lib/index.js +27 -22
  18. package/lib/models/array-model.js +208 -0
  19. package/lib/models/listener.js +130 -0
  20. package/lib/models/map-model.js +66 -0
  21. package/lib/models/model.js +1 -0
  22. package/lib/models/object-model.js +78 -0
  23. package/lib/models/set-model.js +62 -0
  24. package/lib/node/app.js +39 -0
  25. package/lib/node/interceptor.js +83 -0
  26. package/lib/node/node.js +1204 -0
  27. package/lib/node/watch.js +27 -0
  28. package/lib/value/expression.js +83 -0
  29. package/lib/value/mirror.js +58 -0
  30. package/lib/value/pointer.js +26 -0
  31. package/lib/value/reference.js +55 -0
  32. package/lib/views/array-view.js +21 -0
  33. package/lib/views/base-view.js +49 -0
  34. package/lib/views/map-view.js +19 -0
  35. package/lib/views/object-view.js +19 -0
  36. package/lib/views/repeat-node.js +106 -0
  37. package/lib/views/repeater.js +63 -0
  38. package/lib/views/set-view.js +22 -0
  39. package/package.json +26 -18
  40. package/types/binding/attribute.d.ts +23 -0
  41. package/types/binding/binding.d.ts +30 -0
  42. package/types/binding/class.d.ts +23 -0
  43. package/types/binding/style.d.ts +23 -0
  44. package/types/core/core.d.ts +144 -0
  45. package/types/core/destroyable.d.ts +15 -0
  46. package/types/core/errors.d.ts +4 -0
  47. package/types/core/executor.d.ts +87 -0
  48. package/types/core/ivalue.d.ts +45 -0
  49. package/types/core/signal.d.ts +35 -0
  50. package/types/core/slot.d.ts +45 -0
  51. package/types/index.d.ts +27 -21
  52. package/types/models/array-model.d.ts +103 -0
  53. package/types/models/listener.d.ts +74 -0
  54. package/types/models/map-model.d.ts +35 -0
  55. package/types/models/model.d.ts +19 -0
  56. package/types/models/object-model.d.ts +36 -0
  57. package/types/models/set-model.d.ts +34 -0
  58. package/types/node/app.d.ts +42 -0
  59. package/types/node/interceptor.d.ts +50 -0
  60. package/types/node/node.d.ts +741 -0
  61. package/types/node/watch.d.ts +23 -0
  62. package/types/value/expression.d.ts +60 -0
  63. package/types/value/mirror.d.ts +35 -0
  64. package/types/value/pointer.d.ts +19 -0
  65. package/types/value/reference.d.ts +30 -0
  66. package/types/views/array-view.d.ts +13 -0
  67. package/types/views/base-view.d.ts +43 -0
  68. package/types/views/map-view.d.ts +11 -0
  69. package/types/views/object-view.d.ts +11 -0
  70. package/types/views/repeat-node.d.ts +35 -0
  71. package/types/views/repeater.d.ts +38 -0
  72. package/types/views/set-view.d.ts +11 -0
  73. package/CHANGELOG.md +0 -23
  74. package/img/favicon.svg +0 -441
  75. package/img/getLocus.svg +0 -18
  76. package/img/logo.png +0 -0
  77. package/img/logo.svg +0 -550
  78. package/img/scores-o-log.png +0 -0
  79. package/img/scores-o.png +0 -0
  80. package/img/scores-wo-log.png +0 -0
  81. package/img/scores-wo.png +0 -0
  82. package/img/x1-x32.png +0 -0
  83. package/lib/attribute.js +0 -71
  84. package/lib/attribute.js.map +0 -1
  85. package/lib/bind.js +0 -286
  86. package/lib/bind.js.map +0 -1
  87. package/lib/class.js +0 -97
  88. package/lib/class.js.map +0 -1
  89. package/lib/executor.js +0 -167
  90. package/lib/executor.js.map +0 -1
  91. package/lib/index.js.map +0 -1
  92. package/lib/interfaces/core.js +0 -247
  93. package/lib/interfaces/core.js.map +0 -1
  94. package/lib/interfaces/destroyable.js +0 -39
  95. package/lib/interfaces/destroyable.js.map +0 -1
  96. package/lib/interfaces/errors.js +0 -49
  97. package/lib/interfaces/errors.js.map +0 -1
  98. package/lib/interfaces/ibind.js +0 -31
  99. package/lib/interfaces/ibind.js.map +0 -1
  100. package/lib/interfaces/idefinition.js +0 -64
  101. package/lib/interfaces/idefinition.js.map +0 -1
  102. package/lib/interfaces/ivalue.js +0 -60
  103. package/lib/interfaces/ivalue.js.map +0 -1
  104. package/lib/models.js +0 -579
  105. package/lib/models.js.map +0 -1
  106. package/lib/node.js +0 -2155
  107. package/lib/node.js.map +0 -1
  108. package/lib/property.js +0 -38
  109. package/lib/property.js.map +0 -1
  110. package/lib/style.js +0 -66
  111. package/lib/style.js.map +0 -1
  112. package/lib/value.js +0 -203
  113. package/lib/value.js.map +0 -1
  114. package/lib/views.js +0 -688
  115. package/lib/views.js.map +0 -1
  116. package/types/attribute.d.ts +0 -18
  117. package/types/bind.d.ts +0 -72
  118. package/types/class.d.ts +0 -19
  119. package/types/data.d.ts +0 -11
  120. package/types/event.d.ts +0 -10
  121. package/types/executor.d.ts +0 -57
  122. package/types/interfaces/core.d.ts +0 -129
  123. package/types/interfaces/destroyable.d.ts +0 -11
  124. package/types/interfaces/errors.d.ts +0 -24
  125. package/types/interfaces/ibind.d.ts +0 -19
  126. package/types/interfaces/idefinition.d.ts +0 -29
  127. package/types/interfaces/ivalue.d.ts +0 -40
  128. package/types/models.d.ts +0 -179
  129. package/types/node.d.ts +0 -906
  130. package/types/property.d.ts +0 -9
  131. package/types/style.d.ts +0 -28
  132. package/types/value.d.ts +0 -43
  133. package/types/views.d.ts +0 -135
@@ -0,0 +1,839 @@
1
+ // @flow
2
+
3
+
4
+
5
+ interface IModel {
6
+ enableReactivity () : void;
7
+ disableReactivity () : void;
8
+ }
9
+ type AppOptions = ?{
10
+ debugUi?: boolean,
11
+ freezeUi ?: boolean,
12
+ executor ?: Executor
13
+ }
14
+
15
+ declare module "vasille" {
16
+ declare export class Destroyable {
17
+ $seal () : void;
18
+ $destroy () : void;
19
+ }
20
+ declare export class ReactivePrivate extends Destroyable {
21
+ watch : Set<IValue<any>>;
22
+ bindings : Set<Destroyable>;
23
+ models: Set<IModel<any, any>>;
24
+ enabled : boolean;
25
+ frozen : boolean;
26
+ freezeExpr : Expression<void, boolean>;
27
+
28
+ constructor () : void;
29
+
30
+ $destroy () : void;
31
+ }
32
+ declare export class Reactive extends Destroyable {
33
+ $ : ReactivePrivate;
34
+
35
+ constructor ($ : ?ReactivePrivate) : void;
36
+
37
+ $ref<T> (value : T) : IValue<T>;
38
+ $mirror<T> (value : IValue<T>) : Mirror<T>;
39
+ $forward<T> (value : IValue<T>) : Mirror<T>;
40
+ $point<T>(value: T | IValue<T>, forwardOnly?: boolean): Pointer<T>;
41
+ $register<T>(model: T): T;
42
+
43
+ $watch<T1> (
44
+ func : (a1 : T1) => void,
45
+ v1: IValue<T1>,
46
+ ) : void;
47
+ $watch<T1, T2> (
48
+ func : (a1 : T1, a2 : T2) => void,
49
+ v1: IValue<T1>, v2: IValue<T2>,
50
+ ) : void;
51
+ $watch<T1, T2, T3> (
52
+ func : (a1 : T1, a2 : T2, a3 : T3) => void,
53
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
54
+ ) : void;
55
+ $watch<T1, T2, T3, T4> (
56
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => void,
57
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
58
+ v4: IValue<T4>,
59
+ ) : void;
60
+ $watch<T1, T2, T3, T4, T5> (
61
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => void,
62
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
63
+ v4: IValue<T4>, v5: IValue<T5>,
64
+ ) : void;
65
+ $watch<T1, T2, T3, T4, T5, T6> (
66
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => void,
67
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
68
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
69
+ ) : void;
70
+ $watch<T1, T2, T3, T4, T5, T6, T7> (
71
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => void,
72
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
73
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
74
+ v7: IValue<T7>,
75
+ ) : void;
76
+ $watch<T1, T2, T3, T4, T5, T6, T7, T8> (
77
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => void,
78
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
79
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
80
+ v7: IValue<T7>, v8: IValue<T8>,
81
+ ) : void;
82
+ $watch<T1, T2, T3, T4, T5, T6, T7, T8, T9> (
83
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => void,
84
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
85
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
86
+ v7: IValue<T7>, v8: IValue<T8>, v9: IValue<T9>,
87
+ ) : void;
88
+
89
+ $bind<T, T1> (
90
+ func : (a1 : T1) => T,
91
+ v1: IValue<T1>,
92
+ ) : IValue<T>;
93
+ $bind<T, T1, T2> (
94
+ func : (a1 : T1, a2 : T2) => T,
95
+ v1: IValue<T1>, v2: IValue<T2>,
96
+ ) : IValue<T>;
97
+ $bind<T, T1, T2, T3> (
98
+ func : (a1 : T1, a2 : T2, a3 : T3) => T,
99
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
100
+ ) : IValue<T>;
101
+ $bind<T, T1, T2, T3, T4> (
102
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => T,
103
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
104
+ v4: IValue<T4>,
105
+ ) : IValue<T>;
106
+ $bind<T, T1, T2, T3, T4, T5> (
107
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => T,
108
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
109
+ v4: IValue<T4>, v5: IValue<T5>,
110
+ ) : IValue<T>;
111
+ $bind<T, T1, T2, T3, T4, T5, T6> (
112
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => T,
113
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
114
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
115
+ ) : IValue<T>;
116
+ $bind<T, T1, T2, T3, T4, T5, T6, T7> (
117
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => T,
118
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
119
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
120
+ v7: IValue<T7>,
121
+ ) : IValue<T>;
122
+ $bind<T, T1, T2, T3, T4, T5, T6, T7, T8> (
123
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => T,
124
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
125
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
126
+ v7: IValue<T7>, v8: IValue<T8>,
127
+ ) : IValue<T>;
128
+ $bind<T, T1, T2, T3, T4, T5, T6, T7, T8, T9> (
129
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => T,
130
+ v1: IValue<T1>, v2: IValue<T2>, v3: IValue<T3>,
131
+ v4: IValue<T4>, v5: IValue<T5>, v6: IValue<T6>,
132
+ v7: IValue<T7>, v8: IValue<T8>, v9: IValue<T9>,
133
+ ) : IValue<T>;
134
+
135
+ $enable () : void;
136
+ $disable () : void;
137
+ $bindAlive(cond: IValue<boolean>, onOff?: () => void, onOn?: () => void): this;
138
+ $destroy () : void;
139
+ }
140
+ declare export class Executor {
141
+ addClass (el : Element, cl : string) : void;
142
+ removeClass (el : Element, cl : string) : void;
143
+ setAttribute (el : Element, name : string, value : string) : void;
144
+ removeAttribute (el : Element, name : string) : void;
145
+ setStyle (el : HTMLElement, prop : string, value : string) : void;
146
+ insertBefore (target : Node, child : Node) : void;
147
+ appendChild (el : Element, child : Node) : void;
148
+ callCallback (cb : () => void) : void;
149
+ }
150
+ declare export class InstantExecutor extends Executor {
151
+ }
152
+ declare export class TimeoutExecutor extends InstantExecutor {
153
+ }
154
+ declare export class IValue<T> extends Destroyable {
155
+ isEnabled : boolean;
156
+
157
+ constructor (isEnabled ?: boolean) : void;
158
+ get $ () : T;
159
+ set $ (value : T) : this;
160
+ on (handler : (value : T) => void) : this;
161
+ off (handler : (value : T) => void) : this;
162
+ enable () : this;
163
+ disable () : this;
164
+ }
165
+ declare export class Signal<
166
+ T = Fragment, T1 = void, T2 = void, T3 = void, T4 = void, T5 = void, T6 = void, T7 = void, T8 = void, T9 = void
167
+ > {
168
+ handlers : Set<
169
+ (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => void
170
+ >;
171
+
172
+ emit (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) : void;
173
+ subscribe (
174
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => void
175
+ ) : void;
176
+ unsubscribe (
177
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => void
178
+ ) : void;
179
+ }
180
+ declare export class Slot<
181
+ t1 = void, t2 = void, t3 = void, t4 = void, t5 = void, t6 = void, t7 = void, t8 = void, t9 = void
182
+ > {
183
+ runner : ?(a0 : T, a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9) => void;
184
+
185
+ insert (
186
+ func : (a0 : T, a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9) => void
187
+ ) : void;
188
+ release (
189
+ a0 : T, a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9
190
+ ) : void;
191
+ predefine (
192
+ func : (a0 : T, a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9) => void,
193
+ a0 : T, a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9
194
+ ) : void;
195
+ }
196
+ declare export class Listener<ValueT, IndexT = string | number> {
197
+ onAdded : Set<(index : IndexT, value : ValueT) => void>;
198
+ onRemoved : Set<(index : IndexT, value : ValueT) => void>;
199
+ frozen : boolean;
200
+ queue : { sign: boolean, index: IndexT, value: ValueT }[];
201
+
202
+ constructor () : void;
203
+ excludeRepeat (index : IndexT) : boolean;
204
+ emitAdded (index : IndexT, value : ValueT) : void;
205
+ emitRemoved (index : IndexT, value : ValueT) : void;
206
+ onAdd (handler : (index : IndexT, value : ValueT) => void) : void;
207
+ onRemove (handler : (index : IndexT, value : ValueT) => void) : void;
208
+ offAdd (handler : (index : IndexT, value : ValueT) => void) : void;
209
+ offRemove (handler : (index : IndexT, value : ValueT) => void) : void;
210
+ enableReactivity () : void;
211
+ disableReactivity () : void;
212
+ }
213
+ declare export class ArrayModel<T> extends Array<T> implements IModel {
214
+ listener : Listener<T, ?T>;
215
+ constructor (data ?: Array<T>) : void;
216
+ get last () : ?T;
217
+ fill (value : T, start : ?number, end : ?number) : this;
218
+ pop () : T;
219
+ push (...items : Array<T>) : number;
220
+ shift () : T;
221
+ splice (
222
+ start : number,
223
+ deleteCount : ?number,
224
+ ...items : Array<T>
225
+ ) : ArrayModel<T>;
226
+ unshift (...items : Array<T>) : number;
227
+ append (v : T) : this;
228
+ clear () : this;
229
+ insert (index : number, v : T) : this;
230
+ prepend (v : T) : this;
231
+ removeAt (index : number) : this;
232
+ removeFirst () : this;
233
+ removeLast () : this;
234
+ removeOne (v : T) : this;
235
+ }
236
+ declare export class MapModel<K, T> extends Map<K, T> implements IModel {
237
+ listener : Listener<T, K>;
238
+
239
+ constructor (map ?: [K, T][]) : void;
240
+ clear () : void;
241
+ delete (key : any) : boolean;
242
+ set (key : K, value : T) : this;
243
+ }
244
+ declare export class ObjectModel<T> extends Object implements IModel {
245
+ listener : Listener<T, string>;
246
+
247
+ constructor (obj ?: { [p : string] : T }) : void;
248
+ get (key : string) : T;
249
+ set (key : string, v : T) : this;
250
+ delete (key : string) : void;
251
+ }
252
+ declare export class SetModel<T> extends Set<T> implements IModel {
253
+ listener : Listener<T, T>;
254
+
255
+ constructor (set ?: T[]) : void;
256
+ add (value : T) : this;
257
+ clear () : this;
258
+ delete (value : T) : boolean;
259
+ }
260
+ declare export class AppNode extends INode {
261
+ $run : Executor;
262
+
263
+ constructor (options : AppOptions) : void;
264
+ $$appendNode(node: Node): void;
265
+ }
266
+ declare export class App extends AppNode {
267
+ constructor (node : HTMLElement, options : AppOptions) : void;
268
+ }
269
+ declare export class Interceptor<
270
+ t1 = void, t2 = void, t3 = void, t4 = void, t5 = void, t6 = void, t7 = void, t8 = void, t9 = void
271
+ > extends Destroyable {
272
+
273
+ signals : Set<Signal<t1, t2, t3, t4, t5, t6, t7, t8, t9>>;
274
+ handlers : Set<(a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9) => void>;
275
+
276
+ connect (
277
+ thing : Signal<t1, t2, t3, t4, t5, t6, t7, t8, t9> |
278
+ (a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9) => void
279
+ ) : void;
280
+ disconnect (
281
+ handler : (a1 : t1, a2 : t2, a3 : t3, a4 : t4, a5 : t5, a6 : t6, a7 : t7, a8 : t8, a9 : t9) => void
282
+ ) : void;
283
+ }
284
+ declare export class InterceptorNode<
285
+ t1 = void, t2 = void, t3 = void, t4 = void, t5 = void, t6 = void, t7 = void, t8 = void, t9 = void
286
+ > extends Fragment {
287
+ interceptor : Interceptor<t1, t2, t3, t4, t5, t6, t7, t8, t9>;
288
+ slot : Slot<Fragment, Interceptor<t1, t2, t3, t4, t5, t6, t7, t8, t9>>;
289
+ }
290
+ declare export class FragmentPrivate extends ReactivePrivate {
291
+
292
+ app : AppNode;
293
+ parent : Fragment;
294
+ next : ?Fragment;
295
+ prev : ?Fragment;
296
+
297
+ constructor () : void;
298
+ preinit (app : AppNode, parent: Fragment) : void;
299
+ }
300
+ declare export class Fragment extends Reactive {
301
+ $ : FragmentPrivate;
302
+ $children : Array<Fragment>;
303
+
304
+ constructor ($ : ?FragmentPrivate) : void;
305
+
306
+ $preinit (app: AppNode, parent : Fragment, data ?: any) : void;
307
+ $init () : this;
308
+ $created () : void;
309
+ $mounted () : void;
310
+ $ready () : void;
311
+ $createSignals () : void;
312
+ $createWatchers () : void;
313
+ $compose () : void;
314
+ $$pushNode (node : Fragment) : void;
315
+ $$findFirstChild () : ?Node;
316
+ $$appendNode (node : Node) : void ;
317
+ $$insertAdjacent (node : Node) : void;
318
+ $text (
319
+ text : string | IValue<string>,
320
+ cb : ?(text : TextNode) => void
321
+ ) : this;
322
+ $debug(text : IValue<string>) : this;
323
+ $tag<T = Element> (
324
+ tagName : string,
325
+ cb : ?(node : Tag, element : T) => void
326
+ ) : this;
327
+ $create<T> (
328
+ node : T,
329
+ callback : ($ : T) => void,
330
+ callback1 : ($ : T) => void
331
+ ) : this;
332
+ $if (
333
+ cond : IValue<boolean>,
334
+ cb : (node : Fragment) => void
335
+ ) : this ;
336
+ $if_else (
337
+ ifCond : IValue<boolean>,
338
+ ifCb : (node : Fragment) => void,
339
+ elseCb : (node : Fragment) => void
340
+ ) : this;
341
+ $switch (
342
+ ...cases : Array<{ cond : IValue<boolean>, cb : (node : Fragment) => void }>
343
+ ) : this;
344
+ $case (cond : IValue<boolean>, cb : (node : Fragment) => void)
345
+ : {cond : IValue<boolean>, cb : (node : Fragment) => void};
346
+ $default (cb: (node : Fragment) => void)
347
+ : {cond : IValue<boolean>, cb : (node : Fragment) => void};
348
+ }
349
+ declare export class TextNodePrivate extends FragmentPrivate {
350
+ node : Text;
351
+
352
+ constructor () : void;
353
+ preinitText (app : AppNode, parent: Fragment, text : IValue<string>) : void;
354
+ }
355
+ declare export class TextNode extends Fragment {
356
+ $ : TextNodePrivate;
357
+ constructor () : void;
358
+
359
+ $preinit (app : AppNode, parent : Fragment, text : ?IValue<string>) : void;
360
+ }
361
+ declare export class INodePrivate extends FragmentPrivate {
362
+
363
+ unmounted : boolean;
364
+ node : Element;
365
+
366
+ constructor () : void;
367
+ }
368
+ declare export class INode extends Fragment {
369
+ $ : INodePrivate;
370
+
371
+ constructor ($ : ?INodePrivate) : void;
372
+ $init () : this;
373
+ $createAttrs () : void;
374
+ $createStyle () : void;
375
+ $attr (name : string, value : IValue<?string>) : this;
376
+ $bindAttr<T1> (
377
+ name : string,
378
+ calculator : (a1 : T1) => string,
379
+ v1 : IValue<T1>,
380
+ ) : this;
381
+ $bindAttr<T1, T2> (
382
+ name : string,
383
+ calculator : (a1 : T1, a2 : T2) => string,
384
+ v1 : IValue<T1>, v2 : IValue<T2>,
385
+ ) : this;
386
+ $bindAttr<T1, T2, T3> (
387
+ name : string,
388
+ calculator : (a1 : T1, a2 : T2, a3 : T3) => string,
389
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
390
+ ) : this;
391
+ $bindAttr<T1, T2, T3, T4> (
392
+ name : string,
393
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => string,
394
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
395
+ v4 : IValue<T4>,
396
+ ) : this;
397
+ $bindAttr<T1, T2, T3, T4, T5> (
398
+ name : string,
399
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => string,
400
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
401
+ v4 : IValue<T4>, v5 : IValue<T5>,
402
+ ) : this;
403
+ $bindAttr<T1, T2, T3, T4, T5, T6> (
404
+ name : string,
405
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => string,
406
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
407
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
408
+ ) : this;
409
+ $bindAttr<T1, T2, T3, T4, T5, T6, T7> (
410
+ name : string,
411
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => string,
412
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
413
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
414
+ v7 : IValue<T7>,
415
+ ) : this;
416
+ $bindAttr<T1, T2, T3, T4, T5, T6, T7, T8> (
417
+ name : string,
418
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => string,
419
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
420
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
421
+ v7 : IValue<T7>, v8 : IValue<T8>,
422
+ ) : this;
423
+ $bindAttr<T1, T2, T3, T4, T5, T6, T7, T8, T9> (
424
+ name : string,
425
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => string,
426
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
427
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
428
+ v7 : IValue<T7>, v8 : IValue<T8>, v9 : IValue<T9>,
429
+ ) : this;
430
+ $setAttr (
431
+ name : string,
432
+ value : string
433
+ ) : this;
434
+ $addClass (cl : string) : this;
435
+ $addClasses (...cl : Array<string>) : this;
436
+ $bindClass (
437
+ className : IValue<string>
438
+ ) : this;
439
+ $floatingClass (cond : IValue<boolean>, className : string) : this;
440
+ $style (name : string, value : IValue<string>) : this;
441
+ $bindStyle<T1> (
442
+ name : string,
443
+ calculator : (a1 : T1) => string,
444
+ v1 : IValue<T1>,
445
+ ) : this;
446
+ $bindStyle<T1, T2> (
447
+ name : string,
448
+ calculator : (a1 : T1, a2 : T2) => string,
449
+ v1 : IValue<T1>, v2 : IValue<T2>,
450
+ ) : this;
451
+ $bindStyle<T1, T2, T3> (
452
+ name : string,
453
+ calculator : (a1 : T1, a2 : T2, a3 : T3) => string,
454
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
455
+ ) : this;
456
+ $bindStyle<T1, T2, T3, T4> (
457
+ name : string,
458
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => string,
459
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
460
+ v4 : IValue<T4>,
461
+ ) : this;
462
+ $bindStyle<T1, T2, T3, T4, T5> (
463
+ name : string,
464
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => string,
465
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
466
+ v4 : IValue<T4>, v5 : IValue<T5>,
467
+ ) : this;
468
+ $bindStyle<T1, T2, T3, T4, T5, T6> (
469
+ name : string,
470
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => string,
471
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
472
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
473
+ ) : this;
474
+ $bindStyle<T1, T2, T3, T4, T5, T6, T7> (
475
+ name : string,
476
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => string,
477
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
478
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
479
+ v7 : IValue<T7>,
480
+ ) : this;
481
+ $bindStyle<T1, T2, T3, T4, T5, T6, T7, T8> (
482
+ name : string,
483
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => string,
484
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
485
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
486
+ v7 : IValue<T7>, v8 : IValue<T8>,
487
+ ) : this;
488
+ $bindStyle<T1, T2, T3, T4, T5, T6, T7, T8, T9> (
489
+ name : string,
490
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => string,
491
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
492
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
493
+ v7 : IValue<T7>, v8 : IValue<T8>, v9 : IValue<T9>,
494
+ ) : this;
495
+ $setStyle (
496
+ prop : string,
497
+ value : string
498
+ ) : this;
499
+ $listen (name : string, handler : (ev : any) => void, options : ?EventListenerOptionsOrUseCapture) : this;
500
+ $oncontextmenu (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
501
+ $onmousedown (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
502
+ $onmouseenter (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
503
+ $onmouseleave (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
504
+ $onmousemove (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
505
+ $onmouseout (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
506
+ $onmouseover (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
507
+ $onmouseup (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
508
+ $onclick (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
509
+ $ondblclick (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
510
+ $onblur (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
511
+ $onfocus (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
512
+ $onfocusin (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
513
+ $onfocusout (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
514
+ $onkeydown (handler : (ev : KeyboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
515
+ $onkeyup (handler : (ev : KeyboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
516
+ $onkeypress (handler : (ev : KeyboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
517
+ $ontouchstart (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
518
+ $ontouchmove (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
519
+ $ontouchend (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
520
+ $ontouchcancel (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
521
+ $onwheel (handler : (ev : WheelEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
522
+ $onabort (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
523
+ $onerror (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
524
+ $onload (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
525
+ $onloadend (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
526
+ $onloadstart (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
527
+ $onprogress (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
528
+ $ontimeout (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
529
+ $ondrag (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
530
+ $ondragend (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
531
+ $ondragenter (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
532
+ $ondragexit (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
533
+ $ondragleave (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
534
+ $ondragover (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
535
+ $ondragstart (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
536
+ $ondrop (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
537
+ $onpointerover (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
538
+ $onpointerenter (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
539
+ $onpointerdown (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
540
+ $onpointermove (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
541
+ $onpointerup (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
542
+ $onpointercancel (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
543
+ $onpointerout (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
544
+ $onpointerleave (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
545
+ $ongotpointercapture (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
546
+ $onlostpointercapture (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
547
+ $onanimationstart (handler : (ev : AnimationEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
548
+ $onanimationend (handler : (ev : AnimationEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
549
+ $onanimationiteraton (handler : (ev : AnimationEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
550
+ $onclipboardchange (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
551
+ $oncut (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
552
+ $oncopy (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
553
+ $onpaste (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
554
+ $$insertAdjacent (node : Node) : void;
555
+ $bindShow (cond : IValue<boolean>) : this;
556
+ $html (value : IValue<string>) : void;
557
+ }
558
+ declare export class Tag extends INode {
559
+
560
+ constructor () : void;
561
+
562
+ $preinit (app : AppNode, parent : Fragment, tagName : ?string) : void;
563
+ $$appendNode(node: Node): void;
564
+ $bindMount(cond: IValue<boolean>): this;
565
+ }
566
+ declare export class Extension extends INode {
567
+ $preinit (app : AppNode, parent : Fragment) : void;
568
+
569
+ constructor ($ : ?INodePrivate) : void;
570
+ }
571
+ declare export class Component extends Extension {
572
+ constructor () : void;
573
+
574
+ $mounted () : void;
575
+ }
576
+ declare export class SwitchedNodePrivate extends INodePrivate {
577
+ index : number;
578
+ extension : ?Extension;
579
+ cases : { cond : IValue<boolean>, cb : (node : Fragment) => void }[];
580
+ sync : () => void;
581
+
582
+ constructor () : void;
583
+ }
584
+ declare class SwitchedNode extends Extension {
585
+ constructor ($ : ?SwitchedNodePrivate) : void;
586
+ setCases (cases : Array<{ cond : IValue<boolean>, cb : (node : Fragment) => void }>) : void;
587
+ createChild (cb : (node : Fragment) => void) : void;
588
+ $ready () : void;
589
+ }
590
+ declare export class DebugPrivate extends FragmentPrivate {
591
+ node : Comment;
592
+
593
+ constructor () : void;
594
+
595
+ preinitComment (app : AppNode, parent: Fragment, text : IValue<string>) : void;
596
+ }
597
+ declare export class DebugNode extends Fragment {
598
+ $ : DebugPrivate;
599
+
600
+ constructor () : void;
601
+
602
+ $preinit (app : AppNode, parent : Fragment, text : ?IValue<string>) : void;
603
+ }
604
+ declare export class Watch<T> extends Fragment {
605
+ slot : Slot<Fragment, T>;
606
+ model : IValue<T>;
607
+
608
+ constructor () : void;
609
+
610
+ $createWatchers () : void;
611
+ }
612
+ declare export class Expression<
613
+ T, T1 = void, T2 = void, T3 = void, T4 = void, T5 = void, T6 = void, T7 = void, T8 = void, T9 = void
614
+ > extends IValue<T> {
615
+ values : [
616
+ IValue<T1>,
617
+ IValue<T2>,
618
+ IValue<T3>,
619
+ IValue<T4>,
620
+ IValue<T5>,
621
+ IValue<T6>,
622
+ IValue<T7>,
623
+ IValue<T8>,
624
+ IValue<T9>
625
+ ];
626
+ valuesCache : [T1, T2, T3, T4, T5, T6, T7, T8, T9];
627
+ func : (i ? : number) => void;
628
+ linkedFunc : Array<() => void>;
629
+ sync : Reference<T>;
630
+
631
+ constructor (
632
+ func : (a1 : T1) => T,
633
+ link : boolean,
634
+ v1: IValue<T1>,
635
+ ) : void;
636
+ constructor (
637
+ func : (a1 : T1, a2 : T2) => T,
638
+ link : boolean,
639
+ v1: IValue<T1>,
640
+ v2: IValue<T2>,
641
+ ) : void;
642
+ constructor (
643
+ func : (a1 : T1, a2 : T2, a3 : T3) => T,
644
+ link : boolean,
645
+ v1: IValue<T1>,
646
+ v2: IValue<T2>,
647
+ v3: IValue<T3>,
648
+ ) : void;
649
+ constructor (
650
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => T,
651
+ link : boolean,
652
+ v1: IValue<T1>,
653
+ v2: IValue<T2>,
654
+ v3: IValue<T3>,
655
+ v4: IValue<T4>,
656
+ ) : void;
657
+ constructor (
658
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => T,
659
+ link : boolean,
660
+ v1: IValue<T1>,
661
+ v2: IValue<T2>,
662
+ v3: IValue<T3>,
663
+ v4: IValue<T4>,
664
+ v5: IValue<T5>,
665
+ ) : void;
666
+ constructor (
667
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => T,
668
+ link : boolean,
669
+ v1: IValue<T1>,
670
+ v2: IValue<T2>,
671
+ v3: IValue<T3>,
672
+ v4: IValue<T4>,
673
+ v5: IValue<T5>,
674
+ v6: IValue<T6>,
675
+ ) : void;
676
+ constructor (
677
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => T,
678
+ link : boolean,
679
+ v1: IValue<T1>,
680
+ v2: IValue<T2>,
681
+ v3: IValue<T3>,
682
+ v4: IValue<T4>,
683
+ v5: IValue<T5>,
684
+ v6: IValue<T6>,
685
+ v7: IValue<T7>,
686
+ ) : void;
687
+ constructor (
688
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => T,
689
+ link : boolean,
690
+ v1: IValue<T1>,
691
+ v2: IValue<T2>,
692
+ v3: IValue<T3>,
693
+ v4: IValue<T4>,
694
+ v5: IValue<T5>,
695
+ v6: IValue<T6>,
696
+ v7: IValue<T7>,
697
+ v8: IValue<T8>,
698
+ ) : void;
699
+ constructor (
700
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => T,
701
+ link : boolean,
702
+ v1: IValue<T1>,
703
+ v2: IValue<T2>,
704
+ v3: IValue<T3>,
705
+ v4: IValue<T4>,
706
+ v5: IValue<T5>,
707
+ v6: IValue<T6>,
708
+ v7: IValue<T7>,
709
+ v8: IValue<T8>,
710
+ v9: IValue<T9>,
711
+ ) : void;
712
+
713
+ get $ () : T;
714
+ set $ (value : T) : this;
715
+ on (handler : (value : T) => void) : this;
716
+ off (handler : (value : T) => void) : this;
717
+ enable () : this;
718
+ disable () : this;
719
+ }
720
+ declare export class Reference<T> extends IValue<T> {
721
+ value : T;
722
+ onchange : Set<(value : T) => void>;
723
+
724
+ constructor (value : T) : void;
725
+
726
+ get $ () : T;
727
+ set $ (value : T) : this;
728
+
729
+ enable () : this;
730
+ disable () : this;
731
+ on (handler : (value : T) => void) : this;
732
+ off (handler : (value : T) => void) : this;
733
+ }
734
+ declare export class Mirror<T> extends Reference<T> {
735
+ pointedValue : IValue<T>;
736
+ handler : (value : T) => void;
737
+ forwardOnly : boolean;
738
+
739
+ constructor (value : IValue<T>, forwardOnly : boolean) : void;
740
+ }
741
+ declare export class Pointer<T> extends Mirror<T> {
742
+
743
+ constructor (value : IValue<T>, forwardOnly : boolean) : void;
744
+
745
+ point (value : IValue<T>) : void;
746
+ }
747
+ declare export class BaseViewPrivate<K, T> extends RepeatNodePrivate<K> {
748
+ addHandler : (index : K, value : T) => void;
749
+ removeHandler : (index : K, value : T) => void;
750
+
751
+ constructor () : void;
752
+ }
753
+ declare export class BaseView<K, T, Model> extends RepeatNode<K, T> {
754
+ model : Model;
755
+
756
+ constructor ($1 : ?BaseViewPrivate<K, T>) : void;
757
+ }
758
+ declare export class ArrayView<T> extends BaseView<?T, T, ArrayModel<T>> {
759
+ constructor (model : ArrayModel<T>) : void;
760
+ createChild (id : ?T, item : T, before : ?Fragment) : any;
761
+ }
762
+ declare export class MapView<K, T> extends BaseView<K, T, MapModel<K, T>> {
763
+ constructor (model : MapModel<K, T>) : void;
764
+ }
765
+ declare export class ObjectView<T> extends BaseView<string, T, ObjectModel<T>> {
766
+ constructor (model : ObjectModel<T>) : void;
767
+ }
768
+ declare export class RepeatNodePrivate<IdT> extends INodePrivate {
769
+ nodes : Map<IdT, Fragment>;
770
+
771
+ constructor () : void;
772
+ }
773
+ declare export class RepeatNode<IdT, T> extends Fragment {
774
+ slot : Slot<Fragment, T, IdT>;
775
+ freezeUi : boolean;
776
+
777
+ constructor ($ : ?RepeatNodePrivate<IdT>) : void;
778
+
779
+ createChild (id : IdT, item : T, before : ?Fragment) : any;
780
+ destroyChild (id : IdT, item : T) : void;
781
+ }
782
+ declare export class RepeaterPrivate<IdT> extends RepeatNodePrivate<IdT> {
783
+ updateHandler : (value: number) => void;
784
+ currentCount : number;
785
+
786
+ constructor () : void;
787
+ }
788
+ declare export class Repeater extends RepeatNode<number, number> {
789
+ count : IValue<number>;
790
+
791
+ constructor ($ : ?RepeaterPrivate<number>) : void;
792
+
793
+ changeCount (number : number) : void;
794
+ }
795
+ declare export class SetView<T> extends BaseView<T, T, SetModel<T>> {
796
+ constructor (model : SetModel<T>) : void;
797
+ }
798
+ declare export class AttributeBinding extends Binding<?string> {
799
+ constructor (
800
+ node : INode,
801
+ name : string,
802
+ value : IValue<?string>
803
+ ) : void;
804
+
805
+ bound (name : string) : (rt : INode, ts : INode, value : ?string) => void;
806
+ }
807
+ declare export class Binding<T> extends Destroyable {
808
+ binding : IValue<T>;
809
+ updateFunc : (value: T) => void;
810
+
811
+ constructor (
812
+ node : INode,
813
+ name : string,
814
+ value : IValue<T>
815
+ ) : void;
816
+
817
+ bound (name : string) : (rt : INode, ts : INode, value : T) => void;
818
+ $destroy () : void;
819
+ }
820
+ declare export class ClassBinding extends Binding<string | boolean> {
821
+
822
+ constructor (
823
+ node : INode,
824
+ name : string,
825
+ value : IValue<string | boolean>
826
+ ) : void;
827
+
828
+ bound (name : string) : (rt : INode, ts : INode, value : string | boolean) => void;
829
+ }
830
+ declare export class StyleBinding extends Binding<string> {
831
+ constructor (
832
+ node : INode,
833
+ name : string,
834
+ value : IValue<string>
835
+ ) : void;
836
+
837
+ bound (name : string) : (rt : INode, ts : INode, value : string) => void;
838
+ }
839
+ }