BREAKING CHANGE: - Platform pipes can only contain types and arrays of types, but no bindings any more. - When using transformers, platform pipes need to be specified explicitly in the pubspec.yaml via the new config option `platform_pipes`. - `Compiler.compileInHost` now returns a `HostViewFactoryRef` - Component view is not yet created when component constructor is called. -> use `onInit` lifecycle callback to access the view of a component - `ViewRef#setLocal` has been moved to new type `EmbeddedViewRef` - `internalView` is gone, use `EmbeddedViewRef.rootNodes` to access the root nodes of an embedded view - `renderer.setElementProperty`, `..setElementStyle`, `..setElementAttribute` now take a native element instead of an ElementRef - `Renderer` interface now operates on plain native nodes, instead of `RenderElementRef`s or `RenderViewRef`s Closes #5993
55 lines
1.7 KiB
TypeScript
55 lines
1.7 KiB
TypeScript
import {StringWrapper, isBlank} from 'angular2/src/facade/lang';
|
|
|
|
var MODULE_REGEXP = /#MODULE\[([^\]]*)\]/g;
|
|
|
|
export function moduleRef(moduleUrl): string {
|
|
return `#MODULE[${moduleUrl}]`;
|
|
}
|
|
|
|
/**
|
|
* Represents generated source code with module references. Internal to the Angular compiler.
|
|
*/
|
|
export class SourceModule {
|
|
static getSourceWithoutImports(sourceWithModuleRefs: string): string {
|
|
return StringWrapper.replaceAllMapped(sourceWithModuleRefs, MODULE_REGEXP, (match) => '');
|
|
}
|
|
|
|
constructor(public moduleUrl: string, public sourceWithModuleRefs: string) {}
|
|
|
|
getSourceWithImports(): SourceWithImports {
|
|
var moduleAliases = {};
|
|
var imports: string[][] = [];
|
|
var newSource =
|
|
StringWrapper.replaceAllMapped(this.sourceWithModuleRefs, MODULE_REGEXP, (match) => {
|
|
var moduleUrl = match[1];
|
|
var alias = moduleAliases[moduleUrl];
|
|
if (isBlank(alias)) {
|
|
if (moduleUrl == this.moduleUrl) {
|
|
alias = '';
|
|
} else {
|
|
alias = `import${imports.length}`;
|
|
imports.push([moduleUrl, alias]);
|
|
}
|
|
moduleAliases[moduleUrl] = alias;
|
|
}
|
|
return alias.length > 0 ? `${alias}.` : '';
|
|
});
|
|
return new SourceWithImports(newSource, imports);
|
|
}
|
|
}
|
|
|
|
export class SourceExpression {
|
|
constructor(public declarations: string[], public expression: string) {}
|
|
}
|
|
|
|
export class SourceExpressions {
|
|
constructor(public declarations: string[], public expressions: string[]) {}
|
|
}
|
|
|
|
/**
|
|
* Represents generated source code with imports. Internal to the Angular compiler.
|
|
*/
|
|
export class SourceWithImports {
|
|
constructor(public source: string, public imports: string[][]) {}
|
|
}
|