rds-angular-boilerplate

0.0.5 • Public • Published

Rewards Design System components in Angular

The Rewards Design System is build using Stencil. It is not a JS framework. It is a compiler that produces a reusable web component that can be embedded anywhere else.

This is a step by step guide to consume a non-trivial stencil component in an Angular app.

The starter Angular app was created with Angular CLI.

Table of contents

1: Add the component(s) to the dependencies

Add the component to the app dependencies in package.json

// package.json
 
"dependencies"{
  ...
      "rewards-ds": "^0.0.6",
 
}

2: Import the component(s)

Import the component in the main.js of the app:

import { defineCustomElements as defineRewardsDs} from 'rewards-ds/dist/loader';
 
defineRewardsDs(window);

3: Consume the component

To prevent Angular from complaining that there is an unrecognized component tag, add CUSTOM_ELEMENTS_SCHEMA to the schemas array in app.module.ts.

import { BrowserModule } from '@angular/platform-browser';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
 
import { AppComponent } from './app.component';
 
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule { }
 

4: Add Rewards DS Assets to your app

Rewards Design System components consume both images and fonts from within the package — we'll be switching these to a CDN in the near future, but in the meantime, simply add the following to your angular.json or angular-cli.json file:

If you're using Angular 6 or <, use this:

"assets"[
  "src/favicon.ico",
  "src/assets",
  {
    "glob": "**/*",
    "input": "./node_modules/rewards-ds/dist/collection/assets/",
    "output": "./assets/"
  }              
],

If you're using Angular versions 2 - 5, use this:

"assets"[
  "assets",
  { "glob": "**/*", "input": "../node_modules/rewards-ds/dist/collection/assets/", "output": "./assets/" }
]

5: Use Rewards DS tags inside your app

It is now possible to use the tag provided by the Rewards DS component in any template of the app. Each component will also have prop values that you will be able to leverage (documentation will be provided soon!) You can also add content in between the component opening and closing tags (< > and </>), which will be adding into the relevant < slot /> inside a component.

<rds-balance></rds-balance> 
 
<rds-balance 
    class="column is-full" 
    points="1368" 
    pointstoearn="632" 
    savevalue="10" 
    offnextshopvalue="80" 
    fuelvouchers="3"
    app>
</rds-balance> 

Package Sidebar

Install

npm i rds-angular-boilerplate

Weekly Downloads

0

Version

0.0.5

License

MIT

Unpacked Size

29.1 kB

Total Files

29

Last publish

Collaborators

  • granfar