UNPKG

@angular/common

Version:

Angular - commonly needed directives and services

76 lines (75 loc) 2.6 kB
/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { TemplateRef, ViewContainerRef } from '@angular/core'; import { NgLocalization } from '../i18n/localization'; import { SwitchView } from './ng_switch'; /** * @ngModule CommonModule * * @whatItDoes Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization. * * @howToUse * ``` * <some-element [ngPlural]="value"> * <ng-template ngPluralCase="=0">there is nothing</ng-template> * <ng-template ngPluralCase="=1">there is one</ng-template> * <ng-template ngPluralCase="few">there are a few</ng-template> * </some-element> * ``` * * @description * * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees * that match the switch expression's pluralization category. * * To use this directive you must provide a container element that sets the `[ngPlural]` attribute * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their * expression: * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value * matches the switch expression exactly, * - otherwise, the view will be treated as a "category match", and will only display if exact * value matches aren't found and the value maps to its category for the defined locale. * * See http://cldr.unicode.org/index/cldr-spec/plural-rules * * @experimental */ export declare class NgPlural { private _localization; private _switchValue; private _activeView; private _caseViews; constructor(_localization: NgLocalization); ngPlural: number; addCase(value: string, switchView: SwitchView): void; private _updateView(); private _clearViews(); private _activateView(view); } /** * @ngModule CommonModule * * @whatItDoes Creates a view that will be added/removed from the parent {@link NgPlural} when the * given expression matches the plural expression according to CLDR rules. * * @howToUse * ``` * <some-element [ngPlural]="value"> * <ng-template ngPluralCase="=0">...</ng-template> * <ng-template ngPluralCase="other">...</ng-template> * </some-element> *``` * * See {@link NgPlural} for more details and example. * * @experimental */ export declare class NgPluralCase { value: string; constructor(value: string, template: TemplateRef<Object>, viewContainer: ViewContainerRef, ngPlural: NgPlural); }