PackagePackagetypeA library you install and call yourself.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

ui5-lib-visualization

A UI5 control library that wraps the C3.js charting library as ui5.viz controls (Chart, ChartSeries, ChartDataPoint, ChartAxis, ChartLine, ChartArea and Color) declared in an XML view with data binding.

C3.js is configured from JavaScript; here a chart is declared in markup. ui5.viz.Chart extends sap.ui.core.Control and carries the configuration as properties and aggregations: series of ChartSeries with their ChartDataPoint children, xAxis, yAxis and y2Axis as ChartAxis with their labels, and lines, areas and colors for annotations and the series palette, each of them bindable to a model. Beyond C3.js's own line and area charts it adds annotation lines and areas on the chart grid, animated dashed lines, hatched areas, a convergence interval as a series type, and colour palettes set by default or per series. Where C3.js supports it the control updates without rerendering; the API documentation marks the properties that cannot, the legend position, the tooltip settings and the x-axis type among them. It enters a project either as a library path in the ui5 section of package.json for an OpenUI5 Starter Kit build, or by copying /dist into the project and registering ui5.viz in the sap-ui-bootstrap resourceroots.

Facts

Latestv0.6.2ReleasedLast pushLicenceMIT

Where it sits

Lives in
Provides
Custom controls and librariesUI5Custom controls and librariescapabilityExtending the set of controls an app is built from: a control of its own, a wrapper around a third-party widget, or an icon font registered with the framework, packaged so another app can reuse it. Distinct from [Web Components interop](capability:ui5-web-components), which brings in standard custom elements, and from [generators](capability:generators), which scaffold a control project rather than being one.
Add-on to
@openui5/sap.ui.core@openui5/sap.ui.coreartifactThe OpenUI5 core: the module loader, the MVC runtime, data binding, routing, theming and the test stack, which is everything a UI5 app does before a single community package is added.
Requires
@openui5/sap.ui.core@openui5/sap.ui.coreartifactThe framework whose Control the chart extends and whose loader resolves the ui5.viz namespace; the library is registered in the application's own bootstrap.C3.jsC3.jsoutside the atlasThe charting library the controls wrap: the chart types, the rendering and which changes can be applied without a rerender are C3.js's.

Who is behind it

PulseShiftPulseShiftOrganisationMaintains this
In the atlas: maintains 1
@pulseshift
maintainerMichael DellPersonContributes to this
In the atlas: contributes to 1
@dell-mic
Jascha A. QuinternPersonContributes to this
In the atlas: contributes to 1
@fuchsvomwalde
lenasrdPersonContributes to this
In the atlas: contributes to 1
@lenasrd
mdel-cmPersonContributes to this
In the atlas: contributes to 1
@mdel-cm
nwei-mcPersonContributes to this
In the atlas: contributes to 1
@nwei-mc
5 contributors

Before choosing this

Conditions

PracticalFunctional boundary

On the second installation path there is no dependency to upgrade: the README states that for option b) all manual steps must be repeated every time the library version is updated.

What it declares

Every artifact

Type
Package
Origin
Independently maintained

As a package

Where it runs
does not say
Distributed through
does not say

Connections3

Install

npm add ui5-lib-visualization

Derived from the package name. No recipe recorded; the README has the configuration.

Where it sits in your app

Download
Your UI5 applicationdocumentedrequiresdocumentedrequiresC3.js, SoftwareC3.jsSoftwareui5-lib-visualization, moduleui5-lib-visualization@openui5/sap.ui.core, module@openui5/sap.ui.core
SAPnot SAP's, or the project's owndocumented only

README

quoted from pulseshift/ui5-lib-visualization under MIT, read
pulseshift/ui5-lib-visualization/README.mdOn GitHub

Custom OpenUI5 Data Vizualization library

Greenkeeper badge Build Status

This library provides an OpenUI5 API that acts as a wrapper for D3-based charting library C3.js. It offers a more detailed and attractive API design than sap.viz chart controls, which interacts harmoniously especially in XML Views in combination with data binding.

Usage

There are two options how to use the chart library in your UI5 project, depending of the project boilerplate you are using.

a) projects based on OpenUI5 Starter Kit

Add ui5-lib-visualization as dev dependency:

yarn add ui5-lib-visualization --dev

Update ui5 library config in your package.json:

