
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@dicdikshaorg/sunbird-quml-player-v9
Advanced tools
The QUML player library components are 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 develop
The QUML player library components are 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 getting started with a new Angular app, check out the Angular CLI.
For existing apps, follow below-mentioned steps:
These are the peerDependencies of the library, need to be installed in order to use this library.
npm install @project-sunbird/sunbird-quml-player-v9 --save
npm install @dicdikshaorg/sb-styles --save
npm install @dicdikshaorg/client-services --save
npm install bootstrap@4.6.1 --save
npm install jquery --save
npm install katex --save
npm install lodash-es --save
npm install ngx-bootstrap@6.0.0 --save
Note: As QuML library is build with angular version 9, we are using bootstrap@4.6.1 and ngx-bootstrap@6.0.0 which are the compatible versions. For more reference Check compatibility document for ng-bootstrap here
Copy CSS code from the below given styles.css to app's default styles.css or styles.scss
keep quml-carousel.css in root folder.
Create a question-cursor-implementation.service.ts in a project and which will implement the QuestionCursor abstract class.
QuestionCursor is an abstract class, exported from the library, which needs to be implemented. Basically it has some methods which should make an API request over HTTP
For more information refer question-cursor-implementation.service.ts and do not forgot to add your question list API URL here, for example: https://staging.sunbirded.org/api/question/v1/list
Add the following under architect.build.assets for default project
{
...
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
...
...
"assets": [
...
...
{
"glob": "**/*.*",
"input": "./node_modules/@project-sunbird/sunbird-quml-player-v9/lib/assets/",
"output": "/assets/"
}
],
"styles": [
...
"src/styles.css",
"./node_modules/@dicdikshaorg/sb-styles/assets/_styles.scss",
"./quml-carousel.css",
"./node_modules/katex/dist/katex.min.css"
],
"scripts": [
...
"./node_modules/katex/dist/katex.min.js",
"./node_modules/jquery/dist/jquery.min.js"
]
}
}
...
...
},
Import the required modules such as CarouselModule, QumlLibraryModule, HttpClientModule and question-cursor-implementation.service as below:
import { HttpClientModule } from '@angular/common/http';
import { QumlLibraryModule, QuestionCursor } from '@project-sunbird/sunbird-quml-player-v9';
import { CarouselModule } from 'ngx-bootstrap/carousel';
import { QuestionCursorImplementationService } from './question-cursor-implementation.service';
@NgModule({
...
imports: [ QumlLibraryModule, CarouselModule.forRoot(), HttpClientModule ],
providers: [{
provide: QuestionCursor,
useClass: QuestionCursorImplementationService
}]
...
})
export class AppModule { }
User can get a response from the api/questionset/v1/hierarchy/:do_id or can use the provided mock config for demo
Use the mock config in your component to send input to Quml player as playerConfig
Click to see the mock - playerConfig1
<quml-main-player [playerConfig]="playerConfig" ><quml-main-player>
| Feature | Notes | Selector | Code | Input | Output |
|---|---|---|---|---|---|
| Quml Player | Can be used to render Quml | quml-main-player | <quml-main-player [playerConfig]="playerConfig"><quml-main-player> | playerConfig | playerEvent, telemetryEvent |
Required]{
context: Object // Information about the telemetry and default settings for quml API requests
metadata: Object // Question hierarchy response
config: Object // default player config such as sidebar menu list
}
START, INTERACT, IMPRESSION, SUMMARY, ENDQuML Library can also be used as web component which means user can import this library in any web application and use these custom component. Follow below-mentioned steps to use it in plain javascript project:
Insert library as below:
<script type="text/javascript" src="sunbird-quml-player.js"></script>
Create a asset folder and copy all the files from here, library requires these assets internally to work well.
Get sample playerConfig from here: playerConfig
Pass the QuestionListAPI baseUrl for eg. https://staging.sunbirded.org/api/question/v1/list
Create a custom html element: sunbird-quml-player
const qumlPlayerElement = document.createElement('sunbird-quml-player');
Pass data using player-config
qumlPlayerElement.setAttribute('player-config', JSON.stringify(playerConfig));
Note: Attribute should be in string type
Listen for the output events: playerEvent and telemetryEvent
qumlPlayerElement.addEventListener('playerEvent', (event) => {
console.log("On playerEvent", event);
});
qumlPlayerElement.addEventListener('telemetryEvent', (event) => {
console.log("On telemetryEvent", event);
});
Append this element to existing element
const myPlayer = document.getElementById("my-player");
myPlayer.appendChild(qumlPlayerElement);
:arrow_forward: Refer demo example
npm i in root foldernpm i in projects/quml-librarynpm run mybuild once this run completes, run the next command - let it be running on 1st terminal windownpm run serve on second terminal window (This will copy assets from the quml-library to the library dist folder)http://localhost:4200/npm run build-web-componentFAQs
The QUML player library components are 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 develop
We found that @dicdikshaorg/sunbird-quml-player-v9 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 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.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.