Common Consumption Components

Contains common UI components powered by angular. These components are designed to be used in sunbird consumption platforms (mobile app, web portal, offline desktop app) to drive reusability, maintainability hence reducing the redundant development effort significantly.

Video on Common Consumption Components

CriteriaInfo

Current Release Branch

v9_Migration_Branch

NPM Published version (Latest)

4.5.2

NPM Package Name

@project-sunbird/common-consumption-v9

NPM Link

Works

In Angular Projects Only

Available components

\

ComponentCode

LibraryCard (sb-library-card-v2)

Basic Card to represent a content/asset/collection

<sb-library-card-v2><sb-library-card-v2>

CourseCard (sb-course-card)

Can be used in the courses page to represent course distinctively

<sb-course-card><sb-course-card>

MyCourseCard (sb-my-course-card)

Can be used in the My courses section for all consumption platforms

<sb-my-course-card></sb-my-course-card>

TocCard (sb-toc-card)

Can be used to represent a content in a collection.

NA

LibraryCardsGrid (sb-library-cards-grid)

Can be used represent list of collection for all consumption platforms

<sb-library-cards-grid [title]="Grid Title" [isLoading]="isLoading[maxCardCount="3"><sb-library-cards-grid>

CourseCardsGrid (sb-course-cards-hlist)

Can be used represent list of courses for all consumption platforms

<sb-course-cards-hlist [multiRow]="true" [contentList]="range(15)"[type="'curiculum_course_card_grid'" [title]="'Courses'" [isLoading]="isLoading"><sb-course-cards-hlist>

LibraryCardsStack (sb-library-cards-stack)

Can be used represent Stack of collections for all consumption platforms

<sb-library-cards-stack [title]="Stack Title"[contentList]="range(15)" [maxCardCount]="3" [isLoading]="isLoading"></sb-library-cards-stack>

LibraryFilters (sb-library-filters)

Used to construct filters based on facets

FAQ Component (sb-faq)

Faq Section for Consumption Clients with intractable events. This is form configuration driven.

Card hover component (sb-card-hover)

Can be used with library card to add overlay on card with action items

TOCItem component (sb-toc-item)

shows given array of Items with accordion structure.

TOCChildItem component (sb-toc-item)

Shows given array of Items with accordion structure.

Member Card component (sb-member-card)

Member Card With Menu.

<sb-member-card></sb-member-card>

Member List component (sb-member-list)

Member List With Cards.

<sb-member-list [layoutConfig]="{size:'medium', isBold:false, isSelectable:true,view:'horizontal'}" [memberList]="range(15)" [isMenu]="false"(cardClick)="memberCardClick`` ($event)" (menuClick)="menuClick($event)"></sb-member-list>`

Group Card component (sb-group-card)

Group Card.

<sb-group-card></sb-group-card>

Getting Started

For help getting started with a new Angular app, check out the Angular CLI. For existing apps, follow these steps to begin using .

Step 1: Install the package

npm install @project-sunbird/common-consumption --save
npm install @project-sunbird/sb-styles --save

Step 2: Include the sb-styles and assets in angular.json

"styles": [

...

...

"./node_modules/@project-sunbird/sb-styles/assets/_styles.scss"

]

Add following under architect.build.assets

 {
    ...
    "build": {
    
    "builder": "@angular-devkit/build-angular:browser",
    
    "options": {
    
	    ...
	    ...

	    "assets": [
		   ...
		   ...
		    {
			    "glob": "**/*.*",
			    "input": "./node_modules/@project-sunbird/common-consumption/assets",
			    "output": "./assets/common-consumption"
		    }
	    ],
    "styles": [
    ...
    
    "./node_modules/@project-sunbird/sb-styles/assets/_styles.scss"
    
    ],
    
    ...
    ...

},

Step 3: Import the modules and components

Import the NgModule for each component you want to use:

import { CommonConsumptionModule} from '@project-sunbird/common-consumption';

@NgModule({
    ...
    
    imports: [CommonConsumptionModule],
    
    ...
})
export class TestAppModule { }

Alternatively, you can create a separate NgModule that imports and then re-exports all of the Angular components that you will use in your application. By exporting them again, other modules can simply include your CustomSunbirdComponentsModule wherever components are needed, and automatically get all of the exported modules. A good place for importing/exporting the application-wide modules is the SharedModule.

import { CardsModule } from '@project-sunbird/common-consumption/card';

import { PopoverModule } from '@project-sunbird/common-consumption/popover';

@NgModule({

...

imports: [CardsModule, PopoverModule],

exports: [CardsModule, PopoverModule],

...

})


export class MyOwnCustomSunbirdComponentsModule { }

For More Information, Please refer to GitHub repo link.