"ui5" {
  // ...
  "library":[
      {
        "name": "ui5.viz",
        "path": "node_modules/ui5-lib-visualization/dist/ui5/viz",
        "prebuild": true
      }
  ]
  // ...
}

Finished, you can now use the library in your XML Views via e.g. xmlns:viz="ui5.viz" or in your controllers etc. If you want to upgrade the library, just use default yarn commands, the build process of the starter kit will handle the rest for you:

yarn upgrade ui5-lib-visualization
b) other UI5 projects (see also UI5Lab)

Download or clone this repository:

git clone git@github.com:pulseshift/ui5-lib-visualization.git

Copy the complete ready-to-use library from /dist to a target destination in your UI5 project (please keep the folder structure as is ui5/viz/).

Add the library to the sap-ui-bootstrap resourceroots in your index.html:

data-sap-ui-resourceroots="{ "ui5.viz": "pathToTargetDestination/ui5/viz" }"

Please be aware that for option b) all manual steps must be repeated every time when you want to update the library version. Because this variant is more susceptible to errors, we recommend to use the OpenUI5 Starter Kit.

Documentation

How to test real live samples please see section Example. Till then, please enjoy our first beta version of our automatcally created markdown API documentation:

Features

Hint: This overview is not yet complete. In the course of time we will point out all important new functions and add these points to the new demo app, too.

A brief overview of features, additional to C3.js line and area charts:

  • Complete API coverage of properties and aggregations for a fully integrated feature set in XML views.
  • If supported by C3.js, rerender will be avoided by the chart control to ensure smooth transitions in case of changes in the data.
  • Support of chart annotations, like lines and areas in various designs.
  • Support for special designs such as animated dashed lines or hatched areas.
  • Convergence interval as a new display type of series.
  • Simple color management by implementing color palettes or individual colors for specific series.
Example

To execute the demo, please follow the instructions described in section Development. At the time the demo is being refactored with the goal to provide you an SAP Explore like experience.

Here a basic sample of how to use the charts in an XML view:

<!-- ensure that the series data points and the x-axis labels have the exact same amount of entries -->
<Chart
  width="{store>/width}"
  height="{store>/height}"
  showTooltip="{store>/showTooltip}"
  groupedTooltip="{store>/groupedTooltip}"
  showLegend="{store>/showLegend}"
  xAxisType="Category"
  series="{store>/series}">
  <series>
    <ChartSeries
      type="{store>type}"
      name="{store>name}"
      data="{
        path: 'store>dataPoints',
        templateShareable: false
      }">
      <ChartDataPoint value="{store>}" />
    </ChartSeries>
  </series>
  <xAxis>
    <ChartAxis labels="{ path: 'store>/xAxis/labels'}">
      <ChartAxisLabel value="{store>}" />
    </ChartAxis>
  </xAxis>
  <yAxis>
    <ChartAxis title="{store>/yAxis/title}" />
  </yAxis>
</Chart>

Respective controller code:

// define series color palette with a preset based on material design colors
ui5.viz.setDefaultColorPalette(ui5.viz.ColorPalette.Material500)

// define model
const oModel = new JSONModel({
  title: 'Chart',
  width: '100%',
  height: '300px',
  showTooltip: true,
  groupedTooltip: true,
  showLegend: true,
  xAxis: {
    labels: ['April', 'May', 'June', 'July', 'August', 'September']
  },
  yAxis: {
    title: 'Sightings in the woods 🌲'
  },
  series: [
    {
      name: 'Foxes 🦊',
      dataPoints: [2, 5, 3, 5, 8, 9],
      type: ui5.viz.ChartSeriesType.Spline
    },
    {
      name: 'Bears 🐻',
      dataPoints: [1, 2, 0, 2, 1, 3],
      type: ui5.viz.ChartSeriesType.Spline
    },
    {
      name: 'Deers 🦌',
      dataPoints: [14, 20, 18, 23, 17, 18],
      type: ui5.viz.ChartSeriesType.Spline
    }
  ]
})

this.getView().setModel(oModel, 'store')

Development

Download or clone this repository:

git clone git@github.com:pulseshift/ui5-lib-visualization.git

Please ensure that you have installed node and yarn2 before you continue.

Install dependencies:

yarn

Start developing: Will build all resources start watcher task and start a HTTP server

yarn dev

The app should open in your browser automatically, otherwise open: http://localhost:3000/demo/index.html

Info: To get a more detailed logging, use yarn dev:verbose instead.

