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.
Files changed (151) hide show
  1. package/.gitlab-ci.yml +20 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +160 -119
  4. package/cdn/es2015.js +3221 -0
  5. package/cdn/es5.js +3673 -0
  6. package/flow-typed/vasille.js +837 -0
  7. package/lib/binding/attribute.js +32 -0
  8. package/lib/binding/binding.js +39 -0
  9. package/lib/binding/class.js +51 -0
  10. package/lib/binding/style.js +29 -0
  11. package/lib/core/core.js +178 -0
  12. package/lib/core/destroyable.js +45 -0
  13. package/lib/core/errors.js +16 -0
  14. package/lib/core/executor.js +154 -0
  15. package/lib/core/ivalue.js +56 -0
  16. package/lib/core/signal.js +50 -0
  17. package/lib/core/slot.js +47 -0
  18. package/lib/index.js +27 -22
  19. package/lib/models/array-model.js +208 -0
  20. package/lib/models/listener.js +130 -0
  21. package/lib/models/map-model.js +66 -0
  22. package/lib/models/model.js +1 -0
  23. package/lib/models/object-model.js +78 -0
  24. package/lib/models/set-model.js +62 -0
  25. package/lib/node/app.js +38 -0
  26. package/lib/node/interceptor.js +83 -0
  27. package/lib/node/node.js +1202 -0
  28. package/lib/node/watch.js +27 -0
  29. package/lib/value/expression.js +83 -0
  30. package/lib/value/mirror.js +58 -0
  31. package/lib/value/pointer.js +26 -0
  32. package/lib/value/reference.js +55 -0
  33. package/lib/views/array-view.js +23 -0
  34. package/lib/views/base-view.js +49 -0
  35. package/lib/views/map-view.js +20 -0
  36. package/lib/views/object-view.js +20 -0
  37. package/lib/views/repeat-node.js +106 -0
  38. package/lib/views/repeater.js +63 -0
  39. package/lib/views/set-view.js +23 -0
  40. package/package.json +27 -19
  41. package/types/binding/attribute.d.ts +23 -0
  42. package/types/binding/binding.d.ts +30 -0
  43. package/types/binding/class.d.ts +23 -0
  44. package/types/binding/style.d.ts +23 -0
  45. package/types/core/core.d.ts +140 -0
  46. package/types/core/destroyable.d.ts +15 -0
  47. package/types/core/errors.d.ts +4 -0
  48. package/types/core/executor.d.ts +87 -0
  49. package/types/core/ivalue.d.ts +45 -0
  50. package/types/core/signal.d.ts +35 -0
  51. package/types/core/slot.d.ts +45 -0
  52. package/types/index.d.ts +27 -21
  53. package/types/models/array-model.d.ts +103 -0
  54. package/types/models/listener.d.ts +74 -0
  55. package/types/models/map-model.d.ts +35 -0
  56. package/types/models/model.d.ts +19 -0
  57. package/types/models/object-model.d.ts +36 -0
  58. package/types/models/set-model.d.ts +34 -0
  59. package/types/node/app.d.ts +37 -0
  60. package/types/node/interceptor.d.ts +50 -0
  61. package/types/node/node.d.ts +741 -0
  62. package/types/node/watch.d.ts +23 -0
  63. package/types/value/expression.d.ts +60 -0
  64. package/types/value/mirror.d.ts +35 -0
  65. package/types/value/pointer.d.ts +19 -0
  66. package/types/value/reference.d.ts +30 -0
  67. package/types/views/array-view.d.ts +13 -0
  68. package/types/views/base-view.d.ts +43 -0
  69. package/types/views/map-view.d.ts +11 -0
  70. package/types/views/object-view.d.ts +11 -0
  71. package/types/views/repeat-node.d.ts +35 -0
  72. package/types/views/repeater.d.ts +38 -0
  73. package/types/views/set-view.d.ts +11 -0
  74. package/CHANGELOG.md +0 -23
  75. package/img/favicon.svg +0 -441
  76. package/img/getLocus.svg +0 -18
  77. package/img/logo.png +0 -0
  78. package/img/logo.svg +0 -550
  79. package/img/scores-o-log.png +0 -0
  80. package/img/scores-o.png +0 -0
  81. package/img/scores-wo-log.png +0 -0
  82. package/img/scores-wo.png +0 -0
  83. package/img/x1-x32.png +0 -0
  84. package/lib/attribute.js +0 -71
  85. package/lib/attribute.js.map +0 -1
  86. package/lib/bind.js +0 -286
  87. package/lib/bind.js.map +0 -1
  88. package/lib/class.js +0 -97
  89. package/lib/class.js.map +0 -1
  90. package/lib/executor.js +0 -167
  91. package/lib/executor.js.map +0 -1
  92. package/lib/index.js.map +0 -1
  93. package/lib/interfaces/core.js +0 -247
  94. package/lib/interfaces/core.js.map +0 -1
  95. package/lib/interfaces/destroyable.js +0 -39
  96. package/lib/interfaces/destroyable.js.map +0 -1
  97. package/lib/interfaces/errors.js +0 -49
  98. package/lib/interfaces/errors.js.map +0 -1
  99. package/lib/interfaces/ibind.js +0 -31
  100. package/lib/interfaces/ibind.js.map +0 -1
  101. package/lib/interfaces/idefinition.js +0 -64
  102. package/lib/interfaces/idefinition.js.map +0 -1
  103. package/lib/interfaces/ivalue.js +0 -60
  104. package/lib/interfaces/ivalue.js.map +0 -1
  105. package/lib/models.js +0 -579
  106. package/lib/models.js.map +0 -1
  107. package/lib/node.js +0 -2155
  108. package/lib/node.js.map +0 -1
  109. package/lib/property.js +0 -38
  110. package/lib/property.js.map +0 -1
  111. package/lib/style.js +0 -66
  112. package/lib/style.js.map +0 -1
  113. package/lib/value.js +0 -203
  114. package/lib/value.js.map +0 -1
  115. package/lib/views.js +0 -688
  116. package/lib/views.js.map +0 -1
  117. package/src/attribute.js +0 -70
  118. package/src/bind.js +0 -285
  119. package/src/class.js +0 -96
  120. package/src/executor.js +0 -165
  121. package/src/index.js +0 -20
  122. package/src/interfaces/core.js +0 -248
  123. package/src/interfaces/destroyable.js +0 -37
  124. package/src/interfaces/errors.js +0 -47
  125. package/src/interfaces/ibind.js +0 -29
  126. package/src/interfaces/idefinition.js +0 -62
  127. package/src/interfaces/ivalue.js +0 -58
  128. package/src/models.js +0 -577
  129. package/src/node.js +0 -2162
  130. package/src/property.js +0 -36
  131. package/src/style.js +0 -65
  132. package/src/value.js +0 -201
  133. package/src/views.js +0 -686
  134. package/types/attribute.d.ts +0 -18
  135. package/types/bind.d.ts +0 -72
  136. package/types/class.d.ts +0 -19
  137. package/types/data.d.ts +0 -11
  138. package/types/event.d.ts +0 -10
  139. package/types/executor.d.ts +0 -57
  140. package/types/interfaces/core.d.ts +0 -129
  141. package/types/interfaces/destroyable.d.ts +0 -11
  142. package/types/interfaces/errors.d.ts +0 -24
  143. package/types/interfaces/ibind.d.ts +0 -19
  144. package/types/interfaces/idefinition.d.ts +0 -29
  145. package/types/interfaces/ivalue.d.ts +0 -40
  146. package/types/models.d.ts +0 -179
  147. package/types/node.d.ts +0 -906
  148. package/types/property.d.ts +0 -9
  149. package/types/style.d.ts +0 -28
  150. package/types/value.d.ts +0 -43
  151. package/types/views.d.ts +0 -135
