| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // TODO(jmesserly): more commentary here. | 5 // TODO(jmesserly): more commentary here. |
| 6 /** | 6 /** |
| 7 * This library provides access to Model-Driven-Views APIs on HTML elements. | 7 * This library provides access to Model-Driven-Views APIs on HTML elements. |
| 8 * More information can be found at: <https://github.com/toolkitchen/mdv>. | 8 * More information can be found at: <https://github.com/toolkitchen/mdv>. |
| 9 */ | 9 */ |
| 10 library mdv; | 10 library mdv; |
| 11 | 11 |
| 12 import 'dart:async'; | 12 import 'dart:async'; |
| 13 import 'dart:collection'; | 13 import 'dart:collection'; |
| 14 import 'dart:html'; | 14 import 'dart:html'; |
| 15 import 'dart:math' as math; | 15 import 'dart:math' as math; |
| 16 import 'package:observe/observe.dart'; | 16 import 'package:observe/observe.dart'; |
| 17 | 17 |
| 18 // TODO(jmesserly): get this from somewhere else. See http://dartbug.com/4161. | 18 // TODO(jmesserly): get this from somewhere else. See http://dartbug.com/4161. |
| 19 import 'package:serialization/src/serialization_helpers.dart' show IdentityMap; | 19 import 'package:serialization/src/serialization_helpers.dart' show IdentityMap; |
| 20 | 20 |
| 21 part 'src/bindings.dart'; | |
| 22 part 'src/element.dart'; | 21 part 'src/element.dart'; |
| 22 part 'src/input_bindings.dart'; |
| 23 part 'src/input_element.dart'; | 23 part 'src/input_element.dart'; |
| 24 part 'src/node.dart'; | 24 part 'src/node.dart'; |
| 25 part 'src/select_element.dart'; | 25 part 'src/select_element.dart'; |
| 26 part 'src/template.dart'; | 26 part 'src/template.dart'; |
| 27 part 'src/template_iterator.dart'; |
| 27 part 'src/text.dart'; | 28 part 'src/text.dart'; |
| 29 part 'src/text_area_element.dart'; |
| 28 | 30 |
| 29 /** Initialize the Model-Driven Views polyfill. */ | 31 /** Initialize the Model-Driven Views polyfill. */ |
| 30 void initialize() { | 32 void initialize() { |
| 31 TemplateElement.mdvPackage = _mdv; | 33 TemplateElement.mdvPackage = _mdv; |
| 32 } | 34 } |
| 33 | 35 |
| 34 StreamController<DocumentFragment> _instanceCreated; | 36 StreamController<DocumentFragment> _instanceCreated; |
| 35 | 37 |
| 36 /** | 38 /** |
| 37 * *Warning*: This is an implementation helper for Model-Driven Views and | 39 * *Warning*: This is an implementation helper for Model-Driven Views and |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 final Expando _mdvExpando = new Expando('mdv'); | 81 final Expando _mdvExpando = new Expando('mdv'); |
| 80 | 82 |
| 81 _mdv(node) { | 83 _mdv(node) { |
| 82 var wrapper = _mdvExpando[node]; | 84 var wrapper = _mdvExpando[node]; |
| 83 if (wrapper != null) return wrapper; | 85 if (wrapper != null) return wrapper; |
| 84 | 86 |
| 85 if (node is InputElement) { | 87 if (node is InputElement) { |
| 86 wrapper = new _InputElementExtension(node); | 88 wrapper = new _InputElementExtension(node); |
| 87 } else if (node is SelectElement) { | 89 } else if (node is SelectElement) { |
| 88 wrapper = new _SelectElementExtension(node); | 90 wrapper = new _SelectElementExtension(node); |
| 91 } else if (node is TextAreaElement) { |
| 92 wrapper = new _TextAreaElementExtension(node); |
| 89 } else if (node is Element) { | 93 } else if (node is Element) { |
| 90 if (node.isTemplate) { | 94 if (node.isTemplate) { |
| 91 wrapper = new _TemplateExtension(node); | 95 wrapper = new _TemplateExtension(node); |
| 92 } else { | 96 } else { |
| 93 wrapper = new _ElementExtension(node); | 97 wrapper = new _ElementExtension(node); |
| 94 } | 98 } |
| 95 } else if (node is Text) { | 99 } else if (node is Text) { |
| 96 wrapper = new _TextExtension(node); | 100 wrapper = new _TextExtension(node); |
| 97 } else if (node is Node) { | 101 } else if (node is Node) { |
| 98 wrapper = new _NodeExtension(node); | 102 wrapper = new _NodeExtension(node); |
| 99 } else { | 103 } else { |
| 100 // TODO(jmesserly): this happens for things like CompoundBinding. | 104 // TODO(jmesserly): this happens for things like CompoundBinding. |
| 101 wrapper = node; | 105 wrapper = node; |
| 102 } | 106 } |
| 103 | 107 |
| 104 _mdvExpando[node] = wrapper; | 108 _mdvExpando[node] = wrapper; |
| 105 return wrapper; | 109 return wrapper; |
| 106 } | 110 } |
| OLD | NEW |