Distribution

Start distribution build: Will create a dist directory in your project root.

yarn dist

This will build the app, test the code with linters and updates all docs automatically. Afterwards, the production app build can be tested by run yarn start:dist. The app should open in your browser automatically, otherwise open: http://localhost:3000/demo/index.html

Increase version number according to semantic versioning e.g.

yarn version patch

If the app build matches your requirements, upload your build to npm:

yarn npm publish
Contributing & Troubleshooting

Contributions, questions and comments are all welcome and encouraged.

Check our current issues or, if you have something in mind how to make it better, create your own issue. We would be happy to discuss how they can be solved.

Contributors

Thanks goes to these wonderful people (emoji key):


Lena Serdarusic

💻💡🤔

Jascha A. Quintern

💻💬

Michael Dell

🤔
License

This project is licensed under the MIT license. Copyright 2017 PulseShift GmbH

MIT, read

History

Latest

v0.2.6-beta.2prerelease

Notes

Update demo and improve stabilization.

  1. v0.1.1prerelease

    Other 4

    Notes
    First BETA release of the UI5 visualization library
    • finished and stabilized build process
    • updated README
    • marked demos as deprecated
    • synced changes with OpenUI5 Starter-Kit
2downloads per week, npm
Weekly downloads for ui5-lib-visualization26 complete calendar weeks from 2026-04-27 to 2026-10-25; the latest total is 2.27 Apr – 3 May: 1444 May – 10 May: 3511 May – 17 May: 4718 May – 24 May: 725 May – 31 May: 71 Jun – 7 Jun: 498 Jun – 14 Jun: 515 Jun – 21 Jun: 2022 Jun – 28 Jun: 5629 Jun – 5 Jul: 46 Jul – 12 Jul: 5513 Jul – 19 Jul: 520 Jul – 26 Jul: 4627 Jul – 2 Aug: 23 Aug – 9 Aug: 9210 Aug – 16 Aug: 5017 Aug – 23 Aug: 1224 Aug – 30 Aug: 631 Aug – 6 Sept: 37 Sept – 13 Sept: 6314 Sept – 20 Sept: 1321 Sept – 27 Sept: 2828 Sept – 4 Oct: 515 Oct – 11 Oct: 1012 Oct – 18 Oct: 4719 Oct – 25 Oct: 2
Custom controls and libraries
  1. custom-controlsThirteen custom UI5 controls for abap2UI5 appsfrom ABAP
  2. @abap2ui5/embed-controlUI5 custom control that runs an abap2UI5 app inside a host appfrom UI5
  3. ui5-cc-timerbuttonUI5 control library with a button that delays enabling or showingfrom UI5
  4. ui5-control-generatorCommand line generator of UI5 custom controls from htmlfrom UI5
  5. @marianfoo/ui5-cc-dayjsUI5 custom control formatting dates with Day.jsfrom UI5
  6. ui5-cc-pdfviewerUI5 custom control rendering a PDF from a base64 data URIfrom UI5
  7. openui5-passwordOpenUI5 password input with strength scoring and rulesfrom UI5
  8. openui5-tourOpenUI5 control library for guided app toursfrom UI5
  9. UI5XUI5 library of eight composite controls under the ui5x namespacefrom UI5
  10. openui5-cameraUI5 control for live camera preview and PNG capturefrom UI5
  11. ui5-cc-chartUI5 custom control wrapping Chart.js for line chartsfrom UI5
  12. ui5-cc-mdUI5 custom control rendering Markdown to HTMLfrom UI5
  13. ui5-fontawesome-libUI5 library adding Font Awesome icon sets to sap-icon://from UI5
  14. openui5-paginatorA UI5 custom control that pages through large data in a table, for backends that serve pages over REST rather than OData.from UI5

Details

Sources6
Added by handdiscovered herechecked
GitHub APIdiscovered herechecked
npm registrydiscovered herechecked
npm registry, ui5-lib-visualizationversion, releases, installschecked
github.com/pulseshift/ui5-lib-visualizationtree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
latestv0.6.2
first release
releases and cadence45, ~22d median
discovered viaAdded by hand, GitHub API, npm registry
first seen in the atlas
ecosystem and domainui5, ui-and-frontend-bridge
Contributors5

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:pulseshift-ui5-lib-visualization
JSON
/artifacts/pulseshift-ui5-lib-visualization.json
MCP
Connecting an agent