UI for datapackage
as a framework-agnostic browser components (DEMO).
render
- framework-agnostic component render- List of components: TBD
You could use this components in plain JavaScript code or mixing with any modern framework (with native support for React). To render report
you have use datapackageUI.render(datapackageUI.<Component>, props, element)
function.
First add bootstrap and component styles:
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="//unpkg.com/datapackage-ui/dist/datapackage-ui.min.css">
Install the package in your terminal
$ npm install --save datapackage-ui
The package could be used as datapackage-ui
package from NPM:
import datapackageUI from 'datapackage-ui'
const props = '<YOUR-PROPS>'
const element = document.getElementById('component')
datapackageUI.render(datapackageUI.Component, {...props}, element)
The distribution is 60kb minified (20kb gzipped) with no dependencies.
The package could be used as pluggable script from CDN:
<div id="report"></div>
<script src="//unpkg.com/datapackage-ui/dist/datapackage-ui.min.js"></script>
<script>
var props = '<YOUR-PROPS>'
var element = document.getElementById('component')
datapackageUI.render(datapackageUI.Component, {...props}, element)
</script>
In this case your application should provide
react
andreact-dom
.
You could use presented components as native React component (import from datapackage-ui/lib
to get native React support):
import React from 'react'
import ReactDOM from 'react-dom'
import datapackageUI from 'datapackage-ui/lib'
const props = '<YOUR-PROPS>'
const element = document.getElementById('component')
ReactDOM.render(<datapackageUI.Component ...props />, element)
This example is for Angular2+. Use similliar approach for Angular1.
The package's components could be used as angular
component:
import {Component, Input} from '@angular/core';
import datapackageUI from 'datapackageUI'
@Component({
selector: 'component',
template: '<div id="component"></div>'
})
class Report {
@Input() <YOUR_PROPS>: any;
ngAfterViewInit() {
const element = document.getElementById('component')
datapackageUI.render(datapackageUI.Component, {...this.props}, element)
}
}
This example is for Vue2+. Use similar approach for Vue1.
The package's components could be used as vue
component:
import datapackageUI from 'datapackageUI'
const Report = {
props: [<YOUR_PROPS>],
template: '<div id="component"></div>',
mounted() {
const element = document.getElementById('component')
datapackageUI.render(datapackageUI.Report, {...this.props}, element)
},
}
Render component
Param | Type | Description |
---|---|---|
component | Component |
it could be one of provided by the library component |
props | Object |
object containing props |
element | Element |
DOM element to render into |
The project follows the Open Knowledge International coding standards. There are common commands to work with the project:
$ npm run dev
$ npm run build
$ npm run test
Here described only breaking and the most important changes. The full changelog and documentation for all released versions could be found in nicely formatted commit history.
- Moved
react
to peer dependencies
- An ability to extend the package editor (#272)
- Initial release of the library