BREAKING CHANGE:
- Renderer:
* renderComponent method is removed form `Renderer`, only present on `RootRenderer`
* Renderer.setDebugInfo is removed. Renderer.createElement / createText / createTemplateAnchor
now take the DebugInfo directly.
- Query semantics:
* Queries don't work with dynamically loaded components.
* e.g. for router-outlet: loaded components can't be queries via @ViewQuery,
but router-outlet emits an event `activate` now that emits the activated component
- Exception classes and the context inside changed (renamed fields)
- DebugElement.attributes is an Object and not a Map in JS any more
- ChangeDetectorGenConfig was renamed into CompilerConfig
- AppViewManager.createEmbeddedViewInContainer / AppViewManager.createHostViewInContainer
are removed, use the methods in ViewContainerRef instead
- Change detection order changed:
* 1. dirty check component inputs
* 2. dirty check content children
* 3. update render nodes
Closes #6301
Closes #6567
26 lines
860 B
TypeScript
26 lines
860 B
TypeScript
import {IS_DART, StringWrapper, Math, isBlank} from 'angular2/src/facade/lang';
|
|
|
|
export var MODULE_SUFFIX = IS_DART ? '.dart' : '';
|
|
|
|
var CAMEL_CASE_REGEXP = /([A-Z])/g;
|
|
var DASH_CASE_REGEXP = /-([a-z])/g;
|
|
|
|
export function camelCaseToDashCase(input: string): string {
|
|
return StringWrapper.replaceAllMapped(input, CAMEL_CASE_REGEXP,
|
|
(m) => { return '-' + m[1].toLowerCase(); });
|
|
}
|
|
|
|
export function dashCaseToCamelCase(input: string): string {
|
|
return StringWrapper.replaceAllMapped(input, DASH_CASE_REGEXP,
|
|
(m) => { return m[1].toUpperCase(); });
|
|
}
|
|
|
|
export function splitAtColon(input: string, defaultValues: string[]): string[] {
|
|
var parts = StringWrapper.split(input.trim(), /\s*:\s*/g);
|
|
if (parts.length > 1) {
|
|
return parts;
|
|
} else {
|
|
return defaultValues;
|
|
}
|
|
}
|