@@ -0,0 +1,837 @@
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
+ ) : IValue<T>;
91
+ $bind<T, T1, T2> (
92
+ func : (a1 : T1, a2 : T2) => T,
93
+ v1: IValue<T1>, v2: IValue<T2>,
94
+ ) : IValue<T>;
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
+ ) : IValue<T>;
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
+ ) : IValue<T>;
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
+ ) : IValue<T>;
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
+ ) : IValue<T>;
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
+ ) : IValue<T>;
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
+ ) : IValue<T>;
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
+ ) : IValue<T>;
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
+ callback1 : ($ : T) => void
329
+ ) : this;
330
+ $if (
331
+ cond : IValue<boolean>,
332
+ cb : (node : Fragment) => void
333
+ ) : this ;
334
+ $if_else (
335
+ ifCond : IValue<boolean>,
336
+ ifCb : (node : Fragment) => void,
337
+ elseCb : (node : Fragment) => void
338
+ ) : this;
339
+ $switch (
340
+ ...cases : Array<{ cond : IValue<boolean>, cb : (node : Fragment) => void }>
341
+ ) : this;
342
+ $case (cond : IValue<boolean>, cb : (node : Fragment) => void)
343
+ : {cond : IValue<boolean>, cb : (node : Fragment) => void};
344
+ $default (cb: (node : Fragment) => void)
345
+ : {cond : IValue<boolean>, cb : (node : Fragment) => void};
346
+ }
347
+ declare export class TextNodePrivate extends FragmentPrivate {
348
+ node : Text;
349
+
350
+ constructor () : void;
351
+ preinitText (app : AppNode, parent: Fragment, text : IValue<string>) : void;
352
+ }
353
+ declare export class TextNode extends Fragment {
354
+ $ : TextNodePrivate;
355
+ constructor () : void;
356
+
357
+ $preinit (app : AppNode, parent : Fragment, text : ?IValue<string>) : void;
358
+ }
359
+ declare export class INodePrivate extends FragmentPrivate {
360
+
361
+ unmounted : boolean;
362
+ node : Element;
363
+
364
+ constructor () : void;
365
+ }
366
+ declare export class INode extends Fragment {
367
+ $ : INodePrivate;
368
+
369
+ constructor ($ : ?INodePrivate) : void;
370
+ $init () : this;
371
+ $createAttrs () : void;
372
+ $createStyle () : void;
373
+ $attr (name : string, value : IValue<?string>) : this;
374
+ $bindAttr<T1> (
375
+ name : string,
376
+ calculator : (a1 : T1) => string,
377
+ v1 : IValue<T1>,
378
+ ) : this;
379
+ $bindAttr<T1, T2> (
380
+ name : string,
381
+ calculator : (a1 : T1, a2 : T2) => string,
382
+ v1 : IValue<T1>, v2 : IValue<T2>,
383
+ ) : this;
384
+ $bindAttr<T1, T2, T3> (
385
+ name : string,
386
+ calculator : (a1 : T1, a2 : T2, a3 : T3) => string,
387
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
388
+ ) : this;
389
+ $bindAttr<T1, T2, T3, T4> (
390
+ name : string,
391
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => string,
392
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
393
+ v4 : IValue<T4>,
394
+ ) : this;
395
+ $bindAttr<T1, T2, T3, T4, T5> (
396
+ name : string,
397
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => string,
398
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
399
+ v4 : IValue<T4>, v5 : IValue<T5>,
400
+ ) : this;
401
+ $bindAttr<T1, T2, T3, T4, T5, T6> (
402
+ name : string,
403
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => string,
404
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
405
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
406
+ ) : this;
407
+ $bindAttr<T1, T2, T3, T4, T5, T6, T7> (
408
+ name : string,
409
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => string,
410
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
411
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
412
+ v7 : IValue<T7>,
413
+ ) : this;
414
+ $bindAttr<T1, T2, T3, T4, T5, T6, T7, T8> (
415
+ name : string,
416
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => string,
417
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
418
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
419
+ v7 : IValue<T7>, v8 : IValue<T8>,
420
+ ) : this;
421
+ $bindAttr<T1, T2, T3, T4, T5, T6, T7, T8, T9> (
422
+ name : string,
423
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => string,
424
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
425
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
426
+ v7 : IValue<T7>, v8 : IValue<T8>, v9 : IValue<T9>,
427
+ ) : this;
428
+ $setAttr (
429
+ name : string,
430
+ value : string
431
+ ) : this;
432
+ $addClass (cl : string) : this;
433
+ $addClasses (...cl : Array<string>) : this;
434
+ $bindClass (
435
+ className : IValue<string>
436
+ ) : this;
437
+ $floatingClass (cond : IValue<boolean>, className : string) : this;
438
+ $style (name : string, value : IValue<string>) : this;
439
+ $bindStyle<T1> (
440
+ name : string,
441
+ calculator : (a1 : T1) => string,
442
+ v1 : IValue<T1>,
443
+ ) : this;
444
+ $bindStyle<T1, T2> (
445
+ name : string,
446
+ calculator : (a1 : T1, a2 : T2) => string,
447
+ v1 : IValue<T1>, v2 : IValue<T2>,
448
+ ) : this;
449
+ $bindStyle<T1, T2, T3> (
450
+ name : string,
451
+ calculator : (a1 : T1, a2 : T2, a3 : T3) => string,
452
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
453
+ ) : this;
454
+ $bindStyle<T1, T2, T3, T4> (
455
+ name : string,
456
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => string,
457
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
458
+ v4 : IValue<T4>,
459
+ ) : this;
460
+ $bindStyle<T1, T2, T3, T4, T5> (
461
+ name : string,
462
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => string,
463
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
464
+ v4 : IValue<T4>, v5 : IValue<T5>,
465
+ ) : this;
466
+ $bindStyle<T1, T2, T3, T4, T5, T6> (
467
+ name : string,
468
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => string,
469
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
470
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
471
+ ) : this;
472
+ $bindStyle<T1, T2, T3, T4, T5, T6, T7> (
473
+ name : string,
474
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => string,
475
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
476
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
477
+ v7 : IValue<T7>,
478
+ ) : this;
479
+ $bindStyle<T1, T2, T3, T4, T5, T6, T7, T8> (
480
+ name : string,
481
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => string,
482
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
483
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
484
+ v7 : IValue<T7>, v8 : IValue<T8>,
485
+ ) : this;
486
+ $bindStyle<T1, T2, T3, T4, T5, T6, T7, T8, T9> (
487
+ name : string,
488
+ calculator : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => string,
489
+ v1 : IValue<T1>, v2 : IValue<T2>, v3 : IValue<T3>,
490
+ v4 : IValue<T4>, v5 : IValue<T5>, v6 : IValue<T6>,
491
+ v7 : IValue<T7>, v8 : IValue<T8>, v9 : IValue<T9>,
492
+ ) : this;
493
+ $setStyle (
494
+ prop : string,
495
+ value : string
496
+ ) : this;
497
+ $listen (name : string, handler : (ev : any) => void, options : ?EventListenerOptionsOrUseCapture) : this;
498
+ $oncontextmenu (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
499
+ $onmousedown (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
500
+ $onmouseenter (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
501
+ $onmouseleave (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
502
+ $onmousemove (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
503
+ $onmouseout (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
504
+ $onmouseover (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
505
+ $onmouseup (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
506
+ $onclick (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
507
+ $ondblclick (handler : (ev : MouseEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
508
+ $onblur (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
509
+ $onfocus (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
510
+ $onfocusin (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
511
+ $onfocusout (handler : (ev : FocusEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
512
+ $onkeydown (handler : (ev : KeyboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
513
+ $onkeyup (handler : (ev : KeyboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
514
+ $onkeypress (handler : (ev : KeyboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
515
+ $ontouchstart (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
516
+ $ontouchmove (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
517
+ $ontouchend (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
518
+ $ontouchcancel (handler : (ev : TouchEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
519
+ $onwheel (handler : (ev : WheelEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
520
+ $onabort (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
521
+ $onerror (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
522
+ $onload (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
523
+ $onloadend (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
524
+ $onloadstart (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
525
+ $onprogress (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
526
+ $ontimeout (handler : (ev : ProgressEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
527
+ $ondrag (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
528
+ $ondragend (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
529
+ $ondragenter (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
530
+ $ondragexit (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
531
+ $ondragleave (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
532
+ $ondragover (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
533
+ $ondragstart (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
534
+ $ondrop (handler : (ev : DragEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
535
+ $onpointerover (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
536
+ $onpointerenter (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
537
+ $onpointerdown (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
538
+ $onpointermove (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
539
+ $onpointerup (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
540
+ $onpointercancel (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
541
+ $onpointerout (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
542
+ $onpointerleave (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
543
+ $ongotpointercapture (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
544
+ $onlostpointercapture (handler : (ev : PointerEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
545
+ $onanimationstart (handler : (ev : AnimationEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
546
+ $onanimationend (handler : (ev : AnimationEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
547
+ $onanimationiteraton (handler : (ev : AnimationEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
548
+ $onclipboardchange (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
549
+ $oncut (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
550
+ $oncopy (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
551
+ $onpaste (handler : (ev : ClipboardEvent) => void, options : ?EventListenerOptionsOrUseCapture) : this;
552
+ $$insertAdjacent (node : Node) : void;
553
+ $bindShow (cond : IValue<boolean>) : this;
554
+ $html (value : IValue<string>) : void;
555
+ }
556
+ declare export class Tag extends INode {
557
+
558
+ constructor () : void;
559
+
560
+ $preinit (app : AppNode, parent : Fragment, tagName : ?string) : void;
561
+ $$appendNode(node: Node): void;
562
+ $bindMount(cond: IValue<boolean>): this;
563
+ }
564
+ declare export class Extension extends INode {
565
+ $preinit (app : AppNode, parent : Fragment) : void;
566
+
567
+ constructor ($ : ?INodePrivate) : void;
568
+ }
569
+ declare export class Component extends Extension {
570
+ constructor () : void;
571
+
572
+ $mounted () : void;
573
+ }
574
+ declare export class SwitchedNodePrivate extends INodePrivate {
575
+ index : number;
576
+ extension : ?Extension;
577
+ cases : { cond : IValue<boolean>, cb : (node : Fragment) => void }[];
578
+ sync : () => void;
579
+
580
+ constructor () : void;
581
+ }
582
+ declare class SwitchedNode extends Extension {
583
+ constructor ($ : ?SwitchedNodePrivate) : void;
584
+ setCases (cases : Array<{ cond : IValue<boolean>, cb : (node : Fragment) => void }>) : void;
585
+ createChild (cb : (node : Fragment) => void) : void;
586
+ $ready () : void;
587
+ }
588
+ declare export class DebugPrivate extends FragmentPrivate {
589
+ node : Comment;
590
+
591
+ constructor () : void;
592
+
593
+ preinitComment (app : AppNode, parent: Fragment, text : IValue<string>) : void;
594
+ }
595
+ declare export class DebugNode extends Fragment {
596
+ $ : DebugPrivate;
597
+
598
+ constructor () : void;
599
+
600
+ $preinit (app : AppNode, parent : Fragment, text : ?IValue<string>) : void;
601
+ }
602
+ declare export class Watch<T> extends Fragment {
603
+ slot : Slot<T>;
604
+ model : IValue<T>;
605
+
606
+ constructor () : void;
607
+
608
+ $createWatchers () : void;
609
+ }
610
+ declare export class Expression<
611
+ T, T1 = void, T2 = void, T3 = void, T4 = void, T5 = void, T6 = void, T7 = void, T8 = void, T9 = void
612
+ > extends IValue<T> {
613
+ values : [
614
+ IValue<T1>,
615
+ IValue<T2>,
616
+ IValue<T3>,
617
+ IValue<T4>,
618
+ IValue<T5>,
619
+ IValue<T6>,
620
+ IValue<T7>,
621
+ IValue<T8>,
622
+ IValue<T9>
623
+ ];
624
+ valuesCache : [T1, T2, T3, T4, T5, T6, T7, T8, T9];
625
+ func : (i ? : number) => void;
626
+ linkedFunc : Array<() => void>;
627
+ sync : Reference<T>;
628
+
629
+ constructor (
630
+ func : (a1 : T1) => T,
631
+ link : boolean,
632
+ v1: IValue<T1>,
633
+ ) : void;
634
+ constructor (
635
+ func : (a1 : T1, a2 : T2) => T,
636
+ link : boolean,
637
+ v1: IValue<T1>,
638
+ v2: IValue<T2>,
639
+ ) : void;
640
+ constructor (
641
+ func : (a1 : T1, a2 : T2, a3 : T3) => T,
642
+ link : boolean,
643
+ v1: IValue<T1>,
644
+ v2: IValue<T2>,
645
+ v3: IValue<T3>,
646
+ ) : void;
647
+ constructor (
648
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4) => T,
649
+ link : boolean,
650
+ v1: IValue<T1>,
651
+ v2: IValue<T2>,
652
+ v3: IValue<T3>,
653
+ v4: IValue<T4>,
654
+ ) : void;
655
+ constructor (
656
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5) => T,
657
+ link : boolean,
658
+ v1: IValue<T1>,
659
+ v2: IValue<T2>,
660
+ v3: IValue<T3>,
661
+ v4: IValue<T4>,
662
+ v5: IValue<T5>,
663
+ ) : void;
664
+ constructor (
665
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6) => T,
666
+ link : boolean,
667
+ v1: IValue<T1>,
668
+ v2: IValue<T2>,
669
+ v3: IValue<T3>,
670
+ v4: IValue<T4>,
671
+ v5: IValue<T5>,
672
+ v6: IValue<T6>,
673
+ ) : void;
674
+ constructor (
675
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7) => T,
676
+ link : boolean,
677
+ v1: IValue<T1>,
678
+ v2: IValue<T2>,
679
+ v3: IValue<T3>,
680
+ v4: IValue<T4>,
681
+ v5: IValue<T5>,
682
+ v6: IValue<T6>,
683
+ v7: IValue<T7>,
684
+ ) : void;
685
+ constructor (
686
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8) => T,
687
+ link : boolean,
688
+ v1: IValue<T1>,
689
+ v2: IValue<T2>,
690
+ v3: IValue<T3>,
691
+ v4: IValue<T4>,
692
+ v5: IValue<T5>,
693
+ v6: IValue<T6>,
694
+ v7: IValue<T7>,
695
+ v8: IValue<T8>,
696
+ ) : void;
697
+ constructor (
698
+ func : (a1 : T1, a2 : T2, a3 : T3, a4 : T4, a5 : T5, a6 : T6, a7 : T7, a8 : T8, a9 : T9) => T,
699
+ link : boolean,
700
+ v1: IValue<T1>,
701
+ v2: IValue<T2>,
702
+ v3: IValue<T3>,
703
+ v4: IValue<T4>,
704
+ v5: IValue<T5>,
705
+ v6: IValue<T6>,
706
+ v7: IValue<T7>,
707
+ v8: IValue<T8>,
708
+ v9: IValue<T9>,
709
+ ) : void;
710
+
711
+ get $ () : T;
712
+ set $ (value : T) : this;
713
+ on (handler : (value : T) => void) : this;
714
+ off (handler : (value : T) => void) : this;
715
+ enable () : this;
716
+ disable () : this;
717
+ }
718
+ declare export class Reference<T> extends IValue<T> {
719
+ value : T;
720
+ onchange : Set<(value : T) => void>;
721
+
722
+ constructor (value : T) : void;
723
+
724
+ get $ () : T;
725
+ set $ (value : T) : this;
726
+
727
+ enable () : this;
728
+ disable () : this;
729
+ on (handler : (value : T) => void) : this;
730
+ off (handler : (value : T) => void) : this;
731
+ }
732
+ declare export class Mirror<T> extends Reference<T> {
733
+ pointedValue : IValue<T>;
734
+ handler : (value : T) => void;
735
+ forwardOnly : boolean;
736
+
737
+ constructor (value : IValue<T>, forwardOnly : boolean) : void;
738
+ }
739
+ declare export class Pointer<T> extends Mirror<T> {
740
+
741
+ constructor (value : IValue<T>, forwardOnly : boolean) : void;
742
+
743
+ point (value : IValue<T>) : void;
744
+ }
745
+ declare export class BaseViewPrivate<K, T> extends RepeatNodePrivate<K> {
746
+ addHandler : (index : K, value : T) => void;
747
+ removeHandler : (index : K, value : T) => void;
748
+
749
+ constructor () : void;
750
+ }
751
+ declare export class BaseView<K, T, Model> extends RepeatNode<K, T> {
752
+ model : Model;
753
+
754
+ constructor ($1 : ?BaseViewPrivate<K, T>) : void;
755
+ }
756
+ declare export class ArrayView<T> extends BaseView<?T, T, ArrayModel<T>> {
757
+ constructor () : void;
758
+ createChild (id : ?T, item : T, before : ?Fragment) : any;
759
+ }
760
+ declare export class MapView<K, T> extends BaseView<K, T, MapModel<K, T>> {
761
+ constructor () : void;
762
+ }
763
+ declare export class ObjectView<T> extends BaseView<string, T, ObjectModel<T>> {
764
+ constructor () : void;
765
+ }
766
+ declare export class RepeatNodePrivate<IdT> extends INodePrivate {
767
+ nodes : Map<IdT, Fragment>;
768
+
769
+ constructor () : void;
770
+ }
771
+ declare export class RepeatNode<IdT, T> extends Fragment {
772
+ slot : Slot<T, IdT>;
773
+ freezeUi : boolean;
774
+
775
+ constructor ($ : ?RepeatNodePrivate<IdT>) : void;
776
+
777
+ createChild (id : IdT, item : T, before : ?Fragment) : any;
778
+ destroyChild (id : IdT, item : T) : void;
779
+ }
780
+ declare export class RepeaterPrivate<IdT> extends RepeatNodePrivate<IdT> {
781
+ updateHandler : (value: number) => void;
782
+ currentCount : number;
783
+
784
+ constructor () : void;
785
+ }
786
+ declare export class Repeater extends RepeatNode<number, number> {
787
+ count : IValue<number>;
788
+
789
+ constructor ($ : ?RepeaterPrivate<number>) : void;
790
+
791
+ changeCount (number : number) : void;
792
+ }
793
+ declare export class SetView<T> extends BaseView<T, T, SetModel<T>> {
794
+ constructor () : void;
795
+ }
796
+ declare export class AttributeBinding extends Binding<?string> {
797
+ constructor (
798
+ node : INode,
799
+ name : string,
800
+ value : IValue<?string>
801
+ ) : void;
802
+
803
+ bound (name : string) : (rt : INode, ts : INode, value : ?string) => void;
804
+ }
805
+ declare export class Binding<T> extends Destroyable {
806
+ binding : IValue<T>;
807
+ updateFunc : (value: T) => void;
808
+
809
+ constructor (
810
+ node : INode,
811
+ name : string,
812
+ value : IValue<T>
813
+ ) : void;
814
+
815
+ bound (name : string) : (rt : INode, ts : INode, value : T) => void;
816
+ $destroy () : void;
817
+ }
818
+ declare export class ClassBinding extends Binding<string | boolean> {
819
+
820
+ constructor (
821
+ node : INode,
822
+ name : string,
823
+ value : IValue<string | boolean>
824
+ ) : void;
825
+
826
+ bound (name : string) : (rt : INode, ts : INode, value : string | boolean) => void;
827
+ }
828
+ declare export class StyleBinding extends Binding<string> {
829
+ constructor (
830
+ node : INode,
831
+ name : string,
832
+ value : IValue<string>
833
+ ) : void;
834
+
835
+ bound (name : string) : (rt : INode, ts : INode, value : string) => void;
836
+ }
837
+ }