@anjuna/angular-core
Version:
<p align="center"> <img src="//cdn.zuora.com/theme/0.6.0/assets/anjuna/anjuna-logo.svg"/> <br/><br/> </p>
97 lines (77 loc) • 2.95 kB
Markdown
<p align="center">
<img src="//cdn.zuora.com/theme/0.6.0/assets/anjuna/anjuna-logo.svg"/>
<br/><br/>
</p>
# @anjuna/angular-core
The @anjuna/angular-core module is a set of Angular-specific wrappers and helpers to plug the core component library into Angular's APIs and patterns.
## Getting Started
```bash
npm install @anjuna/core @anjuna/angular-core
```
### Include the Theme
The best way to add the theme is by including the `theme.css` files from `@anjuna/theme` in your `styles.scss`. Icons are best added by CDN url in your `styles.scss`.
```css
@import '~@anjuna/theme/dist/css/theme.css';
```
**Note**: the polyfill for CSS variables does not work with dynamically loaded imports. For CSS variables to work in IE, the theme needs to be
part of your application's compiled style.
### Include the Web Components
To use the web components in your application, you first need to include them. Depending on your integration, there are a couple ways to do this.
The preferred way to add web component libraries to Angular applications is to do so when bootstrapping the app. Update your application's
`main.ts` to add the following functionality:
```typescript
import {enableProdMode} from '@angular/core';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
// import the loader and alias it so it won't conflict with other libraries
import {applyPolyfills, defineCustomElements as defineAnjunaElements} from '@anjuna/core/loader';
import {AppModule} from '@app/app.module';
import {environment} from '@env/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.log(err));
applyPolyfills().then(() => {
defineAnjunaElements(window);
// define any other web components within this block also
});
```
##### Custom Elements Schema
By default, Angular does not like it when it doesn't recognize a component tag and will throw an error. To configure Angular modules to tell them
we're using custom elements, we need to add the CUSTOM_ELEMENT_SCHEMA schema to modules that will be making use of them.
```typescript
import {NgModule, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
@NgModule({
declarations: [
// removed for brevity
],
imports: [
// removed for brevity
],
schemas: [
// the important part
CUSTOM_ELEMENTS_SCHEMA
],
bootstrap: [AppComponent]
})
export class AppModule {}
```
### Include the Module
Once installed, you can import the module into any Angular module you need it.
```typescript
import {NgModule, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
import {AnjunaCoreModule} from '@anjuna/angular-core';
@NgModule({
imports: [
// Other imports
AnjunaCoreModule
],
declarations: [
// application components
],
schemas: [
CUSTOM_ELEMENTS_SCHEMA
]
})
export class MyModule {}
```