- Rename `DirectiveMetadata` into `CompileDirectiveMetadata`, merge with `NormalizedDirectiveMetadata` and remove `ChangeDetectionMetadata` - Store change detector factories not as array but directly at the `CompiledTemplate` or the embedded template to make instantiation easier later on - Already analyze variable values and map them to `Directive.exportAs` - Keep the directive sort order as specified in the `@View()` annotation - Allow to clear the runtime cache in `StyleCompiler` and `TemplateCompiler` - Ignore `script` elements to match the semantics of the current compiler - Make all components dynamically loadable and remove the previously introduced property `@Component#dynamicLoadable` for now until we find a better option to configure this - Don’t allow to specify bindings in `@View#directives` and `@View#pipes` as this was never supported by the transformer (see below for the breaking change) BREAKING CHANGE: - don't support DI bindings in `@View#directives` and `@View@pipes` any more in preparation of integrating the new compiler. Use `@Directive#bindings` to reexport directives under a different token instead. Part of #3605 Closes #4314
166 lines
4.1 KiB
Dart
166 lines
4.1 KiB
Dart
library angular2.src.core.metadata;
|
|
|
|
import 'package:angular2/src/core/facade/collection.dart' show List;
|
|
import 'package:angular2/src/core/change_detection/change_detection.dart';
|
|
import './metadata/di.dart';
|
|
import './metadata/directives.dart';
|
|
import './metadata/view.dart';
|
|
|
|
export './metadata/di.dart';
|
|
export './metadata/directives.dart';
|
|
export './metadata/view.dart';
|
|
|
|
/**
|
|
* See: [DirectiveMetadata] for docs.
|
|
*/
|
|
class Directive extends DirectiveMetadata {
|
|
const Directive({String selector, List<String> properties,
|
|
List<String> events, Map<String, String> host,
|
|
List bindings, String exportAs, String moduleId,
|
|
Map<String, dynamic> queries,
|
|
bool compileChildren: true})
|
|
: super(
|
|
selector: selector,
|
|
properties: properties,
|
|
events: events,
|
|
host: host,
|
|
bindings: bindings,
|
|
exportAs: exportAs,
|
|
moduleId: moduleId,
|
|
queries: queries,
|
|
compileChildren: compileChildren);
|
|
}
|
|
|
|
/**
|
|
* See: [ComponentMetadata] for docs.
|
|
*/
|
|
class Component extends ComponentMetadata {
|
|
const Component({String selector, List<String> properties,
|
|
List<String> events, Map<String, String> host,
|
|
List bindings, String exportAs, String moduleId,
|
|
Map<String, dynamic> queries,
|
|
bool compileChildren, List viewBindings, ChangeDetectionStrategy changeDetection})
|
|
: super(
|
|
selector: selector,
|
|
properties: properties,
|
|
events: events,
|
|
host: host,
|
|
bindings: bindings,
|
|
exportAs: exportAs,
|
|
moduleId: moduleId,
|
|
compileChildren: compileChildren,
|
|
viewBindings: viewBindings,
|
|
queries: queries,
|
|
changeDetection: changeDetection);
|
|
}
|
|
|
|
/**
|
|
* See: [ViewMetadata] for docs.
|
|
*/
|
|
class View extends ViewMetadata {
|
|
const View({String templateUrl, String template, dynamic directives,
|
|
dynamic pipes, ViewEncapsulation encapsulation, List<String> styles,
|
|
List<String> styleUrls})
|
|
: super(
|
|
templateUrl: templateUrl,
|
|
template: template,
|
|
directives: directives,
|
|
pipes: pipes,
|
|
encapsulation: encapsulation,
|
|
styles: styles,
|
|
styleUrls: styleUrls);
|
|
}
|
|
|
|
/**
|
|
* See: [PipeMetadata] for docs.
|
|
*/
|
|
class Pipe extends PipeMetadata {
|
|
const Pipe({name, pure}) : super(name: name, pure: pure);
|
|
}
|
|
|
|
/**
|
|
* See: [AttributeMetadata] for docs.
|
|
*/
|
|
class Attribute extends AttributeMetadata {
|
|
const Attribute(String attributeName) : super(attributeName);
|
|
}
|
|
|
|
/**
|
|
* See: [QueryMetadata] for docs.
|
|
*/
|
|
class Query extends QueryMetadata {
|
|
const Query(dynamic /*Type | string*/ selector, {bool descendants: false})
|
|
: super(selector, descendants: descendants);
|
|
}
|
|
|
|
/**
|
|
* See: [ContentChildrenMetadata] for docs.
|
|
*/
|
|
class ContentChildren extends ContentChildrenMetadata {
|
|
const ContentChildren(dynamic /*Type | string*/ selector, {bool descendants: false})
|
|
: super(selector, descendants: descendants);
|
|
}
|
|
|
|
/**
|
|
* See: [ContentChildMetadata] for docs.
|
|
*/
|
|
class ContentChild extends ContentChildMetadata {
|
|
const ContentChild(dynamic /*Type | string*/ selector)
|
|
: super(selector);
|
|
}
|
|
|
|
/**
|
|
* See: [ViewQueryMetadata] for docs.
|
|
*/
|
|
class ViewQuery extends ViewQueryMetadata {
|
|
const ViewQuery(dynamic /*Type | string*/ selector)
|
|
: super(selector, descendants: true);
|
|
}
|
|
|
|
/**
|
|
* See: [ViewChildrenMetadata] for docs.
|
|
*/
|
|
class ViewChildren extends ViewChildrenMetadata {
|
|
const ViewChildren(dynamic /*Type | string*/ selector)
|
|
: super(selector);
|
|
}
|
|
|
|
/**
|
|
* See: [ViewChildMetadata] for docs.
|
|
*/
|
|
class ViewChild extends ViewChildMetadata {
|
|
const ViewChild(dynamic /*Type | string*/ selector)
|
|
: super(selector);
|
|
}
|
|
|
|
/**
|
|
* See: [PropertyMetadata] for docs.
|
|
*/
|
|
class Property extends PropertyMetadata {
|
|
const Property([String bindingPropertyName])
|
|
: super(bindingPropertyName);
|
|
}
|
|
|
|
/**
|
|
* See: [EventMetadata] for docs.
|
|
*/
|
|
class Event extends EventMetadata {
|
|
const Event([String bindingPropertyName])
|
|
: super(bindingPropertyName);
|
|
}
|
|
|
|
/**
|
|
* See: [HostBindingMetadata] for docs.
|
|
*/
|
|
class HostBinding extends HostBindingMetadata {
|
|
const HostBinding([String hostPropertyName])
|
|
: super(hostPropertyName);
|
|
}
|
|
|
|
/**
|
|
* See: [HostListenerMetadata] for docs.
|
|
*/
|
|
class HostListener extends HostListenerMetadata {
|
|
const HostListener(String eventName, [List<String> args])
|
|
: super(eventName, args);
|
|
} |