polymer-rails 0.2.8 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -3
  3. data/app/assets/javascripts/polymer/polymer-micro.html +36 -0
  4. data/app/assets/javascripts/polymer/polymer-mini.html +45 -0
  5. data/app/assets/javascripts/polymer/polymer.html +59 -11
  6. data/app/assets/javascripts/polymer/src/lib/annotations/annotations.html +262 -0
  7. data/app/assets/javascripts/polymer/src/lib/annotations/demo/app-chrome.html +60 -0
  8. data/app/assets/javascripts/polymer/src/lib/array-observe.html +118 -0
  9. data/app/assets/javascripts/polymer/src/lib/array-splice.html +262 -0
  10. data/app/assets/javascripts/polymer/src/lib/async.html +68 -0
  11. data/app/assets/javascripts/polymer/src/lib/base.html +117 -0
  12. data/app/assets/javascripts/polymer/src/lib/bind/accessors.html +223 -0
  13. data/app/assets/javascripts/polymer/src/lib/bind/demo/app-chrome.html +28 -0
  14. data/app/assets/javascripts/polymer/src/lib/bind/demo/app.html +29 -0
  15. data/app/assets/javascripts/polymer/src/lib/bind/demo/src/annotations-bind-demo.html +76 -0
  16. data/app/assets/javascripts/polymer/src/lib/bind/demo/src/bind-demo.html +83 -0
  17. data/app/assets/javascripts/polymer/src/lib/bind/effects.html +80 -0
  18. data/app/assets/javascripts/polymer/src/lib/case-map.html +46 -0
  19. data/app/assets/javascripts/polymer/src/lib/collection.html +179 -0
  20. data/app/assets/javascripts/polymer/src/lib/css-parse.html +131 -0
  21. data/app/assets/javascripts/polymer/src/lib/debounce.html +69 -0
  22. data/app/assets/javascripts/polymer/src/lib/dom-api.html +467 -0
  23. data/app/assets/javascripts/polymer/src/lib/dom-module.html +68 -0
  24. data/app/assets/javascripts/polymer/src/lib/event-api.html +92 -0
  25. data/app/assets/javascripts/polymer/src/lib/expr/focus.html +22 -0
  26. data/app/assets/javascripts/polymer/src/lib/expr/gestures.html +1 -0
  27. data/app/assets/javascripts/polymer/src/lib/expr/log.html +21 -0
  28. data/app/assets/javascripts/polymer/src/lib/expr/sinspect.html +235 -0
  29. data/app/assets/javascripts/polymer/src/lib/expr/style-auditor.html +123 -0
  30. data/app/assets/javascripts/polymer/src/lib/expr/style-protector.html +52 -0
  31. data/app/assets/javascripts/polymer/src/lib/gestures.html +284 -0
  32. data/app/assets/javascripts/polymer/src/lib/lang.html +21 -0
  33. data/app/assets/javascripts/polymer/src/lib/module.html +56 -0
  34. data/app/assets/javascripts/polymer/src/lib/polymer-bootstrap.html +78 -0
  35. data/app/assets/javascripts/polymer/src/lib/resolve-url.html +82 -0
  36. data/app/assets/javascripts/polymer/src/lib/settings.html +52 -0
  37. data/app/assets/javascripts/polymer/src/lib/style-defaults.html +32 -0
  38. data/app/assets/javascripts/polymer/src/lib/style-transformer.html +185 -0
  39. data/app/assets/javascripts/polymer/src/lib/style-util.html +77 -0
  40. data/app/assets/javascripts/polymer/src/lib/template/templatizer.html +132 -0
  41. data/app/assets/javascripts/polymer/src/lib/template/x-array-selector.html +178 -0
  42. data/app/assets/javascripts/polymer/src/lib/template/x-autobind.html +80 -0
  43. data/app/assets/javascripts/polymer/src/lib/template/x-if.html +115 -0
  44. data/app/assets/javascripts/polymer/src/lib/template/x-repeat.html +510 -0
  45. data/app/assets/javascripts/polymer/src/lib/template/x-template.html +39 -0
  46. data/app/assets/javascripts/polymer/src/lib/x-style.html +115 -0
  47. data/app/assets/javascripts/polymer/src/micro/attributes.html +180 -0
  48. data/app/assets/javascripts/polymer/src/micro/constructor.html +74 -0
  49. data/app/assets/javascripts/polymer/src/micro/extends.html +79 -0
  50. data/app/assets/javascripts/polymer/src/micro/mixins.html +40 -0
  51. data/app/assets/javascripts/polymer/src/micro/properties.html +96 -0
  52. data/app/assets/javascripts/polymer/src/micro/tag.html +28 -0
  53. data/app/assets/javascripts/polymer/src/mini/ready.html +180 -0
  54. data/app/assets/javascripts/polymer/src/mini/shadow.html +41 -0
  55. data/app/assets/javascripts/polymer/src/mini/shady.html +365 -0
  56. data/app/assets/javascripts/polymer/src/mini/template.html +56 -0
  57. data/app/assets/javascripts/polymer/src/polymer-lib.html +15 -0
  58. data/app/assets/javascripts/polymer/src/standard/annotations.html +198 -0
  59. data/app/assets/javascripts/polymer/src/standard/configure.html +160 -0
  60. data/app/assets/javascripts/polymer/src/standard/effects.html +215 -0
  61. data/app/assets/javascripts/polymer/src/standard/events.html +127 -0
  62. data/app/assets/javascripts/polymer/src/standard/notify-path.html +260 -0
  63. data/app/assets/javascripts/polymer/src/standard/resolveUrl.html +27 -0
  64. data/app/assets/javascripts/polymer/src/standard/styling.html +157 -0
  65. data/app/assets/javascripts/polymer/src/standard/utils.html +158 -0
  66. data/app/assets/javascripts/polymer/src/standard/x-styling.html +300 -0
  67. data/app/assets/javascripts/webcomponentsjs/webcomponents-lite.js +2270 -0
  68. data/lib/generators/polymer/component/templates/component.html.erb +3 -3
  69. data/lib/generators/polymer/install/install_generator.rb +1 -1
  70. data/lib/polymer-rails/version.rb +1 -1
  71. metadata +80 -5
  72. data/app/assets/javascripts/polymer/layout.html +0 -286
  73. data/app/assets/javascripts/polymer/polymer.js +0 -14
  74. data/app/assets/javascripts/polymer/webcomponents.js +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0fbee666073b2caf266683b8fbce3fb4ac8454d6
