From 7bc2d9a93aee7ee224ca7d6098edf0cb782f984c Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 27 May 2016 11:24:05 -0700 Subject: [PATCH] docs: add api stability indicators for @angular/common --- .../@angular/common/src/common_directives.ts | 2 ++ .../common/src/directives/core_directives.ts | 2 ++ .../common/src/directives/ng_class.ts | 2 ++ .../@angular/common/src/directives/ng_for.ts | 2 ++ .../@angular/common/src/directives/ng_if.ts | 2 ++ .../common/src/directives/ng_plural.ts | 7 +++++++ .../common/src/directives/ng_style.ts | 2 ++ .../common/src/directives/ng_switch.ts | 6 ++++++ .../src/directives/ng_template_outlet.ts | 2 ++ modules/@angular/common/src/forms.ts | 9 ++------- .../@angular/common/src/forms/directives.ts | 1 + .../directives/abstract_control_directive.ts | 2 ++ .../directives/checkbox_value_accessor.ts | 2 ++ .../src/forms/directives/control_container.ts | 2 ++ .../directives/control_value_accessor.ts | 3 +++ .../directives/default_value_accessor.ts | 2 ++ .../src/forms/directives/form_interface.ts | 2 ++ .../common/src/forms/directives/ng_control.ts | 2 ++ .../src/forms/directives/ng_control_group.ts | 2 ++ .../src/forms/directives/ng_control_name.ts | 2 ++ .../src/forms/directives/ng_control_status.ts | 2 ++ .../common/src/forms/directives/ng_form.ts | 2 ++ .../src/forms/directives/ng_form_control.ts | 2 ++ .../src/forms/directives/ng_form_model.ts | 2 ++ .../common/src/forms/directives/ng_model.ts | 2 ++ .../radio_control_value_accessor.ts | 2 ++ .../select_control_value_accessor.ts | 3 +++ .../common/src/forms/directives/validators.ts | 19 ++++++++++++++----- .../@angular/common/src/forms/form_builder.ts | 2 ++ modules/@angular/common/src/forms/model.ts | 8 +++++++- .../@angular/common/src/forms/validators.ts | 5 +++++ .../src/location/hash_location_strategy.ts | 2 ++ .../@angular/common/src/location/location.ts | 2 ++ .../common/src/location/location_strategy.ts | 3 +++ .../src/location/path_location_strategy.ts | 2 ++ .../common/src/location/platform_location.ts | 4 ++++ .../@angular/common/src/pipes/async_pipe.ts | 2 ++ .../@angular/common/src/pipes/common_pipes.ts | 2 ++ .../@angular/common/src/pipes/date_pipe.ts | 2 ++ .../common/src/pipes/i18n_plural_pipe.ts | 2 +- .../common/src/pipes/i18n_select_pipe.ts | 3 ++- .../@angular/common/src/pipes/json_pipe.ts | 4 ++-- .../common/src/pipes/lowercase_pipe.ts | 4 ++-- .../@angular/common/src/pipes/replace_pipe.ts | 4 ++++ .../@angular/common/src/pipes/slice_pipe.ts | 3 ++- .../common/src/pipes/uppercase_pipe.ts | 3 ++- .../@angular/core/testing/test_injector.ts | 4 ++-- .../integration_test/public_api_spec.ts | 1 - 48 files changed, 128 insertions(+), 24 deletions(-) diff --git a/modules/@angular/common/src/common_directives.ts b/modules/@angular/common/src/common_directives.ts index 4b5b5505ab..efa84f22c6 100644 --- a/modules/@angular/common/src/common_directives.ts +++ b/modules/@angular/common/src/common_directives.ts @@ -44,5 +44,7 @@ import {CORE_DIRECTIVES} from './directives'; * ... * } * ``` + * + * @experimental Contains forms which are experimental. */ export const COMMON_DIRECTIVES: Type[][] = /*@ts2dart_const*/[CORE_DIRECTIVES, FORM_DIRECTIVES]; diff --git a/modules/@angular/common/src/directives/core_directives.ts b/modules/@angular/common/src/directives/core_directives.ts index 3cc397897b..3e680937c2 100644 --- a/modules/@angular/common/src/directives/core_directives.ts +++ b/modules/@angular/common/src/directives/core_directives.ts @@ -46,6 +46,8 @@ import {NgPlural, NgPluralCase} from './ng_plural'; * ... * } * ``` + * + * @stable */ export const CORE_DIRECTIVES: Type[] = /*@ts2dart_const*/[ NgClass, diff --git a/modules/@angular/common/src/directives/ng_class.ts b/modules/@angular/common/src/directives/ng_class.ts index 66b051bd5b..29c9b9f1c0 100644 --- a/modules/@angular/common/src/directives/ng_class.ts +++ b/modules/@angular/common/src/directives/ng_class.ts @@ -72,6 +72,8 @@ import {StringMapWrapper, isListLikeIterable} from '../../src/facade/collection' * } * } * ``` + * + * @stable */ @Directive({selector: '[ngClass]', inputs: ['rawClass: ngClass', 'initialClasses: class']}) export class NgClass implements DoCheck, OnDestroy { diff --git a/modules/@angular/common/src/directives/ng_for.ts b/modules/@angular/common/src/directives/ng_for.ts index e9e82eab64..221172f7ed 100644 --- a/modules/@angular/common/src/directives/ng_for.ts +++ b/modules/@angular/common/src/directives/ng_for.ts @@ -76,6 +76,8 @@ export class NgForRow { * * See a [live demo](http://plnkr.co/edit/KVuXxDp0qinGDyo307QW?p=preview) for a more detailed * example. + * + * @stable */ @Directive({selector: '[ngFor][ngForOf]', inputs: ['ngForTrackBy', 'ngForOf', 'ngForTemplate']}) export class NgFor implements DoCheck { diff --git a/modules/@angular/common/src/directives/ng_if.ts b/modules/@angular/common/src/directives/ng_if.ts index a3b6ecb488..1037c55c9f 100644 --- a/modules/@angular/common/src/directives/ng_if.ts +++ b/modules/@angular/common/src/directives/ng_if.ts @@ -22,6 +22,8 @@ import {isBlank} from '../../src/facade/lang'; * - `
...
` * - `
...
` * - `` + * + * @stable */ @Directive({selector: '[ngIf]', inputs: ['ngIf']}) export class NgIf { diff --git a/modules/@angular/common/src/directives/ng_plural.ts b/modules/@angular/common/src/directives/ng_plural.ts index ed79280e95..60def2bbd5 100644 --- a/modules/@angular/common/src/directives/ng_plural.ts +++ b/modules/@angular/common/src/directives/ng_plural.ts @@ -15,6 +15,9 @@ import {SwitchView} from './ng_switch'; const _CATEGORY_DEFAULT = 'other'; +/** + * @experimental + */ export abstract class NgLocalization { abstract getPluralCategory(value: any): string; } /** @@ -71,6 +74,7 @@ export abstract class NgLocalization { abstract getPluralCategory(value: any): s * } * * ``` + * @experimental */ @Directive({selector: '[ngPluralCase]'}) @@ -84,6 +88,9 @@ export class NgPluralCase { } +/** + * @experimental + */ @Directive({selector: '[ngPlural]'}) export class NgPlural implements AfterContentInit { private _switchValue: number; diff --git a/modules/@angular/common/src/directives/ng_style.ts b/modules/@angular/common/src/directives/ng_style.ts index e721e3061d..07043989b2 100644 --- a/modules/@angular/common/src/directives/ng_style.ts +++ b/modules/@angular/common/src/directives/ng_style.ts @@ -59,6 +59,8 @@ import {isPresent, isBlank} from '../../src/facade/lang'; * * In this example the `font-style`, `font-size` and `font-weight` styles will be updated * based on the `style` property's value changes. + * + * @stable */ @Directive({selector: '[ngStyle]', inputs: ['rawStyle: ngStyle']}) export class NgStyle implements DoCheck { diff --git a/modules/@angular/common/src/directives/ng_switch.ts b/modules/@angular/common/src/directives/ng_switch.ts index b8893144e2..5ac0c6c17d 100644 --- a/modules/@angular/common/src/directives/ng_switch.ts +++ b/modules/@angular/common/src/directives/ng_switch.ts @@ -68,6 +68,8 @@ export class SwitchView { * * bootstrap(App).catch(err => console.error(err)); * ``` + * + * @experimental */ @Directive({selector: '[ngSwitch]', inputs: ['ngSwitch']}) export class NgSwitch { @@ -166,6 +168,8 @@ export class NgSwitch { * If multiple match expression match the switch expression value, all of them are displayed. * * See {@link NgSwitch} for more details and example. + * + * @experimental */ @Directive({selector: '[ngSwitchWhen]', inputs: ['ngSwitchWhen']}) export class NgSwitchWhen { @@ -193,6 +197,8 @@ export class NgSwitchWhen { * value. * * See {@link NgSwitch} for more details and example. + * + * @experimental */ @Directive({selector: '[ngSwitchDefault]'}) export class NgSwitchDefault { diff --git a/modules/@angular/common/src/directives/ng_template_outlet.ts b/modules/@angular/common/src/directives/ng_template_outlet.ts index b34ff8d610..8cb31e93a6 100644 --- a/modules/@angular/common/src/directives/ng_template_outlet.ts +++ b/modules/@angular/common/src/directives/ng_template_outlet.ts @@ -6,6 +6,8 @@ import {isPresent} from '../../src/facade/lang'; * * ### Syntax * - `` + * + * @experimental */ @Directive({selector: '[ngTemplateOutlet]'}) export class NgTemplateOutlet { diff --git a/modules/@angular/common/src/forms.ts b/modules/@angular/common/src/forms.ts index e2126eb4c4..13c6f31d74 100644 --- a/modules/@angular/common/src/forms.ts +++ b/modules/@angular/common/src/forms.ts @@ -52,12 +52,7 @@ import {Type} from '@angular/core'; * ```typescript * bootstrap(MyApp, [FORM_PROVIDERS]); * ``` + * + * @experimental */ export const FORM_PROVIDERS: Type[] = /*@ts2dart_const*/[FormBuilder, RadioControlRegistry]; - -/** - * See {@link FORM_PROVIDERS} instead. - * - * @deprecated - */ -export const FORM_BINDINGS = /*@ts2dart_const*/ FORM_PROVIDERS; diff --git a/modules/@angular/common/src/forms/directives.ts b/modules/@angular/common/src/forms/directives.ts index 7ef3b2215c..6f370f5796 100644 --- a/modules/@angular/common/src/forms/directives.ts +++ b/modules/@angular/common/src/forms/directives.ts @@ -71,6 +71,7 @@ export {ControlValueAccessor} from './directives/control_value_accessor'; * }) * class MyApp {} * ``` + * @experimental */ export const FORM_DIRECTIVES: Type[] = /*@ts2dart_const*/[ NgControlName, diff --git a/modules/@angular/common/src/forms/directives/abstract_control_directive.ts b/modules/@angular/common/src/forms/directives/abstract_control_directive.ts index 52c221e9f1..a5ffab45c7 100644 --- a/modules/@angular/common/src/forms/directives/abstract_control_directive.ts +++ b/modules/@angular/common/src/forms/directives/abstract_control_directive.ts @@ -6,6 +6,8 @@ import {unimplemented} from '../../../src/facade/exceptions'; * Base class for control directives. * * Only used internally in the forms module. + * + * @experimental */ export abstract class AbstractControlDirective { get control(): AbstractControl { return unimplemented(); } diff --git a/modules/@angular/common/src/forms/directives/checkbox_value_accessor.ts b/modules/@angular/common/src/forms/directives/checkbox_value_accessor.ts index 4c39bded97..15a1c9b238 100644 --- a/modules/@angular/common/src/forms/directives/checkbox_value_accessor.ts +++ b/modules/@angular/common/src/forms/directives/checkbox_value_accessor.ts @@ -14,6 +14,8 @@ export const CHECKBOX_VALUE_ACCESSOR: any = /*@ts2dart_const*/ { * ``` * * ``` + * + * @experimental */ @Directive({ selector: diff --git a/modules/@angular/common/src/forms/directives/control_container.ts b/modules/@angular/common/src/forms/directives/control_container.ts index a84ad46430..e321b51aa8 100644 --- a/modules/@angular/common/src/forms/directives/control_container.ts +++ b/modules/@angular/common/src/forms/directives/control_container.ts @@ -5,6 +5,8 @@ import {AbstractControlDirective} from './abstract_control_directive'; * A directive that contains multiple {@link NgControl}s. * * Only used by the forms module. + * + * @experimental */ export class ControlContainer extends AbstractControlDirective { name: string; diff --git a/modules/@angular/common/src/forms/directives/control_value_accessor.ts b/modules/@angular/common/src/forms/directives/control_value_accessor.ts index de7c114590..f080268e77 100644 --- a/modules/@angular/common/src/forms/directives/control_value_accessor.ts +++ b/modules/@angular/common/src/forms/directives/control_value_accessor.ts @@ -7,6 +7,8 @@ import {OpaqueToken} from '@angular/core'; * DOM element representing an input control. * * Please see {@link DefaultValueAccessor} for more information. + * + * @experimental */ export interface ControlValueAccessor { /** @@ -29,6 +31,7 @@ export interface ControlValueAccessor { * Used to provide a {@link ControlValueAccessor} for form controls. * * See {@link DefaultValueAccessor} for how to implement one. + * @experimental */ export const NG_VALUE_ACCESSOR: OpaqueToken = /*@ts2dart_const*/ new OpaqueToken("NgValueAccessor"); diff --git a/modules/@angular/common/src/forms/directives/default_value_accessor.ts b/modules/@angular/common/src/forms/directives/default_value_accessor.ts index ad2c45be41..4f0f000fa1 100644 --- a/modules/@angular/common/src/forms/directives/default_value_accessor.ts +++ b/modules/@angular/common/src/forms/directives/default_value_accessor.ts @@ -17,6 +17,8 @@ export const DEFAULT_VALUE_ACCESSOR: any = /*@ts2dart_const*/ * ``` * * ``` + * + * @experimental */ @Directive({ selector: diff --git a/modules/@angular/common/src/forms/directives/form_interface.ts b/modules/@angular/common/src/forms/directives/form_interface.ts index 70aded2bb8..f1092f46b2 100644 --- a/modules/@angular/common/src/forms/directives/form_interface.ts +++ b/modules/@angular/common/src/forms/directives/form_interface.ts @@ -6,6 +6,8 @@ import {Control, ControlGroup} from '../model'; * An interface that {@link NgFormModel} and {@link NgForm} implement. * * Only used by the forms module. + * + * @experimental */ export interface Form { /** diff --git a/modules/@angular/common/src/forms/directives/ng_control.ts b/modules/@angular/common/src/forms/directives/ng_control.ts index 5cbe83e79b..ae9899d84a 100644 --- a/modules/@angular/common/src/forms/directives/ng_control.ts +++ b/modules/@angular/common/src/forms/directives/ng_control.ts @@ -9,6 +9,8 @@ import {AsyncValidatorFn, ValidatorFn} from './validators'; * It binds a {@link Control} object to a DOM element. * * Used internally by Angular forms. + * + * @experimental */ export abstract class NgControl extends AbstractControlDirective { name: string = null; diff --git a/modules/@angular/common/src/forms/directives/ng_control_group.ts b/modules/@angular/common/src/forms/directives/ng_control_group.ts index bbca73f17e..94928dfe1a 100644 --- a/modules/@angular/common/src/forms/directives/ng_control_group.ts +++ b/modules/@angular/common/src/forms/directives/ng_control_group.ts @@ -66,6 +66,8 @@ export const controlGroupProvider: any = * * This example declares a control group for a user's name. The value and validation state of * this group can be accessed separately from the overall form. + * + * @experimental */ @Directive({ selector: '[ngControlGroup]', diff --git a/modules/@angular/common/src/forms/directives/ng_control_name.ts b/modules/@angular/common/src/forms/directives/ng_control_name.ts index 19d2908734..b9ac348057 100644 --- a/modules/@angular/common/src/forms/directives/ng_control_name.ts +++ b/modules/@angular/common/src/forms/directives/ng_control_name.ts @@ -87,6 +87,8 @@ export const controlNameBinding: any = * } * } * ``` + * + * @experimental */ @Directive({ selector: '[ngControl]', diff --git a/modules/@angular/common/src/forms/directives/ng_control_status.ts b/modules/@angular/common/src/forms/directives/ng_control_status.ts index 43761e4ca4..0bd917cb38 100644 --- a/modules/@angular/common/src/forms/directives/ng_control_status.ts +++ b/modules/@angular/common/src/forms/directives/ng_control_status.ts @@ -5,6 +5,8 @@ import {isPresent} from '../../../src/facade/lang'; /** * Directive automatically applied to Angular forms that sets CSS classes * based on control status (valid/invalid/dirty/etc). + * + * @experimental */ @Directive({ selector: '[ngControl],[ngModel],[ngFormControl]', diff --git a/modules/@angular/common/src/forms/directives/ng_form.ts b/modules/@angular/common/src/forms/directives/ng_form.ts index 8109f88a20..d72ad5b5cf 100644 --- a/modules/@angular/common/src/forms/directives/ng_form.ts +++ b/modules/@angular/common/src/forms/directives/ng_form.ts @@ -75,6 +75,8 @@ export const formDirectiveProvider: any = * } * } * ``` + * + * @experimental */ @Directive({ selector: 'form:not([ngNoForm]):not([ngFormModel]),ngForm,[ngForm]', diff --git a/modules/@angular/common/src/forms/directives/ng_form_control.ts b/modules/@angular/common/src/forms/directives/ng_form_control.ts index 1389990992..a7620fa106 100644 --- a/modules/@angular/common/src/forms/directives/ng_form_control.ts +++ b/modules/@angular/common/src/forms/directives/ng_form_control.ts @@ -76,6 +76,8 @@ export const formControlBinding: any = * login:string; * } * ``` + * + * @experimental */ @Directive({ selector: '[ngFormControl]', diff --git a/modules/@angular/common/src/forms/directives/ng_form_model.ts b/modules/@angular/common/src/forms/directives/ng_form_model.ts index 6067ea020e..6ea56ab801 100644 --- a/modules/@angular/common/src/forms/directives/ng_form_model.ts +++ b/modules/@angular/common/src/forms/directives/ng_form_model.ts @@ -96,6 +96,8 @@ export const formDirectiveProvider: any = * } * } * ``` + * + * @experimental */ @Directive({ selector: '[ngFormModel]', diff --git a/modules/@angular/common/src/forms/directives/ng_model.ts b/modules/@angular/common/src/forms/directives/ng_model.ts index c36dd7dbea..fae8b177c9 100644 --- a/modules/@angular/common/src/forms/directives/ng_model.ts +++ b/modules/@angular/common/src/forms/directives/ng_model.ts @@ -47,6 +47,8 @@ export const formControlBinding: any = * searchQuery: string; * } * ``` + * + * @experimental */ @Directive({ selector: '[ngModel]:not([ngControl]):not([ngFormControl])', diff --git a/modules/@angular/common/src/forms/directives/radio_control_value_accessor.ts b/modules/@angular/common/src/forms/directives/radio_control_value_accessor.ts index e0ce6c3838..9a1a9d36ea 100644 --- a/modules/@angular/common/src/forms/directives/radio_control_value_accessor.ts +++ b/modules/@angular/common/src/forms/directives/radio_control_value_accessor.ts @@ -58,6 +58,8 @@ export class RadioControlRegistry { /** * The value provided by the forms API for radio buttons. + * + * @experimental */ export class RadioButtonState { constructor(public checked: boolean, public value: string) {} diff --git a/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts b/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts index 3a90be3e1d..3212fec1e5 100644 --- a/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts +++ b/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts @@ -43,6 +43,7 @@ function _extractId(valueString: string): string { * https://bugzilla.mozilla.org/show_bug.cgi?id=1024350 * https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/4660045/ * + * @experimental */ @Directive({ selector: @@ -104,6 +105,8 @@ export class SelectControlValueAccessor implements ControlValueAccessor { * * * ``` + * + * @experimental */ @Directive({selector: 'option'}) export class NgSelectOption implements OnDestroy { diff --git a/modules/@angular/common/src/forms/directives/validators.ts b/modules/@angular/common/src/forms/directives/validators.ts index abbe81d77a..bc4ffbbc20 100644 --- a/modules/@angular/common/src/forms/directives/validators.ts +++ b/modules/@angular/common/src/forms/directives/validators.ts @@ -41,6 +41,8 @@ export const REQUIRED_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider*/ * ``` * * ``` + * + * @experimental */ @Directive({ selector: '[required][ngControl],[required][ngFormControl],[required][ngModel]', @@ -70,6 +72,8 @@ export const MIN_LENGTH_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider* /** * A directive which installs the {@link MinLengthValidator} for any `ngControl`, * `ngFormControl`, or control with `ngModel` that also has a `minlength` attribute. + * + * @experimental */ @Directive({ selector: '[minlength][ngControl],[minlength][ngFormControl],[minlength][ngModel]', @@ -101,6 +105,8 @@ export const MAX_LENGTH_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider* /** * A directive which installs the {@link MaxLengthValidator} for any `ngControl, `ngFormControl`, * or control with `ngModel` that also has a `maxlength` attribute. + * + * @experimental */ @Directive({ selector: '[maxlength][ngControl],[maxlength][ngFormControl],[maxlength][ngModel]', @@ -117,6 +123,13 @@ export class MaxLengthValidator implements Validator { } +export const PATTERN_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider*/ { + provide: NG_VALIDATORS, + useExisting: forwardRef(() => PatternValidator), + multi: true +}; + + /** * A Directive that adds the `pattern` validator to any controls marked with the * `pattern` attribute, via the {@link NG_VALIDATORS} binding. Uses attribute value @@ -128,12 +141,8 @@ export class MaxLengthValidator implements Validator { * ``` * * ``` + * @experimental */ -export const PATTERN_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider*/ { - provide: NG_VALIDATORS, - useExisting: forwardRef(() => PatternValidator), - multi: true -}; @Directive({ selector: '[pattern][ngControl],[pattern][ngFormControl],[pattern][ngModel]', providers: [PATTERN_VALIDATOR] diff --git a/modules/@angular/common/src/forms/form_builder.ts b/modules/@angular/common/src/forms/form_builder.ts index 2109cf13b5..e7f147e697 100644 --- a/modules/@angular/common/src/forms/form_builder.ts +++ b/modules/@angular/common/src/forms/form_builder.ts @@ -45,6 +45,8 @@ import {ValidatorFn, AsyncValidatorFn} from './directives/validators'; * } * } * ``` + * + * @experimental */ @Injectable() export class FormBuilder { diff --git a/modules/@angular/common/src/forms/model.ts b/modules/@angular/common/src/forms/model.ts index ca04c4c0ce..b4df59bc1f 100644 --- a/modules/@angular/common/src/forms/model.ts +++ b/modules/@angular/common/src/forms/model.ts @@ -50,7 +50,7 @@ function toObservable(r: any): Observable { } /** - * + * @experimental */ export abstract class AbstractControl { /** @internal */ @@ -266,6 +266,8 @@ export abstract class AbstractControl { * validation function. * * ### Example ([live demo](http://plnkr.co/edit/23DESOpbNnBpBHZt1BR4?p=preview)) + * + * @experimental */ export class Control extends AbstractControl { /** @internal */ @@ -331,6 +333,8 @@ export class Control extends AbstractControl { * controls, but is of variable length. * * ### Example ([live demo](http://plnkr.co/edit/23DESOpbNnBpBHZt1BR4?p=preview)) + * + * @experimental */ export class ControlGroup extends AbstractControl { private _optionals: {[key: string]: boolean}; @@ -448,6 +452,8 @@ export class ControlGroup extends AbstractControl { * as broken change detection. * * ### Example ([live demo](http://plnkr.co/edit/23DESOpbNnBpBHZt1BR4?p=preview)) + * + * @experimental */ export class ControlArray extends AbstractControl { constructor(public controls: AbstractControl[], validator: ValidatorFn = null, diff --git a/modules/@angular/common/src/forms/validators.ts b/modules/@angular/common/src/forms/validators.ts index 62990e8780..8976fd0aff 100644 --- a/modules/@angular/common/src/forms/validators.ts +++ b/modules/@angular/common/src/forms/validators.ts @@ -14,6 +14,7 @@ import {ValidatorFn, AsyncValidatorFn} from './directives/validators'; * ### Example * * {@example core/forms/ts/ng_validators/ng_validators.ts region='ng_validators'} + * @experimental */ export const NG_VALIDATORS: OpaqueToken = /*@ts2dart_const*/ new OpaqueToken("NgValidators"); @@ -24,6 +25,8 @@ export const NG_VALIDATORS: OpaqueToken = /*@ts2dart_const*/ new OpaqueToken("Ng * Provide this using `multi: true` to add validators. * * See {@link NG_VALIDATORS} for more details. + * + * @experimental */ export const NG_ASYNC_VALIDATORS: OpaqueToken = /*@ts2dart_const*/ new OpaqueToken("NgAsyncValidators"); @@ -39,6 +42,8 @@ export const NG_ASYNC_VALIDATORS: OpaqueToken = * ```typescript * var loginControl = new Control("", Validators.required) * ``` + * + * @experimental */ export class Validators { /** diff --git a/modules/@angular/common/src/location/hash_location_strategy.ts b/modules/@angular/common/src/location/hash_location_strategy.ts index 7ee09e2e0f..741688f3ba 100644 --- a/modules/@angular/common/src/location/hash_location_strategy.ts +++ b/modules/@angular/common/src/location/hash_location_strategy.ts @@ -45,6 +45,8 @@ import {UrlChangeListener, PlatformLocation} from './platform_location'; * provide(LocationStrategy, {useClass: HashLocationStrategy}) * ]); * ``` + * + * @stable */ @Injectable() export class HashLocationStrategy extends LocationStrategy { diff --git a/modules/@angular/common/src/location/location.ts b/modules/@angular/common/src/location/location.ts index 284d4c650f..b778ce7d8a 100644 --- a/modules/@angular/common/src/location/location.ts +++ b/modules/@angular/common/src/location/location.ts @@ -42,6 +42,8 @@ import {LocationStrategy} from './location_strategy'; * * bootstrap(AppCmp, [ROUTER_PROVIDERS]); * ``` + * + * @stable */ @Injectable() export class Location { diff --git a/modules/@angular/common/src/location/location_strategy.ts b/modules/@angular/common/src/location/location_strategy.ts index 03db6278ec..966415b2d0 100644 --- a/modules/@angular/common/src/location/location_strategy.ts +++ b/modules/@angular/common/src/location/location_strategy.ts @@ -16,6 +16,8 @@ import {UrlChangeListener} from './platform_location'; * `http://example.com/foo` as an equivalent URL. * * See these two classes for more. + * + * @stable */ export abstract class LocationStrategy { abstract path(): string; @@ -57,5 +59,6 @@ export abstract class LocationStrategy { * provide(APP_BASE_HREF, {useValue: '/my/app'}) * ]); * ``` + * @stable */ export const APP_BASE_HREF: OpaqueToken = /*@ts2dart_const*/ new OpaqueToken('appBaseHref'); diff --git a/modules/@angular/common/src/location/path_location_strategy.ts b/modules/@angular/common/src/location/path_location_strategy.ts index f58968d01a..1763eb9a75 100644 --- a/modules/@angular/common/src/location/path_location_strategy.ts +++ b/modules/@angular/common/src/location/path_location_strategy.ts @@ -53,6 +53,8 @@ import {Location} from './location'; * provide(APP_BASE_HREF, {useValue: '/my/app'}) * ]); * ``` + * + * @stable */ @Injectable() export class PathLocationStrategy extends LocationStrategy { diff --git a/modules/@angular/common/src/location/platform_location.ts b/modules/@angular/common/src/location/platform_location.ts index 7c41d2e692..0ca4de54ca 100644 --- a/modules/@angular/common/src/location/platform_location.ts +++ b/modules/@angular/common/src/location/platform_location.ts @@ -21,6 +21,8 @@ * {@link Location} / {@link LocationStrategy} and DOM apis flow through the `PlatformLocation` * class * they are all platform independent. + * + * @stable */ export abstract class PlatformLocation { abstract getBaseHrefFromDOM(): string; @@ -42,6 +44,8 @@ export abstract class PlatformLocation { /** * A serializable version of the event from onPopState or onHashChange + * + * @stable */ export interface UrlChangeEvent { type: string; } diff --git a/modules/@angular/common/src/pipes/async_pipe.ts b/modules/@angular/common/src/pipes/async_pipe.ts index 4ae366e6be..4d3d8a38cc 100644 --- a/modules/@angular/common/src/pipes/async_pipe.ts +++ b/modules/@angular/common/src/pipes/async_pipe.ts @@ -59,6 +59,8 @@ var __unused: Promise; // avoid unused import when Promise union types are * to the view. Every 500ms, the `time` Observable updates the view with the current time. * * {@example core/pipes/ts/async_pipe/async_pipe_example.ts region='AsyncPipeObservable'} + * + * @stable */ @Pipe({name: 'async', pure: false}) @Injectable() diff --git a/modules/@angular/common/src/pipes/common_pipes.ts b/modules/@angular/common/src/pipes/common_pipes.ts index 7222ceee52..5964b1e8c1 100644 --- a/modules/@angular/common/src/pipes/common_pipes.ts +++ b/modules/@angular/common/src/pipes/common_pipes.ts @@ -20,6 +20,8 @@ import {I18nSelectPipe} from './i18n_select_pipe'; * * This collection can be used to quickly enumerate all the built-in pipes in the `pipes` * property of the `@Component` decorator. + * + * @experimental Contains i18n pipes which are experimental */ export const COMMON_PIPES = /*@ts2dart_const*/[ AsyncPipe, diff --git a/modules/@angular/common/src/pipes/date_pipe.ts b/modules/@angular/common/src/pipes/date_pipe.ts index 29c5992967..d442099157 100644 --- a/modules/@angular/common/src/pipes/date_pipe.ts +++ b/modules/@angular/common/src/pipes/date_pipe.ts @@ -81,6 +81,8 @@ var defaultLocale: string = 'en-US'; * ``` * * {@example core/pipes/ts/date_pipe/date_pipe_example.ts region='DatePipe'} + * + * @experimental */ @Pipe({name: 'date', pure: true}) @Injectable() diff --git a/modules/@angular/common/src/pipes/i18n_plural_pipe.ts b/modules/@angular/common/src/pipes/i18n_plural_pipe.ts index d674e964f5..aa755e9c2f 100644 --- a/modules/@angular/common/src/pipes/i18n_plural_pipe.ts +++ b/modules/@angular/common/src/pipes/i18n_plural_pipe.ts @@ -34,9 +34,9 @@ var interpolationExp: RegExp = RegExpWrapper.create('#'); * } * ``` * + * @experimental */ @Pipe({name: 'i18nPlural', pure: true}) -@Injectable() export class I18nPluralPipe implements PipeTransform { transform(value: number, pluralMap: {[count: string]: string}): string { var key: string; diff --git a/modules/@angular/common/src/pipes/i18n_select_pipe.ts b/modules/@angular/common/src/pipes/i18n_select_pipe.ts index 5ff6925789..6208ca7edd 100644 --- a/modules/@angular/common/src/pipes/i18n_select_pipe.ts +++ b/modules/@angular/common/src/pipes/i18n_select_pipe.ts @@ -31,9 +31,10 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * ... * } * ``` + * + * @experimental */ @Pipe({name: 'i18nSelect', pure: true}) -@Injectable() export class I18nSelectPipe implements PipeTransform { transform(value: string, mapping: {[key: string]: string}): string { if (!isStringMap(mapping)) { diff --git a/modules/@angular/common/src/pipes/json_pipe.ts b/modules/@angular/common/src/pipes/json_pipe.ts index c47dace1f7..99fa5df8cd 100644 --- a/modules/@angular/common/src/pipes/json_pipe.ts +++ b/modules/@angular/common/src/pipes/json_pipe.ts @@ -7,10 +7,10 @@ import {Json} from '../../src/facade/lang'; * * ### Example * {@example core/pipes/ts/json_pipe/json_pipe_example.ts region='JsonPipe'} + * + * @stable */ -/* @ts2dart_const */ @Pipe({name: 'json', pure: false}) -@Injectable() export class JsonPipe implements PipeTransform { transform(value: any): string { return Json.stringify(value); } } diff --git a/modules/@angular/common/src/pipes/lowercase_pipe.ts b/modules/@angular/common/src/pipes/lowercase_pipe.ts index 0dfa4fbeb3..13bc53b647 100644 --- a/modules/@angular/common/src/pipes/lowercase_pipe.ts +++ b/modules/@angular/common/src/pipes/lowercase_pipe.ts @@ -8,10 +8,10 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * ### Example * * {@example core/pipes/ts/lowerupper_pipe/lowerupper_pipe_example.ts region='LowerUpperPipe'} + * + * @experimental */ -/* @ts2dart_const */ @Pipe({name: 'lowercase'}) -@Injectable() export class LowerCasePipe implements PipeTransform { transform(value: string): string { if (isBlank(value)) return value; diff --git a/modules/@angular/common/src/pipes/replace_pipe.ts b/modules/@angular/common/src/pipes/replace_pipe.ts index e5ecd49faa..9f2f58f62b 100644 --- a/modules/@angular/common/src/pipes/replace_pipe.ts +++ b/modules/@angular/common/src/pipes/replace_pipe.ts @@ -35,6 +35,10 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * --Note--: The 'pattern' parameter will be converted to a RegExp instance. Make sure to escape the * string properly if you are matching for regular expression special characters like parenthesis, * brackets etc. + * + * @deprecated The current pipe has limited functionality. The pipe api is not meant to be able + * express complex yet generic value transformations. We recommend that these transformations happen + * in the component logic instead. */ @Pipe({name: 'replace'}) diff --git a/modules/@angular/common/src/pipes/slice_pipe.ts b/modules/@angular/common/src/pipes/slice_pipe.ts index 5b746b388e..b4027ec9e5 100644 --- a/modules/@angular/common/src/pipes/slice_pipe.ts +++ b/modules/@angular/common/src/pipes/slice_pipe.ts @@ -58,10 +58,11 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * ## String Examples * * {@example core/pipes/ts/slice_pipe/slice_pipe_example.ts region='SlicePipe_string'} + * + * @stable */ @Pipe({name: 'slice', pure: false}) -@Injectable() export class SlicePipe implements PipeTransform { transform(value: any, start: number, end: number = null): any { if (isBlank(value)) return value; diff --git a/modules/@angular/common/src/pipes/uppercase_pipe.ts b/modules/@angular/common/src/pipes/uppercase_pipe.ts index b937479a35..a534e2c3ba 100644 --- a/modules/@angular/common/src/pipes/uppercase_pipe.ts +++ b/modules/@angular/common/src/pipes/uppercase_pipe.ts @@ -8,9 +8,10 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * ### Example * * {@example core/pipes/ts/lowerupper_pipe/lowerupper_pipe_example.ts region='LowerUpperPipe'} + * + * @experimental */ @Pipe({name: 'uppercase'}) -@Injectable() export class UpperCasePipe implements PipeTransform { transform(value: string): string { if (isBlank(value)) return value; diff --git a/modules/@angular/core/testing/test_injector.ts b/modules/@angular/core/testing/test_injector.ts index fe80ffac0d..06fe532d00 100644 --- a/modules/@angular/core/testing/test_injector.ts +++ b/modules/@angular/core/testing/test_injector.ts @@ -158,7 +158,7 @@ export class InjectSetupWrapper { }; } - /** @Deprecated {use async(withProviders().inject())} */ + /** @deprecated {use async(withProviders().inject())} */ injectAsync(tokens: any[], fn: Function): Function { return () => { this._addProviders(); @@ -172,7 +172,7 @@ export function withProviders(providers: () => any) { } /** - * @Deprecated {use async(inject())} + * @deprecated {use async(inject())} * * Allows injecting dependencies in `beforeEach()` and `it()`. The test must return * a promise which will resolve when all asynchronous activity is complete. diff --git a/modules/@angular/integration_test/public_api_spec.ts b/modules/@angular/integration_test/public_api_spec.ts index 862bc901c3..ad0680cb88 100644 --- a/modules/@angular/integration_test/public_api_spec.ts +++ b/modules/@angular/integration_test/public_api_spec.ts @@ -52,7 +52,6 @@ var COMMON: string[] = [ 'DatePipe', 'DecimalPipe', 'DefaultValueAccessor', - 'FORM_BINDINGS', 'FORM_DIRECTIVES', 'FORM_PROVIDERS', 'Form:dart',