From ff34d5ea7a05973ba090556252c90cff2e329bd6 Mon Sep 17 00:00:00 2001 From: Judy Bogart Date: Tue, 27 Feb 2018 13:33:41 -0800 Subject: [PATCH] docs: add custom elements documentation (#22966) PR Close #22966 --- .../elements/src/app/app.component.ts | 26 +++ .../examples/elements/src/app/app.module.ts | 22 +++ .../elements/src/app/popup.component.ts | 58 +++++++ .../elements/src/app/popup.service.ts | 54 ++++++ aio/content/guide/custom-elements.md | 65 -------- aio/content/guide/elements.md | 155 ++++++++++++++++++ aio/content/guide/glossary.md | 154 ++++++++--------- .../images/guide/elements/createElement.png | Bin 0 -> 79256 bytes .../images/guide/elements/customElement1.png | Bin 0 -> 83696 bytes aio/content/navigation.json | 5 + .../elements/src/create-custom-element.ts | 76 +++++++-- 11 files changed, 447 insertions(+), 168 deletions(-) create mode 100644 aio/content/examples/elements/src/app/app.component.ts create mode 100644 aio/content/examples/elements/src/app/app.module.ts create mode 100644 aio/content/examples/elements/src/app/popup.component.ts create mode 100644 aio/content/examples/elements/src/app/popup.service.ts delete mode 100644 aio/content/guide/custom-elements.md create mode 100644 aio/content/guide/elements.md create mode 100644 aio/content/images/guide/elements/createElement.png create mode 100644 aio/content/images/guide/elements/customElement1.png diff --git a/aio/content/examples/elements/src/app/app.component.ts b/aio/content/examples/elements/src/app/app.component.ts new file mode 100644 index 0000000000..092a8c8ba2 --- /dev/null +++ b/aio/content/examples/elements/src/app/app.component.ts @@ -0,0 +1,26 @@ +// #docregion +import { Component, Injector } from '@angular/core'; +import { createNgElementConstructor } from '../elements-dist'; +import { PopupService } from './popup.service'; +import { PopupComponent } from './popup.component'; + +@Component({ + selector: 'app-root', + template: ` + + + + ` +}) + +export class AppComponent { + constructor(private injector: Injector, public popup: PopupService) { + // on init, convert PopupComponent to a custom element + const PopupElement = +createNgElementConstructor(PopupComponent, {injector: this.injector}); + // register the custom element with the browser. + customElements.define('popup-element', PopupElement); + } +} diff --git a/aio/content/examples/elements/src/app/app.module.ts b/aio/content/examples/elements/src/app/app.module.ts new file mode 100644 index 0000000000..0c2eec1938 --- /dev/null +++ b/aio/content/examples/elements/src/app/app.module.ts @@ -0,0 +1,22 @@ +// #docregion +import { BrowserModule } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { NgModule } from '@angular/core'; + +import { AppComponent } from './app.component'; +import { PopupService } from './popup.service'; +import { PopupComponent } from './popup.component'; + +// include the PopupService provider, +// but exclude PopupComponent from compilation, +// because it will be added dynamically + +@NgModule({ + declarations: [AppComponent, PopupComponent], + imports: [BrowserModule, BrowserAnimationsModule], + providers: [PopupService], + bootstrap: [AppComponent], + entryComponents: [PopupComponent], +}) + +export class AppModule {} diff --git a/aio/content/examples/elements/src/app/popup.component.ts b/aio/content/examples/elements/src/app/popup.component.ts new file mode 100644 index 0000000000..8272c37234 --- /dev/null +++ b/aio/content/examples/elements/src/app/popup.component.ts @@ -0,0 +1,58 @@ +// #docregion +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { AnimationEvent } from '@angular/animations'; +import { animate, state, style, transition, trigger } from '@angular/animations'; + +@Component({ + selector: 'my-popup', + template: 'Popup: {{message}}', + host: { + '[@state]': 'state', + '(@state.done)': 'onAnimationDone($event)', + }, + animations: [ + trigger('state', [ + state('opened', style({transform: 'translateY(0%)'})), + state('void, closed', style({transform: 'translateY(100%)', opacity: 0})), + transition('* => *', animate('100ms ease-in')), + ]) + ], + styles: [` + :host { + position: absolute; + bottom: 0; + left: 0; + right: 0; + background: #009cff; + height: 48px; + padding: 16px; + display: flex; + align-items: center; + border-top: 1px solid black; + font-size: 24px; + } + `] +}) + +export class PopupComponent { + private state: 'opened' | 'closed' = 'closed'; + + @Input() + set message(message: string) { + this._message = message; + this.state = 'opened'; + + setTimeout(() => this.state = 'closed', 2000); + } + get message(): string { return this._message; } + _message: string; + + @Output() + closed = new EventEmitter(); + + onAnimationDone(e: AnimationEvent) { + if (e.toState === 'closed') { + this.closed.next(); + } + } +} diff --git a/aio/content/examples/elements/src/app/popup.service.ts b/aio/content/examples/elements/src/app/popup.service.ts new file mode 100644 index 0000000000..0c44615e84 --- /dev/null +++ b/aio/content/examples/elements/src/app/popup.service.ts @@ -0,0 +1,54 @@ + +// #docregion +import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector } from '@angular/core'; + +import { PopupComponent } from './popup.component'; +import { NgElementConstructor } from '../elements-dist'; + +@Injectable() +export class PopupService { + constructor(private injector: Injector, + private applicationRef: ApplicationRef, + private componentFactoryResolver: ComponentFactoryResolver) {} + + // Previous dynamic-loading method required you to set up infrastructure + // before adding the popup to the DOM. + showAsComponent(message: string) { + // Create element + const popup = document.createElement('popup-component'); + + // Create the component and wire it up with the element + const factory = this.componentFactoryResolver.resolveComponentFactory(PopupComponent); + const popupComponentRef = factory.create(this.injector, [], popup); + + // Attach to the view so that the change detector knows to run + this.applicationRef.attachView(popupComponentRef.hostView); + + // Listen to the close event + popupComponentRef.instance.closed.subscribe(() => { + document.body.removeChild(popup); + this.applicationRef.detachView(popupComponentRef.hostView); + }); + + // Set the message + popupComponentRef.instance.message = message; + + // Add to the DOM + document.body.appendChild(popup); + } + + // This uses the new custom-element method to add the popup to the DOM. + showAsElement(message: string) { + // Create element + const popupEl = document.createElement('popup-element'); + + // Listen to the close event + popupEl.addEventListener('closed', () => document.body.removeChild(popupEl)); + + // Set the message + popupEl.message = message; + + // Add to the DOM + document.body.appendChild(popupEl); + } +} diff --git a/aio/content/guide/custom-elements.md b/aio/content/guide/custom-elements.md deleted file mode 100644 index 6b02a7f53f..0000000000 --- a/aio/content/guide/custom-elements.md +++ /dev/null @@ -1,65 +0,0 @@ -# Elements - -## Release Status - -**Angular Labs Project** - experimental and unstable. **Breaking Changes Possible** - -Targeted to land in the [6.x release cycle](https://github.com/angular/angular/blob/master/docs/RELEASE_SCHEDULE.md) of Angular - subject to change - -## Overview - -Elements provides an API that allows developers to register Angular Components as Custom Elements -("Web Components"), and bridges the built-in DOM API to Angular's component interface and change -detection APIs. - -```ts -//hello-world.ts -import { Component, Input, NgModule } from '@angular/core'; - -@Component({ - selector: 'hello-world', - template: `

Hello {{name}}

` -}) -export class HelloWorld { - @Input() name: string = 'World!'; -} - -@NgModule({ - declarations: [ HelloWorld ], - entryComponents: [ HelloWorld ] -}) -export class HelloWorldModule {} -``` - -```ts -//app.component.ts -import { Component, NgModuleRef } from '@angular/core'; -import { createNgElementConstructor } from '@angular/elements'; - -import { HelloWorld } from './hello-world'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] -}) -export class AppComponent { - constructor(injector: Injector) { - const NgElementConstructor = createNgElementConstructor(HelloWorld, {injector}); - customElements.register('hello-world', NgElementConstructor); - } -} - -``` -Once registered, these components can be used just like built-in HTML elements, because they *are* -HTML Elements! - -They can be used in any HTML page: - -```html - - -``` - -Custom Elements are "self-bootstrapping" - they are automatically started when they are added to the -DOM, and automatically destroyed when removed from the DOM. diff --git a/aio/content/guide/elements.md b/aio/content/guide/elements.md new file mode 100644 index 0000000000..87ad0244b0 --- /dev/null +++ b/aio/content/guide/elements.md @@ -0,0 +1,155 @@ +# Custom Elements Overview + +[Custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) are a Web Platform feature currently supported by Chrome, Opera, and Safari, and available in other browsers through polyfills (see [Browser Support](#browser-support)). +A custom element extends HTML by allowing you to define a tag whose content is created and controlled by JavaScript code. +The browser maintains a `CustomElementRegistry` of defined custom elements (also called Web Components), which maps an instantiable JavaScript class to an HTML tag. + +The `createCustomElement()` API provides a bridge from Angular's component interface and change detection functionality to the built-in DOM API. + +Transforming a component to a custom element makes all of the required Angular infrastructure available to the browser. Creating a custom element is simple and straightforward, and automatically connects your component-defined view with change detection and data binding, mapping Angular functionality to the corresponding native HTML equivalents. + +## Using custom elements + +Custom elements bootstrap themselves - they start automatically when they are added to the DOM, and are automatically destroyed when removed from the DOM. Once a custom element is added to the DOM for any page, it looks and behaves like any other HTML element, and does not require any special knowledge of Angular terms or usage conventions. + +- Easy dynamic content in an Angular app + + Transforming a component to a custom element provides an easy path to creating dynamic HTML content in your Angular app. HTML content that you add directly to the DOM in an Angular app is normally displayed without Angular processing, unless you define a _dynamic component_, adding your own code to connect the HTML tag to your app data, and participate in change detection. With a custom element, all of that wiring is taken care of automatically. + +- Content-rich applications + + If you have a content-rich app, such as the Angular app that presents this documentation, custom elements let you give your content providers sophisticated Angular functionality without requiring knowledge of Angular. For example, an Angular guide like this one is added directly to the DOM by the Angular navigation tools, but can include special elements like `` that perform complex operations. All you need to tell your content provider is the syntax of your custom element. They don't need to know anything about Angular, or anything about your component's data structures or implementation. + +### How it works + +Use the `createCustomElement()` function to convert a component into a class that can be registered with the browser as a custom element. +After you register your configured class with the browser's custom-element registry, you can use the new element just like a built-in HTML element in content that you add directly into the DOM: + +``` + +``` + +When your custom element is placed on a page, the browser creates an instance of the registered class and adds it to the DOM. The content is provided by the component's template, which uses Angular template syntax, and is rendered using the component and DOM data. Input properties in the component correspond to input attributes for the element. + +
+ +Custom element in browser + +
+ +
+ +
+ + We are working on custom elements that can be used by web apps built on other frameworks. + A minimal, self-contained version of the Angular framework will be injected as a service to support the component's change-detection and data-binding functionality. + For more about the direction of development, check out this [video presentation](https://www.youtube.com/watch?v=vHI5C-9vH-E). + +
+ +## Transforming components to custom elements + +Angular provides the `createCustomElement()` function for converting an Angular component, +together with its dependencies, to a custom element. The function collects the component's +observable properties, along with the Angular functionality the browser needs to +create and destroy instances, and to detect and respond to changes. + +The conversion process implements the `NgElementConstructor` interface, and creates a +constructor class that is configured to produce a self-bootstrapping instance of your component. + +Use a JavaScript function, `customElements.define()`, to register the configured constructor +and its associated custom-element tag with the browser's `CustomElementRegistry`. +When the browser encounters the tag for the registered element, it uses the constructor to create a custom-element instance. + +
+ +Transform a component to a custom element + +
+ +### Mapping + +A custom element _hosts_ an Angular component, providing a bridge between the data and logic defined in the component and standard DOM APIs. Component properties and logic maps directly into HTML attributes and the browser's event system. + +- The creation API parses the component looking for input properties, and defines corresponding attributes for the custom element. It transforms the property names to make them compatible with custom elements, which do not recognize case distinctions. The resulting attribute names use dash-separated lowercase. For example, for a component with `@Input('myInputProp') inputProp`, the corresponding custom element defines an attribute `my-input-prop`. + +- Component outputs are dispatched as HTML [Custom Events](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent), with the name of the custom event matching the output name. For example, for a component with `@Output() valueChanged = new EventEmitter()`, the corresponding custom element will dispatch events with the name "valueChanged", and the emitted data will be stored on the event’s `detail` property. If you provide an alias, that value is used; for example, `@Output('myClick') clicks = new EventEmitter();` results in dispatch events with the name "myClick". + + +For more information, see Web Component documentation for [Creating custom events](https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events#Creating_custom_events). + + +{@a browser-support} + +## Browser support for custom elements + +The recently-developed [custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) Web Platform feature is currently supported natively in a number of browsers. Support is pending or planned in other browsers. + + + + + + + + + + + + + + + + + + + + + + + + + + +
BrowserCustom Element Support
ChromeSupported natively.
OperaSupported natively.
SafariSupported natively.
Firefox Set the dom.webcomponents.enabled and dom.webcomponents.customelements.enabled preferences to true. Planned to be enabled by default in version 60/61.
EdgeWorking on an implementation.
+ Use the CLI to automatically set up your project with the correct polyfill: ng add @angular/elements. +
+ + +- For more information about polyfills, see [polyfill documentation](https://www.webcomponents.org/polyfills). + +- For more information about Angular browser support, see [Browser Support](guide/browser-support). + + +## Example: A Popup Service + +Previously, when you wanted to add a component to an app at runtime, you had to define a _dynamic component_. The app module would have to list your dynamic component under `entryComponents`, so that the app wouldn't expect it to be present at startup, and then you would have to load it, attach it to an element in the DOM, and wire up all of the dependencies, change detection, and event handling, as described in [Dynamic Component Loader](guide/dynamic-component-loader). + +Using an Angular custom element makes the process much simpler and more transparent, by providing all of the infrastructure and framework automatically—all you have to do is define the kind of event handling you want. (You do still have to exclude the component from compilation, if you are not going to use it in your app.) + +The Popup Service example app defines a component that you can either load dynamically or convert to a custom element. + +- `popup.component.ts` defines a simple pop-up element that displays an input message, with some animation and styling. +- `popup.service.ts` creates an injectable service that provides two different ways to invoke the PopupComponent; as a dynamic component, or as a custom element. Notice how much more setup is required for the dynamic-loading method. +- `app.module.ts` adds the PopupComponent in the module's `entryComponents` list, to exclude it from compilation and avoid startup warnings or errors. +- `app.component.ts` defines the app's root component, which uses the PopupService to add the pop-up to the DOM at run time. When the app runs, the root component's constructor converts PopupComponent to a custom element. + +For comparison, the demo shows both methods. One button adds the popup using the dynamic-loading method, and the other uses the custom element. You can see that the result is the same; only the preparation is different. + + + + + + + + + + + + + + + + + + + diff --git a/aio/content/guide/glossary.md b/aio/content/guide/glossary.md index 7aca78b128..454a6462b0 100644 --- a/aio/content/guide/glossary.md +++ b/aio/content/guide/glossary.md @@ -19,12 +19,11 @@ unexpected definitions. ## Ahead-of-time (AOT) compilation -You can compile Angular applications at build time. +You can compile Angular applications at build time. By compiling your application using the compiler-cli, `ngc`, you can bootstrap directly to a module factory, meaning you don't need to include the Angular compiler in your JavaScript bundle. Ahead-of-time compiled applications also benefit from decreased load time and increased performance. - ## Annotation In practice, a synonym for [Decoration](guide/glossary#decorator). @@ -52,7 +51,7 @@ Learn about them in the [_Attribute Directives_](guide/attribute-directives) gui ## Barrel A way to *roll up exports* from several ES2015 modules into a single convenient ES2015 module. -The barrel itself is an ES2015 module file that re-exports *selected* exports of other ES2015 modules. +The barrel itself is an ES2015 module file that re-exports selected exports of other ES2015 modules. For example, imagine three ES2015 modules in a `heroes` folder: @@ -67,8 +66,6 @@ For example, imagine three ES2015 modules in a `heroes` folder: export class HeroService {} - - Without a barrel, a consumer needs three import statements: @@ -96,20 +93,14 @@ Now a consumer can import what it needs from the barrel. - The Angular [scoped packages](guide/glossary#scoped-package) each have a barrel named `index`. -
- - You can often achieve the same result using [NgModules](guide/glossary#ngmodule) instead. -
- ## Binding Usually refers to [data binding](guide/glossary#data-binding) and the act of @@ -121,7 +112,6 @@ between a "token"—also referred to as a "key"—and a dependency [prov ## Bootstrap - You launch an Angular application by "bootstrapping" it using the application root NgModule (`AppModule`). Bootstrapping identifies an application's top level "root" [component](guide/glossary#component), @@ -132,15 +122,21 @@ You can bootstrap multiple apps in the same `index.html`, each app with its own {@a C} -## camelCase -The practice of writing compound words or phrases such that each word or abbreviation begins with a capital letter -_except the first letter, which is lowercase_. +{@a dash-case} -Function, property, and method names are typically spelled in camelCase. For example, `square`, `firstName`, and `getHeroes`. Notice that `square` is an example of how you write a single word in camelCase. +{@a camelcase} -camelCase is also known as *lower camel case* to distinguish it from *upper camel case*, or [PascalCase](guide/glossary#pascalcase). -In Angular documentation, "camelCase" always means *lower camel case*. + +## Case conventions + +Angular uses capitalization conventions to distinguish the names of various types, as described in the [Style Guide "Naming" section](guide/styleguide#02-01). + +- camelCase : symbols, properties, methods, pipe names, interfaces, non-component directive selectors, constants +- UpperCamelCase (also called PascalCase): Class names +- dash-case (also called "kebab-case"): descriptive part of file names, component selectors +- underscore_case (or "snake_case"): not typically used in Angular +- UPPER_SNAKE_CASE : traditional for constants (acceptable, but prefer camelCase) ## CLI @@ -151,7 +147,6 @@ Learn more in the [Getting Started](guide/quickstart) guide. {@a component} - ## Component An Angular class responsible for exposing data to a [view](guide/glossary#view) and handling most of the view’s display and user-interaction logic. @@ -167,22 +162,25 @@ as a view. Those familiar with "MVC" and "MVVM" patterns will recognize the component in the role of "controller" or "view model". +{@a custom-element} + +## Custom element + +A Web Platform feature, currently supported by most browsers, and available in other browsers through polyfills (see [Browser Support](guide/browser-support)). + +The custom element feature extends HTML by allowing you to define a tag whose content is created and controlled by JavaScript code. A custom element (also called a *web component*) is recognized by a browser when it is added to the [CustomElementRegistry](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry). + +You can use the API to transform an Angular component so that it can be registered with the browser and used in any HTML that you add directly to the DOM within an Angular app. The custom element tag inserts the component's view, with change-detection and data-binding functionality, into content that would otherwise be displayed without Angular processing. + +See also [Dynamic components](guide/glossary#dynamic-components). + {@a D} -## dash-case - -The practice of writing compound words or phrases such that each word is separated by a dash or hyphen (`-`). -This form is also known as kebab-case. - -[Directive](guide/glossary#directive) selectors (like `my-app`) and -the root of filenames (such as `hero-list.component.ts`) are often -spelled in dash-case. - ## Data binding -Applications display data values to a user and respond to user +Data binding allow apps to display data values to a user and respond to user actions (such as clicks, touches, and keystrokes). In data binding, you declare the relationship between an HTML widget and data source @@ -215,7 +213,7 @@ operations and supporting declaration syntax. A *function* that adds metadata to a class, its members (properties, methods) and function arguments. -Decorators are an experimental (stage 2), JavaScript language [feature](https://github.com/wycats/javascript-decorators). TypeScript adds support for decorators. +Decorators (also called annotations) are an experimental (stage 2), JavaScript language [feature](https://github.com/wycats/javascript-decorators). TypeScript adds support for decorators. To apply a decorator, position it immediately above or to the left of the item it decorates. @@ -223,6 +221,7 @@ Angular has its own set of decorators to help it interoperate with your applicat The following example is a `@Component` decorator that identifies a class as an Angular [component](guide/glossary#component) and an `@Input` decorator applied to the `name` property of that component. The elided object argument to the `@Component` decorator would contain the pertinent component metadata. + ``` @Component({...}) export class AppComponent { @@ -230,6 +229,7 @@ export class AppComponent { @Input() name:string; } ``` + The scope of a decorator is limited to the language feature that it decorates. None of the decorations shown here will "leak" to other classes that follow it in the file. @@ -334,39 +334,34 @@ as HTML attributes, hence the name. shaping or reshaping HTML layout, typically by adding, removing, or manipulating elements and their children. +{@a dynamic-components} + +## Dynamic component loading + +A technique for adding a component to the DOM at run time, which requires that you exclude the component from compilation, then connect it to Angular's change-detection and event handling framework when you add it to the DOM. + +See also [Custom element](guide/glossary#custom-element), which provides an easier path with the same result. {@a E} +{@a ecma} + ## ECMAScript The [official JavaScript language specification](https://en.wikipedia.org/wiki/ECMAScript). -The latest approved version of JavaScript is -[ECMAScript 2017](http://www.ecma-international.org/ecma-262/8.0/) -(also known as "ES2017" or "ES8"). Many Angular developers write their applications -in ES8 or a dialect that strives to be -compatible with it, such as [TypeScript](guide/glossary#typescript). - -Most modern browsers only support the much older "ECMAScript 5" (also known as "ES5") standard. -Applications written in ES2017, ES2016, ES2015, or one of their dialects must be [transpiled](guide/glossary#transpile) -to ES5 JavaScript. - -Angular developers can write in ES5 directly. +Not all browsers support the latest ECMAScript standard, but you can use transpilers (like [TypeScript](guide/glossary#typescript)) to write code using the latest features, which will then be transpiled to code that runs on versions that are supported by browsers. -## ES2015 +{@a element} -Short hand for [ECMAScript](guide/glossary#ecmascript) 2015. +## Element +Angular defines an `ElementRef` class to wrap render-specific native UI elements. This allows you use Angular templates and data-binding to access DOM elements without reference to the native element in most cases. -## ES5 +The documentation generally refers to either elements (`ElementRef` instances) or DOM elements (which could be accessed directly if necessary). -Short hand for [ECMAScript](guide/glossary#ecmascript) 5, the version of JavaScript run by most modern browsers. - - -## ES6 - -Short hand for [ECMAScript](guide/glossary#ecmascript) 2015. +Compare [Custom element](guide/glossary#custom-element). {@a F} @@ -383,7 +378,7 @@ Short hand for [ECMAScript](guide/glossary#ecmascript) 2015. An object in the Angular [dependency-injection system](guide/glossary#dependency-injection) that can find a named dependency in its cache or create a dependency -with a registered [provider](guide/glossary#provider). +with a registered [provider](guide/glossary#provider). Injectors are created for NgModules automatically as part of the bootstrap process, and inherited through the component hierarchy. ## Input @@ -411,13 +406,17 @@ or displayed between element tags, as in this example. - Read more about [interpolation](guide/template-syntax#interpolation) in the [Template Syntax](guide/template-syntax) page. {@a J} +## JavaScript + +See [ECMAScript](guide/glossary#ecma), [TypeScript](guide/glossary#typescript). + + {@a jit} @@ -430,10 +429,6 @@ Consider using the [ahead-of-time](guide/glossary#aot) mode for production apps. {@a K} -## kebab-case - -See [dash-case](guide/glossary#dash-case). - {@a L} @@ -477,11 +472,8 @@ For details and examples, see the [NgModules](guide/ngmodules) page. For a comparison, see [JavaScript Modules vs. NgModules](guide/ngmodule-vs-jsmodule). - - - A cohesive block of code dedicated to a single purpose. Angular apps are modular. @@ -522,18 +514,19 @@ For details and examples, see [NgModules](guide/ngmodules) and the related files in that section. - - {@a O} ## Observable -An array whose items arrive asynchronously over time. +An subscribable message publisher, which provides multiple items that arrive asynchronously over time. Observables help you manage asynchronous data, such as data coming from a backend service. Observables are used within Angular itself, including Angular's event system and its HTTP client service. -To use observables, Angular uses a third-party library called Reactive Extensions (RxJS). Observables are a proposed feature for ES2016, the next version of JavaScript. +Currently, Angular depends on a third-party library called Reactive Extensions (RxJS) to provide observables. + +For more information, see the [Observables guide](guide/observables). + ## Output @@ -549,15 +542,6 @@ See the [Input and output properties](guide/template-syntax#inputs-outputs) sect {@a P} -## PascalCase - -The practice of writing individual words, compound words, or phrases such that each word or abbreviation begins with a capital letter. -Class names are typically spelled in PascalCase. For example, `Person` and `HeroDetailComponent`. - -This form is also known as *upper camel case* to distinguish it from *lower camel case* or simply [camelCase](guide/glossary#camelcase). -In this documentation, "PascalCase" means *upper camel case* and "camelCase" means *lower camel case*. - - ## Pipe An Angular pipe is a function that transforms input values to output values for @@ -676,15 +660,6 @@ Applications often require services such as a data service or a logging service. For more information, see the [Services](tutorial/toh-pt4) page of the [Tour of Heroes](tutorial) tutorial. -{@a snake-case} - - -## snake_case - -The practice of writing compound words or phrases such that an -underscore (`_`) separates one word from the next. This form is also known as *underscore case*. - - {@a structural-directive} @@ -740,23 +715,22 @@ of the [Template Syntax](guide/template-syntax) page. ## Transpile The process of transforming code written in one form of JavaScript -(such as TypeScript) into another form of JavaScript (such as [ES5](guide/glossary#es5)). +(such as TypeScript) into another form of JavaScript. (See also [ECMAScript](guide/glossary#ecma)). + +{@a typescript} ## TypeScript -A version of JavaScript that supports most [ECMAScript 2015](guide/glossary#es2015) +A version of JavaScript that supports most [ECMAScript 2015](guide/glossary#ecma) language features such as [decorators](guide/glossary#decorator). -TypeScript is also notable for its optional typing system, which provides +TypeScript is notable for its optional typing system, which provides compile-time type checking and strong tooling support (such as "intellisense," code completion, refactoring, and intelligent search). Many code editors and IDEs support TypeScript either natively or with plugins. -TypeScript is the preferred language for Angular development, although -you can use other JavaScript dialects such as [ES5](guide/glossary#es5). - -Read more about TypeScript at [typescriptlang.org](http://www.typescriptlang.org/). +TypeScript is the preferred language for Angular development. Read more about TypeScript at [typescriptlang.org](http://www.typescriptlang.org/). {@a U} @@ -780,6 +754,10 @@ under the control of a [router](guide/glossary#router). {@a W} +## Web component + +See [Custom element](guide/glossary#custom-element) + {@a X} diff --git a/aio/content/images/guide/elements/createElement.png b/aio/content/images/guide/elements/createElement.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1ea8d1ea604df68c170d22f087328b0ae92cf4 GIT binary patch literal 79256 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 GzyAY*`~oEa literal 0 HcmV?d00001 diff --git a/aio/content/images/guide/elements/customElement1.png b/aio/content/images/guide/elements/customElement1.png new file mode 100644 index 0000000000000000000000000000000000000000..6be2f262a4a6854b5bcf2d93c827b648e9f17b47 GIT binary patch literal 83696 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 E15zK6=l}o! literal 0 HcmV?d00001 diff --git a/aio/content/navigation.json b/aio/content/navigation.json index 4bbc4b61c8..3cdfc2ad4d 100644 --- a/aio/content/navigation.json +++ b/aio/content/navigation.json @@ -184,6 +184,11 @@ "title": "Component Styles", "tooltip": "Add CSS styles that are specific to a component." }, + { + "url": "guide/elements", + "title": "Custom Elements", + "tooltip": "Convert components to custom elements." + }, { "url": "guide/dynamic-component-loader", "title": "Dynamic Components", diff --git a/packages/elements/src/create-custom-element.ts b/packages/elements/src/create-custom-element.ts index e403189a21..2bf71864c4 100644 --- a/packages/elements/src/create-custom-element.ts +++ b/packages/elements/src/create-custom-element.ts @@ -14,33 +14,66 @@ import {NgElementStrategy, NgElementStrategyFactory} from './element-strategy'; import {createCustomEvent, getComponentInputs, getDefaultAttributeToPropertyInputs} from './utils'; /** - * Class constructor based on an Angular Component to be used for custom element registration. + * Prototype for a class constructor based on an Angular component + * that can be used for custom element registration. Implemented and returned + * by the {@link createCustomElement createCustomElement() function}. * * @experimental */ export interface NgElementConstructor

{ + /** + * An array of observed attribute names for the custom element, + * derived by transforming input property names from the source component. + */ readonly observedAttributes: string[]; + /** + * Initializes a constructor instance. + * @param injector The source component's injector. + */ new (injector: Injector): NgElement&WithProperties

; } /** - * Class that extends HTMLElement and implements the functionality needed for a custom element. + * Implements the functionality needed for a custom element. * * @experimental */ export abstract class NgElement extends HTMLElement { + /** + * The strategy that controls how a component is transformed in a custom element. + */ protected ngElementStrategy: NgElementStrategy; + /** + * A subscription to change, connect, and disconnect events in the custom element. + */ protected ngElementEventsSubscription: Subscription|null = null; + /** + * Prototype for a handler that responds to a change in an observed attribute. + * @param attrName The name of the attribute that has changed. + * @param oldValue The previous value of the attribute. + * @param newValue The new value of the attribute. + * @param namespace The namespace in which the attribute is defined. + * @returns Nothing. + */ abstract attributeChangedCallback( attrName: string, oldValue: string|null, newValue: string, namespace?: string): void; + /** + * Prototype for a handler that responds to the insertion of the custom element in the DOM. + * @returns Nothing. + */ abstract connectedCallback(): void; + /** + * Prototype for a handler that responds to the deletion of the custom element from the DOM. + * @returns Nothing. + */ abstract disconnectedCallback(): void; } /** - * Additional type information that can be added to the NgElement class for properties added based + * Additional type information that can be added to the NgElement class, + * for properties that are added based * on the inputs and methods of the underlying component. * * @experimental @@ -50,28 +83,41 @@ export type WithProperties

= { }; /** - * Initialization configuration for the NgElementConstructor which contains the injector to be used - * for retrieving the component's factory as well as the default context for the component. May - * provide a custom strategy factory to be used instead of the default. + * A configuration that initializes an NgElementConstructor with the + * dependencies and strategy it needs to transform a component into + * a custom element class. * * @experimental */ export interface NgElementConfig { + /** + * The injector to use for retrieving the component's factory. + */ injector: Injector; + /** + * An optional custom strategy factory to use instead of the default. + * The strategy controls how the tranformation is performed. + */ strategyFactory?: NgElementStrategyFactory; } /** - * @whatItDoes Creates a custom element class based on an Angular Component. Takes a configuration - * that provides initialization information to the created class. E.g. the configuration's injector - * will be the initial injector set on the class which will be used for each created instance. + * @description Creates a custom element class based on an Angular component. * - * @description Builds a class that encapsulates the functionality of the provided component and - * uses the config's information to provide more context to the class. Takes the component factory's - * inputs and outputs to convert them to the proper custom element API and add hooks to input - * changes. Passes the config's injector to each created instance (may be overridden with the + * Builds a class that encapsulates the functionality of the provided component and + * uses the configuration information to provide more context to the class. + * Takes the component factory's inputs and outputs to convert them to the proper + * custom element API and add hooks to input changes. + * + * The configuration's injector is the initial injector set on the class, + * and used by default for each created instance.This behavior can be overridden with the * static property to affect all newly created instances, or as a constructor argument for - * one-off creations). + * one-off creations. + * + * @param component The component to transform. + * @param config A configuration that provides initialization information to the created class. + * @returns The custom-element construction class, which can be registered with + * a browser's `CustomElementRegistry`. * * @experimental */ @@ -130,4 +176,4 @@ export function createCustomElement

( }); return (NgElementImpl as any) as NgElementConstructor

; -} +} \ No newline at end of file