
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
@dicdikshaorg/epub-player-v9
Advanced tools
Contains Epub player library 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 develo
Contains Epub player library 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.
For help getting started with a new Angular app, check out the Angular CLI. For existing apps, follow these steps to begin using .
npm install @project-sunbird/sunbird-epub-player-v9 --save
npm install @project-sunbird/sb-styles --save
npm install @project-sunbird/client-services --save
npm install epubjs --save
"styles": [
...
...
"src/styles.css",
"./node_modules/@project-sunbird/sb-styles/assets/_styles.scss"
],
"scripts": [
...
...
"node_modules/epubjs/dist/epub.js"
]
Add following under architect.build.assets
 {
    ...
    "build": {
    
    "builder": "@angular-devkit/build-angular:browser",
    
    "options": {
	    ...
	    ...
	    "assets": [
	    
		   ...
		   ...
		    
		    {
			    "glob": "**/*.*",
			    "input": "./node_modules/@project-sunbird/sunbird-epub-player-v9/lib/assets/",
			    "output": "/assets/"
		    }
	    
	    ],
    "styles": [
    
    ...
    
    "./node_modules/@project-sunbird/sb-styles/assets/_styles.scss"
    ],
    "scripts": [
     ...
     "node_modules/epubjs/dist/epub.js"
     ]
    ...
    ...
},
Import the NgModule where you want to use. Also create a question-cursor-implementation.service
import { SunbirdEpubPlayerModule } from '@project-sunbird/sunbird-epub-player-v9';
@NgModule({
    ...
    
    imports: [SunbirdEpubPlayerModule]
    
    ...
})
export class TestAppModule { }
body {
    background-color: white;
    height: 100%;
}
html {
    height: 100%;
}
Use the mock config in your component to send input to Epub player Click to see the mock - playerConfig
var playerConfig = {
  "context": {
    "mode": "play",  // To identify preview used by the user to play/edit/preview
    "authToken": "", // Auth key to make  api calls
    "sid": "7283cf2e-d215-9944-b0c5-269489c6fa56", // User sessionid on portal or mobile 
    "did": "3c0a3724311fe944dec5df559cc4e006", // Unique id to identify the device or browser 
    "uid": "anonymous", // Current logged in user id
    "channel": "505c7c48ac6dc1edc9b08f21db5a571d", // Unique id of the channel(Channel ID)
    "pdata": {
      "id": "sunbird.portal", // Producer ID. For ex: For sunbird it would be "portal" or "genie"
      "ver": "3.2.12", // Version of the App
      "pid": "sunbird-portal.contentplayer" // Optional. In case the component is distributed, then which instance of that component
    },
    "contextRollup": { // Defines the content roll up data
      "l1": "505c7c48ac6dc1edc9b08f21db5a571d"
    },
    "tags": [ // Defines the tags data
      ""
    ],
    "cdata": [], // Defines correlation data
    "timeDiff": 0,  // Defines the time difference
    "objectRollup": {}, // Defines the object roll up data
    "host": "", // Defines the from which domain content should be load
    "endpoint": "", // Defines the end point
    "userData": {  // Defines the user data firstname & lastname
      "firstName": "",
      "lastName": ""
    }
  },
  "config": { 
	"traceId": "123456", // Defines trace id
    "sideMenu": { 
      "showShare": true,    // show/hide share button in side menu. default value is true
      "showDownload": true, // show/hide download button in side menu. default value is true
      "showReplay": false, // show/hide replay button in side menu. default value is false
      "showExit": true,   // show/hide exit button in side menu. default value is true
    }
  },
  "metadata": {}, // Content metadata json object (from API response take -> response.result.content)
} 
| Property Name | Description | Default Value | 
|---|---|---|
context | It is an object it contains the uid,did,sid,mode etc., these will be logged inside the telemetry | {} | 
mode | It is  string to identify preview used by the user to play/edit/preview | play | 
authToken | It is  string and Auth key to make  api calls | '' | 
sid | It is  string and User sessionid on portal or mobile | '' | 
did | It is  string and Unique id to identify the device or browser | '' | 
uid | It is  string and Current logged in user id | '' | 
channel | It is string which defines channel identifier to know which channel is currently using. | in.sunbird | 
pdata | It is an object which defines the producer information it should have identifier and version and canvas will log in the telemetry | {'id':'in.sunbird', 'ver':'1.0'} | 
contextRollup | It is an object which defines content roll up data | {} | 
tags | It is an array which defines the tag data | [] | 
objectRollup | It is an object which defines object rollup data | {} | 
host | It is  string which defines the from which domain content should be load | window.location.origin | 
userData | It is an object which defines user data | {} | 
cdata | It is an array which defines the correlation data | [] | 
| Property Name | Description | Default Value | 
|---|---|---|
config | It is an object it contains the sideMenu, these will be used to configure the canvas | { traceId: "12345", sideMenu: {"showShare": true, "showDownload": true, "showReplay": false, "showExit": true}} | 
config.traceId | It is  string which defines the trace id | '' | 
config.sideMenu.showShare | It is  boolean to show/hide share button in side menu | true | 
config.sideMenu.showDownload | It is  boolean to show/hide download button in side menu | true | 
config.sideMenu.showReplay | It is  boolean to show/hide replay button in side menu | false | 
config.sideMenu.showExit | It is  boolean to show/hide exit button in side menu | true | 
metadata | It is an object which defines content metadata json object (from API response take -> response.result.content) | {} | 
| Feature | Notes | Selector | Code | Input | Output | 
|---|---|---|---|---|---|
| Epub Player | Can be used to render epub | sunbird-epub-player | <sunbird-epub-player [playerConfig]="playerConfig"><sunbird-epub-player> | playerConfig | playerEvent, telemetryEvent | 
Any web application can use this library as a web component. It accepts couple of inputs and triggers some events back to the application.
Follow below-mentioned steps to use it in plain javascript project:
Insert library as below:
<script type="text/javascript" src="sunbird-epub-player.js"></script>
Get sample playerConfig from here: playerConfig
Create a custom html element: sunbird-epub-player
const  epubElement = document.createElement('sunbird-epub-player');
Pass data using player-config
epubElement.setAttribute('player-config', JSON.stringify(playerConfig));
Note: Attribute name should be in kebab-case regardless of the actual Attribute name used in the Angular app. The value of the attribute should be in string type, as web-component does not accept any objects or arrays.
Listen for the output events: playerEvent and telemetryEvent
epubElement.addEventListener('playerEvent', (event) => {
	console.log("On playerEvent", event);
});
epubElement.addEventListener('telemetryEvent', (event) => {
	console.log("On telemetryEvent", event);
});
Append this element to existing element
const  myPlayer = document.getElementById("my-player");
myPlayer.appendChild(epubPlayerElement);
Refer demo example
To run the project, we can directly run index.html file or can use local server to run the project.

FAQs
Contains Epub player library 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 develo
We found that @dicdikshaorg/epub-player-v9 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 10 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.