4
- data.tar.gz: a53c122512f6d8ad2186bfe62b22c71c138ccc76
3
+ metadata.gz: deef29327e7cacd3555ebf35a6a764b468fd9dd3
4
+ data.tar.gz: 2632584344b12ababcd62cf92357325f11b7cc13
5
5
  SHA512:
6
- metadata.gz: 1a95b6ccd2509198964e812f20fe68d033d69a4f87cda32c588d9ae59344217f35dc3fe6254cdbc4e3ef1e801962449eb7c921eaad6c74e1e6eb9383e7217cab
7
- data.tar.gz: bd5b46fde3267dd6c4ab221759b3063c621174b863dab8a3280a3e8024a466ba664b8b561023efdc99d2e71d9b6d0ead1f45b68b8c8a38324075bc0f8d5c0e74
6
+ metadata.gz: 733ba2dbc846cafb3ad9790f121ec8a276e5235f94c3b70d168009818cbc98c9ccef37ac1fabd369e33b9022b4e987ad48bed672ce1b4a0e5bf0bb1844c4eac9
7
+ data.tar.gz: fc83137fc6b4bf93a4e4f48262c246e576197aa55f5514d9344ca205045c0daeceff7884c4df6fdd7eef92b477734148caef4a1e4d88dac9906e17880d2ed0f1
data/README.md CHANGED
@@ -15,6 +15,16 @@ This assets will be automatically compiled and required into component html file
15
15
  * Note that if you're using sass or coffe precompilation, assets are required to use '.css.sass' and '.js.coffee' extensions.*
