vasille 1.2.6 → 2.0.0

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