Index: third_party/polymer/v0_8/components-chromium/polymer/src/standard/annotations-extracted.js |
diff --git a/third_party/polymer/v0_8/components-chromium/polymer/src/standard/annotations-extracted.js b/third_party/polymer/v0_8/components-chromium/polymer/src/standard/annotations-extracted.js |
deleted file mode 100644 |
index 54230fe0f0732d7db26302ba0009ce0c835589e4..0000000000000000000000000000000000000000 |
--- a/third_party/polymer/v0_8/components-chromium/polymer/src/standard/annotations-extracted.js |
+++ /dev/null |
@@ -1,183 +0,0 @@ |
- |
- |
-/** |
- * Scans a template to produce an annotation object that stores expression |
- * metadata along with information to associate the metadata with nodes in an |
- * instance. |
- * |
- * Elements with `id` in the template are noted and marshaled into an |
- * the `$` hash in an instance. |
- * |
- * Example |
- * |
- * <template> |
- * <div id="foo"></div> |
- * </template> |
- * <script> |
- * Polymer({ |
- * task: function() { |
- * this.$.foo.style.color = 'red'; |
- * } |
- * }); |
- * </script> |
- * |
- * Other expressions that are noted include: |
- * |
- * Double-mustache annotations in text content. The annotation must be the only |
- * content in the tag, compound expressions are not (currently) supported. |
- * |
- * <[tag]>{{path.to.host.property}}<[tag]> |
- * |
- * Double-mustache annotations in an attribute. |
- * |
- * <[tag] someAttribute="{{path.to.host.property}}"><[tag]> |
- * |
- * Only immediate host properties can automatically trigger side-effects. |
- * Setting `host.path` in the example above triggers the binding, setting |
- * `host.path.to.host.property` does not. |
- * |
- * `on-` style event declarations. |
- * |
- * <[tag] on-<event-name>="{{hostMethodName}}"><[tag]> |
- * |
- * Note: **the `annotations` feature does not actually implement the behaviors |
- * associated with these expressions, it only captures the data**. |
- * |
- * Other optional features contain actual data implementations. |
- * |
- * @class standard feature: annotations |
- */ |
- |
-/* |
- |
-Scans a template to produce an annotation map that stores expression metadata |
-and information that associates the metadata to nodes in a template instance. |
- |
-Supported annotations are: |
- |
- * id attributes |
- * binding annotations in text nodes |
- * double-mustache expressions: {{expression}} |
- * double-bracket expressions: [[expression]] |
- * binding annotations in attributes |
- * attribute-bind expressions: name="{{expression}} || [[expression]]" |
- * property-bind expressions: name*="{{expression}} || [[expression]]" |
- * property-bind expressions: name:="expression" |
- * event annotations |
- * event delegation directives: on-<eventName>="expression" |
- |
-Generated data-structure: |
- |
- [ |
- { |
- id: '<id>', |
- events: [ |
- { |
- mode: ['auto'|''], |
- name: '<name>' |
- value: '<expression>' |
- }, ... |
- ], |
- bindings: [ |
- { |
- kind: ['text'|'attribute'|'property'], |
- mode: ['auto'|''], |
- name: '<name>' |
- value: '<expression>' |
- }, ... |
- ], |
- // TODO(sjmiles): confusingly, this is annotation-parent, not node-parent |
- parent: <reference to parent annotation>, |
- index: <integer index in parent's childNodes collection> |
- }, |
- ... |
- ] |
- |
-TODO(sjmiles): this module should produce either syntactic metadata |
-(e.g. double-mustache, double-bracket, star-attr), or semantic metadata |
-(e.g. manual-bind, auto-bind, property-bind). Right now it's half and half. |
- |
-*/ |
- |
- Polymer.Base._addFeature({ |
- |
- // registration-time |
- |
- _prepAnnotations: function() { |
- if (!this._template) { |
- this._notes = []; |
- } else { |
- // TODO(sorvell): ad hoc method of plugging behavior into Annotations |
- Polymer.Annotations.prepElement = this._prepElement.bind(this); |
- this._notes = Polymer.Annotations.parseAnnotations(this._template); |
- Polymer.Annotations.prepElement = null; |
- } |
- }, |
- |
- _prepElement: function(element) { |
- Polymer.ResolveUrl.resolveAttrs(element, this._template.ownerDocument); |
- }, |
- |
- // instance-time |
- |
- findAnnotatedNode: Polymer.Annotations.findAnnotatedNode, |
- |
- // marshal all teh things |
- _marshalAnnotationReferences: function() { |
- if (this._template) { |
- this._marshalIdNodes(); |
- this._marshalAnnotatedNodes(); |
- this._marshalAnnotatedListeners(); |
- } |
- }, |
- |
- // push configuration references at configure time |
- _configureAnnotationReferences: function() { |
- this._configureTemplateContent(); |
- }, |
- |
- // nested template contents have been stored prototypically to avoid |
- // unnecessary duplication, here we put references to the |
- // indirected contents onto the nested template instances |
- _configureTemplateContent: function() { |
- this._notes.forEach(function(note) { |
- if (note.templateContent) { |
- var template = this.findAnnotatedNode(this.root, note); |
- template._content = note.templateContent; |
- } |
- }, this); |
- }, |
- |
- // construct `$` map (from id annotations) |
- _marshalIdNodes: function() { |
- this.$ = {}; |
- this._notes.forEach(function(a) { |
- if (a.id) { |
- this.$[a.id] = this.findAnnotatedNode(this.root, a); |
- } |
- }, this); |
- }, |
- |
- // concretize `_nodes` map (from anonymous annotations) |
- _marshalAnnotatedNodes: function() { |
- if (this._nodes) { |
- this._nodes = this._nodes.map(function(a) { |
- return this.findAnnotatedNode(this.root, a); |
- }, this); |
- } |
- }, |
- |
- // install event listeners (from event annotations) |
- _marshalAnnotatedListeners: function() { |
- this._notes.forEach(function(a) { |
- if (a.events && a.events.length) { |
- var node = this.findAnnotatedNode(this.root, a); |
- a.events.forEach(function(e) { |
- this.listen(node, e.name, e.value); |
- }, this); |
- } |
- }, this); |
- } |
- |
- }); |
- |