16
16
 
17
17
 
18
+ ## Versions
19
+ Consider the 0.8 release to be our proposed API for 1.0. It is an “alpha” release — we fully expect some breaking changes as a result of the feedback we get.
20
+
21
+ This release is intended for early adopters who want to test out the new APIs and provide feedback. This release is optimized for performance and size, and is not yet a feature-complete replacement for 0.5.
22
+
23
+ 0.8.x release is not compatible with the 0.5 APIs. For guidance on migrating an existing 0.5 element to the 0.8 APIs, see the [Migration guide](https://www.polymer-project.org/0.8/docs/migration.html).
24
+
25
+ * `0.2.x` Releases include Polymer versions `0.5.x`
26
+ * `0.3.x` Releases include Polymer versions `0.8.x`
27
+
18
28
 
19
29
  ## Installation
20
30
 
@@ -36,7 +46,7 @@ Or install it yourself as:
36
46
 
37
47
  $ rails g polymer:install
38
48
 
39
- - This generator adds `//= require polymer/webcomponents` into `application.js` manifest file
49
+ - This generator adds `//= require webcomponentsjs/webcomponents-lite` into `application.js` manifest file
40
50
  - Creates `app/assets/components` and `application.html` manifest file where you can include all your components.
41
51
  - Creates `vendor/assets/components` directory for third-party web components.
42
52
 
@@ -49,10 +59,10 @@ to import web components manifest to your app.
49
59
 
50
60
  This generates new `<component-name>` component directory and `.html`, `.css`, `.js` files of the same name under `app/assets/components` folder.
51
61
 
52
- Add your component to manifest file after requiring webcomponents:
62
+ Add your component to `.html` manifest file after requiring polymer:
53
63
 
54
64
  //
55
- //= require polymer/webcomponents
65
+ //= require polymer/polymer
56
66
  //= require component-name/component-name
57
67
 
58
68
  And you can use your component in Rails application!
@@ -0,0 +1,36 @@
1
+ <!--
2
+ @license
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+ <link rel="import" href="src/polymer-lib.html">
11
+ <link rel="import" href="src/micro/tag.html">
12
+ <link rel="import" href="src/micro/mixins.html">
13
+ <link rel="import" href="src/micro/extends.html">
14
+ <link rel="import" href="src/micro/constructor.html">
15
+ <link rel="import" href="src/micro/properties.html">
16
+ <link rel="import" href="src/micro/attributes.html">
17
+
18
+ <script>
19
+
20
+ Polymer.Base.addFeature({
21
+
22
+ registerFeatures: function() {
23
+ this._prepIs();
24
+ this._prepMixins();
25
+ this._prepExtends();
26
+ this._prepConstructor();
27
+ },
28
+
29
+ initFeatures: function() {
30
+ this._marshalAttributes();
31
+ }
32
+
33
+ });
34
+
35
+ </script>
36
+
@@ -0,0 +1,45 @@
1
+ <!--
2
+ @license
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+
11
+ <link rel="import" href="polymer-micro.html">
12
+
13
+ <link rel="import" href="src/mini/template.html">
14
+ <link rel="import" href="src/mini/ready.html">
15
+ <link rel="import" href="src/mini/shady.html">
16
+ <link rel="import" href="src/mini/shadow.html">
17
+
18
+ <script>
19
+
20
+ Polymer.DomModule = document.createElement('dom-module');
21
+
22
+ Polymer.Base.addFeature({
23
+
24
+ registerFeatures: function() {
25
+ this._prepIs();
26
+ this._prepMixins();
27
+ this._prepExtends();
28
+ this._prepConstructor();
29
+ this._prepTemplate();
30
+ this._prepContent();
31
+ },
32
+
33
+ initFeatures: function() {
34
+ this._poolContent();
35
+ this._pushHost();
36
+ this._stampTemplate();
37
+ this._popHost();
38
+ this._marshalAttributes();
39
+ this._readyContent();
40
+ }
41
+
42
+ });
43
+
44
+ </script>
45
+
@@ -1,11 +1,59 @@
1
- <!--
2
- Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
3
- This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4
- The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5
- The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6
- Code distributed by Google as part of the polymer project is also
7
- subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8
- -->
9
-
10
- <link rel="import" href="layout.html">
11
- <script src="polymer.js"></script>
1
+ <!--
2
+ @license
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+
11
+ <link rel="import" href="polymer-mini.html">
12
+
13
+ <link rel="import" href="src/standard/annotations.html">
14
+ <link rel="import" href="src/standard/events.html">
15
+ <link rel="import" href="src/standard/utils.html">
16
+ <link rel="import" href="src/standard/effects.html">
17
+ <link rel="import" href="src/standard/configure.html">
18
+ <link rel="import" href="src/standard/notify-path.html">
19
+ <link rel="import" href="src/standard/resolveUrl.html">
20
+ <link rel="import" href="src/standard/styling.html">
21
+ <link rel="import" href="src/standard/x-styling.html">
22
+
23
+ <script>
24
+
25
+ Polymer.Base.addFeature({
26
+
27
+ registerFeatures: function() {
28
+ this._prepIs();
29
+ this._prepMixins();
30
+ this._prepExtends();
31
+ this._prepConstructor();
32
+ this._prepTemplate();
33
+ this._prepAnnotations();
34
+ this._prepEffects();
35
+ this._prepContent();
36
+ },
37
+
38
+ initFeatures: function() {
39
+ this._poolContent();
40
+ this._setupConfigure();
41
+ this._pushHost();
42
+ this._stampTemplate();
43
+ this._popHost();
44
+ this._marshalAnnotationReferences();
45
+ this._marshalInstanceEffects();
46
+ this._marshalAttributes();
47
+ this._marshalListeners();
48
+ this._readyContent();
49
+ }
50
+
51
+ });
52
+
53
+ </script>
54
+
55
+ <link rel="import" href="src/lib/x-style.html">
56
+ <link rel="import" href="src/lib/template/x-autobind.html">
57
+ <link rel="import" href="src/lib/template/x-template.html">
58
+ <link rel="import" href="src/lib/template/x-repeat.html">
59
+ <link rel="import" href="src/lib/template/x-array-selector.html">
@@ -0,0 +1,262 @@
1
+ <!--
2
+ @license
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+ <link rel="import" href="../module.html">
11
+ <link rel="import" href="../case-map.html">
12
+
13
+ <script>
14
+ /**
15
+ * Scans a template to produce an annotation list that that associates
16
+ * metadata culled from markup with tree locations
17
+ * metadata and information to associate the metadata with nodes in an instance.
18
+ *
19
+ * Supported expressions include:
20
+ *
21
+ * Double-mustache annotations in text content. The annotation must be the only
22
+ * content in the tag, compound expressions are not supported.
23
+ *
24
+ * <[tag]>{{annotation}}<[tag]>
25
+ *
26
+ * Double-escaped annotations in an attribute, either {{}} or [[]].
27
+ *
28
+ * <[tag] someAttribute="{{annotation}}" another="[[annotation]]"><[tag]>
29
+ *
30
+ * `on-` style event declarations.
31
+ *
32
+ * <[tag] on-<event-name>="annotation"><[tag]>
33
+ *
34
+ * Note that the `annotations` feature does not implement any behaviors
35
+ * associated with these expressions, it only captures the data.
36
+ *
37
+ * Generated data-structure:
38
+ *
39
+ * [
40
+ * {
41
+ * id: '<id>',
42
+ * events: [
43
+ * {
44
+ * name: '<name>'
45
+ * value: '<annotation>'
46
+ * }, ...
47
+ * ],
48
+ * bindings: [
49
+ * {
50
+ * kind: ['text'|'attribute'],
51
+ * mode: ['{'|'['],
52
+ * name: '<name>'
53
+ * value: '<annotation>'
54
+ * }, ...
55
+ * ],
56
+ * // TODO(sjmiles): this is annotation-parent, not node-parent
57
+ * parent: <reference to parent annotation object>,
58
+ * index: <integer index in parent's childNodes collection>
59
+ * },
60
+ * ...
61
+ * ]
62
+ *
63
+ * @class Template feature
64
+ */
65
+
66
+ // null-array (shared empty array to avoid null-checks)
67
+ Polymer.nar = [];
68
+
69
+ Polymer.Annotations = {
70
+
71
+ // preprocess-time
72
+
73
+ // construct and return a list of annotation records
74
+ // by scanning `template`'s content
75
+ //
76
+ parseAnnotations: function(template) {
77
+ var list = [];
78
+ var content = template._content || template.content;
79
+ this._parseNodeAnnotations(content, list);
80
+ return list;
81
+ },
82
+
83
+ // add annotations gleaned from subtree at `node` to `list`
84
+ _parseNodeAnnotations: function(node, list) {
85
+ return node.nodeType === Node.TEXT_NODE ?
86
+ this._parseTextNodeAnnotation(node, list) :
87
+ // TODO(sjmiles): are there other nodes we may encounter
88
+ // that are not TEXT_NODE but also not ELEMENT?
89
+ this._parseElementAnnotations(node, list);
90
+ },
91
+
92
+ // add annotations gleaned from TextNode `node` to `list`
93
+ _parseTextNodeAnnotation: function(node, list) {
94
+ var v = node.textContent, escape = v.slice(0, 2);
95
+ if (escape === '{{' || escape === '[[') {
96
+ // NOTE: use a space here so the textNode remains; some browsers
97
+ // (IE) evacipate an empty textNode.
98
+ node.textContent = ' ';
99
+ var annote = {
100
+ bindings: [{
101
+ kind: 'text',
102
+ mode: escape[0],
103
+ value: v.slice(2, -2)
104
+ }]
105
+ };
106
+ list.push(annote);
107
+ return annote;
108
+ }
109
+ },
110
+
111
+ // add annotations gleaned from Element `node` to `list`
112
+ _parseElementAnnotations: function(element, list) {
113
+ var annote = {
114
+ bindings: [],
115
+ events: []
116
+ };
117
+ this._parseChildNodesAnnotations(element, annote, list);
118
+ // TODO(sjmiles): is this for non-ELEMENT nodes? If so, we should
119
+ // change the contract of this method, or filter these out above.
120
+ if (element.attributes) {
121
+ this._parseNodeAttributeAnnotations(element, annote, list);
122
+ // TODO(sorvell): ad hoc callback for doing work on elements while
123
+ // leveraging annotator's tree walk.
124
+ // Consider adding an node callback registry and moving specific
125
+ // processing out of this module.
126
+ if (this.prepElement) {
127
+ this.prepElement(element);
128
+ }
129
+ }
130
+ if (annote.bindings.length || annote.events.length || annote.id) {
131
+ list.push(annote);
132
+ }
133
+ return annote;
134
+ },
135
+
136
+ // add annotations gleaned from children of `root` to `list`, `root`'s
137
+ // `annote` is supplied as it is the annote.parent of added annotations
138
+ _parseChildNodesAnnotations: function(root, annote, list, callback) {
139
+ if (root.firstChild) {
140
+ for (var i=0, node=root.firstChild; node; node=node.nextSibling, i++){
141
+ if (node.localName === 'template') {
142
+ // TODO(sjmiles): simply altering the .content reference didn't
143
+ // work (there was some confusion, might need verification)
144
+ var content = document.createDocumentFragment();
145
+ content.appendChild(node.content);
146
+ // TODO(sjmiles): using `nar` to avoid unnecessary allocation;
147
+ // in general the handling of these arrays needs some cleanup
148
+ // in this module
149
+ list.push({
150
+ bindings: Polymer.nar,
151
+ events: Polymer.nar,
152
+ templateContent: content,
153
+ parent: annote,
154
+ index: i
155
+ });
156
+ }
157
+ //
158
+ var childAnnotation = this._parseNodeAnnotations(node, list, callback);
159
+ if (childAnnotation) {
160
+ childAnnotation.parent = annote;
161
+ childAnnotation.index = i;
162
+ }
163
+ }
164
+ }
165
+ },
166
+
167
+ // add annotation data from attributes to the `annotation` for node `node`
168
+ // TODO(sjmiles): the distinction between an `annotation` and
169
+ // `annotation data` is not as clear as it could be
170
+ // Walk attributes backwards, since removeAttribute can be vetoed by
171
+ // IE in certain cases (e.g. <input value="foo">), resulting in the
172
+ // attribute staying in the attributes list
173
+ _parseNodeAttributeAnnotations: function(node, annotation) {
174
+ for (var i=node.attributes.length-1, a; (a=node.attributes[i]); i--) {
175
+ var n = a.name, v = a.value;
176
+ // id
177
+ if (n === 'id') {
178
+ annotation.id = v;
179
+ }
180
+ // events (on-*)
181
+ else if (n.slice(0, 3) === 'on-') {
182
+ node.removeAttribute(n);
183
+ annotation.events.push({
184
+ name: n.slice(3),
185
+ value: v
186
+ });
187
+ }
188
+ // bindings (other attributes)
189
+ else {
190
+ var b = this._parseNodeAttributeAnnotation(node, n, v);
191
+ if (b) {
192
+ annotation.bindings.push(b);
193
+ }
194
+ }
195
+ }
196
+ },
197
+
198
+ // construct annotation data from a generic attribute, or undefined
199
+ _parseNodeAttributeAnnotation: function(node, n, v) {
200
+ var mode = '', escape = v.slice(0, 2), name = n;
201
+ if (escape === '{{' || escape === '[[') {
202
+ // Mode (one-way or two)
203
+ mode = escape[0];
204
+ v = v.slice(2, -2);
205
+ // Negate
206
+ var not = false;
207
+ if (v[0] == '!') {
208
+ v = v.substring(1);
209
+ not = true;
210
+ }
211
+ // Attribute or property
212
+ var kind = 'property';
213
+ if (n[n.length-1] == '$') {
214
+ name = n.slice(0, -1);
215
+ kind = 'attribute';
216
+ }
217
+ // Custom notification event
218
+ var notifyEvent, colon;
219
+ if (mode == '{' && (colon = v.indexOf('::')) > 0) {
220
+ notifyEvent = v.substring(colon + 2);
221
+ v = v.substring(0, colon);
222
+ }
223
+ // Remove annotation
224
+ node.removeAttribute(n);
225
+ // Case hackery: attributes are lower-case, but bind targets
226
+ // (properties) are case sensitive. Gambit is to map dash-case to
227
+ // camel-case: `foo-bar` becomes `fooBar`.
228
+ // Attribute bindings are excepted.
229
+ if (kind === 'property') {
230
+ name = Polymer.CaseMap.dashToCamelCase(name);
231
+ }
232
+ return {
233
+ kind: kind,
234
+ mode: mode,
235
+ name: name,
236
+ value: v,
237
+ negate: not,
238
+ event: notifyEvent
239
+ };
240
+ }
241
+ },
242
+
243
+ // instance-time
244
+
245
+ _localSubTree: function(node, host) {
246
+ return (node === host) ? node.childNodes :
247
+ (node.lightChildren || node.childNodes);
248
+ },
249
+
250
+ findAnnotatedNode: function(root, annote) {
251
+ // recursively ascend tree until we hit root
252
+ var parent = annote.parent &&
253
+ Polymer.Annotations.findAnnotatedNode(root, annote.parent);
254
+ // unwind the stack, returning the indexed node at each level
255
+ return !parent ? root :
256
+ Polymer.Annotations._localSubTree(parent, root)[annote.index];
257
+ }
258
+
259
+ };
260
+
261
+
262
+ </script>