98 lines
2.5 KiB
TypeScript
Raw Normal View History

/**
* @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
*/
/**
* Defines template and style encapsulation options available for Component's {@link Component}.
*
* See {@link ViewMetadata#encapsulation}.
* @stable
*/
export enum ViewEncapsulation {
/**
* Emulate `Native` scoping of styles by adding an attribute containing surrogate id to the Host
* Element and pre-processing the style rules provided via
* {@link ViewMetadata#styles} or {@link ViewMetadata#stylesUrls}, and adding the new Host Element
* attribute to all selectors.
*
* This is the default option.
*/
Emulated,
/**
* Use the native encapsulation mechanism of the renderer.
*
* For the DOM this means using [Shadow DOM](https://w3c.github.io/webcomponents/spec/shadow/) and
* creating a ShadowRoot for Component's Host Element.
*/
Native,
/**
* Don't provide any template or style encapsulation.
*/
None
}
/**
* Metadata properties available for configuring Views.
2015-03-30 17:19:27 -07:00
*
* For details on the `@Component` annotation, see {@link Component}.
2015-03-30 17:19:27 -07:00
*
* ### Example
2015-03-30 17:19:27 -07:00
*
* ```
* @Component({
* selector: 'greet',
2015-04-10 11:15:01 -07:00
* template: 'Hello {{name}}!',
2015-03-30 17:19:27 -07:00
* })
* class Greet {
* name: string;
*
* constructor() {
* this.name = 'World';
* }
* }
* ```
*
* @deprecated Use Component instead.
2016-09-20 14:14:57 -07:00
*
* {@link Component}
*/
export class ViewMetadata {
2016-09-20 14:14:57 -07:00
/** {@link Component.templateUrl} */
templateUrl: string;
2016-09-20 14:14:57 -07:00
/** {@link Component.template} */
2015-07-07 22:09:19 +02:00
template: string;
2016-09-20 14:14:57 -07:00
/** {@link Component.stylesUrl} */
styleUrls: string[];
2016-09-20 14:14:57 -07:00
/** {@link Component.styles} */
styles: string[];
2016-09-20 14:14:57 -07:00
/** {@link Component.encapsulation} */
encapsulation: ViewEncapsulation;
2016-09-20 14:14:57 -07:00
/** {@link Component.animation} */
animations: any[];
2016-09-20 14:14:57 -07:00
/** {@link Component.interpolation} */
interpolation: [string, string];
constructor(
{templateUrl, template, encapsulation, styles, styleUrls, animations, interpolation}: {
templateUrl?: string,
template?: string,
encapsulation?: ViewEncapsulation,
styles?: string[],
styleUrls?: string[],
animations?: any[],
interpolation?: [string, string]
} = {}) {
2015-07-07 22:09:19 +02:00
this.templateUrl = templateUrl;
this.template = template;
this.styleUrls = styleUrls;
this.styles = styles;
this.encapsulation = encapsulation;
this.animations = animations;
this.interpolation = interpolation;
2015-07-07 22:09:19 +02:00
}
}