@ivoyant/component-loader
v1.0.39
Published
Component is just a React element which accepts data and additional configuration via `props`. Component could be used as a standalone data visualization unit or plugged into `Dashboard`.
Downloads
19
Readme
Component
General information about componetization
What is a component?
Component is just a React element which accepts data and additional configuration via props
. Component could be used as a standalone data visualization unit or plugged into Dashboard
.
In order to plug in a component into Dashboard
:
- Publish it to NPM or any private repository;
- Install it into a dashpbard project with NPM or YARN like that:
npm install --save your@component-name
oryarn add your@component-name
.
Component settings
Each component installed to dashboard has its own name and icon. Please set these properties in package.json
as icon
, title
. As optional you can set a description
.
Component props structure
{
properties: { <properties> },
data: [ { <query1> }, { query2 }, .., { queryN } ]
}
Properties Configuration
When a component added to a dashboard a new instance of the component will be created. Each instance could be configured by using UI which is a configuration schema representation.
Configuration based on react-json-schema
(https://github.com/mozilla-services/react-jsonschema-form) and consist of 2 parts:
- JSON schema. A schema definition of a data structure which will be passed to the component instance. It can contain default data which will be passed to the instance.
- UI schema. UI representation for end-used, it tells what UI widget to display behind JSON property
Data
As you might see, data
is an array, which means that Dashboard
can return multiple queries per view. Each item of array represents special Query
object. Query
object has:
- information about fields, separated by type;
- possibility to modify or just execute query and get a data.
{
data: [
{
tableMeta: {
allFields: [],
labelFields: [], // fields which return String type
valueFields: [string], // numeric fields
timeField: string // timestamp field
},
queryString: object, // squel (https://hiddentao.com/squel/) query object
alasql: <alasql instance>, //connection to Alasql,
execute: <function(...)> // function to run a query
}
Data transformation
If data provided by data source doesn't meet your component requirements you can transform in with @antv/data-set
library.
Find out more information here ((https://translate.google.com/translate?sl=zh-CN&tl=en&js=y&prev=_t&hl=ru&ie=UTF-8&u=https%3A%2F%2Fantv.alipay.com%2Fzh-cn%2Fg2%2F3.x%2Fapi%2Fdata-set.html%23_DataSet.transforms&edit-text=)