UNPKG

@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
<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 {} ```